Changes in directory llvm/lib/VMCore:

PassManager.cpp updated: 1.83 -> 1.84
---
Log message:

removeNotPreservedAnalysis().

Do not remove ImmutablePass from the list.


---
Diffs of the changes:  (+8 -4)

 PassManager.cpp |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)


Index: llvm/lib/VMCore/PassManager.cpp
diff -u llvm/lib/VMCore/PassManager.cpp:1.83 
llvm/lib/VMCore/PassManager.cpp:1.84
--- llvm/lib/VMCore/PassManager.cpp:1.83        Tue Dec 12 16:57:43 2006
+++ llvm/lib/VMCore/PassManager.cpp     Tue Dec 12 17:07:44 2006
@@ -580,13 +580,17 @@
 
   const std::vector<AnalysisID> &PreservedSet = AnUsage.getPreservedSet();
   for (std::map<AnalysisID, Pass*>::iterator I = AvailableAnalysis.begin(),
-         E = AvailableAnalysis.end(); I != E; ++I ) {
+         E = AvailableAnalysis.end(); I != E; ) {
     if (std::find(PreservedSet.begin(), PreservedSet.end(), I->first) == 
         PreservedSet.end()) {
       // Remove this analysis
-      std::map<AnalysisID, Pass*>::iterator J = I++;
-      AvailableAnalysis.erase(J);
-    }
+      if (!dynamic_cast<ImmutablePass*>(I->second)) {
+        std::map<AnalysisID, Pass*>::iterator J = I++;
+        AvailableAnalysis.erase(J);
+      } else
+        ++I;
+    } else
+      ++I;
   }
 }
 



_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to