This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: regrename creates invalid insn
- From: Eric Botcazou <ebotcazou at adacore dot com>
- To: Bernd Schmidt <bernds at codesourcery dot com>
- Cc: gcc at gcc dot gnu dot org, Andreas Schwab <schwab at linux-m68k dot org>, Ian Lance Taylor <iant at google dot com>
- Date: Mon, 26 Mar 2012 19:37:06 +0200
- Subject: Re: regrename creates invalid insn
- References: <m2d38hvigj.fsf@igel.home> <m2r4wxtmim.fsf@igel.home> <4F707DAE.2070201@codesourcery.com>
> Does 4.7 still have the failure at all? I've checked with the 4.6
> branch, and regrename gets confused because there's a REG_DEAD note for
> the register, and another REG_UNUSED for the same reg. As far as I
> remember, it used to be the case that there should not be a REG_DEAD
> note for a register that gets set in the insn, but maybe df changed the
> rules? Or maybe it was a df bug in 4.6?
My understanding is that the REG_UNUSED note causes the chain opened for a dest
register operand to be immediately closed but, when you have multiple such
dest register operands, one would need to have the chain live "during the
instruction" or right after, so that you have a conflict with the other dest
register operands for the instruction. This looks awkward though.
--
Eric Botcazou