From ed7c9ec61929cbb7e4a112176c12a0c3fbeeb782 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sun, 29 Oct 2023 20:13:03 +0000 Subject: Test: use custom passes for -o:speed --- src/llvm_backend.cpp | 123 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 122 insertions(+), 1 deletion(-) (limited to 'src/llvm_backend.cpp') diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index 716c50837..d65a28e23 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -1494,7 +1494,115 @@ gb_internal WORKER_TASK_PROC(lb_llvm_module_pass_worker_proc) { array_add(&passes, "default"); break; case 2: - array_add(&passes, "default"); + // array_add(&passes, "default"); + array_add(&passes, u8R"( + +annotation2metadata, +forceattrs, +inferattrs, + + +function( + lower-expect, + simplifycfg, + sroa, + early-cse<> +), + +called-value-propagation, +globalopt, +function( + mem2reg, + simplifycfg +), +require, +function( + invalidate +), +require, +cgscc( + devirt<4>( + inline, + inline, + function-attrs, + function( + sroa, + early-cse, + speculative-execution, + jump-threading, + simplifycfg, + constraint-elimination, + libcalls-shrinkwrap, + tailcallelim, + simplifycfg, + loop-mssa( + loop-instsimplify, + loop-simplifycfg, + licm, + loop-rotate, + licm, + simple-loop-unswitch + ), + simplifycfg, + sroa, + vector-combine, + mldst-motion, + gvn<>, + bdce, + jump-threading, + adce, + memcpyopt, + dse, + move-auto-init, + simplifycfg + ), + function-attrs, + function( + require + ) + ) +), + + +deadargelim, +globalopt, +globaldce, +elim-avail-extern, +rpo-function-attrs, +recompute-globalsaa, +function( + float2int, + lower-constant-intrinsics, + loop( + loop-rotate, + loop-deletion + ), + loop-distribute, + inject-tli-mappings, + loop-load-elim, + slp-vectorizer, + vector-combine, + transform-warning, + sroa, + alignment-from-assumptions, + loop-sink, + instsimplify, + div-rem-pairs, + tailcallelim, + simplifycfg +), +globaldce, +constmerge, +cg-profile, +rel-lookup-table-converter, + +function( + annotation-remarks +), +verify + + +)"); break; case 3: array_add(&passes, "default"); @@ -1528,6 +1636,19 @@ gb_internal WORKER_TASK_PROC(lb_llvm_module_pass_worker_proc) { } passes_str = gb_string_appendc(passes_str, passes[i]); } + for (isize i = 0; i < gb_string_length(passes_str); /**/) { + switch (passes_str[i]) { + case ' ': + case '\n': + case '\t': + gb_memmove(&passes_str[i], &passes_str[i+1], gb_string_length(passes_str)-i); + GB_STRING_HEADER(passes_str)->length -= 1; + continue; + default: + i += 1; + break; + } + } LLVMErrorRef llvm_err = LLVMRunPasses(wd->m->mod, passes_str, wd->target_machine, pb_options); -- cgit v1.2.3