On 06/22/16 21:51, Jeff Law wrote: > On 06/19/2016 07:25 AM, Bernd Edlinger wrote: >> Hi, >> >> ping... >> >> As this discussion did not make any progress, I just attached >> the latest version of my patch with the the changes that >> Vladimir proposed. >> >> Boot-strapped and reg-tested again on x86_64-linux-gnu. >> Is it OK for the trunk? > Well, I don't think we've got any kind of consensus on whether or not > this is reasonable or not. > > The fundamental issue is that "X" is supposed to accept anything, > literally anything. That implies it's really the downstream users of > those operands that are broken. >
Hmm... I think it must be pretty easy to write something in a .md file with the X constraint that ends up in an ICE, right? But in an .md file we have much more control on what happens. That's why I did not propose to change the meaning of "X" in .md files. And we only have problems with asm statements that use "X" constraints. Nobody has any use case where the really anything kind of RTL operand is actually useful in a user-written assembler statement. Please correct me if that is wrong. But I think we have a use case where "X" means really more possible registers (i.e. includes ss2, mmx etc.) than "g" (only general registers). Otherwise, in the test cases of pr59155 we would not have any benefit for using "+X" instead of "+g" or "+r". Does that sound reasonable? Bernd.