diff options
-rw-r--r-- | polly/lib/External/isl/GIT_HEAD_ID | 2 | ||||
-rw-r--r-- | polly/lib/External/isl/isl_map.c | 11 | ||||
-rw-r--r-- | polly/lib/External/isl/isl_map_private.h | 2 | ||||
-rw-r--r-- | polly/lib/External/isl/isl_map_simplify.c | 4 |
4 files changed, 16 insertions, 3 deletions
diff --git a/polly/lib/External/isl/GIT_HEAD_ID b/polly/lib/External/isl/GIT_HEAD_ID index 850425f8447..0a13abe7615 100644 --- a/polly/lib/External/isl/GIT_HEAD_ID +++ b/polly/lib/External/isl/GIT_HEAD_ID @@ -1 +1 @@ -isl-0.18-417-gb9e7334 +isl-0.18-423-g30331fe diff --git a/polly/lib/External/isl/isl_map.c b/polly/lib/External/isl/isl_map.c index c8543820f22..da506ef46f8 100644 --- a/polly/lib/External/isl/isl_map.c +++ b/polly/lib/External/isl/isl_map.c @@ -3966,8 +3966,11 @@ __isl_give isl_basic_map *isl_basic_map_move_dims( if (!bmap) return NULL; - if (n == 0) + if (n == 0) { + bmap = isl_basic_map_reset(bmap, src_type); + bmap = isl_basic_map_reset(bmap, dst_type); return bmap; + } if (isl_basic_map_check_range(bmap, src_type, src_pos, n) < 0) return isl_basic_map_free(bmap); @@ -4077,8 +4080,11 @@ __isl_give isl_map *isl_map_move_dims(__isl_take isl_map *map, if (!map) return NULL; - if (n == 0) + if (n == 0) { + map = isl_map_reset(map, src_type); + map = isl_map_reset(map, dst_type); return map; + } isl_assert(map->ctx, src_pos + n <= isl_map_dim(map, src_type), goto error); @@ -12053,6 +12059,7 @@ static __isl_give isl_basic_map *isl_basic_map_from_aff2( isl_aff_free(aff); if (rational) bmap = isl_basic_map_set_rational(bmap); + bmap = isl_basic_map_gauss(bmap, NULL); bmap = isl_basic_map_finalize(bmap); return bmap; error: diff --git a/polly/lib/External/isl/isl_map_private.h b/polly/lib/External/isl/isl_map_private.h index 5e9d232f8cd..5bf7356cd31 100644 --- a/polly/lib/External/isl/isl_map_private.h +++ b/polly/lib/External/isl/isl_map_private.h @@ -161,6 +161,8 @@ __isl_give isl_map *isl_map_realign(__isl_take isl_map *map, __isl_give isl_set *isl_set_realign(__isl_take isl_set *set, __isl_take isl_reordering *r); +__isl_give isl_basic_map *isl_basic_map_reset(__isl_take isl_basic_map *bmap, + enum isl_dim_type type); __isl_give isl_map *isl_map_reset(__isl_take isl_map *map, enum isl_dim_type type); diff --git a/polly/lib/External/isl/isl_map_simplify.c b/polly/lib/External/isl/isl_map_simplify.c index 8b322d3598e..e5565a00801 100644 --- a/polly/lib/External/isl/isl_map_simplify.c +++ b/polly/lib/External/isl/isl_map_simplify.c @@ -4216,6 +4216,9 @@ error: * * After all constraints have been modified, we drop the lower and upper * bound and then drop div1. + * Since the new div is only placed in the same location that used + * to store div2, but otherwise has a different meaning, any possible + * explicit representation of the original div2 is removed. */ static struct isl_basic_map *coalesce_divs(struct isl_basic_map *bmap, unsigned div1, unsigned div2, unsigned l, unsigned u) @@ -4260,6 +4263,7 @@ static struct isl_basic_map *coalesce_divs(struct isl_basic_map *bmap, isl_basic_map_drop_inequality(bmap, u); isl_basic_map_drop_inequality(bmap, l); } + bmap = isl_basic_map_mark_div_unknown(bmap, div2); bmap = isl_basic_map_drop_div(bmap, div1); return bmap; } |