[llvm] [CodeGen][NewPM] Introduce CodeGenPassManager (PR #210473)

Aiden Grossman via llvm-commits llvm-commits at lists.llvm.org
Sun Jul 19 08:41:30 PDT 2026


================
@@ -319,25 +221,25 @@ template <typename DerivedT, typename TargetMachineT> class CodeGenPassBuilder {
 
   /// addInstSelector - This method should install an instruction selector pass,
   /// which converts from LLVM code to machine instructions.
-  Error addInstSelector(PassManagerWrapper &PMW) const {
+  Error addInstSelector(CodeGenMachineFunctionPassManager &CGMFPM) const {
     return make_error<StringError>("addInstSelector is not overridden",
                                    inconvertibleErrorCode());
   }
 
   /// Target can override this to add GlobalMergePass before all IR passes.
-  void addGlobalMergePass(PassManagerWrapper &PMW) const {}
+  void addGlobalMergePass(CodeGenModulePassManager &CGMPM) const {}
 
   /// Add passes that optimize instruction level parallelism for out-of-order
   /// targets. These passes are run while the machine code is still in SSA
   /// form, so they can use MachineTraceMetrics to control their heuristics.
   ///
   /// All passes added here should preserve the MachineDominatorTree,
   /// MachineLoopInfo, and MachineTraceMetrics analyses.
-  void addILPOpts(PassManagerWrapper &PMW) const {}
----------------
boomanaiden154 wrote:

Have you audited all uses of these functions (and below) in `TargetPassConfig` to ensure they actually only add machine function passes? I'm not convinced explicitly specifying a MachineFunction PM is going to be generalizable enough for all of these.

https://github.com/llvm/llvm-project/pull/210473


More information about the llvm-commits mailing list