if (!slice)
goto error;
dim = isl_basic_set_n_dim(slice);
+ slice = isl_basic_set_cow(slice);
slice = isl_basic_set_extend(slice, 0, dim, 0, 0, 1);
k = isl_basic_set_alloc_inequality(slice);
if (k < 0)
isl_assert(constraint->ctx,
constraint->bmap->n_eq + constraint->bmap->n_ineq == 1, goto error);
+ constraint->bmap = isl_basic_map_cow(constraint->bmap);
constraint->bmap = isl_basic_map_extend_dim(constraint->bmap,
isl_dim_copy(constraint->bmap->dim), 1, 0, 0);
if (!constraint->bmap)
bset = isl_basic_set_align_divs(bset, constraint_bset);
nparam = isl_basic_set_n_param(bset);
dim = isl_basic_set_n_dim(bset);
+ bset = isl_basic_set_cow(bset);
bset = isl_basic_set_extend(bset, nparam, dim, 0, 1, 1);
if (isl_constraint_is_equality(constraint)) {
k = isl_basic_set_alloc_equality(bset);
isl_assert(ctx, isl_basic_set_n_param(bset) == 0, goto error);
isl_assert(ctx, bset->n_div == 0, goto error);
dim = isl_basic_set_n_dim(bset);
+ bset = isl_basic_set_cow(bset);
bset = isl_basic_set_extend(bset, 0, dim, 0, 1, 0);
i = isl_basic_set_alloc_equality(bset);
if (i < 0)
hull_facet = isl_basic_set_normalize_constraints(hull_facet);
if (!facet)
goto error;
- if (facet->n_ineq + hull->n_ineq > hull->c_size)
- hull = isl_basic_set_extend_dim(hull,
- isl_dim_copy(hull->dim), 0, 0, facet->n_ineq);
+ hull = isl_basic_set_cow(hull);
+ hull = isl_basic_set_extend_dim(hull,
+ isl_dim_copy(hull->dim), 0, 0, facet->n_ineq);
for (j = 0; j < facet->n_ineq; ++j) {
for (f = 0; f < hull_facet->n_ineq; ++f)
if (isl_seq_eq(facet->ineq[j],
hull = isl_set_affine_hull(isl_set_copy(set));
if (!hull)
goto error;
+ hull = isl_basic_set_cow(hull),
hull = isl_basic_set_extend_dim(hull, isl_dim_copy(hull->dim),
0, 0, n_ineq);
if (!hull)
if (!*v)
goto error;
extra = (*v)->n - n;
+ bmap = isl_basic_map_cow(bmap);
bmap = isl_basic_map_extend_dim(bmap, isl_dim_copy(bmap->dim),
extra, 0, 0);
total = isl_basic_map_total_dim(bmap);
}
isl_stream_push_token(s, tok);
+ bmap = isl_basic_map_cow(bmap);
bmap = isl_basic_map_extend_constraints(bmap, 0, 1);
k = isl_basic_map_alloc_inequality(bmap);
if (k < 0)
if (!dim)
goto error;
- base = isl_basic_map_cow(base);
if (!base)
goto error;
isl_assert(bset->ctx,
isl_basic_map_compatible_domain(bmap, bset), goto error);
+ bmap = isl_basic_map_cow(bmap);
bmap = isl_basic_map_extend_dim(bmap, isl_dim_copy(bmap->dim),
bset->n_div, bset->n_eq, bset->n_ineq);
if (!bmap)
isl_assert(bset->ctx,
isl_basic_map_compatible_range(bmap, bset), goto error);
+ bmap = isl_basic_map_cow(bmap);
bmap = isl_basic_map_extend_dim(bmap, isl_dim_copy(bmap->dim),
bset->n_div, bset->n_eq, bset->n_ineq);
if (!bmap)
basic_map_contains(bmap2, bmap2->sample) > 0)
sample = isl_vec_copy(bmap2->ctx, bmap2->sample);
+ bmap1 = isl_basic_map_cow(bmap1);
bmap1 = isl_basic_map_extend_dim(bmap1, isl_dim_copy(bmap1->dim),
bmap2->n_div, bmap2->n_eq, bmap2->n_ineq);
if (!bmap1)
nparam = isl_basic_map_n_param(bmap);
isl_assert(bmap->ctx, dim == isl_basic_map_n_out(bmap), goto error);
bset = isl_basic_set_from_basic_map(bmap);
+ bset = isl_basic_set_cow(bset);
bset = isl_basic_set_extend(bset, nparam, 3*dim, 0, dim, 0);
bset = isl_basic_set_swap_vars(bset, 2*dim);
for (i = 0; i < dim; ++i) {
isl_assert(src->ctx, !isl_int_is_zero(src->div[i][0]), goto error);
src = order_divs(src);
+ dst = isl_basic_map_cow(dst);
dst = isl_basic_map_extend_dim(dst, isl_dim_copy(dst->dim),
src->n_div, 0, 2 * src->n_div);
if (!dst)
bmap2 = isl_basic_map_from_basic_set(isl_basic_set_copy(bset2), dims);
if (!bmap1 || !bmap2)
goto error;
+ bmap1 = isl_basic_map_cow(bmap1);
bmap1 = isl_basic_map_extend(bmap1, nparam,
pos, (dim1 - pos) + (dim2 - pos),
bmap2->n_div, bmap2->n_eq, bmap2->n_ineq);
if (bset->n_eq > 0)
return uset_gist_set_eq(bset, context);
bset = remove_shifted_constraints(bset, context);
- combined = isl_basic_set_extend_constraints(isl_basic_set_copy(bset),
+ combined = isl_basic_set_cow(isl_basic_set_copy(bset));
+ combined = isl_basic_set_extend_constraints(combined,
context->n_eq, context->n_ineq);
context = isl_basic_set_add_constraints(combined, context, 0);
if (!context)