[libc-commits] [libc] 0443bfa - Revert "[libc] Apply no-builtin everywhere, remove unnecessary flags"

Guillaume Chatelet via libc-commits libc-commits at lists.llvm.org
Fri May 20 07:37:32 PDT 2022


Author: Guillaume Chatelet
Date: 2022-05-20T14:37:17Z
New Revision: 0443bfabe7ba0bc5365a34de14ab8d108d2f0cd0

URL: https://github.com/llvm/llvm-project/commit/0443bfabe7ba0bc5365a34de14ab8d108d2f0cd0
DIFF: https://github.com/llvm/llvm-project/commit/0443bfabe7ba0bc5365a34de14ab8d108d2f0cd0.diff

LOG: Revert "[libc] Apply no-builtin everywhere, remove unnecessary flags"

This reverts commit 94d6dd90576637fa0eb2c40ca92320ad4c1a6942.

Added: 
    

Modified: 
    libc/cmake/modules/LLVMLibCObjectRules.cmake
    libc/src/string/CMakeLists.txt
    utils/bazel/llvm-project-overlay/libc/BUILD.bazel
    utils/bazel/llvm-project-overlay/libc/libc_build_rules.bzl

Removed: 
    


################################################################################
diff  --git a/libc/cmake/modules/LLVMLibCObjectRules.cmake b/libc/cmake/modules/LLVMLibCObjectRules.cmake
index 2544a648c8a5..8e2f489752a6 100644
--- a/libc/cmake/modules/LLVMLibCObjectRules.cmake
+++ b/libc/cmake/modules/LLVMLibCObjectRules.cmake
@@ -3,7 +3,7 @@ set(OBJECT_LIBRARY_TARGET_TYPE "OBJECT_LIBRARY")
 function(_get_common_compile_options output_var)
   set(compile_options ${LLVM_CXX_STD_default} ${LIBC_COMPILE_OPTIONS_DEFAULT} ${ARGN})
   if(NOT ${LIBC_TARGET_OS} STREQUAL "windows")
-    set(compile_options ${compile_options} -fpie -ffreestanding -fno-builtin)
+    set(compile_options ${compile_options} -fpie -ffreestanding)
   endif()
   if(LLVM_COMPILER_IS_GCC_COMPATIBLE)
     list(APPEND compile_options "-fno-exceptions")

diff  --git a/libc/src/string/CMakeLists.txt b/libc/src/string/CMakeLists.txt
index 68962e21c15d..c4f45e633118 100644
--- a/libc/src/string/CMakeLists.txt
+++ b/libc/src/string/CMakeLists.txt
@@ -279,6 +279,7 @@ function(add_implementation name impl_name)
     ${ARGN})
 
   if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
+    list(APPEND ADD_IMPL_MLLVM_COMPILE_OPTIONS "-combiner-global-alias-analysis")
     # Note that '-mllvm' needs to be prefixed with 'SHELL:' to prevent CMake flag deduplication.
     foreach(opt IN LISTS ADD_IMPL_MLLVM_COMPILE_OPTIONS)
       list(APPEND ADD_IMPL_COMPILE_OPTIONS "SHELL:-mllvm ${opt}")
@@ -308,6 +309,9 @@ function(add_bcmp bcmp_name)
     DEPENDS
       .memory_utils.memory_utils
       libc.include.string
+    COMPILE_OPTIONS
+      -fno-builtin-memcmp
+      -fno-builtin-bcmp
     ${ARGN}
   )
 endfunction()
@@ -335,6 +339,8 @@ function(add_bzero bzero_name)
     DEPENDS
       .memory_utils.memset_implementation
       libc.include.string
+    COMPILE_OPTIONS
+      -fno-builtin-bzero
     ${ARGN}
   )
 endfunction()
@@ -362,6 +368,8 @@ function(add_memcmp memcmp_name)
     DEPENDS
       .memory_utils.memcmp_implementation
       libc.include.string
+    COMPILE_OPTIONS
+      -fno-builtin-memcmp
     ${ARGN}
   )
 endfunction()
@@ -392,6 +400,8 @@ function(add_memcpy memcpy_name)
     DEPENDS
       .memory_utils.memcpy_implementation
       libc.include.string
+    COMPILE_OPTIONS
+      -fno-builtin-memcpy
     ${ARGN}
   )
 endfunction()
@@ -424,6 +434,8 @@ function(add_memmove memmove_name)
     DEPENDS
       .memory_utils.memory_utils
       libc.include.string
