Skip to content

Commit 0ba7bfc

Browse files
buggfgNothinyict-qlMrLinWang
authored
[DFAJumpThreading] Enable DFAJumpThread by default. (#157646)
We recommend setting `dfa-jump-thread` to be enabled by default. It’s a mature optimization that’s been supported since GCC 9.1.0. At the `-O2` opt level, both the GCC and ICX compilers have this optimization enabled by default. Once it’s enabled, we saw a **13% performance improvement** in the CoreMark benchmark on the X86 platform (Intel i9-11900K Rocket Lake), and even a **15% increase** on the KunMingHu FPGA. Additionally, we verified the correctness of this pass using SPEC 2017. Co-authored-by: YinZd <104915588+nothiny@users.noreply.github.com> Co-authored-by: ict-ql <168183727+ict-ql@users.noreply.github.com> Co-authored-by: Lin Wang <wanglulin@ict.ac.cn>
1 parent 93e860e commit 0ba7bfc

8 files changed

+8
-1
lines changed

llvm/lib/Passes/PassBuilderPipelines.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ static cl::opt<bool> EnableLoopHeaderDuplication(
228228
static cl::opt<bool>
229229
EnableDFAJumpThreading("enable-dfa-jump-thread",
230230
cl::desc("Enable DFA jump threading"),
231-
cl::init(false), cl::Hidden);
231+
cl::init(true), cl::Hidden);
232232

233233
static cl::opt<bool>
234234
EnableHotColdSplit("hot-cold-split",

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@
208208
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
209209
; CHECK-O-NEXT: Running pass: InstCombinePass
210210
; CHECK-EP-PEEPHOLE-NEXT: Running pass: NoOpFunctionPass
211+
; CHECK-O23SZ-NEXT: Running pass: DFAJumpThreadingPass
211212
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
212213
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
213214
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@
133133
; CHECK-O-NEXT: Running pass: BDCEPass
134134
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
135135
; CHECK-O-NEXT: Running pass: InstCombinePass
136+
; CHECK-O23SZ-NEXT: Running pass: DFAJumpThreadingPass
136137
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
137138
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
138139
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@
118118
; CHECK-O-NEXT: Running pass: BDCEPass
119119
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
120120
; CHECK-O-NEXT: Running pass: InstCombinePass
121+
; CHECK-O23SZ-NEXT: Running pass: DFAJumpThreadingPass
121122
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
122123
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
123124
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@
127127
; CHECK-O-NEXT: Running pass: BDCEPass
128128
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
129129
; CHECK-O-NEXT: Running pass: InstCombinePass
130+
; CHECK-O23SZ-NEXT: Running pass: DFAJumpThreadingPass
130131
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
131132
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
132133
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@
165165
; CHECK-O-NEXT: Running pass: BDCEPass
166166
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
167167
; CHECK-O-NEXT: Running pass: InstCombinePass
168+
; CHECK-O23SZ-NEXT: Running pass: DFAJumpThreadingPass
168169
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
169170
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
170171
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@
167167
; CHECK-O-NEXT: Running pass: BDCEPass
168168
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
169169
; CHECK-O-NEXT: Running pass: InstCombinePass
170+
; CHECK-O23SZ-NEXT: Running pass: DFAJumpThreadingPass
170171
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
171172
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
172173
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@
131131
; CHECK-O-NEXT: Running pass: BDCEPass
132132
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
133133
; CHECK-O-NEXT: Running pass: InstCombinePass
134+
; CHECK-O23SZ-NEXT: Running pass: DFAJumpThreadingPass
134135
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
135136
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
136137
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass

0 commit comments

Comments
 (0)