projects
/
platform
/
upstream
/
isl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
isl_basic_map_simplify: normalize div expressions
[platform/upstream/isl.git]
/
isl_convex_hull.c
diff --git
a/isl_convex_hull.c
b/isl_convex_hull.c
index
a6e26b8
..
2fe4f73
100644
(file)
--- a/
isl_convex_hull.c
+++ b/
isl_convex_hull.c
@@
-94,7
+94,7
@@
__isl_give isl_basic_map *isl_basic_map_remove_redundancies(
if (bmap->n_ineq <= 1)
return bmap;
if (bmap->n_ineq <= 1)
return bmap;
- tab = isl_tab_from_basic_map(bmap);
+ tab = isl_tab_from_basic_map(bmap
, 0
);
if (isl_tab_detect_implicit_equalities(tab) < 0)
goto error;
if (isl_tab_detect_redundant(tab) < 0)
if (isl_tab_detect_implicit_equalities(tab) < 0)
goto error;
if (isl_tab_detect_redundant(tab) < 0)
@@
-1169,7
+1169,7
@@
static struct isl_vec *valid_direction(
goto error;
lp = valid_direction_lp(isl_basic_set_copy(bset1),
isl_basic_set_copy(bset2));
goto error;
lp = valid_direction_lp(isl_basic_set_copy(bset1),
isl_basic_set_copy(bset2));
- tab = isl_tab_from_basic_set(lp);
+ tab = isl_tab_from_basic_set(lp
, 0
);
sample = isl_tab_get_sample_value(tab);
isl_tab_free(tab);
isl_basic_set_free(lp);
sample = isl_tab_get_sample_value(tab);
isl_tab_free(tab);
isl_basic_set_free(lp);
@@
-1867,6
+1867,7
@@
static struct isl_basic_set *uset_convex_hull_wrap_bounded(struct isl_set *set)
if (set->n == 1) {
convex_hull = isl_basic_set_copy(set->p[0]);
isl_set_free(set);
if (set->n == 1) {
convex_hull = isl_basic_set_copy(set->p[0]);
isl_set_free(set);
+ convex_hull = isl_basic_map_remove_redundancies(convex_hull);
return convex_hull;
}
if (isl_set_n_dim(set) == 1)
return convex_hull;
}
if (isl_set_n_dim(set) == 1)
@@
-2117,7
+2118,7
@@
static int is_bound(struct sh_data *data, struct isl_set *set, int j,
isl_int opt;
if (!data->p[j].tab) {
isl_int opt;
if (!data->p[j].tab) {
- data->p[j].tab = isl_tab_from_basic_set(set->p[j]);
+ data->p[j].tab = isl_tab_from_basic_set(set->p[j]
, 0
);
if (!data->p[j].tab)
return -1;
}
if (!data->p[j].tab)
return -1;
}
@@
-2339,6
+2340,9
@@
struct isl_basic_map *isl_map_simple_hull(struct isl_map *map)
hull = isl_basic_map_intersect(hull, affine_hull);
hull = isl_basic_map_remove_redundancies(hull);
hull = isl_basic_map_intersect(hull, affine_hull);
hull = isl_basic_map_remove_redundancies(hull);
+
+ if (!hull)
+ return NULL;
ISL_F_SET(hull, ISL_BASIC_MAP_NO_IMPLICIT);
ISL_F_SET(hull, ISL_BASIC_MAP_ALL_EQUALITIES);
ISL_F_SET(hull, ISL_BASIC_MAP_NO_IMPLICIT);
ISL_F_SET(hull, ISL_BASIC_MAP_ALL_EQUALITIES);