From ee99a0362811ff1bedf26f834733ac5f8e0f07a5 Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Sun, 27 Jun 2010 20:35:45 +0200 Subject: [PATCH] add isl_constraint_is_div_constraint --- include/isl_constraint.h | 1 + isl_constraint.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/include/isl_constraint.h b/include/isl_constraint.h index f7ee5630..b7322430 100644 --- a/include/isl_constraint.h +++ b/include/isl_constraint.h @@ -86,6 +86,7 @@ void isl_constraint_clear(struct isl_constraint *constraint); struct isl_constraint *isl_constraint_negate(struct isl_constraint *constraint); int isl_constraint_is_equality(__isl_keep isl_constraint *constraint); +int isl_constraint_is_div_constraint(__isl_keep isl_constraint *constraint); __isl_give isl_basic_map *isl_basic_map_from_constraint( __isl_take isl_constraint *constraint); diff --git a/isl_constraint.c b/isl_constraint.c index 27d790ae..6af59722 100644 --- a/isl_constraint.c +++ b/isl_constraint.c @@ -389,6 +389,25 @@ int isl_constraint_is_equality(struct isl_constraint *constraint) return constraint->line >= constraint->bmap->eq; } +int isl_constraint_is_div_constraint(__isl_keep isl_constraint *constraint) +{ + int i; + + if (!constraint) + return -1; + if (isl_constraint_is_equality(constraint)) + return 0; + for (i = 0; i < constraint->bmap->n_div; ++i) { + if (isl_int_is_zero(constraint->bmap->div[i][0])) + continue; + if (isl_basic_map_is_div_constraint(constraint->bmap, + constraint->line[0], i)) + return 1; + } + + return 0; +} + /* We manually set ISL_BASIC_SET_FINAL instead of calling * isl_basic_map_finalize because we want to keep the position * of the divs and we therefore do not want to throw away redundant divs. -- 2.11.4.GIT