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

--- Comment #8 from Julian Andres Klode <j...@jak-linux.org> 2010-10-26 
15:25:56 UTC ---
(In reply to comment #6)
> You get this kind of speedup if the compiler knows that the result of the loop
> is
> 
> sum=(b*(b-1)-a*(a-1))/2
> 
> In which case the timing is meaningless (it is 0.000s on my laptop), so is the
> ratio with the execution of the loop.
> 
> The basic question is: how much the user's ignorance should be repaired by the
> optimizer? (A colleague of mine told me that he once audited a CFD code and
> found that \int_a^b dx/x was evaluated numerically instead of using
> log(b)-log(a)!-)

Since the optimization seems to be mostly there in -O3, it's just a matter of
enabling it in -O2. 

I just found out that it does not optimize if you call f() via a global
function pointer, it still takes 1.6 seconds despite being compiled at -O3,
whereas clang can optimize it to 0.001s.

Reply via email to