From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 65455 invoked by alias); 9 Jul 2015 21:32:29 -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 65444 invoked by uid 89); 9 Jul 2015 21:32:28 -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=-1.5 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=no version=3.3.2 X-Spam-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00,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: <1436477075.24803.171.camel@surprise> Subject: [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: <1436476508.24803.168.camel@surprise> 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> Content-Type: multipart/mixed; boundary="=-j/bF++ETgO3y2l1xvgEn" Mime-Version: 1.0 X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-SW-Source: 2015-q3/txt/msg00060.txt.bz2 --=-j/bF++ETgO3y2l1xvgEn Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Content-length: 985 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? Dave [1] ...and yes, it's effectively a trivial 1-liner; sigh... --=-j/bF++ETgO3y2l1xvgEn Content-Disposition: attachment; filename="fix-for-pr-66812-v1.patch" Content-Type: text/x-patch; name="fix-for-pr-66812-v1.patch"; charset="UTF-8" Content-Transfer-Encoding: 7bit Content-length: 1031 commit 77422fd3d87d2a70577642e61828f31c8d1ead31 Author: David Malcolm Date: Thu Jul 9 17:42:14 2015 -0400 FIXME: PR jit/66812: candidate fix: implementation of LANG_HOOKS_GET_ALIAS_SET diff --git a/gcc/jit/dummy-frontend.c b/gcc/jit/dummy-frontend.c index 3ddab50..6481c29 100644 --- a/gcc/jit/dummy-frontend.c +++ b/gcc/jit/dummy-frontend.c @@ -39,6 +39,12 @@ along with GCC; see the file COPYING3. If not see #include "function.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" @@ -252,6 +258,9 @@ jit_langhook_getdecls (void) #undef LANG_HOOKS_GETDECLS #define LANG_HOOKS_GETDECLS jit_langhook_getdecls +#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" --=-j/bF++ETgO3y2l1xvgEn--