summaryrefslogtreecommitdiff
path: root/isl_dim.c
diff options
context:
space:
mode:
authorSven Verdoolaege <skimo@kotnet.org>2011-01-27 20:01:28 +0100
committerSven Verdoolaege <skimo@kotnet.org>2011-01-27 20:01:28 +0100
commita6f371ad8ebf40abfbf444ac270774741a9580f9 (patch)
tree5c6df7309005ea5c523ad81b19bb4b3a0b431bf0 /isl_dim.c
parent3a566fce9f15e4f412fc28fb8ed59c45457c9dcc (diff)
downloadisl-a6f371ad8ebf40abfbf444ac270774741a9580f9.tar.gz
isl-a6f371ad8ebf40abfbf444ac270774741a9580f9.tar.bz2
isl-a6f371ad8ebf40abfbf444ac270774741a9580f9.zip
isl_dim_move: update parameters of nested spaces
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>
Diffstat (limited to 'isl_dim.c')
-rw-r--r--isl_dim.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/isl_dim.c b/isl_dim.c
index 2ada2e17..2d19663d 100644
--- a/isl_dim.c
+++ b/isl_dim.c
@@ -576,6 +576,8 @@ __isl_give isl_dim *isl_dim_move(__isl_take isl_dim *dim,
enum isl_dim_type dst_type, unsigned dst_pos,
enum isl_dim_type src_type, unsigned src_pos, unsigned n)
{
+ int i;
+
if (!dim)
return NULL;
if (n == 0)
@@ -647,6 +649,18 @@ __isl_give isl_dim *isl_dim_move(__isl_take isl_dim *dim,
case isl_dim_out: dim->n_out -= n; break;
}
+ if (dst_type != isl_dim_param && src_type != isl_dim_param)
+ return dim;
+
+ for (i = 0; i < 2; ++i) {
+ if (!dim->nested[i])
+ continue;
+ dim->nested[i] = isl_dim_replace(dim->nested[i],
+ isl_dim_param, dim);
+ if (!dim->nested[i])
+ goto error;
+ }
+
return dim;
error:
isl_dim_free(dim);