From c39b60cc10166b507bf4263f34c861923bc6e2e7 Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Wed, 25 Jan 2017 10:03:35 +0100 Subject: [PATCH] isl_basic_map_reset_space: extract out isl_space_has_equal_ids The function isl_space_match will be deprecated in the next commit. Its last remaining use was inside isl_basic_map_reset_space. Replace the calls to isl_space_match by a call to isl_space_has_equal_ids, which can be implemented in terms of the internal "match" function. As an added benefit, the new code should also be easier to understand. Signed-off-by: Sven Verdoolaege --- isl_map.c | 6 +----- isl_space.c | 17 +++++++++++++++++ isl_space_private.h | 2 ++ 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/isl_map.c b/isl_map.c index c20e593a..897b497d 100644 --- a/isl_map.c +++ b/isl_map.c @@ -5105,11 +5105,7 @@ __isl_give isl_basic_map *isl_basic_map_reset_space( bmap_space = isl_basic_map_peek_space(bmap); equal = isl_space_is_equal(bmap_space, space); if (equal >= 0 && equal) - equal = isl_space_match(bmap_space, isl_dim_in, - space, isl_dim_in); - if (equal >= 0 && equal) - equal = isl_space_match(bmap_space, isl_dim_out, - space, isl_dim_out); + equal = isl_space_has_equal_ids(bmap_space, space); if (equal < 0) goto error; if (equal) { diff --git a/isl_space.c b/isl_space.c index 3d5167e6..a0a13788 100644 --- a/isl_space.c +++ b/isl_space.c @@ -862,6 +862,23 @@ isl_bool isl_space_has_equal_params(__isl_keep isl_space *space1, return match(space1, isl_dim_param, space2, isl_dim_param); } +/* Do "space1" and "space2" have the same identifiers for all + * the tuple variables? + */ +isl_bool isl_space_has_equal_ids(__isl_keep isl_space *space1, + __isl_keep isl_space *space2) +{ + isl_bool equal; + + if (!space1 || !space2) + return isl_bool_error; + + equal = match(space1, isl_dim_in, space2, isl_dim_in); + if (equal < 0 || !equal) + return equal; + return match(space1, isl_dim_out, space2, isl_dim_out); +} + isl_bool isl_space_match(__isl_keep isl_space *space1, enum isl_dim_type type1, __isl_keep isl_space *space2, enum isl_dim_type type2) { diff --git a/isl_space_private.h b/isl_space_private.h index 0d1b7496..8f546535 100644 --- a/isl_space_private.h +++ b/isl_space_private.h @@ -40,6 +40,8 @@ unsigned isl_space_offset(__isl_keep isl_space *dim, enum isl_dim_type type); isl_bool isl_space_may_be_set(__isl_keep isl_space *space); isl_bool isl_space_is_named_or_nested(__isl_keep isl_space *space, enum isl_dim_type type); +isl_bool isl_space_has_equal_ids(__isl_keep isl_space *space1, + __isl_keep isl_space *space2); isl_bool isl_space_has_named_params(__isl_keep isl_space *space); isl_stat isl_space_check_named_params(__isl_keep isl_space *space); isl_stat isl_space_check_equal_params(__isl_keep isl_space *space1, -- 2.11.4.GIT