cvs commit: src/lib/msun/src s_exp2.c s_exp2f.c

Bruce Evans bde at FreeBSD.org
Sat Jan 19 13:37:15 PST 2008


bde         2008-01-19 21:37:14 UTC

  FreeBSD src repository

  Modified files:
    lib/msun/src         s_exp2.c s_exp2f.c 
  Log:
  Use STRICT_ASSIGN() for exp2f() and exp2() instead of a volatile
  variable hack for exp2f() only.
  
  The volatile variable had a surprisingly large cost for exp2f() -- 19
  cycles or 15% on i386 in the worst case observed.  This is only partly
  explained by there being several references to the variable, only one
  of which benefited from it being volatile.  Arches that have working
  assignment are likely to benefit even more from not having any volatile
  variable.
  
  exp2() now has a chance of working with extra precision on i386.
  
  exp2() has even more references to the variable, so it would have been
  pessimized more by simply declaring the variable as volatile.  Even
  the temporary volatile variable for STRICT_ASSIGN costs 5-10% on i386,
  (A64) so I will change STRICT_ASSIGN() to do an ordinary assignment
  until i386 defaults to extra precision.
  
  Revision  Changes    Path
  1.4       +1 -1      src/lib/msun/src/s_exp2.c
  1.3       +4 -3      src/lib/msun/src/s_exp2f.c


More information about the cvs-src mailing list