summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Utils/LoopUnroll.cpp
diff options
context:
space:
mode:
authorSanjoy Das <sanjoy@playingwithpointers.com>2015-10-06 21:44:49 +0000
committerSanjoy Das <sanjoy@playingwithpointers.com>2015-10-06 21:44:49 +0000
commit5c8bead46da91c348d37bcbefb431f5ff122ab19 (patch)
treec4ef42fbec27b10e8ab9e64b612958333da10136 /llvm/lib/Transforms/Utils/LoopUnroll.cpp
parent088bb0ea9f5223c7c584163a49ddd4d9291581d5 (diff)
downloadbcm5719-llvm-5c8bead46da91c348d37bcbefb431f5ff122ab19.tar.gz
bcm5719-llvm-5c8bead46da91c348d37bcbefb431f5ff122ab19.zip
[IndVars] Don't break dominance in `eliminateIdentitySCEV`
Summary: After r249211, `getSCEV(X) == getSCEV(Y)` does not guarantee that X and Y are related in the dominator tree, even if X is an operand to Y (I've included a toy example in comments, and a real example as a test case). This commit changes `SimplifyIndVar` to require a `DominatorTree`. I don't think this is a problem because `ScalarEvolution` requires it anyway. Fixes PR25051. Depends on D13459. Reviewers: atrick, hfinkel Subscribers: joker.eph, llvm-commits, sanjoy Differential Revision: http://reviews.llvm.org/D13460 llvm-svn: 249471
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUnroll.cpp')
-rw-r--r--llvm/lib/Transforms/Utils/LoopUnroll.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Utils/LoopUnroll.cpp b/llvm/lib/Transforms/Utils/LoopUnroll.cpp
index 95d31d86644..b7e248860c5 100644
--- a/llvm/lib/Transforms/Utils/LoopUnroll.cpp
+++ b/llvm/lib/Transforms/Utils/LoopUnroll.cpp
@@ -499,7 +499,7 @@ bool llvm::UnrollLoop(Loop *L, unsigned Count, unsigned TripCount,
// Simplify any new induction variables in the partially unrolled loop.
if (SE && !CompletelyUnroll) {
SmallVector<WeakVH, 16> DeadInsts;
- simplifyLoopIVs(L, SE, LPM, DeadInsts);
+ simplifyLoopIVs(L, SE, DT, LPM, DeadInsts);
// Aggressively clean up dead instructions that simplifyLoopIVs already
// identified. Any remaining should be cleaned up below.
OpenPOWER on IntegriCloud