From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8584 invoked by alias); 2 Feb 2019 15:18:49 -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 8568 invoked by uid 89); 2 Feb 2019 15:18:49 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.100.2 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,KAM_SHORT,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy= X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,KAM_SHORT,SPF_HELO_PASS autolearn=ham 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 Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 02 Feb 2019 15:18:47 +0000 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id CFE2737EE7; Sat, 2 Feb 2019 15:18:45 +0000 (UTC) Received: from ovpn-117-148.phx2.redhat.com (ovpn-117-148.phx2.redhat.com [10.3.117.148]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5FF251726F; Sat, 2 Feb 2019 15:18:44 +0000 (UTC) Message-ID: <1549120723.29992.14.camel@redhat.com> Subject: Re: Late-breaking jit features (was Re: [PATCH][gcc] libgccjit: introduce gcc_jit_context_add_driver_option) From: David Malcolm To: Richard Biener , Jakub Jelinek Cc: nd , Andrea Corallo , "gcc-patches@gcc.gnu.org" , "jit@gcc.gnu.org" Date: Tue, 01 Jan 2019 00:00:00 -0000 In-Reply-To: References: <1549055472.29992.9.camel@redhat.com> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Sat, 02 Feb 2019 15:18:46 +0000 (UTC) X-IsSubscribed: yes X-SW-Source: 2019-q1/txt/msg00055.txt.bz2 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 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. > > > > >