[llvm] [NewPM][CodeGen][WIP] Add callback style CodeGen pass pipeline builder (PR #104725)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 19 01:17:40 PDT 2024
================
@@ -766,6 +932,63 @@ class PassBuilder {
SmallVector<std::function<void(ModulePassManager &, OptimizationLevel)>, 2>
PipelineEarlySimplificationEPCallbacks;
+ // CodeGen extension point callbacks
+ SmallVector<std::function<void(FunctionPassManager &)>, 2>
+ GCLoweringEPCallbacks;
+ SmallVector<std::function<void(ModulePassManager &)>, 2>
+ ISelPrepareEPCallbacks;
+ SmallVector<
+ std::function<void(MachineFunctionPassManager &, CodeGenOptLevel)>, 2>
+ MachineSSAOptimizationEarlyEPCallbacks;
+ SmallVector<
+ std::function<void(MachineFunctionPassManager &, CodeGenOptLevel)>, 2>
+ MachineSSAOptimizationLastEPCallbacks;
+ SmallVector<
+ std::function<void(MachineFunctionPassManager &, CodeGenOptLevel)>, 2>
+ PreRegAllocEPCallbacks;
+ SmallVector<
+ std::function<void(MachineFunctionPassManager &, CodeGenOptLevel)>, 2>
+ PostRegAllocEPCallbacks;
+ SmallVector<
+ std::function<void(MachineFunctionPassManager &, CodeGenOptLevel)>, 2>
+ PreRegBankSelectEPCallbacks;
+ SmallVector<
+ std::function<void(MachineFunctionPassManager &, CodeGenOptLevel)>, 2>
+ PreGlobalInstructionSelectEPCallbacks;
+ SmallVector<
+ std::function<void(MachineFunctionPassManager &, CodeGenOptLevel)>, 2>
+ PostGlobalInstructionSelectEPCallbacks;
+ SmallVector<
+ std::function<void(MachineFunctionPassManager &, CodeGenOptLevel)>, 2>
+ ILPOptsEPCallbacks;
+ SmallVector<
+ std::function<void(MachineFunctionPassManager &, CodeGenOptLevel)>, 2>
+ MachineLateOptimizationEPCallbacks;
+ SmallVector<
+ std::function<void(MachineFunctionPassManager &, CodeGenOptLevel)>, 2>
+ PreSched2EPCallbacks;
+ SmallVector<
+ std::function<void(MachineFunctionPassManager &, CodeGenOptLevel)>, 2>
+ PostRewriteEPCallbacks;
+ SmallVector<
+ std::function<void(MachineFunctionPassManager &, CodeGenOptLevel)>, 2>
+ PreEmitEPCallbacks;
+ SmallVector<
+ std::function<void(MachineFunctionPassManager &, CodeGenOptLevel)>, 2>
----------------
arsenm wrote:
use a typedef for all of these repeated function types
https://github.com/llvm/llvm-project/pull/104725
More information about the llvm-commits
mailing list