Changes in directory llvm/lib/VMCore:
PassManager.cpp updated: 1.126 -> 1.127 --- Log message: Update assignPassManager() signature to allow selection of preferred pass manager type. This allows new FPPassManager to select Call Graph Pass Manager (if available) as its parent. --- Diffs of the changes: (+13 -4) PassManager.cpp | 17 +++++++++++++---- 1 files changed, 13 insertions(+), 4 deletions(-) Index: llvm/lib/VMCore/PassManager.cpp diff -u llvm/lib/VMCore/PassManager.cpp:1.126 llvm/lib/VMCore/PassManager.cpp:1.127 --- llvm/lib/VMCore/PassManager.cpp:1.126 Tue Jan 16 16:38:10 2007 +++ llvm/lib/VMCore/PassManager.cpp Wed Jan 17 14:30:17 2007 @@ -1202,7 +1202,8 @@ /// Find appropriate Module Pass Manager in the PM Stack and /// add self into that manager. -void ModulePass::assignPassManager(PMStack &PMS) { +void ModulePass::assignPassManager(PMStack &PMS, + PassManagerType PreferredType) { // Find Module Pass Manager while(!PMS.empty()) { @@ -1219,7 +1220,8 @@ /// Find appropriate Function Pass Manager or Call Graph Pass Manager /// in the PM Stack and add self into that manager. -void FunctionPass::assignPassManager(PMStack &PMS) { +void FunctionPass::assignPassManager(PMStack &PMS, + PassManagerType PreferredType) { // Find Module Pass Manager (TODO : Or Call Graph Pass Manager) while(!PMS.empty()) { @@ -1245,7 +1247,13 @@ // [3] Assign manager to manage this new manager. This may create // and push new managers into PMS Pass *P = dynamic_cast<Pass *>(FPP); - P->assignPassManager(PMS); + + // If Call Graph Pass Manager is active then use it to manage + // this new Function Pass manager. + if (PMD->getPassManagerType() == PMT_CallGraphPassManager) + P->assignPassManager(PMS, PMT_CallGraphPassManager); + else + P->assignPassManager(PMS); // [4] Push new manager into PMS PMS.push(FPP); @@ -1257,7 +1265,8 @@ /// Find appropriate Basic Pass Manager or Call Graph Pass Manager /// in the PM Stack and add self into that manager. -void BasicBlockPass::assignPassManager(PMStack &PMS) { +void BasicBlockPass::assignPassManager(PMStack &PMS, + PassManagerType PreferredType) { BBPassManager *BBP = NULL; _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits