This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH 00/27] Merger of jit branch v3
- From: David Malcolm <dmalcolm at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org, jit at gcc dot gnu dot org
- Cc: David Malcolm <dmalcolm at redhat dot com>
- Date: Fri, 31 Oct 2014 13:02:33 -0400
- Subject: [PATCH 00/27] Merger of jit branch v3
- Authentication-results: sourceware.org; auth=none
I'd like to merge the JIT branch into trunk:
https://gcc.gnu.org/wiki/JIT
This is "v3" since it incorporates fixes for various issues
identified in earlier submissions:
v1: https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02056.html
v2: https://gcc.gnu.org/ml/gcc-patches/2014-10/msg01168.html
I've merged some of the work approved earlier into trunk.
Of the remaining work, some has already been approved, and some
hasn't. I've split the latter up into more fine-grained patches
in the hope it will make review easier, so there are 27 patches
in this kit, compared to 10 in the earlier one.
Here's an overview of the patches:
01/27: gcc: configure and Makefile changes needed by jit
Needs review.
Corresponds to:
"[PATCH 2/5] gcc: configure and Makefile changes needed by jit"
https://gcc.gnu.org/ml/gcc-patches/2014-10/msg01169.html
and has had cleanups in response to concerns from Jeff and Joseph,
to remove the need to install when running the jit testsuite.
02/27: JIT-related changes outside of jit subdir
Already approved by Jeff.
03/27: Add Sphinx to install.texi
Needs review.
Patches 04-18 correspond to:
"[PATCH 06/10] Heart of the JIT implementation
(was: Re: [PATCH 0/5] Merger of jit branch (v2))"
https://gcc.gnu.org/ml/gcc-patches/2014-10/msg01247.html
from v2; I've broken them up by file to make them easier to review:
04/27: New file: gcc/jit/notes.txt
05/27: New file: gcc/jit/config-lang.in
06/27: New file: gcc/jit/Make-lang.in
07/27: New file: gcc/jit/dummy-frontend.c
08/27: New file: gcc/jit/libgccjit.h
09/27: New file: gcc/jit/libgccjit.map
10/27: New file: gcc/jit/libgccjit.c
11/27: New file: gcc/jit/jit-common.h
12/27: New file: gcc/jit/jit-recording.h
13/27: New file: gcc/jit/jit-recording.c
14/27: New files: gcc/jit/jit-builtins.{c|h}
15/27: New file: gcc/jit/jit-playback.h
16/27: New file: gcc/jit/jit-playback.c
17/27: New file: gcc/jit/libgccjit++.h
18/27: New file: gcc/jit/TODO.rst
All of these need review.
19/27: Testsuite for the JIT
Earlier version already approved by Jeff, only small changes since.
20/27: Documentation: Makefile and conf.py
21/27: Documentation: the "examples" subdirectory
22/27: Documentation: top-level index.rst
23/27: Documentation: the "intro" subdirectory
24/27: Documentation: add "topics" subdirectory
25/27: Documentation: add "internals" subdirectory
All of these need review.
Patches 20-25 correspond to:
"[PATCH 08/10] Documentation for the JIT library
(Re: Patches 5-10 of jit merger)"
https://gcc.gnu.org/ml/gcc-patches/2014-10/msg01392.html
from v2. Since then, I've:
* eliminated all mentions of pkg-config (since we no longer
support this)
* eliminated the installation section and the discussion of
packages
* converted the final page (docs/internals/index.rst) into a
short guide for contributors to the project (e.g. myself and
other maintainers)
Prebuilt HTML from this can be seen at:
https://dmalcolm.fedorapeople.org/gcc/libgccjit-api-docs/index.html
Again, I've broken them up into smaller patches to make them
easier to review.
26/27: Prebuilt texinfo documentation for the JIT library
Already (pre)approved by Jeff.
27/27: ChangeLog files
Earlier version approved by Jeff, and presumably all changes
since count as "obvious".
I've successfully bootstrapped and regression-tested the cumulative
result of all of the patches against a control build, building them
both with --enable-host-shared, and with
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto
adding ",jit" to the test build (both on x86_64-unknown-linux-gnu;
Fedora 20, using Monday's r216746 as the baseline).
There were no regressions vs the control build, and the patched build
gains a jit.sum, with 4663 passes (and no failures).
OK for trunk?
(patches 01, 03, 04-18, 20-25 are the ones needing review)
Overall diffstat follows:
ChangeLog.jit | 23 +
MAINTAINERS | 1 +
contrib/ChangeLog.jit | 14 +
contrib/jit-coverage-report.py | 67 +
gcc/ChangeLog.jit | 360 ++
gcc/Makefile.in | 20 +-
gcc/configure | 52 +-
gcc/configure.ac | 10 +
gcc/doc/install.texi | 7 +-
gcc/java/ChangeLog.jit | 14 +
gcc/jit/ChangeLog | 9 +
gcc/jit/ChangeLog.jit | 3342 ++++++++++
gcc/jit/Make-lang.in | 298 +
gcc/jit/TODO.rst | 119 +
gcc/jit/config-lang.in | 38 +
gcc/jit/docs/Makefile | 153 +
gcc/jit/docs/_build/texinfo/Makefile | 50 +
gcc/jit/docs/_build/texinfo/factorial.png | Bin 0 -> 183838 bytes
gcc/jit/docs/_build/texinfo/libgccjit.texi | 6534 ++++++++++++++++++++
gcc/jit/docs/_build/texinfo/sum-of-squares.png | Bin 0 -> 22839 bytes
gcc/jit/docs/conf.py | 258 +
gcc/jit/docs/examples/tut01-hello-world.c | 123 +
gcc/jit/docs/examples/tut02-square.c | 107 +
gcc/jit/docs/examples/tut03-sum-of-squares.c | 172 +
gcc/jit/docs/examples/tut04-toyvm/Makefile | 11 +
gcc/jit/docs/examples/tut04-toyvm/factorial.toy | 50 +
gcc/jit/docs/examples/tut04-toyvm/fibonacci.toy | 66 +
gcc/jit/docs/examples/tut04-toyvm/toyvm.c | 861 +++
gcc/jit/docs/index.rst | 50 +
gcc/jit/docs/internals/index.rst | 216 +
gcc/jit/docs/intro/factorial.png | Bin 0 -> 183838 bytes
gcc/jit/docs/intro/index.rst | 27 +
gcc/jit/docs/intro/sum-of-squares.png | Bin 0 -> 22839 bytes
gcc/jit/docs/intro/tutorial01.rst | 52 +
gcc/jit/docs/intro/tutorial02.rst | 349 ++
gcc/jit/docs/intro/tutorial03.rst | 378 ++
gcc/jit/docs/intro/tutorial04.rst | 1108 ++++
gcc/jit/docs/topics/contexts.rst | 315 +
gcc/jit/docs/topics/expressions.rst | 524 ++
gcc/jit/docs/topics/functions.rst | 311 +
gcc/jit/docs/topics/index.rst | 30 +
gcc/jit/docs/topics/locations.rst | 69 +
gcc/jit/docs/topics/objects.rst | 86 +
gcc/jit/docs/topics/results.rst | 48 +
gcc/jit/docs/topics/types.rst | 217 +
gcc/jit/dummy-frontend.c | 240 +
gcc/jit/jit-builtins.c | 424 ++
gcc/jit/jit-builtins.h | 114 +
gcc/jit/jit-common.h | 182 +
gcc/jit/jit-playback.c | 2104 +++++++
gcc/jit/jit-playback.h | 564 ++
gcc/jit/jit-recording.c | 3434 ++++++++++
gcc/jit/jit-recording.h | 1593 +++++
gcc/jit/libgccjit++.h | 1574 +++++
gcc/jit/libgccjit.c | 1506 +++++
gcc/jit/libgccjit.h | 977 +++
gcc/jit/libgccjit.map | 100 +
gcc/jit/notes.txt | 84 +
gcc/testsuite/ChangeLog.jit | 619 ++
gcc/testsuite/jit.dg/all-non-failing-tests.h | 166 +
gcc/testsuite/jit.dg/harness.h | 242 +
gcc/testsuite/jit.dg/jit.exp | 293 +
gcc/testsuite/jit.dg/test-accessing-struct.c | 112 +
gcc/testsuite/jit.dg/test-accessing-union.c | 97 +
gcc/testsuite/jit.dg/test-array-as-pointer.c | 101 +
gcc/testsuite/jit.dg/test-arrays.c | 165 +
.../jit.dg/test-calling-external-function.c | 118 +
gcc/testsuite/jit.dg/test-calling-function-ptr.c | 118 +
gcc/testsuite/jit.dg/test-combination.c | 67 +
gcc/testsuite/jit.dg/test-dot-product.c | 129 +
gcc/testsuite/jit.dg/test-empty.c | 20 +
.../test-error-accessing-field-in-other-struct.c | 114 +
.../jit.dg/test-error-adding-to-terminated-block.c | 48 +
gcc/testsuite/jit.dg/test-error-array-as-pointer.c | 99 +
gcc/testsuite/jit.dg/test-error-bad-cast.c | 63 +
.../jit.dg/test-error-block-in-wrong-function.c | 65 +
...-error-call-through-ptr-with-mismatching-args.c | 74 +
...test-error-call-through-ptr-with-non-function.c | 65 +
.../test-error-call-through-ptr-with-non-pointer.c | 62 +
...t-error-call-through-ptr-with-not-enough-args.c | 70 +
...est-error-call-through-ptr-with-too-many-args.c | 87 +
.../jit.dg/test-error-call-with-mismatching-args.c | 87 +
.../jit.dg/test-error-call-with-not-enough-args.c | 87 +
.../jit.dg/test-error-call-with-too-many-args.c | 89 +
.../test-error-dereference-field-of-non-pointer.c | 95 +
.../test-error-dereference-read-of-non-pointer.c | 55 +
.../jit.dg/test-error-index-not-a-numeric-type.c | 34 +
.../test-error-mismatching-types-in-assignment.c | 61 +
.../jit.dg/test-error-mismatching-types-in-call.c | 80 +
gcc/testsuite/jit.dg/test-error-missing-return.c | 40 +
.../jit.dg/test-error-null-passed-to-api.c | 31 +
.../test-error-return-within-void-function.c | 54 +
.../jit.dg/test-error-unreachable-block.c | 50 +
.../jit.dg/test-error-unterminated-block.c | 42 +
.../jit.dg/test-error-value-not-a-numeric-type.c | 29 +
gcc/testsuite/jit.dg/test-expressions.c | 896 +++
gcc/testsuite/jit.dg/test-factorial.c | 103 +
gcc/testsuite/jit.dg/test-fibonacci.c | 136 +
gcc/testsuite/jit.dg/test-functions.c | 356 ++
gcc/testsuite/jit.dg/test-fuzzer.c | 462 ++
gcc/testsuite/jit.dg/test-hello-world.c | 72 +
gcc/testsuite/jit.dg/test-linked-list.c | 141 +
gcc/testsuite/jit.dg/test-long-names.c | 112 +
gcc/testsuite/jit.dg/test-nested-contexts.c | 641 ++
gcc/testsuite/jit.dg/test-nested-loops.c | 179 +
gcc/testsuite/jit.dg/test-operator-overloading.cc | 310 +
gcc/testsuite/jit.dg/test-quadratic.c | 488 ++
gcc/testsuite/jit.dg/test-quadratic.cc | 366 ++
gcc/testsuite/jit.dg/test-reading-struct.c | 135 +
gcc/testsuite/jit.dg/test-string-literal.c | 52 +
gcc/testsuite/jit.dg/test-sum-of-squares.c | 126 +
gcc/testsuite/jit.dg/test-threads.c | 252 +
gcc/testsuite/jit.dg/test-types.c | 361 ++
gcc/testsuite/jit.dg/test-using-global.c | 73 +
gcc/testsuite/jit.dg/test-volatile.c | 66 +
gcc/timevar.def | 6 +
include/ChangeLog.jit | 11 +
libbacktrace/ChangeLog.jit | 14 +
libcpp/ChangeLog.jit | 22 +
libdecnumber/ChangeLog.jit | 22 +
libiberty/ChangeLog.jit | 23 +
zlib/ChangeLog.jit | 22 +
122 files changed, 38704 insertions(+), 6 deletions(-)
create mode 100644 ChangeLog.jit
create mode 100644 contrib/ChangeLog.jit
create mode 100644 contrib/jit-coverage-report.py
create mode 100644 gcc/ChangeLog.jit
create mode 100644 gcc/java/ChangeLog.jit
create mode 100644 gcc/jit/ChangeLog
create mode 100644 gcc/jit/ChangeLog.jit
create mode 100644 gcc/jit/Make-lang.in
create mode 100644 gcc/jit/TODO.rst
create mode 100644 gcc/jit/config-lang.in
create mode 100644 gcc/jit/docs/Makefile
create mode 100644 gcc/jit/docs/_build/texinfo/Makefile
create mode 100644 gcc/jit/docs/_build/texinfo/factorial.png
create mode 100644 gcc/jit/docs/_build/texinfo/libgccjit.texi
create mode 100644 gcc/jit/docs/_build/texinfo/sum-of-squares.png
create mode 100644 gcc/jit/docs/conf.py
create mode 100644 gcc/jit/docs/examples/tut01-hello-world.c
create mode 100644 gcc/jit/docs/examples/tut02-square.c
create mode 100644 gcc/jit/docs/examples/tut03-sum-of-squares.c
create mode 100644 gcc/jit/docs/examples/tut04-toyvm/Makefile
create mode 100644 gcc/jit/docs/examples/tut04-toyvm/factorial.toy
create mode 100644 gcc/jit/docs/examples/tut04-toyvm/fibonacci.toy
create mode 100644 gcc/jit/docs/examples/tut04-toyvm/toyvm.c
create mode 100644 gcc/jit/docs/index.rst
create mode 100644 gcc/jit/docs/internals/index.rst
create mode 100644 gcc/jit/docs/intro/factorial.png
create mode 100644 gcc/jit/docs/intro/index.rst
create mode 100644 gcc/jit/docs/intro/sum-of-squares.png
create mode 100644 gcc/jit/docs/intro/tutorial01.rst
create mode 100644 gcc/jit/docs/intro/tutorial02.rst
create mode 100644 gcc/jit/docs/intro/tutorial03.rst
create mode 100644 gcc/jit/docs/intro/tutorial04.rst
create mode 100644 gcc/jit/docs/topics/contexts.rst
create mode 100644 gcc/jit/docs/topics/expressions.rst
create mode 100644 gcc/jit/docs/topics/functions.rst
create mode 100644 gcc/jit/docs/topics/index.rst
create mode 100644 gcc/jit/docs/topics/locations.rst
create mode 100644 gcc/jit/docs/topics/objects.rst
create mode 100644 gcc/jit/docs/topics/results.rst
create mode 100644 gcc/jit/docs/topics/types.rst
create mode 100644 gcc/jit/dummy-frontend.c
create mode 100644 gcc/jit/jit-builtins.c
create mode 100644 gcc/jit/jit-builtins.h
create mode 100644 gcc/jit/jit-common.h
create mode 100644 gcc/jit/jit-playback.c
create mode 100644 gcc/jit/jit-playback.h
create mode 100644 gcc/jit/jit-recording.c
create mode 100644 gcc/jit/jit-recording.h
create mode 100644 gcc/jit/libgccjit++.h
create mode 100644 gcc/jit/libgccjit.c
create mode 100644 gcc/jit/libgccjit.h
create mode 100644 gcc/jit/libgccjit.map
create mode 100644 gcc/jit/notes.txt
create mode 100644 gcc/testsuite/ChangeLog.jit
create mode 100644 gcc/testsuite/jit.dg/all-non-failing-tests.h
create mode 100644 gcc/testsuite/jit.dg/harness.h
create mode 100644 gcc/testsuite/jit.dg/jit.exp
create mode 100644 gcc/testsuite/jit.dg/test-accessing-struct.c
create mode 100644 gcc/testsuite/jit.dg/test-accessing-union.c
create mode 100644 gcc/testsuite/jit.dg/test-array-as-pointer.c
create mode 100644 gcc/testsuite/jit.dg/test-arrays.c
create mode 100644 gcc/testsuite/jit.dg/test-calling-external-function.c
create mode 100644 gcc/testsuite/jit.dg/test-calling-function-ptr.c
create mode 100644 gcc/testsuite/jit.dg/test-combination.c
create mode 100644 gcc/testsuite/jit.dg/test-dot-product.c
create mode 100644 gcc/testsuite/jit.dg/test-empty.c
create mode 100644 gcc/testsuite/jit.dg/test-error-accessing-field-in-other-struct.c
create mode 100644 gcc/testsuite/jit.dg/test-error-adding-to-terminated-block.c
create mode 100644 gcc/testsuite/jit.dg/test-error-array-as-pointer.c
create mode 100644 gcc/testsuite/jit.dg/test-error-bad-cast.c
create mode 100644 gcc/testsuite/jit.dg/test-error-block-in-wrong-function.c
create mode 100644 gcc/testsuite/jit.dg/test-error-call-through-ptr-with-mismatching-args.c
create mode 100644 gcc/testsuite/jit.dg/test-error-call-through-ptr-with-non-function.c
create mode 100644 gcc/testsuite/jit.dg/test-error-call-through-ptr-with-non-pointer.c
create mode 100644 gcc/testsuite/jit.dg/test-error-call-through-ptr-with-not-enough-args.c
create mode 100644 gcc/testsuite/jit.dg/test-error-call-through-ptr-with-too-many-args.c
create mode 100644 gcc/testsuite/jit.dg/test-error-call-with-mismatching-args.c
create mode 100644 gcc/testsuite/jit.dg/test-error-call-with-not-enough-args.c
create mode 100644 gcc/testsuite/jit.dg/test-error-call-with-too-many-args.c
create mode 100644 gcc/testsuite/jit.dg/test-error-dereference-field-of-non-pointer.c
create mode 100644 gcc/testsuite/jit.dg/test-error-dereference-read-of-non-pointer.c
create mode 100644 gcc/testsuite/jit.dg/test-error-index-not-a-numeric-type.c
create mode 100644 gcc/testsuite/jit.dg/test-error-mismatching-types-in-assignment.c
create mode 100644 gcc/testsuite/jit.dg/test-error-mismatching-types-in-call.c
create mode 100644 gcc/testsuite/jit.dg/test-error-missing-return.c
create mode 100644 gcc/testsuite/jit.dg/test-error-null-passed-to-api.c
create mode 100644 gcc/testsuite/jit.dg/test-error-return-within-void-function.c
create mode 100644 gcc/testsuite/jit.dg/test-error-unreachable-block.c
create mode 100644 gcc/testsuite/jit.dg/test-error-unterminated-block.c
create mode 100644 gcc/testsuite/jit.dg/test-error-value-not-a-numeric-type.c
create mode 100644 gcc/testsuite/jit.dg/test-expressions.c
create mode 100644 gcc/testsuite/jit.dg/test-factorial.c
create mode 100644 gcc/testsuite/jit.dg/test-fibonacci.c
create mode 100644 gcc/testsuite/jit.dg/test-functions.c
create mode 100644 gcc/testsuite/jit.dg/test-fuzzer.c
create mode 100644 gcc/testsuite/jit.dg/test-hello-world.c
create mode 100644 gcc/testsuite/jit.dg/test-linked-list.c
create mode 100644 gcc/testsuite/jit.dg/test-long-names.c
create mode 100644 gcc/testsuite/jit.dg/test-nested-contexts.c
create mode 100644 gcc/testsuite/jit.dg/test-nested-loops.c
create mode 100644 gcc/testsuite/jit.dg/test-operator-overloading.cc
create mode 100644 gcc/testsuite/jit.dg/test-quadratic.c
create mode 100644 gcc/testsuite/jit.dg/test-quadratic.cc
create mode 100644 gcc/testsuite/jit.dg/test-reading-struct.c
create mode 100644 gcc/testsuite/jit.dg/test-string-literal.c
create mode 100644 gcc/testsuite/jit.dg/test-sum-of-squares.c
create mode 100644 gcc/testsuite/jit.dg/test-threads.c
create mode 100644 gcc/testsuite/jit.dg/test-types.c
create mode 100644 gcc/testsuite/jit.dg/test-using-global.c
create mode 100644 gcc/testsuite/jit.dg/test-volatile.c
create mode 100644 include/ChangeLog.jit
create mode 100644 libbacktrace/ChangeLog.jit
create mode 100644 libcpp/ChangeLog.jit
create mode 100644 libdecnumber/ChangeLog.jit
create mode 100644 libiberty/ChangeLog.jit
create mode 100644 zlib/ChangeLog.jit
--
1.8.5.3