Changes in directory llvm/lib/VMCore:
PassManager.cpp updated: 1.79 -> 1.80 --- Log message: findAnalysisPass(). First search all available passes before searching ImmutablePasses. --- Diffs of the changes: (+13 -13) PassManager.cpp | 26 +++++++++++++------------- 1 files changed, 13 insertions(+), 13 deletions(-) Index: llvm/lib/VMCore/PassManager.cpp diff -u llvm/lib/VMCore/PassManager.cpp:1.79 llvm/lib/VMCore/PassManager.cpp:1.80 --- llvm/lib/VMCore/PassManager.cpp:1.79 Tue Dec 12 16:47:13 2006 +++ llvm/lib/VMCore/PassManager.cpp Tue Dec 12 16:50:05 2006 @@ -512,6 +512,19 @@ Pass *PMTopLevelManager::findAnalysisPass(AnalysisID AID) { Pass *P = NULL; + // Check pass managers + for (std::vector<Pass *>::iterator I = PassManagers.begin(), + 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(), + E = IndirectPassManagers.end(); P == NULL && I != E; ++I) + P = (*I)->findAnalysisPass(AID, false); + for (std::vector<ImmutablePass *>::iterator I = ImmutablePasses.begin(), E = ImmutablePasses.end(); P == NULL && I != E; ++I) { const PassInfo *PI = (*I)->getPassInfo(); @@ -529,19 +542,6 @@ } } - // Check pass managers - for (std::vector<Pass *>::iterator I = PassManagers.begin(), - 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(), - E = IndirectPassManagers.end(); P == NULL && I != E; ++I) - P = (*I)->findAnalysisPass(AID, false); - return P; } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits