This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCHv2 00/11] Generate Complex functions from a common template.
- From: "Paul E. Murphy" <murphyp at linux dot vnet dot ibm dot com>
- To: libc-alpha at sourceware dot org
- Date: Fri, 1 Jul 2016 15:13:57 -0500
- Subject: [PATCHv2 00/11] Generate Complex functions from a common template.
- Authentication-results: sourceware.org; auth=none
- References: <cover dot 1467323999 dot git dot murphyp at linux dot vnet dot ibm dot com>
This is the second spin of the patch set based on
feedback.
Primarily, it is cleanup to remove M_LIT (X.0) where
X is a small integer, and use integer constants when
possible. Likewise, fixing comments mangled when
converted.
Secondly, I have inserted a patch to unify the drift
between the ccosh* and csinh* variants as suggested
by Joseph.
Finally, I have inserted an extra patch before each
major refactoring to explicitly copy the file which
will be transformed into the template. These changes
do not break anything, but simplify the diff in the
patch following them.
Again, I have run each patch through arm, alpha,
x86-64, ppc64, and m68k builds. I have compared the
objdump and nm output of new object files with their
replacements to verify no changes to code generation
have occured after each patch, using the unification
patch as the base.
The diffstat is a bit more accurate about the amount
of cleanup occuring with this patchset.
Paul E. Murphy (11):
Refactor part of math Makefile
Unify drift between _Complex function type variants
Support for type-generic libm function implementations libm
Prepare to convert _Complex cosine functions
Convert _Complex cosine functions to generated code
Prepare to convert _Complex sine functions
Convert _Complex sine functions to generated code
Prepare to convert _Complex tangent functions
Convert _Complex tangent functions to generated code
Prepare to convert remaining _Complex functions
Convert remaining complex function to generated files
Makeconfig | 2 +-
math/Makefile | 176 ++++++++++++------
math/{s_cpow.c => b_cabs.c} | 18 +-
math/{s_cacosf.c => b_cacos.c} | 27 +--
math/{s_cacosh.c => b_cacosh.c} | 50 +++---
math/{s_cpowf.c => b_carg.c} | 16 +-
math/{s_casinf.c => b_casin.c} | 29 +--
math/{s_casinhf.c => b_casinh.c} | 35 ++--
math/b_catan.c | 145 +++++++++++++++
math/b_catanh.c | 140 +++++++++++++++
math/{s_ccosf.c => b_ccos.c} | 18 +-
math/{s_ccosh.c => b_ccosh.c} | 77 ++++----
math/{s_cexpf.c => b_cexp.c} | 64 +++----
math/{cimag.c => b_cimag.c} | 15 +-
math/{s_clogf.c => b_clog.c} | 83 ++++-----
math/b_clog10.c | 143 +++++++++++++++
math/{conjf.c => b_conj.c} | 13 +-
math/{carg.c => b_cpow.c} | 17 +-
math/{s_cprojf.c => b_cproj.c} | 17 +-
math/{creal.c => b_creal.c} | 15 +-
math/{s_csinf.c => b_csin.c} | 77 ++++----
math/{s_csinh.c => b_csinh.c} | 79 ++++----
math/{s_csqrtf.c => b_csqrt.c} | 103 +++++------
math/{s_ctanf.c => b_ctan.c} | 67 +++----
math/{s_ctanhf.c => b_ctanh.c} | 67 +++----
math/b_k_casinh.c | 211 ++++++++++++++++++++++
math/cabs.c | 32 ----
math/cabsf.c | 28 ---
math/cabsl.c | 28 ---
math/cargf.c | 28 ---
math/cargl.c | 28 ---
math/cimagf.c | 27 ---
math/cimagl.c | 27 ---
math/conj.c | 31 ----
math/conjl.c | 27 ---
math/crealf.c | 27 ---
math/creall.c | 27 ---
math/k_casinh.c | 210 ----------------------
math/k_casinhf.c | 212 ----------------------
math/k_casinhl.c | 219 -----------------------
math/s_cacos.c | 58 ------
math/s_cacoshf.c | 92 ----------
math/s_cacoshl.c | 90 ----------
math/s_cacosl.c | 54 ------
math/s_casin.c | 66 -------
math/s_casinh.c | 73 --------
math/s_casinhl.c | 69 -------
math/s_casinl.c | 62 -------
math/s_catan.c | 143 ---------------
math/s_catanf.c | 143 ---------------
math/s_catanh.c | 137 --------------
math/s_catanhf.c | 137 --------------
math/s_catanhl.c | 141 ---------------
math/s_catanl.c | 147 ---------------
math/s_ccos.c | 40 -----
math/s_ccoshf.c | 147 ---------------
math/s_ccoshl.c | 143 ---------------
math/s_ccosl.c | 36 ----
math/s_cexp.c | 157 ----------------
math/s_cexpl.c | 153 ----------------
math/s_clog.c | 118 ------------
math/s_clog10.c | 124 -------------
math/s_clog10f.c | 122 -------------
math/s_clog10l.c | 127 -------------
math/s_clogl.c | 121 -------------
math/s_cpowl.c | 29 ---
math/s_cproj.c | 44 -----
math/s_cprojl.c | 40 -----
math/s_csin.c | 171 ------------------
math/s_csinhf.c | 166 -----------------
math/s_csinhl.c | 164 -----------------
math/s_csinl.c | 167 -----------------
math/s_csqrt.c | 165 -----------------
math/s_csqrtl.c | 161 -----------------
math/s_ctan.c | 129 -------------
math/s_ctanh.c | 129 -------------
math/s_ctanhl.c | 132 --------------
math/s_ctanl.c | 132 --------------
math/{test-ildoubl.c => test-ildouble.c} | 0
scripts/sysd-rules.awk | 5 +-
sysdeps/alpha/fpu/Makefile | 10 ++
sysdeps/alpha/fpu/s_cacosf.c | 12 +-
sysdeps/alpha/fpu/s_cacoshf.c | 11 +-
sysdeps/alpha/fpu/s_casinf.c | 13 +-
sysdeps/alpha/fpu/s_casinhf.c | 13 +-
sysdeps/alpha/fpu/s_catanf.c | 13 +-
sysdeps/alpha/fpu/s_catanhf.c | 13 +-
sysdeps/alpha/fpu/s_ccosf.c | 13 +-
sysdeps/alpha/fpu/s_ccoshf.c | 13 +-
sysdeps/alpha/fpu/s_cexpf.c | 13 +-
sysdeps/alpha/fpu/s_clog10f.c | 15 +-
sysdeps/alpha/fpu/s_clogf.c | 13 +-
sysdeps/alpha/fpu/s_cpowf.c | 13 +-
sysdeps/alpha/fpu/s_cprojf.c | 13 +-
sysdeps/alpha/fpu/s_csinf.c | 13 +-
sysdeps/alpha/fpu/s_csinhf.c | 13 +-
sysdeps/alpha/fpu/s_csqrtf.c | 13 +-
sysdeps/alpha/fpu/s_ctanf.c | 13 +-
sysdeps/alpha/fpu/s_ctanhf.c | 13 +-
sysdeps/generic/math-type-macros.h | 159 ++++++++++++++++
sysdeps/ieee754/Makeconfig | 6 +
sysdeps/ieee754/ldbl-opt/cabs.c | 6 -
sysdeps/ieee754/ldbl-opt/cabsl.c | 6 -
sysdeps/ieee754/ldbl-opt/carg.c | 6 -
sysdeps/ieee754/ldbl-opt/cargl.c | 6 -
sysdeps/ieee754/ldbl-opt/cimag.c | 6 -
sysdeps/ieee754/ldbl-opt/cimagl.c | 6 -
sysdeps/ieee754/ldbl-opt/conj.c | 6 -
sysdeps/ieee754/ldbl-opt/conjl.c | 6 -
sysdeps/ieee754/ldbl-opt/creal.c | 6 -
sysdeps/ieee754/ldbl-opt/creall.c | 6 -
sysdeps/ieee754/ldbl-opt/math-type-macros.h | 30 ++++
sysdeps/ieee754/ldbl-opt/s_cacos.c | 6 -
sysdeps/ieee754/ldbl-opt/s_cacosh.c | 6 -
sysdeps/ieee754/ldbl-opt/s_cacoshl.c | 6 -
sysdeps/ieee754/ldbl-opt/s_cacosl.c | 6 -
sysdeps/ieee754/ldbl-opt/s_casin.c | 6 -
sysdeps/ieee754/ldbl-opt/s_casinh.c | 6 -
sysdeps/ieee754/ldbl-opt/s_casinhl.c | 6 -
sysdeps/ieee754/ldbl-opt/s_casinl.c | 6 -
sysdeps/ieee754/ldbl-opt/s_catan.c | 6 -
sysdeps/ieee754/ldbl-opt/s_catanh.c | 6 -
sysdeps/ieee754/ldbl-opt/s_catanhl.c | 6 -
sysdeps/ieee754/ldbl-opt/s_catanl.c | 6 -
sysdeps/ieee754/ldbl-opt/s_ccos.c | 6 -
sysdeps/ieee754/ldbl-opt/s_ccosh.c | 6 -
sysdeps/ieee754/ldbl-opt/s_ccoshl.c | 6 -
sysdeps/ieee754/ldbl-opt/s_ccosl.c | 6 -
sysdeps/ieee754/ldbl-opt/s_cexp.c | 6 -
sysdeps/ieee754/ldbl-opt/s_cexpl.c | 6 -
sysdeps/ieee754/ldbl-opt/s_clog.c | 6 -
sysdeps/ieee754/ldbl-opt/s_clog10.c | 7 -
sysdeps/ieee754/ldbl-opt/s_clog10l.c | 10 --
sysdeps/ieee754/ldbl-opt/s_clogl.c | 6 -
sysdeps/ieee754/ldbl-opt/s_cpow.c | 6 -
sysdeps/ieee754/ldbl-opt/s_cpowl.c | 6 -
sysdeps/ieee754/ldbl-opt/s_cproj.c | 6 -
sysdeps/ieee754/ldbl-opt/s_cprojl.c | 6 -
sysdeps/ieee754/ldbl-opt/s_csin.c | 6 -
sysdeps/ieee754/ldbl-opt/s_csinh.c | 6 -
sysdeps/ieee754/ldbl-opt/s_csinhl.c | 6 -
sysdeps/ieee754/ldbl-opt/s_csinl.c | 6 -
sysdeps/ieee754/ldbl-opt/s_csqrt.c | 6 -
sysdeps/ieee754/ldbl-opt/s_csqrtl.c | 6 -
sysdeps/ieee754/ldbl-opt/s_ctan.c | 6 -
sysdeps/ieee754/ldbl-opt/s_ctanh.c | 6 -
sysdeps/ieee754/ldbl-opt/s_ctanhl.c | 6 -
sysdeps/ieee754/ldbl-opt/s_ctanl.c | 6 -
sysdeps/m68k/m680x0/fpu/{s_ccosh.c => b_ccosh.c} | 18 +-
sysdeps/m68k/m680x0/fpu/{s_cexp.c => b_cexp.c} | 15 +-
sysdeps/m68k/m680x0/fpu/{s_csin.c => b_csin.c} | 18 +-
sysdeps/m68k/m680x0/fpu/{s_csinh.c => b_csinh.c} | 17 +-
sysdeps/m68k/m680x0/fpu/s_ccoshf.c | 3 -
sysdeps/m68k/m680x0/fpu/s_ccoshl.c | 3 -
sysdeps/m68k/m680x0/fpu/s_cexpf.c | 3 -
sysdeps/m68k/m680x0/fpu/s_cexpl.c | 3 -
sysdeps/m68k/m680x0/fpu/s_csinf.c | 3 -
sysdeps/m68k/m680x0/fpu/s_csinhf.c | 3 -
sysdeps/m68k/m680x0/fpu/s_csinhl.c | 3 -
sysdeps/m68k/m680x0/fpu/s_csinl.c | 3 -
160 files changed, 1619 insertions(+), 6181 deletions(-)
rename math/{s_cpow.c => b_cabs.c} (78%)
rename math/{s_cacosf.c => b_cacos.c} (76%)
rename math/{s_cacosh.c => b_cacosh.c} (65%)
rename math/{s_cpowf.c => b_carg.c} (79%)
rename math/{s_casinf.c => b_casin.c} (75%)
rename math/{s_casinhf.c => b_casinh.c} (70%)
create mode 100644 math/b_catan.c
create mode 100644 math/b_catanh.c
rename math/{s_ccosf.c => b_ccos.c} (81%)
rename math/{s_ccosh.c => b_ccosh.c} (59%)
rename math/{s_cexpf.c => b_cexp.c} (69%)
rename math/{cimag.c => b_cimag.c} (82%)
rename math/{s_clogf.c => b_clog.c} (51%)
create mode 100644 math/b_clog10.c
rename math/{conjf.c => b_conj.c} (81%)
rename math/{carg.c => b_cpow.c} (78%)
rename math/{s_cprojf.c => b_cproj.c} (78%)
rename math/{creal.c => b_creal.c} (82%)
rename math/{s_csinf.c => b_csin.c} (65%)
rename math/{s_csinh.c => b_csinh.c} (62%)
rename math/{s_csqrtf.c => b_csqrt.c} (51%)
rename math/{s_ctanf.c => b_ctan.c} (64%)
rename math/{s_ctanhf.c => b_ctanh.c} (64%)
create mode 100644 math/b_k_casinh.c
delete mode 100644 math/cabs.c
delete mode 100644 math/cabsf.c
delete mode 100644 math/cabsl.c
delete mode 100644 math/cargf.c
delete mode 100644 math/cargl.c
delete mode 100644 math/cimagf.c
delete mode 100644 math/cimagl.c
delete mode 100644 math/conj.c
delete mode 100644 math/conjl.c
delete mode 100644 math/crealf.c
delete mode 100644 math/creall.c
delete mode 100644 math/k_casinh.c
delete mode 100644 math/k_casinhf.c
delete mode 100644 math/k_casinhl.c
delete mode 100644 math/s_cacos.c
delete mode 100644 math/s_cacoshf.c
delete mode 100644 math/s_cacoshl.c
delete mode 100644 math/s_cacosl.c
delete mode 100644 math/s_casin.c
delete mode 100644 math/s_casinh.c
delete mode 100644 math/s_casinhl.c
delete mode 100644 math/s_casinl.c
delete mode 100644 math/s_catan.c
delete mode 100644 math/s_catanf.c
delete mode 100644 math/s_catanh.c
delete mode 100644 math/s_catanhf.c
delete mode 100644 math/s_catanhl.c
delete mode 100644 math/s_catanl.c
delete mode 100644 math/s_ccos.c
delete mode 100644 math/s_ccoshf.c
delete mode 100644 math/s_ccoshl.c
delete mode 100644 math/s_ccosl.c
delete mode 100644 math/s_cexp.c
delete mode 100644 math/s_cexpl.c
delete mode 100644 math/s_clog.c
delete mode 100644 math/s_clog10.c
delete mode 100644 math/s_clog10f.c
delete mode 100644 math/s_clog10l.c
delete mode 100644 math/s_clogl.c
delete mode 100644 math/s_cpowl.c
delete mode 100644 math/s_cproj.c
delete mode 100644 math/s_cprojl.c
delete mode 100644 math/s_csin.c
delete mode 100644 math/s_csinhf.c
delete mode 100644 math/s_csinhl.c
delete mode 100644 math/s_csinl.c
delete mode 100644 math/s_csqrt.c
delete mode 100644 math/s_csqrtl.c
delete mode 100644 math/s_ctan.c
delete mode 100644 math/s_ctanh.c
delete mode 100644 math/s_ctanhl.c
delete mode 100644 math/s_ctanl.c
rename math/{test-ildoubl.c => test-ildouble.c} (100%)
create mode 100644 sysdeps/alpha/fpu/Makefile
create mode 100644 sysdeps/generic/math-type-macros.h
create mode 100644 sysdeps/ieee754/Makeconfig
delete mode 100644 sysdeps/ieee754/ldbl-opt/cabs.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/cabsl.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/carg.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/cargl.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/cimag.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/cimagl.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/conj.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/conjl.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/creal.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/creall.c
create mode 100644 sysdeps/ieee754/ldbl-opt/math-type-macros.h
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_cacos.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_cacosh.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_cacoshl.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_cacosl.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_casin.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_casinh.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_casinhl.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_casinl.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_catan.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_catanh.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_catanhl.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_catanl.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_ccos.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_ccosh.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_ccoshl.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_ccosl.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_cexp.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_cexpl.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_clog.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_clog10.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_clog10l.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_clogl.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_cpow.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_cpowl.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_cproj.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_cprojl.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_csin.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_csinh.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_csinhl.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_csinl.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_csqrt.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_csqrtl.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_ctan.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_ctanh.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_ctanhl.c
delete mode 100644 sysdeps/ieee754/ldbl-opt/s_ctanl.c
rename sysdeps/m68k/m680x0/fpu/{s_ccosh.c => b_ccosh.c} (87%)
rename sysdeps/m68k/m680x0/fpu/{s_cexp.c => b_cexp.c} (94%)
rename sysdeps/m68k/m680x0/fpu/{s_csin.c => b_csin.c} (86%)
rename sysdeps/m68k/m680x0/fpu/{s_csinh.c => b_csinh.c} (88%)
delete mode 100644 sysdeps/m68k/m680x0/fpu/s_ccoshf.c
delete mode 100644 sysdeps/m68k/m680x0/fpu/s_ccoshl.c
delete mode 100644 sysdeps/m68k/m680x0/fpu/s_cexpf.c
delete mode 100644 sysdeps/m68k/m680x0/fpu/s_cexpl.c
delete mode 100644 sysdeps/m68k/m680x0/fpu/s_csinf.c
delete mode 100644 sysdeps/m68k/m680x0/fpu/s_csinhf.c
delete mode 100644 sysdeps/m68k/m680x0/fpu/s_csinhl.c
delete mode 100644 sysdeps/m68k/m680x0/fpu/s_csinl.c
--
2.4.11