From d50cc61ad30344444108c6f66f4f2f1295c20551 Mon Sep 17 00:00:00 2001 From: Roman Gareev Date: Mon, 28 Jul 2014 06:01:24 +0000 Subject: [PATCH] [gcc/] * graphite-sese-to-poly.c: (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the id of the pbb), which contains pointer to the pbb1. [gcc/testsuite] * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase. From-SVN: r213110 --- gcc/ChangeLog | 8 ++++++ gcc/graphite-sese-to-poly.c | 2 ++ gcc/testsuite/gcc.dg/graphite/isl-ast-gen-if-2.c | 31 ++++++++++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/graphite/isl-ast-gen-if-2.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 187f988..5476b59 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,13 @@ 2014-07-28 Roman Gareev + * graphite-sese-to-poly.c: + (new_pbb_from_pbb): Set a new id of pbb1->domain (instead of using the + id of the pbb), which contains pointer to the pbb1. + + * gcc.dg/graphite/isl-ast-gen-if-2.c: New testcase. + +2014-07-28 Roman Gareev + * graphite-isl-ast-to-gimple.c: (graphite_create_new_guard): New function. (translate_isl_ast_node_if): New function. diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c index 0bc44330..3254df9 100644 --- a/gcc/graphite-sese-to-poly.c +++ b/gcc/graphite-sese-to-poly.c @@ -2044,6 +2044,8 @@ new_pbb_from_pbb (scop_p scop, poly_bb_p pbb, basic_block bb) break; pbb1->domain = isl_set_copy (pbb->domain); + pbb1->domain = isl_set_set_tuple_id (pbb1->domain, + isl_id_for_pbb (scop, pbb1)); GBB_PBB (gbb1) = pbb1; GBB_CONDITIONS (gbb1) = GBB_CONDITIONS (gbb).copy (); diff --git a/gcc/testsuite/gcc.dg/graphite/isl-ast-gen-if-2.c b/gcc/testsuite/gcc.dg/graphite/isl-ast-gen-if-2.c new file mode 100644 index 0000000..512e43d --- /dev/null +++ b/gcc/testsuite/gcc.dg/graphite/isl-ast-gen-if-2.c @@ -0,0 +1,31 @@ +/* { dg-do run } */ +/* { dg-options "-O2 -fgraphite-identity -fgraphite-code-generator=isl" } */ + +/* This test case tests reduction, where the pbbs are duplicated. */ + +static int __attribute__((noinline)) +foo () +{ + int i, res = 0; + + for (i = 0; i < 50; i++) + { + if (i >= 25) + res += i; + } + + return res; +} + +extern void abort (); + +int +main (void) +{ + int res = foo (); + + if (res != 925) + abort (); + + return 0; +} -- 2.7.4