[llvm] [Codegen][NewPM] Explicitly Nest Passes in CodegenPassBuilder (PR #169867)
Arthur Eubanks via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 8 10:12:17 PST 2025
================
@@ -630,42 +565,40 @@ Error CodeGenPassBuilder<Derived, TargetMachineT>::buildPipeline(
bool PrintAsm = TargetPassConfig::willCompleteCodeGenPipeline();
bool PrintMIR = !PrintAsm && FileType != CodeGenFileType::Null;
- {
- AddIRPass addIRPass(MPM, derived());
- addIRPass(RequireAnalysisPass<MachineModuleAnalysis, Module>(),
- /*Force=*/true);
- addIRPass(RequireAnalysisPass<ProfileSummaryAnalysis, Module>(),
- /*Force=*/true);
- addIRPass(RequireAnalysisPass<CollectorMetadataAnalysis, Module>(),
- /*Force=*/true);
- addIRPass(RequireAnalysisPass<RuntimeLibraryAnalysis, Module>(),
- /*Force=*/true);
- addISelPasses(addIRPass);
- }
-
- AddMachinePass addPass(MPM, derived());
+ addModulePass(RequireAnalysisPass<MachineModuleAnalysis, Module>(), MPM,
+ /*Force=*/true);
+ addModulePass(RequireAnalysisPass<ProfileSummaryAnalysis, Module>(), MPM,
+ /*Force=*/true);
+ addModulePass(RequireAnalysisPass<CollectorMetadataAnalysis, Module>(), MPM,
+ /*Force=*/true);
+ addModulePass(RequireAnalysisPass<RuntimeLibraryAnalysis, Module>(), MPM,
+ /*Force=*/true);
+ addISelPasses(MPM);
+ flushFPMsToMPM(MPM);
if (PrintMIR)
- addPass(PrintMIRPreparePass(Out), /*Force=*/true);
+ addModulePass(PrintMIRPreparePass(Out), MPM, /*Force=*/true);
- if (auto Err = addCoreISelPasses(addPass))
+ if (auto Err = addCoreISelPasses(MPM))
return std::move(Err);
- if (auto Err = derived().addMachinePasses(addPass))
+ if (auto Err = derived().addMachinePasses(MPM))
return std::move(Err);
if (!Opt.DisableVerify)
- addPass(MachineVerifierPass());
+ addMachineFunctionPass(MachineVerifierPass());
if (PrintAsm) {
derived().addAsmPrinter(
- addPass, [this, &Out, DwoOut, FileType](MCContext &Ctx) {
+ MPM, [this, &Out, DwoOut, FileType](MCContext &Ctx) {
return this->TM.createMCStreamer(Out, DwoOut, FileType, Ctx);
});
}
if (PrintMIR)
- addPass(PrintMIRPass(Out), /*Force=*/true);
+ addMachineFunctionPass(PrintMIRPass(Out), /*Force=*/true);
+
+ flushFPMsToMPM(MPM, true);
----------------
aeubanks wrote:
add `true` param name as comment
https://github.com/llvm/llvm-project/pull/169867
More information about the llvm-commits
mailing list