http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45375
--- Comment #170 from Jan Hubicka <hubicka at gcc dot gnu.org> 2013-01-10 15:04:10 UTC --- OK, here is updated memory use: cgraph.c:863 (cgraph_allocate_init_indirect_info 5905200: 0.1% 0: 0.0% 6020160: 0.1% 0: 0.0% 298134 tree.c:1237 (build_int_cst_wide) 15554272: 0.4% 0: 0.0% 782528: 0.0% 0: 0.0% 510525 tree.c:1559 (build_string) 10685931: 0.2% 0: 0.0% 16715642: 0.4% 2193469: 1.7% 563828 stringpool.c:75 (alloc_node) 0: 0.0% 0: 0.0% 30574880: 0.7% 0: 0.0% 764372 lto/lto.c:2286 (create_subid_section_table) 1522184: 0.0% 0: 0.0% 39117064: 0.8% 8051472: 6.4% 3978 stringpool.c:58 (stringpool_ggc_alloc) 0: 0.0% 0: 0.0% 41092405: 0.9% 2954893: 2.4% 764372 gimple.c:3167 (iterative_hash_canonical_type) 45040752: 1.0% 0: 0.0% 0: 0.0% 0: 0.0% 2815047 lto/lto.c:1222 (iterative_hash_gimple_type) 68276864: 1.6% 0: 0.0% 0: 0.0% 0: 0.0% 4267304 ggc-common.c:249 (ggc_cleared_alloc_ptr_array_tw 91784: 0.0% 487289424:48.8% 71432600: 1.5% 248976: 0.2% 10974 lto/lto.c:1266 (iterative_hash_gimple_type) 75288576: 1.8% 0: 0.0% 0: 0.0% 0: 0.0% 4705536 lto-section-in.c:362 (lto_new_in_decl_state) 694320: 0.0% 0: 0.0% 94861800: 2.0% 0: 0.0% 796301 tree.c:1263 (build_int_cst_wide) 76232736: 1.8% 0: 0.0% 19358880: 0.4% 0: 0.0% 2987238 cgraph.c:794 (cgraph_create_edge_1) 0: 0.0% 0: 0.0% 125510632: 2.7% 0: 0.0% 1206833 vec.h:565 ((null)) 66034564: 1.5% 98716: 0.0% 68500548: 1.5% 3484420: 2.8% 597783 vec.h:695 ((null)) 124654648: 2.9% 122044288:12.2% 63749232: 1.4% 2614800: 2.1% 1590429 tree-streamer-in.c:562 (streamer_alloc_tree) 125829312: 2.9% 0: 0.0% 74222904: 1.6% 7072: 0.0% 2005091 lto/lto.c:267 (lto_read_in_decl_state) 1478720: 0.0% 0: 0.0% 216390688: 4.7% 38247784:30.5% 5574107 vec.h:747 ((null)) 173791988: 4.0% 19565412: 2.0% 68225644: 1.5% 2680332: 2.1% 1396070 vec.h:707 ((null)) 133872480: 3.1% 0: 0.0% 285212728: 6.1% 800360: 0.6% 1059913 cgraph.c:500 (cgraph_allocate_node) 0: 0.0% 0: 0.0% 472831880:10.2% 0: 0.0% 1597405 tree.c:1223 (build_int_cst_wide) 607138944:14.1% 0: 0.0% 10427664: 0.2% 4719336: 3.8% 315034 toplev.c:959 (realloc_for_line_map) 0: 0.0% 358037664:35.8% 1073872920:23.1% 184: 0.0% 16 tree-streamer-in.c:573 (streamer_alloc_tree) 2762184192:64.2% 0: 0.0% 1861017624:40.0% 59027616:47.1% 34649937 Total 4302007795 999178184 4651003487 125411458 68828967 source location Garbage Freed Leak Overhead Times ------------------------------------------------------- Actually it is a bit of improvement over my past report. Some obvious things 1) we still soak in too many trees (40%) of memory. The per-tree stats are: decls 17310018 -1609736744 types 8983387 1509209016 exprs 2427302 80045744 constants 4079292 135393547 binfos 2005091 200038072 random kinds 5691481 227659664 and counts: tree_list 5691475 pointer_type 2337585 record_type 3702066 function_decl 1856282 field_decl 2812564 const_decl 2739702 parm_decl 3549707 type_decl 4780459 result_decl 1144482 tree_binfo 2005091 2) new linemaps are still a disaster 3) VEC rewrite did break stats. Honza