diff options
author | Sven Verdoolaege <skimo@kotnet.org> | 2011-01-27 20:01:28 +0100 |
---|---|---|
committer | Sven Verdoolaege <skimo@kotnet.org> | 2011-01-27 20:01:28 +0100 |
commit | a6f371ad8ebf40abfbf444ac270774741a9580f9 (patch) | |
tree | 5c6df7309005ea5c523ad81b19bb4b3a0b431bf0 /isl_dim.c | |
parent | 3a566fce9f15e4f412fc28fb8ed59c45457c9dcc (diff) | |
download | isl-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.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -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); |