https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109695
--- Comment #17 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
For peak memory consumption there is -fmem-report, which prints stats about GC
memory.
For this PR I think you want instead measure maximum stack usage.
Perhaps GCC could be built with -fstack-usage and something could be derived
from callgraph and the stack usage info. Or use systemtap on cc1/cc1plus and
try to determine something using it?
Or build gcc with -fsplit-stack and hook into morestack?
Or just try to check for functions with largest stack usages in cc1plus?
Doing that on the trunk gives:
objdump -dr cc1plus | grep
'>:\|sub.*0x.*[0-9a-f][0-9a-f][0-9a-f][0-9a-f],.*rsp' | awk
'/>:/{I=$2}/sub.*rsp/{J=gensub(/.*(0x[0-9a-f]+),%rsp/,"\\1","1",$0);K=strtonum(J);printf
"%d %s %s\n", K, I, $0}' | grep -v 0xffffffffffff | sort -nr
410440 <_ZN19infer_range_manager17register_all_usesEP9tree_node>: 275120d:
48 81 ec 48 43 06 00 sub $0x64348,%rsp
410440 <_ZN12ranger_cache21apply_inferred_rangesEP6gimple>: 274075d: 48 81
ec 48 43 06 00 sub $0x64348,%rsp
287320
<_ZN12gori_compute15logical_combineER6vrange9tree_codeRK6irangeRKS0_S7_S7_S7_>:
2748d0c: 48 81 ec 58 62 04 00 sub $0x46258,%rsp
205320 <_ZN13gimple_ranger25prefill_stmt_dependenciesEP9tree_node>: 27398ed:
48 81 ec 08 22 03 00 sub $0x32208,%rsp
205288
<_ZN12gori_compute15condexpr_adjustER6vrangeS1_P6gimpleP9tree_nodeS5_S5_R10fur_source>:
274c2c3: 48 81 ec e8 21 03 00 sub $0x321e8,%rsp
204840
<_ZNK15operator_rshift9op1_rangeER6irangeP9tree_nodeRKS0_S5_13relation_trio>:
16481ba: 48 81 ec 28 20 03 00 sub $0x32028,%rsp
164952 <_ZL21determine_value_rangeP4loopP9tree_nodeS2_P12__mpz_structS4_S4_>:
189afc6: 48 81 ec 58 84 02 00 sub $0x28458,%rsp
164512 <_ZN8selftestL26range_op_bitwise_and_testsEv>: 164fef4: 48 81 ec a0 82
02 00 sub $0x282a0,%rsp
164360 <_ZN8selftestL25range_tests_int_range_maxEv>: 1a26584: 48 81 ec 08 82
02 00 sub $0x28208,%rsp
164312 <_ZN18remove_unreachable25remove_and_update_globalsEb.part.0>: 19e1780:
48 81 ec d8 81 02 00 sub $0x281d8,%rsp
164296 <_ZN12ranger_cache16fill_block_cacheEP9tree_nodeP15basic_block_defS3_>:
27418ed: 48 81 ec c8 81 02 00 sub $0x281c8,%rsp
164280
<_ZN16fold_using_range17range_of_range_opER6vrangeR23gimple_range_op_handlerR10fur_source>:
274680a: 48 81 ec b8 81 02 00 sub $0x281b8,%rsp
164280
<_ZN12gori_compute21compute_operand_rangeER6vrangeP6gimpleRKS0_P9tree_nodeR10fur_sourceP14value_relation.part.0>:
274b259: 48 81 ec b8 81 02 00 sub $0x281b8,%rsp
164248 <_ZN11range_query14get_tree_rangeER6vrangeP9tree_nodeP6gimple>:
1a17e26: 48 81 ec 98 81 02 00 sub $0x28198,%rsp
164232
<_ZN12gori_compute21refine_using_relationEP9tree_nodeR6vrangeS1_S3_R10fur_source15relation_kind_t>:
274a50a: 48 81 ec 88 81 02 00 sub $0x28188,%rsp
164104 <_ZN8selftestL21range_op_rshift_testsEv>: 1648826: 48 81 ec 08 81
02 00 sub $0x28108,%rsp
164008
<_ZNK13operator_cast9op1_rangeER6irangeP9tree_nodeRKS0_S5_13relation_trio.part.0>:
164e5f9: 48 81 ec a8 80 02 00 sub $0x280a8,%rsp
163864 <_ZN21gimple_outgoing_range18calc_switch_rangesEP7gswitch>: 274335d:
48 81 ec 18 80 02 00 sub $0x28018,%rsp
123240
<_ZN12gori_compute22compute_operand1_rangeER6vrangeR23gimple_range_op_handlerRKS0_P9tree_nodeR10fur_sourceP14value_relation>:
274d1de: 48 81 ec 68 e1 01 00 sub $0x1e168,%rsp
123224
<_ZN12gori_compute22compute_operand2_rangeER6vrangeR23gimple_range_op_handlerRKS0_P9tree_nodeR10fur_sourceP14value_relation>:
274dc8e: 48 81 ec 58 e1 01 00 sub $0x1e158,%rsp
123176 <_ZN16path_range_query23compute_ranges_in_blockEP15basic_block_def>:
18c708d: 48 81 ec 28 e1 01 00 sub $0x1e128,%rsp
123176 <_ZN16fold_using_range12range_of_phiER6vrangeP4gphiR10fur_source>:
2745820: 48 81 ec 28 e1 01 00 sub $0x1e128,%rsp
123176 <_ZN13gimple_ranger7dump_bbEP8_IO_FILEP15basic_block_def>: 273cd4b:
48 81 ec 28 e1 01 00 sub $0x1e128,%rsp
123144
<_ZN16fold_using_range18range_of_cond_exprER6vrangeP7gassignR10fur_source>:
27450a3: 48 81 ec 08 e1 01 00 sub $0x1e108,%rsp
123128 <_ZN12ranger_cache15propagate_cacheEP9tree_node>: 2740d9d: 48 81
ec f8 e0 01 00 sub $0x1e0f8,%rsp
83240 <_ZN8selftestL21range_op_lshift_testsEv>: 16461da: 48 81 ec 28 45
01 00 sub $0x14528,%rsp
83048 <_ZL23adjust_op1_for_overflowR6irangeRKS_15relation_kind_tb.part.0>:
1639c99: 48 81 ec 68 44 01 00 sub $0x14468,%rsp
82856 <_ZL15simplify_rotateP20gimple_stmt_iterator>: 185282e: 48 81 ec a8 43
01 00 sub $0x143a8,%rsp
82560
<_ZN21simplify_using_ranges18fold_cond_with_opsE9tree_codeP9tree_nodeS2_P6gimple>:
1a6bfca: 48 81 ec 80 42 01 00 sub $0x14280,%rsp
82248
<_ZL21record_nonwrapping_ivP4loopP9tree_nodeS2_P6gimpleS2_S2_bb.constprop.0>:
189571d: 48 81 ec 48 41 01 00 sub $0x14148,%rsp
82168
<_ZNK15operator_lshift9op1_rangeER6irangeP9tree_nodeRKS0_S5_13relation_trio.part.0>:
1645c99: 48 81 ec f8 40 01 00 sub $0x140f8,%rsp
82136 <_ZN13gimple_ranger11update_stmtEP6gimple>: 2738dff: 48 81 ec d8 40
01 00 sub $0x140d8,%rsp
82136
<_ZN12ranger_cache14range_from_domER6vrangeP9tree_nodeP15basic_block_defNS_8rfd_modeE.part.0>:
273f88d: 48 81 ec d8 40 01 00 sub $0x140d8,%rsp
82120
<_ZNK14range_operator10fold_rangeER6irangeP9tree_nodeRKS0_S5_13relation_trio>:
163ed79: 48 81 ec c8 40 01 00 sub $0x140c8,%rsp
82120 <_Z10range_castR6vrangeP9tree_node>: 163c1da: 48 81 ec c8 40 01 00
sub $0x140c8,%rsp
82104 <_ZN17block_range_cache4dumpEP8_IO_FILEP15basic_block_defb>: 273e3e9:
48 81 ec b8 40 01 00 sub $0x140b8,%rsp
82104 <_ZN16path_range_query16ssa_range_in_phiER6vrangeP4gphi>: 18c6573:
48 81 ec b8 40 01 00 sub $0x140b8,%rsp
82104
<_ZN13gimple_ranger35register_transitive_inferred_rangesEP15basic_block_def>:
273aeba: 48 81 ec b8 40 01 00 sub $0x140b8,%rsp
82104
<_ZN12assume_query12calculate_opEP9tree_nodeP6gimpleR6vrangeR10fur_source>:
273b99d: 48 81 ec b8 40 01 00 sub $0x140b8,%rsp
82104 <_Z21find_case_label_rangeP7gswitchPK6irange>: 19e2b5a: 48 81 ec b8 40
01 00 sub $0x140b8,%rsp
82088
<_ZN15relation_oracle17validate_relationE15relation_kind_tP9tree_nodeS2_>:
1a300c4: 48 81 ec a8 40 01 00 sub $0x140a8,%rsp
82080
<_ZN19infer_range_manager9add_rangeEP9tree_nodeP15basic_block_defRK6vrange>:
2750c36: 48 81 ec a0 40 01 00 sub $0x140a0,%rsp
82080 <_ZN11range_query14query_relationEP6gimpleP9tree_nodeS3_b>: 1a189ab:
48 81 ec a0 40 01 00 sub $0x140a0,%rsp
81992 <_ZN18gimple_infer_range17check_assume_funcEP5gcall>: 27501ba: 48 81
ec 48 40 01 00 sub $0x14048,%rsp
81976 <_ZN12assume_query13calculate_phiEP4gphiR6vrangeR10fur_source>: 273bdca:
48 81 ec 38 40 01 00 sub $0x14038,%rsp
81928
<_ZNK20operator_bitwise_and9op1_rangeER6irangeP9tree_nodeRKS0_S5_13relation_trio.part.0>:
164fad6: 48 81 ec 08 40 01 00 sub $0x14008,%rsp
81880
<_ZL40evaluate_control_stmt_using_entry_checksP6gimpleR3vecISt4pairIP18unswitch_predicatebE7va_heap6vl_ptrEiP8hash_setIP8edge_defLb0E19default_hash_traitsISC_EE>:
18adb2d: 48 81 ec d8 3f 01 00 sub $0x13fd8,%rsp
43176 <_ZL25vect_recog_divmod_patternP8vec_infoP14_stmt_vec_infoPP9tree_node>:
289acca: 48 81 ec a8 a8 00 00 sub $0xa8a8,%rsp
42936
<_Z20range_of_var_in_loopR6vrangeP9tree_nodeP4loopP6gimpleP11range_query>:
1a73c99: 48 81 ec b8 a7 00 00 sub $0xa7b8,%rsp
42312 <_ZN21simplify_using_ranges8simplifyEP20gimple_stmt_iterator>: 1a7274a:
48 81 ec 48 a5 00 00 sub $0xa548,%rsp
42264 <_ZN12_GLOBAL__N_116pass_assumptions7executeEP8function>: 19e0da6:
48 81 ec 18 a5 00 00 sub $0xa518,%rsp
42248
<_ZN13back_threader20find_taken_edge_condERK3vecIP15basic_block_def7va_heap6vl_ptrEP5gcond>:
19488c6: 48 81 ec 08 a5 00 00 sub $0xa508,%rsp
42072 <_ZN10fur_source23register_outgoing_edgesEP5gcondR6irangeP8edge_defS5_>:
2746196: 48 81 ec 58 a4 00 00 sub $0xa458,%rsp
41688
<_ZNK12operator_abs9op1_rangeER6irangeP9tree_nodeRKS0_S5_13relation_trio>:
163cf10: 48 81 ec d8 a2 00 00 sub $0xa2d8,%rsp
41640
<_ZL17value_replacementP15basic_block_defS0_P8edge_defS2_P4gphiP9tree_nodeS6_>:
18cf2ed: 48 81 ec a8 a2 00 00 sub $0xa2a8,%rsp
41624 <_ZL16alloca_call_typeP6gimpleb>: 277f6c6: 48 81 ec 98 a2 00 00
sub $0xa298,%rsp
41448 <_ZN16path_range_query24adjust_for_non_null_usesEP15basic_block_def>:
18c7a9a: 48 81 ec e8 a1 00 00 sub $0xa1e8,%rsp
41400 <_ZL28scev_var_range_cant_overflowP9tree_nodeS0_P4loop>: 189622d:
48 81 ec b8 a1 00 00 sub $0xa1b8,%rsp
41384
<_ZNK18operator_not_equal10fold_rangeER6irangeP9tree_nodeRKS0_S5_13relation_trio>:
163cbd9: 48 81 ec a8 a1 00 00 sub $0xa1a8,%rsp
41384
<_ZNK14operator_equal10fold_rangeER6irangeP9tree_nodeRKS0_S5_13relation_trio>:
163c889: 48 81 ec a8 a1 00 00 sub $0xa1a8,%rsp
41352
<_ZNK12operator_div7wi_foldER6irangeP9tree_nodeRK16generic_wide_intI16wide_int_storageES8_S8_S8_>:
164b48d: 48 81 ec 88 a1 00 00 sub $0xa188,%rsp
41328 <_Z26check_nul_terminated_arrayIP9tree_nodeEbT_S1_S1_>: 13d3f24: 48 81
ec 70 a1 00 00 sub $0xa170,%rsp
41328 <_Z26check_nul_terminated_arrayIP6gimpleEbT_P9tree_nodeS4_>: 13d2184:
48 81 ec 70 a1 00 00 sub $0xa170,%rsp
41328 <_Z26check_nul_terminated_arrayIP5gcallEbT_P9tree_nodeS4_>: 13d5044:
48 81 ec 70 a1 00 00 sub $0xa170,%rsp
41304 <_ZN6irange6invertEv>: 1a2130a: 48 81 ec 58 a1 00 00 sub
$0xa158,%rsp
41272
<_ZNK15operator_lshift10fold_rangeER6irangeP9tree_nodeRKS0_S5_13relation_trio>:
1643762: 48 81 ec 38 a1 00 00 sub $0xa138,%rsp
41272
<_ZNK14range_operator16wi_fold_in_partsER6irangeP9tree_nodeRK16generic_wide_intI16wide_int_storageES8_S8_S8_>:
163e6cd: 48 81 ec 38 a1 00 00 sub $0xa138,%rsp
41272 <_ZN8selftest14test_expr_evalC1Ev>: 2756cda: 48 81 ec 38 a1 00 00
sub $0xa138,%rsp
41256 <_ZN6irange9intersectERK6vrange>: 1a2385a: 48 81 ec 28 a1 00 00
sub $0xa128,%rsp
41176 <_ZL33infer_loop_bounds_from_signednessP4loopP6gimple>: 1895ff2: 48 81
ec d8 a0 00 00 sub $0xa0d8,%rsp
41160
<_ZNK14range_operator22wi_fold_in_parts_equivER6irangeP9tree_nodeRK16generic_wide_intI16wide_int_storageES8_j>:
163a47d: 48 81 ec c8 a0 00 00 sub $0xa0c8,%rsp
41160 <_ZN13gimple_ranger13range_of_exprER6vrangeP9tree_nodeP6gimple>:
273c4d6: 48 81 ec c8 a0 00 00 sub $0xa0c8,%rsp
41160
<_Z17expr_not_equal_toP9tree_nodeRK16generic_wide_intI16wide_int_storageE>:
135839c: 48 81 ec c8 a0 00 00 sub $0xa0c8,%rsp
41152 <_ZNK7cfn_ffs10fold_rangeER6irangeP9tree_nodeRKS0_S5_13relation_trio>:
275489b: 48 81 ec c0 a0 00 00 sub $0xa0c0,%rsp
41144
<_ZN18dom_opt_dom_walker40set_global_ranges_from_unreachable_edgesEP15basic_block_def>:
184994a: 48 81 ec b8 a0 00 00 sub $0xa0b8,%rsp
41144 <_ZN13gimple_ranger13range_of_stmtER6vrangeP6gimpleP9tree_node>:
273a819: 48 81 ec b8 a0 00 00 sub $0xa0b8,%rsp
41136 <_ZN12_GLOBAL__N_116memmodel_to_uhwiEP9tree_nodeP6gimplePm>: 13cc0fd:
48 81 ec b0 a0 00 00 sub $0xa0b0,%rsp
41112 <_ZN21simplify_using_ranges16legacy_fold_condEP5gcondPP8edge_def>:
1a6cf03: 48 81 ec 98 a0 00 00 sub $0xa098,%rsp
41088
<_ZN20hybrid_jt_simplifier8simplifyEP6gimpleS1_P15basic_block_defP8jt_state>:
194c4b1: 48 81 ec 80 a0 00 00 sub $0xa080,%rsp
41080 <_ZN16path_range_query22compute_ranges_in_phisEP15basic_block_def>:
18c6c20: 48 81 ec 78 a0 00 00 sub $0xa078,%rsp
41072 <_ZN15relation_oracle17validate_relationE15relation_kind_tR6vrangeS2_>:
1a2fe8e: 48 81 ec 70 a0 00 00 sub $0xa070,%rsp
41064 <_ZN9ssa_cache4dumpEP8_IO_FILE>: 273ed82: 48 81 ec 68 a0 00 00
sub $0xa068,%rsp
41064 <_ZN16fold_using_range13range_of_callER6vrangeP5gcallR10fur_source>:
2744e8f: 48 81 ec 68 a0 00 00 sub $0xa068,%rsp
41064 <_ZN13gimple_ranger13range_on_edgeER6vrangeP8edge_defP9tree_node>:
273c91d: 48 81 ec 68 a0 00 00 sub $0xa068,%rsp
41064 <_ZN12ranger_cache11resolve_domER6vrangeP9tree_nodeP15basic_block_def>:
273f60d: 48 81 ec 68 a0 00 00 sub $0xa068,%rsp
41064
<_ZN12gori_compute35compute_operand1_and_operand2_rangeER6vrangeR23gimple_range_op_handlerRKS0_P9tree_nodeR10fur_sourceP14value_relation>:
274e70d: 48 81 ec 68 a0 00 00 sub $0xa068,%rsp
41064 <_ZN12assume_query4dumpEP8_IO_FILE>: 2738a44: 48 81 ec 68 a0 00 00
sub $0xa068,%rsp
41064 <_ZN11range_query13value_on_edgeEP8edge_defP9tree_node>: 1a17949:
48 81 ec 68 a0 00 00 sub $0xa068,%rsp
41064 <_ZN11range_query13value_of_stmtEP6gimpleP9tree_node>: 1a1754f: 48 81
ec 68 a0 00 00 sub $0xa068,%rsp
41064 <_ZN11range_query13value_of_exprEP9tree_nodeP6gimple>: 1a17759: 48 81
ec 68 a0 00 00 sub $0xa068,%rsp
41056 <_ZL17dump_ssaname_infoP14pretty_printerP9tree_nodei.part.0>: 13c3b0d:
48 81 ec 60 a0 00 00 sub $0xa060,%rsp
41056 <_ZL13cprop_operandP6gimpleP17ssa_use_operand_tP11range_query>: 1848038:
48 81 ec 60 a0 00 00 sub $0xa060,%rsp
41056 <_Z14set_range_infoP9tree_nodeRK6vrange>: 1964ca7: 48 81 ec 60 a0
00 00 sub $0xa060,%rsp
41048 <_ZN23gimple_range_op_handler8calc_op2ER6vrangeRKS0_S3_13relation_trio>:
2752927: 48 81 ec 58 a0 00 00 sub $0xa058,%rsp
41048 <_ZN23gimple_range_op_handler8calc_op1ER6vrangeRKS0_S3_13relation_trio>:
27526f7: 48 81 ec 58 a0 00 00 sub $0xa058,%rsp
41048 <_ZN23gimple_range_op_handler8calc_op1ER6vrangeRKS0_>: 2752536: 48 81
ec 58 a0 00 00 sub $0xa058,%rsp
41048
<_ZN19infer_range_manager18maybe_adjust_rangeER6vrangeP9tree_nodeP15basic_block_def>:
27513c8: 48 81 ec 58 a0 00 00 sub $0xa058,%rsp
41048 <_ZN13gimple_ranger24register_inferred_rangesEP6gimple>: 273ac9f:
48 81 ec 58 a0 00 00 sub $0xa058,%rsp
41048 <_ZN13gimple_ranger20export_global_rangesEv>: 273b430: 48 81 ec 58 a0
00 00 sub $0xa058,%rsp
41048
<_ZN13gimple_ranger14range_on_entryER6vrangeP15basic_block_defP9tree_node>:
27393bd: 48 81 ec 58 a0 00 00 sub $0xa058,%rsp
41048 <_ZN12_GLOBAL__N_115loop_versioning21prune_loop_conditionsEP4loop>:
272ae8a: 48 81 ec 58 a0 00 00 sub $0xa058,%rsp
41048 <_ZN11range_query14query_relationEP8edge_defP9tree_nodeS3_b>: 1a18cfd:
48 81 ec 58 a0 00 00 sub $0xa058,%rsp
41040 <_ZN16ssa_block_ranges4dumpEP8_IO_FILE>: 273dc1a: 48 81 ec 50 a0
00 00 sub $0xa050,%rsp
41040
<_ZN16path_range_query22internal_range_of_exprER6vrangeP9tree_nodeP6gimple>:
18c6e0b: 48 81 ec 50 a0 00 00 sub $0xa050,%rsp
41040
<_ZN12ranger_cache23register_inferred_valueERK6vrangeP9tree_nodeP15basic_block_def>:
274056b: 48 81 ec 50 a0 00 00 sub $0xa050,%rsp
41040
<_ZN12ranger_cache10edge_rangeER6vrangeP8edge_defP9tree_nodeNS_8rfd_modeE>:
2740274: 48 81 ec 50 a0 00 00 sub $0xa050,%rsp
41040 <_Z29duplicate_ssa_name_range_infoP9tree_nodeS0_>: 1965057: 48 81
ec 50 a0 00 00 sub $0xa050,%rsp
41040 <_Z17debug_seed_rangerR13gimple_ranger>: 27566fb: 48 81 ec 50 a0
00 00 sub $0xa050,%rsp
41032
<_ZNK13operator_cast10fold_rangeER6irangeP9tree_nodeRKS0_S5_13relation_trio>:
16512bd: 48 81 ec 48 a0 00 00 sub $0xa048,%rsp
41032
<_ZN13back_threader22find_taken_edge_switchERK3vecIP15basic_block_def7va_heap6vl_ptrEP7gswitch>:
19487bc: 48 81 ec 48 a0 00 00 sub $0xa048,%rsp
40968
<_ZN12gori_compute21outgoing_edge_range_pER6vrangeP8edge_defP9tree_nodeR11range_query>:
274f5a0: 48 81 ec 08 a0 00 00 sub $0xa008,%rsp
40936 <_ZN21simplify_using_ranges9fold_condEP5gcond>: 1a6e521: 48 81 ec e8 9f
00 00 sub $0x9fe8,%rsp
40920
<_ZNK15operator_rshift10fold_rangeER6irangeP9tree_nodeRKS0_S5_13relation_trio>:
1643682: 48 81 ec d8 9f 00 00 sub $0x9fd8,%rsp
40920 <_ZNK14irange_storage7equal_pERK6irangeP9tree_node>: 1a2eb89: 48 81
ec d8 9f 00 00 sub $0x9fd8,%rsp
40920 <_ZN11Value_RangeaSERK6vrange.isra.0>: 2750095: 48 81 ec d8 9f 00 00
sub $0x9fd8,%rsp
40920 <_Z16get_nonzero_bitsPK9tree_node.part.0>: 1963f15: 48 81 ec d8 9f
00 00 sub $0x9fd8,%rsp
40912 <_ZN14irange_storage10set_irangeERK6irange.part.0>: 1a2e60a: 48 81
ec d0 9f 00 00 sub $0x9fd0,%rsp
38872 <_ZN3ana8selftestL17test_sm_state_mapEv>: 1ae38cf: 48 81 ec d8 97
00 00 sub $0x97d8,%rsp
21384 <_ZN3ana17impl_run_checkersEPNS_6loggerE>: 1acd577: 48 81 ec 88 53
00 00 sub $0x5388,%rsp
20216 <_ZN3ana8selftestL16test_iteration_1Ev>: 1afbcac: 48 81 ec f8 4e
00 00 sub $0x4ef8,%rsp
19752 <_ZN3ana8selftestL18test_state_mergingEv>: 1afca8f: 48 81 ec 28 4d
00 00 sub $0x4d28,%rsp
19640 <_ZN3ana8selftestL23test_constraint_mergingEv>: 1afb84c: 48 81 ec b8 4c
00 00 sub $0x4cb8,%rsp
19640 <_ZN3ana8selftestL19test_many_constantsEv>: 28eeb44: 48 81 ec b8 4c
00 00 sub $0x4cb8,%rsp
19608 <_ZN3ana8selftestL26test_program_state_mergingEv>: 1ae4ecf: 48 81
ec 98 4c 00 00 sub $0x4c98,%rsp
19584 <_ZN3ana8selftestL15test_equality_1Ev>: 1af6f09: 48 81 ec 80 4c 00 00
sub $0x4c80,%rsp
19584 <_ZN3ana8selftestL13test_equalityEv>: 28f14cd: 48 81 ec 80 4c 00 00
sub $0x4c80,%rsp
19480 <_ZN3ana8selftestL25test_binop_svalue_foldingEv>: 1af3d8e: 48 81
ec 18 4c 00 00 sub $0x4c18,%rsp
19464 <_ZN3ana8selftestL28test_program_state_merging_2Ev>: 1ae3470: 48 81
ec 08 4c 00 00 sub $0x4c08,%rsp
19448 <_ZN3ana8selftestL23test_canonicalization_3Ev>: 1af9fdb: 48 81 ec f8 4b
00 00 sub $0x4bf8,%rsp
19440 <_ZN3ana8selftestL23test_canonicalization_2Ev>: 1af87dd: 48 81 ec f0 4b
00 00 sub $0x4bf0,%rsp
19432 <_ZN3ana8selftestL32test_get_representative_path_varEv>: 1af96c1:
48 81 ec e8 4b 00 00 sub $0x4be8,%rsp
19400 <_ZN3ana8selftestL17test_stack_framesEv>: 1b007bf: 48 81 ec c8 4b
00 00 sub $0x4bc8,%rsp
19400 <_ZN3ana8selftestL12test_array_2Ev>: 1af78d1: 48 81 ec c8 4b 00 00
sub $0x4bc8,%rsp
19392 <_ZN3ana8selftestL11test_structEv>: 1af6b08: 48 81 ec c0 4b 00 00
sub $0x4bc0,%rsp
19376 <_ZN3ana8selftestL28test_get_representative_treeEv>: 1b021d6: 48 81
ec b0 4b 00 00 sub $0x4bb0,%rsp
19352 <_ZN3ana8selftestL24test_compound_assignmentEv>: 1af84ca: 48 81
ec 98 4b 00 00 sub $0x4b98,%rsp
19344 <_ZN3ana8selftestL8test_varEv>: 1af742d: 48 81 ec 90 4b 00 00 sub
$0x4b90,%rsp
19344 <_ZN3ana8selftestL23test_sub_svalue_foldingEv>: 1af1fc4: 48 81 ec 90 4b
00 00 sub $0x4b90,%rsp
19336 <_ZN3ana8selftestL25test_constant_comparisonsEv>: 28ec11f: 48 81
ec 88 4b 00 00 sub $0x4b88,%rsp
19328 <_ZN3ana8selftestL11test_allocaEv>: 1b0168f: 48 81 ec 80 4b 00 00
sub $0x4b80,%rsp
19320 <_ZN3ana8selftestL15test_involves_pEv>: 1af33e8: 48 81 ec 78 4b 00 00
sub $0x4b78,%rsp
19320 <_ZN3ana8selftestL11test_mallocEv>: 1afae06: 48 81 ec 78 4b 00 00
sub $0x4b78,%rsp
19312 <_ZN3ana8selftestL27test_unaryop_svalue_foldingEv>: 1af3006: 48 81
ec 70 4b 00 00 sub $0x4b70,%rsp
19312 <_ZN3ana8selftestL27test_initial_svalue_foldingEv>: 1af28c6: 48 81
ec 70 4b 00 00 sub $0x4b70,%rsp
19312 <_ZN3ana8selftestL21test_unique_constantsEv>: 1af3716: 48 81 ec 70 4b
00 00 sub $0x4b70,%rsp
19304 <_ZN3ana8selftestL9test_dumpEv>: 1b020a0: 48 81 ec 68 4b 00 00
sub $0x4b68,%rsp
19304 <_ZN3ana8selftestL9test_bitsEv>: 28eb80c: 48 81 ec 68 4b 00 00
sub $0x4b68,%rsp
19304 <_ZN3ana8selftestL35test_POINTER_PLUS_EXPR_then_MEM_REFEv>: 1af8382:
48 81 ec 68 4b 00 00 sub $0x4b68,%rsp
19304 <_ZN3ana8selftestL23test_malloc_constraintsEv>: 1afaaa8: 48 81 ec 68 4b
00 00 sub $0x4b68,%rsp
19304 <_ZN3ana8selftestL20test_constraint_implEv>: 28eae5f: 48 81 ec 68 4b
00 00 sub $0x4b68,%rsp
19304 <_ZN3ana8selftestL17test_transitivityEv>: 28e997b: 48 81 ec 68 4b
00 00 sub $0x4b68,%rsp
19304 <_ZN3ana8selftestL15test_assignmentEv>: 1afa198: 48 81 ec 68 4b 00 00
sub $0x4b68,%rsp
19296 <_ZN3ana8selftestL26test_constraint_conditionsEv>: 28f64cd: 48 81
ec 60 4b 00 00 sub $0x4b60,%rsp
19296 <_ZN3ana8selftestL12test_purgingEv>: 28ed806: 48 81 ec 60 4b 00 00
sub $0x4b60,%rsp
19296 <_ZN3ana8selftestL12test_mem_refEv>: 1af822d: 48 81 ec 60 4b 00 00
sub $0x4b60,%rsp
19280 <_ZN3ana8selftestL23test_canonicalization_4Ev>: 1af2624: 48 81 ec 50 4b
00 00 sub $0x4b50,%rsp
19264 <_ZN3ana8selftestL12test_array_1Ev>: 1af6e38: 48 81 ec 40 4b 00 00
sub $0x4b40,%rsp
19256 <_ZN3ana8selftestL20test_program_state_1Ev>: 1ae4ccb: 48 81 ec 38 4b
00 00 sub $0x4b38,%rsp
19232 <_ZN3ana8selftestL22test_bit_range_regionsEv>: 1aec219: 48 81 ec 20 4b
00 00 sub $0x4b20,%rsp
19216 <_ZN3ana8selftestL20test_program_state_2Ev>: 1ae0529: 48 81 ec 10 4b
00 00 sub $0x4b10,%rsp
19184 <_ZN3ana8selftestL25test_widening_constraintsEv>: 1aed7ea: 48 81
ec f0 4a 00 00 sub $0x4af0,%rsp
19160 <_ZN3ana8selftestL27test_program_point_equalityEv>: 1add8e0: 48 81
ec d8 4a 00 00 sub $0x4ad8,%rsp
19160 <_ZN3ana8selftestL20test_unique_unknownsEv>: 1aeb9c4: 48 81 ec d8 4a
00 00 sub $0x4ad8,%rsp
19152 <_ZN3ana8selftestL31test_bits_within_svalue_foldingEv>: 1aec408: 48 81
ec d0 4a 00 00 sub $0x4ad0,%rsp
19152 <_ZN3ana8selftestL20test_descendent_of_pEv>: 1aebb03: 48 81 ec d0 4a
00 00 sub $0x4ad0,%rsp
16616 <_ZL22estimate_local_effectsP11cgraph_node>: 27c5aaa: 48 81 ec e8 40
00 00 sub $0x40e8,%rsp
16328 <_Z35ipa_merge_fn_summary_after_inliningP11cgraph_edge>: 146ae10:
48 81 ec c8 3f 00 00 sub $0x3fc8,%rsp
16296 <_ZL27decide_whether_version_nodeP11cgraph_node>: 27cde7d: 48 81
ec a8 3f 00 00 sub $0x3fa8,%rsp
16280 <_ZN16ipa_fn_summary_t9duplicateEP11cgraph_nodeS1_P14ipa_fn_summaryS3_>:
146eac6: 48 81 ec 98 3f 00 00 sub $0x3f98,%rsp
16104 <_Z21do_estimate_edge_timeP11cgraph_edgeP5sreal>: 147d7b7: 48 81
ec e8 3e 00 00 sub $0x3ee8,%rsp
16072 <_Z22do_estimate_edge_hintsP11cgraph_edge>: 147e625: 48 81 ec c8 3e
00 00 sub $0x3ec8,%rsp
16072 <_Z21do_estimate_edge_sizeP11cgraph_edge.part.0>: 147cc65: 48 81
ec c8 3e 00 00 sub $0x3ec8,%rsp
12152 <_Z11inline_callP11cgraph_edgebP3vecIS0_7va_heap6vl_ptrEPibPb>: 1480600:
48 81 ec 78 2f 00 00 sub $0x2f78,%rsp
12088 <_Z29ix86_valid_target_attribute_pP9tree_nodeS0_S0_i>: 1b6919d: 48 81
ec 38 2f 00 00 sub $0x2f38,%rsp
8568 <_ZL33gimple_fold_builtin_clear_paddingP20gimple_stmt_iterator>: 13aee2d:
48 81 ec 78 21 00 00 sub $0x2178,%rsp
8544 <_ZL19clear_padding_unionP20clear_padding_structP9tree_nodelb>: 13aed58:
48 81 ec 60 21 00 00 sub $0x2160,%rsp
8536 <_Z26clear_type_padding_in_maskP9tree_nodePh>: 13af2cc: 48 81 ec 58 21
00 00 sub $0x2158,%rsp
6088 <_Z32ix86_valid_target_attribute_treeP9tree_nodeS0_P11gcc_optionsS2_b>:
1b68eb1: 48 81 ec c8 17 00 00 sub $0x17c8,%rsp
5912 <_ZL28determine_group_iv_cost_condP11ivopts_dataP8iv_groupP7iv_cand>:
188613a: 48 81 ec 18 17 00 00 sub $0x1718,%rsp
5448 <_ZN8selftestL16range_tests_miscEv>: 1a28014: 48 81 ec 48 15 00 00
sub $0x1548,%rsp
4936 <_ZL18cselib_record_setsP8rtx_insn>: 124b6dd: 48 81 ec 48 13 00 00
sub $0x1348,%rsp
4576 <_ZN8selftestL19range_tests_irange3Ev>: 1a25261: 48 81 ec e0 11 00 00
sub $0x11e0,%rsp
4360 <md5_stream>: 29e8d86: 48 81 ec 08 11 00 00 sub $0x1108,%rsp
4168 <_Z14gt_pch_restoreP8_IO_FILE>: 1398d13: 48 81 ec 48 10 00 00 sub
$0x1048,%rsp
4120 <_ZN8selftest9read_fileERKNS_8locationEPKc>: 2951eba: 48 81 ec 18 10
00 00 sub $0x1018,%rsp
4120 <_ZL23verify_speculative_callP11cgraph_nodeP6gimplejP11cgraph_edge>:
122add2: 48 81 ec 18 10 00 00 sub $0x1018,%rsp
4096 <_ZNK9vec_usage4dumpEP12mem_locationR9mem_usage>: 294f90e: 48 81
ec 00 10 00 00 sub $0x1000,%rsp
4096 <lrealpath>: 29ef6f8: 48 81 ec 00 10 00 00 sub $0x1000,%rsp
That is just insane. selftests I assume aren't called recursively, but 410k
stack in one function?
Compare that to gcc 12 (April 18th build):
objdump -dr cc1plus | grep
'>:\|sub.*0x.*[0-9a-f][0-9a-f][0-9a-f][0-9a-f],.*rsp' | awk
'/>:/{I=$2}/sub.*rsp/{J=gensub(/.*(0x[0-9a-f]+),%rsp/,"\\1","1",$0);K=strtonum(J);printf
"%d %s %s\n", K, I, $0}' | grep -v 0xffffffffffff | sort -nr
20536
<_ZN12gori_compute15condexpr_adjustER6irangeS1_P6gimpleP9tree_nodeS5_S5_R10fur_source>:
2622776: 48 81 ec 38 50 00 00 sub $0x5038,%rsp
20504 <_ZNK15operator_rshift9op1_rangeER6irangeP9tree_nodeRKS0_S5_9tree_code>:
2735799: 48 81 ec 18 50 00 00 sub $0x5018,%rsp
16744 <_ZNK13operator_cast9op1_rangeER6irangeP9tree_nodeRKS0_S5_9tree_code>:
2728476: 48 81 ec 68 41 00 00 sub $0x4168,%rsp
16448 <_ZN8selftestL25range_tests_int_range_maxEv>: 1997a7d: 48 81 ec 40 40
00 00 sub $0x4040,%rsp
16440 <_ZN8selftestL26range_op_bitwise_and_testsEv>: 272a18a: 48 81 ec 38 40
00 00 sub $0x4038,%rsp
16440
<_ZN12gori_compute21compute_operand_rangeER6irangeP6gimpleRKS0_P9tree_nodeR10fur_source>:
262168a: 48 81 ec 38 40 00 00 sub $0x4038,%rsp
16416 <_ZN8selftestL21range_op_rshift_testsEv>: 2735b68: 48 81 ec 20 40
00 00 sub $0x4020,%rsp
12528 <_ZN8selftestL18range_tests_legacyEv>: 1997f55: 48 81 ec f0 30 00 00
sub $0x30f0,%rsp
12360 <_ZN21gimple_outgoing_range18calc_switch_rangesEP7gswitch>: 261940a:
48 81 ec 48 30 00 00 sub $0x3048,%rsp
12328 <_ZN12gori_compute15logical_combineER6irange9tree_codeRKS0_S4_S4_S4_S4_>:
2620078: 48 81 ec 28 30 00 00 sub $0x3028,%rsp
12312
<_ZN16fold_using_range18range_of_cond_exprER6irangeP7gassignR10fur_source>:
261b780: 48 81 ec 18 30 00 00 sub $0x3018,%rsp
12312 <_ZN12ranger_cache16fill_block_cacheEP9tree_nodeP15basic_block_defS3_>:
26182ca: 48 81 ec 18 30 00 00 sub $0x3018,%rsp
12312 <_ZN12ranger_cache15propagate_cacheEP9tree_node>: 2617960: 48 81
ec 18 30 00 00 sub $0x3018,%rsp
12296 <_ZN11range_query14get_tree_rangeER6irangeP9tree_nodeP6gimple>: 198eee6:
48 81 ec 08 30 00 00 sub $0x3008,%rsp
11768 <_Z11inline_callP11cgraph_edgebP3vecIS0_7va_heap6vl_ptrEPibPb>: 1420ff0:
48 81 ec f8 2d 00 00 sub $0x2df8,%rsp
11704 <_Z29ix86_valid_target_attribute_pP9tree_nodeS0_S0_i>: 1abd69d: 48 81
ec b8 2d 00 00 sub $0x2db8,%rsp
8744 <_ZL15simplify_rotateP20gimple_stmt_iterator>: 17d683e: 48 81 ec 28 22
00 00 sub $0x2228,%rsp
8568 <_ZL33gimple_fold_builtin_clear_paddingP20gimple_stmt_iterator>: 13525dd:
48 81 ec 78 21 00 00 sub $0x2178,%rsp
8544 <_ZL19clear_padding_unionP20clear_padding_structP9tree_nodelb>: 1352510:
48 81 ec 60 21 00 00 sub $0x2160,%rsp
8536 <_ZNK15operator_lshift9op1_rangeER6irangeP9tree_nodeRKS0_S5_9tree_code>:
272d8b9: 48 81 ec 58 21 00 00 sub $0x2158,%rsp
8536 <_Z26clear_type_padding_in_maskP9tree_nodePh>: 1352a4c: 48 81 ec 58 21
00 00 sub $0x2158,%rsp
8424 <_ZN16fold_using_range17range_of_range_opER6irangeP6gimpleR10fur_source>:
261cac3: 48 81 ec e8 20 00 00 sub $0x20e8,%rsp
8392 <_ZN8selftestL21range_op_lshift_testsEv>: 272ddef: 48 81 ec c8 20
00 00 sub $0x20c8,%rsp
8296
<_ZNK20operator_bitwise_and9op1_rangeER6irangeP9tree_nodeRKS0_S5_9tree_code.part.0>:
2728c86: 48 81 ec 68 20 00 00 sub $0x2068,%rsp
8264 <_ZN16fold_using_range12range_of_phiER6irangeP4gphiR10fur_source>:
261be26: 48 81 ec 48 20 00 00 sub $0x2048,%rsp
8264 <_Z10fold_rangeR6irangeP6gimpleS0_S0_>: 261f7ce: 48 81 ec 48 20 00 00
sub $0x2048,%rsp
8264 <_Z10fold_rangeR6irangeP6gimpleS0_>: 261f78b: 48 81 ec 48 20 00 00
sub $0x2048,%rsp
8264 <_Z10fold_rangeR6irangeP6gimplejPS_>: 261f810: 48 81 ec 48 20 00 00
sub $0x2048,%rsp
8248 <_ZN13gimple_ranger25prefill_stmt_dependenciesEP9tree_node>: 26125bd:
48 81 ec 38 20 00 00 sub $0x2038,%rsp
8232 <_ZN16path_range_query23compute_ranges_in_blockEP15basic_block_def>:
184174d: 48 81 ec 28 20 00 00 sub $0x2028,%rsp
8232
<_ZN12gori_compute22compute_operand2_rangeER6irangeP6gimpleRKS0_P9tree_nodeR10fur_source>:
26222a6: 48 81 ec 28 20 00 00 sub $0x2028,%rsp
8232
<_ZN12gori_compute22compute_operand1_rangeER6irangeP6gimpleRKS0_P9tree_nodeR10fur_source>:
2621ea6: 48 81 ec 28 20 00 00 sub $0x2028,%rsp
8232 <_Z21find_case_label_rangeP7gswitchPK6irange>: 195363a: 48 81 ec 28 20
00 00 sub $0x2028,%rsp
8224 <_ZN13gimple_ranger20export_global_rangesEv>: 2613048: 48 81 ec 20 20
00 00 sub $0x2020,%rsp
8216 <_ZN13gimple_ranger7dump_bbEP8_IO_FILEP15basic_block_def>: 2613a06:
48 81 ec 18 20 00 00 sub $0x2018,%rsp
8200
<_ZN16fold_using_range27range_of_builtin_ubsan_callER6irangeP5gcall9tree_codeR10fur_source>:
261b55d: 48 81 ec 08 20 00 00 sub $0x2008,%rsp
6360 <_ZL28determine_group_iv_cost_condP11ivopts_dataP8iv_groupP7iv_cand>:
18050ba: 48 81 ec d8 18 00 00 sub $0x18d8,%rsp
5896 <_Z32ix86_valid_target_attribute_treeP9tree_nodeS0_P11gcc_optionsS2_b>:
1abd3b1: 48 81 ec 08 17 00 00 sub $0x1708,%rsp
5272 <_ZN21simplify_using_ranges8simplifyEP20gimple_stmt_iterator>: 19e126a:
48 81 ec 98 14 00 00 sub $0x1498,%rsp
4952 <_ZL18cselib_record_setsP8rtx_insn>: 11e5d0d: 48 81 ec 58 13 00 00
sub $0x1358,%rsp
4616 <_ZN6irange6invertEv>: 1992bfd: 48 81 ec 08 12 00 00 sub
$0x1208,%rsp
4536 <_ZNK14range_operator10fold_rangeER6irangeP9tree_nodeRKS0_S5_9tree_code>:
27297ba: 48 81 ec b8 11 00 00 sub $0x11b8,%rsp
4536
<_ZNK12operator_div7wi_foldER6irangeP9tree_nodeRK16generic_wide_intI16wide_int_storageES8_S8_S8_>:
2730f7d: 48 81 ec b8 11 00 00 sub $0x11b8,%rsp
4520
<_ZNK14range_operator16wi_fold_in_partsER6irangeP9tree_nodeRK16generic_wide_intI16wide_int_storageES8_S8_S8_>:
27290fd: 48 81 ec a8 11 00 00 sub $0x11a8,%rsp
4472
<_ZNK12operator_abs9op1_rangeER6irangeP9tree_nodeRKS0_S5_9tree_code.part.0>:
2727c9d: 48 81 ec 78 11 00 00 sub $0x1178,%rsp
4456 <_ZNK20operator_bitwise_and24remove_impossible_rangesER6irangeRKS0_>:
272b673: 48 81 ec 68 11 00 00 sub $0x1168,%rsp
4360 <md5_stream>: 28b87e6: 48 81 ec 08 11 00 00 sub $0x1108,%rsp
4344
<_ZNK18operator_not_equal10fold_rangeER6irangeP9tree_nodeRKS0_S5_9tree_code.part.0>:
2726e52: 48 81 ec f8 10 00 00 sub $0x10f8,%rsp
4344
<_ZNK14operator_equal10fold_rangeER6irangeP9tree_nodeRKS0_S5_9tree_code.part.0>:
2726b22: 48 81 ec f8 10 00 00 sub $0x10f8,%rsp
4344 <_ZL16alloca_call_typeP6gimpleb>: 2650686: 48 81 ec f8 10 00 00
sub $0x10f8,%rsp
4344
<_Z17expr_not_equal_toP9tree_nodeRK16generic_wide_intI16wide_int_storageE>:
12fafec: 48 81 ec f8 10 00 00 sub $0x10f8,%rsp
4264 <_ZN6irange16irange_intersectERKS_>: 199625a: 48 81 ec a8 10 00 00
sub $0x10a8,%rsp
4264 <_ZN10fur_source23register_outgoing_edgesEP5gcondR6irangeP8edge_defS5_>:
261c4a6: 48 81 ec a8 10 00 00 sub $0x10a8,%rsp
4232 <_ZNK15operator_lshift10fold_rangeER6irangeP9tree_nodeRKS0_S5_9tree_code>:
2729cdd: 48 81 ec 88 10 00 00 sub $0x1088,%rsp
4216
<_ZN13back_threader20find_taken_edge_condERK3vecIP15basic_block_def7va_heap6vl_ptrEP5gcond>:
18c3b8f: 48 81 ec 78 10 00 00 sub $0x1078,%rsp
4216 <_ZN12ranger_cache13range_on_edgeER6irangeP8edge_defP9tree_node.part.0>:
2616a16: 48 81 ec 78 10 00 00 sub $0x1078,%rsp
4200 <_ZN13gimple_ranger13range_of_exprER6irangeP9tree_nodeP6gimple>: 26133b6:
48 81 ec 68 10 00 00 sub $0x1068,%rsp
4184 <_ZN13gimple_ranger13range_of_stmtER6irangeP6gimpleP9tree_node>: 2612ced:
48 81 ec 58 10 00 00 sub $0x1058,%rsp
4184 <_ZN12_GLOBAL__N_115loop_versioning21prune_loop_conditionsEP4loop>:
2603a4a: 48 81 ec 58 10 00 00 sub $0x1058,%rsp
4176 <_ZN8selftest14test_expr_evalC1Ev>: 2624e77: 48 81 ec 50 10 00 00
sub $0x1050,%rsp
4168 <_ZN3ana8selftestL17test_sm_state_mapEv>: 1a4d99f: 48 81 ec 48 10
00 00 sub $0x1048,%rsp
4168 <_ZN16path_range_query22compute_ranges_in_phisEP15basic_block_def>:
1841614: 48 81 ec 48 10 00 00 sub $0x1048,%rsp
4168 <_Z14gt_pch_restoreP8_IO_FILE>: 133c2b3: 48 81 ec 48 10 00 00 sub
$0x1048,%rsp
4152 <_ZNK15operator_rshift10fold_rangeER6irangeP9tree_nodeRKS0_S5_9tree_code>:
2729fad: 48 81 ec 38 10 00 00 sub $0x1038,%rsp
4152 <_ZN16path_range_query24adjust_for_non_null_usesEP15basic_block_def>:
1840b6a: 48 81 ec 38 10 00 00 sub $0x1038,%rsp
4152
<_ZN12gori_compute21outgoing_edge_range_pER6irangeP8edge_defP9tree_nodeR11range_query>:
2623c90: 48 81 ec 38 10 00 00 sub $0x1038,%rsp
4136
<_ZN12ranger_cache14range_from_domER6irangeP9tree_nodeP15basic_block_def.part.0>:
2615dad: 48 81 ec 28 10 00 00 sub $0x1028,%rsp
4136 <_ZN11range_query15get_value_rangeEPK9tree_nodeP6gimple>: 198f5ae:
48 81 ec 28 10 00 00 sub $0x1028,%rsp
4136 <_Z10range_castR6irangeP9tree_node>: 2723b7f: 48 81 ec 28 10 00 00
sub $0x1028,%rsp
4120 <_ZNK13operator_cast10fold_rangeER6irangeP9tree_nodeRKS0_S5_9tree_code>:
273423d: 48 81 ec 18 10 00 00 sub $0x1018,%rsp
4120 <_ZN8selftest9read_fileERKNS_8locationEPKc>: 282e24a: 48 81 ec 18 10
00 00 sub $0x1018,%rsp
4120 <_ZN21simplify_using_ranges9fold_condEP5gcond>: 19dca01: 48 81 ec 18 10
00 00 sub $0x1018,%rsp
4120
<_ZN20hybrid_jt_simplifier8simplifyEP6gimpleS1_P15basic_block_defP8jt_state>:
18c792b: 48 81 ec 18 10 00 00 sub $0x1018,%rsp
4120 <_ZN17block_range_cache4dumpEP8_IO_FILEP15basic_block_defb>: 261585a:
48 81 ec 18 10 00 00 sub $0x1018,%rsp
4120 <_ZN16path_range_query19range_on_path_entryER6irangeP9tree_node>:
183fcd6: 48 81 ec 18 10 00 00 sub $0x1018,%rsp
4120 <_ZN16path_range_query16ssa_range_in_phiER6irangeP4gphi>: 1840e2a:
48 81 ec 18 10 00 00 sub $0x1018,%rsp
4120
<_ZN13gimple_ranger14range_on_entryER6irangeP15basic_block_defP9tree_node>:
261213a: 48 81 ec 18 10 00 00 sub $0x1018,%rsp
4120 <_ZN13gimple_ranger13range_on_edgeER6irangeP8edge_defP9tree_node>:
26136c0: 48 81 ec 18 10 00 00 sub $0x1018,%rsp
4120
<_ZN12gori_compute35compute_operand1_and_operand2_rangeER6irangeP6gimpleRKS0_P9tree_nodeR10fur_source>:
26226cc: 48 81 ec 18 10 00 00 sub $0x1018,%rsp
4120 <_ZN11range_query13value_of_exprEP9tree_nodeP6gimple>: 198e565: 48 81
ec 18 10 00 00 sub $0x1018,%rsp
4120 <_ZL23verify_speculative_callP11cgraph_nodeP6gimplejP11cgraph_edge>:
11c5d23: 48 81 ec 18 10 00 00 sub $0x1018,%rsp
4112 <_ZN11range_query13value_on_edgeEP8edge_defP9tree_node>: 198e727: 48 81
ec 10 10 00 00 sub $0x1010,%rsp
4112 <_ZN11range_query13value_of_stmtEP6gimpleP9tree_node>: 198e63d: 48 81
ec 10 10 00 00 sub $0x1010,%rsp
4104 <_ZN16ssa_global_cache4dumpEP8_IO_FILE>: 261637a: 48 81 ec 08 10 00 00
sub $0x1008,%rsp
4104 <_ZN12ranger_cache17update_to_nonnullEP15basic_block_defP9tree_node>:
26170c9: 48 81 ec 08 10 00 00 sub $0x1008,%rsp
4104 <_ZN11range_query14query_relationEP8edge_defP9tree_nodeS3_b>: 198f45d:
48 81 ec 08 10 00 00 sub $0x1008,%rsp
4104 <_ZN11range_query14query_relationEP6gimpleP9tree_nodeS3_b>: 198f399:
48 81 ec 08 10 00 00 sub $0x1008,%rsp
4096 <_ZNK9vec_usage4dumpEP12mem_locationR9mem_usage>: 282c08e: 48 81
ec 00 10 00 00 sub $0x1000,%rsp
4096 <_ZN8fur_listC1ER6irangeS1_>: 261aa03: 48 81 ec 00 10 00 00 sub
$0x1000,%rsp
4096 <_ZN8fur_listC1ER6irange>: 261a936: 48 81 ec 00 10 00 00 sub
$0x1000,%rsp
4096 <_ZN16ssa_block_ranges4dumpEP8_IO_FILE>: 2614c84: 48 81 ec 00 10 00 00
sub $0x1000,%rsp
4096
<_ZN13back_threader22find_taken_edge_switchERK3vecIP15basic_block_def7va_heap6vl_ptrEP7gswitch>:
18c3a6a: 48 81 ec 00 10 00 00 sub $0x1000,%rsp
4096 <_Z17debug_seed_rangerR13gimple_ranger>: 2624aa7: 48 81 ec 00 10 00 00
sub $0x1000,%rsp
4096 <lrealpath>: 28bf1f8: 48 81 ec 00 10 00 00 sub $0x1000,%rsp
Even there ranger occupies the highest spots due to int_range_max.
Compare to GCC 10:
objdump -dr cc1plus | grep
'>:\|sub.*0x.*[0-9a-f][0-9a-f][0-9a-f][0-9a-f],.*rsp' | awk
'/>:/{I=$2}/sub.*rsp/{J=gensub(/.*(0x[0-9a-f]+),%rsp/,"\\1","1",$0);K=strtonum(J);printf
"%d %s %s\n", K, I, $0}' | grep -v 0xffffffffffff | sort -nr
5384 <_Z32ix86_valid_target_attribute_treeP9tree_nodeS0_P11gcc_optionsS2_b>:
1634edd: 48 81 ec 08 15 00 00 sub $0x1508,%rsp
5384 <_Z11inline_callP11cgraph_edgebP3vecIS0_7va_heap6vl_ptrEPibPb>: 1054730:
48 81 ec 08 15 00 00 sub $0x1508,%rsp
5336 <_Z29ix86_valid_target_attribute_pP9tree_nodeS0_S0_i>: 163519d: 48 81
ec d8 14 00 00 sub $0x14d8,%rsp
4952 <_ZL18cselib_record_setsP8rtx_insn>: e1a65d: 48 81 ec 58 13 00 00
sub $0x1358,%rsp
4360 <md5_stream>: 1e4a72f: 48 81 ec 08 11 00 00 sub $0x1108,%rsp
4120 <_ZN8selftest9read_fileERKNS_8locationEPKc>: 1dd05da: 48 81 ec 18 10
00 00 sub $0x1018,%rsp
4120 <_ZL23verify_speculative_callP11cgraph_nodeP6gimplejP11cgraph_edge>:
df91d2: 48 81 ec 18 10 00 00 sub $0x1018,%rsp
4096 <_ZNK9vec_usage4dumpEP12mem_locationR9mem_usage>: 1dce49e: 48 81
ec 00 10 00 00 sub $0x1000,%rsp
4096 <lrealpath>: 1e50b78: 48 81 ec 00 10 00 00 sub $0x1000,%rsp
Usual Linux stack is around 8MB, but e.g. on Windows I think just 2MB.