summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--polly/include/polly/ScopPass.h14
-rw-r--r--polly/lib/Analysis/ScopPass.cpp6
2 files changed, 13 insertions, 7 deletions
diff --git a/polly/include/polly/ScopPass.h b/polly/include/polly/ScopPass.h
index 504daea85ba..ca89989533c 100644
--- a/polly/include/polly/ScopPass.h
+++ b/polly/include/polly/ScopPass.h
@@ -128,6 +128,7 @@ private:
struct ScopStandardAnalysisResults {
DominatorTree &DT;
+ ScopInfo &SI;
ScalarEvolution &SE;
LoopInfo &LI;
RegionInfo &RI;
@@ -161,14 +162,15 @@ public:
if (Scops.empty())
return PA;
- ScopAnalysisManager &SAM =
- AM.getResult<ScopAnalysisManagerFunctionProxy>(F).getManager();
-
ScopStandardAnalysisResults AR = {AM.getResult<DominatorTreeAnalysis>(F),
+ AM.getResult<ScopInfoAnalysis>(F),
AM.getResult<ScalarEvolutionAnalysis>(F),
AM.getResult<LoopAnalysis>(F),
AM.getResult<RegionInfoAnalysis>(F)};
+ ScopAnalysisManager &SAM =
+ AM.getResult<ScopAnalysisManagerFunctionProxy>(F).getManager();
+
SmallPriorityWorklist<Scop *, 4> Worklist;
SPMUpdater Updater{Worklist, SAM};
@@ -186,6 +188,12 @@ public:
PA.preserveSet<AllAnalysesOn<Scop>>();
PA.preserve<ScopAnalysisManagerFunctionProxy>();
+ PA.preserve<DominatorTreeAnalysis>();
+ PA.preserve<ScopAnalysis>();
+ PA.preserve<ScopInfoAnalysis>();
+ PA.preserve<ScalarEvolutionAnalysis>();
+ PA.preserve<LoopAnalysis>();
+ PA.preserve<RegionInfoAnalysis>();
return PA;
}
diff --git a/polly/lib/Analysis/ScopPass.cpp b/polly/lib/Analysis/ScopPass.cpp
index dfdf31396d9..c845bf2f482 100644
--- a/polly/lib/Analysis/ScopPass.cpp
+++ b/polly/lib/Analysis/ScopPass.cpp
@@ -76,12 +76,10 @@ bool ScopAnalysisManagerFunctionProxy::Result::invalidate(
// First, check whether our ScopInfo is about to be invalidated
auto PAC = PA.getChecker<ScopAnalysisManagerFunctionProxy>();
if (!(PAC.preserved() || PAC.preservedSet<AllAnalysesOn<Function>>() ||
- Inv.invalidate<ScopAnalysis>(F, PA) ||
+ Inv.invalidate<ScopInfoAnalysis>(F, PA) ||
Inv.invalidate<ScalarEvolutionAnalysis>(F, PA) ||
Inv.invalidate<LoopAnalysis>(F, PA) ||
- Inv.invalidate<AAManager>(F, PA) ||
- Inv.invalidate<DominatorTreeAnalysis>(F, PA) ||
- Inv.invalidate<AssumptionAnalysis>(F, PA))) {
+ Inv.invalidate<DominatorTreeAnalysis>(F, PA))) {
// As everything depends on ScopInfo, we must drop all existing results
for (auto &S : *SI)
OpenPOWER on IntegriCloud