This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Question on fixup_abnormal_edges
- From: Michael Matz <matz at suse dot de>
- To: Jan Hubicka <jh at suse dot cz>
- Cc: Richard Henderson <rth at redhat dot com>,Olivier Hainque <hainque at ACT-Europe dot FR>, <gcc at gcc dot gnu dot org>
- Date: Wed, 16 Oct 2002 11:40:53 +0200 (CEST)
- Subject: Re: Question on fixup_abnormal_edges
Hi,
On Wed, 16 Oct 2002, Jan Hubicka wrote:
> EH edges are abnormal and can be critical. You can add insns to them,
> if you update split_edge.
But then the exception tables need to be updated too, or? I mean you have
to split such an edge, create a new BB, and somehow make that the landing
target for the exceptions.
> (ie teoretically it is possible, but our current framework can't deal
> with these) It can be good idea to add code for that, as GCSE would be
> much happier then too.
>
> I think that EH kills registers anyway, so this is not problem.
>
> I think problem is different. The call with live register over is
> noreturn, so there should really be no register alive at first place.
Yes and no. Because it's an throwing call the noreturn hint is not
exactly correct. It doesn't return when it's not throwing, but if it
does, it returns and follows the EH edge. Having registers live over EH
edges is OK, they just should not be allocated to hardregs which are
destroyed by EH.
Ciao,
Michael.