This is the mail archive of the
mailing list for the GCC project.
Re: debugging info considered harmful to lto.
> Jan Hubicka wrote:
> >Thanks for explanation - the space optimization seems relatively
> >chalenging to implement, in particular because the variables in scope
> >might change in between the time abstract copy is output and the time
> >the block referencing to the block via abstract pointer is output.
> The block is a lexical thing, optimizations don't change that.
The blocks does change by inlining (they get copied and added to other
places). Also in general optimizations changing types of variables (we
are going to get some) so change the declaration lists in some copies of
blocks but not in others.
> >We have origin pointers in declarations and origin pointers in blocks.
> >I guess optimization willing to know all variables same from user POV
> >(for lets say setting watchpoint on something in inline function)
> >probably cares about origins of declarations rather than blocks.
> >At what time the blocks actually matters?
> So the debugger knows which declarations are in scope at a particular PC.
This is one obvious usage - for that I however don't need to care about
number of blocks (such as those not having instructions in them or not
declaring anything interesting). I would like to get those pruned out..
> >For example if I have block that contians just single block and declare
> >no new variables, can I simply remove it and replace it by the inner