[PATCH] Remove dead labels to increase superblock scope

Tom de Vries Tom_deVries@mentor.com
Tue Dec 6 13:17:00 GMT 2011


On 05/12/11 13:50, Michael Matz wrote:
> Hi,
> 
> On Sun, 4 Dec 2011, Eric Botcazou wrote:
> 
>>> I'm just a bit worried about the name "delete_label". "delete_insn 
>>> (label)" should always do the right thing for a pure deletion; the 
>>> point of the new routine is that it also moves instructions.
>>
>> It only fixes things up though, so that the RTL stream is valid again.  
>> Hence the question: why not retrofit it into delete_insn directly?
> 
> Was my first reaction too.  What good is delete_insn(label) if it leaves 
> the stream in a state to be fixed up immediately.
> 

delete_insn returns the next insn.

If I have:

  (code_label 33 26 34 4 1 "" [0 uses])

  (note 34 33 50 4 [bb 4] NOTE_INSN_BASIC_BLOCK)

  (note 50 34 51 4 NOTE_INSN_EPILOGUE_BEG)

and delete_insn turns the label into a note and changes order into:

  (note 34 33 50 4 [bb 4] NOTE_INSN_BASIC_BLOCK)

  (note 33 26 34 4 1 "" NOTE_INSN_DELETED_LABEL)

  (note 50 34 51 4 NOTE_INSN_EPILOGUE_BEG)

what should be the 'next' returned by delete_insn?

Thanks,
- Tom

> 
> Ciao,
> Michael.



More information about the Gcc-patches mailing list