https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111600
--- Comment #18 from Robin Dapp <rdapp at gcc dot gnu.org> --- Just finished an initial timing run, sorted, first 10: Time variable usr sys wall GGC phase opt and generate : 567.60 ( 97%) 38.23 ( 87%) 608.13 ( 97%) 22060M ( 90%) callgraph functions expansion : 491.16 ( 84%) 31.48 ( 72%) 524.60 ( 83%) 18537M ( 75%) integration : 90.09 ( 15%) 11.68 ( 27%) 103.25 ( 16%) 13408M ( 54%) tree CFG cleanup : 74.43 ( 13%) 1.02 ( 2%) 74.66 ( 12%) 201M ( 1%) callgraph ipa passes : 70.16 ( 12%) 6.21 ( 14%) 76.66 ( 12%) 2921M ( 12%) tree STMT verifier : 64.03 ( 11%) 3.52 ( 8%) 67.61 ( 11%) 0 ( 0%) tree CCP : 44.78 ( 8%) 2.91 ( 7%) 47.65 ( 8%) 314M ( 1%) integrated RA : 42.82 ( 7%) 0.86 ( 2%) 42.71 ( 7%) 880M ( 4%) `- tree CFG cleanup : 30.57 ( 5%) 0.38 ( 1%) 32.03 ( 5%) 198M ( 1%) `- tree CCP : 29.78 ( 5%) 0.05 ( 0%) 29.87 ( 5%) 168M ( 1%) tree SSA verifier : 28.07 ( 5%) 1.42 ( 3%) 30.91 ( 5%) 0 ( 0%) Per-function sorted expansion time (first 10): insn_code maybe_code_for_pred_indexed_store(int, machine_mode, machine_mode); 3.050000 insn_code maybe_code_for_pred_indexed_load(int, machine_mode, machine_mode); 2.680000 insn_code maybe_code_for_pred(int, machine_mode); 1.490000 rtx_insn* gen_split_4213(rtx_insn*, rtx_def**); 1.330000 insn_code maybe_code_for_pred_scalar(rtx_code, machine_mode); 1.180000 rtx_insn* gen_split_1266(rtx_insn*, rtx_def**); 0.700000 insn_code maybe_code_for_pred_slide(int, machine_mode); 0.510000 insn_code maybe_code_for_pred_scalar(int, machine_mode); 0.340000 insn_code maybe_code_for_pred_dual_widen(rtx_code, rtx_code, machine_mode); 0.300000 insn_code maybe_code_for_pred_dual_widen_scalar(rtx_code, rtx_code, machine_mode); 0.290000 Expanding all splitter functions (~8000) takes 214s, so roughly 40% of the expansion time. This we wouldn't get rid of even when not using insn helpers.