[PATCH] D38859: [clang] Enable clang build with LLVM_BUILD_INSTRUMENTED without setting LLVM_PROFTDATA
Alexander Shaposhnikov via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Oct 12 12:46:51 PDT 2017
alexshap created this revision.
Herald added a subscriber: mgorny.
At the moment if LLVM_BUILD_INSTRUMENTED is set to True
one has to set LLVM_PROFTDATA even if it's not necessary (because of message(FATAL_ERROR ...)).
Building instrumented Clang is useful even if one doesn't plan to use the target generate-profdata
(currently that target would use only llvm/tools/clang/utils/perf-training/cxx/hello_world.cpp as a source).
For example, one can run the instrumented version of Clang via a separate build system against a different codebase,
collect the profiles and merge them by lllvm-profdata later.
Repository:
rL LLVM
https://reviews.llvm.org/D38859
Files:
utils/perf-training/CMakeLists.txt
Index: utils/perf-training/CMakeLists.txt
===================================================================
--- utils/perf-training/CMakeLists.txt
+++ utils/perf-training/CMakeLists.txt
@@ -30,13 +30,18 @@
endif()
if(NOT LLVM_PROFDATA)
- message(FATAL_ERROR "Must set LLVM_PROFDATA to point to llvm-profdata to use for merging PGO data")
+ set(LLVM_PROFDATA ${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-profdata)
+ message(STATUS "LLVM_PROFDATA is set to point to llvm-profdata built from the sources")
+ set(GENERATE_PROFDATA_DEPENDS_ON_LLVM_PROFTDATA TRUE)
endif()
-
+
add_custom_target(generate-profdata
COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/perf-helper.py merge ${LLVM_PROFDATA} ${CMAKE_CURRENT_BINARY_DIR}/clang.profdata ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Merging profdata"
DEPENDS generate-profraw)
+ if (GENERATE_PROFDATA_DEPENDS_ON_LLVM_PROFTDATA)
+ add_dependencies(generate-profdata llvm-profdata)
+ endif()
endif()
find_program(DTRACE dtrace)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D38859.118828.patch
Type: text/x-patch
Size: 1019 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20171012/f66a961f/attachment.bin>
More information about the cfe-commits
mailing list