[gcc/]
* graphite-isl-ast-to-gimple.c: (graphite_create_new_loop): Add calling of isl_id_free to properly decrement reference counts. [gcc/testsuite] * gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase. From-SVN: r212994
This commit is contained in:
parent
dacd445e14
commit
a663102770
|
@ -1,3 +1,11 @@
|
|||
2014-07-24 Roman Gareev <gareevroman@gmail.com>
|
||||
|
||||
* graphite-isl-ast-to-gimple.c:
|
||||
(graphite_create_new_loop): Add calling of isl_id_free to properly
|
||||
decrement reference counts.
|
||||
|
||||
* gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.
|
||||
|
||||
2014-07-24 Martin Liska <mliska@suse.cz>
|
||||
|
||||
* cgraphunit.c (compile): Correct function used.
|
||||
|
|
|
@ -389,6 +389,10 @@ graphite_create_new_loop (edge entry_edge, __isl_keep isl_ast_node *node_for,
|
|||
|
||||
isl_ast_expr *for_iterator = isl_ast_node_for_get_iterator (node_for);
|
||||
isl_id *id = isl_ast_expr_get_id (for_iterator);
|
||||
std::map<isl_id *, tree>::iterator res;
|
||||
res = ip.find (id);
|
||||
if (ip.count (id))
|
||||
isl_id_free (res->first);
|
||||
ip[id] = iv;
|
||||
isl_ast_expr_free (for_iterator);
|
||||
return loop;
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
/* { dg-do run } */
|
||||
/* { dg-options "-O2 -fgraphite-identity -fgraphite-code-generator=isl" } */
|
||||
|
||||
static int __attribute__((noinline))
|
||||
foo (int k, int n1, int n2, int n3)
|
||||
{
|
||||
int j, res = 0;
|
||||
for (j = 0; j < k; j++)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < n1; i++)
|
||||
res += i;
|
||||
for (i = 0; i < n2; i++)
|
||||
res += i;
|
||||
for (i = 0; i < n3; i++)
|
||||
res += i;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
extern void abort ();
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
int res = foo (4, 50, 50, 50);
|
||||
if (res != 14700)
|
||||
abort ();
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue