aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
AgeCommit message (Collapse)Author
2013-06-12Set/restore rounding mode only when neededSiddhesh Poyarekar
The most common use case of math functions is with default rounding mode, i.e. rounding to nearest. Setting and restoring rounding mode is an unnecessary overhead for this, so I've added support for a context, which does the set/restore only if the FP status needs a change. The code is written such that only x86 uses these. Other architectures should be unaffected by it, but would definitely benefit if the set/restore has as much overhead relative to the rest of the code, as the x86 bits do. Here's a summary of the performance improvement due to these improvements; I've only mentioned functions that use the set/restore and have benchmark inputs for x86_64: Before: cos(): ITERS:4.69335e+08: TOTAL:28884.6Mcy, MAX:4080.28cy, MIN:57.562cy, 16248.6 calls/Mcy exp(): ITERS:4.47604e+08: TOTAL:28796.2Mcy, MAX:207.721cy, MIN:62.385cy, 15543.9 calls/Mcy pow(): ITERS:1.63485e+08: TOTAL:28879.9Mcy, MAX:362.255cy, MIN:172.469cy, 5660.86 calls/Mcy sin(): ITERS:3.89578e+08: TOTAL:28900Mcy, MAX:704.859cy, MIN:47.583cy, 13480.2 calls/Mcy tan(): ITERS:7.0971e+07: TOTAL:28902.2Mcy, MAX:1357.79cy, MIN:388.58cy, 2455.55 calls/Mcy After: cos(): ITERS:6.0014e+08: TOTAL:28875.9Mcy, MAX:364.283cy, MIN:45.716cy, 20783.4 calls/Mcy exp(): ITERS:5.48578e+08: TOTAL:28764.9Mcy, MAX:191.617cy, MIN:51.011cy, 19071.1 calls/Mcy pow(): ITERS:1.70013e+08: TOTAL:28873.6Mcy, MAX:689.522cy, MIN:163.989cy, 5888.18 calls/Mcy sin(): ITERS:4.64079e+08: TOTAL:28891.5Mcy, MAX:6959.3cy, MIN:36.189cy, 16062.8 calls/Mcy tan(): ITERS:7.2354e+07: TOTAL:28898.9Mcy, MAX:1295.57cy, MIN:380.698cy, 2503.7 calls/Mcy So the improvements are: cos: 27.9089% exp: 22.6919% pow: 4.01564% sin: 19.1585% tan: 1.96086% The downside of the change is that it will have an adverse performance impact on non-default rounding modes, but I think the tradeoff is justified.
2013-06-11Add exception information to math-tests.h and use it in libm-test.inc.Joseph Myers
2013-06-11PowerPC: Merge ports/ dl-procinfo.[ch] with base.Ryan S. Arnold
2013-06-11Fix symbol definitions for __clock_* functionsSiddhesh Poyarekar
__clock_gettime and other __clock_* functions could result in an extra PLT reference within libc.so if it actually gets used. None of the code currently uses them, which is why this probably went unnoticed.
2013-06-10Add rounding mode information to math-tests.h and use it in libm-test.inc.Joseph Myers
2013-06-08Avoid trailing whitespace in sysdeps/gnu/errlist.c.Joseph Myers
2013-06-08Use (void) in no-arguments function definitions.Joseph Myers
2013-06-07Avoid use of "register" as optimization hint.Joseph Myers
2013-06-06Fix leading whitespaces.Ondrej Bilka
2013-06-05Remove trailing whitespace.Joseph Myers
2013-06-05Skip modifying exception mask and flags in SET_RESTORE_ROUND_53BITSiddhesh Poyarekar
We only need to set/restore rounding mode to ensure correct computation for non-default rounding modes.
2013-05-31Link extra-libs consistently with libc and ld.so.Joseph Myers
2013-05-30 [BZ #14256]Jeff Law
* manual/errno.texi (ESTALE): Update to account for more than just NFS file systems. * sysdeps/gnu/errlist.c: Regenerated.
2013-05-29Avoid crashing in LD_DEBUG when program name is unavailableSiddhesh Poyarekar
Resolves: #15465 The program name may be unavailable if the user application tampers with argc and argv[]. Some parts of the dynamic linker caters for this while others don't, so this patch consolidates the check and fallback into a single macro and updates all users.
2013-05-28Update powerpc libm-test ULPs.Adhemerval Zanella
2013-05-26_dl_skip_args declaration cleanup.Thomas Schwinge
* sysdeps/mach/hurd/dl-sysdep.c (_dl_sysdep_start:go): Don't declare _dl_skip_args. Continuation of commit 8347c74cc5c972aa9e57747177b1f5f4b1cbcac8.
2013-05-26_dl_non_dynamic_init declaration cleanup.Thomas Schwinge
* sysdeps/mach/hurd/i386/init-first.c (_dl_non_dynamic_init): Don't declare. Continuation of commit bc16e260d0e74b36e48d30edc6ea4f1152700c09.
2013-05-24Fix ldbl-96 hypotl of subnormals (bug 15529).Joseph Myers
2013-05-24Test drem and pow10 in libm-test.inc.Joseph Myers
2013-05-24Use same tests for isfinite/finite, lgamma/gamma.Joseph Myers
2013-05-24PowerPC: Program Priority Register supportAdhemerval Zanella
This patch add inline functions to change the Program Priority Register from ISA 2.05.
2013-05-23PowerPC: Add functions for shared resources hints.Edjunior Machado
2013-05-22Update bits/siginfo.h with Linux hwpoison SIGBUS changesEdjunior Barbosa Machado
Adds new SIGBUS error codes for hardware poison signals, syncing with the current kernel headers (v3.9). It also adds si_trapno field for alpha.
2013-05-22Don't include expected results in libm-test test names.Joseph Myers
2013-05-21Set EAI_SYSTEM only when h_errno is NETDB_INTERNALSiddhesh Poyarekar
Fixes BZ #15339. NSS_STATUS_UNAVAIL may mean that a necessary input resource is not available. This could occur in a number of cases including when the network is down, system runs out of file descriptors, etc. The correct differentiator in such a case is the h_errno, which gives the nature of failure. In case of failures other than a simple 'not found', we set h_errno as NETDB_INTERNAL and let errno be the identifier for the exact error.
2013-05-20Faster memset on x64Ondrej Bilka
This implementation speed up memset in several ways. First is avoiding expensive computed jump. Second is using fact that arguments of memset are most of time aligned to 8 bytes. Benchmark results on: kam.mff.cuni.cz/~ondra/benchmark_string/memset_profile_result27_04_13.tar.bz2
2013-05-20Faster memcpy on x64.Ondrej Bilka
We add new memcpy version that uses unaligned loads which are fast on modern processors. This allows second improvement which is avoiding computed jump which is relatively expensive operation. Tests available here: http://kam.mff.cuni.cz/~ondra/memcpy_profile_result27_04_13.tar.bz2
2013-05-19Fix nearbyint scheduling of arithmetic past fesetenv (bug 15490).Joseph Myers
2013-05-19Handle sincos with generic libm-test logic.Joseph Myers
2013-05-17Fix remainder exceptions and directed-rounding results (bugs 15480, 15485).Joseph Myers
2013-05-17PowerPC: fix hypot/hypotf check for -INFAdhemerval Zanella
2013-05-16MIPS: soft-fp NaN representation correctionsMaciej W. Rozycki
[BZ #15442] This adds support for the inverse interpretation of the quiet bit of IEEE 754 floating-point NaN data that some processors use. This includes in particular MIPS architecture processors; the payload used for the canonical qNaN encoding is updated accordingly so as not to interfere with the quiet bit.
2013-05-16Add #include <stdint.h> for uint[32|64]_t usage (except installed headers).Ryan S. Arnold
2013-05-15Use movq for 64-bit operationsPeter Collingbourne
The EXTRACT_WORDS64 and INSERT_WORDS64 macros use movd for a 64-bit operation. Somehow gcc manages to turn this into movq, but LLVM won't. 2013-05-15 Peter Collingbourne <pcc@google.com> * sysdeps/x86_64/fpu/math_private.h (MOVQ): New macro. (EXTRACT_WORDS64) Use where appropriate. (INSERT_WORDS64) Likewise.
2013-05-15Use x constraints for operands to vfmaddss and vfmaddsdPeter Collingbourne
While these instructions accept memory operands, only one operand may be a memory operand. Giving two operands xm constraints gives the compiler the option of using memory for both operands, which would result in invalid assembly code. Using x for all operands is more appropriate, as most x86_64 calling conventions will pass the arguments in registers anyway. 2013-05-15 Peter Collingbourne <pcc@google.com> * sysdeps/x86_64/fpu/multiarch/s_fma.c (__fma_fma4): Replace xm constraints with x constraints. * sysdeps/x86_64/fpu/multiarch/s_fmaf.c (__fmaf_fma4): Likewise.
2013-05-15Update s390/bits/siginfo.hEdjunior Machado
2013-05-15 Edjunior Machado <emachado@linux.vnet.ibm.com> * sysdeps/unix/sysv/linux/s390/bits/siginfo.h (siginfo_t): Remove si_trapno and add si_addr_lsb to _sifields.sigfault. (si_trapno): Remove macro. (si_addr_lsb): Define new macro. (BUS_MCEERR_AR, BUS_MCEERR_AO): Define new values.
2013-05-14Update Sparc ULPs.David S. Miller
* sysdeps/sparc/fpu/libm-test-ulps: Update.
2013-05-13Make _LIB_VERSION a weak symbolSiddhesh Poyarekar
That way it can live alongside _LIB_VERSION in libieee.a for statically compiled programs. Resolves #14582.
2013-05-12Convert TEST_ff_f tests from code to data.Joseph Myers
2013-05-10Add getgid.c for SHChristian Grönke
[BZ #12387] * sysdeps/unix/sysv/linux/sh/getgid.c: New file.
2013-05-10Hurd: add ST_NOATIMEPino Toscano
2013-05-10Fix integer overflow in sysdeps/unix/sysv/linux/bits/sched.hAndreas Jaeger
[BZ #15448] * sysdeps/unix/sysv/linux/bits/sched.h (__CPU_SET_S) (__CPU_CLR_S, __CPU_ISSET_S): Avoid integer overflow.
2013-05-09Fix ldbl-128ibm cos range reduction near pi/2 (bug 15359).Joseph Myers
2013-05-09Fix ldbl-128 cos range reduction near pi/2 (bug 15429).Joseph Myers
2013-05-08 Update powerpc libm-test ULPsAdhemerval Zanella
2013-05-08Improve tgamma accuracy (bugs 2546, 2560, 5159, 15426).Joseph Myers
2013-05-07Declare _dl_skip_args in ldsodefs.h header.Roland McGrath
2013-05-06Fix glob64 broken by cleanup.Roland McGrath
2013-05-06Move dummy glob64.c alongside glob.c that defines glob64.Roland McGrath
2013-05-06Flesh out stub not-cancel.h file.Roland McGrath