Actually I just think it's all extremely stupid, to be honest. I have really low tolerance for the whole "spec-based optimization" ridiculousness.
First of all, when you just write reasonable C code to begin with, you don't _need_ much in the way of aggressive compiler optimizations most of the time. So the times when you actually care about it, it's easy to add restrict.
Most of this stuff is just there because the way C++ committee people advocate coding (and their own STL/template nightmare ideas of standard libraries) _produce_ code that is so obtuse and verbose that you actually need things like assuming no aliasing everywhere in order to make it OK.
It's all totally absurd.
For any sane C code, the way more important thing is _correctness_ of the generated code, because bugs are way more important than performance these days on code that's not a C++ nightmare. So having all these hidden "gotchas" like aliasing optimizations or "same memory arena" pointer arithmetic constraints is actually way, way, WAY worse than just not doing the optimizations.
And like Pseudonm73 pointed our as well, I do think that a way more productive use of the committee's time would have been to focus on keywords that _add_ optimizations, so you can just put them where they need to be and not worry about the compiler doing something absurd in random parts of your code because some technical reading of a spec said it could.
DJB
tweeted about this recently, actually, and I couldn't agree more:
- Casey