Initialize AnalysisImpls for each pass before executing the pass.
authorDevang Patel <dpatel@apple.com>
Tue, 12 Dec 2006 23:13:09 +0000 (23:13 +0000)
committerDevang Patel <dpatel@apple.com>
Tue, 12 Dec 2006 23:13:09 +0000 (23:13 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32509 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/PassManager.cpp

index 3498fcf62f9c40bdc952244ac45b619eb8fe2467..06f7af86bba05c8c6668ae9b9e345b9d1437fbd6 100644 (file)
@@ -768,7 +768,7 @@ BasicBlockPassManager_New::runOnFunction(Function &F) {
     for (std::vector<Pass *>::iterator itr = passVectorBegin(),
            e = passVectorEnd(); itr != e; ++itr) {
       Pass *P = *itr;
-      
+      initializeAnalysisImpl(P);
       BasicBlockPass *BP = dynamic_cast<BasicBlockPass*>(P);
       Changed |= BP->runOnBasicBlock(*I);
       removeNotPreservedAnalysis(P);
@@ -977,7 +977,7 @@ bool FunctionPassManagerImpl_New::runOnFunction(Function &F) {
   for (std::vector<Pass *>::iterator itr = passVectorBegin(),
          e = passVectorEnd(); itr != e; ++itr) {
     Pass *P = *itr;
-    
+    initializeAnalysisImpl(P);    
     FunctionPass *FP = dynamic_cast<FunctionPass*>(P);
     Changed |= FP->runOnFunction(F);
     removeNotPreservedAnalysis(P);
@@ -1104,7 +1104,7 @@ ModulePassManager_New::runOnModule(Module &M) {
   for (std::vector<Pass *>::iterator itr = passVectorBegin(),
          e = passVectorEnd(); itr != e; ++itr) {
     Pass *P = *itr;
-
+    initializeAnalysisImpl(P);
     ModulePass *MP = dynamic_cast<ModulePass*>(P);
     Changed |= MP->runOnModule(M);
     removeNotPreservedAnalysis(P);