This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH 0/5] Merger of jit branch (v2)
- 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: Mon, 13 Oct 2014 13:45:04 -0400
- Subject: [PATCH 0/5] Merger of jit branch (v2)
- Authentication-results: sourceware.org; auth=none
I'd like to merge the JIT branch into trunk:
https://gcc.gnu.org/wiki/JIT
This is "v2" since it incorporates fixes for the various issues
identified by Joseph in an earlier submission:
https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02056.html
I've split up the current diff between trunk and the branch into 5
areas for ease of review (and to allow for early merger of the
supporting work, if it's deemed ready):
patch 1: exposes an entrypoint in libiberty that I need
patch 2: configure and Makefile changes in "gcc"
patch 3: timevar.h: Add an auto_timevar class
patch 4: State cleanups in "gcc"
patch 5: Add the "jit" code itself
[this is a diff of trunk r215958 aka
e012cdc775868e9922f5fef9068a764546876d93 which is from 2014-10-06,
vs jit branch version 75b3ee7acdc6de55354d65bb7d619386463e50a1].
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).
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?
Overall diffstat follows:
ChangeLog.jit | 23 +
MAINTAINERS | 1 +
contrib/ChangeLog.jit | 14 +
contrib/jit-coverage-report.py | 67 +
gcc/ChangeLog.jit | 323 +
gcc/Makefile.in | 9 +
gcc/cgraph.c | 14 +
gcc/cgraph.h | 6 +
gcc/cgraphunit.c | 20 +-
gcc/configure | 54 +-
gcc/configure.ac | 11 +
gcc/diagnostic.c | 11 +-
gcc/doc/install.texi | 2 +-
gcc/dwarf2out.c | 87 +
gcc/dwarf2out.h | 2 +
gcc/gcse.c | 9 +
gcc/gcse.h | 2 +
gcc/ggc-page.c | 5 +
gcc/input.c | 2 +-
gcc/ipa-cp.c | 12 +
gcc/ipa-pure-const.c | 113 +-
gcc/ipa-reference.c | 17 +-
gcc/ipa-reference.h | 1 +
gcc/java/ChangeLog.jit | 14 +
gcc/jit/ChangeLog | 9 +
gcc/jit/ChangeLog.jit | 3252 ++++++++++
gcc/jit/Make-lang.in | 297 +
gcc/jit/TODO.rst | 119 +
gcc/jit/config-lang.in | 42 +
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 | 6724 ++++++++++++++++++++
gcc/jit/docs/_build/texinfo/sum-of-squares.png | Bin 0 -> 22839 bytes
gcc/jit/docs/conf.py | 258 +
gcc/jit/docs/examples/install-hello-world.c | 123 +
gcc/jit/docs/examples/tut01-square.c | 107 +
gcc/jit/docs/examples/tut02-sum-of-squares.c | 172 +
gcc/jit/docs/examples/tut03-toyvm/Makefile | 11 +
gcc/jit/docs/examples/tut03-toyvm/factorial.toy | 50 +
gcc/jit/docs/examples/tut03-toyvm/fibonacci.toy | 66 +
gcc/jit/docs/examples/tut03-toyvm/toyvm.c | 861 +++
gcc/jit/docs/index.rst | 50 +
gcc/jit/docs/internals/index.rst | 157 +
gcc/jit/docs/intro/factorial.png | Bin 0 -> 183838 bytes
gcc/jit/docs/intro/index.rst | 27 +
gcc/jit/docs/intro/install.rst | 227 +
gcc/jit/docs/intro/sum-of-squares.png | Bin 0 -> 22839 bytes
gcc/jit/docs/intro/tutorial01.rst | 349 +
gcc/jit/docs/intro/tutorial02.rst | 378 ++
gcc/jit/docs/intro/tutorial03.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 | 248 +
gcc/jit/jit-builtins.c | 424 ++
gcc/jit/jit-builtins.h | 114 +
gcc/jit/jit-common.h | 182 +
gcc/jit/jit-playback.c | 2098 ++++++
gcc/jit/jit-playback.h | 564 ++
gcc/jit/jit-recording.c | 3415 ++++++++++
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/libgccjit.pc.in | 11 +
gcc/jit/notes.txt | 84 +
gcc/main.c | 6 +-
gcc/params.c | 14 +
gcc/params.h | 4 +
gcc/passes.c | 6 +
gcc/stringpool.c | 5 +
gcc/testsuite/ChangeLog.jit | 601 ++
gcc/testsuite/jit.dg/all-non-failing-tests.h | 166 +
gcc/testsuite/jit.dg/harness.h | 242 +
gcc/testsuite/jit.dg/jit.exp | 259 +
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.c | 3 +
gcc/timevar.def | 6 +
gcc/timevar.h | 24 +
gcc/toplev.c | 67 +-
gcc/toplev.h | 19 +-
include/ChangeLog.jit | 11 +
include/libiberty.h | 5 +
libbacktrace/ChangeLog.jit | 14 +
libcpp/ChangeLog.jit | 22 +
libdecnumber/ChangeLog.jit | 22 +
libiberty/ChangeLog.jit | 23 +
libiberty/choose-temp.c | 1 -
libiberty/functions.texi | 13 +-
libiberty/make-temp-file.c | 4 +-
zlib/ChangeLog.jit | 22 +
150 files changed, 39206 insertions(+), 87 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/install-hello-world.c
create mode 100644 gcc/jit/docs/examples/tut01-square.c
create mode 100644 gcc/jit/docs/examples/tut02-sum-of-squares.c
create mode 100644 gcc/jit/docs/examples/tut03-toyvm/Makefile
create mode 100644 gcc/jit/docs/examples/tut03-toyvm/factorial.toy
create mode 100644 gcc/jit/docs/examples/tut03-toyvm/fibonacci.toy
create mode 100644 gcc/jit/docs/examples/tut03-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/install.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/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/libgccjit.pc.in
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