Commit b47595f7 by Mircea Namolaru Committed by Mircea Namolaru

Replacement of isl_int by isl_val

From-SVN: r213816
parent 7cadcdc1
2014-08-11 Mircea Namolaru <mircea.namolaru@inria.fr>
Replacement of isl_int by isl_val
* graphite-clast-to-gimple.c: include isl/val.h, isl/val_gmp.h
(compute_bounds_for_param): use isl_val instead of isl_int
(compute_bounds_for_loop): likewise
* graphite-interchange.c: include isl/val.h, isl/val_gmp.h
(build_linearized_memory_access): use isl_val instead of isl_int
(pdr_stride_in_loop): likewise
* graphite-optimize-isl.c:
(getPrevectorMap): use isl_val instead of isl_int
* graphite-poly.c:
(pbb_number_of_iterations_at_time): use isl_val instead of isl_int
graphite-sese-to-poly.c: include isl/val.h, isl/val_gmp.h
(extern the_isl_ctx): declare
(build_pbb_scattering_polyhedrons): use isl_val instead of isl_int
(extract_affine_gmp): likewise
(wrap): likewise
(build_loop_iteration_domains): likewise
(add_param_constraints): likewise
2014-08-11 Richard Biener <rguenther@suse.de> 2014-08-11 Richard Biener <rguenther@suse.de>
PR tree-optimization/62075 PR tree-optimization/62075
......
...@@ -28,6 +28,14 @@ along with GCC; see the file COPYING3. If not see ...@@ -28,6 +28,14 @@ along with GCC; see the file COPYING3. If not see
#include <isl/constraint.h> #include <isl/constraint.h>
#include <isl/ilp.h> #include <isl/ilp.h>
#include <isl/aff.h> #include <isl/aff.h>
#include <isl/val.h>
#if defined(__cplusplus)
extern "C" {
#endif
#include <isl/val_gmp.h>
#if defined(__cplusplus)
}
#endif
#include <cloog/cloog.h> #include <cloog/cloog.h>
#include <cloog/isl/domain.h> #include <cloog/isl/domain.h>
#endif #endif
...@@ -871,18 +879,18 @@ graphite_create_new_guard (edge entry_edge, struct clast_guard *stmt, ...@@ -871,18 +879,18 @@ graphite_create_new_guard (edge entry_edge, struct clast_guard *stmt,
static void static void
compute_bounds_for_param (scop_p scop, int param, mpz_t low, mpz_t up) compute_bounds_for_param (scop_p scop, int param, mpz_t low, mpz_t up)
{ {
isl_int v; isl_val *v;
isl_aff *aff = isl_aff_zero_on_domain isl_aff *aff = isl_aff_zero_on_domain
(isl_local_space_from_space (isl_set_get_space (scop->context))); (isl_local_space_from_space (isl_set_get_space (scop->context)));
aff = isl_aff_add_coefficient_si (aff, isl_dim_param, param, 1); aff = isl_aff_add_coefficient_si (aff, isl_dim_param, param, 1);
isl_int_init (v); v = isl_set_min_val (scop->context, aff);
isl_set_min (scop->context, aff, &v); isl_val_get_num_gmp (v, low);
isl_int_get_gmp (v, low); isl_val_free (v);
isl_set_max (scop->context, aff, &v); v = isl_set_max_val (scop->context, aff);
isl_int_get_gmp (v, up); isl_val_get_num_gmp (v, up);
isl_int_clear (v); isl_val_free (v);
isl_aff_free (aff); isl_aff_free (aff);
} }
...@@ -901,8 +909,7 @@ compute_bounds_for_loop (struct clast_for *loop, mpz_t low, mpz_t up) ...@@ -901,8 +909,7 @@ compute_bounds_for_loop (struct clast_for *loop, mpz_t low, mpz_t up)
isl_set *domain; isl_set *domain;
isl_aff *dimension; isl_aff *dimension;
isl_local_space *local_space; isl_local_space *local_space;
isl_int isl_value; isl_val *isl_value;
enum isl_lp_result lp_result;
domain = isl_set_copy (isl_set_from_cloog_domain (loop->domain)); domain = isl_set_copy (isl_set_from_cloog_domain (loop->domain));
local_space = isl_local_space_from_space (isl_set_get_space (domain)); local_space = isl_local_space_from_space (isl_set_get_space (domain));
...@@ -911,17 +918,12 @@ compute_bounds_for_loop (struct clast_for *loop, mpz_t low, mpz_t up) ...@@ -911,17 +918,12 @@ compute_bounds_for_loop (struct clast_for *loop, mpz_t low, mpz_t up)
isl_set_dim (domain, isl_dim_set) - 1, isl_set_dim (domain, isl_dim_set) - 1,
1); 1);
isl_int_init (isl_value); isl_value = isl_set_min_val (domain, dimension);
isl_val_get_num_gmp (isl_value, low);
lp_result = isl_set_min (domain, dimension, &isl_value); isl_val_free (isl_value);
assert (lp_result == isl_lp_ok); isl_value = isl_set_max_val (domain, dimension);
isl_int_get_gmp (isl_value, low); isl_val_get_num_gmp (isl_value, up);
isl_val_free (isl_value);
lp_result = isl_set_max (domain, dimension, &isl_value);
assert (lp_result == isl_lp_ok);
isl_int_get_gmp (isl_value, up);
isl_int_clear (isl_value);
isl_set_free (domain); isl_set_free (domain);
isl_aff_free (dimension); isl_aff_free (dimension);
} }
......
...@@ -29,6 +29,14 @@ along with GCC; see the file COPYING3. If not see ...@@ -29,6 +29,14 @@ along with GCC; see the file COPYING3. If not see
#include <isl/map.h> #include <isl/map.h>
#include <isl/union_map.h> #include <isl/union_map.h>
#include <isl/ilp.h> #include <isl/ilp.h>
#include <isl/val.h>
#if defined(__cplusplus)
extern "C" {
#endif
#include <isl/val_gmp.h>
#if defined(__cplusplus)
}
#endif
#include <cloog/cloog.h> #include <cloog/cloog.h>
#include <cloog/isl/domain.h> #include <cloog/isl/domain.h>
#endif #endif
...@@ -79,13 +87,13 @@ build_linearized_memory_access (isl_map *map, poly_dr_p pdr) ...@@ -79,13 +87,13 @@ build_linearized_memory_access (isl_map *map, poly_dr_p pdr)
isl_local_space *ls = isl_local_space_from_space (isl_map_get_space (map)); isl_local_space *ls = isl_local_space_from_space (isl_map_get_space (map));
unsigned offset, nsubs; unsigned offset, nsubs;
int i; int i;
isl_int size, subsize; isl_ctx *ctx;
isl_val *size, *subsize, *size1;
res = isl_equality_alloc (ls); res = isl_equality_alloc (ls);
isl_int_init (size); ctx = isl_local_space_get_ctx (ls);
isl_int_set_ui (size, 1); size = isl_val_int_from_ui (ctx, 1);
isl_int_init (subsize);
isl_int_set_ui (subsize, 1);
nsubs = isl_set_dim (pdr->extent, isl_dim_set); nsubs = isl_set_dim (pdr->extent, isl_dim_set);
/* -1 for the already included L dimension. */ /* -1 for the already included L dimension. */
...@@ -98,18 +106,17 @@ build_linearized_memory_access (isl_map *map, poly_dr_p pdr) ...@@ -98,18 +106,17 @@ build_linearized_memory_access (isl_map *map, poly_dr_p pdr)
isl_space *dc; isl_space *dc;
isl_aff *aff; isl_aff *aff;
res = isl_constraint_set_coefficient (res, isl_dim_out, offset + i, size); size1 = isl_val_copy (size);
res = isl_constraint_set_coefficient_val (res, isl_dim_out, offset + i, size);
dc = isl_set_get_space (pdr->extent); dc = isl_set_get_space (pdr->extent);
aff = isl_aff_zero_on_domain (isl_local_space_from_space (dc)); aff = isl_aff_zero_on_domain (isl_local_space_from_space (dc));
aff = isl_aff_set_coefficient_si (aff, isl_dim_in, i, 1); aff = isl_aff_set_coefficient_si (aff, isl_dim_in, i, 1);
isl_set_max (pdr->extent, aff, &subsize); subsize = isl_set_max_val (pdr->extent, aff);
isl_aff_free (aff); isl_aff_free (aff);
isl_int_mul (size, size, subsize); size = isl_val_mul (size1, subsize);
} }
isl_int_clear (subsize); isl_val_free (size);
isl_int_clear (size);
return res; return res;
} }
...@@ -126,7 +133,7 @@ pdr_stride_in_loop (mpz_t stride, graphite_dim_t depth, poly_dr_p pdr) ...@@ -126,7 +133,7 @@ pdr_stride_in_loop (mpz_t stride, graphite_dim_t depth, poly_dr_p pdr)
isl_aff *aff; isl_aff *aff;
isl_space *dc; isl_space *dc;
isl_constraint *lma, *c; isl_constraint *lma, *c;
isl_int islstride; isl_val *islstride;
graphite_dim_t time_depth; graphite_dim_t time_depth;
unsigned offset, nt; unsigned offset, nt;
unsigned i; unsigned i;
...@@ -239,10 +246,9 @@ pdr_stride_in_loop (mpz_t stride, graphite_dim_t depth, poly_dr_p pdr) ...@@ -239,10 +246,9 @@ pdr_stride_in_loop (mpz_t stride, graphite_dim_t depth, poly_dr_p pdr)
aff = isl_aff_zero_on_domain (isl_local_space_from_space (dc)); aff = isl_aff_zero_on_domain (isl_local_space_from_space (dc));
aff = isl_aff_set_coefficient_si (aff, isl_dim_in, offset - 1, -1); aff = isl_aff_set_coefficient_si (aff, isl_dim_in, offset - 1, -1);
aff = isl_aff_set_coefficient_si (aff, isl_dim_in, offset + offset - 1, 1); aff = isl_aff_set_coefficient_si (aff, isl_dim_in, offset + offset - 1, 1);
isl_int_init (islstride); islstride = isl_set_max_val (set, aff);
isl_set_max (set, aff, &islstride); isl_val_get_num_gmp (islstride, stride);
isl_int_get_gmp (islstride, stride); isl_val_free (islstride);
isl_int_clear (islstride);
isl_aff_free (aff); isl_aff_free (aff);
isl_set_free (set); isl_set_free (set);
......
...@@ -244,7 +244,7 @@ getPrevectorMap (isl_ctx *ctx, int DimToVectorize, ...@@ -244,7 +244,7 @@ getPrevectorMap (isl_ctx *ctx, int DimToVectorize,
isl_aff *Aff; isl_aff *Aff;
int PointDimension; /* ip */ int PointDimension; /* ip */
int TileDimension; /* it */ int TileDimension; /* it */
isl_int VectorWidthMP; isl_val *VectorWidthMP;
int i; int i;
/* assert (0 <= DimToVectorize && DimToVectorize < ScheduleDimensions);*/ /* assert (0 <= DimToVectorize && DimToVectorize < ScheduleDimensions);*/
...@@ -275,10 +275,9 @@ getPrevectorMap (isl_ctx *ctx, int DimToVectorize, ...@@ -275,10 +275,9 @@ getPrevectorMap (isl_ctx *ctx, int DimToVectorize,
Aff = isl_aff_zero_on_domain (LocalSpaceRange); Aff = isl_aff_zero_on_domain (LocalSpaceRange);
Aff = isl_aff_set_constant_si (Aff, VectorWidth); Aff = isl_aff_set_constant_si (Aff, VectorWidth);
Aff = isl_aff_set_coefficient_si (Aff, isl_dim_in, TileDimension, 1); Aff = isl_aff_set_coefficient_si (Aff, isl_dim_in, TileDimension, 1);
isl_int_init (VectorWidthMP);
isl_int_set_si (VectorWidthMP, VectorWidth); VectorWidthMP = isl_val_int_from_si (ctx, VectorWidth);
Aff = isl_aff_mod (Aff, VectorWidthMP); Aff = isl_aff_mod_val (Aff, VectorWidthMP);
isl_int_clear (VectorWidthMP);
Modulo = isl_pw_aff_zero_set (isl_pw_aff_from_aff (Aff)); Modulo = isl_pw_aff_zero_set (isl_pw_aff_from_aff (Aff));
TilingMap = isl_map_intersect_range (TilingMap, Modulo); TilingMap = isl_map_intersect_range (TilingMap, Modulo);
......
...@@ -28,6 +28,14 @@ along with GCC; see the file COPYING3. If not see ...@@ -28,6 +28,14 @@ along with GCC; see the file COPYING3. If not see
#include <isl/constraint.h> #include <isl/constraint.h>
#include <isl/ilp.h> #include <isl/ilp.h>
#include <isl/aff.h> #include <isl/aff.h>
#include <isl/val.h>
#if defined(__cplusplus)
extern "C" {
#endif
#include <isl/val_gmp.h>
#if defined(__cplusplus)
}
#endif
#include <cloog/cloog.h> #include <cloog/cloog.h>
#include <cloog/isl/domain.h> #include <cloog/isl/domain.h>
#endif #endif
...@@ -1029,10 +1037,7 @@ pbb_number_of_iterations_at_time (poly_bb_p pbb, ...@@ -1029,10 +1037,7 @@ pbb_number_of_iterations_at_time (poly_bb_p pbb,
isl_set *transdomain; isl_set *transdomain;
isl_space *dc; isl_space *dc;
isl_aff *aff; isl_aff *aff;
isl_int isllb, islub; isl_val *isllb, *islub;
isl_int_init (isllb);
isl_int_init (islub);
/* Map the iteration domain through the current scatter, and work /* Map the iteration domain through the current scatter, and work
on the resulting set. */ on the resulting set. */
...@@ -1046,15 +1051,14 @@ pbb_number_of_iterations_at_time (poly_bb_p pbb, ...@@ -1046,15 +1051,14 @@ pbb_number_of_iterations_at_time (poly_bb_p pbb,
/* And find the min/max for that function. */ /* And find the min/max for that function. */
/* XXX isl check results? */ /* XXX isl check results? */
isl_set_min (transdomain, aff, &isllb); isllb = isl_set_min_val (transdomain, aff);
isl_set_max (transdomain, aff, &islub); islub = isl_set_max_val (transdomain, aff);
isl_int_sub (islub, islub, isllb); islub = isl_val_sub (islub, isllb);
isl_int_add_ui (islub, islub, 1); islub = isl_val_add_ui (islub, 1);
isl_int_get_gmp (islub, res); isl_val_get_num_gmp (islub, res);
isl_int_clear (isllb); isl_val_free (islub);
isl_int_clear (islub);
isl_aff_free (aff); isl_aff_free (aff);
isl_set_free (transdomain); isl_set_free (transdomain);
} }
......
...@@ -26,6 +26,18 @@ along with GCC; see the file COPYING3. If not see ...@@ -26,6 +26,18 @@ along with GCC; see the file COPYING3. If not see
#include <isl/union_map.h> #include <isl/union_map.h>
#include <isl/constraint.h> #include <isl/constraint.h>
#include <isl/aff.h> #include <isl/aff.h>
#include <isl/val.h>
/* For C++ linkage of C functions.
Missing from isl/val_gmp.h in isl 0.12 versions.
Appearing in isl/val_gmp.h in isl 0.13.
To be removed when passing to isl 0.13. */
#if defined(__cplusplus)
extern "C" {
#endif
#include <isl/val_gmp.h>
#if defined(__cplusplus)
}
#endif
#include <cloog/cloog.h> #include <cloog/cloog.h>
#include <cloog/cloog.h> #include <cloog/cloog.h>
#include <cloog/isl/domain.h> #include <cloog/isl/domain.h>
...@@ -480,13 +492,11 @@ build_pbb_scattering_polyhedrons (isl_aff *static_sched, ...@@ -480,13 +492,11 @@ build_pbb_scattering_polyhedrons (isl_aff *static_sched,
int i; int i;
int nb_iterators = pbb_dim_iter_domain (pbb); int nb_iterators = pbb_dim_iter_domain (pbb);
int used_scattering_dimensions = nb_iterators * 2 + 1; int used_scattering_dimensions = nb_iterators * 2 + 1;
isl_int val; isl_val *val;
isl_space *dc, *dm; isl_space *dc, *dm;
gcc_assert (scattering_dimensions >= used_scattering_dimensions); gcc_assert (scattering_dimensions >= used_scattering_dimensions);
isl_int_init (val);
dc = isl_set_get_space (pbb->domain); dc = isl_set_get_space (pbb->domain);
dm = isl_space_add_dims (isl_space_from_domain (dc), dm = isl_space_add_dims (isl_space_from_domain (dc),
isl_dim_out, scattering_dimensions); isl_dim_out, scattering_dimensions);
...@@ -500,12 +510,10 @@ build_pbb_scattering_polyhedrons (isl_aff *static_sched, ...@@ -500,12 +510,10 @@ build_pbb_scattering_polyhedrons (isl_aff *static_sched,
isl_constraint *c = isl_equality_alloc isl_constraint *c = isl_equality_alloc
(isl_local_space_from_space (isl_map_get_space (pbb->schedule))); (isl_local_space_from_space (isl_map_get_space (pbb->schedule)));
if (0 != isl_aff_get_coefficient (static_sched, isl_dim_in, val = isl_aff_get_coefficient_val (static_sched, isl_dim_in, i / 2);
i / 2, &val))
gcc_unreachable ();
isl_int_neg (val, val); val = isl_val_neg (val);
c = isl_constraint_set_constant (c, val); c = isl_constraint_set_constant_val (c, val);
c = isl_constraint_set_coefficient_si (c, isl_dim_out, i, 1); c = isl_constraint_set_coefficient_si (c, isl_dim_out, i, 1);
pbb->schedule = isl_map_add_constraint (pbb->schedule, c); pbb->schedule = isl_map_add_constraint (pbb->schedule, c);
} }
...@@ -519,8 +527,6 @@ build_pbb_scattering_polyhedrons (isl_aff *static_sched, ...@@ -519,8 +527,6 @@ build_pbb_scattering_polyhedrons (isl_aff *static_sched,
} }
} }
isl_int_clear (val);
pbb->transformed = isl_map_copy (pbb->schedule); pbb->transformed = isl_map_copy (pbb->schedule);
} }
...@@ -699,12 +705,12 @@ extract_affine_gmp (mpz_t g, __isl_take isl_space *space) ...@@ -699,12 +705,12 @@ extract_affine_gmp (mpz_t g, __isl_take isl_space *space)
isl_local_space *ls = isl_local_space_from_space (isl_space_copy (space)); isl_local_space *ls = isl_local_space_from_space (isl_space_copy (space));
isl_aff *aff = isl_aff_zero_on_domain (ls); isl_aff *aff = isl_aff_zero_on_domain (ls);
isl_set *dom = isl_set_universe (space); isl_set *dom = isl_set_universe (space);
isl_int v; isl_val *v;
isl_ctx *ct;
isl_int_init (v); ct = isl_aff_get_ctx (aff);
isl_int_set_gmp (v, g); v = isl_val_int_from_gmp (ct, g);
aff = isl_aff_add_constant (aff, v); aff = isl_aff_add_constant_val (aff, v);
isl_int_clear (v);
return isl_pw_aff_alloc (dom, aff); return isl_pw_aff_alloc (dom, aff);
} }
...@@ -727,18 +733,16 @@ extract_affine_int (tree e, __isl_take isl_space *space) ...@@ -727,18 +733,16 @@ extract_affine_int (tree e, __isl_take isl_space *space)
/* Compute pwaff mod 2^width. */ /* Compute pwaff mod 2^width. */
extern isl_ctx *the_isl_ctx;
static isl_pw_aff * static isl_pw_aff *
wrap (isl_pw_aff *pwaff, unsigned width) wrap (isl_pw_aff *pwaff, unsigned width)
{ {
isl_int mod; isl_val *mod;
isl_int_init (mod);
isl_int_set_si (mod, 1);
isl_int_mul_2exp (mod, mod, width);
pwaff = isl_pw_aff_mod (pwaff, mod);
isl_int_clear (mod); mod = isl_val_int_from_ui(the_isl_ctx, width);
mod = isl_val_2exp (mod);
pwaff = isl_pw_aff_mod_val (pwaff, mod);
return pwaff; return pwaff;
} }
...@@ -994,11 +998,10 @@ build_loop_iteration_domains (scop_p scop, struct loop *loop, ...@@ -994,11 +998,10 @@ build_loop_iteration_domains (scop_p scop, struct loop *loop,
isl_space *space; isl_space *space;
isl_constraint *c; isl_constraint *c;
int pos = isl_set_dim (outer, isl_dim_set); int pos = isl_set_dim (outer, isl_dim_set);
isl_int v; isl_val *v;
mpz_t g; mpz_t g;
mpz_init (g); mpz_init (g);
isl_int_init (v);
inner = isl_set_add_dims (inner, isl_dim_set, 1); inner = isl_set_add_dims (inner, isl_dim_set, 1);
space = isl_set_get_space (inner); space = isl_set_get_space (inner);
...@@ -1016,8 +1019,8 @@ build_loop_iteration_domains (scop_p scop, struct loop *loop, ...@@ -1016,8 +1019,8 @@ build_loop_iteration_domains (scop_p scop, struct loop *loop,
(isl_local_space_from_space (isl_space_copy (space))); (isl_local_space_from_space (isl_space_copy (space)));
c = isl_constraint_set_coefficient_si (c, isl_dim_set, pos, -1); c = isl_constraint_set_coefficient_si (c, isl_dim_set, pos, -1);
tree_int_to_gmp (nb_iters, g); tree_int_to_gmp (nb_iters, g);
isl_int_set_gmp (v, g); v = isl_val_int_from_gmp (the_isl_ctx, g);
c = isl_constraint_set_constant (c, v); c = isl_constraint_set_constant_val (c, v);
inner = isl_set_add_constraint (inner, c); inner = isl_set_add_constraint (inner, c);
} }
...@@ -1071,9 +1074,9 @@ build_loop_iteration_domains (scop_p scop, struct loop *loop, ...@@ -1071,9 +1074,9 @@ build_loop_iteration_domains (scop_p scop, struct loop *loop,
c = isl_inequality_alloc c = isl_inequality_alloc
(isl_local_space_from_space (isl_space_copy (space))); (isl_local_space_from_space (isl_space_copy (space)));
c = isl_constraint_set_coefficient_si (c, isl_dim_set, pos, -1); c = isl_constraint_set_coefficient_si (c, isl_dim_set, pos, -1);
isl_int_set_gmp (v, g); v = isl_val_int_from_gmp (the_isl_ctx, g);
mpz_clear (g); mpz_clear (g);
c = isl_constraint_set_constant (c, v); c = isl_constraint_set_constant_val (c, v);
inner = isl_set_add_constraint (inner, c); inner = isl_set_add_constraint (inner, c);
} }
else else
...@@ -1096,7 +1099,6 @@ build_loop_iteration_domains (scop_p scop, struct loop *loop, ...@@ -1096,7 +1099,6 @@ build_loop_iteration_domains (scop_p scop, struct loop *loop,
isl_set_free (outer); isl_set_free (outer);
isl_space_free (space); isl_space_free (space);
isl_int_clear (v);
mpz_clear (g); mpz_clear (g);
} }
...@@ -1330,17 +1332,15 @@ add_param_constraints (scop_p scop, graphite_dim_t p) ...@@ -1330,17 +1332,15 @@ add_param_constraints (scop_p scop, graphite_dim_t p)
isl_space *space = isl_set_get_space (scop->context); isl_space *space = isl_set_get_space (scop->context);
isl_constraint *c; isl_constraint *c;
mpz_t g; mpz_t g;
isl_int v; isl_val *v;
c = isl_inequality_alloc (isl_local_space_from_space (space)); c = isl_inequality_alloc (isl_local_space_from_space (space));
mpz_init (g); mpz_init (g);
isl_int_init (v);
tree_int_to_gmp (lb, g); tree_int_to_gmp (lb, g);
isl_int_set_gmp (v, g); v = isl_val_int_from_gmp (the_isl_ctx, g);
isl_int_neg (v, v); v = isl_val_neg (v);
mpz_clear (g); mpz_clear (g);
c = isl_constraint_set_constant (c, v); c = isl_constraint_set_constant_val (c, v);
isl_int_clear (v);
c = isl_constraint_set_coefficient_si (c, isl_dim_param, p, 1); c = isl_constraint_set_coefficient_si (c, isl_dim_param, p, 1);
scop->context = isl_set_add_constraint (scop->context, c); scop->context = isl_set_add_constraint (scop->context, c);
...@@ -1351,17 +1351,15 @@ add_param_constraints (scop_p scop, graphite_dim_t p) ...@@ -1351,17 +1351,15 @@ add_param_constraints (scop_p scop, graphite_dim_t p)
isl_space *space = isl_set_get_space (scop->context); isl_space *space = isl_set_get_space (scop->context);
isl_constraint *c; isl_constraint *c;
mpz_t g; mpz_t g;
isl_int v; isl_val *v;
c = isl_inequality_alloc (isl_local_space_from_space (space)); c = isl_inequality_alloc (isl_local_space_from_space (space));
mpz_init (g); mpz_init (g);
isl_int_init (v);
tree_int_to_gmp (ub, g); tree_int_to_gmp (ub, g);
isl_int_set_gmp (v, g); v = isl_val_int_from_gmp (the_isl_ctx, g);
mpz_clear (g); mpz_clear (g);
c = isl_constraint_set_constant (c, v); c = isl_constraint_set_constant_val (c, v);
isl_int_clear (v);
c = isl_constraint_set_coefficient_si (c, isl_dim_param, p, -1); c = isl_constraint_set_coefficient_si (c, isl_dim_param, p, -1);
scop->context = isl_set_add_constraint (scop->context, c); scop->context = isl_set_add_constraint (scop->context, c);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment