aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2007-01-17 21:19:23 +0000
committerDevang Patel <dpatel@apple.com>2007-01-17 21:19:23 +0000
commit44b0d29802ea87d68648dec798fd564eb3cbaa32 (patch)
tree1540b461bf9be8c2a027e7e71a524bcaba964768
parent26426949f33e5a77fbd2fa330f7df5626e8b177d (diff)
Update ModulePass::assignPassManager() to take into account Preferred
Pass Manager Type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33308 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/VMCore/PassManager.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/VMCore/PassManager.cpp b/lib/VMCore/PassManager.cpp
index a137a7f70f..5d391444ca 100644
--- a/lib/VMCore/PassManager.cpp
+++ b/lib/VMCore/PassManager.cpp
@@ -1207,15 +1207,16 @@ void ModulePass::assignPassManager(PMStack &PMS,
// Find Module Pass Manager
while(!PMS.empty()) {
- if (PMS.top()->getPassManagerType() > PMT_ModulePassManager)
+ PassManagerType TopPMType = PMS.top()->getPassManagerType();
+ if (TopPMType == PreferredType)
+ break; // We found desired pass manager
+ else if (TopPMType > PMT_ModulePassManager)
PMS.pop(); // Pop children pass managers
else
break;
}
- MPPassManager *MPP = dynamic_cast<MPPassManager *>(PMS.top());
- assert(MPP && "Unable to find Module Pass Manager");
- MPP->add(this);
+ PMS.top()->add(this);
}
/// Find appropriate Function Pass Manager or Call Graph Pass Manager