Lines Matching refs:P
89 Pass *P, Module &M, int64_t Delta, unsigned CountBefore, in emitInstrCountChangedRemark() argument
96 if (P->getAsPMDataManager()) in emitInstrCountChangedRemark()
150 R << DiagnosticInfoOptimizationBase::Argument("Pass", P->getPassName()) in emitInstrCountChangedRemark()
160 std::string PassName = P->getPassName().str(); in emitInstrCountChangedRemark()
215 OS << P->getPassName() << "'"; in print()
260 void add(Pass *P) { in add() argument
261 schedulePass(P); in add()
417 void addLowerLevelRequiredPass(Pass *P, Pass *RequiredPass) override;
480 void add(Pass *P) { in add() argument
481 schedulePass(P); in add()
565 PMTopLevelManager::setLastUser(ArrayRef<Pass*> AnalysisPasses, Pass *P) { in setLastUser() argument
567 if (P->getResolver()) in setLastUser()
568 PDepth = P->getResolver()->getPMDataManager().getDepth(); in setLastUser()
575 LastUserOfAP = P; in setLastUser()
576 InversedLastUser[P].insert(AP); in setLastUser()
578 if (P == AP) in setLastUser()
599 setLastUser(LastUses, P); in setLastUser()
603 if (P->getResolver()) in setLastUser()
604 setLastUser(LastPMUses, P->getResolver()->getPMDataManager().getAsPass()); in setLastUser()
610 LastUser[L] = P; in setLastUser()
611 InversedLastUser[P].insert(LastUsedByAP.begin(), LastUsedByAP.end()); in setLastUser()
618 Pass *P) { in collectLastUses() argument
619 auto DMI = InversedLastUser.find(P); in collectLastUses()
627 AnalysisUsage *PMTopLevelManager::findAnalysisUsage(Pass *P) { in findAnalysisUsage() argument
629 auto DMI = AnUsageMap.find(P); in findAnalysisUsage()
640 P->getAnalysisUsage(AU); in findAnalysisUsage()
654 AnUsageMap[P] = &Node->AU; in findAnalysisUsage()
663 void PMTopLevelManager::schedulePass(Pass *P) { in schedulePass() argument
669 P->preparePassManager(activeStack); in schedulePass()
674 const PassInfo *PI = findAnalysisPassInfo(P->getPassID()); in schedulePass()
675 if (PI && PI->isAnalysis() && findAnalysisPass(P->getPassID())) { in schedulePass()
677 AnUsageMap.erase(P); in schedulePass()
678 delete P; in schedulePass()
682 AnalysisUsage *AnUsage = findAnalysisUsage(P); in schedulePass()
697 dbgs() << "Pass '" << P->getPassName() << "' is not initialized." << "\n"; in schedulePass()
716 if (P->getPotentialPassManagerType () == in schedulePass()
720 else if (P->getPotentialPassManagerType () > in schedulePass()
736 if (ImmutablePass *IP = P->getAsImmutablePass()) { in schedulePass()
741 P->setResolver(AR); in schedulePass()
742 DM->initializeAnalysisImpl(P); in schedulePass()
750 P->createPrinterPass(dbgs(), ("*** IR Dump Before " + P->getPassName() + in schedulePass()
757 P->assignPassManager(activeStack, getTopLevelPassManagerType()); in schedulePass()
761 P->createPrinterPass(dbgs(), ("*** IR Dump After " + P->getPassName() + in schedulePass()
774 if (Pass *P = ImmutablePassMap.lookup(AID)) in findAnalysisPass() local
775 return P; in findAnalysisPass()
779 if (Pass *P = PassManager->findAnalysisPass(AID, false)) in findAnalysisPass() local
780 return P; in findAnalysisPass()
784 if (Pass *P = IndirectPassManager->findAnalysisPass(AID, false)) in findAnalysisPass() local
785 return P; in findAnalysisPass()
801 void PMTopLevelManager::addImmutablePass(ImmutablePass *P) { in addImmutablePass() argument
802 P->initializePass(); in addImmutablePass()
803 ImmutablePasses.push_back(P); in addImmutablePass()
808 AnalysisID AID = P->getPassID(); in addImmutablePass()
809 ImmutablePassMap[AID] = P; in addImmutablePass()
816 ImmutablePassMap[ImmPI->getTypeInfo()] = P; in addImmutablePass()
843 for (ImmutablePass *P : ImmutablePasses) in dumpArguments()
844 if (const PassInfo *PI = findAnalysisPassInfo(P->getPassID())) { in dumpArguments()
868 for (ImmutablePass *P : ImmutablePasses) in ~PMTopLevelManager()
869 delete P; in ~PMTopLevelManager()
876 void PMDataManager::recordAvailableAnalysis(Pass *P) { in recordAvailableAnalysis() argument
877 AnalysisID PI = P->getPassID(); in recordAvailableAnalysis()
879 AvailableAnalysis[PI] = P; in recordAvailableAnalysis()
888 AvailableAnalysis[PI->getTypeInfo()] = P; in recordAvailableAnalysis()
893 bool PMDataManager::preserveHigherLevelAnalysis(Pass *P) { in preserveHigherLevelAnalysis() argument
894 AnalysisUsage *AnUsage = TPM->findAnalysisUsage(P); in preserveHigherLevelAnalysis()
909 void PMDataManager::verifyPreservedAnalysis(Pass *P) { in verifyPreservedAnalysis() argument
914 AnalysisUsage *AnUsage = TPM->findAnalysisUsage(P); in verifyPreservedAnalysis()
927 void PMDataManager::removeNotPreservedAnalysis(Pass *P) { in removeNotPreservedAnalysis() argument
928 AnalysisUsage *AnUsage = TPM->findAnalysisUsage(P); in removeNotPreservedAnalysis()
941 dbgs() << " -- '" << P->getPassName() << "' is not preserving '"; in removeNotPreservedAnalysis()
963 dbgs() << " -- '" << P->getPassName() << "' is not preserving '"; in removeNotPreservedAnalysis()
973 void PMDataManager::removeDeadPasses(Pass *P, StringRef Msg, in removeDeadPasses() argument
982 TPM->collectLastUses(DeadPasses, P); in removeDeadPasses()
985 dbgs() << " -*- '" << P->getPassName(); in removeDeadPasses()
990 for (Pass *P : DeadPasses) in removeDeadPasses()
991 freePass(P, Msg, DBG_STR); in removeDeadPasses()
994 void PMDataManager::freePass(Pass *P, StringRef Msg, in freePass() argument
996 dumpPassInfo(P, FREEING_MSG, DBG_STR, Msg); in freePass()
1000 PassManagerPrettyStackEntry X(P); in freePass()
1001 TimeRegion PassTimer(getPassTimer(P)); in freePass()
1003 P->releaseMemory(); in freePass()
1006 AnalysisID PI = P->getPassID(); in freePass()
1016 if (Pos != AvailableAnalysis.end() && Pos->second == P) in freePass()
1024 void PMDataManager::add(Pass *P, bool ProcessAnalysis) { in add() argument
1028 P->setResolver(AR); in add()
1036 PassVector.push_back(P); in add()
1047 collectRequiredAndUsedAnalyses(UsedPasses, ReqAnalysisNotAvailable, P); in add()
1069 if (!P->getAsPMDataManager()) in add()
1070 LastUses.push_back(P); in add()
1071 TPM->setLastUser(LastUses, P); in add()
1083 this->addLowerLevelRequiredPass(P, AnalysisPass); in add()
1088 removeNotPreservedAnalysis(P); in add()
1089 recordAvailableAnalysis(P); in add()
1092 PassVector.push_back(P); in add()
1101 Pass *P) { in collectRequiredAndUsedAnalyses() argument
1102 AnalysisUsage *AnUsage = TPM->findAnalysisUsage(P); in collectRequiredAndUsedAnalyses()
1120 void PMDataManager::initializeAnalysisImpl(Pass *P) { in initializeAnalysisImpl() argument
1121 AnalysisUsage *AnUsage = TPM->findAnalysisUsage(P); in initializeAnalysisImpl()
1129 AnalysisResolver *AR = P->getResolver(); in initializeAnalysisImpl()
1153 void PMDataManager::dumpLastUses(Pass *P, unsigned Offset) const{ in dumpLastUses() argument
1163 TPM->collectLastUses(LUses, P); in dumpLastUses()
1165 for (Pass *P : LUses) { in dumpLastUses()
1167 P->dumpPassStructure(0); in dumpLastUses()
1172 for (Pass *P : PassVector) { in dumpPassArguments()
1173 if (PMDataManager *PMD = P->getAsPMDataManager()) in dumpPassArguments()
1177 TPM->findAnalysisPassInfo(P->getPassID())) in dumpPassArguments()
1183 void PMDataManager::dumpPassInfo(Pass *P, enum PassDebuggingString S1, in dumpPassInfo() argument
1192 dbgs() << "Executing Pass '" << P->getPassName(); in dumpPassInfo()
1195 dbgs() << "Made Modification '" << P->getPassName(); in dumpPassInfo()
1198 dbgs() << " Freeing Pass '" << P->getPassName(); in dumpPassInfo()
1224 void PMDataManager::dumpRequiredSet(const Pass *P) const { in dumpRequiredSet()
1229 P->getAnalysisUsage(analysisUsage); in dumpRequiredSet()
1230 dumpAnalysisUsage("Required", P, analysisUsage.getRequiredSet()); in dumpRequiredSet()
1233 void PMDataManager::dumpPreservedSet(const Pass *P) const { in dumpPreservedSet()
1238 P->getAnalysisUsage(analysisUsage); in dumpPreservedSet()
1239 dumpAnalysisUsage("Preserved", P, analysisUsage.getPreservedSet()); in dumpPreservedSet()
1242 void PMDataManager::dumpUsedSet(const Pass *P) const { in dumpUsedSet()
1247 P->getAnalysisUsage(analysisUsage); in dumpUsedSet()
1248 dumpAnalysisUsage("Used", P, analysisUsage.getUsedSet()); in dumpUsedSet()
1251 void PMDataManager::dumpAnalysisUsage(StringRef Msg, const Pass *P, in dumpAnalysisUsage() argument
1256 dbgs() << (const void*)P << std::string(getDepth()*2+3, ' ') << Msg << " Analyses:"; in dumpAnalysisUsage()
1275 void PMDataManager::addLowerLevelRequiredPass(Pass *P, Pass *RequiredPass) { in addLowerLevelRequiredPass() argument
1292 dbgs() << "' required by '" << P->getPassName() << "'\n"; in addLowerLevelRequiredPass()
1297 std::tuple<Pass *, bool> PMDataManager::getOnTheFlyPass(Pass *P, AnalysisID PI, in getOnTheFlyPass() argument
1304 for (Pass *P : PassVector) in ~PMDataManager()
1305 delete P; in ~PMDataManager()
1316 AnalysisResolver::findImplPass(Pass *P, AnalysisID AnalysisPI, Function &F) { in findImplPass() argument
1317 return PM.getOnTheFlyPass(P, AnalysisPI, F); in findImplPass()
1340 void FunctionPassManager::add(Pass *P) { in add() argument
1341 FPM->add(P); in add()
1608 void MPPassManager::addLowerLevelRequiredPass(Pass *P, Pass *RequiredPass) { in addLowerLevelRequiredPass() argument
1610 assert(P->getPotentialPassManagerType() == PMT_ModulePassManager && in addLowerLevelRequiredPass()
1612 assert((P->getPotentialPassManagerType() < in addLowerLevelRequiredPass()
1616 legacy::FunctionPassManagerImpl *FPP = OnTheFlyManagers[P]; in addLowerLevelRequiredPass()
1622 OnTheFlyManagers[P] = FPP; in addLowerLevelRequiredPass()
1641 FPP->setLastUser(LU, P); in addLowerLevelRequiredPass()
1675 void PassManager::add(Pass *P) { in add() argument
1676 PM->add(P); in add()