Optimization comparison: 3.3, 3.4, mainline, tree-ssa

Uros Bizjak uros@kss-loka.si
Mon Apr 19 08:18:00 GMT 2004


Hello!

>Strange.  Using last night's mainline on i686-pc-linux-gnu, when I
>supply either -D__NO_INLINE__ or -D__NO_MATH_INLINES I get a dramatic
>30% speedup for alma.  Still not as fast as ICC, but better than it
>was.  I suspect we'll do better when Uros finishes the x87
>instrinsics. :-)
>http://gcc.gnu.org/ml/gcc-patches/2004-04/msg00863.html
>
The problem with this approach is, that with -D__NO_INLINE__, asin() and 
drem()functions, which are part of almabench, still produce a call to 
math library. These functions are currently not implemented as intrinsic 
functions ( http://gcc.gnu.org/ml/gcc-patches/2004-04/msg00876.html ).

I would like to ask, if these (somehow complex) functions should be 
implemented as inline functions in a compiler provided optimized header, 
or as intrinsic functions. For example, asin() and acos() doesn't have 
hardware implementation, and because of this,  I would suggest 
implementing them as inline functions. The same goes for asinh, acosh, 
etc... which are even more complex function, and I see no point to 
implement them in *.md file.
For example, asin() function, implemented with atan2 from previous mail, 
produce with '-O2 -ffast-math -fomit-frame-pointer' this asm:

asin:
        fldl    4(%esp)
        fld     %st(0)
        fmul    %st(1), %st
        fsubrl  .LC1
        fsqrt
        fpatan
        ret

BTW: I would really appreciate some help with -rint(), lrint() and 
llrint() builtins 
http://gcc.gnu.org/ml/gcc-patches/2004-04/msg00876.html , especially 
with rounding issues...

Perhaps gcc can get some performance gain from fpregparm patch (still 
unreviewed, http://gcc.gnu.org/ml/gcc-patches/2004-04/msg00772.html ).

    Uros.



More information about the Gcc mailing list