+    COMPILE_OPTIONS
+      -fno-builtin
     ${ARGN}
   )
 endfunction()
@@ -456,6 +468,8 @@ function(add_memset memset_name)
     DEPENDS
       .memory_utils.memset_implementation
       libc.include.string
+    COMPILE_OPTIONS
+      -fno-builtin-memset
     ${ARGN}
   )
 endfunction()

diff  --git a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
index c23a6fe53b7f..5f13a26c9fd8 100644
--- a/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/libc/BUILD.bazel
@@ -85,10 +85,7 @@ cc_library(
     hdrs = [
         "src/__support/CPP/UInt.h",
     ],
-    deps = [
-        "__support_cpp_array",
-        ":libc_root",
-    ],
+    deps = [":libc_root","__support_cpp_array"],
 )
 
 cc_library(
@@ -96,10 +93,7 @@ cc_library(
     hdrs = [
         "src/__support/CPP/TypeTraits.h",
     ],
-    deps = [
-        "__support_cpp_uint",
-        ":libc_root",
-    ],
+    deps = [":libc_root","__support_cpp_uint"],
 )
 
 cc_library(
@@ -812,6 +806,12 @@ libc_function(
     name = "memcpy",
     srcs = ["src/string/memcpy.cpp"],
     hdrs = ["src/string/memcpy.h"],
+    copts = [
+        "-fno-builtin-memcpy",
+        "-fno-builtin-memmove",
+        "-mllvm -combiner-global-alias-analysis",
+        "-mllvm --tail-merge-threshold=0",
+    ],
     features = no_sanitize_features,
     deps = [
         ":__support_common",
@@ -823,6 +823,10 @@ libc_function(
     name = "memset",
     srcs = ["src/string/memset.cpp"],
     hdrs = ["src/string/memset.h"],
+    copts = [
+        "-fno-builtin-memset",
+        "-mllvm -combiner-global-alias-analysis",
+    ],
     features = no_sanitize_features,
     deps = [
         ":__support_common",
@@ -834,6 +838,10 @@ libc_function(
     name = "memmove",
     srcs = ["src/string/memmove.cpp"],
     hdrs = ["src/string/memmove.h"],
+    copts = [
+        "-fno-builtin-memmove",
+        "-mllvm -combiner-global-alias-analysis",
+    ],
     features = no_sanitize_features,
     deps = [
         ":__support_common",
@@ -847,6 +855,10 @@ libc_function(
     name = "memcmp",
     srcs = ["src/string/memcmp.cpp"],
     hdrs = ["src/string/memcmp.h"],
+    copts = [
+        "-fno-builtin-memcmp",
+        "-mllvm -combiner-global-alias-analysis",
+    ],
     features = no_sanitize_features,
     deps = [
         ":__support_common",
@@ -859,6 +871,10 @@ libc_function(
     name = "bcmp",
     srcs = ["src/string/bcmp.cpp"],
     hdrs = ["src/string/bcmp.h"],
+    copts = [
+        "-fno-builtin-bcmp",
+        "-fno-builtin-memcmp",
+    ],
     features = no_sanitize_features,
     deps = [
         ":__support_common",
@@ -870,6 +886,11 @@ libc_function(
     name = "bzero",
     srcs = ["src/string/bzero.cpp"],
     hdrs = ["src/string/bzero.h"],
+    copts = [
+        "-fno-builtin-bzero",
+        "-fno-builtin-memset",
+        "-mllvm -combiner-global-alias-analysis",
+    ],
     features = no_sanitize_features,
     deps = [
         ":__support_common",

diff  --git a/utils/bazel/llvm-project-overlay/libc/libc_build_rules.bzl b/utils/bazel/llvm-project-overlay/libc/libc_build_rules.bzl
index 8b4882d0c504..8e86e8f8a994 100644
--- a/utils/bazel/llvm-project-overlay/libc/libc_build_rules.bzl
+++ b/utils/bazel/llvm-project-overlay/libc/libc_build_rules.bzl
@@ -31,7 +31,6 @@ def libc_function(name, srcs, deps = None, copts = None, **kwargs):
     deps.append(LIBC_ROOT_TARGET)
     copts = copts or []
     copts.append("-O3")
-    copts.append("-fno-builtin")
 
     # We compile the code twice, the first target is suffixed with ".__internal__" and contains the
     # C++ functions in the "__llvm_libc" namespace. This allows us to test the function in the


        


More information about the libc-commits mailing list