// FPM is the top level manager.
FPM->setTopLevelManager(FPM);
// FPM is the top level manager.
FPM->setTopLevelManager(FPM);
- PMDataManager *PMD = dynamic_cast<PMDataManager *>(FPM);
- AnalysisResolver *AR = new AnalysisResolver(*PMD);
+ AnalysisResolver *AR = new AnalysisResolver(*FPM);
FPM->setResolver(AR);
MP = P;
FPM->setResolver(AR);
MP = P;
// [3] Assign manager to manage this new manager. This may create
// and push new managers into PMS
// [3] Assign manager to manage this new manager. This may create
// and push new managers into PMS
- Pass *P = dynamic_cast<Pass *>(FPP);
// If Call Graph Pass Manager is active then use it to manage
// this new Function Pass manager.
if (PMD->getPassManagerType() == PMT_CallGraphPassManager)
// If Call Graph Pass Manager is active then use it to manage
// this new Function Pass manager.
if (PMD->getPassManagerType() == PMT_CallGraphPassManager)
- P->assignPassManager(PMS, PMT_CallGraphPassManager);
+ FPP->assignPassManager(PMS, PMT_CallGraphPassManager);
- P->assignPassManager(PMS);
+ FPP->assignPassManager(PMS);
// [4] Push new manager into PMS
PMS.push(FPP);
// [4] Push new manager into PMS
PMS.push(FPP);
// [3] Assign manager to manage this new manager. This may create
// and push new managers into PMS
// [3] Assign manager to manage this new manager. This may create
// and push new managers into PMS
- Pass *P = dynamic_cast<Pass *>(BBP);
- P->assignPassManager(PMS);
+ BBP->assignPassManager(PMS);
// [4] Push new manager into PMS
PMS.push(BBP);
// [4] Push new manager into PMS
PMS.push(BBP);