extract out shared isl_map_basic_map_check_equal_space
authorSven Verdoolaege <skimo@kotnet.org>
Tue, 6 Sep 2016 10:13:54 +0000 (6 12:13 +0200)
committerSven Verdoolaege <sven.verdoolaege@gmail.com>
Sat, 30 Nov 2019 19:59:47 +0000 (30 20:59 +0100)
This removes some (minor) code duplication.

Signed-off-by: Sven Verdoolaege <sven.verdoolaege@gmail.com>
isl_map.c
isl_map_private.h
isl_map_simplify.c

index d380e92..9972dd0 100644 (file)
--- a/isl_map.c
+++ b/isl_map.c
@@ -6239,7 +6239,8 @@ __isl_give isl_map *isl_map_add_basic_map(__isl_take isl_map *map,
                isl_basic_map_free(bmap);
                return map;
        }
-       isl_assert(map->ctx, isl_space_is_equal(map->dim, bmap->dim), goto error);
+       if (isl_map_basic_map_check_equal_space(map, bmap) < 0)
+               goto error;
        isl_assert(map->ctx, map->n < map->size, goto error);
        map->p[map->n] = bmap;
        map->n++;
@@ -8771,6 +8772,17 @@ isl_bool isl_set_has_equal_space(__isl_keep isl_set *set1,
        return isl_map_has_equal_space(set_to_map(set1), set_to_map(set2));
 }
 
+#undef TYPE1
+#define TYPE1          isl_map
+#undef TYPE2
+#define TYPE2          isl_basic_map
+#undef TYPE_PAIR
+#define TYPE_PAIR      isl_map_basic_map
+
+static
+#include "isl_type_has_equal_space_templ.c"
+#include "isl_type_check_equal_space_templ.c"
+
 static isl_bool map_is_equal(__isl_keep isl_map *map1, __isl_keep isl_map *map2)
 {
        isl_bool is_subset;
index 442bddf..196b42d 100644 (file)
@@ -556,6 +556,8 @@ isl_stat isl_basic_set_check_equal_space(__isl_keep isl_basic_set *bset1,
        __isl_keep isl_basic_set *bset2);
 isl_stat isl_basic_map_check_equal_space(__isl_keep isl_basic_map *bmap1,
        __isl_keep isl_basic_map *bmap2);
+isl_stat isl_map_basic_map_check_equal_space(__isl_keep isl_map *map,
+       __isl_keep isl_basic_map *bmap);
 
 __isl_give isl_mat *isl_basic_set_extract_equalities(
        __isl_keep isl_basic_set *bset);
index b7412b1..cf3ae80 100644 (file)
@@ -3223,9 +3223,8 @@ __isl_give isl_map *isl_map_gist_basic_map(__isl_take isl_map *map,
 
        context = isl_basic_map_remove_redundancies(context);
        map = isl_map_cow(map);
-       if (!map || !context)
+       if (isl_map_basic_map_check_equal_space(map, context) < 0)
                goto error;
-       isl_assert(map->ctx, isl_space_is_equal(map->dim, context->dim), goto error);
        map = isl_map_compute_divs(map);
        if (!map)
                goto error;