diff options
author | Daniel Berlin <dberlin@dberlin.org> | 2017-06-14 21:19:52 +0000 |
---|---|---|
committer | Daniel Berlin <dberlin@dberlin.org> | 2017-06-14 21:19:52 +0000 |
commit | 6d2db9edb2e66162dd85d4ccca67840aceb76966 (patch) | |
tree | af38a2aa7f9d4e80b532106fc4651b2ae761c053 /llvm/lib/Transforms/Utils/PredicateInfo.cpp | |
parent | 51e878e01d802791603cb759b0b3ebd1eb1321c8 (diff) | |
download | bcm5719-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.cpp | 3 |
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); |