Re: regrename creates invalid insn

2012-03-26 Thread Eric Botcazou
> Here, I think the problem is that we have an in-out operand whose chain > is closed prematurely due to a bogus REG_DEAD note which shouldn't be > there for a register set in the instruction. IIRC I didn't see a REG_DEAD note, but I might be misremembering. -- Eric Botcazou

Re: regrename creates invalid insn

2012-03-26 Thread Bernd Schmidt
On 03/26/2012 07:37 PM, Eric Botcazou wrote: >> 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

Re: regrename creates invalid insn

2012-03-26 Thread Eric Botcazou
> 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 regi

Re: regrename creates invalid insn

2012-03-26 Thread Andreas Schwab
Bernd Schmidt writes: > Does 4.7 still have the failure at all? Yes, see PR52573. Andreas. -- Andreas Schwab, sch...@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different."

Re: regrename creates invalid insn

2012-03-26 Thread Bernd Schmidt
On 03/13/2012 12:41 AM, Andreas Schwab wrote: > Andreas Schwab writes: > >> Ian Lance Taylor writes: >> >>> Andreas Schwab writes: >>> Ian Lance Taylor writes: > But it also looks like the pattern should use a match_scratch. It is also used as input in operand 2. >>> >>

Re: regrename creates invalid insn

2012-03-12 Thread Andreas Schwab
Andreas Schwab writes: > Ian Lance Taylor writes: > >> Andreas Schwab writes: >> >>> Ian Lance Taylor writes: >>> But it also looks like the pattern should use a match_scratch. >>> >>> It is also used as input in operand 2. >> >> Sorry, I missed that. > > That appears not to be an issue a

Re: regrename creates invalid insn

2012-03-12 Thread Andreas Schwab
Ian Lance Taylor writes: > Andreas Schwab writes: > >> Ian Lance Taylor writes: >> >>> But it also looks like the pattern should use a match_scratch. >> >> It is also used as input in operand 2. > > Sorry, I missed that. That appears not to be an issue actually, there is already one use of mat

Re: regrename creates invalid insn

2012-03-12 Thread Ian Lance Taylor
Andreas Schwab writes: > Ian Lance Taylor writes: > >> But it also looks like the pattern should use a match_scratch. > > It is also used as input in operand 2. Sorry, I missed that. This still seems like a bug in regrename to me, but it also seems like an unusual case, so it is less surprisin

Re: regrename creates invalid insn

2012-03-12 Thread Andreas Schwab
Ian Lance Taylor writes: > But it also looks like the pattern should use a match_scratch. It is also used as input in operand 2. Andreas. -- Andreas Schwab, sch...@linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely differe

Re: regrename creates invalid insn

2012-03-12 Thread Ian Lance Taylor
Andreas Schwab writes: > When regrename runs it turns it into this: > > (insn 6 27 7 2 (parallel [ > (set (reg:SI 1 %d1 [35]) > (truncate:SI (lshiftrt:DI (mult:DI (sign_extend:DI (reg:SI 1 > %d1 [36])) > (const_int -2004318071 [0x8889])

regrename creates invalid insn

2012-03-12 Thread Andreas Schwab
On m68k, int % CONST is expanded to contain this insn: (insn 6 5 7 3 (parallel [ (set (reg:SI 35) (truncate:SI (lshiftrt:DI (mult:DI (sign_extend:DI (reg/v:SI 33 [ a ])) (const_int -2004318071 [0x8889])) (const_in