X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=isl_vertices.c;h=c6d4ec03d71b66927e2d602ada284f77da7eda17;hb=63fb8a7f484648c3caa25351c8c94ac2395ec563;hp=e87e9657383f155f34e627150c5997f46f14d211;hpb=f3c292bf31fbb13ce50a8877ee71910897276a24;p=platform%2Fupstream%2Fisl.git diff --git a/isl_vertices.c b/isl_vertices.c index e87e965..c6d4ec0 100644 --- a/isl_vertices.c +++ b/isl_vertices.c @@ -1,18 +1,18 @@ /* * 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, * 91893 Orsay, France */ +#include #include #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; } @@ -134,7 +134,7 @@ static int add_vertex(struct isl_vertex_list **list, goto error; isl_assert(bset->ctx, v->v.vertex->n_eq >= nvar, goto error); v->v.dom = isl_basic_set_copy(v->v.vertex); - v->v.dom = isl_basic_set_project_out(v->v.dom, isl_dim_set, 0, nvar); + v->v.dom = isl_basic_set_params(v->v.dom); if (!v->v.dom) goto error; @@ -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; @@ -403,7 +404,7 @@ __isl_give isl_vertices *isl_basic_set_compute_vertices( if (!bset) return NULL; - if (isl_basic_set_fast_is_empty(bset)) + if (isl_basic_set_plain_is_empty(bset)) return vertices_empty(bset); if (bset->n_eq != 0) @@ -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); @@ -546,9 +548,11 @@ static __isl_give isl_vertices *vertices_add_chambers( struct isl_chamber_list *list) { int i; + isl_ctx *ctx; struct isl_chamber_list *next; - vertices->c = isl_alloc_array(vertices->ctx, struct isl_chamber, n_chambers); + ctx = isl_vertices_get_ctx(vertices); + vertices->c = isl_alloc_array(ctx, struct isl_chamber, n_chambers); if (!vertices->c) goto error; vertices->n_chambers = n_chambers; @@ -769,7 +773,7 @@ static int has_opposite(struct isl_facet_todo *todo, { for (; *list; list = &(*list)->next) { int eq; - eq = isl_basic_set_fast_is_equal(todo->bset, (*list)->bset); + eq = isl_basic_set_plain_is_equal(todo->bset, (*list)->bset); if (eq < 0) return -1; if (!eq) @@ -855,10 +859,10 @@ static __isl_give isl_vertices *compute_chambers(__isl_take isl_basic_set *bset, __isl_take isl_vertices *vertices) { int i; + isl_ctx *ctx; 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; @@ -867,19 +871,18 @@ static __isl_give isl_vertices *compute_chambers(__isl_take isl_basic_set *bset, if (!bset || !vertices) goto error; - selection = isl_alloc_array(vertices->ctx, int, vertices->n_vertices); + ctx = isl_vertices_get_ctx(vertices); + selection = isl_alloc_array(ctx, int, vertices->n_vertices); 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); @@ -989,10 +992,8 @@ __isl_give isl_basic_set *isl_vertex_get_domain(__isl_keep isl_vertex *vertex) v = &vertex->vertices->v[vertex->id]; if (!v->dom) { - unsigned nvar; - nvar = isl_basic_set_dim(v->vertex, isl_dim_set); v->dom = isl_basic_set_copy(v->vertex); - v->dom = isl_basic_set_project_out(v->dom, isl_dim_set, 0, nvar); + v->dom = isl_basic_set_params(v->dom); } return isl_basic_set_copy(v->dom); @@ -1013,12 +1014,14 @@ __isl_give isl_basic_set *isl_vertex_get_expr(__isl_keep isl_vertex *vertex) static __isl_give isl_vertex *isl_vertex_alloc(__isl_take isl_vertices *vertices, int id) { + isl_ctx *ctx; isl_vertex *vertex; if (!vertices) return NULL; - vertex = isl_alloc_type(vertices->ctx, isl_vertex); + ctx = isl_vertices_get_ctx(vertices); + vertex = isl_alloc_type(ctx, isl_vertex); if (!vertex) goto error; @@ -1358,10 +1361,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( @@ -1474,9 +1475,11 @@ static int triangulate(__isl_keep isl_cell *cell, __isl_keep isl_vec *v, int i, j, k; int d, nparam; int *ids; + isl_ctx *ctx; isl_basic_set *vertex; isl_basic_set *bset; + ctx = isl_cell_get_ctx(cell); d = isl_basic_set_dim(cell->vertices->bset, isl_dim_set); nparam = isl_basic_set_dim(cell->vertices->bset, isl_dim_param);