[libc] Simplifies multi implementations
authorGuillaume Chatelet <gchatelet@google.com>
Wed, 12 May 2021 07:24:53 +0000 (07:24 +0000)
committerGuillaume Chatelet <gchatelet@google.com>
Wed, 12 May 2021 07:24:53 +0000 (07:24 +0000)
commit6351993da72e298b3f79218e4f129a9bbde3e679
treee6809a438fc9b694efaf9e6c502e19c409576bd6
parent8aa7f28497b6794ca659f1b729a6e8ce312c54e2
[libc] Simplifies multi implementations

This is a roll forward of D101895 with two additional fixes:

Original Patch description:
> This is a follow up on D101524 which:
>
> - simplifies cpu features detection and usage,
> - flattens target dependent optimizations so it's obvious which implementations are generated,
> - provides an implementation targeting the host (march/mtune=native) for the mem* functions,
> - makes sure all implementations are unittested (provided the host can run them).

Additional fixes:
 - Fix uninitialized ALL_CPU_FEATURES
 - Use non pseudo microarch as it is only supported from Clang 12 on

Differential Revision: https://reviews.llvm.org/D102233
libc/cmake/modules/LLVMLibCCheckCpuFeatures.cmake
libc/src/string/CMakeLists.txt
libc/src/string/aarch64/CMakeLists.txt [deleted file]
libc/src/string/x86_64/CMakeLists.txt [deleted file]
libc/test/src/string/CMakeLists.txt