[all-commits] [llvm/llvm-project] b2a9ea: [libc] Apply no-builtin everywhere, remove unneces...

Guillaume Chatelet via All-commits all-commits at lists.llvm.org
Wed Jun 1 06:35:13 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b2a9ea4420127d10b18ae648b16757665f8bbd7c
      https://github.com/llvm/llvm-project/commit/b2a9ea4420127d10b18ae648b16757665f8bbd7c
  Author: Guillaume Chatelet <gchatelet at google.com>
  Date:   2022-06-01 (Wed, 01 Jun 2022)

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

  Log Message:
  -----------
  [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




More information about the All-commits mailing list