On 11/20/2015 07:56 AM, Segher Boessenkool wrote:

When basic asm changes, I expect that having a way to "just do what it
used to do" is going to be useful for some people.
24414 says the documented behaviour hasn't been true for at least
fourteen years.  It isn't likely anyone is relying on that behaviour.

?

24414 says these things haven't worked since at least 2.95.3, which is
fourteen years old now.
That's not a good reason to leave things as-is.

The problem is that optimizers continue to improve. So an old-style asm that worked in the past may mysteriously start failing as folks move forward with their compiler -- because we haven't properly implemented the right semantics of old-style asms, which is in part because certain aspects were never documented properly and partly because of reload issues :(

If we keep old style asms, then we need to properly document what their behaviour is supposed to be, and continue to fix bugs where we do not honor that behaviour.

The latter is somewhat painful because we don't have a single place where we can audit & fix any semantic problems. It's scattered in various optimizers throughout GCC. And I suspect most are getting it wrong in one way or another.


Jeff

Reply via email to