glibc/sysdeps/ieee754/dbl-64
Vineet Gupta e93c264336 ieee754/dbl-64: Reduce the scope of temporary storage variables
This came to light when adding hard-flaot support to ARC glibc port
without hardware sqrt support causing glibc build to fail:

| ../sysdeps/ieee754/dbl-64/e_sqrt.c: In function '__ieee754_sqrt':
| ../sysdeps/ieee754/dbl-64/e_sqrt.c:58:54: error: unused variable 'ty' [-Werror=unused-variable]
|   double y, t, del, res, res1, hy, z, zz, p, hx, tx, ty, s;

The reason being EMULV() macro uses the hardware provided
__builtin_fma() variant, leaving temporary variables 'p, hx, tx, hy, ty'
unused hence compiler warning and ensuing error.

The intent of the patch was to fix that error, but EMULV is pervasive
and used fair bit indirectly via othe rmacros, hence this patch.
Functionally it should not result in code gen changes and if at all
those would be better since the scope of those temporaries is greatly
reduced now

Built tested with aarch64-linux-gnu arm-linux-gnueabi arm-linux-gnueabihf hppa-linux-gnu x86_64-linux-gnu arm-linux-gnueabihf riscv64-linux-gnu-rv64imac-lp64 riscv64-linux-gnu-rv64imafdc-lp64 powerpc-linux-gnu microblaze-linux-gnu nios2-linux-gnu hppa-linux-gnu

Also as suggested by Joseph [1] used --strip and compared the libs with
and w/o patch and they are byte-for-byte unchanged (with gcc 9).

| for i in `find . -name libm-2.31.9000.so`;
| do
|    echo $i; diff $i /SCRATCH/vgupta/gnu2/install/glibcs/$i ; echo $?;
| done

| ./aarch64-linux-gnu/lib64/libm-2.31.9000.so
| 0
| ./arm-linux-gnueabi/lib/libm-2.31.9000.so
| 0
| ./x86_64-linux-gnu/lib64/libm-2.31.9000.so
| 0
| ./arm-linux-gnueabihf/lib/libm-2.31.9000.so
| 0
| ./riscv64-linux-gnu-rv64imac-lp64/lib64/lp64/libm-2.31.9000.so
| 0
| ./riscv64-linux-gnu-rv64imafdc-lp64/lib64/lp64/libm-2.31.9000.so
| 0
| ./powerpc-linux-gnu/lib/libm-2.31.9000.so
| 0
| ./microblaze-linux-gnu/lib/libm-2.31.9000.so
| 0
| ./nios2-linux-gnu/lib/libm-2.31.9000.so
| 0
| ./hppa-linux-gnu/lib/libm-2.31.9000.so
| 0
| ./s390x-linux-gnu/lib64/libm-2.31.9000.so

