------- Comment #1 from rguenth at gcc dot gnu dot org 2008-05-22 12:28 -------
One slow "leaker" of memory for large TUs is the operands_bitmap_obstack from
the operand scanner. From it the stmt annotation loaded and stored symbols
bitmaps are allocated but never freed until after the last function has gone
out of SSA.
We should consider moving these to GC memory or to add support for using alloc
pools for bitmap allocations.
Memory partitioning uses loads of bitmaps for the parent tags:
tree-ssa-alias.c:1311 (update_reference_c 5424467 433957360 433957360
433957360 76199616
Likewise PTA still does that:
tree-ssa-structalias.c:4850 (find_what_p_ 62908 555059880 42045880
42032640 62415
Overall the variable annotations account for most of the GC memory used:
tree-ssanames.c:146 (make_ssa_name_fn) 33297312: 2.1% 0:
0.0% 0: 0.0% 0: 0.0% 346847
bitmap.c:229 (bitmap_element_allocate) 116709320: 7.4% 0:
0.0% 0: 0.0% 16672760:11.7% 2084095
ggc-common.c:179 (ggc_calloc) 409212224:25.8% 12684056:
5.0% 1974632: 2.2% 4572784: 3.2% 194426
tree-dfa.c:153 (create_var_ann) 482008296:30.4% 0:
0.0% 0: 0.0% 43818936:30.6% 5477367
Total 1586488294 255567175
90963544 143104669 18411405
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36291