From 44b0d29802ea87d68648dec798fd564eb3cbaa32 Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Wed, 17 Jan 2007 21:19:23 +0000 Subject: [PATCH] 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 --- lib/VMCore/PassManager.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/VMCore/PassManager.cpp b/lib/VMCore/PassManager.cpp index a137a7f70f7..5d391444caa 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(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