This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] PR middle-end/43631

On Fri, Apr 12, 2013 at 6:46 PM, Steven Bosscher wrote:
>> Can we reorganize insn-notes.def so that the 3 classes are clearly separated
>> (and optionally define a NOTE_INSN_CLASS macro so that we don't need to
>> enumerate the notes each time)?
> That's probably a good idea, yes.

This didn't really help make things look prettier. The notes are
enumerated in many other places, for various purposes. I didn't like
special-casing this one INSN_NOTE oddity when there are so many others
already. So I created a note_outside_basic_block_p instead, I hope you
agree with this approach.

While there, I noticed that we could use a make_note_raw.

>> Reading your patch, it apppears that NOTE_INSN_SWITCH_TEXT_SECTIONS is the
>> only member of the 1st class and that almost all notes are in the 2nd class
>> except for the 2 LOCATION and the 2 EH_REGION recently added notes.
> I think DELETED_LABEL and DELETED_DEBUG_LABEL also can only live
> outside basic blocks (i.e. like SWITCH_TEXT_SECTIONS), but I'm not
> sure.

It turns out that DELETED_LABEL cannot be emitted, it can only be
created by patching out a label. Likewise for DELETED_DEBUG_LABEL, so
I've included that one also in the gcc_assert for this.

>>  - Remove the
>>     This and the next should be the only functions called to insert an insn
>>     once delay slots have been filled since only they know how to update a
>>     SEQUENCE.
>> from the head comment of functions that are now private to emit-rtl.c.
> OK.


Updated patch attached, similarly tested. OK for trunk?


Attachment: PR43631_var-tracking_verify_flow.diff.txt
Description: Text document

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]