From 4f7c477317f86f9b586edee20feaf8338fcfddfa Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Tue, 6 Sep 2016 12:35:15 +0200 Subject: [PATCH] isl_map_deltas_map: extract out isl_map_check_equal_tuples This function will be reused in the next commit. Signed-off-by: Sven Verdoolaege --- isl_map.c | 26 +++++++++++++++++++------- isl_map_private.h | 2 ++ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/isl_map.c b/isl_map.c index 29c4ce1c..0a3d35fc 100644 --- a/isl_map.c +++ b/isl_map.c @@ -8059,6 +8059,23 @@ error: return NULL; } +/* Check that domain and range of "map" are the same. + */ +isl_stat isl_map_check_equal_tuples(__isl_keep isl_map *map) +{ + isl_space *space; + isl_bool equal; + + space = isl_map_peek_space(map); + equal = isl_space_tuple_is_equal(space, isl_dim_in, space, isl_dim_out); + if (equal < 0) + return isl_stat_error; + if (!equal) + isl_die(isl_map_get_ctx(map), isl_error_invalid, + "domain and range don't match", return isl_stat_error); + return isl_stat_ok; +} + /* * returns range - domain */ @@ -8144,13 +8161,8 @@ __isl_give isl_map *isl_map_deltas_map(__isl_take isl_map *map) int i; isl_space *domain_space; - if (!map) - return NULL; - - if (!isl_space_tuple_is_equal(map->dim, isl_dim_in, - map->dim, isl_dim_out)) - isl_die(map->ctx, isl_error_invalid, - "domain and range don't match", goto error); + if (isl_map_check_equal_tuples(map) < 0) + return isl_map_free(map); map = isl_map_cow(map); if (!map) diff --git a/isl_map_private.h b/isl_map_private.h index 0b09998d..ebba7ccf 100644 --- a/isl_map_private.h +++ b/isl_map_private.h @@ -549,6 +549,8 @@ int isl_basic_set_count_upto(__isl_keep isl_basic_set *bset, isl_int max, isl_int *count); int isl_set_count_upto(__isl_keep isl_set *set, isl_int max, isl_int *count); +isl_stat isl_map_check_equal_tuples(__isl_keep isl_map *map); + __isl_give isl_mat *isl_basic_set_extract_equalities( __isl_keep isl_basic_set *bset); -- 2.11.4.GIT