Eliminate a few unnecessary uses of dynamic_cast.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48318 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman 2008-03-13 02:08:36 +00:00
parent 9769cee9f7
commit 59ef015c65

View File

@ -1038,8 +1038,7 @@ FunctionPassManager::FunctionPassManager(ModuleProvider *P) {
// FPM is the top level manager. // FPM is the top level manager.
FPM->setTopLevelManager(FPM); FPM->setTopLevelManager(FPM);
PMDataManager *PMD = dynamic_cast<PMDataManager *>(FPM); AnalysisResolver *AR = new AnalysisResolver(*FPM);
AnalysisResolver *AR = new AnalysisResolver(*PMD);
FPM->setResolver(AR); FPM->setResolver(AR);
MP = P; MP = P;
@ -1471,14 +1470,13 @@ void FunctionPass::assignPassManager(PMStack &PMS,
// [3] Assign manager to manage this new manager. This may create // [3] Assign manager to manage this new manager. This may create
// and push new managers into PMS // and push new managers into PMS
Pass *P = dynamic_cast<Pass *>(FPP);
// If Call Graph Pass Manager is active then use it to manage // If Call Graph Pass Manager is active then use it to manage
// this new Function Pass manager. // this new Function Pass manager.
if (PMD->getPassManagerType() == PMT_CallGraphPassManager) if (PMD->getPassManagerType() == PMT_CallGraphPassManager)
P->assignPassManager(PMS, PMT_CallGraphPassManager); FPP->assignPassManager(PMS, PMT_CallGraphPassManager);
else else
P->assignPassManager(PMS); FPP->assignPassManager(PMS);
// [4] Push new manager into PMS // [4] Push new manager into PMS
PMS.push(FPP); PMS.push(FPP);
@ -1517,8 +1515,7 @@ void BasicBlockPass::assignPassManager(PMStack &PMS,
// [3] Assign manager to manage this new manager. This may create // [3] Assign manager to manage this new manager. This may create
// and push new managers into PMS // and push new managers into PMS
Pass *P = dynamic_cast<Pass *>(BBP); BBP->assignPassManager(PMS);
P->assignPassManager(PMS);
// [4] Push new manager into PMS // [4] Push new manager into PMS
PMS.push(BBP); PMS.push(BBP);