I happened to notice that the gnat.dg testsuite run is slow even on a reasonably fast SPARC machine (3.6 GHz SPARC T5) and together with the libgomp testsuite (PR libgomp/66005) dominates bootstrap time: within a make -j96 -k check, it takes 1h 18m 37s. For unknown reasons, check-gnat isn't parallelized though it is trivial to do and buys quite a bit:
* On the same machine, though otherwise idle, it reduces make -j96 check-gnat time to 2m 23s and even within a full bootstrap, the time goes down to 44m 6s. * On x86 systems, there are also considable speedups: 2.6 GHz AMD Opteron 8435, -j24 43m 24s => 33m 4s 2.93 GHz Intel Xeon X7350, -j16 30m 7s => 9m 8s 2.67 GHz Intel Xeon X7542, -j48 14m 56s => 5m 50s Seems like a worthwhile speedup to me. Bootstrapped without regressions on i386-pc-solaris2.12, sparc-sun-solaris2.12, and x86_64-pc-linux-gnu. dg-cmp-results.sh reports the sequential and parallel gnat.sum as identical. Ok for mainline (and eventually for 5 and 6 branches given the small size and low risk of the patch)? Thanks. Rainer -- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University 2016-10-21 Rainer Orth <r...@cebitec.uni-bielefeld.de> * gcc-interface/Make-lang.in (lang_checks_parallelized): New target. (check_gnat_parallelize): Likewise.
# HG changeset patch # Parent 13db0c5f22f787b7a09b81e1173677a02afa240d Parallelize check-gnat diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in --- a/gcc/ada/gcc-interface/Make-lang.in +++ b/gcc/ada/gcc-interface/Make-lang.in @@ -863,6 +863,9 @@ ada.stagefeedback: stagefeedback-start -$(MV) ada/stamp-* stagefeedback/ada lang_checks += check-gnat +lang_checks_parallelized += check-gnat +# For description see the check_$lang_parallelize comment in gcc/Makefile.in. +check_gnat_parallelize = 1000 check-ada: check-acats check-gnat check-ada-subtargets: check-acats-subtargets check-gnat-subtargets