summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/SimplifyCFG
diff options
context:
space:
mode:
authorVitaly Buka <vitalybuka@google.com>2016-05-04 23:59:33 +0000
committerVitaly Buka <vitalybuka@google.com>2016-05-04 23:59:33 +0000
commitfdcea9d78a7b17ede42a5f737d4be9153c316269 (patch)
tree1fed02c4ac56ce64ae4175842d7e717738c54cc5 /llvm/test/Transforms/SimplifyCFG
parent12037b4e9d2cf12721a76cf71e7c958a4cadd93a (diff)
downloadbcm5719-llvm-fdcea9d78a7b17ede42a5f737d4be9153c316269.tar.gz
bcm5719-llvm-fdcea9d78a7b17ede42a5f737d4be9153c316269.zip
Revert "[SimplifyCFG] propagate branch metadata when creating select"
MemorySanitizer: use-of-uninitialized-value 0x4910e47 in count /mnt/b/sanitizer-buildbot2/sanitizer-x86_64-linux-bootstrap/build/llvm/include/llvm/Support/MathExtras.h:159:12 0x4910e47 in countLeadingZeros<unsigned long> /mnt/b/sanitizer-buildbot2/sanitizer-x86_64-linux-bootstrap/build/llvm/include/llvm/Support/MathExtras.h:183 0x4910e47 in FitWeights /mnt/b/sanitizer-buildbot2/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/Transforms/Utils/SimplifyCFG.cpp:855 0x4910e47 in SimplifyCondBranchToCondBranch /mnt/b/sanitizer-buildbot2/sanitizer-x86_64-linux-bootstrap/build/llvm/lib/Transforms/Utils/SimplifyCFG.cpp:2895 This reverts commit 609f4dd4bf3bc735c8c047a4d4b0a8e9e4d202e2. llvm-svn: 268577
Diffstat (limited to 'llvm/test/Transforms/SimplifyCFG')
-rw-r--r--llvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll47
1 files changed, 8 insertions, 39 deletions
diff --git a/llvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll b/llvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll
index 359f21a75ab..ae32809395e 100644
--- a/llvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll
+++ b/llvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll
@@ -412,48 +412,22 @@ return:
ret i32 %retval.0
}
-; The selects should have freshly calculated branch weights.
+; The 1st select should have branch weights equal to the 1st branch.
+; The 2nd select should have freshly calculated branch weights.
define i32 @SimplifyCondBranchToCondBranch(i1 %cmpa, i1 %cmpb) {
; CHECK-LABEL: @SimplifyCondBranchToCondBranch(
; CHECK-NEXT: block1:
-; CHECK-NEXT: [[BRMERGE:%.*]] = or i1 %cmpa, %cmpb
-; CHECK-NEXT: [[DOTMUX:%.*]] = select i1 %cmpa, i32 0, i32 2, !prof !12
-; CHECK-NEXT: [[OUTVAL:%.*]] = select i1 [[BRMERGE]], i32 [[DOTMUX]], i32 1, !prof !13
+; CHECK-NEXT: [[BRMERGE:%.*]] = or i1 %cmpb, %cmpa
+; CHECK-NEXT: [[DOTMUX:%.*]] = select i1 %cmpb, i32 0, i32 2
+; CHECK-NEXT: [[OUTVAL:%.*]] = select i1 [[BRMERGE]], i32 [[DOTMUX]], i32 1, !prof !12
; CHECK-NEXT: ret i32 [[OUTVAL]]
;
block1:
- br i1 %cmpa, label %block3, label %block2, !prof !13
+ br i1 %cmpb, label %block3, label %block2, !prof !0
block2:
- br i1 %cmpb, label %block3, label %exit, !prof !14
-
-block3:
- %cowval = phi i32 [ 2, %block2 ], [ 0, %block1 ]
- br label %exit
-
-exit:
- %outval = phi i32 [ %cowval, %block3 ], [ 1, %block2 ]
- ret i32 %outval
-}
-
-; Swap the operands of the compares to verify that the weights update correctly.
-
-define i32 @SimplifyCondBranchToCondBranchSwap(i1 %cmpa, i1 %cmpb) {
-; CHECK-LABEL: @SimplifyCondBranchToCondBranchSwap(
-; CHECK-NEXT: block1:
-; CHECK-NEXT: [[CMPA_NOT:%.*]] = xor i1 %cmpa, true
-; CHECK-NEXT: [[CMPB_NOT:%.*]] = xor i1 %cmpb, true
-; CHECK-NEXT: [[BRMERGE:%.*]] = or i1 [[CMPA_NOT]], [[CMPB_NOT]]
-; CHECK-NEXT: [[DOTMUX:%.*]] = select i1 [[CMPA_NOT]], i32 0, i32 2, !prof !14
-; CHECK-NEXT: [[OUTVAL:%.*]] = select i1 [[BRMERGE]], i32 [[DOTMUX]], i32 1, !prof !15
-; CHECK-NEXT: ret i32 [[OUTVAL]]
-;
-block1:
- br i1 %cmpa, label %block2, label %block3, !prof !13
-
-block2:
- br i1 %cmpb, label %exit, label %block3, !prof !14
+ br i1 %cmpa, label %block3, label %exit, !prof !2
block3:
%cowval = phi i32 [ 2, %block2 ], [ 0, %block1 ]
@@ -478,8 +452,6 @@ exit:
!10 = !{!"branch_weights", i32 672646, i32 21604207}
!11 = !{!"branch_weights", i32 6960, i32 21597248}
!12 = !{!"these_are_not_the_branch_weights_you_are_looking_for", i32 3, i32 5}
-!13 = !{!"branch_weights", i32 2, i32 3}
-!14 = !{!"branch_weights", i32 4, i32 7}
; CHECK: !0 = !{!"branch_weights", i32 5, i32 11}
; CHECK: !1 = !{!"branch_weights", i32 1, i32 5}
@@ -495,8 +467,5 @@ exit:
;; treat the weight as an unsigned integer.
; CHECK: !10 = !{!"branch_weights", i32 112017436, i32 -735157296}
; CHECK: !11 = !{!"branch_weights", i32 3, i32 5}
-; CHECK: !12 = !{!"branch_weights", i32 22, i32 12}
-; CHECK: !13 = !{!"branch_weights", i32 34, i32 21}
-; CHECK: !14 = !{!"branch_weights", i32 33, i32 14}
-; CHECK: !15 = !{!"branch_weights", i32 47, i32 8}
+; CHECK: !12 = !{!"branch_weights", i32 14, i32 10}
OpenPOWER on IntegriCloud