diff --git a/polly/lib/Analysis/ScopPass.cpp b/polly/lib/Analysis/ScopPass.cpp --- a/polly/lib/Analysis/ScopPass.cpp +++ b/polly/lib/Analysis/ScopPass.cpp @@ -76,10 +76,16 @@ PassManager::run(Scop &S, ScopAnalysisManager &AM, ScopStandardAnalysisResults &AR, SPMUpdater &U) { + PassInstrumentation PI = AM.getResult(S, AR); auto PA = PreservedAnalyses::all(); for (auto &Pass : Passes) { + if (!PI.runBeforePass(*Pass, S)) + continue; + auto PassPA = Pass->run(S, AM, AR, U); + PI.runAfterPass(*Pass, S, PassPA); + AM.invalidate(S, PassPA); PA.intersect(std::move(PassPA)); }