This is the mail archive of the gcc-patches@gcc.gnu.org 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]

Re: Patch: More basic-block reordering infrastructure.


On Sat, Jan 29, 2000 at 01:02:38PM -0800, Jason Eckhardt wrote:
> + skip_insns_between_block (bb, skip_type)
> +      basic_block bb;
> +      int skip_type;

Oh, I notice you aren't handling the EH notes here.  Nor are you
keeping EH regions valid during the rechaining.

There are several ways you could address this: 

 (1) Use bb->eh_beg and bb->eh_end to limit which blocks are
     eligible for placement.  The invariant is that

	bb[n]->eh_end == bb[n+1]->eh_beg

 (2) Be prepared to burst an EH region into pieces if is constituant
     blocks aren't adjacent.  You'd have to modify except.c to allow this.

 (3) Modify the EH mechanism to REG_EH_REGION exclusively, and
     dispense with NOTE_INSN_EH_REGION_{BEG,END} entirely.

Number 1 is easiest; number 3 has the most long-term benefits.



r~

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