[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] PR jit/66812: Candidate fix for for the code generation issue, v1



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

commit 77422fd3d87d2a70577642e61828f31c8d1ead31
Author: David Malcolm <dmalcolm@redhat.com>
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"