This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH][PING] Inline C99 math functions
- From: Andreas Schwab <schwab at suse dot de>
- To: "Wilco Dijkstra" <wdijkstr at arm dot com>
- Cc: "'GNU C Library'" <libc-alpha at sourceware dot org>
- Date: Wed, 04 Nov 2015 16:04:41 +0100
- Subject: Re: [PATCH][PING] Inline C99 math functions
- Authentication-results: sourceware.org; auth=none
- References: <001c01d0bd7e$25a147c0$70e3d740$ at com>
"Wilco Dijkstra" <wdijkstr@arm.com> writes:
>> Wilco Dijkstra wrote:
>> Add inlining of the C99 math functions isinf/isnan/signbit/isfinite/isnormal/fpclassify using
>> GCC built-ins when available. Since going through the PLT is expensive for these small
>> functions, inlining results in major speedups (about 7x on Cortex-A57 for isinf). The GCC
>> built-ins are not correct if signalling NaN support is required, and thus are turned off in
>> that case (see GCC bug 66462). The test-snan.c tests sNaNs and so must be explicitly built
>> with -fsignaling-nans.
>>
>> As a result of this many target overrides and the various __isnan/__finite inlines in
>> math_private.h are no longer required. If agreed we could remove all this code and only keep
>> the generic definition of isinf/etc which will use the builtin.
>>
>> Tested on AArch64. OK for commit?
FAIL: elf/check-localplt
$ cat elf/check-localplt.out
Missing required PLT reference: libm.so: __signbitl
Missing required PLT reference: libc.so: __signbitl
Missing required PLT reference: libm.so: __signbitf
Missing required PLT reference: libm.so: __signbit
Missing required PLT reference: libc.so: __signbit
Andreas.
--
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."