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)
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)
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits