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