[PATCH] improves exp() and expf() performance on Sparc.
Joseph Myers
joseph@codesourcery.com
Fri Sep 1 23:14:00 GMT 2017
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
More information about the Libc-alpha
mailing list