On Friday, 29 August 2014 at 05:31:02 UTC, deadalnix wrote:
If the value in unspecified, rather than the behavior
undefined, it means that no load or store can be optimized away
or reordered, unless the compiler can prove that is won't fault.
I'm talking about doubtful optimization to gain 0.5% here, but
that everything single variable except locals must be
considered volatile in the C sense.
Why is that? If the value is unspecified then you can assume a
random value, so no single store is needed unless explicitly
volatile?
Wrapping semantics is also bad for optimization, though. You
cannot reduce length < length+N to true in generic code, so you
need to establish bounds on x or create multiple execution paths.
This is usually silly when using a 64 bit int...