Changes in directory llvm/lib/VMCore:
PassManager.cpp updated: 1.78 -> 1.79 --- Log message: Fix thinko. While searching for a analysis in a pass manager, do not search it into pass manager's manager. --- Diffs of the changes: (+18 -3) PassManager.cpp | 21 ++++++++++++++++++--- 1 files changed, 18 insertions(+), 3 deletions(-) Index: llvm/lib/VMCore/PassManager.cpp diff -u llvm/lib/VMCore/PassManager.cpp:1.78 llvm/lib/VMCore/PassManager.cpp:1.79 --- llvm/lib/VMCore/PassManager.cpp:1.78 Tue Dec 12 16:35:25 2006 +++ llvm/lib/VMCore/PassManager.cpp Tue Dec 12 16:47:13 2006 @@ -260,6 +260,9 @@ unsigned Depth; }; +//===----------------------------------------------------------------------===// +// BasicBlockPassManager_New +// /// BasicBlockPassManager_New manages BasicBlockPass. It batches all the /// pass together and sequence them to process one basic block before /// processing next basic block. @@ -288,6 +291,9 @@ }; +//===----------------------------------------------------------------------===// +// FunctionPassManagerImpl_New +// /// FunctionPassManagerImpl_New manages FunctionPasses and BasicBlockPassManagers. /// It batches all function passes and basic block pass managers together and /// sequence them to process one function at a time before processing next @@ -356,6 +362,9 @@ BasicBlockPassManager_New *activeBBPassManager; }; +//===----------------------------------------------------------------------===// +// ModulePassManager_New +// /// ModulePassManager_New manages ModulePasses and function pass managers. /// It batches all Module passes passes and function pass managers together and /// sequence them to process one module. @@ -384,7 +393,10 @@ FunctionPassManagerImpl_New *activeFunctionPassManager; }; -/// PassManager_New manages ModulePassManagers +//===----------------------------------------------------------------------===// +// PassManagerImpl_New +// +/// PassManagerImpl_New manages ModulePassManagers class PassManagerImpl_New : public Pass, public PMDataManager, public PMTopLevelManager { @@ -519,8 +531,11 @@ // Check pass managers for (std::vector<Pass *>::iterator I = PassManagers.begin(), - E = PassManagers.end(); P == NULL && I != E; ++I) - P = (*I)->getResolver()->getAnalysisToUpdate(AID, false); + E = PassManagers.end(); P == NULL && I != E; ++I) { + PMDataManager *PMD = dynamic_cast<PMDataManager *>(*I); + assert(PMD && "This is not a PassManager"); + P = PMD->findAnalysisPass(AID, false); + } // Check other pass managers for (std::vector<PMDataManager *>::iterator I = IndirectPassManagers.begin(), _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits