Improve generic strpbrk performance
commit282b71f07eb5e24ddf1308f92c37cb42f7c7d86b
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Sun, 27 Mar 2016 13:33:56 +0000 (27 13:33 +0000)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Fri, 1 Apr 2016 13:44:45 +0000 (1 10:44 -0300)
treed6d79415c05a70ebf19c604c702b3dc96084d551
parent91f3b75f47c9eca3299098c3dcc2f5d9dad320b1
Improve generic strpbrk performance

With now a faster strcspn implementation, it is faster to just use
it with some return tests than reimplementing strpbrk itself.
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, i386, and aarch64.

* string/strpbrk.c (strpbrk): Rewrite function.
* string/bits/string2.h (strpbrk): Use __builtin_strpbrk.
(__strpbrk_c2): Likewise.
(__strpbrk_c3): Likewise.
* string/string-inlines.c
[SHLIB_COMPAT(libc, GLIBC_2_1_1, GLIBC_2_24)] (__strpbrk_c2):
Likewise.
[SHLIB_COMPAT(libc, GLIBC_2_1_1, GLIBC_2_24)] (__strpbrk_c3):
Likewise.
ChangeLog
string/bits/string2.h
string/string-inlines.c
string/strpbrk.c