summaryrefslogtreecommitdiffstats
path: root/polly/lib/External/isl/isl_aff.c
diff options
context:
space:
mode:
Diffstat (limited to 'polly/lib/External/isl/isl_aff.c')
-rw-r--r--polly/lib/External/isl/isl_aff.c109
1 files changed, 81 insertions, 28 deletions
diff --git a/polly/lib/External/isl/isl_aff.c b/polly/lib/External/isl/isl_aff.c
index 5906ae08aab..79bbb2d462f 100644
--- a/polly/lib/External/isl/isl_aff.c
+++ b/polly/lib/External/isl/isl_aff.c
@@ -460,11 +460,15 @@ error:
__isl_give isl_aff *isl_aff_align_params(__isl_take isl_aff *aff,
__isl_take isl_space *model)
{
+ isl_bool equal_params;
+
if (!aff || !model)
goto error;
- if (!isl_space_match(aff->ls->dim, isl_dim_param,
- model, isl_dim_param)) {
+ equal_params = isl_space_has_equal_params(aff->ls->dim, model);
+ if (equal_params < 0)
+ goto error;
+ if (!equal_params) {
isl_reordering *exp;
model = isl_space_drop_dims(model, isl_dim_in,
@@ -2611,10 +2615,14 @@ static __isl_give isl_set *align_params_pw_pw_set_and(
__isl_give isl_set *(*fn)(__isl_take isl_pw_aff *pwaff1,
__isl_take isl_pw_aff *pwaff2))
{
+ isl_bool equal_params;
+
if (!pwaff1 || !pwaff2)
goto error;
- if (isl_space_match(pwaff1->dim, isl_dim_param,
- pwaff2->dim, isl_dim_param))
+ equal_params = isl_space_has_equal_params(pwaff1->dim, pwaff2->dim);
+ if (equal_params < 0)
+ goto error;
+ if (equal_params)
return fn(pwaff1, pwaff2);
if (!isl_space_has_named_params(pwaff1->dim) ||
!isl_space_has_named_params(pwaff2->dim))
@@ -2637,9 +2645,14 @@ static __isl_give isl_map *align_params_pw_pw_map_and(
__isl_give isl_map *(*fn)(__isl_take isl_pw_aff *pa1,
__isl_take isl_pw_aff *pa2))
{
+ isl_bool equal_params;
+
if (!pa1 || !pa2)
goto error;
- if (isl_space_match(pa1->dim, isl_dim_param, pa2->dim, isl_dim_param))
+ equal_params = isl_space_has_equal_params(pa1->dim, pa2->dim);
+ if (equal_params < 0)
+ goto error;
+ if (equal_params)
return fn(pa1, pa2);
if (!isl_space_has_named_params(pa1->dim) ||
!isl_space_has_named_params(pa2->dim))
@@ -3732,7 +3745,7 @@ isl_bool isl_aff_matching_params(__isl_keep isl_aff *aff,
aff_space = isl_aff_get_domain_space(aff);
- match = isl_space_match(space, isl_dim_param, aff_space, isl_dim_param);
+ match = isl_space_has_equal_params(space, aff_space);
isl_space_free(aff_space);
return match;
@@ -3751,7 +3764,7 @@ isl_stat isl_aff_check_match_domain_space(__isl_keep isl_aff *aff,
aff_space = isl_aff_get_domain_space(aff);
- match = isl_space_match(space, isl_dim_param, aff_space, isl_dim_param);
+ match = isl_space_has_equal_params(space, aff_space);
if (match < 0)
goto error;
if (!match)
@@ -6083,9 +6096,14 @@ __isl_give isl_pw_multi_aff *isl_pw_multi_aff_set_pw_aff(
__isl_take isl_pw_multi_aff *pma, unsigned pos,
__isl_take isl_pw_aff *pa)
{
+ isl_bool equal_params;
+
if (!pma || !pa)
goto error;
- if (isl_space_match(pma->dim, isl_dim_param, pa->dim, isl_dim_param))
+ equal_params = isl_space_has_equal_params(pma->dim, pa->dim);
+ if (equal_params < 0)
+ goto error;
+ if (equal_params)
return pw_multi_aff_set_pw_aff(pma, pos, pa);
if (!isl_space_has_named_params(pma->dim) ||
!isl_space_has_named_params(pa->dim))
@@ -6113,7 +6131,7 @@ isl_bool isl_pw_aff_matching_params(__isl_keep isl_pw_aff *pa,
pa_space = isl_pw_aff_get_space(pa);
- match = isl_space_match(space, isl_dim_param, pa_space, isl_dim_param);
+ match = isl_space_has_equal_params(space, pa_space);
isl_space_free(pa_space);
return match;
@@ -6132,7 +6150,7 @@ isl_stat isl_pw_aff_check_match_domain_space(__isl_keep isl_pw_aff *pa,
pa_space = isl_pw_aff_get_space(pa);
- match = isl_space_match(space, isl_dim_param, pa_space, isl_dim_param);
+ match = isl_space_has_equal_params(space, pa_space);
if (match < 0)
goto error;
if (!match)
@@ -6170,6 +6188,7 @@ __isl_give isl_pw_multi_aff *isl_pw_multi_aff_scale_multi_val(
__isl_take isl_pw_multi_aff *pma, __isl_take isl_multi_val *mv)
{
int i;
+ isl_bool equal_params;
pma = isl_pw_multi_aff_cow(pma);
if (!pma || !mv)
@@ -6178,8 +6197,10 @@ __isl_give isl_pw_multi_aff *isl_pw_multi_aff_scale_multi_val(
mv->space, isl_dim_set))
isl_die(isl_pw_multi_aff_get_ctx(pma), isl_error_invalid,
"spaces don't match", goto error);
- if (!isl_space_match(pma->dim, isl_dim_param,
- mv->space, isl_dim_param)) {
+ equal_params = isl_space_has_equal_params(pma->dim, mv->space);
+ if (equal_params < 0)
+ goto error;
+ if (!equal_params) {
pma = isl_pw_multi_aff_align_params(pma,
isl_multi_val_get_space(mv));
mv = isl_multi_val_align_params(mv,
@@ -6506,13 +6527,15 @@ isl_bool isl_multi_pw_aff_is_equal(__isl_keep isl_multi_pw_aff *mpa1,
__isl_keep isl_multi_pw_aff *mpa2)
{
int i;
- isl_bool equal;
+ isl_bool equal, equal_params;
if (!mpa1 || !mpa2)
return isl_bool_error;
- if (!isl_space_match(mpa1->space, isl_dim_param,
- mpa2->space, isl_dim_param)) {
+ equal_params = isl_space_has_equal_params(mpa1->space, mpa2->space);
+ if (equal_params < 0)
+ return isl_bool_error;
+ if (!equal_params) {
if (!isl_space_has_named_params(mpa1->space))
return isl_bool_false;
if (!isl_space_has_named_params(mpa2->space))
@@ -6623,10 +6646,14 @@ error:
__isl_give isl_multi_pw_aff *isl_multi_pw_aff_pullback_multi_aff(
__isl_take isl_multi_pw_aff *mpa, __isl_take isl_multi_aff *ma)
{
+ isl_bool equal_params;
+
if (!mpa || !ma)
goto error;
- if (isl_space_match(mpa->space, isl_dim_param,
- ma->space, isl_dim_param))
+ equal_params = isl_space_has_equal_params(mpa->space, ma->space);
+ if (equal_params < 0)
+ goto error;
+ if (equal_params)
return isl_multi_pw_aff_pullback_multi_aff_aligned(mpa, ma);
mpa = isl_multi_pw_aff_align_params(mpa, isl_multi_aff_get_space(ma));
ma = isl_multi_aff_align_params(ma, isl_multi_pw_aff_get_space(mpa));
@@ -6680,9 +6707,14 @@ error:
__isl_give isl_multi_pw_aff *isl_multi_pw_aff_pullback_pw_multi_aff(
__isl_take isl_multi_pw_aff *mpa, __isl_take isl_pw_multi_aff *pma)
{
+ isl_bool equal_params;
+
if (!mpa || !pma)
goto error;
- if (isl_space_match(mpa->space, isl_dim_param, pma->dim, isl_dim_param))
+ equal_params = isl_space_has_equal_params(mpa->space, pma->dim);
+ if (equal_params < 0)
+ goto error;
+ if (equal_params)
return isl_multi_pw_aff_pullback_pw_multi_aff_aligned(mpa, pma);
mpa = isl_multi_pw_aff_align_params(mpa,
isl_pw_multi_aff_get_space(pma));
@@ -6765,10 +6797,14 @@ static __isl_give isl_pw_aff *isl_multi_pw_aff_apply_aff_aligned(
__isl_give isl_pw_aff *isl_multi_pw_aff_apply_aff(
__isl_take isl_multi_pw_aff *mpa, __isl_take isl_aff *aff)
{
+ isl_bool equal_params;
+
if (!aff || !mpa)
goto error;
- if (isl_space_match(aff->ls->dim, isl_dim_param,
- mpa->space, isl_dim_param))
+ equal_params = isl_space_has_equal_params(aff->ls->dim, mpa->space);
+ if (equal_params < 0)
+ goto error;
+ if (equal_params)
return isl_multi_pw_aff_apply_aff_aligned(mpa, aff);
aff = isl_aff_align_params(aff, isl_multi_pw_aff_get_space(mpa));
@@ -6834,9 +6870,14 @@ error:
__isl_give isl_pw_aff *isl_multi_pw_aff_apply_pw_aff(
__isl_take isl_multi_pw_aff *mpa, __isl_take isl_pw_aff *pa)
{
+ isl_bool equal_params;
+
if (!pa || !mpa)
goto error;
- if (isl_space_match(pa->dim, isl_dim_param, mpa->space, isl_dim_param))
+ equal_params = isl_space_has_equal_params(pa->dim, mpa->space);
+ if (equal_params < 0)
+ goto error;
+ if (equal_params)
return isl_multi_pw_aff_apply_pw_aff_aligned(mpa, pa);
pa = isl_pw_aff_align_params(pa, isl_multi_pw_aff_get_space(mpa));
@@ -7354,7 +7395,7 @@ static isl_stat isl_union_pw_aff_check_match_domain_space(
"expecting set space", return -1);
upa_space = isl_union_pw_aff_get_space(upa);
- match = isl_space_match(space, isl_dim_param, upa_space, isl_dim_param);
+ match = isl_space_has_equal_params(space, upa_space);
if (match < 0)
goto error;
if (!match)
@@ -7381,7 +7422,7 @@ static isl_bool isl_union_pw_aff_matching_params(
upa_space = isl_union_pw_aff_get_space(upa);
- match = isl_space_match(space, isl_dim_param, upa_space, isl_dim_param);
+ match = isl_space_has_equal_params(space, upa_space);
isl_space_free(upa_space);
return match;
@@ -8106,10 +8147,14 @@ error:
__isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_multi_val_on_domain(
__isl_take isl_union_set *domain, __isl_take isl_multi_val *mv)
{
+ isl_bool equal_params;
+
if (!domain || !mv)
goto error;
- if (isl_space_match(domain->dim, isl_dim_param,
- mv->space, isl_dim_param))
+ equal_params = isl_space_has_equal_params(domain->dim, mv->space);
+ if (equal_params < 0)
+ goto error;
+ if (equal_params)
return isl_multi_union_pw_aff_multi_val_on_domain_aligned(
domain, mv);
domain = isl_union_set_align_params(domain,
@@ -8165,10 +8210,14 @@ error:
__isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_multi_aff_on_domain(
__isl_take isl_union_set *domain, __isl_take isl_multi_aff *ma)
{
+ isl_bool equal_params;
+
if (!domain || !ma)
goto error;
- if (isl_space_match(domain->dim, isl_dim_param,
- ma->space, isl_dim_param))
+ equal_params = isl_space_has_equal_params(domain->dim, ma->space);
+ if (equal_params < 0)
+ goto error;
+ if (equal_params)
return isl_multi_union_pw_aff_multi_aff_on_domain_aligned(
domain, ma);
domain = isl_union_set_align_params(domain,
@@ -8773,6 +8822,7 @@ __isl_give isl_multi_pw_aff *isl_multi_union_pw_aff_extract_multi_pw_aff(
__isl_keep isl_multi_union_pw_aff *mupa, __isl_take isl_space *space)
{
int i, n;
+ isl_bool equal_params;
isl_space *space_mpa = NULL;
isl_multi_pw_aff *mpa;
@@ -8780,7 +8830,10 @@ __isl_give isl_multi_pw_aff *isl_multi_union_pw_aff_extract_multi_pw_aff(
goto error;
space_mpa = isl_multi_union_pw_aff_get_space(mupa);
- if (!isl_space_match(space_mpa, isl_dim_param, space, isl_dim_param)) {
+ equal_params = isl_space_has_equal_params(space_mpa, space);
+ if (equal_params < 0)
+ goto error;
+ if (!equal_params) {
space = isl_space_drop_dims(space, isl_dim_param,
0, isl_space_dim(space, isl_dim_param));
space = isl_space_align_params(space,
OpenPOWER on IntegriCloud