Late-breaking jit features (was Re: [PATCH][gcc] libgccjit: introduce gcc_jit_context_add_driver_option)
David Malcolm
dmalcolm@redhat.com
Tue Jan 1 00:00:00 GMT 2019
On Sat, 2019-02-02 at 08:26 +0100, Richard Biener wrote:
> On February 1, 2019 10:11:12 PM GMT+01:00, David Malcolm <dmalcolm@re
> dhat.com> wrote:
> > On Mon, 2019-01-21 at 08:40 +0000, Andrea Corallo wrote:
> > > Hi all,
> > > Second version of the patch addressing David's comment about all-
> > > non-
> > > failing-tests.h
> > >
> > > Adds gcc_jit_context_add_driver_option to the libgccjit ABI and a
> > > testcase for it.
> > >
> > > Using this interface is now possible to pass options affecting
> > > assembler and linker.
> > >
> > > Does not introduce regressions running make check-jit
> >
> > Thanks; the patch looks good.
> >
> > [CCing the release managers]
> >
> > Given that gcc development is now in stage 4, we really shouldn't
> > be
> > adding new features, but I'm wondering if an exception can be made
> > for
> > libgccjit? (this patch purely touches the jit subdirectories).
> >
> > There's one other late-breaking change, here:
> > [PATCH][jit] Add thread-local globals to the libgccjit frontend
> > https://gcc.gnu.org/ml/gcc-patches/2019-01/msg00227.html
> > which is nearly ready, but is awaiting copyright assignment
> > paperwork.
> >
> > Alternatively, should these patches go into a branch of queued jit
> > changes for gcc 10?
>
> Is there anything like an ABI involved? If so we should avoid
> breaking it all the time. Otherwise JIT is not release critical and
> thus if you break it in the wrong moment it's your own fault.
The two patches each add a new API entrypoint, but libgccjit uses
symbol-versioning to extend the ABI, without bumping the SONAME:
https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html
So it's not an ABI break as such.
Dave
> Richard.
>
> > Thanks
> > Dave
> >
> >
> > > Bests
> > >
> > > Andrea
> > >
> > >
> > > gcc/jit/ChangeLog
> > > 2019-01-16 Andrea Corallo andrea.corallo@arm.com
> > >
> > > * docs/topics/compatibility.rst (LIBGCCJIT_ABI_11): New ABI tag.
> > > * docs/topics/contexts.rst (Additional driver options): New
> > > section.
> > > * jit-playback.c (invoke_driver): Add call to
> > > append_driver_options.
> > > * jit-recording.c: Within namespace gcc::jit...
> > > (recording::context::~context): Free the optnames within
> > > m_driver_options.
> > > (recording::context::add_driver_option): New method.
> > > (recording::context::append_driver_options): New method.
> > > (recording::context::dump_reproducer_to_file): Add driver
> > > options.
> > > * jit-recording.h: Within namespace gcc::jit...
> > > (recording::context::add_driver_option): New method.
> > > (recording::context::append_driver_options): New method.
> > > (recording::context::m_driver_options): New field.
> > > * libgccjit++.h (gccjit::context::add_driver_option): New
> > > method.
> > > * libgccjit.c (gcc_jit_context_add_driver_option): New API
> > > entrypoint.
> > > * libgccjit.h (gcc_jit_context_add_driver_option): New API
> > > entrypoint.
> > > (LIBGCCJIT_HAVE_gcc_jit_context_add_driver_option): New
> > > macro.
> > > * libgccjit.map (LIBGCCJIT_ABI_11): New ABI tag.
> > >
> > >
> > >
> > > gcc/testsuite/ChangeLog
> > > 2019-01-16 Andrea Corallo andrea.corallo@arm.com
> > >
> > > * jit.dg/add-driver-options-testlib.c: Add support file for
> > > test-add-driver-options.c testcase.
> > > * jit.dg/all-non-failing-tests.h: Add note about
> > > test-add-driver-options.c
> > > * jit.dg/jit.exp (jit-dg-test): Update to support
> > > add-driver-options-testlib.c compilation.
> > > * jit.dg/test-add-driver-options.c: New testcase.
> > >
>
>
More information about the Jit
mailing list