aboutsummaryrefslogtreecommitdiff
path: root/benchtests
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2016-03-26 19:09:07 +0000
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2016-04-01 10:44:44 -0300
commit91f3b75f47c9eca3299098c3dcc2f5d9dad320b1 (patch)
treef00e3a58386999ac44a322211ff74cffcb37df99 /benchtests
parentd3496c9f4f27d3009b71be87f6108b4fed7314bd (diff)
downloadglibc-91f3b75f47c9eca3299098c3dcc2f5d9dad320b1.tar
glibc-91f3b75f47c9eca3299098c3dcc2f5d9dad320b1.tar.gz
glibc-91f3b75f47c9eca3299098c3dcc2f5d9dad320b1.tar.bz2
glibc-91f3b75f47c9eca3299098c3dcc2f5d9dad320b1.zip
Improve generic strspn performance
As for strcspn, this patch improves strspn performance using a much faster algorithm. It first constructs a 256-entry table based on the accept string and then uses it as a lookup table for the input string. As for strcspn optimization, it is generally at least 10 times faster than the existing implementation on bench-strspn on a few AArch64 implementations. Also the string/bits/string2.h inlines make no longer sense, as current implementation will already implement most of the optimizations. Tested on x86_64, i686, and aarch64. * string/strspn.c (strcspn): Rewrite function. * string/bits/string2.h (strspn): Use __builtin_strcspn. (__strspn_c1): Remove inline function. (__strspn_c2): Likewise. (__strspn_c3): Likewise. * string/string-inlines.c [SHLIB_COMPAT(libc, GLIBC_2_1_1, GLIBC_2_24)] (__strspn_c1): Add compatibility symbol. [SHLIB_COMPAT(libc, GLIBC_2_1_1, GLIBC_2_24)] (__strspn_c2): Likewise. [SHLIB_COMPAT(libc, GLIBC_2_1_1, GLIBC_2_24)] (__strspn_c3): Likewise.
Diffstat (limited to 'benchtests')
0 files changed, 0 insertions, 0 deletions