Lines Matching refs:IR

133 template <typename IRUnitT> static const IRUnitT *unwrapIR(Any IR) {  in unwrapIR()  argument
134 const IRUnitT **IRPtr = llvm::any_cast<const IRUnitT *>(&IR); in unwrapIR()
154 const Module *unwrapModule(Any IR, bool Force = false) { in unwrapModule() argument
155 if (const auto *M = unwrapIR<Module>(IR)) in unwrapModule()
158 if (const auto *F = unwrapIR<Function>(IR)) { in unwrapModule()
165 if (const auto *C = unwrapIR<LazyCallGraph::SCC>(IR)) { in unwrapModule()
176 if (const auto *L = unwrapIR<Loop>(IR)) { in unwrapModule()
218 std::string getIRName(Any IR) { in getIRName() argument
219 if (unwrapIR<Module>(IR)) in getIRName()
222 if (const auto *F = unwrapIR<Function>(IR)) in getIRName()
225 if (const auto *C = unwrapIR<LazyCallGraph::SCC>(IR)) in getIRName()
228 if (const auto *L = unwrapIR<Loop>(IR)) in getIRName()
231 if (const auto *MF = unwrapIR<MachineFunction>(IR)) in getIRName()
253 bool shouldPrintIR(Any IR) { in shouldPrintIR() argument
254 if (const auto *M = unwrapIR<Module>(IR)) in shouldPrintIR()
257 if (const auto *F = unwrapIR<Function>(IR)) in shouldPrintIR()
260 if (const auto *C = unwrapIR<LazyCallGraph::SCC>(IR)) in shouldPrintIR()
263 if (const auto *L = unwrapIR<Loop>(IR)) in shouldPrintIR()
270 void unwrapAndPrint(raw_ostream &OS, Any IR) { in unwrapAndPrint() argument
271 if (!shouldPrintIR(IR)) in unwrapAndPrint()
275 auto *M = unwrapModule(IR); in unwrapAndPrint()
281 if (const auto *M = unwrapIR<Module>(IR)) { in unwrapAndPrint()
286 if (const auto *F = unwrapIR<Function>(IR)) { in unwrapAndPrint()
291 if (const auto *C = unwrapIR<LazyCallGraph::SCC>(IR)) { in unwrapAndPrint()
296 if (const auto *L = unwrapIR<Loop>(IR)) { in unwrapAndPrint()
327 const Module *getModuleForComparison(Any IR) { in getModuleForComparison() argument
328 if (const auto *M = unwrapIR<Module>(IR)) in getModuleForComparison()
330 if (const auto *C = unwrapIR<LazyCallGraph::SCC>(IR)) in getModuleForComparison()
341 bool isInteresting(Any IR, StringRef PassID, StringRef PassName) { in isInteresting() argument
344 if (const auto *F = unwrapIR<Function>(IR)) in isInteresting()
356 void ChangeReporter<T>::saveIRBeforePass(Any IR, StringRef PassID, in saveIRBeforePass() argument
362 handleInitialIR(IR); in saveIRBeforePass()
370 if (!isInteresting(IR, PassID, PassName)) in saveIRBeforePass()
375 generateIRRepresentation(IR, PassID, Data); in saveIRBeforePass()
379 void ChangeReporter<T>::handleIRAfterPass(Any IR, StringRef PassID, in handleIRAfterPass() argument
383 std::string Name = getIRName(IR); in handleIRAfterPass()
388 } else if (!isInteresting(IR, PassID, PassName)) { in handleIRAfterPass()
396 generateIRRepresentation(IR, PassID, After); in handleIRAfterPass()
403 handleAfter(PassID, Name, Before, After, IR); in handleIRAfterPass()
424 PIC.registerBeforeNonSkippedPassCallback([&PIC, this](StringRef P, Any IR) { in registerRequiredCallbacks() argument
425 saveIRBeforePass(IR, P, PIC.getPassNameForClassName(P)); in registerRequiredCallbacks()
429 [&PIC, this](StringRef P, Any IR, const PreservedAnalyses &) { in registerRequiredCallbacks() argument
430 handleIRAfterPass(IR, P, PIC.getPassNameForClassName(P)); in registerRequiredCallbacks()
442 template <typename T> void TextChangeReporter<T>::handleInitialIR(Any IR) { in handleInitialIR() argument
445 auto *M = unwrapModule(IR, /*Force=*/true); in handleInitialIR()
483 void IRChangedPrinter::generateIRRepresentation(Any IR, StringRef PassID, in generateIRRepresentation() argument
486 unwrapAndPrint(OS, IR); in generateIRRepresentation()
541 void IRChangedTester::handleInitialIR(Any IR) { in handleInitialIR() argument
545 generateIRRepresentation(IR, "Initial IR", S); in handleInitialIR()
659 template <typename T> void IRComparer<T>::analyzeIR(Any IR, IRDataT<T> &Data) { in analyzeIR() argument
660 if (const Module *M = getModuleForComparison(IR)) { in analyzeIR()
667 const auto *F = unwrapIR<Function>(IR); in analyzeIR()
669 const auto *L = unwrapIR<Loop>(IR); in analyzeIR()
703 static SmallString<32> getIRFileDisplayName(Any IR) { in getIRFileDisplayName() argument
706 const Module *M = unwrapModule(IR); in getIRFileDisplayName()
710 if (unwrapIR<Module>(IR)) { in getIRFileDisplayName()
712 } else if (const auto *F = unwrapIR<Function>(IR)) { in getIRFileDisplayName()
717 } else if (const auto *C = unwrapIR<LazyCallGraph::SCC>(IR)) { in getIRFileDisplayName()
721 } else if (const auto *L = unwrapIR<Loop>(IR)) { in getIRFileDisplayName()
732 Any IR) { in fetchDumpFilename() argument
742 FilenameStream << getIRFileDisplayName(IR); in fetchDumpFilename()
762 StringRef PassID, Any IR, std::string &DumpIRFilename) { in pushPassRunDescriptor() argument
763 const Module *M = unwrapModule(IR); in pushPassRunDescriptor()
765 PassRunDescriptor(M, DumpIRFilename, getIRName(IR), PassID)); in pushPassRunDescriptor()
796 void PrintIRInstrumentation::printBeforePass(StringRef PassID, Any IR) { in printBeforePass() argument
803 DumpIRFilename = fetchDumpFilename(PassID, IR); in printBeforePass()
810 pushPassRunDescriptor(PassID, IR, DumpIRFilename); in printBeforePass()
812 if (!shouldPrintIR(IR)) in printBeforePass()
819 << " on " << getIRName(IR) << "\n"; in printBeforePass()
828 Stream << PassID << " on " << getIRName(IR) << " ***\n"; in printBeforePass()
829 unwrapAndPrint(Stream, IR); in printBeforePass()
842 void PrintIRInstrumentation::printAfterPass(StringRef PassID, Any IR) { in printAfterPass() argument
852 if (!shouldPrintIR(IR) || !shouldPrintAfterPass(PassID)) in printAfterPass()
858 unwrapAndPrint(Stream, IR); in printAfterPass()
949 [this](StringRef P, Any IR) { this->printBeforePass(P, IR); }); in registerCallbacks() argument
953 [this](StringRef P, Any IR, const PreservedAnalyses &) { in registerCallbacks() argument
954 this->printAfterPass(P, IR); in registerCallbacks()
966 [this](StringRef P, Any IR) { return this->shouldRun(P, IR); }); in registerCallbacks() argument
969 bool OptNoneInstrumentation::shouldRun(StringRef PassID, Any IR) { in shouldRun() argument
970 const auto *F = unwrapIR<Function>(IR); in shouldRun()
972 if (const auto *L = unwrapIR<Loop>(IR)) in shouldRun()
983 bool OptPassGateInstrumentation::shouldRun(StringRef PassName, Any IR) { in shouldRun() argument
988 Context.getOptPassGate().shouldRunPass(PassName, getIRName(IR)); in shouldRun()
993 const Module *M = unwrapModule(IR, /*Force=*/true); in shouldRun()
1010 PIC.registerShouldRunOptionalPassCallback([this](StringRef PassName, Any IR) { in registerCallbacks() argument
1011 return this->shouldRun(PassName, IR); in registerCallbacks()
1035 Any IR) { in registerCallbacks() argument
1039 print() << "Skipping pass: " << PassID << " on " << getIRName(IR) << "\n"; in registerCallbacks()
1042 StringRef PassID, Any IR) { in registerCallbacks() argument
1047 OS << "Running pass: " << PassID << " on " << getIRName(IR); in registerCallbacks()
1048 if (const auto *F = unwrapIR<Function>(IR)) { in registerCallbacks()
1054 } else if (const auto *C = unwrapIR<LazyCallGraph::SCC>(IR)) { in registerCallbacks()
1065 [this, SpecialPasses](StringRef PassID, Any IR, in registerCallbacks()
1073 [this, SpecialPasses](StringRef PassID, Any IR) { in registerCallbacks() argument
1081 PIC.registerBeforeAnalysisCallback([this](StringRef PassID, Any IR) { in registerCallbacks() argument
1082 print() << "Running analysis: " << PassID << " on " << getIRName(IR) in registerCallbacks()
1087 [this](StringRef PassID, Any IR) { Indent -= 2; }); in registerCallbacks() argument
1088 PIC.registerAnalysisInvalidatedCallback([this](StringRef PassID, Any IR) { in registerCallbacks() argument
1089 print() << "Invalidating analysis: " << PassID << " on " << getIRName(IR) in registerCallbacks()
1267 static SmallVector<Function *, 1> GetFunctions(Any IR) { in GetFunctions() argument
1270 if (const auto *MaybeF = unwrapIR<Function>(IR)) { in GetFunctions()
1272 } else if (const auto *MaybeM = unwrapIR<Module>(IR)) { in GetFunctions()
1286 StringRef P, Any IR) mutable { in registerCallbacks() argument
1293 *const_cast<Module *>(unwrapModule(IR, /*Force=*/true))) in registerCallbacks()
1302 for (Function *F : GetFunctions(IR)) { in registerCallbacks()
1308 if (const auto *MPtr = unwrapIR<Module>(IR)) { in registerCallbacks()
1323 PIC.registerAfterPassCallback([this, &MAM](StringRef P, Any IR, in registerCallbacks()
1335 *const_cast<Module *>(unwrapModule(IR, /*Force=*/true))) in registerCallbacks()
1338 for (Function *F : GetFunctions(IR)) { in registerCallbacks()
1367 if (const auto *MPtr = unwrapIR<Module>(IR)) { in registerCallbacks()
1383 [this](StringRef P, Any IR, const PreservedAnalyses &PassPA) { in registerCallbacks() argument
1386 const auto *F = unwrapIR<Function>(IR); in registerCallbacks()
1388 if (const auto *L = unwrapIR<Loop>(IR)) in registerCallbacks()
1401 const auto *M = unwrapIR<Module>(IR); in registerCallbacks()
1403 if (const auto *C = unwrapIR<LazyCallGraph::SCC>(IR)) in registerCallbacks()
1422 void InLineChangePrinter::generateIRRepresentation(Any IR, in generateIRRepresentation() argument
1425 IRComparer<EmptyData>::analyzeIR(IR, D); in generateIRRepresentation()
1431 Any IR) { in handleAfter() argument
1436 .compare(getModuleForComparison(IR), in handleAfter()
1482 [this](StringRef P, Any IR) { this->runBeforePass(P, IR); }); in registerCallbacks() argument
1484 [this](StringRef P, Any IR, const PreservedAnalyses &) { in registerCallbacks() argument
1492 [this](StringRef P, Any IR) { this->runBeforePass(P, IR); }); in registerCallbacks() argument
1494 [this](StringRef P, Any IR) { this->runAfterPass(); }, true); in registerCallbacks() argument
1497 void TimeProfilingPassesHandler::runBeforePass(StringRef PassID, Any IR) { in runBeforePass() argument
1498 timeTraceProfilerBegin(PassID, getIRName(IR)); in runBeforePass()
2190 void DotCfgChangeReporter::handleInitialIR(Any IR) { in handleInitialIR() argument
2198 IRComparer<DCData>::analyzeIR(IR, Data); in handleInitialIR()
2202 .compare(getModuleForComparison(IR), in handleInitialIR()
2214 void DotCfgChangeReporter::generateIRRepresentation(Any IR, StringRef PassID, in generateIRRepresentation() argument
2216 IRComparer<DCData>::analyzeIR(IR, Data); in generateIRRepresentation()
2230 const IRDataT<DCData> &After, Any IR) { in handleAfter() argument
2233 .compare(getModuleForComparison(IR), in handleAfter()
2405 [&PIC, this](StringRef PassID, Any IR) { in registerCallbacks() argument
2410 if (!isInteresting(IR, PassID, PIC.getPassNameForClassName(PassID))) { in registerCallbacks()
2415 unwrapAndPrint(OS, IR); in registerCallbacks()