This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] improves exp() and expf() performance on Sparc.
- From: Joseph Myers <joseph at codesourcery dot com>
- To: Patrick McGehearty <patrick dot mcgehearty at oracle dot com>
- Cc: <libc-alpha at sourceware dot org>
- Date: Fri, 1 Sep 2017 23:13:52 +0000
- Subject: Re: [PATCH] improves exp() and expf() performance on Sparc.
- Authentication-results: sourceware.org; auth=none
- References: <1504306749-46787-1-git-send-email-patrick.mcgehearty@oracle.com>
You're defining ifuncs for exp and expf (rather than __ieee754_exp,
__exp_finite etc. as on x86_64). But you're not doing anything to stop
the w_exp_compat / w_expf_compat wrappers from being built that also
define exp and expf, so I don't see how that can work without ending up
with multiple definitions of exp and expf; I'd expect you to need to
override the wrappers with empty files in such a case of a function
implementation with all the error handling integrated.
I'm also concerned that you have local matherr handling which is not
compatible with all the cases in __kernel_standard (which are not well
tested). If you need to have your own integrated error handling for
performance reasons, matherr handling should be bug-compatible with the
existing code, for both overflow and underflow. (Or define a new symbol
version, make the existing exp and expf into compat symbols for SPARC and
then your new version only needs to handle errno setting, not matherr.)
--
Joseph S. Myers
joseph@codesourcery.com