[PATCH][PING] Inline C99 math functions
Andreas Schwab
schwab@suse.de
Wed Nov 4 15:04:00 GMT 2015
"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."
More information about the Libc-alpha
mailing list