[PM] More workaround for PR28400
authorSean Silva <chisophugis@gmail.com>
Mon, 8 Aug 2016 05:38:06 +0000 (05:38 +0000)
committerSean Silva <chisophugis@gmail.com>
Mon, 8 Aug 2016 05:38:06 +0000 (05:38 +0000)
llvm-svn: 277982

llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp
llvm/lib/Transforms/Scalar/NaryReassociate.cpp
llvm/lib/Transforms/Utils/LoopSimplify.cpp

index 7f8b8ce..a9acbd0 100644 (file)
@@ -434,6 +434,7 @@ AlignmentFromAssumptionsPass::run(Function &F, FunctionAnalysisManager &AM) {
   ScalarEvolution &SE = AM.getResult<ScalarEvolutionAnalysis>(F);
   DominatorTree &DT = AM.getResult<DominatorTreeAnalysis>(F);
   bool Changed = runImpl(F, AC, &SE, &DT);
+  AM.invalidate<ScalarEvolutionAnalysis>(F);
   if (!Changed)
     return PreservedAnalyses::all();
   PreservedAnalyses PA;
index 4a88e1d..0ac1edf 100644 (file)
@@ -157,6 +157,7 @@ PreservedAnalyses NaryReassociatePass::run(Function &F,
   auto *TTI = &AM.getResult<TargetIRAnalysis>(F);
 
   bool Changed = runImpl(F, AC, DT, SE, TLI, TTI);
+  AM.invalidate<ScalarEvolutionAnalysis>(F);
   if (!Changed)
     return PreservedAnalyses::all();
 
index fc5781f..d24a7aa 100644 (file)
@@ -869,6 +869,8 @@ PreservedAnalyses LoopSimplifyPass::run(Function &F,
   for (LoopInfo::iterator I = LI->begin(), E = LI->end(); I != E; ++I)
     Changed |= simplifyLoop(*I, DT, LI, SE, AC, true /* PreserveLCSSA */);
 
+  AM.invalidate<ScalarEvolutionAnalysis>(F);
+
   if (!Changed)
     return PreservedAnalyses::all();
   PreservedAnalyses PA;