Skip to content

Commit 8fb181d

Browse files
committed
Actually use our own opt pipeline.
1 parent 116e72d commit 8fb181d

File tree

1 file changed

+29
-13
lines changed

1 file changed

+29
-13
lines changed

src/optim.jl

+29-13
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ end
88
# Based on Julia's optimization pipeline, minus the SLP and loop vectorizers.
99
function addOptimizationPasses!(pm, opt_level=2)
1010
# compare with the using Julia's optimization pipeline directly:
11-
ccall(:jl_add_optimization_passes, Cvoid,
12-
(LLVM.API.LLVMPassManagerRef, Cint, Cint),
13-
pm, opt_level, #=lower_intrinsics=# 0)
14-
return
11+
#ccall(:jl_add_optimization_passes, Cvoid,
12+
# (LLVM.API.LLVMPassManagerRef, Cint, Cint),
13+
# pm, opt_level, #=lower_intrinsics=# 0)
14+
#return
1515

1616
# NOTE: LLVM 12 disabled the hoisting of common instruction
1717
# before loop vectorization (https://reviews.llvm.org/D84108).
@@ -24,7 +24,11 @@ function addOptimizationPasses!(pm, opt_level=2)
2424
constant_merge!(pm)
2525

2626
if opt_level < 2
27-
cfgsimplification!(pm; hoist_common_insts=true)
27+
if LLVM.version() >= v"12"
28+
cfgsimplification!(pm; hoist_common_insts=true)
29+
else
30+
cfgsimplification!(pm)
31+
end
2832
if opt_level == 1
2933
scalar_repl_aggregates!(pm)
3034
instruction_combining!(pm)
@@ -44,7 +48,11 @@ function addOptimizationPasses!(pm, opt_level=2)
4448
if opt_level >= 3
4549
basic_alias_analysis!(pm)
4650
end
47-
cfgsimplification!(pm; hoist_common_insts=true)
51+
if LLVM.version() >= v"12"
52+
cfgsimplification!(pm; hoist_common_insts=true)
53+
else
54+
cfgsimplification!(pm)
55+
end
4856
dce!(pm)
4957
scalar_repl_aggregates!(pm)
5058

@@ -59,7 +67,11 @@ function addOptimizationPasses!(pm, opt_level=2)
5967
alloc_opt!(pm)
6068
# consider AggressiveInstCombinePass at optlevel > 2
6169
instruction_combining!(pm)
62-
cfgsimplification!(pm; hoist_common_insts=true)
70+
if LLVM.version() >= v"12"
71+
cfgsimplification!(pm; hoist_common_insts=true)
72+
else
73+
cfgsimplification!(pm)
74+
end
6375
scalar_repl_aggregates!(pm)
6476
instruction_simplify!(pm)
6577
jump_threading!(pm)
@@ -122,12 +134,16 @@ function addOptimizationPasses!(pm, opt_level=2)
122134
loop_vectorize!(pm)
123135
loop_load_elimination!(pm)
124136
# Cleanup after LV pass
125-
cfgsimplification!(pm; # Aggressive CFG simplification
126-
forward_switch_cond_to_phi=true,
127-
convert_switch_to_lookup_table=true,
128-
need_canonical_loop=true,
129-
hoist_common_insts=true,
130-
sink_common_insts=true) # FIXME: Causes assertion in llvm-late-lowering
137+
if LLVM.version() >= v"12"
138+
cfgsimplification!(pm; # Aggressive CFG simplification
139+
forward_switch_cond_to_phi=true,
140+
convert_switch_to_lookup_table=true,
141+
need_canonical_loop=true,
142+
hoist_common_insts=true,
143+
sink_common_insts=true) # FIXME: Causes assertion in llvm-late-lowering
144+
else
145+
cfgsimplification!(pm)
146+
end
131147

132148
aggressive_dce!(pm)
133149
end

0 commit comments

Comments
 (0)