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 0/2] Embed driver within libgccjit


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


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