blob: 07d90246107babb24e6334da73203b9b5830a5f1 [file] [log] [blame]
Chris Bieneman3f746e62016-01-15 22:44:18 +00001
2# All test suites added here should be excuded from check-all
3set(EXCLUDE_FROM_ALL On)
4
Chris Bienemand8b5bde2016-01-15 21:21:12 +00005if (CMAKE_CFG_INTDIR STREQUAL ".")
6 set(LLVM_BUILD_MODE ".")
7else ()
8 set(LLVM_BUILD_MODE "%(build_mode)s")
9endif ()
10
11string(REPLACE ${CMAKE_CFG_INTDIR} ${LLVM_BUILD_MODE} CLANG_TOOLS_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR})
12
Chris Bienemanae543392015-12-16 01:02:44 +000013if(LLVM_BUILD_INSTRUMENTED)
Chris Bienemanae543392015-12-16 01:02:44 +000014 configure_lit_site_cfg(
15 ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
Chris Bienemand8b5bde2016-01-15 21:21:12 +000016 ${CMAKE_CURRENT_BINARY_DIR}/pgo-data/lit.site.cfg
Chris Bienemanae543392015-12-16 01:02:44 +000017 )
18
19 add_lit_testsuite(generate-profraw "Generating clang PGO data"
Chris Bienemand8b5bde2016-01-15 21:21:12 +000020 ${CMAKE_CURRENT_BINARY_DIR}/pgo-data/
Chris Bienemanae543392015-12-16 01:02:44 +000021 DEPENDS clang clear-profraw
22 )
23
24 add_custom_target(clear-profraw
Chris Bienemand8b5bde2016-01-15 21:21:12 +000025 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/perf-helper.py clean ${CMAKE_CURRENT_BINARY_DIR} profraw
Chris Bienemanae543392015-12-16 01:02:44 +000026 COMMENT "Clearing old profraw data")
27
28 if(NOT LLVM_PROFDATA)
29 find_program(LLVM_PROFDATA llvm-profdata)
30 endif()
31
32 if(NOT LLVM_PROFDATA)
33 message(FATAL_ERROR "Must set LLVM_PROFDATA to point to llvm-profdata to use for merging PGO data")
34 endif()
35
36 add_custom_target(generate-profdata
37 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/perf-helper.py merge ${LLVM_PROFDATA} ${CMAKE_CURRENT_BINARY_DIR}/clang.profdata ${CMAKE_CURRENT_BINARY_DIR}
38 COMMENT "Merging profdata"
39 DEPENDS generate-profraw)
40endif()
Chris Bienemand8b5bde2016-01-15 21:21:12 +000041
42find_program(DTRACE dtrace)
43if(DTRACE)
44 configure_lit_site_cfg(
45 ${CMAKE_CURRENT_SOURCE_DIR}/order-files.lit.site.cfg.in
46 ${CMAKE_CURRENT_BINARY_DIR}/order-files/lit.site.cfg
47 )
48
49 add_lit_testsuite(generate-dtrace-logs "Generating clang dtrace data"
50 ${CMAKE_CURRENT_BINARY_DIR}/order-files/
Chris Bienemanf5a7ec72016-04-13 17:12:56 +000051 ARGS -j 1
Chris Bienemand8b5bde2016-01-15 21:21:12 +000052 DEPENDS clang clear-dtrace-logs
53 )
54
55 add_custom_target(clear-dtrace-logs
56 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/perf-helper.py clean ${CMAKE_CURRENT_BINARY_DIR} dtrace
57 COMMENT "Clearing old dtrace data")
58
Chris Bienemand8b5bde2016-01-15 21:21:12 +000059 add_custom_target(generate-order-file
Chris Bieneman834a40b2016-04-08 22:48:18 +000060 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/perf-helper.py gen-order-file --binary $<TARGET_FILE:clang> --output ${CLANG_ORDER_FILE} ${CMAKE_CURRENT_BINARY_DIR}
Chris Bienemand8b5bde2016-01-15 21:21:12 +000061 COMMENT "Generating order file"
62 DEPENDS generate-dtrace-logs)
63endif()