This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH, committed] Parallelize the jit testsuite


This patch adds "check-jit" to lang_checks_parallelized, and
sets check_jit_parallelize, enabling jit.exp to be split across
multiple jobs.

Running:
  time make -j64 check-jit
I saw:
  Before:
    real   6m49.601s
    user   6m19.851s
    sys    0m15.824s
  After
    real   2m55.869s
    user   6m33.339s
    sys    0m17.579s

i.e. about 50% reduction in wallclock time.

Committed to trunk as r219774.

FWIW, this is dominated by test-threads.c, which has most of the
testsuite in one process, each running in a different thread (the
threads spend most of their time waiting for the jit mutex).

FWIW, it's possible to dramatically speed up the jit testsuite
(by about a factor of 5) by hacking jit.dg/harness.h and setting
GCC_JIT_BOOL_OPTION_SELFCHECK_GC there to 0 (I do this when
developing new changes, but I have it turned back on for final
testing, since we want to shake out any GC memory issues).

gcc/jit/ChangeLog:
	* Make-lang.in (lang_checks_parallelized): Add "check-jit".
	(check_jit_parallelize): Set this to an arbitrary value (10).
---
 gcc/jit/Make-lang.in | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/gcc/jit/Make-lang.in b/gcc/jit/Make-lang.in
index 551b115..e622690 100644
--- a/gcc/jit/Make-lang.in
+++ b/gcc/jit/Make-lang.in
@@ -247,6 +247,11 @@ jit.man:
 jit.srcman:
 
 lang_checks += check-jit
+lang_checks_parallelized += check-jit
+# This number is somewhat arbitrary.  Two tests are much slower
+# than all the others (test-combination.c and test-threads.c) so
+# we want them to be placed in different "buckets".
+check_jit_parallelize = 10
 
 #
 # Install hooks:
-- 
1.8.5.3


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]