This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: matching constraints in asm operands question
Hi,
On Sat, 5 Mar 2005 amylaar@spamcop.net wrote:
> > Well, I assumed the same thing when I started poking at that code, but
> > then someone pointed out that it didn't actually work that way, and as
> > I recall the code does in fact assume a register. I certainly would
> > not object to making '+' work properly for memory operands, but simply
> > asserting that it already does is wrong.
>
> The code in reload to make non-matching operands match assumes a
> register. However, a match from a plus should always kept in sync
> (except temporarily half-way through a substitution, since we now
> unshare). If it isn't, that's a regression.
In former times an in-out constraint simply was translated to a matching
constraints. So it broke when no register was allowed with it.
Jason added a warning to that effect in 2003
http://gcc.gnu.org/ml/gcc-patches/2003-12/msg01491.html
RTH fixed the problem of this translation in tree-ssa and hence also
removed the warning
http://gcc.gnu.org/ml/gcc-patches/2004-05/msg00438.html
I now see that I had an objection to that one as he also applied the
removal of the warning to 3.4, without me seeing that we were doing the
right thing as Richard claimed, but that seemed to have falled through the
crack.
> Do you have a testcase, and/or can point out the code that introduces
> the inconsistency in the rtl?
Ciao,
Michael.