diff options
author | Shivam Gupta <Shivam.Gupta2@amd.com> | 2023-07-26 16:46:09 +0530 |
---|---|---|
committer | Shivam Gupta <Shivam.Gupta2@amd.com> | 2023-07-26 16:47:17 +0530 |
commit | 64d19542e78a43edb7ae26ea6762a2b1c360a916 (patch) | |
tree | 96b00444f44f6a4842e44bf97bf51da51b695461 /llvm/CMakeLists.txt | |
parent | 20c8f58c11d06d4a31fef5033ea5417fb99dfd0e (diff) | |
download | llvm-64d19542e78a43edb7ae26ea6762a2b1c360a916.zip llvm-64d19542e78a43edb7ae26ea6762a2b1c360a916.tar.gz llvm-64d19542e78a43edb7ae26ea6762a2b1c360a916.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 --per-test-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/memtransfer0.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 f566a2e..6f0bbf9 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() |