This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH 0/2] Embed driver within libgccjit
- From: David Malcolm <dmalcolm at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org, jit at gcc dot gnu dot org, Joseph Myers <joseph at codesourcery dot com>
- Cc: David Malcolm <dmalcolm at redhat dot com>
- Date: Thu, 6 Aug 2015 10:52:02 -0400
- Subject: [PATCH 0/2] Embed driver within libgccjit
- Authentication-results: sourceware.org; auth=none
The attached two patches are an updated version of this patch
sent in June:
https://gcc.gnu.org/ml/gcc-patches/2015-06/msg00123.html
"[PATCH 02/16] gcc: Embed the driver in-process within libgccjit"
(an updated version of [patch 01/16] from that kit is in trunk as of
r226530; https://gcc.gnu.org/ml/gcc-patches/2015-07/msg02713.html)
They provide a modest speedup of jit.dg/test-benchmark.c and hence
are useful in their own right:
Median time taken for 100 in-process compiles (lower is better) over
multiple runs, showing mean within each run:
Control build of r226530, with pex-execution of driver binary:
optlevel 0: 6.210s (0.062s per iteration)
optlevel 1: 6.990s (0.070s per iteration)
optlevel 2: 7.240s (0.072s per iteration)
optlevel 3: 9.010s (0.090s per iteration)
With these patches, embedding the driver:
optlevel 0: 6.020s (0.060s per iteration)
optlevel 1: 6.720s (0.067s per iteration)
optlevel 2: 7.020s (0.070s per iteration)
optlevel 3: 8.660s (0.087s per iteration)
They are also a prerequisite for some of the much larger speedups
proposed in the followup patches sent in June.
I've split them out into the driver part (patch 1) and the jit-specific
part (patch 2) for ease of review.
Successfully bootstrapped and regression-tested the combination of the
two patches on x86_64-pc-linux-gnu.
OK for trunk?
David Malcolm (2):
driver: support state cleanup
jit: use an embedded copy of the driver
gcc/gcc-main.c | 3 +-
gcc/gcc.c | 400 +++++++++++++++++++--
gcc/gcc.h | 3 +
gcc/jit/docs/cp/topics/contexts.rst | 20 ++
.../docs/internals/test-hello-world.exe.log.txt | 6 +-
gcc/jit/docs/topics/compatibility.rst | 7 +
gcc/jit/docs/topics/contexts.rst | 20 ++
gcc/jit/jit-common.h | 1 +
gcc/jit/jit-playback.c | 52 ++-
gcc/jit/jit-playback.h | 14 +
gcc/jit/jit-recording.c | 3 +-
gcc/jit/libgccjit++.h | 8 +
gcc/jit/libgccjit.c | 17 +
gcc/jit/libgccjit.h | 24 ++
gcc/jit/libgccjit.map | 5 +
gcc/jit/notes.txt | 8 +-
.../jit.dg/test-error-pr63969-missing-driver.c | 4 +
17 files changed, 561 insertions(+), 34 deletions(-)
--
1.8.5.3