aboutsummaryrefslogtreecommitdiff
path: root/llvm/CMakeLists.txt
diff options
context:
space:
mode:
authorShivam Gupta <Shivam.Gupta2@amd.com>2023-07-26 16:46:09 +0530
committerShivam Gupta <Shivam.Gupta2@amd.com>2023-07-26 16:47:17 +0530
commit64d19542e78a43edb7ae26ea6762a2b1c360a916 (patch)
tree96b00444f44f6a4842e44bf97bf51da51b695461 /llvm/CMakeLists.txt
parent20c8f58c11d06d4a31fef5033ea5417fb99dfd0e (diff)
downloadllvm-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.txt36
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()