summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2008-09-03 00:10:56 +0000
committerDevang Patel <dpatel@apple.com>2008-09-03 00:10:56 +0000
commitb530f0812222f25395a841d145cdae785844f52f (patch)
tree36106506fa56cc126137091cda1a793dc5b69b01
parent24422d4928e72426c34ab7dca79413310782d335 (diff)
downloadbcm5719-llvm-b530f0812222f25395a841d145cdae785844f52f.tar.gz
bcm5719-llvm-b530f0812222f25395a841d145cdae785844f52f.zip
Check iteration count.
llvm-svn: 55680
-rw-r--r--llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp4
-rw-r--r--llvm/test/Transforms/LoopStrengthReduce/2008-09-02-IVType.ll2
2 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
index b2c5977a1b6..16b8dbb451f 100644
--- a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
@@ -1908,6 +1908,10 @@ BinaryOperator *getNewPHIIncrement(BinaryOperator *Incr, PHINode *PHI,
/// change the type of IV, if possible.
void LoopStrengthReduce::OptimizeIVType(Loop *L) {
+ SCEVHandle IterationCount = SE->getIterationCount(L);
+ if (isa<SCEVCouldNotCompute>(IterationCount))
+ return;
+
BasicBlock *LPH = L->getLoopPreheader();
BasicBlock *LatchBB = L->getLoopLatch();
SmallVector<PHINode *, 4> PHIs;
diff --git a/llvm/test/Transforms/LoopStrengthReduce/2008-09-02-IVType.ll b/llvm/test/Transforms/LoopStrengthReduce/2008-09-02-IVType.ll
index 772d9dda0f5..49df675e588 100644
--- a/llvm/test/Transforms/LoopStrengthReduce/2008-09-02-IVType.ll
+++ b/llvm/test/Transforms/LoopStrengthReduce/2008-09-02-IVType.ll
@@ -49,7 +49,7 @@ bb28: ; preds = %bb8, %bb
store i16* %theDCTBufferIter.0.lcssa, i16** %tmp6, align 4
%tmp37 = add i16 %component.09, 1 ; <i16> [#uses=2]
%phitmp15 = sext i16 %tmp37 to i32 ; <i32> [#uses=1]
- %tmp46 = icmp slt i32 %phitmp15, %tmp4412 ; <i1> [#uses=1]
+ %tmp46 = icmp slt i32 %phitmp15, 42 ; <i1> [#uses=1]
br i1 %tmp46, label %bb, label %bb49
bb49: ; preds = %bb28, %entry
OpenPOWER on IntegriCloud