http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45375



--- Comment #142 from Jan Hubicka <hubicka at gcc dot gnu.org> 2012-10-08 
22:19:55 UTC ---

After updating Mozilla this weekend, I definitely bloat up 8GB machine. The pak

in TOP is around 9-10GB.  I checked malloc usage and there are not many

surprises. It is about 300MB, mostly GGC overhead, pointer maps and such.



Most memory is actually the GGC, about 7GB. Here 5GB survives type and decl

merging and is distributed as follows:

cgraph.c:722 (cgraph_allocate_init_indirect_info    1671240: 0.0%          0:

0.0%    8202960: 0.2%          0: 0.0%     246855

tree.c:1226 (build_int_cst_wide)                  625825208:12.3%          0:

0.0%   10437744: 0.2%    4863752: 3.1%     325009

ipa-prop.h:471 (ipa_check_create_edge_args)               0: 0.0%          0:

0.0%   16777216: 0.3%          0: 0.0%          1

ipa-inline-analysis.c:3697 (inline_read_section)          0: 0.0%   28298904:

1.6%   21095504: 0.4%    1064480: 0.7%     423701

tree.c:1561 (build_string)                         16526800: 0.3%          0:

0.0%   21695715: 0.4%    3395427: 2.2%     864326

ipa-prop.c:3393 (ipa_read_node_info)                      0: 0.0%    4302088:

0.2%   25029448: 0.5%     119192: 0.1%     246788

stringpool.c:75 (alloc_node)                              0: 0.0%          0:

0.0%   27817760: 0.5%          0: 0.0%     695444

ipa-ref.c:51 (ipa_record_reference)                       0: 0.0% 

188442816:10.3%   28443272: 0.6%    2114424: 1.4%    1256259

stringpool.c:58 (stringpool_ggc_alloc)                    0: 0.0%          0:

0.0%   34673092: 0.7%    2619412: 1.7%     695444

lto/lto.c:2279 (create_subid_section_table)          275832: 0.0%          0:

0.0%   40363416: 0.8%    8051472: 5.2%       3978

tree-streamer-in.c:895 (lto_input_ts_constructor  171812232: 3.4% 

192568640:10.6%   42205992: 0.8%    1425072: 0.9%     947082

ipa-prop.c:3380 (ipa_read_node_info)                      0: 0.0%   35825488:

2.0%   58764528: 1.1%     659704: 0.4%     909232

tree-streamer-in.c:488 (streamer_alloc_tree)      129846168: 2.6%          0:

0.0%   75997752: 1.5%       7072: 0.0%    2063753

tree.c:1263 (build_int_cst_wide)                  237791264: 4.7%          0:

0.0%   90464320: 1.8%          0: 0.0%   10257987

ipa-inline-analysis.c:3709 (inline_read_section)          0: 0.0%  133938484:

7.4%  101874268: 2.0%    1606480: 1.0%    1099389

lto-section-in.c:361 (lto_new_in_decl_state)           3240: 0.0%          0:

0.0%  107452560: 2.1%          0: 0.0%     895465

cgraph.c:653 (cgraph_create_edge_1)                       0: 0.0%          0:

0.0%  135509816: 2.6%          0: 0.0%    1302979

ggc-common.c:253 (ggc_cleared_alloc_ptr_array_tw       2040: 0.0% 

866397160:47.6%  190623368: 3.7%     263888: 0.2%      11459

lto/lto.c:267 (lto_read_in_decl_state)                 3024: 0.0%          0:

0.0%  225743280: 4.4%   41057176:26.5%    6268255

ipa-inline-analysis.c:931 (inline_summary_alloc)          0: 0.0%          0:

0.0%  268435464: 5.2%          8: 0.0%          1

cgraph.c:362 (cgraph_allocate_node)                       0: 0.0%          0:

0.0%  515473640:10.1%          0: 0.0%    1741465

toplev.c:953 (realloc_for_line_map)                       0: 0.0% 

358955168:19.7% 1074790424:21.0%        184: 0.0%         19

tree-streamer-in.c:499 (streamer_alloc_tree)     3668091656:72.1%          0:

0.0% 1995384408:38.9%   87485792:56.5%   46580224

Total                                            5089831352       1821058652   

   5124870115        154815271         91384962

source location                                     Garbage            Freed   

         Leak         Overhead            Times



I.e. 20% are now linemaps, 38% trees read by the streamer, 10% cgraph nodes, 5%

inline summaries, 4% streamer table converting UIDs to decls (that can be

freed).



The trees are distributed as follows:

Kind                   Nodes      Bytes

---------------------------------------

decls                20489087 -1105370640

types                10321297 1733977896

blocks                102012    8160960

stmts                      0          0

refs                   44297    1806000

exprs                8205133  264995952

constants            11667038  376994197

identifiers           695444   27817760

vecs                  325009  626535448

binfos               2063753  205829776

ssa names                  0          0

constructors          369886    8877264

random kinds         7039351  281574472

lang_decl kinds            0          0

lang_type kinds            0          0

omp clauses                0          0

---------------------------------------

Total                61322307 -1863768211

---------------------------------------

Code                   Nodes



I think all the blocks read to WPA are bugs.  We may also do better on sharing

constants.

----------------------------

identifier_node       695444

tree_list            7039346

tree_vec              325009

block                 102012

offset_type             1762

enumeral_type         371554

boolean_type            7097

integer_type          830019

real_type              10054

pointer_type         3089539

reference_type        215629

array_type            204968

record_type          3818337

union_type             77106

void_type               1478

function_type         259759

method_type          1433688

integer_cst          10784917

real_cst               17553

string_cst            864326

function_decl        2736272

label_decl             82077

field_decl           3121989

var_decl              323843

const_decl           2817588

parm_decl            5244428

type_decl            4906573

result_decl          1225435

constructor           369886

pointer_plus_expr     302600

nop_expr             3307128

addr_expr            4592681

tree_binfo           2063753



Honza

Reply via email to