From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 103664 invoked by alias); 9 Jul 2015 23:38:22 -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 103654 invoked by uid 89); 9 Jul 2015 23:38:21 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.98.7 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.6 required=5.0 tests=AWL,BAYES_40,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=no version=3.3.2 X-Spam-Status: No, score=-0.6 required=5.0 tests=AWL,BAYES_40,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD,SPF_HELO_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-HELO: mx1.redhat.com Message-ID: <1436484627.24803.173.camel@surprise> Subject: Re: [PATCH] PR jit/66812: Candidate fix for for the code generation issue, v1 From: David Malcolm To: Dibyendu Majumdar Cc: jit@gcc.gnu.org Date: Thu, 01 Jan 2015 00:00:00 -0000 In-Reply-To: References: <1436365266.24803.65.camel@surprise> <1436367926.24803.71.camel@surprise> <1436369443.24803.75.camel@surprise> <1436377619.24803.97.camel@surprise> <1436382217.24803.101.camel@surprise> <1436385256.24803.107.camel@surprise> <1436469764.24803.156.camel@surprise> <1436476508.24803.168.camel@surprise> <1436477075.24803.171.camel@surprise> Content-Type: multipart/mixed; boundary="=-3rhhpBr7Wymp5GeBJZZG" Mime-Version: 1.0 X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-SW-Source: 2015-q3/txt/msg00066.txt.bz2 --=-3rhhpBr7Wymp5GeBJZZG Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit Content-length: 1839 On Thu, 2015-07-09 at 23:20 +0100, Dibyendu Majumdar wrote: > On 9 July 2015 at 22:24, David Malcolm wrote: > > On Thu, 2015-07-09 at 17:15 -0400, David Malcolm wrote: > >> On Thu, 2015-07-09 at 17:06 -0400, David Malcolm wrote: > >> > >> (snip) > >> > >> > The fix will be to implement the LANG_HOOKS_GET_ALIAS_SET internal GCC > >> > API thus giving libgccjit some rules about aliasing. Some options: > >> > > >> > (i) make it identical to C. > >> > (ii) give the client code some control over this > >> > > >> > My initial gut feeling is to go with (i). > >> > >> ...or possibly to do what the link-time optimizer does, which is to use > >> this internal API: > >> > >> /* Return the typed-based alias set for T, which may be an expression > >> or a type. Return -1 if we don't do anything special. */ > >> > >> alias_set_type > >> gimple_get_alias_set (tree t) > >> > >> which does almost all of what the C frontend does. I'll try to cook up > >> a patch. > > > > Attached is a patch [1] which fixes the minimal reproducer I created, > > and the reproducer you sent. > > > > Does it work for you? > > > > I get this error when compiling: > > In file included from ../../gcc-5.1.0/gcc/jit/dummy-frontend.c:54:0: > ../../gcc-5.1.0/gcc/gimple.h: In function ‘void > gimple_call_set_fndecl(gimple, tree)’: > ../../gcc-5.1.0/gcc/gimple.h:2769:77: error: > ‘build_fold_addr_expr_loc’ was not declared in this scope > gimple_set_op (gs, 1, build_fold_addr_expr_loc (gimple_location (gs), decl)); > ^ > Am I missing something? The patch was for trunk, where GCC's internal headers have been reorganized, so we need different #includes for gcc-5-branch. Does the attached work? (it compiles; I haven't tested it though) --=-3rhhpBr7Wymp5GeBJZZG Content-Disposition: attachment; filename="fix-for-pr-66812-v1-against-gcc-5.patch" Content-Type: text/x-patch; name="fix-for-pr-66812-v1-against-gcc-5.patch"; charset="UTF-8" Content-Transfer-Encoding: 7bit Content-length: 1067 diff --git a/gcc/jit/dummy-frontend.c b/gcc/jit/dummy-frontend.c index 8f7d06a..e1c01ad 100644 --- a/gcc/jit/dummy-frontend.c +++ b/gcc/jit/dummy-frontend.c @@ -31,6 +31,7 @@ along with GCC; see the file COPYING3. If not see #include "stor-layout.h" #include "inchash.h" #include "tree.h" +#include "fold-const.h" #include "debug.h" #include "langhooks.h" #include "langhooks-def.h" @@ -46,6 +47,12 @@ along with GCC; see the file COPYING3. If not see #include "ipa-ref.h" #include "dumpfile.h" #include "cgraph.h" +#include "predict.h" +#include "function.h" +#include "basic-block.h" +#include "tree-ssa-alias.h" +#include "gimple-expr.h" +#include "gimple.h" #include "jit-common.h" #include "jit-logging.h" @@ -266,6 +273,9 @@ jit_langhook_write_globals (void) #undef LANG_HOOKS_WRITE_GLOBALS #define LANG_HOOKS_WRITE_GLOBALS jit_langhook_write_globals +#undef LANG_HOOKS_GET_ALIAS_SET +#define LANG_HOOKS_GET_ALIAS_SET gimple_get_alias_set + struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER; #include "gt-jit-dummy-frontend.h" --=-3rhhpBr7Wymp5GeBJZZG--