diff --git a/llvm/lib/Passes/PassBuilderPipelines.cpp b/llvm/lib/Passes/PassBuilderPipelines.cpp index 6aae40431862f0..d546ab0fa41411 100644 --- a/llvm/lib/Passes/PassBuilderPipelines.cpp +++ b/llvm/lib/Passes/PassBuilderPipelines.cpp @@ -492,9 +492,6 @@ PassBuilder::buildFunctionSimplificationPipeline(OptimizationLevel Level, 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 @@ PassBuilder::buildFunctionSimplificationPipeline(OptimizationLevel Level, if (Level == OptimizationLevel::O3) FPM.addPass(AggressiveInstCombinePass()); + if (EnableConstraintElimination) + FPM.addPass(ConstraintEliminationPass()); + if (!Level.isOptimizingForSize()) FPM.addPass(LibCallsShrinkWrapPass());