diff options
Diffstat (limited to 'llvm/lib/Transforms/Scalar')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp | 4 | ||||
| -rw-r--r-- | llvm/lib/Transforms/Scalar/NaryReassociate.cpp | 4 | 
2 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp b/llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp index a9acbd0807b..9ecaefe85bc 100644 --- a/llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp +++ b/llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp @@ -434,7 +434,11 @@ 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); + +  // FIXME: We need to invalidate this to avoid PR28400. Is there a better +  // solution?    AM.invalidate<ScalarEvolutionAnalysis>(F); +    if (!Changed)      return PreservedAnalyses::all();    PreservedAnalyses PA; diff --git a/llvm/lib/Transforms/Scalar/NaryReassociate.cpp b/llvm/lib/Transforms/Scalar/NaryReassociate.cpp index 0ac1edfee93..84ccb507a90 100644 --- a/llvm/lib/Transforms/Scalar/NaryReassociate.cpp +++ b/llvm/lib/Transforms/Scalar/NaryReassociate.cpp @@ -157,7 +157,11 @@ PreservedAnalyses NaryReassociatePass::run(Function &F,    auto *TTI = &AM.getResult<TargetIRAnalysis>(F);    bool Changed = runImpl(F, AC, DT, SE, TLI, TTI); + +  // FIXME: We need to invalidate this to avoid PR28400. Is there a better +  // solution?    AM.invalidate<ScalarEvolutionAnalysis>(F); +    if (!Changed)      return PreservedAnalyses::all();  | 

