Question about insn predicates and constraints
Richard Sandiford
rdsandiford@googlemail.com
Sun Sep 30 10:12:00 GMT 2012
Andreas Schwab <schwab@linux-m68k.org> writes:
> Richard Sandiford <rdsandiford@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
More information about the Gcc
mailing list