From fe8d211f1a06f7316391ae33896a2bfe13854b35 Mon Sep 17 00:00:00 2001 From: Guillaume Chatelet Date: Tue, 25 Oct 2022 15:18:46 +0000 Subject: [PATCH] [libc] deprecate LLVM_LIBC_MEMCPY_X86_USE_ONLY_REPMOVSB Differential Revision: https://reviews.llvm.org/D136693 --- libc/src/string/memory_utils/memcpy_implementations.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/libc/src/string/memory_utils/memcpy_implementations.h b/libc/src/string/memory_utils/memcpy_implementations.h index cb9a82856f45..2fa32e3b6110 100644 --- a/libc/src/string/memory_utils/memcpy_implementations.h +++ b/libc/src/string/memory_utils/memcpy_implementations.h @@ -65,18 +65,19 @@ inline_memcpy_x86_maybe_interpose_repmovsb(Ptr __restrict dst, CPtr __restrict src, size_t count) { // Whether to use rep;movsb exclusively, not at all, or only above a certain // threshold. - // TODO: Use only a single preprocessor definition to simplify the code. #ifndef LLVM_LIBC_MEMCPY_X86_USE_REPMOVSB_FROM_SIZE #define LLVM_LIBC_MEMCPY_X86_USE_REPMOVSB_FROM_SIZE -1 #endif - static constexpr bool kUseOnlyRepMovsb = - LLVM_LIBC_IS_DEFINED(LLVM_LIBC_MEMCPY_X86_USE_ONLY_REPMOVSB); +#ifdef LLVM_LIBC_MEMCPY_X86_USE_ONLY_REPMOVSB +#error LLVM_LIBC_MEMCPY_X86_USE_ONLY_REPMOVSB is deprecated use LLVM_LIBC_MEMCPY_X86_USE_REPMOVSB_FROM_SIZE=0 instead. +#endif // LLVM_LIBC_MEMCPY_X86_USE_ONLY_REPMOVSB + static constexpr size_t kRepMovsbThreshold = LLVM_LIBC_MEMCPY_X86_USE_REPMOVSB_FROM_SIZE; - if constexpr (kUseOnlyRepMovsb) + if constexpr (kRepMovsbThreshold == 0) return x86::Memcpy::repmovsb(dst, src, count); - else if constexpr (kRepMovsbThreshold >= 0) { + else if constexpr (kRepMovsbThreshold > 0) { if (unlikely(count >= kRepMovsbThreshold)) return x86::Memcpy::repmovsb(dst, src, count); else