------- Comment #10 from hubicka at ucw dot cz 2009-02-12 10:28 ------- Subject: Re: [4.4 Regression] inlining causes explosion in debug info
> sizeof (tree_block) is 52 bytes on 32-bit hosts. Of these, 8 are unused (ann > and type), 8 are frequently unused (block_fragment stuff -- always write-only > at debug level 0). Moving fragments into an annotation and reusing type for > something would already save 20% of the memory. I was looking into the bug last month but then got distracted by other more urgent things. I guess it is time to get back ;) Even if our blocks representation is not the most effecient around, I think main problem is that we keep too many blocks around that never get it to debug info or are never serving useful purpose. The testcase compiled at -g3 needs about 100MB of DWARF section and before inlining we unfortunately need to keep debug info at -g3 verbosity. I plan to look into what blocks gets ignored by the dwarf2out but also it would be great to figure out if we really need them in debug info at first place. (for example for every inlined function we create container block and then block containing the arguments. Current tree-ssa-live code to prune out blocks preserves both) Honza -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37709