testsuite: Enable reduced parallel batch sizes

Various aarch64 tests attempt to reduce the batch size for parallel test
execution to a single test per batch, but it looks like the necessary
changes to gcc_parallel_test_run_p were accidentally omitted when the
aarch64-*-acle-asm.exp files were merged.  This patch corrects that
omission.

This does have a measurable performance impact when running a limited
number of tests.  For example, in aarch64-sve-acle-asm.exp the use of
torture options results in 16 compiler executions for each test; when
running two such tests I observed a total test duration of 3m39 without
this patch, and 1m55 with the patch.  A full batch of 10 tests would
have taken over 15 minutes to run on this machine.

gcc/testsuite/ChangeLog:

	* lib/gcc-defs.exp
	(gcc_runtest_parallelize_limit_minor): New global variable.
	(gcc_parallel_test_run_p): Use new variable for batch size.
This commit is contained in:
Andrew Carlotti 2025-02-04 19:45:31 +00:00
parent 9a2116f911
commit 00d943bf84

View file

@ -172,6 +172,7 @@ if { [info exists env(GCC_RUNTEST_PARALLELIZE_DIR)] \
&& [info procs gcc_parallelize_saved_runtest_file_p] == [list] } then {
global gcc_runtest_parallelize_counter
global gcc_runtest_parallelize_counter_minor
global gcc_runtest_parallelize_limit_minor
global gcc_runtest_parallelize_enable
global gcc_runtest_parallelize_dir
global gcc_runtest_parallelize_last
@ -212,6 +213,7 @@ if { [info exists env(GCC_RUNTEST_PARALLELIZE_DIR)] \
# and investigate if they don't.
set gcc_runtest_parallelize_counter 0
set gcc_runtest_parallelize_counter_minor 0
set gcc_runtest_parallelize_limit_minor 10
set gcc_runtest_parallelize_enable 1
set gcc_runtest_parallelize_dir [getenv GCC_RUNTEST_PARALLELIZE_DIR]
set gcc_runtest_parallelize_last 0
@ -219,6 +221,7 @@ if { [info exists env(GCC_RUNTEST_PARALLELIZE_DIR)] \
proc gcc_parallel_test_run_p { testcase } {
global gcc_runtest_parallelize_counter
global gcc_runtest_parallelize_counter_minor
global gcc_runtest_parallelize_limit_minor
global gcc_runtest_parallelize_enable
global gcc_runtest_parallelize_dir
global gcc_runtest_parallelize_last
@ -228,10 +231,10 @@ if { [info exists env(GCC_RUNTEST_PARALLELIZE_DIR)] \
}
# Only test the filesystem every 10th iteration
incr gcc_runtest_parallelize_counter_minor
if { $gcc_runtest_parallelize_counter_minor == 10 } {
if { $gcc_runtest_parallelize_counter_minor >= $gcc_runtest_parallelize_limit_minor } {
set gcc_runtest_parallelize_counter_minor 0
}
incr gcc_runtest_parallelize_counter_minor
if { $gcc_runtest_parallelize_counter_minor != 1 } {
#verbose -log "gcc_parallel_test_run_p $testcase $gcc_runtest_parallelize_counter $gcc_runtest_parallelize_last"
return $gcc_runtest_parallelize_last