mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-11 13:30:18 +08:00
gcc/
* graphite-isl-ast-to-gimple.c: (translate_isl_ast_node_block): New function. (translate_isl_ast): Add calling of translate_isl_ast_node_block. gcc/testsuite/gcc.dg/graphite/ * isl-ast-gen-blocks-1.c: New testcase. * isl-ast-gen-blocks-2.c: New testcase. From-SVN: r212922
This commit is contained in:
parent
fb3764d13a
commit
322a0b39c8
@ -1,3 +1,13 @@
|
||||
2014-07-23 Roman Gareev <gareevroman@gmail.com>
|
||||
|
||||
* graphite-isl-ast-to-gimple.c:
|
||||
(translate_isl_ast_node_block): New function.
|
||||
(translate_isl_ast): Add calling of translate_isl_ast_node_block.
|
||||
|
||||
testsuite/gcc.dg/graphite/
|
||||
* isl-ast-gen-blocks-1.c: New testcase.
|
||||
* isl-ast-gen-blocks-2.c: New testcase.
|
||||
|
||||
2014-07-23 Roman Gareev <gareevroman@gmail.com>
|
||||
|
||||
* graphite-isl-ast-to-gimple.c:
|
||||
|
@ -616,6 +616,26 @@ translate_isl_ast_node_user (__isl_keep isl_ast_node *node,
|
||||
return next_e;
|
||||
}
|
||||
|
||||
/* Translates an isl_ast_node_block to Gimple. */
|
||||
|
||||
static edge
|
||||
translate_isl_ast_node_block (loop_p context_loop,
|
||||
__isl_keep isl_ast_node *node,
|
||||
edge next_e, ivs_params &ip)
|
||||
{
|
||||
gcc_assert (isl_ast_node_get_type (node) == isl_ast_node_block);
|
||||
isl_ast_node_list *node_list = isl_ast_node_block_get_children (node);
|
||||
int i;
|
||||
for (i = 0; i < isl_ast_node_list_n_ast_node (node_list); i++)
|
||||
{
|
||||
isl_ast_node *tmp_node = isl_ast_node_list_get_ast_node (node_list, i);
|
||||
next_e = translate_isl_ast (context_loop, tmp_node, next_e, ip);
|
||||
isl_ast_node_free (tmp_node);
|
||||
}
|
||||
isl_ast_node_list_free (node_list);
|
||||
return next_e;
|
||||
}
|
||||
|
||||
/* Translates an ISL AST node NODE to GCC representation in the
|
||||
context of a SESE. */
|
||||
|
||||
@ -639,7 +659,8 @@ translate_isl_ast (loop_p context_loop, __isl_keep isl_ast_node *node,
|
||||
return translate_isl_ast_node_user (node, next_e, ip);
|
||||
|
||||
case isl_ast_node_block:
|
||||
return next_e;
|
||||
return translate_isl_ast_node_block (context_loop, node,
|
||||
next_e, ip);
|
||||
|
||||
default:
|
||||
gcc_unreachable ();
|
||||
|
27
gcc/testsuite/gcc.dg/graphite/isl-ast-gen-blocks-1.c
Normal file
27
gcc/testsuite/gcc.dg/graphite/isl-ast-gen-blocks-1.c
Normal file
@ -0,0 +1,27 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -fgraphite-identity -fgraphite-code-generator=isl" } */
|
||||
|
||||
int n = 50;
|
||||
static int __attribute__((noinline))
|
||||
foo ()
|
||||
{
|
||||
int i, res;
|
||||
for (i = 0, res = 0; i < n; i++)
|
||||
res += i;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
extern void abort ();
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
int res = foo ();
|
||||
|
||||
|
||||
if (res != 1225)
|
||||
abort ();
|
||||
|
||||
return 0;
|
||||
}
|
27
gcc/testsuite/gcc.dg/graphite/isl-ast-gen-blocks-2.c
Normal file
27
gcc/testsuite/gcc.dg/graphite/isl-ast-gen-blocks-2.c
Normal file
@ -0,0 +1,27 @@
|
||||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -fgraphite-identity -fgraphite-code-generator=isl" } */
|
||||
|
||||
int k = 50;
|
||||
static int __attribute__((noinline))
|
||||
foo ()
|
||||
{
|
||||
int i, res;
|
||||
for (i = 0, res = 0; i < k; i++)
|
||||
res += i;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
extern void abort ();
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
int res = foo ();
|
||||
|
||||
|
||||
if (res != 1225)
|
||||
abort ();
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user