diff options
author | Devang Patel <dpatel@apple.com> | 2007-01-17 21:19:23 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2007-01-17 21:19:23 +0000 |
commit | 23f8aa921e0a31e986bea0c550fb6701747b2edf (patch) | |
tree | cce8929dba470c23a2742e385cc5e0abca6e61be | |
parent | fd41843243caf36890753da9b2cc669f444e53f5 (diff) | |
download | bcm5719-llvm-23f8aa921e0a31e986bea0c550fb6701747b2edf.tar.gz bcm5719-llvm-23f8aa921e0a31e986bea0c550fb6701747b2edf.zip |
Update ModulePass::assignPassManager() to take into account Preferred
Pass Manager Type.
llvm-svn: 33308
-rw-r--r-- | llvm/lib/VMCore/PassManager.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/llvm/lib/VMCore/PassManager.cpp b/llvm/lib/VMCore/PassManager.cpp index a137a7f70f7..5d391444caa 100644 --- a/llvm/lib/VMCore/PassManager.cpp +++ b/llvm/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 |