[all-commits] [llvm/llvm-project] e0cce5: [libc] Improve Cortex `memset` and `memcpy` functi...

Guillaume Chatelet via All-commits all-commits at lists.llvm.org
Thu Jul 17 01:16:04 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e0cce5cdcb8a7829389d910a9204447646e69407
      https://github.com/llvm/llvm-project/commit/e0cce5cdcb8a7829389d910a9204447646e69407
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2025-07-17 (Thu, 17 Jul 2025)

  Changed paths:
    M libc/src/string/memory_utils/CMakeLists.txt
    A libc/src/string/memory_utils/arm/common.h
    M libc/src/string/memory_utils/arm/inline_memcpy.h
    A libc/src/string/memory_utils/arm/inline_memset.h
    M libc/src/string/memory_utils/inline_memset.h
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel

  Log Message:
  -----------
  [libc] Improve Cortex `memset` and `memcpy` functions (#149044)

The code for `memcpy` is the same as in #148204 but it fixes the build
bot error by using `static_assert(cpp::always_false<decltype(access)>)`
instead of `static_assert(false)` (older compilers fails on
`static_assert(false)` in `constexpr` `else` bodies).

The code for `memset` is new and vastly improves performance over the
current byte per byte implementation.

Both `memset` and `memcpy` implementations use prefetching for sizes >=
64. This lowers a bit the performance for sizes between 64 and 256 but
improves throughput for greater sizes.



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