[LegacyPassManager] Simplify FunctionPass::assignPassManager
And make it clear the parameter PreferredType is unused for FunctionPass.
GitOrigin-RevId: 4adddbd8ad4f71e8ce4cb4a38c755b126c5e9eff
diff --git a/lib/IR/LegacyPassManager.cpp b/lib/IR/LegacyPassManager.cpp
index f3c1372..90239bb 100644
--- a/lib/IR/LegacyPassManager.cpp
+++ b/lib/IR/LegacyPassManager.cpp
@@ -1786,36 +1786,32 @@
/// 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() {}