This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH v4 3/3] Cleanup __ieee754_sqrt(f/l)
On Thu, 15 Mar 2018, Wilco Dijkstra wrote:
> Finally remove the now unused target specific__ieee754_sqrt(f/l) inlines.
OK. To be clear:
> * sysdeps/generic/math-type-macros.h (M_SQRT): Use __builtin_sqrt(f).
This ChangeLog entry isn't correct, it's sqrt not __builtin_sqrt that is
used after the patch. (And actually this particular change is logically
like the ones in patch 2 - it's one of the changes that causes
__ieee754_sqrt to be unused by arranging for direct use of sqrt, rather
than one removing an inline that is now unused.)
Also, for the commit message: the removals from
sysdeps/sparc/fpu/bits/mathinline.h include removals of
user-visible-for-old-GCC sqrt inlines. Removing those is desirable, under
the general principle of leaving such inlining to the compiler rather than
trying to do it in installed headers, especially when only very old
compilers are affected, but it's logically separate from changing how
things are built inside glibc.
Also: I believe this change would slightly pessimize calls to the
out-of-line sqrt function wrappers in the case where __ieee754_sqrt would
previously have been inlined in those wrappers but now those inlines are
being removed. I consider that explicitly OK, because on such
architectures the compiler should have inlined sqrt calls (even with
-fmath-error, GCC generates code that uses the sqrt instruction and only
calls the out-of-line function when needed to set errno - so on such
architectures, the out-of-line function should normally never be called
except for negative input, which is not what we care about optimizing).
--
Joseph S. Myers
joseph@codesourcery.com