From 29b9d9314cdf0f15b5227283b4dd54f8d9699a11 Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Wed, 24 Dec 2008 15:46:03 +0100 Subject: [PATCH] isl_basic_map_compute_divs: only (re)compute divs if any div is unknown --- isl_map.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/isl_map.c b/isl_map.c index c7146f1..ebe4e39 100644 --- a/isl_map.c +++ b/isl_map.c @@ -3515,11 +3515,22 @@ error: struct isl_map *isl_basic_map_compute_divs(struct isl_basic_map *bmap) { + int i; + unsigned off; + if (!bmap) return NULL; - if (bmap->n_div == 0) - return isl_map_from_basic_map(bmap); - return isl_pip_basic_map_compute_divs(bmap); + off = isl_dim_total(bmap->dim); + for (i = 0; i < bmap->n_div; ++i) { + if (isl_int_is_zero(bmap->div[i][0])) + return isl_pip_basic_map_compute_divs(bmap); + isl_assert(bmap->ctx, isl_int_is_zero(bmap->div[i][1+1+off+i]), + goto error); + } + return isl_map_from_basic_map(bmap); +error: + isl_basic_map_free(bmap); + return NULL; } struct isl_map *isl_map_compute_divs(struct isl_map *map) -- 2.7.4