From 9e6d2c82d6aa40c5cd81443603e2d1ddbdccb65e Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Tue, 3 Jan 2023 13:25:00 +0000 Subject: [PATCH] [ConstraintElim] Move after first instcombine run. Running ConstraintEliminiation after the first InstCombine run results in slightly more simplifications on average. There are is a tiny number of regressions, mostly due to CVP eliminating a condition that ConstraintElimination would use, but in most cases there's a slight improvement or no change. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D140853 --- llvm/lib/Passes/PassBuilderPipelines.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/llvm/lib/Passes/PassBuilderPipelines.cpp b/llvm/lib/Passes/PassBuilderPipelines.cpp index 6aae404..d546ab0 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()); -- 2.7.4