Skip to content

Commit

Permalink
Revert "[libc] Apply no-builtin everywhere, remove unnecessary flags"
Browse files Browse the repository at this point in the history
This reverts commit 94d6dd9.
  • Loading branch information
gchatelet committed May 20, 2022
1 parent edc7a08 commit 0443bfa
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 10 deletions.
2 changes: 1 addition & 1 deletion libc/cmake/modules/LLVMLibCObjectRules.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down
14 changes: 14 additions & 0 deletions libc/src/string/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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}")
Expand Down Expand Up @@ -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()
Expand Down Expand Up @@ -335,6 +339,8 @@ function(add_bzero bzero_name)
DEPENDS
.memory_utils.memset_implementation
libc.include.string
COMPILE_OPTIONS
-fno-builtin-bzero
${ARGN}
)
endfunction()
Expand Down Expand Up @@ -362,6 +368,8 @@ function(add_memcmp memcmp_name)
DEPENDS
.memory_utils.memcmp_implementation
libc.include.string
COMPILE_OPTIONS
-fno-builtin-memcmp
${ARGN}
)
endfunction()
Expand Down Expand Up @@ -392,6 +400,8 @@ function(add_memcpy memcpy_name)
DEPENDS
.memory_utils.memcpy_implementation
libc.include.string
COMPILE_OPTIONS
-fno-builtin-memcpy
${ARGN}
)
endfunction()
Expand Down Expand Up @@ -424,6 +434,8 @@ function(add_memmove memmove_name)
DEPENDS
.memory_utils.memory_utils
libc.include.string
COMPILE_OPTIONS
-fno-builtin
${ARGN}
)
endfunction()
Expand Down Expand Up @@ -456,6 +468,8 @@ function(add_memset memset_name)
DEPENDS
.memory_utils.memset_implementation
libc.include.string
COMPILE_OPTIONS
-fno-builtin-memset
${ARGN}
)
endfunction()
Expand Down
37 changes: 29 additions & 8 deletions utils/bazel/llvm-project-overlay/libc/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -85,21 +85,15 @@ cc_library(
hdrs = [
"src/__support/CPP/UInt.h",
],
deps = [
"__support_cpp_array",
":libc_root",
],
deps = [":libc_root","__support_cpp_array"],
)

cc_library(
name = "__support_cpp_type_traits",
hdrs = [
"src/__support/CPP/TypeTraits.h",
],
deps = [
"__support_cpp_uint",
":libc_root",
],
deps = [":libc_root","__support_cpp_uint"],
)

cc_library(
Expand Down Expand Up @@ -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",
Expand All @@ -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",
Expand All @@ -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",
Expand All @@ -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",
Expand All @@ -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",
Expand All @@ -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",
Expand Down
1 change: 0 additions & 1 deletion utils/bazel/llvm-project-overlay/libc/libc_build_rules.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 0443bfa

Please sign in to comment.