[llvm] 1decc0e - [PassManager] Mark some codegen passes as required (#196172)

via llvm-commits llvm-commits at lists.llvm.org
Wed May 6 13:51:15 PDT 2026


Author: Arthur Eubanks
Date: 2026-05-06T20:51:10Z
New Revision: 1decc0e01d945b75484001ad89a6ac31c3639501

URL: https://github.com/llvm/llvm-project/commit/1decc0e01d945b75484001ad89a6ac31c3639501
DIFF: https://github.com/llvm/llvm-project/commit/1decc0e01d945b75484001ad89a6ac31c3639501.diff

LOG: [PassManager] Mark some codegen passes as required (#196172)

These are required for lowering but were accidentally added as optional.

Added: 
    

Modified: 
    llvm/include/llvm/CodeGen/AtomicExpand.h
    llvm/include/llvm/CodeGen/DwarfEHPrepare.h
    llvm/include/llvm/CodeGen/GCMetadata.h
    llvm/include/llvm/CodeGen/IndirectBrExpand.h
    llvm/include/llvm/CodeGen/InlineAsmPrepare.h
    llvm/include/llvm/CodeGen/JMCInstrumenter.h
    llvm/include/llvm/CodeGen/LowerEmuTLS.h
    llvm/include/llvm/CodeGen/MachineCFGPrinter.h
    llvm/include/llvm/CodeGen/MachineFunctionAnalysis.h
    llvm/include/llvm/CodeGen/MachineInstrBundle.h
    llvm/include/llvm/CodeGen/MachineStripDebug.h
    llvm/include/llvm/CodeGen/PreISelIntrinsicLowering.h
    llvm/include/llvm/CodeGen/ProcessImplicitDefs.h
    llvm/include/llvm/CodeGen/RegUsageInfoPropagate.h
    llvm/include/llvm/CodeGen/ReplaceWithVeclib.h
    llvm/include/llvm/CodeGen/SafeStack.h
    llvm/include/llvm/CodeGen/ShadowStackGCLowering.h
    llvm/include/llvm/CodeGen/SjLjEHPrepare.h
    llvm/include/llvm/CodeGen/StackColoring.h
    llvm/include/llvm/CodeGen/StackProtector.h
    llvm/include/llvm/CodeGen/WasmEHPrepare.h
    llvm/include/llvm/CodeGen/WinEHPrepare.h

Removed: 
    


################################################################################
diff  --git a/llvm/include/llvm/CodeGen/AtomicExpand.h b/llvm/include/llvm/CodeGen/AtomicExpand.h
index 7b9d44773e83f..d7f8dd1f33e65 100644
--- a/llvm/include/llvm/CodeGen/AtomicExpand.h
+++ b/llvm/include/llvm/CodeGen/AtomicExpand.h
@@ -16,7 +16,7 @@ namespace llvm {
 class Function;
 class TargetMachine;
 
-class AtomicExpandPass : public OptionalPassInfoMixin<AtomicExpandPass> {
+class AtomicExpandPass : public RequiredPassInfoMixin<AtomicExpandPass> {
 private:
   const TargetMachine *TM;
 

diff  --git a/llvm/include/llvm/CodeGen/DwarfEHPrepare.h b/llvm/include/llvm/CodeGen/DwarfEHPrepare.h
index e4202928f6b2a..8f71feb20ef63 100644
--- a/llvm/include/llvm/CodeGen/DwarfEHPrepare.h
+++ b/llvm/include/llvm/CodeGen/DwarfEHPrepare.h
@@ -20,7 +20,7 @@ namespace llvm {
 
 class TargetMachine;
 
-class DwarfEHPreparePass : public OptionalPassInfoMixin<DwarfEHPreparePass> {
+class DwarfEHPreparePass : public RequiredPassInfoMixin<DwarfEHPreparePass> {
   const TargetMachine *TM;
 
 public:

diff  --git a/llvm/include/llvm/CodeGen/GCMetadata.h b/llvm/include/llvm/CodeGen/GCMetadata.h
index dc69887686c46..f7974ccba90a9 100644
--- a/llvm/include/llvm/CodeGen/GCMetadata.h
+++ b/llvm/include/llvm/CodeGen/GCMetadata.h
@@ -226,7 +226,7 @@ class GCFunctionAnalysis : public AnalysisInfoMixin<GCFunctionAnalysis> {
 /// and custom intrinsic lowering.
 ///
 /// This pass requires `CollectorMetadataAnalysis`.
-class GCLoweringPass : public OptionalPassInfoMixin<GCLoweringPass> {
+class GCLoweringPass : public RequiredPassInfoMixin<GCLoweringPass> {
 public:
   LLVM_ABI PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM);
 };

diff  --git a/llvm/include/llvm/CodeGen/IndirectBrExpand.h b/llvm/include/llvm/CodeGen/IndirectBrExpand.h
index 47ba7327280a1..6f729fa8ba122 100644
--- a/llvm/include/llvm/CodeGen/IndirectBrExpand.h
+++ b/llvm/include/llvm/CodeGen/IndirectBrExpand.h
@@ -16,7 +16,7 @@ namespace llvm {
 class TargetMachine;
 
 class IndirectBrExpandPass
-    : public OptionalPassInfoMixin<IndirectBrExpandPass> {
+    : public RequiredPassInfoMixin<IndirectBrExpandPass> {
   const TargetMachine *TM;
 
 public:

diff  --git a/llvm/include/llvm/CodeGen/InlineAsmPrepare.h b/llvm/include/llvm/CodeGen/InlineAsmPrepare.h
index 1ded964b03b9c..fe52cf54259d1 100644
--- a/llvm/include/llvm/CodeGen/InlineAsmPrepare.h
+++ b/llvm/include/llvm/CodeGen/InlineAsmPrepare.h
@@ -14,7 +14,7 @@
 namespace llvm {
 
 class InlineAsmPreparePass
-    : public OptionalPassInfoMixin<InlineAsmPreparePass> {
+    : public RequiredPassInfoMixin<InlineAsmPreparePass> {
 public:
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM);
 };

diff  --git a/llvm/include/llvm/CodeGen/JMCInstrumenter.h b/llvm/include/llvm/CodeGen/JMCInstrumenter.h
index ee2d78c6cd922..6f1a690a8b096 100644
--- a/llvm/include/llvm/CodeGen/JMCInstrumenter.h
+++ b/llvm/include/llvm/CodeGen/JMCInstrumenter.h
@@ -13,7 +13,7 @@
 
 namespace llvm {
 
-class JMCInstrumenterPass : public OptionalPassInfoMixin<JMCInstrumenterPass> {
+class JMCInstrumenterPass : public RequiredPassInfoMixin<JMCInstrumenterPass> {
 public:
   PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM);
 };

diff  --git a/llvm/include/llvm/CodeGen/LowerEmuTLS.h b/llvm/include/llvm/CodeGen/LowerEmuTLS.h
index 75aec168223d4..73dcbd1eef5ac 100644
--- a/llvm/include/llvm/CodeGen/LowerEmuTLS.h
+++ b/llvm/include/llvm/CodeGen/LowerEmuTLS.h
@@ -19,7 +19,7 @@
 
 namespace llvm {
 
-class LowerEmuTLSPass : public OptionalPassInfoMixin<LowerEmuTLSPass> {
+class LowerEmuTLSPass : public RequiredPassInfoMixin<LowerEmuTLSPass> {
 public:
   PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM);
 };

diff  --git a/llvm/include/llvm/CodeGen/MachineCFGPrinter.h b/llvm/include/llvm/CodeGen/MachineCFGPrinter.h
index 990201dfce589..bee79a9273b93 100644
--- a/llvm/include/llvm/CodeGen/MachineCFGPrinter.h
+++ b/llvm/include/llvm/CodeGen/MachineCFGPrinter.h
@@ -90,7 +90,7 @@ struct DOTGraphTraits<DOTMachineFuncInfo *> : public DefaultDOTGraphTraits {
   }
 };
 
-class MachineCFGPrinterPass : public PassInfoMixin<MachineCFGPrinterPass> {
+class MachineCFGPrinterPass : public RequiredPassInfoMixin<MachineCFGPrinterPass> {
 public:
   LLVM_ABI PreservedAnalyses run(MachineFunction &MF,
                                  MachineFunctionAnalysisManager &MFAM);

diff  --git a/llvm/include/llvm/CodeGen/MachineFunctionAnalysis.h b/llvm/include/llvm/CodeGen/MachineFunctionAnalysis.h
index b8372de4f94f0..d08432f1ae87f 100644
--- a/llvm/include/llvm/CodeGen/MachineFunctionAnalysis.h
+++ b/llvm/include/llvm/CodeGen/MachineFunctionAnalysis.h
@@ -47,7 +47,7 @@ class MachineFunctionAnalysis
 };
 
 class FreeMachineFunctionPass
-    : public OptionalPassInfoMixin<FreeMachineFunctionPass> {
+    : public RequiredPassInfoMixin<FreeMachineFunctionPass> {
 public:
   LLVM_ABI PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM);
 };

diff  --git a/llvm/include/llvm/CodeGen/MachineInstrBundle.h b/llvm/include/llvm/CodeGen/MachineInstrBundle.h
index a581b6ef270b1..ad3347c41854e 100644
--- a/llvm/include/llvm/CodeGen/MachineInstrBundle.h
+++ b/llvm/include/llvm/CodeGen/MachineInstrBundle.h
@@ -296,14 +296,14 @@ LLVM_ABI PhysRegInfo AnalyzePhysRegInBundle(const MachineInstr &MI,
                                             const TargetRegisterInfo *TRI);
 
 class FinalizeBundleTestPass
-    : public OptionalPassInfoMixin<FinalizeBundleTestPass> {
+    : public RequiredPassInfoMixin<FinalizeBundleTestPass> {
 public:
-  LLVM_ABI PreservedAnalyses run(MachineFunction &MF,
-                                 MachineFunctionAnalysisManager &MFAM);
+  PreservedAnalyses run(MachineFunction &MF,
+                        MachineFunctionAnalysisManager &MFAM);
 };
 
 class UnpackMachineBundlesPass
-    : public OptionalPassInfoMixin<UnpackMachineBundlesPass> {
+    : public RequiredPassInfoMixin<UnpackMachineBundlesPass> {
 
 public:
   UnpackMachineBundlesPass(

diff  --git a/llvm/include/llvm/CodeGen/MachineStripDebug.h b/llvm/include/llvm/CodeGen/MachineStripDebug.h
index c6873967d49a8..096debd0058ef 100644
--- a/llvm/include/llvm/CodeGen/MachineStripDebug.h
+++ b/llvm/include/llvm/CodeGen/MachineStripDebug.h
@@ -22,7 +22,7 @@
 namespace llvm {
 
 class StripDebugMachineModulePass
-    : public OptionalPassInfoMixin<StripDebugMachineModulePass> {
+    : public RequiredPassInfoMixin<StripDebugMachineModulePass> {
 public:
   LLVM_ABI PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);
 };

diff  --git a/llvm/include/llvm/CodeGen/PreISelIntrinsicLowering.h b/llvm/include/llvm/CodeGen/PreISelIntrinsicLowering.h
index c163402b37775..b04870c913472 100644
--- a/llvm/include/llvm/CodeGen/PreISelIntrinsicLowering.h
+++ b/llvm/include/llvm/CodeGen/PreISelIntrinsicLowering.h
@@ -21,7 +21,7 @@ class Module;
 class TargetMachine;
 
 struct PreISelIntrinsicLoweringPass
-    : OptionalPassInfoMixin<PreISelIntrinsicLoweringPass> {
+    : RequiredPassInfoMixin<PreISelIntrinsicLoweringPass> {
   const TargetMachine *TM;
 
   PreISelIntrinsicLoweringPass(const TargetMachine *TM) : TM(TM) {}

diff  --git a/llvm/include/llvm/CodeGen/ProcessImplicitDefs.h b/llvm/include/llvm/CodeGen/ProcessImplicitDefs.h
index 964d7e169ba05..7539097dd0597 100644
--- a/llvm/include/llvm/CodeGen/ProcessImplicitDefs.h
+++ b/llvm/include/llvm/CodeGen/ProcessImplicitDefs.h
@@ -14,7 +14,7 @@
 namespace llvm {
 
 class ProcessImplicitDefsPass
-    : public OptionalPassInfoMixin<ProcessImplicitDefsPass> {
+    : public RequiredPassInfoMixin<ProcessImplicitDefsPass> {
 public:
   PreservedAnalyses run(MachineFunction &MF,
                         MachineFunctionAnalysisManager &MFAM);

diff  --git a/llvm/include/llvm/CodeGen/RegUsageInfoPropagate.h b/llvm/include/llvm/CodeGen/RegUsageInfoPropagate.h
index 3b030b1f1a7df..f22d456c14974 100644
--- a/llvm/include/llvm/CodeGen/RegUsageInfoPropagate.h
+++ b/llvm/include/llvm/CodeGen/RegUsageInfoPropagate.h
@@ -14,7 +14,7 @@
 namespace llvm {
 
 class RegUsageInfoPropagationPass
-    : public OptionalPassInfoMixin<RegUsageInfoPropagationPass> {
+    : public RequiredPassInfoMixin<RegUsageInfoPropagationPass> {
 public:
   PreservedAnalyses run(MachineFunction &MF,
                         MachineFunctionAnalysisManager &MFAM);

diff  --git a/llvm/include/llvm/CodeGen/ReplaceWithVeclib.h b/llvm/include/llvm/CodeGen/ReplaceWithVeclib.h
index 770fd4618570c..d65a6d7a33df6 100644
--- a/llvm/include/llvm/CodeGen/ReplaceWithVeclib.h
+++ b/llvm/include/llvm/CodeGen/ReplaceWithVeclib.h
@@ -21,7 +21,7 @@
 
 namespace llvm {
 class Function;
-struct ReplaceWithVeclib : public OptionalPassInfoMixin<ReplaceWithVeclib> {
+struct ReplaceWithVeclib : public RequiredPassInfoMixin<ReplaceWithVeclib> {
   LLVM_ABI PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
 };
 

diff  --git a/llvm/include/llvm/CodeGen/SafeStack.h b/llvm/include/llvm/CodeGen/SafeStack.h
index fd917c83f6dac..3c8485cb37e9e 100644
--- a/llvm/include/llvm/CodeGen/SafeStack.h
+++ b/llvm/include/llvm/CodeGen/SafeStack.h
@@ -15,7 +15,7 @@ namespace llvm {
 
 class TargetMachine;
 
-class SafeStackPass : public OptionalPassInfoMixin<SafeStackPass> {
+class SafeStackPass : public RequiredPassInfoMixin<SafeStackPass> {
   const TargetMachine *TM;
 
 public:

diff  --git a/llvm/include/llvm/CodeGen/ShadowStackGCLowering.h b/llvm/include/llvm/CodeGen/ShadowStackGCLowering.h
index 432662f5883f5..e0c122d2788d9 100644
--- a/llvm/include/llvm/CodeGen/ShadowStackGCLowering.h
+++ b/llvm/include/llvm/CodeGen/ShadowStackGCLowering.h
@@ -14,7 +14,7 @@
 namespace llvm {
 
 class ShadowStackGCLoweringPass
-    : public OptionalPassInfoMixin<ShadowStackGCLoweringPass> {
+    : public RequiredPassInfoMixin<ShadowStackGCLoweringPass> {
 public:
   PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM);
 };

diff  --git a/llvm/include/llvm/CodeGen/SjLjEHPrepare.h b/llvm/include/llvm/CodeGen/SjLjEHPrepare.h
index 99899d94dfcc9..fc5b022f89f6f 100644
--- a/llvm/include/llvm/CodeGen/SjLjEHPrepare.h
+++ b/llvm/include/llvm/CodeGen/SjLjEHPrepare.h
@@ -15,7 +15,7 @@ namespace llvm {
 
 class TargetMachine;
 
-class SjLjEHPreparePass : public OptionalPassInfoMixin<SjLjEHPreparePass> {
+class SjLjEHPreparePass : public RequiredPassInfoMixin<SjLjEHPreparePass> {
   const TargetMachine *TM;
 
 public:

diff  --git a/llvm/include/llvm/CodeGen/StackColoring.h b/llvm/include/llvm/CodeGen/StackColoring.h
index 0d020981cc04b..718bad0afc2a9 100644
--- a/llvm/include/llvm/CodeGen/StackColoring.h
+++ b/llvm/include/llvm/CodeGen/StackColoring.h
@@ -13,7 +13,7 @@
 
 namespace llvm {
 
-class StackColoringPass : public OptionalPassInfoMixin<StackColoringPass> {
+class StackColoringPass : public RequiredPassInfoMixin<StackColoringPass> {
 public:
   PreservedAnalyses run(MachineFunction &MF,
                         MachineFunctionAnalysisManager &MFAM);

diff  --git a/llvm/include/llvm/CodeGen/StackProtector.h b/llvm/include/llvm/CodeGen/StackProtector.h
index 6e336ccf45aca..9d262b8d9c16c 100644
--- a/llvm/include/llvm/CodeGen/StackProtector.h
+++ b/llvm/include/llvm/CodeGen/StackProtector.h
@@ -82,7 +82,7 @@ class SSPLayoutAnalysis : public AnalysisInfoMixin<SSPLayoutAnalysis> {
                                      SSPLayoutMap *Layout = nullptr);
 };
 
-class StackProtectorPass : public OptionalPassInfoMixin<StackProtectorPass> {
+class StackProtectorPass : public RequiredPassInfoMixin<StackProtectorPass> {
   const TargetMachine *TM;
 
 public:

diff  --git a/llvm/include/llvm/CodeGen/WasmEHPrepare.h b/llvm/include/llvm/CodeGen/WasmEHPrepare.h
index 90a26c322bfb9..0b2fbdc3f296d 100644
--- a/llvm/include/llvm/CodeGen/WasmEHPrepare.h
+++ b/llvm/include/llvm/CodeGen/WasmEHPrepare.h
@@ -13,7 +13,7 @@
 
 namespace llvm {
 
-class WasmEHPreparePass : public OptionalPassInfoMixin<WasmEHPreparePass> {
+class WasmEHPreparePass : public RequiredPassInfoMixin<WasmEHPreparePass> {
 public:
   PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM);
 };

diff  --git a/llvm/include/llvm/CodeGen/WinEHPrepare.h b/llvm/include/llvm/CodeGen/WinEHPrepare.h
index dc99f59351d84..ff762ce86f1da 100644
--- a/llvm/include/llvm/CodeGen/WinEHPrepare.h
+++ b/llvm/include/llvm/CodeGen/WinEHPrepare.h
@@ -13,7 +13,7 @@
 
 namespace llvm {
 
-class WinEHPreparePass : public OptionalPassInfoMixin<WinEHPreparePass> {
+class WinEHPreparePass : public RequiredPassInfoMixin<WinEHPreparePass> {
   bool DemoteCatchSwitchPHIOnly;
 
 public:


        


More information about the llvm-commits mailing list