libc/newlib/libc
Siddhesh Poyarekar f44eee8f1b Improve strncmp for mutually misaligned inputs
The mutually misaligned inputs on aarch64 are compared with a simple
byte copy, which is not very efficient.  Enhance the comparison
similar to strcmp by loading a double-word at a time.  The peak
performance improvement (i.e. 4k maxlen comparisons) due to this on
the strncmp microbenchmark in glibc is as follows:

falkor: 3.5x (up to 72% time reduction)
cortex-a73: 3.5x (up to 71% time reduction)
cortex-a53: 3.5x (up to 71% time reduction)

All mutually misaligned inputs from 16 bytes maxlen onwards show
upwards of 15% improvement and there is no measurable effect on the
performance of aligned/mutually aligned inputs.
2018-07-13 13:27:54 +02:00
..
argz ansification: remove _DEFUN 2018-01-17 11:47:26 -06:00
ctype Fix Unicode table. 2018-06-26 10:19:12 +02:00
errno makedoc: make errors visible 2017-12-07 11:54:11 +00:00
iconv ansification: remove _EXFUN, _EXFUN_NOTHROW 2018-01-17 11:47:29 -06:00
include Move __HAVE_FAST_FMA to math_config.h 2018-07-06 10:29:01 +02:00
locale Locale modifier @cjkwide to adjust ambiguous-width in non-CJK locales 2018-03-05 17:15:12 +01:00
machine Improve strncmp for mutually misaligned inputs 2018-07-13 13:27:54 +02:00
misc ansification: remove _EXFUN, _EXFUN_NOTHROW 2018-01-17 11:47:29 -06:00
posix ansification: remove _HAVE_STDC 2018-01-17 11:47:30 -06:00
reent ansification: remove _DEFUN 2018-01-17 11:47:26 -06:00
search Reduce qsort stack consumption 2018-03-16 10:21:23 +01:00
signal Fix newlib functions perror()/psignal() not to use writev(). 2018-07-05 15:33:49 -04:00
ssp makedoc: make errors visible 2017-12-07 11:54:11 +00:00
stdio Fix newlib functions perror()/psignal() not to use writev(). 2018-07-05 15:33:49 -04:00
stdio64 ansification: remove _EXFNPTR, _EXPARM 2018-01-17 11:47:27 -06:00
stdlib newlib: getopt now permutes multi-flag options correctly 2018-06-18 18:45:44 +02:00
string fix/enhance Unicode table generation scripts 2018-03-14 10:44:32 +01:00
sys Add nvptx port. 2018-04-13 15:42:37 -04:00
syscalls ansification: remove _HAVE_STDC 2018-01-17 11:47:30 -06:00
time Fix 32-bit overflow in mktime() when time_t is 64-bits long 2018-05-29 15:27:03 +02:00
unix ansification: remove _DEFUN 2018-01-17 11:47:26 -06:00
xdr ansification: remove _EXFUN, _EXFUN_NOTHROW 2018-01-17 11:47:29 -06:00
Makefile.am ssp: add build infrastructure 2017-11-29 11:25:46 -06:00
Makefile.in ssp: add build infrastructure 2017-11-29 11:25:46 -06:00
aclocal.m4 Fix up errors in regenerated files for 2.3.0 release. 2016-01-04 12:57:31 -05:00
configure Add nvptx port. 2018-04-13 15:42:37 -04:00
configure.in ssp: add build infrastructure 2017-11-29 11:25:46 -06:00
libc.in.xml ssp: add documentation 2017-11-29 11:25:45 -06:00
libc.texinfo ssp: add documentation 2017-11-29 11:25:45 -06:00
saber
sys.tex Don't include stdio64 functions in reentrant syscalls menu when not bulding stdio64. 2015-08-03 09:54:33 +01:00