Check iteration count.
[oota-llvm.git] / lib / Transforms / Scalar / LoopStrengthReduce.cpp
index b2c5977a1b64d0cdd38039830738bfd697a8872f..16b8dbb451ff81db8350ba971ebed402cbb87af2 100644 (file)
@@ -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;