[libc-commits] [PATCH] D81621: [libc] Remove dead code from memcpy to make it machine independent.

Guillaume Chatelet via Phabricator via libc-commits libc-commits at lists.llvm.org
Fri Jun 12 13:42:21 PDT 2020


gchatelet added a comment.

In D81621#2086447 <https://reviews.llvm.org/D81621#2086447>, @sivachandra wrote:

> I am trying to get the string functions work on aarch64. While `memset` and `bzero` work as is, `memcpy` does not because of the x86 specific arrangement we have currently. The x86 specific pieces are actually in dead code. So I went ahead and removed them in this patch. If required in future, we should add it back in a fashion which does not break the build for non-x86 architectures.


`memset` and `bzero` are generic and can be used as-is for all architectures.
They may need to be tweaked for individual architecture later on but the current code is good enough.

`memcpy`is a different story. The C++ implementation is quite tied to x86 so I would rather duplicate the code.
Keep the one we have with the reference to AVX and repmovsb for x86 (`libc/src/string/x86/memcpy.cpp`)
Duplicate it without AVX / Repmovsb for a generic implementation (`libc/src/string/memcpy.cpp`)
It also sets an example for anyone wanting to provide an architecture specific implementation.

Thx for the `-O2` flag!


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D81621/new/

https://reviews.llvm.org/D81621





More information about the libc-commits mailing list