[CMake][LIT] Add option to run lit testsuites in parallel (#82899)
Currently `add_lit_target` sets the `USES_TERMINAL` CMake option. When using Ninja, this forces all lit testsuite targets into the single-threaded `console` pool. This PR adds a new option `LLVM_PARALLEL_LIT` which drops the `USES_TERMINAL` flag, allowing Ninja to run them in parallel. The default setting (`LLVM_PARALLEL_LIT=OFF`) retains the existing behavior of serial testsuite execution.
This commit is contained in:
parent
b4bc19e2e6
commit
782147e82a
@ -718,6 +718,8 @@ if(LLVM_INDIVIDUAL_TEST_COVERAGE)
|
||||
endif()
|
||||
set(LLVM_LIT_ARGS "${LIT_ARGS_DEFAULT}" CACHE STRING "Default options for lit")
|
||||
|
||||
option(LLVM_PARALLEL_LIT "Enable multiple lit suites to run in parallel" OFF)
|
||||
|
||||
# On Win32 hosts, provide an option to specify the path to the GnuWin32 tools.
|
||||
if( WIN32 AND NOT CYGWIN )
|
||||
set(LLVM_LIT_TOOLS_DIR "" CACHE PATH "Path to GnuWin32 tools")
|
||||
|
||||
@ -1947,11 +1947,18 @@ function(add_lit_target target comment)
|
||||
list(APPEND LIT_COMMAND --param ${param})
|
||||
endforeach()
|
||||
if (ARG_UNPARSED_ARGUMENTS)
|
||||
add_custom_target(${target}
|
||||
COMMAND ${LIT_COMMAND} ${ARG_UNPARSED_ARGUMENTS}
|
||||
COMMENT "${comment}"
|
||||
USES_TERMINAL
|
||||
)
|
||||
if (LLVM_PARALLEL_LIT)
|
||||
add_custom_target(${target}
|
||||
COMMAND ${LIT_COMMAND} ${ARG_UNPARSED_ARGUMENTS}
|
||||
COMMENT "${comment}"
|
||||
)
|
||||
else()
|
||||
add_custom_target(${target}
|
||||
COMMAND ${LIT_COMMAND} ${ARG_UNPARSED_ARGUMENTS}
|
||||
COMMENT "${comment}"
|
||||
USES_TERMINAL
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
add_custom_target(${target}
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "${target} does nothing, no tools built.")
|
||||
|
||||
@ -762,6 +762,12 @@ enabled sub-projects. Nearly all of these variable names begin with
|
||||
**LLVM_PARALLEL_LINK_JOBS**:STRING
|
||||
Define the maximum number of concurrent link jobs.
|
||||
|
||||
**LLVM_PARALLEL_LIT**:BOOL
|
||||
Defaults to ``OFF``. If set to ``OFF``, lit testsuites will be configured
|
||||
with CMake's ``USES_TERMINAL`` flag to give direct access to the terminal. If
|
||||
set to ``ON``, that flag will be removed allowing Ninja to schedule multiple
|
||||
lit testsuites in parallel.
|
||||
|
||||
**LLVM_RAM_PER_COMPILE_JOB**:STRING
|
||||
Calculates the amount of Ninja compile jobs according to available resources.
|
||||
Value has to be in MB, overwrites LLVM_PARALLEL_COMPILE_JOBS. Compile jobs
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user