llvm-project/libc
Guillaume Chatelet b2a9ea4420 [libc] Apply no-builtin everywhere, remove unnecessary flags
Note, this is a re-submission of D125894 with `features = ["-header_modules"]`
added to the main BUILD.bazel file.

Some functions like `stpncpy` are implemented in terms of `memset` but are not
currently using `-fno-builtin-memset`. This is somewhat hidden by the fact that
we use `-ffreestanding` globally and that `-ffreestanding` implies
`-fno-builtin` for Clang.

This patch also removes `-mllvm -combiner-global-alias-analysis` that is Clang
specific and that does not bring substantial gains on modern processors.

Also we keep `-mllvm --tail-merge-threshold=0` for aarch64 in CMakeLists.txt
but we omit it in the Bazel config. This is because Bazel consumes the source
files directly and so it can use PGO to take optimal decisions locally.

Differential Revision: https://reviews.llvm.org/D126773
2022-06-01 13:34:36 +00:00
..
AOR_v20.02 Harmonize Python shebang 2020-07-16 21:53:45 +02:00
benchmarks [NFC][libc] Disable benchmarks when the LLVM benchmark target is not available 2022-03-29 08:45:53 +00:00
cmake/modules [libc] Apply no-builtin everywhere, remove unnecessary flags 2022-06-01 13:34:36 +00:00
config [libc] add fprintf and file_writer 2022-05-31 13:59:19 -07:00
docs [libc][docs] Use same formatting for headers in source_layout 2022-05-23 21:47:22 +00:00
fuzzing [libc][NFC] split standalone_cpp into single headers 2022-03-08 11:56:08 -08:00
include [libc] Add the pthread_mutex_t type. 2022-05-24 22:48:14 +00:00
lib [libc] add malloc funcs as external entrypoints 2021-10-27 10:21:01 -07:00
loader [libc] Use real objects and archives in integration tests. 2022-03-24 07:02:33 +00:00
spec [libc] Add global stdout and stderr objects. 2022-05-27 05:43:49 +00:00
src [libc] Apply no-builtin everywhere, remove unnecessary flags 2022-06-01 13:34:36 +00:00
test [libc][mem*] Address facility + test enum support 2022-06-01 09:09:43 +00:00
utils [libc] Add support for enum in EXPECT_EQ 2022-06-01 08:42:18 +00:00
.clang-tidy [libc] Add a naming rule for global constants. 2022-01-19 22:11:16 +00:00
.gitignore [libc][Obvious] Add build folder to .gitignore. 2022-03-04 13:16:55 -05:00
CMakeLists.txt [libc] Implement FLAGS option for generating all combinations for targets. 2022-06-01 00:54:07 -04:00
LICENSE.TXT Rename top-level LICENSE.txt files to LICENSE.TXT 2021-03-10 21:26:24 -08:00
README.txt

README.txt

LLVM libc
=========

This directory and its subdirectories contain source code for llvm-libc,
a retargetable implementation of the C standard library.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.