| Chris Bieneman | d8b5bde | 2016-01-15 21:21:12 +0000 | [diff] [blame] | 1 | if (CMAKE_CFG_INTDIR STREQUAL ".") | 
|  | 2 | set(LLVM_BUILD_MODE ".") | 
|  | 3 | else () | 
|  | 4 | set(LLVM_BUILD_MODE "%(build_mode)s") | 
|  | 5 | endif () | 
|  | 6 |  | 
|  | 7 | string(REPLACE ${CMAKE_CFG_INTDIR} ${LLVM_BUILD_MODE} CLANG_TOOLS_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR}) | 
|  | 8 |  | 
| Chris Bieneman | ae54339 | 2015-12-16 01:02:44 +0000 | [diff] [blame] | 9 | if(LLVM_BUILD_INSTRUMENTED) | 
| Chris Bieneman | ae54339 | 2015-12-16 01:02:44 +0000 | [diff] [blame] | 10 | configure_lit_site_cfg( | 
|  | 11 | ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in | 
| Chris Bieneman | d8b5bde | 2016-01-15 21:21:12 +0000 | [diff] [blame] | 12 | ${CMAKE_CURRENT_BINARY_DIR}/pgo-data/lit.site.cfg | 
| Chris Bieneman | ae54339 | 2015-12-16 01:02:44 +0000 | [diff] [blame] | 13 | ) | 
|  | 14 |  | 
|  | 15 | add_lit_testsuite(generate-profraw "Generating clang PGO data" | 
| Chris Bieneman | d8b5bde | 2016-01-15 21:21:12 +0000 | [diff] [blame] | 16 | ${CMAKE_CURRENT_BINARY_DIR}/pgo-data/ | 
| Chris Bieneman | ae54339 | 2015-12-16 01:02:44 +0000 | [diff] [blame] | 17 | DEPENDS clang clear-profraw | 
|  | 18 | ) | 
|  | 19 |  | 
|  | 20 | add_custom_target(clear-profraw | 
| Chris Bieneman | d8b5bde | 2016-01-15 21:21:12 +0000 | [diff] [blame] | 21 | COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/perf-helper.py clean ${CMAKE_CURRENT_BINARY_DIR} profraw | 
| Chris Bieneman | ae54339 | 2015-12-16 01:02:44 +0000 | [diff] [blame] | 22 | COMMENT "Clearing old profraw data") | 
|  | 23 |  | 
|  | 24 | if(NOT LLVM_PROFDATA) | 
|  | 25 | find_program(LLVM_PROFDATA llvm-profdata) | 
|  | 26 | endif() | 
|  | 27 |  | 
|  | 28 | if(NOT LLVM_PROFDATA) | 
|  | 29 | message(FATAL_ERROR "Must set LLVM_PROFDATA to point to llvm-profdata to use for merging PGO data") | 
|  | 30 | endif() | 
|  | 31 |  | 
|  | 32 | add_custom_target(generate-profdata | 
|  | 33 | COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/perf-helper.py merge ${LLVM_PROFDATA} ${CMAKE_CURRENT_BINARY_DIR}/clang.profdata ${CMAKE_CURRENT_BINARY_DIR} | 
|  | 34 | COMMENT "Merging profdata" | 
|  | 35 | DEPENDS generate-profraw) | 
|  | 36 | endif() | 
| Chris Bieneman | d8b5bde | 2016-01-15 21:21:12 +0000 | [diff] [blame] | 37 |  | 
|  | 38 | find_program(DTRACE dtrace) | 
|  | 39 | if(DTRACE) | 
|  | 40 | configure_lit_site_cfg( | 
|  | 41 | ${CMAKE_CURRENT_SOURCE_DIR}/order-files.lit.site.cfg.in | 
|  | 42 | ${CMAKE_CURRENT_BINARY_DIR}/order-files/lit.site.cfg | 
|  | 43 | ) | 
|  | 44 |  | 
|  | 45 | add_lit_testsuite(generate-dtrace-logs "Generating clang dtrace data" | 
|  | 46 | ${CMAKE_CURRENT_BINARY_DIR}/order-files/ | 
|  | 47 | DEPENDS clang clear-dtrace-logs | 
|  | 48 | ) | 
|  | 49 |  | 
|  | 50 | add_custom_target(clear-dtrace-logs | 
|  | 51 | COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/perf-helper.py clean ${CMAKE_CURRENT_BINARY_DIR} dtrace | 
|  | 52 | COMMENT "Clearing old dtrace data") | 
|  | 53 |  | 
|  | 54 |  | 
|  | 55 | add_custom_target(generate-order-file | 
|  | 56 | COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/perf-helper.py gen-order-file --binary $<TARGET_FILE:clang> --output ${CMAKE_CURRENT_BINARY_DIR}/clang.order ${CMAKE_CURRENT_BINARY_DIR} | 
|  | 57 | COMMENT "Generating order file" | 
|  | 58 | DEPENDS generate-dtrace-logs) | 
|  | 59 | endif() |