https://github.com/petrhosek updated https://github.com/llvm/llvm-project/pull/120323
>From 025652fd24c1dd13a3d628bd1a56c26e715badaa Mon Sep 17 00:00:00 2001 From: Petr Hosek <pho...@google.com> Date: Fri, 6 Mar 2020 17:23:35 -0800 Subject: [PATCH] [Fuchsia] Support PGO Enable 2-stage builds with PGO. --- .../caches/Fuchsia-stage2-instrumented.cmake | 44 +++++++++++++++ clang/cmake/caches/Fuchsia.cmake | 55 +++++++++++-------- 2 files changed, 76 insertions(+), 23 deletions(-) create mode 100644 clang/cmake/caches/Fuchsia-stage2-instrumented.cmake diff --git a/clang/cmake/caches/Fuchsia-stage2-instrumented.cmake b/clang/cmake/caches/Fuchsia-stage2-instrumented.cmake new file mode 100644 index 000000000000000..b3c3b63066363c4 --- /dev/null +++ b/clang/cmake/caches/Fuchsia-stage2-instrumented.cmake @@ -0,0 +1,44 @@ +# This file sets up a CMakeCache for the second stage of a Fuchsia toolchain build. + +include(${CMAKE_CURRENT_LIST_DIR}/Fuchsia-stage2.cmake) + +if(NOT APPLE) + set(BOOTSTRAP_LLVM_ENABLE_LLD ON CACHE BOOL "") +endif() + +set(CLANG_BOOTSTRAP_TARGETS + check-all + check-clang + check-lld + check-llvm + clang + clang-test-depends + toolchain-distribution + install-toolchain-distribution + install-toolchain-distribution-stripped + install-toolchain-distribution-toolchain + lld-test-depends + llvm-config + llvm-test-depends + test-depends + test-suite CACHE STRING "") + +get_cmake_property(variableNames VARIABLES) +foreach(variableName ${variableNames}) + if(variableName MATCHES "^STAGE2_") + string(REPLACE "STAGE2_" "" new_name ${variableName}) + list(APPEND EXTRA_ARGS "-D${new_name}=${${variableName}}") + endif() +endforeach() + +set(CLANG_PGO_TRAINING_DEPS + builtins + runtimes + CACHE STRING "") + +# Setup the bootstrap build. +set(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "") +set(CLANG_BOOTSTRAP_CMAKE_ARGS + ${EXTRA_ARGS} + -C ${CMAKE_CURRENT_LIST_DIR}/Fuchsia-stage2.cmake + CACHE STRING "") diff --git a/clang/cmake/caches/Fuchsia.cmake b/clang/cmake/caches/Fuchsia.cmake index 07637cd0ed08f08..db0d3894e296606 100644 --- a/clang/cmake/caches/Fuchsia.cmake +++ b/clang/cmake/caches/Fuchsia.cmake @@ -127,6 +127,16 @@ else() set(LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "") set(LIBCXX_HARDENING_MODE "none" CACHE STRING "") set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "") + set(COMPILER_RT_BUILD_LIBFUZZER OFF CACHE BOOL "") + set(COMPILER_RT_BUILD_PROFILE ON CACHE BOOL "") + set(COMPILER_RT_BUILD_SANITIZERS OFF CACHE BOOL "") + set(COMPILER_RT_BUILD_XRAY OFF CACHE BOOL "") + set(COMPILER_RT_USE_BUILTINS_LIBRARY ON CACHE BOOL "") + set(COMPILER_RT_DEFAULT_TARGET_ONLY ON CACHE BOOL "") + set(SANITIZER_CXX_ABI "libc++" CACHE STRING "") + set(SANITIZER_CXX_ABI_INTREE ON CACHE BOOL "") + set(SANITIZER_TEST_CXX "libc++" CACHE STRING "") + set(SANITIZER_TEST_CXX_INTREE ON CACHE BOOL "") set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "") set(RUNTIMES_CMAKE_ARGS "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.13;-DCMAKE_OSX_ARCHITECTURES=arm64|x86_64" CACHE STRING "") endif() @@ -165,34 +175,29 @@ endif() set(BOOTSTRAP_LLVM_ENABLE_LLD ON CACHE BOOL "") set(BOOTSTRAP_LLVM_ENABLE_LTO ON CACHE BOOL "") +set(BOOTSTRAP_LLVM_BUILD_INSTRUMENTED ON CACHE BOOL "") set(_FUCHSIA_BOOTSTRAP_TARGETS - check-all - check-clang - check-lld - check-llvm - check-polly - llvm-config - clang-test-depends - lld-test-depends - llvm-test-depends - test-suite - test-depends - toolchain-distribution - install-toolchain-distribution - install-toolchain-distribution-stripped - install-toolchain-distribution-toolchain - clang) + generate-profdata + stage2 + stage2-toolchain-distribution + stage2-install-toolchain-distribution + stage2-install-toolchain-distribution-stripped + stage2-install-toolchain-distribution-toolchain + stage2-check-all + stage2-check-lld + stage2-check-llvm + stage2-check-clang + stage2-test-suite) if(FUCHSIA_ENABLE_LLDB) list(APPEND _FUCHSIA_ENABLE_PROJECTS lldb) list(APPEND _FUCHSIA_BOOTSTRAP_TARGETS - check-lldb - lldb-test-depends - debugger-distribution - install-debugger-distribution - install-debugger-distribution-stripped - install-debugger-distribution-toolchain) + stage2-check-lldb + stage2-debugger-distribution + stage2-install-debugger-distribution + stage2-install-debugger-distribution-stripped + stage2-install-debugger-distribution-toolchain) endif() set(LLVM_ENABLE_PROJECTS ${_FUCHSIA_ENABLE_PROJECTS} CACHE STRING "") @@ -201,6 +206,7 @@ set(CLANG_BOOTSTRAP_TARGETS ${_FUCHSIA_BOOTSTRAP_TARGETS} CACHE STRING "") get_cmake_property(variableNames VARIABLES) foreach(variableName ${variableNames}) if(variableName MATCHES "^STAGE2_") + list(APPEND EXTRA_ARGS "-D${variableName}=${${variableName}}") string(REPLACE "STAGE2_" "" new_name ${variableName}) string(REPLACE ";" "|" value "${${variableName}}") list(APPEND EXTRA_ARGS "-D${new_name}=${value}") @@ -210,6 +216,9 @@ endforeach() # TODO: This is a temporary workaround until we figure out the right solution. set(BOOTSTRAP_LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "") +set(LLVM_BUILTIN_TARGETS "default" CACHE STRING "") +set(LLVM_RUNTIME_TARGETS "default" CACHE STRING "") + # Setup the bootstrap build. set(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "") set(CLANG_BOOTSTRAP_EXTRA_DEPS @@ -218,5 +227,5 @@ set(CLANG_BOOTSTRAP_EXTRA_DEPS CACHE STRING "") set(CLANG_BOOTSTRAP_CMAKE_ARGS ${EXTRA_ARGS} - -C ${CMAKE_CURRENT_LIST_DIR}/Fuchsia-stage2.cmake + -C ${CMAKE_CURRENT_LIST_DIR}/Fuchsia-stage2-instrumented.cmake CACHE STRING "") _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits