]> sourceware.org Git - glibc.git/commit
Improve generic strspn performance
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Sat, 26 Mar 2016 19:09:07 +0000 (19:09 +0000)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Fri, 1 Apr 2016 13:44:44 +0000 (10:44 -0300)
commit91f3b75f47c9eca3299098c3dcc2f5d9dad320b1
treef00e3a58386999ac44a322211ff74cffcb37df99
parentd3496c9f4f27d3009b71be87f6108b4fed7314bd
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.
ChangeLog
string/bits/string2.h
string/string-inlines.c
string/strspn.c
This page took 0.046103 seconds and 5 git commands to generate.