@@ -536,6 +536,7 @@ const usage_build_generic =
536536 \\ --test-runner [path] Specify a custom test runner
537537 \\
538538 \\Debug Options (Zig Compiler Development):
539+ \\ -fopt-bisect-limit [limit] Only run [limit] first LLVM optimization passes
539540 \\ -ftime-report Print timing diagnostics
540541 \\ -fstack-report Print stack size diagnostics
541542 \\ --verbose-link Display linker invocations
@@ -729,6 +730,7 @@ fn buildOutputType(
729730 var linker_print_gc_sections : bool = false ;
730731 var linker_print_icf_sections : bool = false ;
731732 var linker_print_map : bool = false ;
733+ var linker_opt_bisect_limit : i32 = -1 ;
732734 var linker_z_nocopyreloc = false ;
733735 var linker_z_nodelete = false ;
734736 var linker_z_notext = false ;
@@ -1285,6 +1287,8 @@ fn buildOutputType(
12851287 no_builtin = false ;
12861288 } else if (mem .eql (u8 , arg , "-fno-builtin" )) {
12871289 no_builtin = true ;
1290+ } else if (mem .startsWith (u8 , arg , "-fopt-bisect-limit=" )) {
1291+ linker_opt_bisect_limit = std .math .lossyCast (i32 , parseIntSuffix (arg , "-fopt-bisect-limit=" .len ));
12881292 } else if (mem .eql (u8 , arg , "--eh-frame-hdr" )) {
12891293 link_eh_frame_hdr = true ;
12901294 } else if (mem .eql (u8 , arg , "--emit-relocs" )) {
@@ -2996,6 +3000,7 @@ fn buildOutputType(
29963000 .linker_print_gc_sections = linker_print_gc_sections ,
29973001 .linker_print_icf_sections = linker_print_icf_sections ,
29983002 .linker_print_map = linker_print_map ,
3003+ .linker_opt_bisect_limit = linker_opt_bisect_limit ,
29993004 .linker_global_base = linker_global_base ,
30003005 .linker_export_symbol_names = linker_export_symbol_names .items ,
30013006 .linker_z_nocopyreloc = linker_z_nocopyreloc ,
0 commit comments