On Dec 19, 2006, at 6:33 PM, Dave Korn wrote:
On 20 December 2006 02:28, Andrew Pinski wrote:

Paul Brook wrote:
Compiler can optimize it any way it wants,
as long as result is the same as unoptimized one.

We have an option for that. It's called -O0.

Pretty much all optimization will change the behavior of your program.

Now that's a bit TOO strong a statement, critical optimizations like
register allocation and instruction scheduling will generally not change the behavior of the program (though the basic decision to put something in a register will, and *surely* no one suggests avoiding this critical
optimization).

Actually they will with multi threaded program, since you can have a case where it works and now it is broken because one thread has speed up so much
it writes to a variable which had a copy on another thread's stack.

Why isn't that just a buggy program with wilful disregard for the use of
correct synchronisation techniques?

It is that, as well as a program that features a result that is different from unoptimized code.

Reply via email to