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

Reply via email to