diff options
author | Fangrui Song <maskray@google.com> | 2019-11-28 14:00:12 -0800 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2019-11-28 14:06:55 -0800 |
commit | 4adddbd8ad4f71e8ce4cb4a38c755b126c5e9eff (patch) | |
tree | b14e407fd421039f2345c55c2128d378f8c6ae06 /llvm/lib/IR/LegacyPassManager.cpp | |
parent | 1abd4c94d7575e4cd288e0024c1ec79f17b048a9 (diff) | |
download | bcm5719-llvm-4adddbd8ad4f71e8ce4cb4a38c755b126c5e9eff.tar.gz bcm5719-llvm-4adddbd8ad4f71e8ce4cb4a38c755b126c5e9eff.zip |
[LegacyPassManager] Simplify FunctionPass::assignPassManager
And make it clear the parameter PreferredType is unused for FunctionPass.
Diffstat (limited to 'llvm/lib/IR/LegacyPassManager.cpp')
-rw-r--r-- | llvm/lib/IR/LegacyPassManager.cpp | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/llvm/lib/IR/LegacyPassManager.cpp b/llvm/lib/IR/LegacyPassManager.cpp index f3c13728d0c..90239bb7629 100644 --- a/llvm/lib/IR/LegacyPassManager.cpp +++ b/llvm/lib/IR/LegacyPassManager.cpp @@ -1786,36 +1786,32 @@ void ModulePass::assignPassManager(PMStack &PMS, /// Find appropriate Function Pass Manager or Call Graph Pass Manager /// in the PM Stack and add self into that manager. void FunctionPass::assignPassManager(PMStack &PMS, - PassManagerType PreferredType) { + PassManagerType /*PreferredType*/) { // Find Function Pass Manager - while (PMS.top()->getPassManagerType() > PMT_FunctionPassManager) + PMDataManager *PM; + while (PM = PMS.top(), PM->getPassManagerType() > PMT_FunctionPassManager) PMS.pop(); // Create new Function Pass Manager if needed. - FPPassManager *FPP; - if (PMS.top()->getPassManagerType() == PMT_FunctionPassManager) { - FPP = (FPPassManager *)PMS.top(); - } else { - PMDataManager *PMD = PMS.top(); - + if (PM->getPassManagerType() != PMT_FunctionPassManager) { // [1] Create new Function Pass Manager - FPP = new FPPassManager(); + auto *FPP = new FPPassManager; FPP->populateInheritedAnalysis(PMS); // [2] Set up new manager's top level manager - PMTopLevelManager *TPM = PMD->getTopLevelManager(); - TPM->addIndirectPassManager(FPP); + PM->getTopLevelManager()->addIndirectPassManager(FPP); // [3] Assign manager to manage this new manager. This may create // and push new managers into PMS - FPP->assignPassManager(PMS, PMD->getPassManagerType()); + FPP->assignPassManager(PMS, PM->getPassManagerType()); // [4] Push new manager into PMS PMS.push(FPP); + PM = FPP; } // Assign FPP as the manager of this pass. - FPP->add(this); + PM->add(this); } PassManagerBase::~PassManagerBase() {} |