diff options
author | Sebastian Pop <sebastian.pop@amd.com> | 2008-01-25 00:27:04 +0000 |
---|---|---|
committer | Sebastian Pop <sebastian.pop@amd.com> | 2008-01-25 00:27:04 +0000 |
commit | c1322efc2c1a7778c357dc4c6399c72daca9c4f9 (patch) | |
tree | 7b6490e11d4ea6d13dce5bb8afbfacc7e48f44be | |
parent | cf19cd33f86cb41fbb068e59b0e72b4efde6f2a7 (diff) |
2008-01-24 Sebastian Pop <sebastian.pop@amd.com>
Tobias Grosser <grosser@fmi.uni-passau.de>
* graphite.c (setup_cloog_loop): Chain all cloog loops with the
next pointer, don't use the inner pointer.
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/graphite@131816 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog.graphite | 6 | ||||
-rw-r--r-- | gcc/graphite.c | 15 |
2 files changed, 19 insertions, 2 deletions
diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite index 3dc39c65e12..6e27db0bb7b 100644 --- a/gcc/ChangeLog.graphite +++ b/gcc/ChangeLog.graphite @@ -1,3 +1,9 @@ +2008-01-24 Sebastian Pop <sebastian.pop@amd.com> + Tobias Grosser <grosser@fmi.uni-passau.de> + + * graphite.c (setup_cloog_loop): Chain all cloog loops with the + next pointer, don't use the inner pointer. + 2008-01-20 Tobias Grosser <grosser@fmi.uni-passau.de> * graphite.c (dot_all_scops, dot_all_scops_1): New. diff --git a/gcc/graphite.c b/gcc/graphite.c index cdaf7a9e3ab..744f57ee408 100644 --- a/gcc/graphite.c +++ b/gcc/graphite.c @@ -1112,11 +1112,22 @@ setup_cloog_loop (scop_p scop, struct loop *loop, CloogMatrix *outer_cstr, res->domain = cloog_domain_matrix2domain (cstr); + /* Now set up the other loop constructs. CLooG is expecting to see + a list of loops chained with the res->next pointer. Don't use + res->inner for representing inner loops: this information is + contained in the scattering matrix. */ if (loop->inner && loop_in_scop_p (loop->inner, scop)) - res->inner = setup_cloog_loop (scop, loop->inner, cstr, nb_iterators + 1); + res->next = setup_cloog_loop (scop, loop->inner, cstr, nb_iterators + 1); if (loop->next && loop_in_scop_p (loop->next, scop)) - res->next = setup_cloog_loop (scop, loop->next, outer_cstr, nb_iterators); + { + CloogLoop *l = res; + + /* Append at the end of the res->next list. */ + while (l->next) + l = l->next; + l->next = setup_cloog_loop (scop, loop->next, outer_cstr, nb_iterators); + } { static int number = 0; |