On Thursday, 31 July 2014 at 15:37:23 UTC, Daniel Gibson wrote:
Am 31.07.2014 17:26, schrieb Artur Skawina via Digitalmars-d:
On 07/31/14 15:44, Daniel Gibson via Digitalmars-d wrote:
And don't forget this (rather old) case: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=8537 (I really don't get why anyone would want such an optimization: I want an optimizer to use clever inlining, use SSE etc where it makes sense and stuff like that - but not to remove code I wrote.)

That is actually not a bug, but a perfectly valid optimization. The compiler isn't clairvoyant and can not know that some data that you
wrote, but never read back, matters.

I don't want the compiler to care about that. When I tell it to write something, I want it to do that, even if it might look like nonsense (if anything, it could create a warning).

The thing is: I don't want a compiler to remove code I wrote just because it "thinks" it's superfluous.

The idea that the compiler simply lowers your code to well-written assembly died decades ago. The job of an optimiser is to *not* use your code but instead to compile a program that is equivalent to yours but faster/smaller. What is equivalent is defined by the language spec.

Reply via email to