]> granicus.if.org Git - clang/commitdiff
[clang] Enable clang build with LLVM_BUILD_INSTRUMENTED without setting LLVM_PROFTDATA
authorAlexander Shaposhnikov <shal1t712@gmail.com>
Fri, 13 Oct 2017 03:21:39 +0000 (03:21 +0000)
committerAlexander Shaposhnikov <shal1t712@gmail.com>
Fri, 13 Oct 2017 03:21:39 +0000 (03:21 +0000)
At the moment if LLVM_BUILD_INSTRUMENTED is set to True
one has to set LLVM_PROFTDATA even if it's not really used
(because of message(FATAL_ERROR ...)).
Building the instrumented version of Clang can be useful even if
one doesn't plan to build the target generate-profdata
(currently that target would only compile utils/perf-training/cxx/hello_world.cpp).
For example, one can run the instrumented version of Clang
via a separate build system against a different codebase,
collect/analyze the profiles and merge them by llvm-profdata later.

Differential revision: https://reviews.llvm.org/D38859

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@315665 91177308-0d34-0410-b5e6-96231b3b80d8

utils/perf-training/CMakeLists.txt

index c046a1dac40bcc87fe9d34f4dc05ec67e9275d20..39f9a4ca3c130f2dcf72923d696a45d42e27c880 100644 (file)
@@ -30,13 +30,13 @@ if(LLVM_BUILD_INSTRUMENTED)
   endif()
 
   if(NOT LLVM_PROFDATA)
-    message(FATAL_ERROR "Must set LLVM_PROFDATA to point to llvm-profdata to use for merging PGO data")
+    message(STATUS "To enable merging PGO data LLVM_PROFDATA has to point to llvm-profdata")
+  else()
+    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)
   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)
 endif()
 
 find_program(DTRACE dtrace)