* found any yet.
* "n" is the corresponding size. If lower is NULL, then the value of n
* is undefined.
- *
- * "tmp" is a temporary initialized isl_int.
*/
struct isl_find_unroll_data {
isl_set *domain;
isl_aff *lower;
int *n;
- isl_int tmp;
};
/* Check if we can use "c" as a lower bound and if it is better than
__isl_keep isl_constraint *c)
{
isl_aff *aff, *lower;
- enum isl_lp_result res;
+ isl_val *max;
if (!isl_constraint_is_lower_bound(c, isl_dim_set, data->depth))
return 0;
aff = isl_aff_neg(aff);
aff = isl_aff_add_coefficient_si(aff, isl_dim_in, data->depth, 1);
aff = isl_aff_add_constant_si(aff, 1);
- res = isl_set_max(data->domain, aff, &data->tmp);
+ max = isl_set_max_val(data->domain, aff);
isl_aff_free(aff);
- if (res == isl_lp_error)
+ if (!max)
goto error;
- if (res == isl_lp_unbounded) {
+ if (isl_val_is_infty(max)) {
+ isl_val_free(max);
isl_aff_free(lower);
return 0;
}
- if (isl_int_cmp_si(data->tmp, INT_MAX) <= 0 &&
- (!data->lower || isl_int_cmp_si(data->tmp, *data->n) < 0)) {
+ if (isl_val_cmp_si(max, INT_MAX) <= 0 &&
+ (!data->lower || isl_val_cmp_si(max, *data->n) < 0)) {
isl_aff_free(data->lower);
data->lower = lower;
- *data->n = isl_int_get_si(data->tmp);
+ *data->n = isl_val_get_num_si(max);
} else
isl_aff_free(lower);
+ isl_val_free(max);
return 1;
error:
struct isl_find_unroll_data data = { domain, depth, NULL, n };
isl_basic_set *hull;
- isl_int_init(data.tmp);
hull = isl_set_simple_hull(isl_set_copy(domain));
if (isl_basic_set_foreach_constraint(hull,
goto error;
isl_basic_set_free(hull);
- isl_int_clear(data.tmp);
if (!data.lower)
isl_die(isl_set_get_ctx(domain), isl_error_invalid,
return data.lower;
error:
isl_basic_set_free(hull);
- isl_int_clear(data.tmp);
return isl_aff_free(data.lower);
}