mirror of git://sourceware.org/git/glibc.git
math: Remove the SVID error handling from log10f
It improves latency for about 3-10% and throughput for about 5-10%. Tested on x86_64-linux-gnu and i686-linux-gnu. Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
This commit is contained in:
parent
6deadd4eb6
commit
0b484d7b77
|
|
@ -686,4 +686,8 @@ libm {
|
|||
rootnf64x; rootnf128;
|
||||
rsqrtf64x; rsqrtf128;
|
||||
}
|
||||
GLIBC_2.43 {
|
||||
# No SVID compatible error handling.
|
||||
log10f;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,10 +22,10 @@
|
|||
#include <libm-alias-float.h>
|
||||
|
||||
|
||||
#if LIBM_SVID_COMPAT
|
||||
#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_43)
|
||||
/* wrapper log10f(x) */
|
||||
float
|
||||
__log10f (float x)
|
||||
__log10_compatf (float x)
|
||||
{
|
||||
if (__builtin_expect (islessequal (x, 0.0f), 0) && _LIB_VERSION != _IEEE_)
|
||||
{
|
||||
|
|
@ -43,5 +43,9 @@ __log10f (float x)
|
|||
|
||||
return __ieee754_log10f (x);
|
||||
}
|
||||
libm_alias_float (__log10, log10)
|
||||
# ifdef NO_COMPAT_NEEDED
|
||||
libm_alias_float (__log10_compat, log10)
|
||||
# else
|
||||
compat_symbol (libm, __log10_compatf, log10f, GLIBC_2_0);
|
||||
# endif
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -27,6 +27,8 @@ SOFTWARE.
|
|||
#include <math.h>
|
||||
#include <stdint.h>
|
||||
#include <libm-alias-finite.h>
|
||||
#include <libm-alias-float.h>
|
||||
#include <math-svid-compat.h>
|
||||
#include "math_config.h"
|
||||
|
||||
static __attribute__ ((noinline)) float
|
||||
|
|
@ -45,7 +47,7 @@ as_special (float x)
|
|||
}
|
||||
|
||||
float
|
||||
__ieee754_log10f (float x)
|
||||
__log10f (float x)
|
||||
{
|
||||
static const double tr[] =
|
||||
{
|
||||
|
|
@ -158,4 +160,11 @@ __ieee754_log10f (float x)
|
|||
}
|
||||
return ub;
|
||||
}
|
||||
strong_alias (__log10f, __ieee754_log10f)
|
||||
#if LIBM_SVID_COMPAT
|
||||
versioned_symbol (libm, __log10f, log10f, GLIBC_2_43);
|
||||
libm_alias_float_other (__log10, log10)
|
||||
#else
|
||||
libm_alias_float (__log10, log10)
|
||||
#endif
|
||||
libm_alias_finite (__ieee754_log10f, __log10f)
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
/* Not needed. */
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
/* m68k provides an optimized __ieee754_log10f. */
|
||||
#ifdef SHARED
|
||||
# define NO_COMPAT_NEEDED 1
|
||||
# include <math/w_log10f_compat.c>
|
||||
#else
|
||||
# include <math-type-macros-float.h>
|
||||
# include <w_log10_template.c>
|
||||
#endif
|
||||
|
|
@ -1319,3 +1319,4 @@ GLIBC_2.42 rsqrtf64x F
|
|||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 fmod F
|
||||
GLIBC_2.43 fmodf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
|
|
@ -1285,3 +1285,4 @@ GLIBC_2.42 rsqrtf32x F
|
|||
GLIBC_2.42 rsqrtf64 F
|
||||
GLIBC_2.42 rsqrtf64x F
|
||||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
|
|
@ -1444,3 +1444,4 @@ GLIBC_2.42 rsqrtf32x F
|
|||
GLIBC_2.42 rsqrtf64 F
|
||||
GLIBC_2.42 rsqrtf64x F
|
||||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
|
|
@ -950,3 +950,4 @@ GLIBC_2.42 rsqrtf32 F
|
|||
GLIBC_2.42 rsqrtf32x F
|
||||
GLIBC_2.42 rsqrtf64 F
|
||||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
|
|
@ -950,3 +950,4 @@ GLIBC_2.42 rsqrtf32 F
|
|||
GLIBC_2.42 rsqrtf32x F
|
||||
GLIBC_2.42 rsqrtf64 F
|
||||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
|
|
@ -950,3 +950,4 @@ GLIBC_2.42 rsqrtf32 F
|
|||
GLIBC_2.42 rsqrtf32x F
|
||||
GLIBC_2.42 rsqrtf64 F
|
||||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
|
|
@ -1326,3 +1326,4 @@ GLIBC_2.42 rsqrtf64x F
|
|||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 fmod F
|
||||
GLIBC_2.43 fmodf F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
|
|
@ -950,3 +950,4 @@ GLIBC_2.42 rsqrtf32 F
|
|||
GLIBC_2.42 rsqrtf32x F
|
||||
GLIBC_2.42 rsqrtf64 F
|
||||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
|
|
@ -950,3 +950,4 @@ GLIBC_2.42 rsqrtf32 F
|
|||
GLIBC_2.42 rsqrtf32x F
|
||||
GLIBC_2.42 rsqrtf64 F
|
||||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
|
|
@ -950,3 +950,4 @@ GLIBC_2.42 rsqrtf32 F
|
|||
GLIBC_2.42 rsqrtf32x F
|
||||
GLIBC_2.42 rsqrtf64 F
|
||||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
|
|
@ -950,3 +950,4 @@ GLIBC_2.42 rsqrtf32 F
|
|||
GLIBC_2.42 rsqrtf32x F
|
||||
GLIBC_2.42 rsqrtf64 F
|
||||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
|
|
@ -1285,3 +1285,4 @@ GLIBC_2.42 rsqrtf32x F
|
|||
GLIBC_2.42 rsqrtf64 F
|
||||
GLIBC_2.42 rsqrtf64x F
|
||||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
|
|
@ -1097,3 +1097,4 @@ GLIBC_2.42 rsqrtf32 F
|
|||
GLIBC_2.42 rsqrtf32x F
|
||||
GLIBC_2.42 rsqrtf64 F
|
||||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
|
|
@ -1096,3 +1096,4 @@ GLIBC_2.42 rsqrtf32 F
|
|||
GLIBC_2.42 rsqrtf32x F
|
||||
GLIBC_2.42 rsqrtf64 F
|
||||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
|
|
@ -1090,3 +1090,4 @@ GLIBC_2.42 rsqrtf32 F
|
|||
GLIBC_2.42 rsqrtf32x F
|
||||
GLIBC_2.42 rsqrtf64 F
|
||||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
|
|
@ -1474,3 +1474,4 @@ GLIBC_2.42 rsqrtf32x F
|
|||
GLIBC_2.42 rsqrtf64 F
|
||||
GLIBC_2.42 rsqrtf64x F
|
||||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
|
|
@ -1388,3 +1388,4 @@ GLIBC_2.42 rsqrtf32x F
|
|||
GLIBC_2.42 rsqrtf64 F
|
||||
GLIBC_2.42 rsqrtf64x F
|
||||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
|
|
@ -1388,3 +1388,4 @@ GLIBC_2.42 rsqrtf32x F
|
|||
GLIBC_2.42 rsqrtf64 F
|
||||
GLIBC_2.42 rsqrtf64x F
|
||||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
|
|
@ -950,3 +950,4 @@ GLIBC_2.42 rsqrtf32 F
|
|||
GLIBC_2.42 rsqrtf32x F
|
||||
GLIBC_2.42 rsqrtf64 F
|
||||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
|
|
@ -950,3 +950,4 @@ GLIBC_2.42 rsqrtf32 F
|
|||
GLIBC_2.42 rsqrtf32x F
|
||||
GLIBC_2.42 rsqrtf64 F
|
||||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
|
|
@ -1395,3 +1395,4 @@ GLIBC_2.42 rsqrtf32x F
|
|||
GLIBC_2.42 rsqrtf64 F
|
||||
GLIBC_2.42 rsqrtf64x F
|
||||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
|
|
@ -1285,3 +1285,4 @@ GLIBC_2.42 rsqrtf32x F
|
|||
GLIBC_2.42 rsqrtf64 F
|
||||
GLIBC_2.42 rsqrtf64x F
|
||||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
|
|
@ -1318,3 +1318,4 @@ GLIBC_2.42 rsqrtf32x F
|
|||
GLIBC_2.42 rsqrtf64 F
|
||||
GLIBC_2.42 rsqrtf64x F
|
||||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
|
|
@ -1318,3 +1318,4 @@ GLIBC_2.42 rsqrtf32x F
|
|||
GLIBC_2.42 rsqrtf64 F
|
||||
GLIBC_2.42 rsqrtf64x F
|
||||
GLIBC_2.42 rsqrtl F
|
||||
GLIBC_2.43 log10f F
|
||||
|
|
|
|||
Loading…
Reference in New Issue