This is the mail archive of the
mailing list for the GCC project.
Re: debugging info considered harmful to lto.
Jason Merrill wrote:
> 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.
>> 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.
>> 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
Two more general questions
1) if i have a block A with several children C1...Cn and A does not
declare any variable, can i remove A and have C1...Cn point to A's parent.
2) can you remove leaf blocks that have no declarations?