HomeFreeBSD

amd64: check for small size in memmove, memcpy and memset

Description

amd64: check for small size in memmove, memcpy and memset

If the size is 15 bytes or less avoid spinning up rep just to copy the 8
bytes. In my tests on EPYC and old Intel microarchs without ERMS (like
Westmere) it provided a nice win over the current version (e.g. for EPYC
memset with 15 bytes of size goes from 59712651 ops/s to 70600095) all
while almost not pessimizing the other cases.

Data collected during package building shows that < 16 sizes are pretty
common.

Verified with the glibc test suite.

Approved by: re (kib)

Details

Provenance
mjgAuthored on
Parents
rS338852: Add an installer option to disable destructive dtrace.
Branches
Unknown
Tags
Unknown