Lines Matching refs:P

88     Pass *P, Module &M, int64_t Delta, unsigned CountBefore,  in emitInstrCountChangedRemark()  argument
95 if (P->getAsPMDataManager()) in emitInstrCountChangedRemark()
149 R << DiagnosticInfoOptimizationBase::Argument("Pass", P->getPassName()) in emitInstrCountChangedRemark()
159 std::string PassName = P->getPassName().str(); in emitInstrCountChangedRemark()
214 OS << P->getPassName() << "'"; in print()
259 void add(Pass *P) { in add() argument
260 schedulePass(P); in add()
416 void addLowerLevelRequiredPass(Pass *P, Pass *RequiredPass) override;
479 void add(Pass *P) { in add() argument
480 schedulePass(P); in add()
559 PMTopLevelManager::setLastUser(ArrayRef<Pass*> AnalysisPasses, Pass *P) { in setLastUser() argument
561 if (P->getResolver()) in setLastUser()
562 PDepth = P->getResolver()->getPMDataManager().getDepth(); in setLastUser()
569 LastUserOfAP = P; in setLastUser()
570 InversedLastUser[P].insert(AP); in setLastUser()
572 if (P == AP) in setLastUser()
593 setLastUser(LastUses, P); in setLastUser()
597 if (P->getResolver()) in setLastUser()
598 setLastUser(LastPMUses, P->getResolver()->getPMDataManager().getAsPass()); in setLastUser()
604 LastUser[L] = P; in setLastUser()
605 InversedLastUser[P].insert(LastUsedByAP.begin(), LastUsedByAP.end()); in setLastUser()
612 Pass *P) { in collectLastUses() argument
613 auto DMI = InversedLastUser.find(P); in collectLastUses()
621 AnalysisUsage *PMTopLevelManager::findAnalysisUsage(Pass *P) { in findAnalysisUsage() argument
623 auto DMI = AnUsageMap.find(P); in findAnalysisUsage()
634 P->getAnalysisUsage(AU); in findAnalysisUsage()
648 AnUsageMap[P] = &Node->AU; in findAnalysisUsage()
657 void PMTopLevelManager::schedulePass(Pass *P) { in schedulePass() argument
663 P->preparePassManager(activeStack); in schedulePass()
668 const PassInfo *PI = findAnalysisPassInfo(P->getPassID()); in schedulePass()
669 if (PI && PI->isAnalysis() && findAnalysisPass(P->getPassID())) { in schedulePass()
671 AnUsageMap.erase(P); in schedulePass()
672 delete P; in schedulePass()
676 AnalysisUsage *AnUsage = findAnalysisUsage(P); in schedulePass()
691 dbgs() << "Pass '" << P->getPassName() << "' is not initialized." << "\n"; in schedulePass()
710 if (P->getPotentialPassManagerType () == in schedulePass()
714 else if (P->getPotentialPassManagerType () > in schedulePass()
730 if (ImmutablePass *IP = P->getAsImmutablePass()) { in schedulePass()
735 P->setResolver(AR); in schedulePass()
736 DM->initializeAnalysisImpl(P); in schedulePass()
744 P->createPrinterPass(dbgs(), ("*** IR Dump Before " + P->getPassName() + in schedulePass()
751 P->assignPassManager(activeStack, getTopLevelPassManagerType()); in schedulePass()
755 P->createPrinterPass(dbgs(), ("*** IR Dump After " + P->getPassName() + in schedulePass()
768 if (Pass *P = ImmutablePassMap.lookup(AID)) in findAnalysisPass() local
769 return P; in findAnalysisPass()
773 if (Pass *P = PassManager->findAnalysisPass(AID, false)) in findAnalysisPass() local
774 return P; in findAnalysisPass()
778 if (Pass *P = IndirectPassManager->findAnalysisPass(AID, false)) in findAnalysisPass() local
779 return P; in findAnalysisPass()
795 void PMTopLevelManager::addImmutablePass(ImmutablePass *P) { in addImmutablePass() argument
796 P->initializePass(); in addImmutablePass()
797 ImmutablePasses.push_back(P); in addImmutablePass()
802 AnalysisID AID = P->getPassID(); in addImmutablePass()
803 ImmutablePassMap[AID] = P; in addImmutablePass()
810 ImmutablePassMap[ImmPI->getTypeInfo()] = P; in addImmutablePass()
838 for (ImmutablePass *P : ImmutablePasses) in dumpArguments()
839 if (const PassInfo *PI = findAnalysisPassInfo(P->getPassID())) { in dumpArguments()
863 for (ImmutablePass *P : ImmutablePasses) in ~PMTopLevelManager()
864 delete P; in ~PMTopLevelManager()
871 void PMDataManager::recordAvailableAnalysis(Pass *P) { in recordAvailableAnalysis() argument
872 AnalysisID PI = P->getPassID(); in recordAvailableAnalysis()
874 AvailableAnalysis[PI] = P; in recordAvailableAnalysis()
883 AvailableAnalysis[PI->getTypeInfo()] = P; in recordAvailableAnalysis()
888 bool PMDataManager::preserveHigherLevelAnalysis(Pass *P) { in preserveHigherLevelAnalysis() argument
889 AnalysisUsage *AnUsage = TPM->findAnalysisUsage(P); in preserveHigherLevelAnalysis()
904 void PMDataManager::verifyPreservedAnalysis(Pass *P) { in verifyPreservedAnalysis() argument
909 AnalysisUsage *AnUsage = TPM->findAnalysisUsage(P); in verifyPreservedAnalysis()
922 void PMDataManager::removeNotPreservedAnalysis(Pass *P) { in removeNotPreservedAnalysis() argument
923 AnalysisUsage *AnUsage = TPM->findAnalysisUsage(P); in removeNotPreservedAnalysis()
936 dbgs() << " -- '" << P->getPassName() << "' is not preserving '"; in removeNotPreservedAnalysis()
958 dbgs() << " -- '" << P->getPassName() << "' is not preserving '"; in removeNotPreservedAnalysis()
968 void PMDataManager::removeDeadPasses(Pass *P, StringRef Msg, in removeDeadPasses() argument
977 TPM->collectLastUses(DeadPasses, P); in removeDeadPasses()
980 dbgs() << " -*- '" << P->getPassName(); in removeDeadPasses()
985 for (Pass *P : DeadPasses) in removeDeadPasses()
986 freePass(P, Msg, DBG_STR); in removeDeadPasses()
989 void PMDataManager::freePass(Pass *P, StringRef Msg, in freePass() argument
991 dumpPassInfo(P, FREEING_MSG, DBG_STR, Msg); in freePass()
995 PassManagerPrettyStackEntry X(P); in freePass()
996 TimeRegion PassTimer(getPassTimer(P)); in freePass()
998 P->releaseMemory(); in freePass()
1001 AnalysisID PI = P->getPassID(); in freePass()
1011 if (Pos != AvailableAnalysis.end() && Pos->second == P) in freePass()
1019 void PMDataManager::add(Pass *P, bool ProcessAnalysis) { in add() argument
1023 P->setResolver(AR); in add()
1031 PassVector.push_back(P); in add()
1042 collectRequiredAndUsedAnalyses(UsedPasses, ReqAnalysisNotAvailable, P); in add()
1064 if (!P->getAsPMDataManager()) in add()
1065 LastUses.push_back(P); in add()
1066 TPM->setLastUser(LastUses, P); in add()
1078 this->addLowerLevelRequiredPass(P, AnalysisPass); in add()
1083 removeNotPreservedAnalysis(P); in add()
1084 recordAvailableAnalysis(P); in add()
1087 PassVector.push_back(P); in add()
1096 Pass *P) { in collectRequiredAndUsedAnalyses() argument
1097 AnalysisUsage *AnUsage = TPM->findAnalysisUsage(P); in collectRequiredAndUsedAnalyses()
1115 void PMDataManager::initializeAnalysisImpl(Pass *P) { in initializeAnalysisImpl() argument
1116 AnalysisUsage *AnUsage = TPM->findAnalysisUsage(P); in initializeAnalysisImpl()
1124 AnalysisResolver *AR = P->getResolver(); in initializeAnalysisImpl()
1148 void PMDataManager::dumpLastUses(Pass *P, unsigned Offset) const{ in dumpLastUses() argument
1158 TPM->collectLastUses(LUses, P); in dumpLastUses()
1160 for (Pass *P : LUses) { in dumpLastUses()
1162 P->dumpPassStructure(0); in dumpLastUses()
1167 for (Pass *P : PassVector) { in dumpPassArguments()
1168 if (PMDataManager *PMD = P->getAsPMDataManager()) in dumpPassArguments()
1172 TPM->findAnalysisPassInfo(P->getPassID())) in dumpPassArguments()
1178 void PMDataManager::dumpPassInfo(Pass *P, enum PassDebuggingString S1, in dumpPassInfo() argument
1187 dbgs() << "Executing Pass '" << P->getPassName(); in dumpPassInfo()
1190 dbgs() << "Made Modification '" << P->getPassName(); in dumpPassInfo()
1193 dbgs() << " Freeing Pass '" << P->getPassName(); in dumpPassInfo()
1219 void PMDataManager::dumpRequiredSet(const Pass *P) const { in dumpRequiredSet()
1224 P->getAnalysisUsage(analysisUsage); in dumpRequiredSet()
1225 dumpAnalysisUsage("Required", P, analysisUsage.getRequiredSet()); in dumpRequiredSet()
1228 void PMDataManager::dumpPreservedSet(const Pass *P) const { in dumpPreservedSet()
1233 P->getAnalysisUsage(analysisUsage); in dumpPreservedSet()
1234 dumpAnalysisUsage("Preserved", P, analysisUsage.getPreservedSet()); in dumpPreservedSet()
1237 void PMDataManager::dumpUsedSet(const Pass *P) const { in dumpUsedSet()
1242 P->getAnalysisUsage(analysisUsage); in dumpUsedSet()
1243 dumpAnalysisUsage("Used", P, analysisUsage.getUsedSet()); in dumpUsedSet()
1246 void PMDataManager::dumpAnalysisUsage(StringRef Msg, const Pass *P, in dumpAnalysisUsage() argument
1251 dbgs() << (const void*)P << std::string(getDepth()*2+3, ' ') << Msg << " Analyses:"; in dumpAnalysisUsage()
1270 void PMDataManager::addLowerLevelRequiredPass(Pass *P, Pass *RequiredPass) { in addLowerLevelRequiredPass() argument
1287 dbgs() << "' required by '" << P->getPassName() << "'\n"; in addLowerLevelRequiredPass()
1292 std::tuple<Pass *, bool> PMDataManager::getOnTheFlyPass(Pass *P, AnalysisID PI, in getOnTheFlyPass() argument
1299 for (Pass *P : PassVector) in ~PMDataManager()
1300 delete P; in ~PMDataManager()
1311 AnalysisResolver::findImplPass(Pass *P, AnalysisID AnalysisPI, Function &F) { in findImplPass() argument
1312 return PM.getOnTheFlyPass(P, AnalysisPI, F); in findImplPass()
1335 void FunctionPassManager::add(Pass *P) { in add() argument
1336 FPM->add(P); in add()
1598 void MPPassManager::addLowerLevelRequiredPass(Pass *P, Pass *RequiredPass) { in addLowerLevelRequiredPass() argument
1600 assert(P->getPotentialPassManagerType() == PMT_ModulePassManager && in addLowerLevelRequiredPass()
1602 assert((P->getPotentialPassManagerType() < in addLowerLevelRequiredPass()
1606 legacy::FunctionPassManagerImpl *FPP = OnTheFlyManagers[P]; in addLowerLevelRequiredPass()
1612 OnTheFlyManagers[P] = FPP; in addLowerLevelRequiredPass()
1631 FPP->setLastUser(LU, P); in addLowerLevelRequiredPass()
1665 void PassManager::add(Pass *P) { in add() argument
1666 PM->add(P); in add()