This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Gcc builtin review: isinf, insnan ...
- From: Joseph Myers <joseph at codesourcery dot com>
- To: Ondřej Bílka <neleai at seznam dot cz>
- Cc: Wilco Dijkstra <wdijkstr at arm dot com>, <libc-alpha at sourceware dot org>, <pinskia at gmail dot com>
- Date: Fri, 29 May 2015 13:25:44 +0000
- Subject: Re: Gcc builtin review: isinf, insnan ...
- Authentication-results: sourceware.org; auth=none
- References: <A610E03AD50BFC4D95529A36D37FA55E769AD3FAC3 at GEORGE dot Emea dot Arm dot com> <000e01d0988d$686514d0$392f3e70$ at com> <alpine dot DEB dot 2 dot 10 dot 1505281736460 dot 16930 at digraph dot polyomino dot org dot uk> <20150529115936 dot GA22184 at domone>
On Fri, 29 May 2015, Ondřej Bílka wrote:
> On Thu, May 28, 2015 at 05:49:05PM +0000, Joseph Myers wrote:
> > On Wed, 27 May 2015, Wilco Dijkstra wrote:
> >
> > It's not obvious that integer arithmetic is optimal in all cases (if the
> > implementation is otherwise correct given the compiler options passed).
> > For example, if the argument is in a floating-point register and an
> > integer implementation would involve the (architecture-specific) costs of
> > moving it to an integer register - obviously something that can only be
> > decided quite late in code generation.
> >
> Naturally one should check which implementation is best. Could you send
> link to numeric application and how to measure it that was mentioned
> before?
I have no idea which is best - all I assert here is that it's not obvious
that "should not be used until they are fixed to use integer arithmetic"
is true (any patch to use the GCC built-in functions should come with
benchmark data as well as information on correctness). It may well be the
case that changing the GCC built-in functions to use integer arithmetic is
unconditionally beneficial; such a change obviously needs benchmark data
(in a way that changing for correctness with -fsignaling-nans only
wouldn't).
All other things being equal, use of type-generic built-in functions has
the advantage that the macro expansion text only contains the argument
text once - generally a good idea when macro calls may be nested inside
arguments to other macros.
--
Joseph S. Myers
joseph@codesourcery.com