summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Utils/PredicateInfo.cpp
diff options
context:
space:
mode:
authorDaniel Berlin <dberlin@dberlin.org>2017-06-14 21:19:52 +0000
committerDaniel Berlin <dberlin@dberlin.org>2017-06-14 21:19:52 +0000
commit6d2db9edb2e66162dd85d4ccca67840aceb76966 (patch)
treeaf38a2aa7f9d4e80b532106fc4651b2ae761c053 /llvm/lib/Transforms/Utils/PredicateInfo.cpp
parent51e878e01d802791603cb759b0b3ebd1eb1321c8 (diff)
downloadbcm5719-llvm-6d2db9edb2e66162dd85d4ccca67840aceb76966.tar.gz
bcm5719-llvm-6d2db9edb2e66162dd85d4ccca67840aceb76966.zip
PredicateInfo: Don't insert conditional info when a conditional branch jumps to the same target regardless of condition
llvm-svn: 305416
Diffstat (limited to 'llvm/lib/Transforms/Utils/PredicateInfo.cpp')
-rw-r--r--llvm/lib/Transforms/Utils/PredicateInfo.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Utils/PredicateInfo.cpp b/llvm/lib/Transforms/Utils/PredicateInfo.cpp
index 9e71cba4f1b..1260e35e934 100644
--- a/llvm/lib/Transforms/Utils/PredicateInfo.cpp
+++ b/llvm/lib/Transforms/Utils/PredicateInfo.cpp
@@ -460,6 +460,9 @@ void PredicateInfo::buildPredicateInfo() {
if (auto *BI = dyn_cast<BranchInst>(BranchBB->getTerminator())) {
if (!BI->isConditional())
continue;
+ // Can't insert conditional information if they all go to the same place.
+ if (BI->getSuccessor(0) == BI->getSuccessor(1))
+ continue;
processBranch(BI, BranchBB, OpsToRename);
} else if (auto *SI = dyn_cast<SwitchInst>(BranchBB->getTerminator())) {
processSwitch(SI, BranchBB, OpsToRename);
OpenPOWER on IntegriCloud