X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=isl_map_simplify.c;h=b3ceb80a58e542f36f7dc0938481718042c28a96;hb=19596bc4e5cd282b2e75d17077b1aaaeacbfd6f9;hp=a25daf196751e093ea1faf034cdc5c9383b8cbd7;hpb=db282322bea9eb89e9141849a430c32fcb94ad58;p=platform%2Fupstream%2Fisl.git diff --git a/isl_map_simplify.c b/isl_map_simplify.c index a25daf1..b3ceb80 100644 --- a/isl_map_simplify.c +++ b/isl_map_simplify.c @@ -1363,9 +1363,12 @@ static int div_is_redundant(struct isl_basic_map *bmap, int div) return 0; } - for (i = 0; i < bmap->n_div; ++i) + for (i = 0; i < bmap->n_div; ++i) { + if (isl_int_is_zero(bmap->div[i][0])) + continue; if (!isl_int_is_zero(bmap->div[i][1+pos])) return 0; + } return 1; } @@ -2144,6 +2147,8 @@ static struct isl_basic_map *normalize_divs_in_context( for (i = 0; i < context->n_eq; ++i) { int k; k = isl_basic_map_alloc_equality(bmap); + if (k < 0) + return isl_basic_map_free(bmap); isl_seq_cpy(bmap->eq[k], context->eq[i], 1 + total_context); isl_seq_clr(bmap->eq[k] + 1 + total_context, isl_basic_map_total_dim(bmap) - total_context); @@ -2177,6 +2182,8 @@ struct isl_basic_map *isl_basic_map_gist(struct isl_basic_map *bmap, bmap = isl_basic_map_remove_redundancies(bmap); context = isl_basic_map_remove_redundancies(context); + if (!context) + goto error; if (context->n_eq) bmap = normalize_divs_in_context(bmap, context); @@ -2218,8 +2225,6 @@ __isl_give isl_map *isl_map_gist_basic_map(__isl_take isl_map *map, map = isl_map_compute_divs(map); if (!map) goto error; - for (i = 0; i < map->n; ++i) - context = isl_basic_map_align_divs(context, map->p[i]); for (i = map->n - 1; i >= 0; --i) { map->p[i] = isl_basic_map_gist(map->p[i], isl_basic_map_copy(context));