http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46680

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|INVALID                     |WONTFIX

--- Comment #4 from Richard Guenther <rguenth at gcc dot gnu.org> 2010-11-27 
14:59:21 UTC ---
(In reply to comment #2)
> >> Am I missing something?
> 
> > -O1 / -O2 / -O3 / -Os option.
> 
> I know about these optimization flags :).
> My suggestion is directed specifically to -O0.
> 
> I would not rest knowing that it generates 4 instructions per comparison, 
> while
> it could use 2 instructions, reducing my code size and my compilation time
> while using -O0, which is the default one.

GCC is known to generate very bad code at -O0, but this is expected.

The reason is that GCC makes sure !value is computed into a register
(for the sake of debugging), thus does

 temp = !value;
 if (temp)
   ...

Reply via email to