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

Reply via email to