[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] PR jit/66812: Candidate fix for for the code generation issue, v1
On Thu, 2015-07-09 at 23:20 +0100, Dibyendu Majumdar wrote:
> On 9 July 2015 at 22:24, David Malcolm <dmalcolm@redhat.com> 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)
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"