glibc/sysdeps
Noah Goldstein e59ced2384 x86: Optimize memset-vec-unaligned-erms.S
No bug.

Optimization are

1. change control flow for L(more_2x_vec) to fall through to loop and
   jump for L(less_4x_vec) and L(less_8x_vec). This uses less code
   size and saves jumps for length > 4x VEC_SIZE.

2. For EVEX/AVX512 move L(less_vec) closer to entry.

3. Avoid complex address mode for length > 2x VEC_SIZE

4. Slightly better aligning code for the loop from the perspective of
   code size and uops.

5. Align targets so they make full use of their fetch block and if
   possible cache line.

6. Try and reduce total number of icache lines that will need to be
   pulled in for a given length.

7. Include "local" version of stosb target. For AVX2/EVEX/AVX512
   jumping to the stosb target in the sse2 code section will almost
   certainly be to a new page. The new version does increase code size
   marginally by duplicating the target but should get better iTLB
   behavior as a result.

test-memset, test-wmemset, and test-bzero are all passing.

Signed-off-by: Noah Goldstein <goldstein.w.n@gmail.com>
Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
2021-10-12 13:38:02 -05:00
..
aarch64 elf: Avoid nested functions in the loader [BZ #27220] 2021-10-07 11:55:02 -07:00
alpha elf: Avoid nested functions in the loader [BZ #27220] 2021-10-07 11:55:02 -07:00
arc elf: Avoid nested functions in the loader [BZ #27220] 2021-10-07 11:55:02 -07:00
arm elf: Fix elf_get_dynamic_info definition 2021-10-12 13:25:43 -03:00
csky elf: Avoid nested functions in the loader [BZ #27220] 2021-10-07 11:55:02 -07:00
generic Add run-time check for indirect external access 2021-10-07 10:26:48 -07:00
gnu Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
hppa elf: Avoid nested functions in the loader [BZ #27220] 2021-10-07 11:55:02 -07:00
htl htl: Reimplement GSCOPE 2021-09-16 01:04:17 +02:00
hurd Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
i386 elf: Fix elf_get_dynamic_info definition 2021-10-12 13:25:43 -03:00
ia64 elf: Avoid nested functions in the loader [BZ #27220] 2021-10-07 11:55:02 -07:00
ieee754 Fixed inaccuracy of j0f (BZ #28185) 2021-10-05 13:45:37 +02:00
m68k elf: Avoid nested functions in the loader [BZ #27220] 2021-10-07 11:55:02 -07:00
mach Add fmaximum, fminimum functions 2021-09-28 23:31:35 +00:00
microblaze elf: Avoid nested functions in the loader [BZ #27220] 2021-10-07 11:55:02 -07:00
mips elf: Avoid nested functions in the loader [BZ #27220] 2021-10-07 11:55:02 -07:00
nios2 elf: Avoid nested functions in the loader [BZ #27220] 2021-10-07 11:55:02 -07:00
nptl nptl: Use FUTEX_LOCK_PI2 when available 2021-10-01 08:09:13 -03:00
posix posix: Remove spawni.c 2021-09-27 12:44:25 -03:00
powerpc elf: Avoid nested functions in the loader [BZ #27220] 2021-10-07 11:55:02 -07:00
pthread elf: Avoid deadlock between pthread_create and ctors [BZ #28357] 2021-10-04 15:07:05 +01:00
riscv elf: Avoid nested functions in the loader [BZ #27220] 2021-10-07 11:55:02 -07:00
s390 elf: Avoid nested functions in the loader [BZ #27220] 2021-10-07 11:55:02 -07:00
sh elf: Avoid nested functions in the loader [BZ #27220] 2021-10-07 11:55:02 -07:00
sparc elf: Avoid nested functions in the loader [BZ #27220] 2021-10-07 11:55:02 -07:00
unix Fix nios2 localplt failure 2021-10-11 21:47:32 +00:00
wordsize-32 Disable symbol hack in libc_nonshared.a 2021-09-27 07:46:25 -07:00
wordsize-64 Remove "Contributed by" lines 2021-09-03 22:06:44 +05:30
x86 elf: Remove Intel MPX support (lazy PLT, ld.so profile, and LD_AUDIT) 2021-10-11 11:14:02 -07:00
x86_64 x86: Optimize memset-vec-unaligned-erms.S 2021-10-12 13:38:02 -05:00