[all-commits] [llvm/llvm-project] f35bd3: [libc][aarch64] Use inline_memcpy_aligned_access_6...
PiJoules via All-commits
all-commits at lists.llvm.org
Tue Sep 29 15:21:44 PDT 2026
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: f35bd33e2d9037a2dab48c8231355e01b9c4a722
https://github.com/llvm/llvm-project/commit/f35bd33e2d9037a2dab48c8231355e01b9c4a722
Author: PiJoules <leonardchan at google.com>
Date: 2026-09-29 (Tue, 29 Sep 2026)
Changed paths:
M libc/src/string/memory_utils/aarch64/inline_memcpy.h
Log Message:
-----------
[libc][aarch64] Use inline_memcpy_aligned_access_64bit under -mstrict-align (#227428)
Under `-mstrict-align`, clang cannot determine both `src` and `dst` are
aligned. The end of `inline_memcpy_aarch64` aligns `src` but it cannot
confirm `dst` is aligned. As a result,
`builtin::Memcpy<64>::loop_and_tail(dst, src, count)` lowers to
`__builtin_memcpy_inline(..., 64)` but clang emits many many single-byte
load/store instructions to ensure correctness. This can be very slow, so
if unaligned accesses are not supported, opt for adjusting both `src`
and `dst` such that we can use 8-byte loads/stores.
`inline_memcpy_aligned_access_64bit` already does this so we can just
reuse that.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list