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