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 06/10] Heart of the JIT implementation (was: Re: [PATCH 0/5] Merger of jit branch (v2))


On Tue, 2014-10-14 at 11:09 -0400, David Malcolm wrote:
> On Mon, 2014-10-13 at 13:45 -0400, David Malcolm wrote:
> > 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?
> 
> Patch 5 seems to have been too large, even compressed, so I'm breaking
> it up into separate pieces and compressing, giving 10 patches in total
> 
> Patches 1-4 are as above.
> 
> Patch 5: remaining JIT-related changes outside of the gcc/jit/ subdir
> 
> Patch 6: the core of the JIT implementation: the gcc/jit subdir
> 
> Patch 7: the testsuite: gcc/testsuite/jit.dg
> 
> Patch 8: sphinx-based documentation: the gcc/jit/docs subdir
> 
> Patch 9: texinfo documentation autogenerated from the sphinx sources.
> 
> Patch 10: the ChangeLog.jit logs from the branch.

This commit adds the gcc/jit subdirectory, implementing the library,
which looks like a frontend named "jit" from the POV of the rest of the
gcc code.

gcc/jit/ChangeLog:

        * Make-lang.in: New.
        * TODO.rst: New.
        * config-lang.in: New.
        * dummy-frontend.c: New.
        * jit-builtins.c: New.
        * jit-builtins.h: New.
        * jit-common.h: New.
        * jit-playback.c: New.
        * jit-playback.h: New.
        * jit-recording.c: New.
        * jit-recording.h: New.
        * libgccjit++.h: New.
        * libgccjit.c: New.
        * libgccjit.h: New.
        * libgccjit.map: New.
        * libgccjit.pc.in: New.
        * notes.txt: New.

Attachment: 0006-Heart-of-the-JIT-implementation.patch.gz
Description: GNU Zip compressed data


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