This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GCC optimizes integer overflow: bug or feature?


Hello,

> > 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.

actually, you do not even need (invalid) multithreaded programs to
realize that register allocation may change behavior of a program.
If the size of the stack is bounded, register allocation may
cause or prevent program from running out of stack, thus turning a
crashing program to non-crashing one or vice versa.

Zdenek


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]