diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 187f98858fe..5476b599865 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +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: diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c index 0bc443302c6..3254df97463 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 00000000000..512e43daca6 --- /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; +}