This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: GCC optimizes integer overflow: bug or feature?
- From: Andrew Pinski <pinskia at physics dot uc dot edu>
- To: dewar at adacore dot com (Robert Dewar)
- Cc: paul at codesourcery dot com (Paul Brook), gcc at gcc dot gnu dot org, vda dot linux at googlemail dot com (Denis Vlasenko), aph at redhat dot com (Andrew Haley), bonzini at gnu dot org (Paolo Bonzini), bug-gnulib at gnu dot org
- Date: Tue, 19 Dec 2006 21:28:16 -0500 (EST)
- Subject: Re: GCC optimizes integer overflow: bug or feature?
>
> 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