isl_tab_from_basic_map: preserve all constraints in input when tracking
[platform/upstream/isl.git] / isl_map.c
index cbac878..41d5d49 100644 (file)
--- a/isl_map.c
+++ b/isl_map.c
@@ -614,6 +614,12 @@ int isl_map_find_dim_by_name(__isl_keep isl_map *map, enum isl_dim_type type,
        return isl_space_find_dim_by_name(map->dim, type, name);
 }
 
+int isl_set_find_dim_by_name(__isl_keep isl_set *set, enum isl_dim_type type,
+       const char *name)
+{
+       return isl_map_find_dim_by_name(set, type, name);
+}
+
 int isl_basic_map_is_rational(__isl_keep isl_basic_map *bmap)
 {
        if (!bmap)
@@ -1857,6 +1863,9 @@ __isl_give isl_basic_map *isl_basic_map_remove_unknown_divs(
                if (!div_is_unknown(bmap, i))
                        continue;
                bmap = isl_basic_map_remove_dims(bmap, isl_dim_div, i, 1);
+               if (!bmap)
+                       return NULL;
+               i = bmap->n_div;
        }
 
        return bmap;
@@ -2989,7 +2998,7 @@ __isl_give isl_basic_map *isl_basic_map_project_out(
        isl_int *old;
 
        if (n == 0)
-               return bmap;
+               return basic_map_space_reset(bmap, type);
 
        if (!bmap)
                return NULL;
@@ -3059,7 +3068,7 @@ __isl_give isl_map *isl_map_project_out(__isl_take isl_map *map,
                return NULL;
 
        if (n == 0)
-               return map;
+               return map_space_reset(map, type);
 
        isl_assert(map->ctx, first + n <= isl_map_dim(map, type), goto error);
 
@@ -8721,7 +8730,7 @@ int isl_basic_set_vars_get_sign(__isl_keep isl_basic_set *bset,
                return -1;
 
        bound = isl_vec_alloc(bset->ctx, 1 + isl_basic_set_total_dim(bset));
-       tab = isl_tab_from_basic_set(bset);
+       tab = isl_tab_from_basic_set(bset, 0);
        if (!bound || !tab)
                goto error;