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.cora...@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.cora...@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.
> > > 
> 
> 

Reply via email to