aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Pop <sebastian.pop@amd.com>2008-01-25 00:27:04 +0000
committerSebastian Pop <sebastian.pop@amd.com>2008-01-25 00:27:04 +0000
commitc1322efc2c1a7778c357dc4c6399c72daca9c4f9 (patch)
tree7b6490e11d4ea6d13dce5bb8afbfacc7e48f44be
parentcf19cd33f86cb41fbb068e59b0e72b4efde6f2a7 (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.graphite6
-rw-r--r--gcc/graphite.c15
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;