From de84e21fc1652b11ddd76c352c62390922c885cc Mon Sep 17 00:00:00 2001 From: Tobias Grosser Date: Tue, 21 Mar 2017 09:12:11 +0000 Subject: [PATCH] Update isl to isl-0.18-395-g77701b3 This is a normal maintenance update. git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@298352 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/External/isl/GIT_HEAD_ID | 2 +- lib/External/isl/doc/user.pod | 12 ++++++++++- lib/External/isl/include/isl/aff.h | 6 ++++++ lib/External/isl/include/isl/map.h | 1 + lib/External/isl/include/isl/point.h | 2 +- lib/External/isl/include/isl/set.h | 1 + lib/External/isl/isl_aff.c | 41 ++++++++++++++++++++++++++++++++++-- lib/External/isl/isl_aff_private.h | 2 ++ lib/External/isl/isl_affine_hull.c | 2 +- lib/External/isl/isl_convex_hull.c | 4 ++-- lib/External/isl/isl_map.c | 13 ++++++++---- lib/External/isl/isl_map_private.h | 1 + lib/External/isl/isl_point.c | 7 +++--- lib/External/isl/isl_test.c | 4 ++-- 14 files changed, 81 insertions(+), 17 deletions(-) diff --git a/lib/External/isl/GIT_HEAD_ID b/lib/External/isl/GIT_HEAD_ID index 1d00e721..d1ae5836 100644 --- a/lib/External/isl/GIT_HEAD_ID +++ b/lib/External/isl/GIT_HEAD_ID @@ -1 +1 @@ -isl-0.18-387-g3fa6191 +isl-0.18-395-g77701b3 diff --git a/lib/External/isl/doc/user.pod b/lib/External/isl/doc/user.pod index 1c85e16c..92e12c37 100644 --- a/lib/External/isl/doc/user.pod +++ b/lib/External/isl/doc/user.pod @@ -2362,7 +2362,8 @@ Points can be copied or freed using __isl_give isl_point *isl_point_copy( __isl_keep isl_point *pnt); - void isl_point_free(__isl_take isl_point *pnt); + __isl_null isl_point *isl_point_free( + __isl_take isl_point *pnt); A singleton set can be created from a point using @@ -6274,12 +6275,21 @@ into the first expression. __isl_give isl_set *isl_aff_le_set( __isl_take isl_aff *aff1, __isl_take isl_aff *aff2); + __isl_give isl_basic_set *isl_aff_lt_basic_set( + __isl_take isl_aff *aff1, + __isl_take isl_aff *aff2); + __isl_give isl_set *isl_aff_lt_set( + __isl_take isl_aff *aff1, + __isl_take isl_aff *aff2); __isl_give isl_basic_set *isl_aff_ge_basic_set( __isl_take isl_aff *aff1, __isl_take isl_aff *aff2); __isl_give isl_set *isl_aff_ge_set( __isl_take isl_aff *aff1, __isl_take isl_aff *aff2); + __isl_give isl_basic_set *isl_aff_gt_basic_set( + __isl_take isl_aff *aff1, + __isl_take isl_aff *aff2); __isl_give isl_set *isl_pw_aff_eq_set( __isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2); diff --git a/lib/External/isl/include/isl/aff.h b/lib/External/isl/include/isl/aff.h index 2dcb476f..9af25948 100644 --- a/lib/External/isl/include/isl/aff.h +++ b/lib/External/isl/include/isl/aff.h @@ -138,10 +138,16 @@ __isl_give isl_basic_set *isl_aff_le_basic_set(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2); __isl_give isl_set *isl_aff_le_set(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2); +__isl_give isl_basic_set *isl_aff_lt_basic_set(__isl_take isl_aff *aff1, + __isl_take isl_aff *aff2); +__isl_give isl_set *isl_aff_lt_set(__isl_take isl_aff *aff1, + __isl_take isl_aff *aff2); __isl_give isl_basic_set *isl_aff_ge_basic_set(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2); __isl_give isl_set *isl_aff_ge_set(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2); +__isl_give isl_basic_set *isl_aff_gt_basic_set(__isl_take isl_aff *aff1, + __isl_take isl_aff *aff2); __isl_constructor __isl_give isl_aff *isl_aff_read_from_str(isl_ctx *ctx, const char *str); diff --git a/lib/External/isl/include/isl/map.h b/lib/External/isl/include/isl/map.h index ed6b70e1..226db26a 100644 --- a/lib/External/isl/include/isl/map.h +++ b/lib/External/isl/include/isl/map.h @@ -569,6 +569,7 @@ __isl_give isl_map *isl_map_uncurry(__isl_take isl_map *map); __isl_give isl_map *isl_map_make_disjoint(__isl_take isl_map *map); __isl_give isl_map *isl_basic_map_compute_divs(__isl_take isl_basic_map *bmap); __isl_give isl_map *isl_map_compute_divs(__isl_take isl_map *map); +ISL_DEPRECATED __isl_give isl_map *isl_map_align_divs(__isl_take isl_map *map); __isl_give isl_basic_map *isl_basic_map_drop_constraints_involving_dims( diff --git a/lib/External/isl/include/isl/point.h b/lib/External/isl/include/isl/point.h index c928f9ac..97c3c46f 100644 --- a/lib/External/isl/include/isl/point.h +++ b/lib/External/isl/include/isl/point.h @@ -17,7 +17,7 @@ __isl_give isl_space *isl_point_get_space(__isl_keep isl_point *pnt); __isl_give isl_point *isl_point_zero(__isl_take isl_space *dim); __isl_give isl_point *isl_point_copy(__isl_keep isl_point *pnt); -void isl_point_free(__isl_take isl_point *pnt); +__isl_null isl_point *isl_point_free(__isl_take isl_point *pnt); __isl_give isl_val *isl_point_get_coordinate_val(__isl_keep isl_point *pnt, enum isl_dim_type type, int pos); diff --git a/lib/External/isl/include/isl/set.h b/lib/External/isl/include/isl/set.h index b0980d16..dcf17570 100644 --- a/lib/External/isl/include/isl/set.h +++ b/lib/External/isl/include/isl/set.h @@ -395,6 +395,7 @@ __isl_give isl_set *isl_set_neg(__isl_take isl_set *set); __isl_give isl_set *isl_set_make_disjoint(__isl_take isl_set *set); struct isl_set *isl_basic_set_compute_divs(struct isl_basic_set *bset); __isl_give isl_set *isl_set_compute_divs(__isl_take isl_set *set); +ISL_DEPRECATED __isl_give isl_set *isl_set_align_divs(__isl_take isl_set *set); __isl_give isl_val *isl_set_plain_get_val_if_fixed(__isl_keep isl_set *set, diff --git a/lib/External/isl/isl_aff.c b/lib/External/isl/isl_aff.c index 79bbb2d4..8a6a715b 100644 --- a/lib/External/isl/isl_aff.c +++ b/lib/External/isl/isl_aff.c @@ -2229,13 +2229,21 @@ __isl_give isl_basic_set *isl_aff_nonneg_basic_set(__isl_take isl_aff *aff) } /* Return a basic set containing those elements in the domain space + * of "aff" where it is positive. + */ +__isl_give isl_basic_set *isl_aff_pos_basic_set(__isl_take isl_aff *aff) +{ + aff = isl_aff_add_constant_num_si(aff, -1); + return isl_aff_nonneg_basic_set(aff); +} + +/* Return a basic set containing those elements in the domain space * of aff where it is negative. */ __isl_give isl_basic_set *isl_aff_neg_basic_set(__isl_take isl_aff *aff) { aff = isl_aff_neg(aff); - aff = isl_aff_add_constant_num_si(aff, -1); - return isl_aff_nonneg_basic_set(aff); + return isl_aff_pos_basic_set(aff); } /* Return a basic set containing those elements in the space @@ -2286,6 +2294,17 @@ __isl_give isl_basic_set *isl_aff_ge_basic_set(__isl_take isl_aff *aff1, return isl_aff_nonneg_basic_set(aff1); } +/* Return a basic set containing those elements in the shared domain space + * of "aff1" and "aff2" where "aff1" is greater than "aff2". + */ +__isl_give isl_basic_set *isl_aff_gt_basic_set(__isl_take isl_aff *aff1, + __isl_take isl_aff *aff2) +{ + aff1 = isl_aff_sub(aff1, aff2); + + return isl_aff_pos_basic_set(aff1); +} + /* Return a set containing those elements in the shared space * of aff1 and aff2 where aff1 is greater than or equal to aff2. */ @@ -2304,6 +2323,15 @@ __isl_give isl_basic_set *isl_aff_le_basic_set(__isl_take isl_aff *aff1, return isl_aff_ge_basic_set(aff2, aff1); } +/* Return a basic set containing those elements in the shared domain space + * of "aff1" and "aff2" where "aff1" is smaller than "aff2". + */ +__isl_give isl_basic_set *isl_aff_lt_basic_set(__isl_take isl_aff *aff1, + __isl_take isl_aff *aff2) +{ + return isl_aff_gt_basic_set(aff2, aff1); +} + /* Return a set containing those elements in the shared space * of aff1 and aff2 where aff1 is smaller than or equal to aff2. */ @@ -2313,6 +2341,15 @@ __isl_give isl_set *isl_aff_le_set(__isl_take isl_aff *aff1, return isl_aff_ge_set(aff2, aff1); } +/* Return a set containing those elements in the shared domain space + * of "aff1" and "aff2" where "aff1" is smaller than "aff2". + */ +__isl_give isl_set *isl_aff_lt_set(__isl_take isl_aff *aff1, + __isl_take isl_aff *aff2) +{ + return isl_set_from_basic_set(isl_aff_lt_basic_set(aff1, aff2)); +} + /* Return a basic set containing those elements in the shared space * of aff1 and aff2 where aff1 and aff2 are equal. */ diff --git a/lib/External/isl/isl_aff_private.h b/lib/External/isl/isl_aff_private.h index 8cd95dde..ef311f81 100644 --- a/lib/External/isl/isl_aff_private.h +++ b/lib/External/isl/isl_aff_private.h @@ -154,6 +154,8 @@ isl_bool isl_pw_aff_matching_params(__isl_keep isl_pw_aff *pa, isl_stat isl_pw_aff_check_match_domain_space(__isl_keep isl_pw_aff *pa, __isl_keep isl_space *space); +__isl_give isl_basic_set *isl_aff_pos_basic_set(__isl_take isl_aff *aff); + #undef BASE #define BASE pw_aff diff --git a/lib/External/isl/isl_affine_hull.c b/lib/External/isl/isl_affine_hull.c index 27e54ca7..a28f1e5a 100644 --- a/lib/External/isl/isl_affine_hull.c +++ b/lib/External/isl/isl_affine_hull.c @@ -1202,7 +1202,7 @@ __isl_give isl_basic_map *isl_map_affine_hull(__isl_take isl_map *map) map = isl_map_local_affine_hull(map); map = isl_map_remove_empty_parts(map); map = isl_map_remove_unknown_divs(map); - map = isl_map_align_divs(map); + map = isl_map_align_divs_internal(map); if (!map) return NULL; diff --git a/lib/External/isl/isl_convex_hull.c b/lib/External/isl/isl_convex_hull.c index 636a03db..02581974 100644 --- a/lib/External/isl/isl_convex_hull.c +++ b/lib/External/isl/isl_convex_hull.c @@ -1923,7 +1923,7 @@ struct isl_basic_map *isl_map_convex_hull(struct isl_map *map) struct isl_set *set = NULL; map = isl_map_detect_equalities(map); - map = isl_map_align_divs(map); + map = isl_map_align_divs_internal(map); if (!map) goto error; @@ -2415,7 +2415,7 @@ static __isl_give isl_basic_map *map_simple_hull(__isl_take isl_map *map, return map_simple_hull_trivial(map); affine_hull = isl_map_affine_hull(isl_map_copy(map)); input = isl_map_copy(map); - map = isl_map_align_divs(map); + map = isl_map_align_divs_internal(map); model = map ? isl_basic_map_copy(map->p[0]) : NULL; set = isl_map_underlying_set(map); diff --git a/lib/External/isl/isl_map.c b/lib/External/isl/isl_map.c index 64a9ba63..8d9196de 100644 --- a/lib/External/isl/isl_map.c +++ b/lib/External/isl/isl_map.c @@ -8485,7 +8485,7 @@ __isl_give isl_basic_map *isl_basic_map_align_divs( return dst; } -struct isl_map *isl_map_align_divs(struct isl_map *map) +__isl_give isl_map *isl_map_align_divs_internal(__isl_take isl_map *map) { int i; @@ -8510,9 +8510,14 @@ struct isl_map *isl_map_align_divs(struct isl_map *map) return map; } +__isl_give isl_map *isl_map_align_divs(__isl_take isl_map *map) +{ + return isl_map_align_divs_internal(map); +} + struct isl_set *isl_set_align_divs(struct isl_set *set) { - return set_from_map(isl_map_align_divs(set_to_map(set))); + return set_from_map(isl_map_align_divs_internal(set_to_map(set))); } /* Align the divs of the basic maps in "map" to those @@ -8542,7 +8547,7 @@ __isl_give isl_map *isl_map_align_divs_to_basic_map_list( if (!map->p[0]) return isl_map_free(map); - return isl_map_align_divs(map); + return isl_map_align_divs_internal(map); } /* Align the divs of each element of "list" to those of "bmap". @@ -10041,7 +10046,7 @@ __isl_give isl_set *isl_set_lift(__isl_take isl_set *set) isl_space *dim; unsigned n_div; - set = isl_set_align_divs(set); + set = set_from_map(isl_map_align_divs_internal(set_to_map(set))); if (!set) return NULL; diff --git a/lib/External/isl/isl_map_private.h b/lib/External/isl/isl_map_private.h index e547e903..9e356605 100644 --- a/lib/External/isl/isl_map_private.h +++ b/lib/External/isl/isl_map_private.h @@ -272,6 +272,7 @@ __isl_give isl_map *isl_map_align_divs_to_basic_map_list( __isl_take isl_map *map, __isl_keep isl_basic_map_list *list); __isl_give isl_basic_map_list *isl_basic_map_list_align_divs_to_basic_map( __isl_take isl_basic_map_list *list, __isl_keep isl_basic_map *bmap); +__isl_give isl_map *isl_map_align_divs_internal(__isl_take isl_map *map); __isl_give isl_basic_set *isl_basic_set_sort_divs( __isl_take isl_basic_set *bset); __isl_give isl_basic_map *isl_basic_map_sort_divs( diff --git a/lib/External/isl/isl_point.c b/lib/External/isl/isl_point.c index c25b76fb..48534edd 100644 --- a/lib/External/isl/isl_point.c +++ b/lib/External/isl/isl_point.c @@ -103,17 +103,18 @@ __isl_give isl_point *isl_point_copy(__isl_keep isl_point *pnt) return pnt; } -void isl_point_free(__isl_take isl_point *pnt) +__isl_null isl_point *isl_point_free(__isl_take isl_point *pnt) { if (!pnt) - return; + return NULL; if (--pnt->ref > 0) - return; + return NULL; isl_space_free(pnt->dim); isl_vec_free(pnt->vec); free(pnt); + return NULL; } __isl_give isl_point *isl_point_void(__isl_take isl_space *dim) diff --git a/lib/External/isl/isl_test.c b/lib/External/isl/isl_test.c index 2322eb7e..4e94bc2a 100644 --- a/lib/External/isl/isl_test.c +++ b/lib/External/isl/isl_test.c @@ -1926,7 +1926,7 @@ static int test_coalesce_special(struct isl_ctx *ctx) "(exists (e0 = [(-2 + y)/3]: 3e0 = -2 + y and y <= 200 and " "y >= 5 and o1 <= 241 and o1 >= 212)) }"; map1 = isl_map_read_from_str(ctx, str); - map1 = isl_map_align_divs(map1); + map1 = isl_map_align_divs_internal(map1); map1 = isl_map_coalesce(map1); str = "[y] -> { [S_L220_OUT[] -> T7[]] -> " "[[S_L309_IN[] -> T11[]] -> ce_imag2[o0, o1]] : " @@ -1935,7 +1935,7 @@ static int test_coalesce_special(struct isl_ctx *ctx) "o0 >= 3 - y and o0 <= -2 + y and o0 >= 0) }"; map2 = isl_map_read_from_str(ctx, str); map2 = isl_map_union(map2, map1); - map2 = isl_map_align_divs(map2); + map2 = isl_map_align_divs_internal(map2); map2 = isl_map_coalesce(map2); isl_map_free(map2); if (!map2) -- 2.11.4.GIT