cvs commit: src/lib/msun/src e_rem_pio2f.c s_cosf.c s_sinf.c s_tanf.c

Bruce Evans bde at FreeBSD.org
Mon Feb 25 22:19:20 UTC 2008


bde         2008-02-25 22:19:17 UTC

  FreeBSD src repository

  Modified files:
    lib/msun/src         e_rem_pio2f.c s_cosf.c s_sinf.c s_tanf.c 
  Log:
  Inline __ieee754__rem_pio2f().  On amd64 (A64) and i386 (A64), this
  gives an average speedup of about 12 cycles or 17% for
  9pi/4 < |x| <= 2**19pi/2 and a smaller speedup for larger x, and a
  small speeddown for |x| <= 9pi/4 (only 1-2 cycles average, but that
  is 4%).
  
  Inlining this is less likely to bust caches than inlining the float
  version since it is much smaller (about 220 bytes text and rodata) and
  has many fewer branches.  However, the float version was already large
  due to its manual inlining of the branches and also the polynomial
  evaluations.
  
  Revision  Changes    Path
  1.28      +3 -0      src/lib/msun/src/e_rem_pio2f.c
  1.18      +4 -0      src/lib/msun/src/s_cosf.c
  1.17      +4 -0      src/lib/msun/src/s_sinf.c
  1.17      +4 -0      src/lib/msun/src/s_tanf.c


More information about the cvs-src mailing list