freebsd-dev/lib/libc
Ed Maste 7dbcd06e63 libc: optimize memmem two-way bad character shift
first, the condition (mem && k < p) is redundant, because mem being
nonzero implies the needle is periodic with period exactly p, in which
case any byte that appears in the needle must appear in the last p
bytes of the needle, bounding the shift (k) by p.

second, the whole point of replacing the shift k by mem (=l-p) is to
prevent shifting by less than mem when discarding the memory on shift,
in which case linear time could not be guaranteed. but as written, the
check also replaced shifts greater than mem by mem, reducing the
benefit of the shift. there is no possible benefit to this reduction of
the shift; since mem is being cleared, the full shift is valid and
more optimal. so only replace the shift by mem when it would be less
than mem.

musl commits:
8f5a820d147da36bcdbddd201b35d293699dacd8
122d67f846cb0be2c9e1c3880db9eb9545bbe38c

Obtained from:	musl
MFC after:	2 weeks
2020-11-19 00:02:12 +00:00
..
aarch64 Fix initial exec TLS mode for dynamically loaded shared objects. 2019-03-29 17:52:57 +00:00
amd64 amd64: sync up libc memcmp with the kernel version (r357309) 2020-01-30 19:57:05 +00:00
arm arm/ffs.S: remove stale comment. 2019-12-28 02:11:41 +00:00
capability Fix a few mandoc issues 2020-10-09 19:12:44 +00:00
compat-43 Adjust history, info source from v1's manuals 2019-09-04 13:44:46 +00:00
db Remove the SYMVER build option. 2020-04-30 22:08:40 +00:00
gdtoa Remove sparc64 specific parts of libc. 2020-02-26 18:55:09 +00:00
gen Add a missing Nm macro 2020-11-13 14:56:34 +00:00
gmon mcount: tidy up ANSIfication 2018-10-20 22:39:35 +00:00
i386 remove obsolete i386 MD memchr implementation 2019-09-25 16:49:22 +00:00
iconv Remove the SYMVER build option. 2020-04-30 22:08:40 +00:00
include Add pthread_getname_np() and pthread_setname_np() aliases for 2020-06-10 22:13:24 +00:00
inet libc: fix cases of undefined behavior. 2018-08-07 15:24:19 +00:00
isc SPDX: more ISC-related files. 2017-12-08 17:52:53 +00:00
locale Add collation version support to querylocale(3). 2020-11-08 02:50:34 +00:00
md Replace dot-dot relative pathing with SRCTOP-relative paths where possible 2017-01-20 03:23:24 +00:00
mips mips: fix some mcount nits 2019-09-02 01:55:55 +00:00
nameser Bounds check again after advancing cp, otherwise we have a possible 2019-09-05 19:35:30 +00:00
net Eliminate duplicate afterinstallconfigs target 2020-10-01 16:37:49 +00:00
nls Replace literal uses of /usr/local in C sources with _PATH_LOCALBASE 2020-10-27 11:29:11 +00:00
posix1e Drop "All rights reserved" from all my stuff. This includes 2020-10-28 13:46:11 +00:00
powerpc [PowerPC64LE] Fix gdtoa configurations on LE. 2020-09-23 02:05:44 +00:00
powerpc64 [PowerPC64LE] Fix gdtoa configurations on LE. 2020-09-23 02:05:44 +00:00
powerpcspe [PowerPC] Implement VDSO timebase access on powerpc* 2020-09-08 03:00:31 +00:00
quad Add casts and L suffixes to libc quad support, to work around various 2020-02-17 20:14:59 +00:00
regex libregex: Implement a subset of the GNU extensions 2020-08-04 02:14:51 +00:00
resolv Rather than using the legacy IP struct fields in the union for the 2019-06-04 20:53:35 +00:00
riscv libc: Provide sub fp(s|g)etmask() implementations for RISC-V 2020-08-03 12:48:51 +00:00
rpc Fix -Wvoid-pointer-to-enum-cast warnings. 2020-04-15 18:15:58 +00:00
secure Remove the SYMVER build option. 2020-04-30 22:08:40 +00:00
softfloat Add implementations for clog(3), clogf(3), and clog(3). 2018-05-13 09:54:34 +00:00
stdio tmpnam(3): Also mention tmpfile in the ENVIRONMENT section 2020-08-07 16:20:07 +00:00
stdlib Further refinements of ptsname_r(3) interface: 2020-10-20 01:29:45 +00:00
stdtime strptime: make %k and %l specifiers match their description in 2018-11-03 23:37:13 +00:00
string libc: optimize memmem two-way bad character shift 2020-11-19 00:02:12 +00:00
sys _umtx_op: document UMTX_OP_SEM2_WAIT copyout behavior 2020-11-17 03:26:56 +00:00
tests Disable ssp raw test without ASAN 2020-10-28 23:10:54 +00:00
uuid libc: further adoption of SPDX licensing ID tags. 2017-11-25 17:12:48 +00:00
x86 Remove resolver_qual from DEFINE_IFUNC/DEFINE_UIFUNC macros. 2019-05-16 22:20:54 +00:00
xdr typo: s/impelmentation/implementation/. 2020-02-07 15:14:29 +00:00
yp Increase the size of the send and receive buffers for YP client rpc 2019-09-16 06:42:01 +00:00
libc_nossp.ldscript
libc.ldscript
Makefile [PowerPC64LE] Use a shared LIBC_ARCH for powerpc64le. 2020-09-23 00:21:51 +00:00
Makefile.depend Update Makefile.depend files 2019-12-11 17:37:53 +00:00
Makefile.depend.options Update libssp paths in various Makefile.depend* files 2020-01-06 18:15:55 +00:00
Versions.def Create namespace for the symbols added during 13-CURRENT cycle. 2018-11-12 19:12:14 +00:00