This is the mail archive of the
mailing list for the GCC project.
Re: Exception handling problem: return address dead
- From: Richard Henderson <rth at redhat dot com>
- To: "Boehm, Hans" <hans_boehm at hp dot com>
- Cc: "'gcc at gcc dot gnu dot org'" <gcc at gcc dot gnu dot org>
- Date: Mon, 26 Nov 2001 14:12:56 -0800
- Subject: Re: Exception handling problem: return address dead
- References: <40700B4C02ABD5119F000090278766443BED79@hplex1.hpl.hp.com>
On Tue, Nov 20, 2001 at 06:25:28PM -0800, Boehm, Hans wrote:
> <stuff 1>
> r36 = b0
> <stuff 2>
> conditional branch to L1
> <code that returns normally>
> <code that always raises an exception. Without my patch r36 is dead here>
> Since r36 is dead if the branch is taken, the scheduler appears to decide
> that it's OK to move the save of b0 to below the branch. As far as I can
> tell, this is correct based on the information it currently has.
Hmm. Yes, I can see that that would be a problem. I think we need
a new target hook akin to EPILOGUE_USES, perhaps called EH_USES,
that forces particular registers live at EH edges.
I'll see about this soonish.