This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH, committed] Parallelize the jit testsuite
- From: David Malcolm <dmalcolm at redhat dot com>
- To: jit at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org
- Cc: David Malcolm <dmalcolm at redhat dot com>
- Date: Fri, 16 Jan 2015 16:47:35 -0500
- Subject: [PATCH, committed] Parallelize the jit testsuite
- Authentication-results: sourceware.org; auth=none
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