1*67e74705SXin Li 2*67e74705SXin Li# All test suites added here should be excuded from check-all 3*67e74705SXin Liset(EXCLUDE_FROM_ALL On) 4*67e74705SXin Li 5*67e74705SXin Liif (CMAKE_CFG_INTDIR STREQUAL ".") 6*67e74705SXin Li set(LLVM_BUILD_MODE ".") 7*67e74705SXin Lielse () 8*67e74705SXin Li set(LLVM_BUILD_MODE "%(build_mode)s") 9*67e74705SXin Liendif () 10*67e74705SXin Li 11*67e74705SXin Listring(REPLACE ${CMAKE_CFG_INTDIR} ${LLVM_BUILD_MODE} CLANG_TOOLS_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR}) 12*67e74705SXin Li 13*67e74705SXin Liif(LLVM_BUILD_INSTRUMENTED) 14*67e74705SXin Li configure_lit_site_cfg( 15*67e74705SXin Li ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in 16*67e74705SXin Li ${CMAKE_CURRENT_BINARY_DIR}/pgo-data/lit.site.cfg 17*67e74705SXin Li ) 18*67e74705SXin Li 19*67e74705SXin Li add_lit_testsuite(generate-profraw "Generating clang PGO data" 20*67e74705SXin Li ${CMAKE_CURRENT_BINARY_DIR}/pgo-data/ 21*67e74705SXin Li DEPENDS clang clear-profraw 22*67e74705SXin Li ) 23*67e74705SXin Li 24*67e74705SXin Li add_custom_target(clear-profraw 25*67e74705SXin Li COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/perf-helper.py clean ${CMAKE_CURRENT_BINARY_DIR} profraw 26*67e74705SXin Li COMMENT "Clearing old profraw data") 27*67e74705SXin Li 28*67e74705SXin Li if(NOT LLVM_PROFDATA) 29*67e74705SXin Li find_program(LLVM_PROFDATA llvm-profdata) 30*67e74705SXin Li endif() 31*67e74705SXin Li 32*67e74705SXin Li if(NOT LLVM_PROFDATA) 33*67e74705SXin Li message(FATAL_ERROR "Must set LLVM_PROFDATA to point to llvm-profdata to use for merging PGO data") 34*67e74705SXin Li endif() 35*67e74705SXin Li 36*67e74705SXin Li add_custom_target(generate-profdata 37*67e74705SXin Li COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/perf-helper.py merge ${LLVM_PROFDATA} ${CMAKE_CURRENT_BINARY_DIR}/clang.profdata ${CMAKE_CURRENT_BINARY_DIR} 38*67e74705SXin Li COMMENT "Merging profdata" 39*67e74705SXin Li DEPENDS generate-profraw) 40*67e74705SXin Liendif() 41*67e74705SXin Li 42*67e74705SXin Lifind_program(DTRACE dtrace) 43*67e74705SXin Liif(DTRACE) 44*67e74705SXin Li configure_lit_site_cfg( 45*67e74705SXin Li ${CMAKE_CURRENT_SOURCE_DIR}/order-files.lit.site.cfg.in 46*67e74705SXin Li ${CMAKE_CURRENT_BINARY_DIR}/order-files/lit.site.cfg 47*67e74705SXin Li ) 48*67e74705SXin Li 49*67e74705SXin Li add_lit_testsuite(generate-dtrace-logs "Generating clang dtrace data" 50*67e74705SXin Li ${CMAKE_CURRENT_BINARY_DIR}/order-files/ 51*67e74705SXin Li ARGS -j 1 52*67e74705SXin Li DEPENDS clang clear-dtrace-logs 53*67e74705SXin Li ) 54*67e74705SXin Li 55*67e74705SXin Li add_custom_target(clear-dtrace-logs 56*67e74705SXin Li COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/perf-helper.py clean ${CMAKE_CURRENT_BINARY_DIR} dtrace 57*67e74705SXin Li COMMENT "Clearing old dtrace data") 58*67e74705SXin Li 59*67e74705SXin Li add_custom_target(generate-order-file 60*67e74705SXin Li 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} 61*67e74705SXin Li COMMENT "Generating order file" 62*67e74705SXin Li DEPENDS generate-dtrace-logs) 63*67e74705SXin Liendif() 64