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.