Re: List of optimizations enabled by -O1 seems incorrect

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



"Kevin P. Fleming" <kpfleming@xxxxxxxxxx> writes:

> Andrew Haley wrote:
>> Kevin P. Fleming wrote:
>>> Nikos Chantziaras wrote:
>>>
>>>> Thanks for the tip.  Looking at the generated assembly files, I finally
>>>> solved the "mystery": GCC uses SSE/SSE2 instructions to fetch both
>>>> variables in one CPU instruction.  It's faster but circumvents
>>>> short-circuit "if" rules and Valgrind prints an error.
>>> Then that seems very broken; you should not have to have initialized a
>>> variable to avoid this issue, since short-circuit evaluation is defined
>>> in the C standard.
>> 
>> Yes, but it's covered by the "as if" rule: if no conforming program could
>> ever notice the difference, an optimization is allowed.
>
> Well, I guess that was my point, stated in another way. I'm certainly no
> C standard expert, but I didn't think his program was 'non-conforming'
> in any way.

Andrew's point was not that the program was non-conforming.  His point
was that a conforming program could not detect this optimization.  And,
indeed, it couldn't.  The issue was reported by valgrind, not by the
program itself.

Ian

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux