http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45375
--- Comment #134 from Jan Hubicka <hubicka at gcc dot gnu.org> 2012-05-12 20:22:27 UTC --- I tracked down the LTO/WHOPR code size difference. It is EH handling. EH frame is empty for LTO build and quite large for WHOPR. Probably -fno-exceptions getting lots on way to ltrans? With memory stats there don't seem to be major suprises: tree-phinodes.c:129 (allocate_phi_node) 110246192: 0.8% 0: 0.0% 3405296: 0.1% 409376: 0.0% 372408 gimple.c:600 (gimple_build_nop) 119935632: 0.8% 0: 0.0% 252144: 0.0% 0: 0.0% 2503912 gimplify.c:437 (create_tmp_var_raw) 119589760: 0.8% 0: 0.0% 1119200: 0.0% 0: 0.0% 754431 tree-vrp.c:3993 (build_assert_expr_for) 124663296: 0.9% 0: 0.0% 0: 0.0% 0: 0.0% 1298576 emit-rtl.c:3731 (make_jump_insn_raw) 118395600: 0.8% 0: 0.0% 11138960: 0.3% 0: 0.0% 1619182 tree-streamer-in.c:484 (streamer_alloc_tree) 90340024: 0.6% 0: 0.0% 51300472: 1.5% 4376: 0.0% 1420249 simplify-rtx.c:183 (simplify_gen_binary) 153607224: 1.1% 0: 0.0% 619968: 0.0% 0: 0.0% 6426133 fold-const.c:1870 (fold_convert_loc) 154700600: 1.1% 0: 0.0% 2160: 0.0% 0: 0.0% 3867569 ggc-common.c:253 (ggc_cleared_alloc_ptr_array_tw 80243272: 0.6% 1267966456:15.3% 76357960: 2.2% 11155352: 1.2% 1833025 lto/lto.c:281 (lto_read_in_decl_state) 835696: 0.0% 0: 0.0% 163487336: 4.6% 31116920: 3.4% 4176305 cfg.c:216 (connect_src) 174302184: 1.2% 623048: 0.0% 7861944: 0.2% 133632: 0.0% 4542618 cfg.c:226 (connect_dest) 177198328: 1.2% 5444688: 0.1% 8603432: 0.2% 347648: 0.0% 4628047 tree.c:9115 (make_vector_type) 206615472: 1.4% 0: 0.0% 6720: 0.0% 0: 0.0% 1229894 emit-rtl.c:639 (gen_rtx_MEM) 202133352: 1.4% 0: 0.0% 6629016: 0.2% 0: 0.0% 8698432 dwarf2cfi.c:386 (copy_cfi_row) 212886640: 1.5% 0: 0.0% 0: 0.0% 0: 0.0% 1400570 tree-inline.c:4851 (copy_decl_no_change) 211988960: 1.5% 0: 0.0% 7283480: 0.2% 0: 0.0% 1387268 tree-ssanames.c:78 (init_ssanames) 224107008: 1.6% 252869632: 3.1% 1536: 0.0% 153516032:16.6% 309555 lists.c:144 (alloc_EXPR_LIST) 236354400: 1.7% 0: 0.0% 5798160: 0.2% 0: 0.0% 10089690 gimple.c:2237 (gimple_copy) 268995784: 1.9% 0: 0.0% 4002872: 0.1% 644208: 0.1% 2530798 gimple-streamer-in.c:95 (input_gimple_stmt) 272340080: 1.9% 0: 0.0% 4356168: 0.1% 917040: 0.1% 2550173 tree-inline.c:4331 (copy_tree_r) 286698704: 2.0% 0: 0.0% 2053920: 0.1% 0: 0.0% 5999420 rtl.c:287 (copy_rtx) 291942896: 2.0% 0: 0.0% 318864: 0.0% 0: 0.0% 12315136 emit-rtl.c:393 (gen_raw_REG) 271761568: 1.9% 0: 0.0% 25188032: 0.7% 0: 0.0% 9279675 cselib.c:1896 (cselib_subst_to_values) 299291264: 2.1% 0: 0.0% 0: 0.0% 0: 0.0% 12658684 emit-rtl.c:5427 (init_emit) 354914672: 2.5% 19547728: 0.2% 0: 0.0% 102897600:11.1% 132600 cgraph.c:359 (cgraph_allocate_node) 0: 0.0% 0: 0.0% 401297520:11.4% 0: 0.0% 1286210 emit-rtl.c:3679 (make_insn_raw) 435416472: 3.0% 0: 0.0% 1754496: 0.0% 0: 0.0% 6071819 fold-const.c:7624 (build_fold_addr_expr_with_typ 463283920: 3.2% 0: 0.0% 72880: 0.0% 0: 0.0% 11583920 tree-ssanames.c:141 (make_ssa_name_fn) 459164960: 3.2% 0: 0.0% 5805920: 0.2% 0: 0.0% 5812136 cfg.c:142 (alloc_block) 469702464: 3.3% 0: 0.0% 20328672: 0.6% 0: 0.0% 4375278 toplev.c:964 (realloc_for_line_map) 0: 0.0% 357908640: 4.3% 1073741848:30.4% 184: 0.0% 9 tree.c:1228 (build_int_cst_wide) 1188738504: 8.3% 0: 0.0% 31478720: 0.9% 401175208:43.3% 295230 tree-streamer-in.c:495 (streamer_alloc_tree) 2413661896:16.9% 0: 0.0% 1163973288:32.9% 41183648: 4.4% 28110064 Total 14300758513 8262871404 3534486067 927547008 308001940 source location Garbage Freed Leak Overhead Times >From explicitely freed GGC mem there are few interesting cases: alias.c:2807 (init_alias_analysis) 0: 0.0% 597580152: 7.2% 0: 0.0% 116629208:12.6% 1033104 reload1.c:663 (grow_reg_equivs) 0: 0.0% 2244546880:27.2% 0: 0.0% 1859904: 0.2% 204226 tree-ssa-operands.c:331 (ssa_operand_alloc) 0: 0.0% 1326537728:16.1% 1024: 0.0% 0: 0.0% 299739 ggc-common.c:253 (ggc_cleared_alloc_ptr_array_tw 80243272: 0.6% 1267966456:15.3% 76357960: 2.2% 11155352: 1.2% 1833025 Heap vectors: source location Leak Peak Times ------------------------------------------------------- ipa-reference.c:171 (set_reference_vars_info) 0: 0.0% 11240664 13: 0.0% ipa-pure-const.c:236 (set_function_state) 0: 0.0% 13472632 842964: 0.8% ipa-inline-analysis.c:3010 (read_inline_edge_sum 0: 0.0% 17281356 870489: 0.8% ipa-prop.c:136 (ipa_initialize_node_params) 0: 0.0% 29039016 666148: 0.6% ipa-inline-analysis.c:804 (inline_summary_alloc) 0: 0.0% 30037064 1: 0.0% ipa-prop.h:308 (ipa_check_create_node_params) 0: 0.0% 51448408 1: 0.0% ipa-prop.h:313 (ipa_check_create_node_params) 0: 0.0% 51448448 1: 0.0% .... tree-vect-slp.c:1553 (vect_analyze_slp_instance) 49136: 0.1% 80056 3273: 0.0% tree-vect-slp.c:1521 (vect_analyze_slp_instance) 49256: 0.1% 80136 3273: 0.0% tree-into-ssa.c:1049 (mark_phi_for_rewrite) 60776: 0.1% 71352 11: 0.0% cfgloop.c:1151 (get_loop_exit_edges) 310312: 0.6% 316976 310269: 0.3% tree-into-ssa.c:291 (get_ssa_name_ann) 352928: 0.6% 612512 13: 0.0% passes.c:2214 (execute_one_pass) 934496: 1.7% 41942992 557113: 0.5% tree-ssa-structalias.c:3861 (handle_lhs_call) 1491552: 2.6% 2359224 20716: 0.0% ipa-inline-analysis.c:2645 (inline_merge_summary 2432148: 4.3% 2442960 157716: 0.1% tree-ssa-loop-im.c:1556 (record_mem_ref_loc) 6634880:11.8% 10465232 595488: 0.6% tree-ssa-loop-im.c:1545 (record_mem_ref_loc) 7587408:13.5% 12637232 579373: 0.5% ipa-reference.c:186 (set_reference_optimization_ 10289688:18.3% 11240664 13: 0.0% lto-cgraph.c:118 (lto_cgraph_encoder_encode) 12756976:22.7% 23348152 25665: 0.0% ipa-ref.c:55 (ipa_record_reference) 13164872:23.4% 41932432 1000598: 0.9% Total 56309568 107517917 I will try to look for ipa-ref related leaks... These should not outgrow other IPA structures, but they are not _that_ off. Bitmap Overall Allocated Peak Leak searched search itr --------------------------------------------------------------------------------- df-problems.c:550 (df_rd_transfer_functio 1401668 550959000 285854280 285854280 1202920 2686239 df-problems.c:4368 (df_md_alloc) 2420865 119625200 103991640 103991640 7882560 876516 df-problems.c:4370 (df_md_alloc) 2420865 47313120 44242920 44242920 0 0 df-problems.c:4366 (df_md_alloc) 2420865 11779160 11744960 11744960 0 0 df-problems.c:4367 (df_md_alloc) 2420865 26404920 26403880 26403880 271729 4 tree-ssa-structalias.c:1249 (build_pred_g 2603931 225511920 225511920 225511920 187843 110177 tree-ssa-tail-merge.c:1316 (deps_ok_for_r 593970 30665680 16874760 16874760 632 40 tree-ssa-structalias.c:5890 (find_what_va 2328862 113793160 102564760 102564760 710275 853412 df-problems.c:1389 (df_live_alloc) 1806260 76241920 12459320 12459320 1826 0 df-problems.c:1390 (df_live_alloc) 1806260 281713360 38869560 38868680 2579692 1190624 df-problems.c:1392 (df_live_alloc) 1806260 991814240 40633200 40629040 221318 201166 dse.c:2452 (copy_fixed_regs) 1132737 90618960 90618960 90618960 0 0 df-problems.c:1391 (df_live_alloc) 1806260 1491519600 40632440 40628480 536753 522104 tree-ssa-loop-im.c:1512 (mem_ref_alloc) 567787 33164080 12373120 12372440 0 0 reload1.c:495 (new_insn_chain) 5276019 402655640 401709040 401709040 24691 0 tree-ssa-pre.c:619 (bitmap_set_new) 32638618 990092880 562280520 562280440 20419995 15879008 tree-ssa-pre.c:620 (bitmap_set_new) 32638618 990371960 574119360 574119280 16846876 10621314 df-problems.c:261 (df_rd_alloc) 2741972 138884160 129954960 129954960 2949744 610463 reload1.c:496 (new_insn_chain) 5276019 151328120 151029880 151029880 388762 10455 tree-ssa-structalias.c:2559 (solve_graph) 3169222 256948000 256292160 256292160 0 0 tree-ssanames.c:90 (init_ssanames) 309555 25951800 12382440 12382200 18777080 7410198 tree-ssa-structalias.c:2113 (label_visit) 5147637 425173040 425173040 425173040 105478 61601 tree-ssa-structalias.c:1108 (add_implicit 4593393 382459560 382459560 382459560 726652 628375 tree-ssa-structalias.c:1123 (add_pred_gra 3379786 273371640 273371640 273371640 121581 98415 tree-ssa-structalias.c:1144 (add_graph_ed 2917231 246071240 174844960 174844960 681820 290190 df-problems.c:262 (df_rd_alloc) 2741972 530288680 506786360 506786360 0 0 df-problems.c:263 (df_rd_alloc) 2741972 304266640 233174000 233172280 108 108 tree-ssa-structalias.c:361 (new_var_info) 7385339 467574280 360290520 360290520 44320 85263 Alloc-pool Kind Elt size Pools Allocated (elts) Peak (elts) Leak (elts) -------------------------------------------------------------------------------------------------------------- insn_info_pool 56 204084 538278104( 9612109) 830704( 14834) 0( 0) bb_info_pool 56 204084 133331912( 2380927) 133616( 2386) 0( 0) rtx_group_info_pool 112 204084 56406672( 503631) 138768( 1239) 0( 0) Bitmap sets 80 204085 2611089440( 32638618) 8824880( 110311) 0( 0) deferred_change_pool 24 204084 52128( 2172) 288( 12) 0( 0) pre_expr nodes 16 204085 138421792( 8651362) 981200( 61325) 0( 0) cse_store_info_pool 104 1972759 98188584( 944121) 485472( 4668) 0( 0) value 16 843341 462086672( 28880417) 245280( 15330) 0( 0) VN phis 32 408170 88913824( 2778557) 83712( 2616) 0( 0) Constraint pool 32 204085 353203136( 11037598) 594528( 18579) 0( 0) struct case_node pool 48 4743 1096848( 22851) 13680( 285) 0( 0) Variable info pool 72 204085 531744408( 7385339) 601560( 8355) 0( 0) IPA-CP value sources 32 1 4760736( 148773) 4260384( 133137) 0( 0) et_occ pool 48 2116800 3595771776( 74911912) 688128( 14336) 0( 0) VN references 56 408170 323302616( 5773261) 3466680( 61905) 0( 0) et_node pool 64 2116800 2533145216( 39580394) 458880( 7170) 0( 0) dep_node 80 102042 734534240( 9181678) 4233840( 52923) 0( 0) df_chain_block pool 16 251647 436908640( 27306790) 2391808( 149488) 0( 0) IPA-CP values 80 1 5005280( 62566) 5005280( 62566) 0( 0) df_scan ref base 56 204084 6325340840( 112952515) 2948400( 52650) 0( 0) SRA accesses 120 102043 13514520( 112621) 92760( 773) 0( 0) df_scan ref artificial 64 204084 901356672( 14083698) 899200( 14050) 0( 0) df_scan ref regular 64 204084 2184845888( 34138217) 2431168( 37987) 0( 0) allocnos 160 102042 281957120( 1762232) 1250560( 7816) 0( 0) elt_list 16 843341 619139328( 38696208) 240832( 15052) 0( 0) elt_loc_list 24 843341 1153775424( 48073976) 521760( 21740) 0( 0) df_scan insn 48 204084 926799792( 19308329) 1070400( 22300) 0( 0) live ranges 40 102042 106931600( 2673290) 508880( 12722) 0( 0) df_scan reg 16 204084 934613472( 58413342) 783216( 48951) 0( 0) SRA links 24 102043 402672( 16778) 4848( 202) 0( 0) rtx_store_info_pool 104 204084 19621264( 188666) 213096( 2049) 0( 0) strinfo_struct pool 56 102042 324184( 5789) 1344( 24) 0( 0) edge predicates 40 1 3540840( 88521) 2030280( 50757) 0( 0) original_copy 8 509567 3890016( 486252) 13264( 1658) 0( 0) cost vectors 192 2551050 192202512( 1001054) 419392( 2184) 0( 0) operand entry pool 24 204084 18481680( 770070) 89424( 3726) 0( 0) objects 72 102042 126880704( 1762232) 562752( 7816) 0( 0) deps_list 16 102042 385122400( 24070150) 847120( 52945) 0( 0) cselib_val_list 40 843341 1155216680( 28880417) 613200( 15330) 0( 0) copies 80 102042 27013920( 337674) 324480( 4056) 0( 0) read_info_pool 32 204084 84871968( 2652249) 91104( 2847) 0( 0) GIMPLE statements Kind Stmts Bytes --------------------------------------- assignments 6803719 658739112 phi nodes 372408 112832736 conditionals 1121446 107658816 everything else 3704547 292211544 Kind Nodes Bytes --------------------------------------- decls 15883790 -1764091088 types 6197660 1041206880 blocks 1809846 144787680 stmts 52888 3384832 refs 11131010 561131416 exprs 31414309 1351944944 constants 2761315 97231060 identifiers 1227582 49103280 vecs 295323 417871880 binfos 1420249 141631744 ssa names 5812136 464970880 constructors 340124 8162976 random kinds 3280618 131225128 lang_decl kinds 0 0 lang_type kinds 0 0 omp clauses 0 0 --------------------------------------- Total 81626850 -1646405684