[libc] New version of the mem* framework
authorGuillaume Chatelet <gchatelet@google.com>
Fri, 14 Oct 2022 13:46:27 +0000 (13:46 +0000)
committerGuillaume Chatelet <gchatelet@google.com>
Fri, 14 Oct 2022 13:46:42 +0000 (13:46 +0000)
commitb3f1d58a131eb546aaf1ac165c77ccb89c40d758
treef291cb673f5ea89d9848d1794fe04b6a1d395f5f
parent06da9b94ae374f81a0898b01608c1c3529dfa29a
[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. It also provides minimal implementations for ARM platforms.

    Codegen can be checked here https://godbolt.org/z/chf1Y6eGM

    Differential Revision: https://reviews.llvm.org/D135134
26 files changed:
libc/src/stdio/printf_core/string_writer.cpp
libc/src/string/bcmp.cpp
libc/src/string/memcmp.cpp
libc/src/string/memmove.cpp
libc/src/string/memory_utils/CMakeLists.txt
libc/src/string/memory_utils/README.md [new file with mode: 0644]
libc/src/string/memory_utils/bcmp_implementations.h
libc/src/string/memory_utils/elements.h [deleted file]
libc/src/string/memory_utils/elements_aarch64.h [deleted file]
libc/src/string/memory_utils/elements_x86.h [deleted file]
libc/src/string/memory_utils/memcmp_implementations.h
libc/src/string/memory_utils/memcpy_implementations.h
libc/src/string/memory_utils/memset_implementations.h
libc/src/string/memory_utils/op_aarch64.h [new file with mode: 0644]
libc/src/string/memory_utils/op_builtin.h [new file with mode: 0644]
libc/src/string/memory_utils/op_generic.h [new file with mode: 0644]
libc/src/string/memory_utils/op_x86.h [new file with mode: 0644]
libc/src/string/memory_utils/utils.h
libc/src/string/memset.cpp
libc/test/src/string/bcmp_test.cpp
libc/test/src/string/memmove_test.cpp
libc/test/src/string/memory_utils/CMakeLists.txt
libc/test/src/string/memory_utils/elements_test.cpp [deleted file]
libc/test/src/string/memory_utils/memory_access_test.cpp [deleted file]
libc/test/src/string/memory_utils/utils_test.cpp
utils/bazel/llvm-project-overlay/libc/BUILD.bazel