> > 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. So the argument about it being too strong is wrong because timming matters now a days. Instruction scheduling can cause the same issue as it forces a write too early for another thread to act on. Thanks, Andrew Pinski