diff options
author | Shivam Gupta <Shivam.Gupta2@amd.com> | 2023-07-21 14:56:02 +0530 |
---|---|---|
committer | Shivam Gupta <Shivam.Gupta2@amd.com> | 2023-07-21 15:23:01 +0530 |
commit | d8e26bccb3016d255298b7db78fe8bf05dd880b2 (patch) | |
tree | 836e61d2c8a48be9a351791847c53262ad5c1155 /llvm/CMakeLists.txt | |
parent | 8fd207fd0dcc398c2fcfd953d7e3ebe7cb53f188 (diff) | |
download | llvm-d8e26bccb3016d255298b7db78fe8bf05dd880b2.zip llvm-d8e26bccb3016d255298b7db78fe8bf05dd880b2.tar.gz llvm-d8e26bccb3016d255298b7db78fe8bf05dd880b2.tar.bz2 |
[LIT] Added an option to llvm-lit to emit the necessary test coverage data, divided per test case
This patch is the first part of https://llvm.org/OpenProjects.html#llvm_patch_coverage.
We have first define a new variable LLVM_TEST_COVERAGE which when set, pass --emit-coverage option to
llvm-lit which will help in setting a unique value to LLVM_PROFILE_FILE for each RUN. So for example
coverage data for test case llvm/test/Analysis/AliasSet/memtransfer.ll will be emitted as
build/test/Analysis/AliasSet/memtransfer.profraw
Reviewed By: hnrklssn
Differential Revision: https://reviews.llvm.org/D154280
Diffstat (limited to 'llvm/CMakeLists.txt')
-rw-r--r-- | llvm/CMakeLists.txt | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt index 1a9ad06..0c4a21e 100644 --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -676,6 +676,9 @@ set(LIT_ARGS_DEFAULT "-sv") if (MSVC_IDE OR XCODE) set(LIT_ARGS_DEFAULT "${LIT_ARGS_DEFAULT} --no-progress-bar") endif() +if(LLVM_INDIVIDUAL_TEST_COVERAGE) + set(LIT_ARGS_DEFAULT "${LIT_ARGS_DEFAULT} --per-test-coverage") +endif() set(LLVM_LIT_ARGS "${LIT_ARGS_DEFAULT}" CACHE STRING "Default options for lit") # On Win32 hosts, provide an option to specify the path to the GnuWin32 tools. @@ -797,24 +800,25 @@ if (MSVC_IDE) option(LLVM_ADD_NATIVE_VISUALIZERS_TO_SOLUTION "Configure project to use Visual Studio native visualizers" TRUE) endif() -if (LLVM_BUILD_INSTRUMENTED OR LLVM_BUILD_INSTRUMENTED_COVERAGE OR - LLVM_ENABLE_IR_PGO) - if(NOT LLVM_PROFILE_MERGE_POOL_SIZE) - # A pool size of 1-2 is probably sufficient on a SSD. 3-4 should be fine - # for spining disks. Anything higher may only help on slower mediums. - set(LLVM_PROFILE_MERGE_POOL_SIZE "4") - endif() - if(NOT LLVM_PROFILE_FILE_PATTERN) - if(NOT LLVM_PROFILE_DATA_DIR) - file(TO_NATIVE_PATH "${LLVM_BINARY_DIR}/profiles" LLVM_PROFILE_DATA_DIR) +if(NOT LLVM_INDIVIDUAL_TEST_COVERAGE) + if(LLVM_BUILD_INSTRUMENTED OR LLVM_BUILD_INSTRUMENTED_COVERAGE OR LLVM_ENABLE_IR_PGO) + if(NOT LLVM_PROFILE_MERGE_POOL_SIZE) + # A pool size of 1-2 is probably sufficient on an SSD. 3-4 should be fine + # for spinning disks. Anything higher may only help on slower mediums. + set(LLVM_PROFILE_MERGE_POOL_SIZE "4") endif() - file(TO_NATIVE_PATH "${LLVM_PROFILE_DATA_DIR}/%${LLVM_PROFILE_MERGE_POOL_SIZE}m.profraw" LLVM_PROFILE_FILE_PATTERN) - endif() - if(NOT LLVM_CSPROFILE_FILE_PATTERN) - if(NOT LLVM_CSPROFILE_DATA_DIR) - file(TO_NATIVE_PATH "${LLVM_BINARY_DIR}/csprofiles" LLVM_CSPROFILE_DATA_DIR) + if(NOT LLVM_PROFILE_FILE_PATTERN) + if(NOT LLVM_PROFILE_DATA_DIR) + file(TO_NATIVE_PATH "${LLVM_BINARY_DIR}/profiles" LLVM_PROFILE_DATA_DIR) + endif() + file(TO_NATIVE_PATH "${LLVM_PROFILE_DATA_DIR}/%${LLVM_PROFILE_MERGE_POOL_SIZE}m.profraw" LLVM_PROFILE_FILE_PATTERN) + endif() + if(NOT LLVM_CSPROFILE_FILE_PATTERN) + if(NOT LLVM_CSPROFILE_DATA_DIR) + file(TO_NATIVE_PATH "${LLVM_BINARY_DIR}/csprofiles" LLVM_CSPROFILE_DATA_DIR) + endif() + file(TO_NATIVE_PATH "${LLVM_CSPROFILE_DATA_DIR}/%${LLVM_PROFILE_MERGE_POOL_SIZE}m.profraw" LLVM_CSPROFILE_FILE_PATTERN) endif() - file(TO_NATIVE_PATH "${LLVM_CSPROFILE_DATA_DIR}/%${LLVM_PROFILE_MERGE_POOL_SIZE}m.profraw" LLVM_CSPROFILE_FILE_PATTERN) endif() endif() |