mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-05 15:18:49 +00:00
llvm-18: enable sroa and static map calls
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
@@ -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>),
|
||||||
|
|||||||
Reference in New Issue
Block a user