diff options
Diffstat (limited to 'polly/lib/External/isl/isl_map.c')
| -rw-r--r-- | polly/lib/External/isl/isl_map.c | 99 |
1 files changed, 27 insertions, 72 deletions
diff --git a/polly/lib/External/isl/isl_map.c b/polly/lib/External/isl/isl_map.c index cb3b376071d..47e7acd7bb8 100644 --- a/polly/lib/External/isl/isl_map.c +++ b/polly/lib/External/isl/isl_map.c @@ -43,8 +43,6 @@ #include <isl_options_private.h> #include <isl_morph.h> #include <isl_val_private.h> -#include <isl/deprecated/map_int.h> -#include <isl/deprecated/set_int.h> #include <bset_to_bmap.c> #include <bset_from_bmap.c> @@ -5924,34 +5922,34 @@ error: return NULL; } -__isl_give isl_basic_map *isl_basic_map_empty(__isl_take isl_space *dim) +__isl_give isl_basic_map *isl_basic_map_empty(__isl_take isl_space *space) { struct isl_basic_map *bmap; - bmap = isl_basic_map_alloc_space(dim, 0, 1, 0); + bmap = isl_basic_map_alloc_space(space, 0, 1, 0); bmap = isl_basic_map_set_to_empty(bmap); return bmap; } -__isl_give isl_basic_set *isl_basic_set_empty(__isl_take isl_space *dim) +__isl_give isl_basic_set *isl_basic_set_empty(__isl_take isl_space *space) { struct isl_basic_set *bset; - bset = isl_basic_set_alloc_space(dim, 0, 1, 0); + bset = isl_basic_set_alloc_space(space, 0, 1, 0); bset = isl_basic_set_set_to_empty(bset); return bset; } -__isl_give isl_basic_map *isl_basic_map_universe(__isl_take isl_space *dim) +__isl_give isl_basic_map *isl_basic_map_universe(__isl_take isl_space *space) { struct isl_basic_map *bmap; - bmap = isl_basic_map_alloc_space(dim, 0, 0, 0); + bmap = isl_basic_map_alloc_space(space, 0, 0, 0); bmap = isl_basic_map_finalize(bmap); return bmap; } -__isl_give isl_basic_set *isl_basic_set_universe(__isl_take isl_space *dim) +__isl_give isl_basic_set *isl_basic_set_universe(__isl_take isl_space *space) { struct isl_basic_set *bset; - bset = isl_basic_set_alloc_space(dim, 0, 0, 0); + bset = isl_basic_set_alloc_space(space, 0, 0, 0); bset = isl_basic_set_finalize(bset); return bset; } @@ -5991,33 +5989,33 @@ __isl_give isl_set *isl_set_nat_universe(__isl_take isl_space *dim) return isl_map_nat_universe(dim); } -__isl_give isl_map *isl_map_empty(__isl_take isl_space *dim) +__isl_give isl_map *isl_map_empty(__isl_take isl_space *space) { - return isl_map_alloc_space(dim, 0, ISL_MAP_DISJOINT); + return isl_map_alloc_space(space, 0, ISL_MAP_DISJOINT); } -__isl_give isl_set *isl_set_empty(__isl_take isl_space *dim) +__isl_give isl_set *isl_set_empty(__isl_take isl_space *space) { - return isl_set_alloc_space(dim, 0, ISL_MAP_DISJOINT); + return isl_set_alloc_space(space, 0, ISL_MAP_DISJOINT); } -__isl_give isl_map *isl_map_universe(__isl_take isl_space *dim) +__isl_give isl_map *isl_map_universe(__isl_take isl_space *space) { struct isl_map *map; - if (!dim) + if (!space) return NULL; - map = isl_map_alloc_space(isl_space_copy(dim), 1, ISL_MAP_DISJOINT); - map = isl_map_add_basic_map(map, isl_basic_map_universe(dim)); + map = isl_map_alloc_space(isl_space_copy(space), 1, ISL_MAP_DISJOINT); + map = isl_map_add_basic_map(map, isl_basic_map_universe(space)); return map; } -__isl_give isl_set *isl_set_universe(__isl_take isl_space *dim) +__isl_give isl_set *isl_set_universe(__isl_take isl_space *space) { struct isl_set *set; - if (!dim) + if (!space) return NULL; - set = isl_set_alloc_space(isl_space_copy(dim), 1, ISL_MAP_DISJOINT); - set = isl_set_add_basic_set(set, isl_basic_set_universe(dim)); + set = isl_set_alloc_space(isl_space_copy(space), 1, ISL_MAP_DISJOINT); + set = isl_set_add_basic_set(set, isl_basic_set_universe(space)); return set; } @@ -6867,59 +6865,22 @@ static __isl_give isl_set *isl_basic_set_lexmin_compute_divs( return isl_basic_set_lexopt(bset, ISL_OPT_QE); } -/* Extract the first and only affine expression from list - * and then add it to *pwaff with the given dom. - * This domain is known to be disjoint from other domains - * because of the way isl_basic_map_foreach_lexmax works. - */ -static isl_stat update_dim_opt(__isl_take isl_basic_set *dom, - __isl_take isl_aff_list *list, void *user) -{ - isl_ctx *ctx = isl_basic_set_get_ctx(dom); - isl_aff *aff; - isl_pw_aff **pwaff = user; - isl_pw_aff *pwaff_i; - - if (!list) - goto error; - if (isl_aff_list_n_aff(list) != 1) - isl_die(ctx, isl_error_internal, - "expecting single element list", goto error); - - aff = isl_aff_list_get_aff(list, 0); - pwaff_i = isl_pw_aff_alloc(isl_set_from_basic_set(dom), aff); - - *pwaff = isl_pw_aff_add_disjoint(*pwaff, pwaff_i); - - isl_aff_list_free(list); - - return isl_stat_ok; -error: - isl_basic_set_free(dom); - isl_aff_list_free(list); - return isl_stat_error; -} - /* Given a basic map with one output dimension, compute the minimum or * maximum of that dimension as an isl_pw_aff. * - * The isl_pw_aff is constructed by having isl_basic_map_foreach_lexopt - * call update_dim_opt on each leaf of the result. + * Compute the optimum as a lexicographic optimum over the single + * output dimension and extract the single isl_pw_aff from the result. */ static __isl_give isl_pw_aff *basic_map_dim_opt(__isl_keep isl_basic_map *bmap, int max) { - isl_space *dim = isl_basic_map_get_space(bmap); + isl_pw_multi_aff *pma; isl_pw_aff *pwaff; - isl_stat r; - dim = isl_space_from_domain(isl_space_domain(dim)); - dim = isl_space_add_dims(dim, isl_dim_out, 1); - pwaff = isl_pw_aff_empty(dim); - - r = isl_basic_map_foreach_lexopt(bmap, max, &update_dim_opt, &pwaff); - if (r < 0) - return isl_pw_aff_free(pwaff); + bmap = isl_basic_map_copy(bmap); + pma = isl_basic_map_lexopt_pw_multi_aff(bmap, max ? ISL_OPT_MAX : 0); + pwaff = isl_pw_multi_aff_get_pw_aff(pma, 0); + isl_pw_multi_aff_free(pma); return pwaff; } @@ -9407,12 +9368,6 @@ __isl_give isl_val *isl_set_plain_get_val_if_fixed(__isl_keep isl_set *set, return isl_map_plain_get_val_if_fixed(set, type, pos); } -isl_bool isl_set_plain_is_fixed(__isl_keep isl_set *set, - enum isl_dim_type type, unsigned pos, isl_int *val) -{ - return isl_map_plain_is_fixed(set, type, pos, val); -} - /* Check if dimension dim has fixed value and if so and if val is not NULL, * then return this fixed value in *val. */ |

