------- Comment #9 from jakub at gcc dot gnu dot org 2010-02-24 18:25 ------- It is vt_emit_notes that eats all the memory, not vt_find_locations, and the memory doesn't go into the hash tables, but for rtx allocation. I've printed ggc statistics on vt_emit_notes entry and after I left it eat an extra GB or so. The differences are primarily in 24, 32 and 64 byte GGC allocations, jumping from 16 to 250MB, 8 to 212 MB and 5 to 417 MB respectively for 24/32/64 byte orders, and get_max_uid () jumped from ~ 92000 to 6888627, which means all the memory is eaten by millions of generated var_location notes. Haven't investigated yet why they are created in such a huge volume that often.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43058