Andreas Schwab <sch...@linux-m68k.org> writes:
> Richard Sandiford <rdsandif...@googlemail.com> writes:
>> Worse than redundant really.  If the register operand is a spilled pseudo,
>> "o" allows reload to replace the operand with a stack memory reference,
>> which would lead to an ICE after reload.  (Reload only checks constraints
>> in that situation, not predicates.)
>
> What kind of ICE would that be?  Perhaps recog complaining that the insn
> no longer matches?

Right.  It would typically trigger during postreload.

>> Which is just a way of saying that there were even more reasons for
>> making the change you wanted to make...
>
> What I really want to find out is the motivation for the original
> changes in revision 11511.  There are similar problems left in vax.md,
> btw.

Not sure TBH.  I think the idea was that memory extractions should
be QImode and register extractions should be word_mode, whereas the
.md files before that revision seemed to allow other combinations.
But I thought that rule applied more to the named ext* and ins* patterns.
I'm not sure why the unnamed patterns couldn't be more general.

The handling of the constraints in that revision does look a bit odd.

Richard

Reply via email to