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: changing "configure" to default to "gcc -g -O2 -fwrapv ..."


> But didn't this thread get started by a real program that was broken
> by an optimization of loop invariants?  Certainly I got a real bug
> report of a real problem, which you can see here:
> 
> http://lists.gnu.org/archive/html/bug-gnulib/2006-12/msg00084.html

I just thought of something interesting about this case.  We have a loop
looking like:

 for (j = 1; 0 < j; j *= 2)

in this case, the compiler is quite capable of arguing "this end condition
won't terminate the loop except in the case of overflow, so obviously the
programmer must be relying on wrapping semantics. So let's use those here"


> Here is a bit more discussion:
> 
> http://gcc.gnu.org/ml/gcc/2006-12/msg00607.html

Indeed that message hinted at exactly that point.  Note that if you do
argue along those lines, you can convert this to a loop with a new IV
that increments up to 31 (or is it 32?).


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