From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6715 invoked by alias); 31 Oct 2014 17:07:30 -0000 Mailing-List: contact jit-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Subscribe: Sender: jit-owner@gcc.gnu.org Received: (qmail 6543 invoked by uid 89); 31 Oct 2014 17:07:28 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.98.4 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=2.7 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPAM_URI1,SPF_HELO_PASS,SPF_PASS autolearn=no version=3.3.2 X-Spam-Status: No, score=2.7 required=5.0 tests=AWL,BAYES_00,RP_MATCHES_RCVD,SPAM_URI1,SPF_HELO_PASS,SPF_PASS autolearn=no version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on sourceware.org X-Spam-Level: ** X-Spam-User: qpsmtpd, 2 recipients X-HELO: mx1.redhat.com From: David Malcolm To: gcc-patches@gcc.gnu.org, jit@gcc.gnu.org Cc: David Malcolm Subject: [PATCH 00/27] Merger of jit branch v3 Date: Wed, 01 Jan 2014 00:00:00 -0000 Message-Id: <1414774977-25605-1-git-send-email-dmalcolm@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-SW-Source: 2014-q4/txt/msg00068.txt.bz2 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