llvm-18: enable sroa and static map calls

This commit is contained in:
Laytan Laats
2024-04-16 17:52:44 +02:00
parent 043dd98e91
commit e3e04ffa22
2 changed files with 14 additions and 0 deletions

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);
#if LLVM_VERSION_MAJOR != 18
if (bc->metrics.os != TargetOs_windows) {
// ENFORCE DYNAMIC MAP CALLS
bc->dynamic_map_calls = true;
}
#endif
bc->ODIN_VALGRIND_SUPPORT = false;
if (build_context.metrics.os != TargetOs_windows) {

View File

@@ -1640,6 +1640,7 @@ inferattrs,
function<eager-inv>(
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>,
sroa<modify-cfg>,
early-cse<>
),
ipsccp,
@@ -1661,6 +1662,7 @@ cgscc(
inline,
function-attrs<skip-non-recursive-function-attrs>,
function<eager-inv;no-rerun>(
sroa<modify-cfg>,
early-cse<memssa>,
speculative-execution<only-if-divergent-target>,
jump-threading,
@@ -1688,6 +1690,7 @@ cgscc(
loop-deletion,
loop-unroll-full
),
sroa<modify-cfg>,
vector-combine,
mldst-motion<no-split-footer-bb>,
gvn<>,
@@ -1737,6 +1740,7 @@ function<eager-inv>(
instcombine<max-iterations=1;no-use-loop-info;no-verify-fixpoint>,
loop-unroll<O2>,
transform-warning,
sroa<preserve-cfg>,
infer-alignment,
instcombine<max-iterations=1;no-use-loop-info;no-verify-fixpoint>,
loop-mssa(
@@ -1896,6 +1900,7 @@ inferattrs,
function<eager-inv>(
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>,
sroa<modify-cfg>,
early-cse<>
),
ipsccp,
@@ -1917,6 +1922,7 @@ cgscc(
inline,
function-attrs<skip-non-recursive-function-attrs>,
function<eager-inv;no-rerun>(
sroa<modify-cfg>,
early-cse<memssa>,
speculative-execution<only-if-divergent-target>,
jump-threading,
@@ -1945,6 +1951,7 @@ cgscc(
loop-deletion,
loop-unroll-full
),
sroa<modify-cfg>,
vector-combine,
mldst-motion<no-split-footer-bb>,
gvn<>,
@@ -1994,6 +2001,7 @@ function<eager-inv>(
instcombine<max-iterations=1;no-use-loop-info;no-verify-fixpoint>,
loop-unroll<O2>,
transform-warning,
sroa<modify-cfg>,
infer-alignment,
instcombine<max-iterations=1;no-use-loop-info;no-verify-fixpoint>,
loop-mssa(
@@ -2157,6 +2165,7 @@ inferattrs,
function<eager-inv>(
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>,
sroa<modify-cfg>,
early-cse<>,
callsite-splitting
),
@@ -2178,6 +2187,7 @@ cgscc(
function-attrs<skip-non-recursive-function-attrs>,
argpromotion,
function<eager-inv;no-rerun>(
sroa<modify-cfg>,
early-cse<memssa>,
speculative-execution<only-if-divergent-target>,
jump-threading,
@@ -2206,6 +2216,7 @@ cgscc(
loop-deletion,
loop-unroll-full
),
sroa<modify-cfg>,
vector-combine,
mldst-motion<no-split-footer-bb>,
gvn<>,
@@ -2254,6 +2265,7 @@ function<eager-inv>(
instcombine<max-iterations=1;no-use-loop-info;no-verify-fixpoint>,
loop-unroll<O3>,
transform-warning,
sroa<preserve-cfg>,
infer-alignment,
instcombine<max-iterations=1;no-use-loop-info;no-verify-fixpoint>,
loop-mssa(licm<allowspeculation>),