Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Fuchsia] Support PGO #128680

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions clang/cmake/caches/Fuchsia-stage2-instrumented.cmake
Original file line number Diff line number Diff line change
@@ -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 "")
107 changes: 76 additions & 31 deletions clang/cmake/caches/Fuchsia.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,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()
Expand Down Expand Up @@ -165,33 +175,57 @@ endif()
set(BOOTSTRAP_LLVM_ENABLE_LLD ON CACHE BOOL "")
set(BOOTSTRAP_LLVM_ENABLE_LTO 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)

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)
if(FUCHSIA_ENABLE_PGO)
set(BOOTSTRAP_LLVM_BUILD_INSTRUMENTED ON CACHE BOOL "")

set(_FUCHSIA_BOOTSTRAP_TARGETS
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
stage2-check-lldb
stage2-debugger-distribution
stage2-install-debugger-distribution
stage2-install-debugger-distribution-stripped
stage2-install-debugger-distribution-toolchain)
endif()
else()
set(_FUCHSIA_BOOTSTRAP_TARGETS
check-all
check-clang
check-lld
check-llvm
llvm-config
clang
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)
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)
endif()
endif()

set(LLVM_ENABLE_PROJECTS ${_FUCHSIA_ENABLE_PROJECTS} CACHE STRING "")
Expand All @@ -200,6 +234,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}")
Expand All @@ -209,13 +244,23 @@ 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
builtins
runtimes
CACHE STRING "")
set(CLANG_BOOTSTRAP_CMAKE_ARGS
${EXTRA_ARGS}
-C ${CMAKE_CURRENT_LIST_DIR}/Fuchsia-stage2.cmake
CACHE STRING "")
if(FUCHSIA_ENABLE_PGO)
set(CLANG_BOOTSTRAP_CMAKE_ARGS
${EXTRA_ARGS}
-C ${CMAKE_CURRENT_LIST_DIR}/Fuchsia-stage2-instrumented.cmake
CACHE STRING "")
else()
set(CLANG_BOOTSTRAP_CMAKE_ARGS
${EXTRA_ARGS}
-C ${CMAKE_CURRENT_LIST_DIR}/Fuchsia-stage2.cmake
CACHE STRING "")
endif()