https://gcc.gnu.org/g:00d943bf840386bd6e3e8a04554df5b528722e46

commit r15-7479-g00d943bf840386bd6e3e8a04554df5b528722e46
Author: Andrew Carlotti <andrew.carlo...@arm.com>
Date:   Tue Feb 4 19:45:31 2025 +0000

    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.

Diff:
---
 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 29403d7317c7..2f8b7d488691 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

Reply via email to