This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: weird optimization in sin+cos, x86 backend
On Fri, 10 Feb 2012, Geert Bosch wrote:
> Right. I even understand where he is coming from. Adding new interfaces
> is indeed a big deal as they'll pretty much have to stay around forever.
And: even if the interface is a known, public, standard, stable interface,
glibc may still not be the right place.
Consider the ISO 24747 special mathematical functions. This is an
extension to ISO C (there's a similar extension to C++ with the functions
that were in TR1). No doubt implementations would be useful to some
people, though I haven't heard of any interest in implementing them for
the GNU system, and a good implementation (care about error bounds and
performance etc.) would be a lot of work. (There is an implementation of
the TR1 versions in libstdc++. It doesn't have anything much in the way
of error or performance bounds - it's a generic implementation without
precomputed tables, that can involve very long loops calling other
functions with such long loops in some cases, and I expect various
precomputed tables would be involved in getting particularly good error
bounds and performance - but I think simply implementing the functions at
all involved a lot of work.)
But if you implemented the functions in libm in a fast, accurate way, then
suddenly all the code is loaded into everything that uses shared libm, and
hardly any such programs actually need these functions - cf. the argument
for avoiding decimal floating-point support in shared libc or libgcc when
hardly any typical GNU/Linux programs are using that. As a well-defined
set of functions a separate shared library probably makes more sense.
And given that nothing else in glibc depends on them, there's no need for
such a library to be part of the glibc project, which may as well keep a
narrower focus. (Bits of libc *do* depend on a few bits of functionality
from libm, which get built into libc as well; some things such as rounding
mode support and separating numbers into mantissa and exponent are
relevant for libc functionality such as printf and strtod.)
--
Joseph S. Myers
joseph@codesourcery.com
- References:
- weird optimization in sin+cos, x86 backend
- From: Konstantin Vladimirov
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend
- From: James Courtier-Dutton
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend
- Re: weird optimization in sin+cos, x86 backend