LoopDeletion needs to inform ScalarEvolution when a loop is deleted,
[oota-llvm.git] / lib / Transforms / Scalar / LoopDeletion.cpp
index 86edcfaac80db122d3a914ffc5754d7c4dff475b..ac807a4c9b20e11664a0df38046b18595941cc86 100644 (file)
@@ -260,7 +260,10 @@ bool LoopDeletion::runOnLoop(Loop* L, LPPassManager& LPM) {
   for (Loop::block_iterator LI = L->block_begin(), LE = L->block_end();
        LI != LE; ++LI)
     (*LI)->eraseFromParent();
-  
+
+  // Tell ScalarEvolution that the loop is deleted.
+  SE.forgetLoopIterationCount(L);
+
   // Finally, the blocks from loopinfo.  This has to happen late because
   // otherwise our loop iterators won't work.
   LoopInfo& loopInfo = getAnalysis<LoopInfo>();