[1] https://sourceware.org/pipermail/libc-alpha/2019-November/108267.html
2020-06-15 13:09:21 -07:00
..
wordsize-64 Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
asincos.tbl Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
atnat2.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
atnat.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
branred.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
branred.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dbl2mpn.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dla.h ieee754/dbl-64: Reduce the scope of temporary storage variables 2020-06-15 13:09:21 -07:00
doasin.c ieee754/dbl-64: Reduce the scope of temporary storage variables 2020-06-15 13:09:21 -07:00
doasin.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
dosincos.c ieee754/dbl-64: Reduce the scope of temporary storage variables 2020-06-15 13:09:21 -07:00
dosincos.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
e_acos.c
e_acosh.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_asin.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_atan2.c ieee754/dbl-64: Reduce the scope of temporary storage variables 2020-06-15 13:09:21 -07:00
e_atanh.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_cosh.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_exp2.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_exp10.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_exp_data.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
e_exp.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_fmod.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_gamma_r.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_hypot.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_ilogb.c
e_j0.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_j1.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_jn.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_lgamma_r.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_log2_data.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
e_log2.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_log10.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_log_data.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
e_log.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_pow_log_data.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
e_pow.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_remainder.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_sinh.c Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
e_sqrt.c ieee754/dbl-64: Reduce the scope of temporary storage variables 2020-06-15 13:09:21 -07:00
gamma_product.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
gamma_productf.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
k_rem_pio2.c Fix a few typos in comments 2019-01-12 13:44:51 +00:00
k_tan.c
lgamma_neg.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
lgamma_product.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
Makefile Add new pow implementation 2018-09-19 10:04:51 +01:00
math_config.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
math_err.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
MathLib.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mpa-arch.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mpa.c Fix maybe-uninitialized error on powerpc 2020-01-17 21:02:13 -03:00
mpa.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mpatan2.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mpatan.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mpatan.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mpn2dbl.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mpsqrt.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mpsqrt.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mptan.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mydefs.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
powtwo.tbl Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
root.tbl Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_asinh.c Use copysign functions not __copysign functions in glibc libm. 2018-09-27 20:04:48 +00:00
s_atan.c ieee754/dbl-64: Reduce the scope of temporary storage variables 2020-06-15 13:09:21 -07:00
s_cbrt.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_ceil.c Use GCC builtins for ceil functions if desired. 2019-12-11 15:12:17 +01:00
s_copysign.c Use GCC builtins for copysign functions if desired. 2019-12-11 15:12:19 +01:00
s_cos.c
s_erf.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
s_expm1.c Do not include math-barriers.h in math_private.h. 2018-05-11 15:11:38 +00:00
s_f32xaddf64.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_f32xdivf64.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_f32xmulf64.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_f32xsubf64.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_fabs.c Use libm_alias_double for some dbl-64 functions. 2017-09-29 23:54:33 +00:00
s_fadd.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_fdiv.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_finite.c math: Use wordsize-64 version for finite 2019-06-12 14:32:39 -03:00
s_floor.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_fma.c ieee754: provide gcc builtins based generic fma functions 2020-06-03 10:23:28 -07:00
s_fmaf.c ieee754: provide gcc builtins based generic fma functions 2020-06-03 10:23:28 -07:00
s_fmul.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_fpclassify.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_frexp.c Use libm_alias_double for dbl-64 frexp. 2017-10-03 20:56:46 +00:00
s_fromfp_main.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_fromfp.c Use libm_alias_double for some dbl-64 functions. 2017-09-29 23:54:33 +00:00
s_fromfpx.c Use libm_alias_double for some dbl-64 functions. 2017-09-29 23:54:33 +00:00
s_fsub.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_getpayload.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_isinf.c math: Use wordsize-64 version for isinf 2019-06-12 14:32:39 -03:00
s_isnan.c math: Use wordsize-64 version for isnan 2019-06-12 14:32:18 -03:00
s_issignaling.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_llrint.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_llround.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_log1p.c Do not include math-barriers.h in math_private.h. 2018-05-11 15:11:38 +00:00
s_logb.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_lrint.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_lround.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_modf.c Use libm_alias_double for dbl-64 modf. 2017-10-03 23:46:23 +00:00
s_nearbyint.c Use GCC builtins for nearbyint functions if desired. 2019-12-11 15:12:15 +01:00
s_nexttoward.c
s_nextup.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_remquo.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_rint.c Use GCC builtins for rint functions if desired. 2019-12-11 15:12:16 +01:00
s_round.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_roundeven.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_scalbln.c Use copysign functions not __copysign functions in glibc libm. 2018-09-27 20:04:48 +00:00
s_scalbn.c Use copysign functions not __copysign functions in glibc libm. 2018-09-27 20:04:48 +00:00
s_setpayload_main.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_setpayload.c Use libm_alias_double for some dbl-64 functions. 2017-09-29 23:54:33 +00:00
s_setpayloadsig.c Use libm_alias_double for some dbl-64 functions. 2017-09-29 23:54:33 +00:00
s_signbit.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_sin.c Remove a comment claiming that sin/cos round correctly. 2020-02-07 17:15:37 +00:00
s_sincos.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_tan.c ieee754/dbl-64: Reduce the scope of temporary storage variables 2020-06-15 13:09:21 -07:00
s_tanh.c Move math_check_force_underflow macros to separate math-underflow.h. 2018-05-10 00:53:04 +00:00
s_totalorder.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_totalordermag.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_trunc.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
s_ufromfp.c Use libm_alias_double for some dbl-64 functions. 2017-09-29 23:54:33 +00:00
s_ufromfpx.c Use libm_alias_double for some dbl-64 functions. 2017-09-29 23:54:33 +00:00
sincos32.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
sincos32.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
sincostab.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
uasncs.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
uatan.tbl Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
urem.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
usncs.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
utan.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
utan.tbl Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
w_exp2.c Remove the error handling wrapper from exp and exp2 2018-11-21 09:55:02 +00:00
w_exp.c Remove the error handling wrapper from exp and exp2 2018-11-21 09:55:02 +00:00
w_log2.c Remove the error handling wrapper from log2 2018-11-21 09:57:21 +00:00
w_log.c Remove the error handling wrapper from log 2018-11-21 09:56:27 +00:00
w_pow.c Remove the error handling wrapper from pow 2018-11-21 09:58:36 +00:00
x2y2m1.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
x2y2m1f.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00