[ConstraintElim] Adjust position in LTO pipeline.
authorFlorian Hahn <flo@fhahn.com>
Tue, 3 Jan 2023 17:07:43 +0000 (17:07 +0000)
committerFlorian Hahn <flo@fhahn.com>
Tue, 3 Jan 2023 17:07:43 +0000 (17:07 +0000)
This runs ConstraintElim earlier during LTO, similar to non-LTO.
Discussed and split off from D135915.

llvm/lib/Passes/PassBuilderPipelines.cpp

index d546ab0..83d69ec 100644 (file)
@@ -1723,6 +1723,9 @@ PassBuilder::buildLTODefaultPipeline(OptimizationLevel Level,
   FPM.addPass(InstCombinePass());
   invokePeepholeEPCallbacks(FPM, Level);
 
+  if (EnableConstraintElimination)
+    FPM.addPass(ConstraintEliminationPass());
+
   FPM.addPass(JumpThreadingPass());
 
   // Do a post inline PGO instrumentation and use pass. This is a context
@@ -1780,9 +1783,6 @@ PassBuilder::buildLTODefaultPipeline(OptimizationLevel Level,
   MainFPM.addPass(DSEPass());
   MainFPM.addPass(MergedLoadStoreMotionPass());
 
-  if (EnableConstraintElimination)
-    MainFPM.addPass(ConstraintEliminationPass());
-
   LoopPassManager LPM;
   if (EnableLoopFlatten && Level.getSpeedupLevel() > 1)
     LPM.addPass(LoopFlattenPass());