X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=isl_reordering.c;h=30e2c8b466b13df11904e025739d48d61db8fb36;hb=63fb8a7f484648c3caa25351c8c94ac2395ec563;hp=c284bc383c5c7c9107a1fcef16b07ef99c55ebb7;hpb=9e4b65d0a1f40138fb0c98ae3e597e6fa1330075;p=platform%2Fupstream%2Fisl.git diff --git a/isl_reordering.c b/isl_reordering.c index c284bc3..30e2c8b 100644 --- a/isl_reordering.c +++ b/isl_reordering.c @@ -1,7 +1,7 @@ /* * Copyright 2010 INRIA Saclay * - * Use of this software is governed by the GNU LGPLv2.1 license + * Use of this software is governed by the MIT license * * Written by Sven Verdoolaege, INRIA Saclay - Ile-de-France, * Parc Club Orsay Universite, ZAC des vignes, 4 rue Jacques Monod, @@ -9,7 +9,7 @@ */ #include -#include +#include #include __isl_give isl_reordering *isl_reordering_alloc(isl_ctx *ctx, int len) @@ -49,7 +49,7 @@ __isl_give isl_reordering *isl_reordering_dup(__isl_keep isl_reordering *r) if (!dup) return NULL; - dup->dim = isl_dim_copy(r->dim); + dup->dim = isl_space_copy(r->dim); if (!dup->dim) return isl_reordering_free(dup); for (i = 0; i < dup->len; ++i) @@ -77,7 +77,7 @@ void *isl_reordering_free(__isl_take isl_reordering *exp) if (--exp->ref > 0) return NULL; - isl_dim_free(exp->dim); + isl_space_free(exp->dim); free(exp); return NULL; } @@ -88,7 +88,7 @@ void *isl_reordering_free(__isl_take isl_reordering *exp) * any remaining parameters of "alignee" that do not occur in "aligner". */ __isl_give isl_reordering *isl_parameter_alignment_reordering( - __isl_keep isl_dim *alignee, __isl_keep isl_dim *aligner) + __isl_keep isl_space *alignee, __isl_keep isl_space *aligner) { int i, j; isl_reordering *exp; @@ -100,17 +100,17 @@ __isl_give isl_reordering *isl_parameter_alignment_reordering( if (!exp) return NULL; - exp->dim = isl_dim_copy(aligner); + exp->dim = isl_space_copy(aligner); for (i = 0; i < alignee->nparam; ++i) { isl_id *id_i; - id_i = isl_dim_get_dim_id(alignee, isl_dim_param, i); + id_i = isl_space_get_dim_id(alignee, isl_dim_param, i); if (!id_i) isl_die(alignee->ctx, isl_error_invalid, "cannot align unnamed parameters", goto error); for (j = 0; j < aligner->nparam; ++j) { isl_id *id_j; - id_j = isl_dim_get_dim_id(aligner, isl_dim_param, j); + id_j = isl_space_get_dim_id(aligner, isl_dim_param, j); isl_id_free(id_j); if (id_i == id_j) break; @@ -120,14 +120,16 @@ __isl_give isl_reordering *isl_parameter_alignment_reordering( isl_id_free(id_i); } else { int pos; - pos = isl_dim_size(exp->dim, isl_dim_param); - exp->dim = isl_dim_add(exp->dim, isl_dim_param, 1); - exp->dim = isl_dim_set_dim_id(exp->dim, + pos = isl_space_dim(exp->dim, isl_dim_param); + exp->dim = isl_space_add_dims(exp->dim, isl_dim_param, 1); + exp->dim = isl_space_set_dim_id(exp->dim, isl_dim_param, pos, id_i); exp->pos[i] = pos; } } + if (!exp->dim) + return isl_reordering_free(exp); return exp; error: isl_reordering_free(exp); @@ -146,11 +148,11 @@ __isl_give isl_reordering *isl_reordering_extend(__isl_take isl_reordering *exp, if (extra == 0) return exp; - offset = isl_dim_total(exp->dim) - exp->len; + offset = isl_space_dim(exp->dim, isl_dim_all) - exp->len; res = isl_reordering_alloc(exp->dim->ctx, exp->len + extra); if (!res) goto error; - res->dim = isl_dim_copy(exp->dim); + res->dim = isl_space_copy(exp->dim); for (i = 0; i < exp->len; ++i) res->pos[i] = exp->pos[i]; for (i = exp->len; i < res->len; ++i) @@ -164,8 +166,8 @@ error: return NULL; } -__isl_give isl_reordering *isl_reordering_extend_dim( - __isl_take isl_reordering *exp, __isl_take isl_dim *dim) +__isl_give isl_reordering *isl_reordering_extend_space( + __isl_take isl_reordering *exp, __isl_take isl_space *dim) { isl_reordering *res; @@ -173,19 +175,22 @@ __isl_give isl_reordering *isl_reordering_extend_dim( goto error; res = isl_reordering_extend(isl_reordering_copy(exp), - isl_dim_total(dim) - exp->len); + isl_space_dim(dim, isl_dim_all) - exp->len); res = isl_reordering_cow(res); if (!res) goto error; - isl_dim_free(res->dim); - res->dim = isl_dim_replace(dim, isl_dim_param, exp->dim); + isl_space_free(res->dim); + res->dim = isl_space_replace(dim, isl_dim_param, exp->dim); isl_reordering_free(exp); + if (!res->dim) + return isl_reordering_free(res); + return res; error: isl_reordering_free(exp); - isl_dim_free(dim); + isl_space_free(dim); return NULL; }