phosek updated this revision to Diff 527084.
phosek marked an inline comment as done.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D151595/new/
https://reviews.llvm.org/D151595
Files:
bolt/CMakeLists.txt
bolt/cmake/modules/AddBOLT.cmake
bolt/test/CMakeLists.txt
bolt/tools/CMakeLists.txt
bolt/tools/bat-dump/CMakeLists.txt
bolt/tools/driver/CMakeLists.txt
bolt/tools/heatmap/CMakeLists.txt
bolt/tools/merge-fdata/CMakeLists.txt
clang/cmake/caches/Fuchsia-stage2.cmake
llvm/cmake/modules/AddLLVM.cmake
Index: llvm/cmake/modules/AddLLVM.cmake
===================================================================
--- llvm/cmake/modules/AddLLVM.cmake
+++ llvm/cmake/modules/AddLLVM.cmake
@@ -2121,7 +2121,7 @@
if (NOT LLVM_ENABLE_IDE AND NOT ARG_ALWAYS_GENERATE)
add_llvm_install_targets(install-${name}
DEPENDS ${name} ${dest}
- COMPONENT ${name}
+ COMPONENT ${component}
SYMLINK ${dest})
endif()
endfunction()
Index: clang/cmake/caches/Fuchsia-stage2.cmake
===================================================================
--- clang/cmake/caches/Fuchsia-stage2.cmake
+++ clang/cmake/caches/Fuchsia-stage2.cmake
@@ -6,7 +6,7 @@
set(PACKAGE_VENDOR Fuchsia CACHE STRING "")
-set(_FUCHSIA_ENABLE_PROJECTS "clang;clang-tools-extra;lld;llvm;polly")
+set(_FUCHSIA_ENABLE_PROJECTS "bolt;clang;clang-tools-extra;lld;llvm;polly")
set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind" CACHE STRING "")
set(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "")
@@ -328,6 +328,7 @@
CACHE STRING "")
set(LLVM_Toolchain_DISTRIBUTION_COMPONENTS
+ bolt
clang
lld
clang-apply-replacements
Index: bolt/tools/merge-fdata/CMakeLists.txt
===================================================================
--- bolt/tools/merge-fdata/CMakeLists.txt
+++ bolt/tools/merge-fdata/CMakeLists.txt
@@ -8,14 +8,8 @@
DEPENDS
intrinsics_gen
)
-set_target_properties(merge-fdata PROPERTIES FOLDER "BOLT")
add_dependencies(bolt merge-fdata)
-install(PROGRAMS
- ${CMAKE_BINARY_DIR}/bin/merge-fdata
- DESTINATION ${CMAKE_INSTALL_BINDIR}
- COMPONENT bolt
- )
# Emit relocations for BOLT meta test (bolt/test/runtime/meta-merge-fdata.test)
if (BOLT_INCLUDE_TESTS AND UNIX AND NOT APPLE)
Index: bolt/tools/heatmap/CMakeLists.txt
===================================================================
--- bolt/tools/heatmap/CMakeLists.txt
+++ bolt/tools/heatmap/CMakeLists.txt
@@ -5,7 +5,7 @@
Support
)
-add_bolt_tool(llvm-bolt-heatmap
+add_bolt_executable(llvm-bolt-heatmap
heatmap.cpp
DISABLE_LLVM_LINK_LLVM_DYLIB
)
@@ -16,5 +16,3 @@
LLVMBOLTRewrite
LLVMBOLTUtils
)
-
-set_target_properties(llvm-bolt-heatmap PROPERTIES FOLDER "BOLT")
Index: bolt/tools/driver/CMakeLists.txt
===================================================================
--- bolt/tools/driver/CMakeLists.txt
+++ bolt/tools/driver/CMakeLists.txt
@@ -30,22 +30,6 @@
add_bolt_tool_symlink(perf2bolt llvm-bolt)
add_bolt_tool_symlink(llvm-boltdiff llvm-bolt)
-set(BOLT_DEPENDS
- llvm-bolt
- perf2bolt
- llvm-boltdiff
- )
-
-add_custom_target(bolt DEPENDS ${BOLT_DEPENDS})
-install(PROGRAMS
- ${CMAKE_BINARY_DIR}/bin/llvm-bolt
- ${CMAKE_BINARY_DIR}/bin/perf2bolt
- ${CMAKE_BINARY_DIR}/bin/llvm-boltdiff
- DESTINATION ${CMAKE_INSTALL_BINDIR}
- COMPONENT bolt
- )
-add_llvm_install_targets(install-bolt DEPENDS bolt COMPONENT bolt)
-set_target_properties(bolt PROPERTIES FOLDER "BOLT")
-set_target_properties(install-bolt PROPERTIES FOLDER "BOLT")
+add_dependencies(bolt llvm-bolt)
-include_directories( ${BOLT_SOURCE_DIR}/lib )
+include_directories(${BOLT_SOURCE_DIR}/lib)
Index: bolt/tools/bat-dump/CMakeLists.txt
===================================================================
--- bolt/tools/bat-dump/CMakeLists.txt
+++ bolt/tools/bat-dump/CMakeLists.txt
@@ -3,7 +3,7 @@
Support
)
-add_llvm_tool(llvm-bat-dump
+add_bolt_executable(llvm-bat-dump
bat-dump.cpp
DISABLE_LLVM_LINK_LLVM_DYLIB
@@ -13,5 +13,3 @@
PRIVATE
LLVMBOLTProfile
)
-
-set_target_properties(llvm-bat-dump PROPERTIES FOLDER "BOLT")
Index: bolt/tools/CMakeLists.txt
===================================================================
--- bolt/tools/CMakeLists.txt
+++ bolt/tools/CMakeLists.txt
@@ -2,16 +2,6 @@
"Path for binary subdirectory (defaults to '${CMAKE_INSTALL_BINDIR}')")
mark_as_advanced(BOLT_TOOLS_INSTALL_DIR)
-# Move these macros to AddBolt if such a CMake module is ever created.
-
-macro(add_bolt_tool name)
- llvm_add_tool(BOLT ${ARGV})
-endmacro()
-
-macro(add_bolt_tool_symlink name)
- llvm_add_tool_symlink(BOLT ${ARGV})
-endmacro()
-
add_subdirectory(driver)
add_subdirectory(llvm-bolt-fuzzer)
add_subdirectory(bat-dump)
Index: bolt/test/CMakeLists.txt
===================================================================
--- bolt/test/CMakeLists.txt
+++ bolt/test/CMakeLists.txt
@@ -37,7 +37,6 @@
lld
llvm-config
llvm-bolt
- llvm-boltdiff
llvm-bolt-heatmap
llvm-bat-dump
llvm-dwarfdump
@@ -52,7 +51,6 @@
llvm-objcopy
merge-fdata
not
- perf2bolt
split-file
yaml2obj
)
Index: bolt/cmake/modules/AddBOLT.cmake
===================================================================
--- /dev/null
+++ bolt/cmake/modules/AddBOLT.cmake
@@ -0,0 +1,36 @@
+include(GNUInstallDirs)
+include(LLVMDistributionSupport)
+
+macro(add_bolt_executable name)
+ add_llvm_executable(${name} ${ARGN})
+ set_target_properties(${name} PROPERTIES FOLDER "BOLT")
+endmacro()
+
+macro(add_bolt_tool name)
+ if (NOT BOLT_BUILD_TOOLS)
+ set(EXCLUDE_FROM_ALL ON)
+ endif()
+
+ add_bolt_executable(${name} ${ARGN})
+
+ if (BOLT_BUILD_TOOLS)
+ get_target_export_arg(${name} BOLT export_to_bolttargets)
+ install(TARGETS ${name}
+ ${export_to_bolttargets}
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
+ COMPONENT bolt)
+
+ if(NOT LLVM_ENABLE_IDE)
+ add_llvm_install_targets(install-${name}
+ DEPENDS ${name}
+ COMPONENT bolt)
+ endif()
+ set_property(GLOBAL APPEND PROPERTY BOLT_EXPORTS ${name})
+ endif()
+endmacro()
+
+macro(add_bolt_tool_symlink name dest)
+ llvm_add_tool_symlink(BOLT ${name} ${dest} ALWAYS_GENERATE)
+ # Always generate install targets
+ llvm_install_symlink(BOLT ${name} ${dest} ALWAYS_GENERATE COMPONENT bolt)
+endmacro()
Index: bolt/CMakeLists.txt
===================================================================
--- bolt/CMakeLists.txt
+++ bolt/CMakeLists.txt
@@ -4,6 +4,9 @@
set(BOLT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
set(CMAKE_CXX_STANDARD 17)
+# Add path for custom modules.
+list(INSERT CMAKE_MODULE_PATH 0 "${BOLT_SOURCE_DIR}/cmake/modules")
+
# Determine default set of targets to build -- the intersection of
# those BOLT supports and those LLVM is targeting.
set(BOLT_TARGETS_TO_BUILD_all "AArch64;X86")
@@ -111,6 +114,15 @@
find_program(GNU_LD_EXECUTABLE NAMES ${LLVM_DEFAULT_TARGET_TRIPLE}-ld.bfd ld.bfd DOC "GNU ld")
+include(AddBOLT)
+
+option(BOLT_BUILD_TOOLS
+ "Build the BOLT tools. If OFF, just generate build targets." ON)
+
+add_custom_target(bolt)
+set_target_properties(bolt PROPERTIES FOLDER "BOLT")
+add_llvm_install_targets(install-bolt DEPENDS bolt COMPONENT bolt)
+
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/include
${CMAKE_CURRENT_BINARY_DIR}/include
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits