llvm-18: enable sroa and static map calls

This commit is contained in:
Laytan Laats
2024-05-07 16:52:46 +02:00
parent 043dd98e91
commit e3e04ffa22
2 changed files with 14 additions and 0 deletions
+2
View File
@@ -2027,10 +2027,12 @@ gb_internal void init_build_context(TargetMetrics *cross_target, Subtarget subta
bc->optimization_level = gb_clamp(bc->optimization_level, -1, 3); bc->optimization_level = gb_clamp(bc->optimization_level, -1, 3);
#if LLVM_VERSION_MAJOR != 18
if (bc->metrics.os != TargetOs_windows) { if (bc->metrics.os != TargetOs_windows) {
// ENFORCE DYNAMIC MAP CALLS // ENFORCE DYNAMIC MAP CALLS
bc->dynamic_map_calls = true; bc->dynamic_map_calls = true;
} }
#endif
bc->ODIN_VALGRIND_SUPPORT = false; bc->ODIN_VALGRIND_SUPPORT = false;
if (build_context.metrics.os != TargetOs_windows) { if (build_context.metrics.os != TargetOs_windows) {
+12
View File
@@ -1640,6 +1640,7 @@ inferattrs,
function<eager-inv>( function<eager-inv>(
lower-expect, lower-expect,
simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;no-switch-range-to-icmp;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-sink-common-insts;speculate-blocks;simplify-cond-branch>, simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;no-switch-range-to-icmp;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-sink-common-insts;speculate-blocks;simplify-cond-branch>,
sroa<modify-cfg>,
early-cse<> early-cse<>
), ),
ipsccp, ipsccp,
@@ -1661,6 +1662,7 @@ cgscc(
inline, inline,
function-attrs<skip-non-recursive-function-attrs>, function-attrs<skip-non-recursive-function-attrs>,
function<eager-inv;no-rerun>( function<eager-inv;no-rerun>(
sroa<modify-cfg>,
early-cse<memssa>, early-cse<memssa>,
speculative-execution<only-if-divergent-target>, speculative-execution<only-if-divergent-target>,
jump-threading, jump-threading,
@@ -1688,6 +1690,7 @@ cgscc(
loop-deletion, loop-deletion,
loop-unroll-full loop-unroll-full
), ),
sroa<modify-cfg>,
vector-combine, vector-combine,
mldst-motion<no-split-footer-bb>, mldst-motion<no-split-footer-bb>,
gvn<>, gvn<>,
@@ -1737,6 +1740,7 @@ function<eager-inv>(
instcombine<max-iterations=1;no-use-loop-info;no-verify-fixpoint>, instcombine<max-iterations=1;no-use-loop-info;no-verify-fixpoint>,
loop-unroll<O2>, loop-unroll<O2>,
transform-warning, transform-warning,
sroa<preserve-cfg>,
infer-alignment, infer-alignment,
instcombine<max-iterations=1;no-use-loop-info;no-verify-fixpoint>, instcombine<max-iterations=1;no-use-loop-info;no-verify-fixpoint>,
loop-mssa( loop-mssa(
@@ -1896,6 +1900,7 @@ inferattrs,
function<eager-inv>( function<eager-inv>(
lower-expect, lower-expect,
simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;no-switch-range-to-icmp;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-sink-common-insts;speculate-blocks;simplify-cond-branch>, simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;no-switch-range-to-icmp;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-sink-common-insts;speculate-blocks;simplify-cond-branch>,
sroa<modify-cfg>,
early-cse<> early-cse<>
), ),
ipsccp, ipsccp,
@@ -1917,6 +1922,7 @@ cgscc(
inline, inline,
function-attrs<skip-non-recursive-function-attrs>, function-attrs<skip-non-recursive-function-attrs>,
function<eager-inv;no-rerun>( function<eager-inv;no-rerun>(
sroa<modify-cfg>,
early-cse<memssa>, early-cse<memssa>,
speculative-execution<only-if-divergent-target>, speculative-execution<only-if-divergent-target>,
jump-threading, jump-threading,
@@ -1945,6 +1951,7 @@ cgscc(
loop-deletion, loop-deletion,
loop-unroll-full loop-unroll-full
), ),
sroa<modify-cfg>,
vector-combine, vector-combine,
mldst-motion<no-split-footer-bb>, mldst-motion<no-split-footer-bb>,
gvn<>, gvn<>,
@@ -1994,6 +2001,7 @@ function<eager-inv>(
instcombine<max-iterations=1;no-use-loop-info;no-verify-fixpoint>, instcombine<max-iterations=1;no-use-loop-info;no-verify-fixpoint>,
loop-unroll<O2>, loop-unroll<O2>,
transform-warning, transform-warning,
sroa<modify-cfg>,
infer-alignment, infer-alignment,
instcombine<max-iterations=1;no-use-loop-info;no-verify-fixpoint>, instcombine<max-iterations=1;no-use-loop-info;no-verify-fixpoint>,
loop-mssa( loop-mssa(
@@ -2157,6 +2165,7 @@ inferattrs,
function<eager-inv>( function<eager-inv>(
lower-expect, lower-expect,
simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;no-switch-range-to-icmp;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-sink-common-insts;speculate-blocks;simplify-cond-branch>, simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;no-switch-range-to-icmp;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-sink-common-insts;speculate-blocks;simplify-cond-branch>,
sroa<modify-cfg>,
early-cse<>, early-cse<>,
callsite-splitting callsite-splitting
), ),
@@ -2178,6 +2187,7 @@ cgscc(
function-attrs<skip-non-recursive-function-attrs>, function-attrs<skip-non-recursive-function-attrs>,
argpromotion, argpromotion,
function<eager-inv;no-rerun>( function<eager-inv;no-rerun>(
sroa<modify-cfg>,
early-cse<memssa>, early-cse<memssa>,
speculative-execution<only-if-divergent-target>, speculative-execution<only-if-divergent-target>,
jump-threading, jump-threading,
@@ -2206,6 +2216,7 @@ cgscc(
loop-deletion, loop-deletion,
loop-unroll-full loop-unroll-full
), ),
sroa<modify-cfg>,
vector-combine, vector-combine,
mldst-motion<no-split-footer-bb>, mldst-motion<no-split-footer-bb>,
gvn<>, gvn<>,
@@ -2254,6 +2265,7 @@ function<eager-inv>(
instcombine<max-iterations=1;no-use-loop-info;no-verify-fixpoint>, instcombine<max-iterations=1;no-use-loop-info;no-verify-fixpoint>,
loop-unroll<O3>, loop-unroll<O3>,
transform-warning, transform-warning,
sroa<preserve-cfg>,
infer-alignment, infer-alignment,
instcombine<max-iterations=1;no-use-loop-info;no-verify-fixpoint>, instcombine<max-iterations=1;no-use-loop-info;no-verify-fixpoint>,
loop-mssa(licm<allowspeculation>), loop-mssa(licm<allowspeculation>),