This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCHv2 00/11] Generate Complex functions from a common template.


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]