X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=isl_vertices.c;h=efd534b442e021b17df7683556a7ab08ca7ad574;hb=de51a9bc4da5dd3f1f9f57c2362da6f9752c44e0;hp=1dd0f03bdb04714a504950c5754994295d4ea4ce;hpb=8c24c4106f28b02a178989408ef46fe917b10764;p=platform%2Fupstream%2Fisl.git diff --git a/isl_vertices.c b/isl_vertices.c index 1dd0f03..efd534b 100644 --- a/isl_vertices.c +++ b/isl_vertices.c @@ -1,7 +1,7 @@ /* * Copyright 2010 INRIA Saclay * - * Use of this software is governed by the GNU LGPLv2.1 license + * Use of this software is governed by the MIT license * * Written by Sven Verdoolaege, INRIA Saclay - Ile-de-France, * Parc Club Orsay Universite, ZAC des vignes, 4 rue Jacques Monod, @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include #include #include @@ -101,7 +101,7 @@ static __isl_give isl_vertices *vertices_from_list(__isl_keep isl_basic_set *bse return vertices; error: - free(vertices); + isl_vertices_free(vertices); free_vertex_list(list); return NULL; } @@ -199,7 +199,8 @@ static __isl_give isl_vertices *vertices_0D(__isl_keep isl_basic_set *bset) goto error; vertices->n_vertices = 1; vertices->v[0].vertex = isl_basic_set_copy(bset); - if (!vertices->v[0].vertex) + vertices->v[0].dom = isl_basic_set_params(isl_basic_set_copy(bset)); + if (!vertices->v[0].vertex || !vertices->v[0].dom) goto error; vertices->c = isl_calloc_array(bset->ctx, struct isl_chamber, 1); @@ -210,7 +211,7 @@ static __isl_give isl_vertices *vertices_0D(__isl_keep isl_basic_set *bset) vertices->c[0].vertices = isl_calloc_array(bset->ctx, int, 1); if (!vertices->c[0].vertices) goto error; - vertices->c[0].dom = isl_basic_set_copy(bset); + vertices->c[0].dom = isl_basic_set_copy(vertices->v[0].dom); if (!vertices->c[0].dom) goto error; @@ -288,7 +289,7 @@ static int can_select(__isl_keep isl_basic_set *bset, int level, if (isl_tab_is_redundant(tab, level)) return 0; - ovar = isl_dim_offset(bset->dim, isl_dim_set); + ovar = isl_space_offset(bset->dim, isl_dim_set); indep = is_independent(facets, selected, bset->ineq[level] + 1 + ovar); if (indep < 0) @@ -392,10 +393,10 @@ __isl_give isl_vertices *isl_basic_set_compute_vertices( int level; int init; unsigned nvar; - int *selection; + int *selection = NULL; int selected; - struct isl_tab_undo **snap; - isl_mat *facets; + struct isl_tab_undo **snap = NULL; + isl_mat *facets = NULL; struct isl_vertex_list *list = NULL; int n_vertices = 0; isl_vertices *vertices; @@ -422,7 +423,7 @@ __isl_give isl_vertices *isl_basic_set_compute_vertices( if (!bset) return NULL; - tab = isl_tab_from_basic_set(bset); + tab = isl_tab_from_basic_set(bset, 0); if (!tab) goto error; tab->strict_redundant = 1; @@ -494,6 +495,7 @@ __isl_give isl_vertices *isl_basic_set_compute_vertices( return vertices; error: + free_vertex_list(list); isl_mat_free(facets); free(selection); free(snap); @@ -861,7 +863,6 @@ static __isl_give isl_vertices *compute_chambers(__isl_take isl_basic_set *bset, isl_vec *sample = NULL; struct isl_tab *tab = NULL; struct isl_tab_undo *snap; - unsigned nvar; int *selection = NULL; int n_chambers = 0; struct isl_chamber_list *list = NULL; @@ -875,15 +876,13 @@ static __isl_give isl_vertices *compute_chambers(__isl_take isl_basic_set *bset, if (!selection) goto error; - nvar = isl_basic_set_dim(bset, isl_dim_set); - bset = isl_basic_set_project_out(bset, isl_dim_set, 0, nvar); + bset = isl_basic_set_params(bset); - tab = isl_tab_from_basic_set(bset); + tab = isl_tab_from_basic_set(bset, 1); for (i = 0; i < bset->n_ineq; ++i) if (isl_tab_freeze_constraint(tab, i) < 0) goto error; - if (isl_tab_track_bset(tab, bset) < 0) - goto error; + isl_basic_set_free(bset); snap = isl_tab_snap(tab); @@ -1364,10 +1363,8 @@ __isl_give isl_vertices *isl_morph_vertices(__isl_take isl_morph *morph, isl_assert(vertices->bset->ctx, vertices->ref == 1, goto error); param_morph = isl_morph_copy(morph); - param_morph = isl_morph_remove_dom_dims(param_morph, isl_dim_set, - 0, isl_morph_dom_dim(morph, isl_dim_set)); - param_morph = isl_morph_remove_ran_dims(param_morph, isl_dim_set, - 0, isl_morph_ran_dim(morph, isl_dim_set)); + param_morph = isl_morph_dom_params(param_morph); + param_morph = isl_morph_ran_params(param_morph); for (i = 0; i < vertices->n_vertices; ++i) { vertices->v[i].dom = isl_morph_basic_set(