[PATCH] D36216: [PM] Fix proxy invalidation

Phabricator via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 2 06:19:42 PDT 2017


This revision was automatically updated to reflect the committed changes.
Closed by commit rL309811: [PM] Fix proxy invalidation (authored by pfaffe).

Repository:
  rL LLVM

https://reviews.llvm.org/D36216

Files:
  polly/trunk/include/polly/ScopPass.h
  polly/trunk/lib/Analysis/ScopPass.cpp


Index: polly/trunk/include/polly/ScopPass.h
===================================================================
--- polly/trunk/include/polly/ScopPass.h
+++ polly/trunk/include/polly/ScopPass.h
@@ -128,6 +128,7 @@
 
 struct ScopStandardAnalysisResults {
   DominatorTree &DT;
+  ScopInfo &SI;
   ScalarEvolution &SE;
   LoopInfo &LI;
   RegionInfo &RI;
@@ -161,14 +162,15 @@
     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 @@
 
     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;
   }
 
Index: polly/trunk/lib/Analysis/ScopPass.cpp
===================================================================
--- polly/trunk/lib/Analysis/ScopPass.cpp
+++ polly/trunk/lib/Analysis/ScopPass.cpp
@@ -76,12 +76,10 @@
   // 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)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D36216.109329.patch
Type: text/x-patch
Size: 2434 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170802/e0e38e0b/attachment.bin>


More information about the llvm-commits mailing list