[llvm] r243466 - [Unroll] Don't analyze blocks outside the loop.
Michael Zolotukhin
mzolotukhin at apple.com
Tue Jul 28 12:21:21 PDT 2015
Author: mzolotukhin
Date: Tue Jul 28 14:21:21 2015
New Revision: 243466
URL: http://llvm.org/viewvc/llvm-project?rev=243466&view=rev
Log:
[Unroll] Don't analyze blocks outside the loop.
Modified:
llvm/trunk/lib/Transforms/Scalar/LoopUnrollPass.cpp
Modified: llvm/trunk/lib/Transforms/Scalar/LoopUnrollPass.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/LoopUnrollPass.cpp?rev=243466&r1=243465&r2=243466&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/LoopUnrollPass.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/LoopUnrollPass.cpp Tue Jul 28 14:21:21 2015
@@ -586,16 +586,20 @@ analyzeLoopUnrollCost(const Loop *L, uns
if (BI->isConditional()) {
if (Constant *SimpleCond =
SimplifiedValues.lookup(BI->getCondition())) {
- BBWorklist.insert(BI->getSuccessor(
- cast<ConstantInt>(SimpleCond)->isZero() ? 1 : 0));
+ BasicBlock *Succ = BI->getSuccessor(
+ cast<ConstantInt>(SimpleCond)->isZero() ? 1 : 0);
+ if (L->contains(Succ))
+ BBWorklist.insert(Succ);
continue;
}
}
} else if (SwitchInst *SI = dyn_cast<SwitchInst>(TI)) {
if (Constant *SimpleCond =
SimplifiedValues.lookup(SI->getCondition())) {
- BBWorklist.insert(
- SI->getSuccessor(cast<ConstantInt>(SimpleCond)->getSExtValue()));
+ BasicBlock *Succ =
+ SI->getSuccessor(cast<ConstantInt>(SimpleCond)->getSExtValue());
+ if (L->contains(Succ))
+ BBWorklist.insert(Succ);
continue;
}
}
More information about the llvm-commits
mailing list