aboutsummaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@gmail.com>2011-10-12 11:27:51 -0400
committerUlrich Drepper <drepper@gmail.com>2011-10-12 11:27:51 -0400
commit0ac5ae2335292908f39031b1ea9fe8edce433c0f (patch)
treef9d26c8abc0de39d18d4c13e70f6022cdc6b461f /ChangeLog
parenta843a204a3e8a0dd53584dad3668771abaec84ac (diff)
downloadglibc-0ac5ae2335292908f39031b1ea9fe8edce433c0f.zip
glibc-0ac5ae2335292908f39031b1ea9fe8edce433c0f.tar.gz
glibc-0ac5ae2335292908f39031b1ea9fe8edce433c0f.tar.bz2
Optimize libm
libm is now somewhat integrated with gcc's -ffinite-math-only option and lots of the wrapper functions have been optimized.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog286
1 files changed, 286 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index a5cbdee..5dd550c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,289 @@
+2011-10-12 Ulrich Drepper <drepper@gmail.com>
+
+ Add integration with gcc's -ffinite-math-only and optimize wrapper
+ functions in libm.
+ * Versions.def: Define GLIBC_2.15 version for libm.
+ * math/Makefile (headers): Add bits/math-finite.h.
+ * math/bits/math-finite.h: New file.
+ * sysdeps/ia64/fpu/bits/math-finite.h: New file.
+ * math/Versions [libm] (GLIBC_2.15): Export __*_finite symbols.
+ * math/e_acoshl.c: Add __*_finite alias.
+ * math/e_acosl.c: Likewise.
+ * math/e_asinl.c: Likewise.
+ * math/e_atan2l.c: Likewise.
+ * math/e_atanhl.c: Likewise.
+ * math/e_coshl.c: Likewise.
+ * math/e_exp10.c: Likewise.
+ * math/e_exp10f.c: Likewise.
+ * math/e_exp10l.c: Likewise.
+ * math/e_exp2l.c: Likewise.
+ * math/e_fmodl.c: Likewise.
+ * math/e_gammal_r.c: Likewise.
+ * math/e_hypotl.c: Likewise.
+ * math/e_j0l.c: Likewise.
+ * math/e_j1l.c: Likewise.
+ * math/e_jnl.c: Likewise.
+ * math/e_lgammal_r.c: Likewise.
+ * math/e_log10l.c: Likewise.
+ * math/e_log2l.c: Likewise.
+ * math/e_logl.c: Likewise.
+ * math/e_powl.c: Likewise.
+ * math/e_sinhl.c: Likewise.
+ * math/e_sqrtl.c: Likewise.
+ * math/e_scalb.c: Completely rewritten and optimized.
+ * math/e_scalbf.c: Likewise.
+ * math/e_scalbl.c: Likewise.
+ * math/w_acos.c: Likewise.
+ * math/w_acosf.c: Likewise.
+ * math/w_acosl.c: Likewise.
+ * math/w_acosh.c: Likewise.
+ * math/w_acoshf.c: Likewise.
+ * math/w_acoshl.c: Likewise.
+ * math/w_asin.c: Likewise.
+ * math/w_asinf.c: Likewise.
+ * math/w_asinl.c: Likewise.
+ * math/w_atan2.c: Likewise.
+ * math/w_atan2f.c: Likewise.
+ * math/w_atan2l.c: Likewise.
+ * math/w_atanh.c: Likewise.
+ * math/w_atanhf.c: Likewise.
+ * math/w_atanhl.c: Likewise.
+ * math/w_exp10.c: Likewise.
+ * math/w_exp10f.c: Likewise.
+ * math/w_exp10l.c: Likewise.
+ * math/w_fmod.c: Likewise.
+ * math/w_fmodf.c: Likewise.
+ * math/w_fmodl.c: Likewise.
+ * math/w_j0.c: Likewise.
+ * math/w_j0f.c: Likewise.
+ * math/w_j0l.c: Likewise.
+ * math/w_j1.c: Likewise.
+ * math/w_j1f.c: Likewise.
+ * math/w_j1l.c: Likewise.
+ * math/w_jn.c: Likewise.
+ * math/w_jnf.c: Likewise.
+ * math/w_log.c: Likewise.
+ * math/w_logf.c: Likewise.
+ * math/w_logl.c: Likewise.
+ * math/w_log10.c: Likewise.
+ * math/w_log10f.c: Likewise.
+ * math/w_log10l.c: Likewise.
+ * math/w_log2.c: Likewise.
+ * math/w_log2f.c: Likewise.
+ * math/w_log2l.c: Likewise.
+ * math/w_pow.c: Likewise.
+ * math/w_powf.c: Likewise.
+ * math/w_powl.c: Likewise.
+ * math/w_remainder.c: Likewise.
+ * math/w_remainderf.c: Likewise.
+ * math/w_remainderl.c: Likewise.
+ * math/w_scalb.c: Likewise.
+ * math/w_scalbf.c: Likewise.
+ * math/w_scalbl.c: Likewise.
+ * math/w_sqrt.c: Likewise.
+ * math/w_sqrtf.c: Likewise.
+ * math/w_sqrtl.c: Likewise.
+ * math/math.h: Define __MATH_DECLARE_LDOUBLE if long double functions
+ are declared. Include <bits/math-finite.h> if -ffinite-math-only is
+ used.
+ * math/math_private.h: Declare __kernel_standard_f.
+ * math/w_cosh.c: Remove cruft and optimize a bit.
+ * math/w_coshf.c: Likewise.
+ * math/w_coshl.c: Likewise.
+ * math/w_exp2.c: Likewise.
+ * math/w_exp2f.c: Likewise.
+ * math/w_exp2l.c: Likewise.
+ * math/w_hypot.c: Likewise.
+ * math/w_hypotf.c: Likewise.
+ * math/w_hypotl.c: Likewise.
+ * math/w_lgamma.c: Likewise.
+ * math/w_lgamma_r.c: Likewise.
+ * math/w_lgammaf.c: Likewise.
+ * math/w_lgammaf_r.c: Likewise.
+ * math/w_lgammal.c: Likewise.
+ * math/w_lgammal_r.c: Likewise.
+ * math/w_sinh.c: Likewise.
+ * math/w_sinhf.c: Likewise.
+ * math/w_sinhl.c: Likewise.
+ * math/w_tgamma.c: Likewise.
+ * math/w_tgammaf.c: Likewise.
+ * math/w_tgammal.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_atanh.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_atanhf.c: Likewise.
+ * sysdeps/i386/fpu/e_acos.S: Add __*_finite alias.
+ Minor optimizations. Pretty printing. Remove cruft.
+ * sysdeps/i386/fpu/e_acosf.S: Likewise.
+ * sysdeps/i386/fpu/e_acosh.S: Likewise.
+ * sysdeps/i386/fpu/e_acoshf.S: Likewise.
+ * sysdeps/i386/fpu/e_acoshl.S: Likewise.
+ * sysdeps/i386/fpu/e_acosl.c: Likewise.
+ * sysdeps/i386/fpu/e_asin.S: Likewise.
+ * sysdeps/i386/fpu/e_asinf.S: Likewise.
+ * sysdeps/i386/fpu/e_atan2.S: Likewise.
+ * sysdeps/i386/fpu/e_atan2f.S: Likewise.
+ * sysdeps/i386/fpu/e_atan2l.c: Likewise.
+ * sysdeps/i386/fpu/e_atanh.S: Likewise.
+ * sysdeps/i386/fpu/e_atanhf.S: Likewise.
+ * sysdeps/i386/fpu/e_atanhl.S: Likewise.
+ * sysdeps/i386/fpu/e_exp10.S: Likewise.
+ * sysdeps/i386/fpu/e_exp10f.S: Likewise.
+ * sysdeps/i386/fpu/e_exp10l.S: Likewise.
+ * sysdeps/i386/fpu/e_exp2.S: Likewise.
+ * sysdeps/i386/fpu/e_exp2f.S: Likewise.
+ * sysdeps/i386/fpu/e_exp2l.S: Likewise.
+ * sysdeps/i386/fpu/e_fmod.S: Likewise.
+ * sysdeps/i386/fpu/e_fmodf.S: Likewise.
+ * sysdeps/i386/fpu/e_fmodl.c: Likewise.
+ * sysdeps/i386/fpu/e_hypot.S: Likewise.
+ * sysdeps/i386/fpu/e_hypotf.S: Likewise.
+ * sysdeps/i386/fpu/e_log.S: Likewise.
+ * sysdeps/i386/fpu/e_log10.S: Likewise.
+ * sysdeps/i386/fpu/e_log10f.S: Likewise.
+ * sysdeps/i386/fpu/e_log10l.S: Likewise.
+ * sysdeps/i386/fpu/e_log2.S: Likewise.
+ * sysdeps/i386/fpu/e_log2f.S: Likewise.
+ * sysdeps/i386/fpu/e_log2l.S: Likewise.
+ * sysdeps/i386/fpu/e_logf.S: Likewise.
+ * sysdeps/i386/fpu/e_logl.S: Likewise.
+ * sysdeps/i386/fpu/e_pow.S: Likewise.
+ * sysdeps/i386/fpu/e_powf.S: Likewise.
+ * sysdeps/i386/fpu/e_powl.S: Likewise.
+ * sysdeps/i386/fpu/e_remainder.S: Likewise.
+ * sysdeps/i386/fpu/e_remainderf.S: Likewise.
+ * sysdeps/i386/fpu/e_remainderl.S: Likewise.
+ * sysdeps/i386/fpu/e_scalb.S: Likewise.
+ * sysdeps/i386/fpu/e_scalbf.S: Likewise.
+ * sysdeps/i386/fpu/e_scalbl.S: Likewise.
+ * sysdeps/i386/fpu/e_sqrt.S: Likewise.
+ * sysdeps/i386/fpu/e_sqrtf.S: Likewise.
+ * sysdeps/i386/fpu/e_sqrtl.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_acosh.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_asin.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_atan2.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_cosh.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_exp2.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_fmod.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_gamma_r.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_hypot.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_j0.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_j1.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_jn.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_lgamma_r.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_log.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_log10.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_log2.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_pow.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_remainder.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_sinh.c: Likewise.
+ * sysdeps/ieee754/dbl-64/e_sqrt.c: Likewise.
+ * sysdeps/ieee754/dbl-64/halfulp.c: Likewise.
+ * sysdeps/ieee754/dbl-64/s_asinh.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_acosf.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_acoshf.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_asinf.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_atan2f.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_coshf.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_exp2f.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_fmodf.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_gammaf_r.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_hypotf.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_j0f.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_j1f.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_jnf.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_lgammaf_r.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_log10f.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_log2f.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_logf.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_powf.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_remainderf.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_sinhf.c: Likewise.
+ * sysdeps/ieee754/flt-32/e_sqrtf.c: Likewise.
+ * sysdeps/ieee754/flt-32/s_asinhf.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_acoshl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_acosl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_asinl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_atan2l.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_atanhl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_coshl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_fmodl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_gammal_r.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_hypotl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_j0l.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_j1l.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_jnl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_lgammal_r.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_log10l.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_log2l.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_logl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_powl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_remainderl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128/e_sinhl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_acoshl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_acosl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_asinl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_atan2l.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_atanhl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_coshl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_fmodl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_gammal_r.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_hypotl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_log10l.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_log2l.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_logl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_powl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_remainderl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_sinhl.c: Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_acoshl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_asinl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_atan2l.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_atanhl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_coshl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_gammal_r.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_hypotl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_j0l.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_j1l.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_jnl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_lgammal_r.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_remainderl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/e_sinhl.c: Likewise.
+ * sysdeps/ieee754/ldbl-96/s_asinhl.c: Likewise.
+ * sysdeps/powerpc/fpu/e_hypot.c: Likewise.
+ * sysdeps/powerpc/fpu/e_hypotf.c: Likewise.
+ * sysdeps/powerpc/fpu/e_sqrt.c: Likewise.
+ * sysdeps/powerpc/fpu/e_sqrtf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/e_sqrt.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/e_sqrtf.c: Likewise.
+ * sysdeps/s390/fpu/e_sqrt.c: Likewise.
+ * sysdeps/s390/fpu/e_sqrtf.c: Likewise.
+ * sysdeps/s390/fpu/e_sqrtl.c: Likewise.
+ * sysdeps/sparc/sparc32/e_sqrt.c: Likewise.
+ * sysdeps/sparc/sparc64/fpu/e_sqrtl.c: Likewise.
+ * sysdeps/x86_64/fpu/e_exp2l.S: Likewise.
+ * sysdeps/x86_64/fpu/e_fmodl.S: Likewise.
+ * sysdeps/x86_64/fpu/e_log10l.S: Likewise.
+ * sysdeps/x86_64/fpu/e_log2l.S: Likewise.
+ * sysdeps/x86_64/fpu/e_logl.S: Likewise.
+ * sysdeps/x86_64/fpu/e_powl.S: Likewise.
+ * sysdeps/x86_64/fpu/e_remainderl.S: Likewise.
+ * sysdeps/x86_64/fpu/e_scalbl.S: Likewise.
+ * sysdeps/x86_64/fpu/e_sqrt.c: Likewise. Fix parameter order
+ * sysdeps/x86_64/fpu/e_sqrtf.c: Likewise.
+ * sysdeps/x86_64/fpu/math_private.h (__isnan): Cast d parameter.
+ (__isnanf): Likewise.
+ (__isinf_ns): Likewise.
+ (__isinf_nsf): Likewise.
+ (__finite): Likewise.
+ (__finitef): Likewise.
+ (__ieee754_sqrt): Define as macro.
+ (__ieee754_sqrtf): Define as macro.
+ (__ieee754_sqrtl): Define as macro.
+ * sysdeps/x86_64/fpu/bits/fenv.h (feraiseexcept): Add partially
+ inlined copy.
+ * sysdeps/x86_64/fpu/bits/mathinline.h: Make use of
+ __FINITE_MATH_ONLY__ consistent.
+ * sysdeps/ieee754/k_standard.c (__kernel_standard_f): New function.
+
2011-10-10 Andreas Schwab <schwab@linux-m68k.org>
* inet/getnetgrent_r.c (nscd_getnetgrent): Use __rawmemchr instead