From: Guillaume Chatelet Date: Thu, 1 Dec 2022 09:55:36 +0000 (+0000) Subject: Revert D138994 "[libc] Add bcopy" X-Git-Tag: upstream/17.0.6~25762 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c5fe7eb2162e8ed114140eff0f4fef62d58178d3;p=platform%2Fupstream%2Fllvm.git Revert D138994 "[libc] Add bcopy" Broke build bot This reverts commit 186a15f7a9311a75f3c5e90243ea5d6d20878de1. --- diff --git a/libc/config/darwin/arm/entrypoints.txt b/libc/config/darwin/arm/entrypoints.txt index d16bf08..cd50073 100644 --- a/libc/config/darwin/arm/entrypoints.txt +++ b/libc/config/darwin/arm/entrypoints.txt @@ -19,7 +19,6 @@ set(TARGET_LIBC_ENTRYPOINTS # string.h entrypoints libc.src.string.bcmp - libc.src.string.bcopy libc.src.string.bzero libc.src.string.memccpy libc.src.string.memchr diff --git a/libc/config/linux/aarch64/entrypoints.txt b/libc/config/linux/aarch64/entrypoints.txt index a67165e..8db3b79 100644 --- a/libc/config/linux/aarch64/entrypoints.txt +++ b/libc/config/linux/aarch64/entrypoints.txt @@ -28,7 +28,6 @@ set(TARGET_LIBC_ENTRYPOINTS # string.h entrypoints libc.src.string.bcmp - libc.src.string.bcopy libc.src.string.bzero libc.src.string.memccpy libc.src.string.memchr diff --git a/libc/config/linux/arm/entrypoints.txt b/libc/config/linux/arm/entrypoints.txt index 7253652..c88cbb1 100644 --- a/libc/config/linux/arm/entrypoints.txt +++ b/libc/config/linux/arm/entrypoints.txt @@ -19,7 +19,6 @@ set(TARGET_LIBC_ENTRYPOINTS # string.h entrypoints libc.src.string.bcmp - libc.src.string.bcopy libc.src.string.bzero libc.src.string.memccpy libc.src.string.memchr diff --git a/libc/config/linux/x86_64/entrypoints.txt b/libc/config/linux/x86_64/entrypoints.txt index 14043b0..e9e173a 100644 --- a/libc/config/linux/x86_64/entrypoints.txt +++ b/libc/config/linux/x86_64/entrypoints.txt @@ -28,7 +28,6 @@ set(TARGET_LIBC_ENTRYPOINTS # string.h entrypoints libc.src.string.bcmp - libc.src.string.bcopy libc.src.string.bzero libc.src.string.memccpy libc.src.string.memchr diff --git a/libc/config/windows/entrypoints.txt b/libc/config/windows/entrypoints.txt index bf52c8c..69a0aca 100644 --- a/libc/config/windows/entrypoints.txt +++ b/libc/config/windows/entrypoints.txt @@ -19,7 +19,6 @@ set(TARGET_LIBC_ENTRYPOINTS # string.h entrypoints libc.src.string.bcmp - libc.src.string.bcopy libc.src.string.bzero libc.src.string.memccpy libc.src.string.memchr diff --git a/libc/docs/strings.rst b/libc/docs/strings.rst index 50b479b..c475134 100644 --- a/libc/docs/strings.rst +++ b/libc/docs/strings.rst @@ -36,7 +36,6 @@ Function Name Available ============= ========= bzero |check| bcmp |check| -bcopy |check| memcpy |check| memset |check| memcmp |check| diff --git a/libc/spec/llvm_libc_ext.td b/libc/spec/llvm_libc_ext.td index 8ef6f88..76f0622 100644 --- a/libc/spec/llvm_libc_ext.td +++ b/libc/spec/llvm_libc_ext.td @@ -6,11 +6,6 @@ def LLVMLibcExt : StandardSpec<"llvm_libc_ext"> { [], // Enumerations [ FunctionSpec< - "bcopy", - RetValSpec, - [ArgSpec, ArgSpec, ArgSpec] - >, - FunctionSpec< "bzero", RetValSpec, [ArgSpec, ArgSpec] diff --git a/libc/src/string/CMakeLists.txt b/libc/src/string/CMakeLists.txt index 422d24c..7719178 100644 --- a/libc/src/string/CMakeLists.txt +++ b/libc/src/string/CMakeLists.txt @@ -21,14 +21,6 @@ add_header_library( ) add_entrypoint_object( - bcopy - SRCS - bcopy.cpp - HDRS - bcopy.h -) - -add_entrypoint_object( memccpy SRCS memccpy.cpp @@ -36,6 +28,7 @@ add_entrypoint_object( memccpy.h ) + add_entrypoint_object( mempcpy SRCS diff --git a/libc/src/string/bcopy.cpp b/libc/src/string/bcopy.cpp deleted file mode 100644 index 9653c73..0000000 --- a/libc/src/string/bcopy.cpp +++ /dev/null @@ -1,19 +0,0 @@ -//===-- Implementation of bcopy -------------------------------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#include "src/string/bcopy.h" -#include "src/__support/common.h" -#include "src/string/memory_utils/memmove_implementations.h" - -namespace __llvm_libc { - -LLVM_LIBC_FUNCTION(void, bcopy, (const void *src, void *dst, size_t count)) { - return inline_memmove(dst, src, count); -} - -} // namespace __llvm_libc diff --git a/libc/src/string/bcopy.h b/libc/src/string/bcopy.h deleted file mode 100644 index 12de749..0000000 --- a/libc/src/string/bcopy.h +++ /dev/null @@ -1,20 +0,0 @@ -//===-- Implementation header for bcopy -------------------------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_LIBC_SRC_STRING_BCOPY_H -#define LLVM_LIBC_SRC_STRING_BCOPY_H - -#include // size_t - -namespace __llvm_libc { - -void bcopy(const void *src, void *dest, size_t count); - -} // namespace __llvm_libc - -#endif // LLVM_LIBC_SRC_STRING_BCOPY_H diff --git a/libc/test/src/string/CMakeLists.txt b/libc/test/src/string/CMakeLists.txt index 8b427cc..b0b3529 100644 --- a/libc/test/src/string/CMakeLists.txt +++ b/libc/test/src/string/CMakeLists.txt @@ -3,18 +3,6 @@ add_libc_testsuite(libc_string_unittests) add_subdirectory(memory_utils) add_libc_unittest( - bcopy_test - SUITE - libc_string_unittests - SRCS - bcopy_test.cpp - DEPENDS - libc.src.string.bcopy - LINK_LIBRARIES - LibcMemoryHelpers -) - -add_libc_unittest( memccpy_test SUITE libc_string_unittests diff --git a/libc/test/src/string/bcopy_test.cpp b/libc/test/src/string/bcopy_test.cpp deleted file mode 100644 index fa57d25..0000000 --- a/libc/test/src/string/bcopy_test.cpp +++ /dev/null @@ -1,104 +0,0 @@ -//===-- Unittests for bcopy -----------------------------------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#include "src/__support/CPP/span.h" -#include "src/string/bcopy.h" -#include "utils/UnitTest/MemoryMatcher.h" -#include "utils/UnitTest/Test.h" - -using __llvm_libc::cpp::array; -using __llvm_libc::cpp::span; - -TEST(LlvmLibcBcopyTest, MoveZeroByte) { - char Buffer[] = {'a', 'b', 'y', 'z'}; - const char Expected[] = {'a', 'b', 'y', 'z'}; - void *const Dst = Buffer; - __llvm_libc::bcopy(Buffer + 2, Dst, 0); - ASSERT_MEM_EQ(Buffer, Expected); -} - -TEST(LlvmLibcBcopyTest, DstAndSrcPointToSameAddress) { - char Buffer[] = {'a', 'b'}; - const char Expected[] = {'a', 'b'}; - void *const Dst = Buffer; - __llvm_libc::bcopy(Buffer, Dst, 1); - ASSERT_MEM_EQ(Buffer, Expected); -} - -TEST(LlvmLibcBcopyTest, DstStartsBeforeSrc) { - // Set boundary at beginning and end for not overstepping when - // copy forward or backward. - char Buffer[] = {'z', 'a', 'b', 'c', 'z'}; - const char Expected[] = {'z', 'b', 'c', 'c', 'z'}; - void *const Dst = Buffer + 1; - __llvm_libc::bcopy(Buffer + 2, Dst, 2); - ASSERT_MEM_EQ(Buffer, Expected); -} - -TEST(LlvmLibcBcopyTest, DstStartsAfterSrc) { - char Buffer[] = {'z', 'a', 'b', 'c', 'z'}; - const char Expected[] = {'z', 'a', 'a', 'b', 'z'}; - void *const Dst = Buffer + 2; - __llvm_libc::bcopy(Buffer + 1, Dst, 2); - ASSERT_MEM_EQ(Buffer, Expected); -} - -// e.g. `Dst` follow `src`. -// str: [abcdefghij] -// [__src_____] -// [_____Dst__] -TEST(LlvmLibcBcopyTest, SrcFollowDst) { - char Buffer[] = {'z', 'a', 'b', 'z'}; - const char Expected[] = {'z', 'b', 'b', 'z'}; - void *const Dst = Buffer + 1; - __llvm_libc::bcopy(Buffer + 2, Dst, 1); - ASSERT_MEM_EQ(Buffer, Expected); -} - -TEST(LlvmLibcBcopyTest, DstFollowSrc) { - char Buffer[] = {'z', 'a', 'b', 'z'}; - const char Expected[] = {'z', 'a', 'a', 'z'}; - void *const Dst = Buffer + 2; - __llvm_libc::bcopy(Buffer + 1, Dst, 1); - ASSERT_MEM_EQ(Buffer, Expected); -} - -static constexpr int kMaxSize = 512; - -char GetRandomChar() { - static constexpr const uint64_t A = 1103515245; - static constexpr const uint64_t C = 12345; - static constexpr const uint64_t M = 1ULL << 31; - static uint64_t Seed = 123456789; - Seed = (A * Seed + C) % M; - return Seed; -} - -void Randomize(span Buffer) { - for (auto ¤t : Buffer) - current = GetRandomChar(); -} - -TEST(LlvmLibcBcopyTest, SizeSweep) { - using LargeBuffer = array; - LargeBuffer GroundTruth; - Randomize(GroundTruth); - for (int Size = 0; Size < kMaxSize; ++Size) { - for (int Offset = -Size; Offset < Size; ++Offset) { - LargeBuffer Buffer = GroundTruth; - LargeBuffer Expected = GroundTruth; - size_t DstOffset = kMaxSize; - size_t SrcOffset = kMaxSize + Offset; - for (int I = 0; I < Size; ++I) - Expected[DstOffset + I] = GroundTruth[SrcOffset + I]; - void *const Dst = Buffer.data() + DstOffset; - __llvm_libc::bcopy(Buffer.data() + SrcOffset, Dst, Size); - ASSERT_MEM_EQ(Buffer, Expected); - } - } -} diff --git a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel index 48c84fc..1aafa2a 100644 --- a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel +++ b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel @@ -1125,17 +1125,6 @@ libc_function( ) libc_function( - name = "bcopy", - srcs = ["src/string/bcopy.cpp"], - hdrs = ["src/string/bcopy.h"], - features = no_sanitize_features, - deps = [ - ":__support_common", - ":string_memory_utils", - ], -) - -libc_function( name = "memcmp", srcs = ["src/string/memcmp.cpp"], hdrs = ["src/string/memcmp.h"], diff --git a/utils/bazel/llvm-project-overlay/libc/test/src/string/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/test/src/string/BUILD.bazel index cfda301..8ccc627 100644 --- a/utils/bazel/llvm-project-overlay/libc/test/src/string/BUILD.bazel +++ b/utils/bazel/llvm-project-overlay/libc/test/src/string/BUILD.bazel @@ -147,18 +147,6 @@ libc_test( ) libc_test( - name = "bcopy_test", - srcs = ["bcopy_test.cpp"], - libc_function_deps = [ - "//libc:bcopy", - ], - deps = [ - "//libc:__support_cpp_span", - "//libc/utils/UnitTest:memory_matcher", - ], -) - -libc_test( name = "memcmp_test", srcs = ["memcmp_test.cpp"], libc_function_deps = [