LCSSA: Add a workaround for another nasty SCEV cache invalidation issue.

I'm not entirely happy with this solution, but I don't see a smarter way currently.
Fixes PR14214.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167112 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Transforms/Utils/LCSSA.cpp b/lib/Transforms/Utils/LCSSA.cpp
index 833dea5..38c1495 100644
--- a/lib/Transforms/Utils/LCSSA.cpp
+++ b/lib/Transforms/Utils/LCSSA.cpp
@@ -255,6 +255,11 @@
       if (Loop *L = LI->getLoopFor(ExitBB))
         SE->forgetLoop(L);
   }
+
+  // If we added a PHI, drop the cache to avoid invalidating SCEV caches.
+  // FIXME: This is a big hammer, can we clear the cache more selectively?
+  if (SE && !AddedPHIs.empty())
+    SE->forgetLoop(L);
   
   // Rewrite all uses outside the loop in terms of the new PHIs we just
   // inserted.