summaryrefslogtreecommitdiffstats
path: root/llvm/lib/IR/LegacyPassManager.cpp
diff options
context:
space:
mode:
authorFangrui Song <maskray@google.com>2019-11-28 14:00:12 -0800
committerFangrui Song <maskray@google.com>2019-11-28 14:06:55 -0800
commit4adddbd8ad4f71e8ce4cb4a38c755b126c5e9eff (patch)
treeb14e407fd421039f2345c55c2128d378f8c6ae06 /llvm/lib/IR/LegacyPassManager.cpp
parent1abd4c94d7575e4cd288e0024c1ec79f17b048a9 (diff)
downloadbcm5719-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.cpp22
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() {}
OpenPOWER on IntegriCloud