[all-commits] [llvm/llvm-project] 83f9b1: [libc] Optimized version of memmove
Guillaume Chatelet via All-commits
all-commits at lists.llvm.org
Tue Feb 8 03:55:42 PST 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 83f9b13d8cc2dd148c8ff7c1c71584e1eb634b75
https://github.com/llvm/llvm-project/commit/83f9b13d8cc2dd148c8ff7c1c71584e1eb634b75
Author: Guillaume Chatelet <gchatelet at google.com>
Date: 2022-02-08 (Tue, 08 Feb 2022)
Changed paths:
M libc/src/__support/CPP/ArrayRef.h
M libc/src/string/CMakeLists.txt
M libc/src/string/memmove.cpp
M libc/src/string/memory_utils/elements.h
M libc/test/src/string/CMakeLists.txt
M libc/test/src/string/memmove_test.cpp
M libc/utils/UnitTest/CMakeLists.txt
A libc/utils/UnitTest/MemoryMatcher.cpp
A libc/utils/UnitTest/MemoryMatcher.h
Log Message:
-----------
[libc] Optimized version of memmove
This implementation relies on storing data in registers for sizes up to 128B.
Then depending on whether `dst` is less (resp. greater) than `src` we move data forward (resp. backward) by chunks of 32B.
We first make sure one of the pointers is aligned to increase performance on large move sizes.
Differential Revision: https://reviews.llvm.org/D114637
More information about the All-commits
mailing list