[Bug lto/45375] [meta-bug] Issues with building Mozilla with LTO

hubicka at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sat May 12 20:46:00 GMT 2012


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



More information about the Gcc-bugs mailing list