Skip to content

Commit 2f70f65

Browse files
davidbolvanskydianqk
authored andcommitted
[AggressiveInstCombine] Enable also for -O2
Next step after https://reviews.llvm.org/D113179 Recently a set of patches by @anton-afanasyev improved many cases (better and cleaner vectorized code) thanks to improvements to AIC's TruncInstCombine (IC cannot handle it) motivated by real examples in bug reports. There was a discussion that -O2 could benefit from AIC as well, but discussion then stalled, so I would like restart it, with new numbers from LLVM compile time tracker. As -O2 pipeline is not tracked by LLVM compile time tracker, I disabled AIC for -O3 to get an idea how expensive is it. Without AIC, I observed that geomean was cca -0.10%. Given that it seems like AIC is quite cheap, heavily tested by -O3 pipeline, I am proposing to enable it also with -O2 and similar to improve quality to vectorized code. https://llvm-compile-time-tracker.com/compare.php?from=a1df5abef5f27646c809c7b85cf6170eb68f7735&to=e1ba6068f58c6ca862b920b8750faccb42a5843c&stat=instructions:u Differential Revision: https://reviews.llvm.org/D147604 Reviewed-By: nikic
1 parent dc4267e commit 2f70f65

9 files changed

+10
-11
lines changed

llvm/lib/Passes/PassBuilderPipelines.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -506,8 +506,7 @@ PassBuilder::buildFunctionSimplificationPipeline(OptimizationLevel Level,
506506
FPM.addPass(
507507
SimplifyCFGPass(SimplifyCFGOptions().convertSwitchRangeToICmp(true)));
508508
FPM.addPass(InstCombinePass());
509-
if (Level == OptimizationLevel::O3)
510-
FPM.addPass(AggressiveInstCombinePass());
509+
FPM.addPass(AggressiveInstCombinePass());
511510

512511
if (EnableConstraintElimination)
513512
FPM.addPass(ConstraintEliminationPass());
@@ -1699,7 +1698,7 @@ PassBuilder::buildLTODefaultPipeline(OptimizationLevel Level,
16991698
// calls, etc, so let instcombine do this.
17001699
FunctionPassManager PeepholeFPM;
17011700
PeepholeFPM.addPass(InstCombinePass());
1702-
if (Level == OptimizationLevel::O3)
1701+
if (Level.getSpeedupLevel() > 1)
17031702
PeepholeFPM.addPass(AggressiveInstCombinePass());
17041703
invokePeepholeEPCallbacks(PeepholeFPM, Level);
17051704

llvm/test/Other/new-pm-defaults.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@
154154
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
155155
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
156156
; CHECK-O-NEXT: Running pass: InstCombinePass
157-
; CHECK-O3-NEXT: AggressiveInstCombinePass
157+
; CHECK-O23SZ-NEXT: Running pass: AggressiveInstCombinePass
158158
; CHECK-O23SZ-NEXT: Running pass: ConstraintEliminationPass
159159
; CHECK-O1-NEXT: Running pass: LibCallsShrinkWrapPass
160160
; CHECK-O2-NEXT: Running pass: LibCallsShrinkWrapPass

llvm/test/Other/new-pm-lto-defaults.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@
7070
; CHECK-O23SZ-NEXT: Running pass: ConstantMergePass
7171
; CHECK-O23SZ-NEXT: Running pass: DeadArgumentEliminationPass
7272
; CHECK-O23SZ-NEXT: Running pass: InstCombinePass
73-
; CHECK-O3-NEXT: Running pass: AggressiveInstCombinePass
73+
; CHECK-O23SZ-NEXT: Running pass: AggressiveInstCombinePass
7474
; CHECK-EP-Peephole-NEXT: Running pass: NoOpFunctionPass
7575
; CHECK-O23SZ-NEXT: Running pass: ModuleInlinerWrapperPass
7676
; CHECK-O23SZ-NEXT: Running analysis: InlineAdvisorAnalysis

llvm/test/Other/new-pm-thinlto-postlink-defaults.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@
101101
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
102102
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
103103
; CHECK-O-NEXT: Running pass: InstCombinePass
104-
; CHECK-O3-NEXT: Running pass: AggressiveInstCombinePass
104+
; CHECK-O23SZ-NEXT: Running pass: AggressiveInstCombinePass
105105
; CHECK-O23SZ-NEXT: Running pass: ConstraintEliminationPass
106106
; CHECK-O1-NEXT: Running pass: LibCallsShrinkWrapPass
107107
; CHECK-O2-NEXT: Running pass: LibCallsShrinkWrapPass

llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@
9090
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
9191
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
9292
; CHECK-O-NEXT: Running pass: InstCombinePass
93-
; CHECK-O3-NEXT: Running pass: AggressiveInstCombinePass
93+
; CHECK-O23SZ-NEXT: Running pass: AggressiveInstCombinePass
9494
; CHECK-O23SZ-NEXT: Running pass: ConstraintEliminationPass
9595
; CHECK-O1-NEXT: Running pass: LibCallsShrinkWrapPass
9696
; CHECK-O2-NEXT: Running pass: LibCallsShrinkWrapPass

llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@
9797
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
9898
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
9999
; CHECK-O-NEXT: Running pass: InstCombinePass
100-
; CHECK-O3-NEXT: Running pass: AggressiveInstCombinePass
100+
; CHECK-O23SZ-NEXT: Running pass: AggressiveInstCombinePass
101101
; CHECK-O23SZ-NEXT: Running pass: ConstraintEliminationPass
102102
; CHECK-O1-NEXT: Running pass: LibCallsShrinkWrapPass
103103
; CHECK-O2-NEXT: Running pass: LibCallsShrinkWrapPass

llvm/test/Other/new-pm-thinlto-prelink-defaults.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@
9999
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
100100
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
101101
; CHECK-O-NEXT: Running pass: InstCombinePass
102-
; CHECK-O3-NEXT: Running pass: AggressiveInstCombinePass
102+
; CHECK-O23SZ-NEXT: Running pass: AggressiveInstCombinePass
103103
; CHECK-O23SZ-NEXT: Running pass: ConstraintEliminationPass
104104
; CHECK-O1-NEXT: Running pass: LibCallsShrinkWrapPass
105105
; CHECK-O2-NEXT: Running pass: LibCallsShrinkWrapPass

llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@
124124
; CHECK-O-NEXT: Running analysis: BranchProbabilityAnalysis on foo
125125
; CHECK-O-NEXT: Running analysis: LoopAnalysis on foo
126126
; CHECK-O-NEXT: Running analysis: PostDominatorTreeAnalysis on foo
127-
; CHECK-O3-NEXT: Running pass: AggressiveInstCombinePass
127+
; CHECK-O23SZ-NEXT: Running pass: AggressiveInstCombinePass
128128
; CHECK-O23SZ-NEXT: Running pass: ConstraintEliminationPass
129129
; CHECK-O1-NEXT: Running pass: LibCallsShrinkWrapPass
130130
; CHECK-O2-NEXT: Running pass: LibCallsShrinkWrapPass

llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@
9292
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
9393
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
9494
; CHECK-O-NEXT: Running pass: InstCombinePass
95-
; CHECK-O3-NEXT: Running pass: AggressiveInstCombinePass
95+
; CHECK-O23SZ-NEXT: Running pass: AggressiveInstCombinePass
9696
; CHECK-O23SZ-NEXT: Running pass: ConstraintEliminationPass
9797
; CHECK-O1-NEXT: Running pass: LibCallsShrinkWrapPass
9898
; CHECK-O2-NEXT: Running pass: LibCallsShrinkWrapPass

0 commit comments

Comments
 (0)