[tree-ssa] Block merging (updated)

Zack Weinberg zack@codesourcery.com
Tue Jan 13 20:53:00 GMT 2004

law@redhat.com writes:

> In message <87zncrzlfz.fsf@egil.codesourcery.com>, "Zack Weinberg" writes:
>  >Perhaps it is time to reexamine this policy.  
> Then reexamine it for GCC as whole -- we're certainly not going to make
> this kind of policy change on tree-ssa unless GCC as a whole buys into
> the policy change.
> In the mean time, I'd like to see Zdenek's patch adhere to current
> policies and get installed.  If we choose to change policy in the
> future, then we can simply remove special casing blocks headed by
> user defined labels in Zdenek's code and elsewhere in GCC.

Fair enough.

>  >The optimizers tend to move NOTE_INSN_DELETED_LABELs to completely
>  >random locations, so setting breakpoints on the resulting labels does
>  >nothing useful.  I'd much rather see "label optimized out" from gdb
>  >than an apparently successful breakpoint which then fails to trigger.
> I'll also note that in the case of block merging, if you try to put a
> breakpoint on the "deleted" user label, you'll may get a breakpoint
> in a meaningful location -- we don't guarantee a meaningful location,
> but if the merged blocks were contiguous at the time of the merge, then
> the breakpoint ought to trigger in a meaningful location.

This is not my experience - what seems to happen to me is the
NOTE_INSN_DELETED_LABEL gets moved (not sure by which pass) all the
way to the end of the function.


More information about the Gcc-patches mailing list