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
block?

Yes.

Jason

Reply via email to