[all-commits] [llvm/llvm-project] 4c1943: [libc] New version of the mem* framework

Guillaume Chatelet via All-commits all-commits at lists.llvm.org
Wed Oct 12 08:27:06 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 4c19439d249256db720e323a446e39d05496732f
      https://github.com/llvm/llvm-project/commit/4c19439d249256db720e323a446e39d05496732f
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2022-10-12 (Wed, 12 Oct 2022)

  Changed paths:
    M libc/src/stdio/printf_core/string_writer.cpp
    M libc/src/string/bcmp.cpp
    M libc/src/string/memcmp.cpp
    M libc/src/string/memmove.cpp
    M libc/src/string/memory_utils/CMakeLists.txt
    A libc/src/string/memory_utils/README.md
    M libc/src/string/memory_utils/bcmp_implementations.h
    R libc/src/string/memory_utils/elements.h
    R libc/src/string/memory_utils/elements_aarch64.h
    R libc/src/string/memory_utils/elements_x86.h
    M libc/src/string/memory_utils/memcmp_implementations.h
    M libc/src/string/memory_utils/memcpy_implementations.h
    M libc/src/string/memory_utils/memset_implementations.h
    A libc/src/string/memory_utils/op_aarch64.h
    A libc/src/string/memory_utils/op_builtin.h
    A libc/src/string/memory_utils/op_generic.h
    A libc/src/string/memory_utils/op_x86.h
    M libc/src/string/memory_utils/utils.h
    M libc/src/string/memset.cpp
    M libc/test/src/string/bcmp_test.cpp
    M libc/test/src/string/memmove_test.cpp
    M libc/test/src/string/memory_utils/CMakeLists.txt
    R libc/test/src/string/memory_utils/elements_test.cpp
    R libc/test/src/string/memory_utils/memory_access_test.cpp
    M libc/test/src/string/memory_utils/utils_test.cpp
    M utils/bazel/llvm-project-overlay/libc/BUILD.bazel

  Log Message:
  -----------
  [libc] New version of the mem* framework

This version is more composable and also simpler at the expense of being more explicit and more verbose.
This patch is not meant to be submitted but gives an idea of the change.
Codegen can be checked in https://godbolt.org/z/6z1dEoWbs by removing the "static inline" before individual functions.

Unittests are coming.

Suggested review order:
 - utils
 - op_base
 - op_builtin
 - op_generic
 - op_x86 / op_aarch64
 - *_implementations.h

Differential Revision: https://reviews.llvm.org/D135134




More information about the All-commits mailing list