diff --git a/llvm/lib/Passes/PassBuilderPipelines.cpp b/llvm/lib/Passes/PassBuilderPipelines.cpp --- a/llvm/lib/Passes/PassBuilderPipelines.cpp +++ b/llvm/lib/Passes/PassBuilderPipelines.cpp @@ -492,9 +492,6 @@ SimplifyCFGPass(SimplifyCFGOptions().convertSwitchRangeToICmp(true))); } - if (EnableConstraintElimination) - FPM.addPass(ConstraintEliminationPass()); - // Speculative execution if the target has divergent branches; otherwise nop. FPM.addPass(SpeculativeExecutionPass(/* OnlyIfDivergentTarget =*/true)); @@ -508,6 +505,9 @@ if (Level == OptimizationLevel::O3) FPM.addPass(AggressiveInstCombinePass()); + if (EnableConstraintElimination) + FPM.addPass(ConstraintEliminationPass()); + if (!Level.isOptimizingForSize()) FPM.addPass(LibCallsShrinkWrapPass());