This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Patch: More basic-block reordering infrastructure.
- To: Jason Eckhardt <jle at cygnus dot com>
- Subject: Re: Patch: More basic-block reordering infrastructure.
- From: Richard Henderson <rth at cygnus dot com>
- Date: Sun, 30 Jan 2000 22:33:16 -0800
- Cc: gcc-patches at gcc dot gnu dot org
- References: <200001292102.NAA14270@cse.cygnus.com>
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~