From a628ca4925f7249b4fbd3e932c9627b12e2770dd Mon Sep 17 00:00:00 2001 From: Arthur Eubanks Date: Thu, 23 Feb 2023 09:47:58 -0800 Subject: [PATCH] Revert "[Pipeline] Move ControlHeightReduction to module optimization pipeline" This reverts commit b374423304a8d91d590d0ce5ab1b381296d6dfb2. Causes regressions on some benchmarks. --- llvm/lib/Passes/PassBuilderPipelines.cpp | 14 +++++++++----- .../Other/new-pm-thinlto-postlink-samplepgo-defaults.ll | 6 +++--- llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll | 3 +++ .../Other/new-pm-thinlto-prelink-samplepgo-defaults.ll | 3 +++ 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/llvm/lib/Passes/PassBuilderPipelines.cpp b/llvm/lib/Passes/PassBuilderPipelines.cpp index 2f5e9f04..738b021 100644 --- a/llvm/lib/Passes/PassBuilderPipelines.cpp +++ b/llvm/lib/Passes/PassBuilderPipelines.cpp @@ -672,6 +672,15 @@ PassBuilder::buildFunctionSimplificationPipeline(OptimizationLevel Level, FPM.addPass(InstCombinePass()); invokePeepholeEPCallbacks(FPM, Level); + // Don't add CHR pass for CSIRInstr build in PostLink as the profile + // is still the same as the PreLink compilation. + if (EnableCHR && Level == OptimizationLevel::O3 && PGOOpt && + ((PGOOpt->Action == PGOOptions::IRUse && + (Phase != ThinOrFullLTOPhase::ThinLTOPostLink || + PGOOpt->CSAction != PGOOptions::CSIRInstr)) || + PGOOpt->Action == PGOOptions::SampleUse)) + FPM.addPass(ControlHeightReductionPass()); + return FPM; } @@ -1288,11 +1297,6 @@ PassBuilder::buildModuleOptimizationPipeline(OptimizationLevel Level, OptimizePM.addPass(EarlyCSEPass()); } - if (EnableCHR && Level == OptimizationLevel::O3 && PGOOpt && - (PGOOpt->Action == PGOOptions::IRUse || - PGOOpt->Action == PGOOptions::SampleUse)) - OptimizePM.addPass(ControlHeightReductionPass()); - // FIXME: We need to run some loop optimizations to re-rotate loops after // simplifycfg and others undo their rotation. diff --git a/llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll b/llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll index 9355d7e..d8a3fce 100644 --- a/llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll +++ b/llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll @@ -154,6 +154,9 @@ ; CHECK-O23SZ-NEXT: Running pass: CoroElidePass ; CHECK-O-NEXT: Running pass: SimplifyCFGPass ; CHECK-O-NEXT: Running pass: InstCombinePass +; CHECK-O3-NEXT: Running pass: ControlHeightReductionPass on foo +; CHECK-O3-NEXT: Running analysis: RegionInfoAnalysis on foo +; CHECK-O3-NEXT: Running analysis: DominanceFrontierAnalysis on foo ; CHECK-O-NEXT: Running analysis: ShouldNotRunFunctionPassesAnalysis ; CHECK-O-NEXT: Running pass: CoroSplitPass ; CHECK-O-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}ShouldNotRunFunctionPassesAnalysis @@ -168,9 +171,6 @@ ; CHECK-O-NEXT: Running pass: RecomputeGlobalsAAPass ; CHECK-O-NEXT: Running pass: Float2IntPass ; CHECK-O-NEXT: Running pass: LowerConstantIntrinsicsPass -; CHECK-O3-NEXT: Running pass: ControlHeightReductionPass on foo -; CHECK-O3-NEXT: Running analysis: RegionInfoAnalysis on foo -; CHECK-O3-NEXT: Running analysis: DominanceFrontierAnalysis on foo ; CHECK-EXT: Running pass: {{.*}}::Bye ; CHECK-O-NEXT: Running pass: LoopSimplifyPass ; CHECK-O-NEXT: Running pass: LCSSAPass diff --git a/llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll b/llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll index 4153502..735132d 100644 --- a/llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll +++ b/llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll @@ -184,6 +184,9 @@ ; CHECK-O23SZ-NEXT: Running pass: CoroElidePass ; CHECK-O-NEXT: Running pass: SimplifyCFGPass ; CHECK-O-NEXT: Running pass: InstCombinePass +; CHECK-O3-NEXT: Running pass: ControlHeightReductionPass on foo +; CHECK-O3-NEXT: Running analysis: RegionInfoAnalysis on foo +; CHECK-O3-NEXT: Running analysis: DominanceFrontierAnalysis on foo ; CHECK-O-NEXT: Running analysis: ShouldNotRunFunctionPassesAnalysis ; CHECK-O-NEXT: Running pass: CoroSplitPass ; CHECK-O-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}ShouldNotRunFunctionPassesAnalysis diff --git a/llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll b/llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll index 663af16..4ae020b 100644 --- a/llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll +++ b/llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll @@ -148,6 +148,9 @@ ; CHECK-O23SZ-NEXT: Running pass: CoroElidePass ; CHECK-O-NEXT: Running pass: SimplifyCFGPass ; CHECK-O-NEXT: Running pass: InstCombinePass +; CHECK-O3-NEXT: Running pass: ControlHeightReductionPass on foo +; CHECK-O3-NEXT: Running analysis: RegionInfoAnalysis on foo +; CHECK-O3-NEXT: Running analysis: DominanceFrontierAnalysis on foo ; CHECK-O-NEXT: Running analysis: ShouldNotRunFunctionPassesAnalysis ; CHECK-O-NEXT: Running pass: CoroSplitPass ; CHECK-O-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}ShouldNotRunFunctionPassesAnalysis -- 2.7.4