diff options
author | Dehao Chen <dehao@google.com> | 2016-09-21 16:26:51 +0000 |
---|---|---|
committer | Dehao Chen <dehao@google.com> | 2016-09-21 16:26:51 +0000 |
commit | 160fbc3f9544d8223733fa05f23a64558099ffdf (patch) | |
tree | fbfe691fb049d335a71e32de29a83309be5243e5 /llvm/test | |
parent | a95e8bb7eddc0ace1a63053cd15062421d61e37d (diff) | |
download | bcm5719-llvm-160fbc3f9544d8223733fa05f23a64558099ffdf.tar.gz bcm5719-llvm-160fbc3f9544d8223733fa05f23a64558099ffdf.zip |
Change the basic block weight calculation algorithm to use max instead of voting.
Summary: Now that we have more precise debug info, we should change back to use maximum to get basic block weight.
Reviewers: dnovillo
Subscribers: andreadb, llvm-commits
Differential Revision: https://reviews.llvm.org/D24788
llvm-svn: 282084
Diffstat (limited to 'llvm/test')
-rw-r--r-- | llvm/test/Transforms/SampleProfile/calls.ll | 8 | ||||
-rw-r--r-- | llvm/test/Transforms/SampleProfile/fnptr.ll | 8 |
2 files changed, 8 insertions, 8 deletions
diff --git a/llvm/test/Transforms/SampleProfile/calls.ll b/llvm/test/Transforms/SampleProfile/calls.ll index bf10fea7aad..45909ddf3e5 100644 --- a/llvm/test/Transforms/SampleProfile/calls.ll +++ b/llvm/test/Transforms/SampleProfile/calls.ll @@ -48,8 +48,8 @@ while.cond: ; preds = %if.end, %entry store i32 %inc, i32* %i, align 4, !dbg !14 %cmp = icmp slt i32 %0, 400000000, !dbg !14 br i1 %cmp, label %while.body, label %while.end, !dbg !14 -; CHECK: edge while.cond -> while.body probability is 0x7ffa4e20 / 0x80000000 = 99.98% [HOT edge] -; CHECK: edge while.cond -> while.end probability is 0x0005b1e0 / 0x80000000 = 0.02% +; CHECK: edge while.cond -> while.body probability is 0x7d9eb367 / 0x80000000 = 98.14% [HOT edge] +; CHECK: edge while.cond -> while.end probability is 0x02614c99 / 0x80000000 = 1.86% while.body: ; preds = %while.cond %1 = load i32, i32* %i, align 4, !dbg !16 @@ -59,8 +59,8 @@ while.body: ; preds = %while.cond ; both branches out of while.body had the same weight. In reality, ; the edge while.body->if.then is taken most of the time. ; -; CHECK: edge while.body -> if.else probability is 0x0005b1e0 / 0x80000000 = 0.02% -; CHECK: edge while.body -> if.then probability is 0x7ffa4e20 / 0x80000000 = 99.98% [HOT edge] +; CHECK: edge while.body -> if.else probability is 0x00059704 / 0x80000000 = 0.02% +; CHECK: edge while.body -> if.then probability is 0x7ffa68fc / 0x80000000 = 99.98% [HOT edge] if.then: ; preds = %while.body diff --git a/llvm/test/Transforms/SampleProfile/fnptr.ll b/llvm/test/Transforms/SampleProfile/fnptr.ll index f9a08a39550..0c671a7882f 100644 --- a/llvm/test/Transforms/SampleProfile/fnptr.ll +++ b/llvm/test/Transforms/SampleProfile/fnptr.ll @@ -8,10 +8,10 @@ ; RUN: opt < %s -passes=sample-profile -sample-profile-file=%S/Inputs/fnptr.prof | opt -analyze -branch-prob | FileCheck %s ; RUN: opt < %s -passes=sample-profile -sample-profile-file=%S/Inputs/fnptr.binprof | opt -analyze -branch-prob | FileCheck %s -; CHECK: edge for.body3 -> if.then probability is 0x1a56a56a / 0x80000000 = 20.58% -; CHECK: edge for.body3 -> if.else probability is 0x65a95a96 / 0x80000000 = 79.42% -; CHECK: edge for.inc -> for.inc12 probability is 0x000fdc50 / 0x80000000 = 0.05% -; CHECK: edge for.inc -> for.body3 probability is 0x7ff023b0 / 0x80000000 = 99.95% +; CHECK: edge for.body3 -> if.then probability is 0x19f584f3 / 0x80000000 = 20.28% +; CHECK: edge for.body3 -> if.else probability is 0x660a7b0d / 0x80000000 = 79.72% +; CHECK: edge for.inc -> for.inc12 probability is 0x000f92fb / 0x80000000 = 0.05% +; CHECK: edge for.inc -> for.body3 probability is 0x7ff06d05 / 0x80000000 = 99.95% ; CHECK: edge for.inc12 -> for.end14 probability is 0x04000000 / 0x80000000 = 3.12% ; CHECK: edge for.inc12 -> for.cond1.preheader probability is 0x7c000000 / 0x80000000 = 96.88% |