diff options
| author | Chris Lattner <sabre@nondot.org> | 2010-01-22 05:37:10 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2010-01-22 05:37:10 +0000 |
| commit | 9efd4fcceb95b12cfc59cf1a9df6f4c7a855d040 (patch) | |
| tree | bf06f60153ffab5522e6a37f2b5ffe606dddb6c8 /llvm/lib/VMCore | |
| parent | 2fa26e5fd08e97a784c6de5cb3034eab6e476c98 (diff) | |
| download | bcm5719-llvm-9efd4fcceb95b12cfc59cf1a9df6f4c7a855d040.tar.gz bcm5719-llvm-9efd4fcceb95b12cfc59cf1a9df6f4c7a855d040.zip | |
eliminate a bunch more unneeded dynamic_cast's.
llvm-svn: 94156
Diffstat (limited to 'llvm/lib/VMCore')
| -rw-r--r-- | llvm/lib/VMCore/PassManager.cpp | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/llvm/lib/VMCore/PassManager.cpp b/llvm/lib/VMCore/PassManager.cpp index 7b02c933591..7754da8781e 100644 --- a/llvm/lib/VMCore/PassManager.cpp +++ b/llvm/lib/VMCore/PassManager.cpp @@ -1479,7 +1479,7 @@ Pass* MPPassManager::getOnTheFlyPass(Pass *MP, const PassInfo *PI, Function &F){ FPP->releaseMemoryOnTheFly(); FPP->run(F); - return (dynamic_cast<PMTopLevelManager *>(FPP))->findAnalysisPass(PI); + return ((PMTopLevelManager*)FPP)->findAnalysisPass(PI); } @@ -1626,16 +1626,18 @@ void FunctionPass::assignPassManager(PMStack &PMS, PassManagerType PreferredType) { // Find Module Pass Manager - while(!PMS.empty()) { + while (!PMS.empty()) { if (PMS.top()->getPassManagerType() > PMT_FunctionPassManager) PMS.pop(); else break; } - FPPassManager *FPP = dynamic_cast<FPPassManager *>(PMS.top()); - // Create new Function Pass Manager - if (!FPP) { + // Create new Function Pass Manager if needed. + FPPassManager *FPP; + if (PMS.top()->getPassManagerType() == PMT_FunctionPassManager) { + FPP = (FPPassManager *)PMS.top(); + } else { assert(!PMS.empty() && "Unable to create Function Pass Manager"); PMDataManager *PMD = PMS.top(); @@ -1663,17 +1665,16 @@ void FunctionPass::assignPassManager(PMStack &PMS, /// in the PM Stack and add self into that manager. void BasicBlockPass::assignPassManager(PMStack &PMS, PassManagerType PreferredType) { - BBPassManager *BBP = NULL; + BBPassManager *BBP; // Basic Pass Manager is a leaf pass manager. It does not handle // any other pass manager. - if (!PMS.empty()) - BBP = dynamic_cast<BBPassManager *>(PMS.top()); - - // If leaf manager is not Basic Block Pass manager then create new - // basic Block Pass manager. - - if (!BBP) { + if (!PMS.empty() && + PMS.top()->getPassManagerType() == PMT_BasicBlockPassManager) { + BBP = (BBPassManager *)PMS.top(); + } else { + // If leaf manager is not Basic Block Pass manager then create new + // basic Block Pass manager. assert(!PMS.empty() && "Unable to create BasicBlock Pass Manager"); PMDataManager *PMD = PMS.top(); |

