[llvm-commits] CVS: llvm/lib/VMCore/PassManager.cpp

Devang Patel dpatel at apple.com
Thu Dec 7 14:09:51 PST 2006



Changes in directory llvm/lib/VMCore:

PassManager.cpp updated: 1.51 -> 1.52
---
Log message:

Make current pass info available _after_ removing info that is not
preserved.


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

 PassManager.cpp |   15 +++++++--------
 1 files changed, 7 insertions(+), 8 deletions(-)


Index: llvm/lib/VMCore/PassManager.cpp
diff -u llvm/lib/VMCore/PassManager.cpp:1.51 llvm/lib/VMCore/PassManager.cpp:1.52
--- llvm/lib/VMCore/PassManager.cpp:1.51	Thu Dec  7 15:58:50 2006
+++ llvm/lib/VMCore/PassManager.cpp	Thu Dec  7 16:09:36 2006
@@ -533,12 +533,11 @@
                                      bool ProcessAnalysis) {
 
   if (ProcessAnalysis) {
-    // Take a note of analysis required and made available by this pass
-    initializeAnalysisImpl(P);
-    recordAvailableAnalysis(P);
-
+    // Take a note of analysis required and made available by this pass.
     // Remove the analysis not preserved by this pass
+    initializeAnalysisImpl(P);
     removeNotPreservedAnalysis(P);
+    recordAvailableAnalysis(P);
   }
 
   // Add pass
@@ -600,10 +599,10 @@
            e = passVectorEnd(); itr != e; ++itr) {
       Pass *P = *itr;
       
-      recordAvailableAnalysis(P);
       BasicBlockPass *BP = dynamic_cast<BasicBlockPass*>(P);
       Changed |= BP->runOnBasicBlock(*I);
       removeNotPreservedAnalysis(P);
+      recordAvailableAnalysis(P);
       removeDeadPasses(P);
     }
   return Changed;
@@ -718,10 +717,10 @@
            e = passVectorEnd(); itr != e; ++itr) {
       Pass *P = *itr;
       
-      recordAvailableAnalysis(P);
       FunctionPass *FP = dynamic_cast<FunctionPass*>(P);
       Changed |= FP->runOnFunction(*I);
       removeNotPreservedAnalysis(P);
+      recordAvailableAnalysis(P);
       removeDeadPasses(P);
     }
   return Changed;
@@ -739,10 +738,10 @@
          e = passVectorEnd(); itr != e; ++itr) {
     Pass *P = *itr;
     
-    recordAvailableAnalysis(P);
     FunctionPass *FP = dynamic_cast<FunctionPass*>(P);
     Changed |= FP->runOnFunction(F);
     removeNotPreservedAnalysis(P);
+    recordAvailableAnalysis(P);
     removeDeadPasses(P);
   }
   return Changed;
@@ -848,10 +847,10 @@
          e = passVectorEnd(); itr != e; ++itr) {
     Pass *P = *itr;
 
-    recordAvailableAnalysis(P);
     ModulePass *MP = dynamic_cast<ModulePass*>(P);
     Changed |= MP->runOnModule(M);
     removeNotPreservedAnalysis(P);
+    recordAvailableAnalysis(P);
     removeDeadPasses(P);
   }
   return Changed;






More information about the llvm-commits mailing list