From 00d943bf840386bd6e3e8a04554df5b528722e46 Mon Sep 17 00:00:00 2001 From: Andrew Carlotti Date: Tue, 4 Feb 2025 19:45:31 +0000 Subject: [PATCH] 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. --- gcc/testsuite/lib/gcc-defs.exp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gcc/testsuite/lib/gcc-defs.exp b/gcc/testsuite/lib/gcc-defs.exp index 29403d7317c..2f8b7d48869 100644 --- a/gcc/testsuite/lib/gcc-defs.exp +++ b/gcc/testsuite/lib/gcc-defs.exp @@ -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