93 isl_ast_graft_list *list;
103 data->
list = isl_ast_graft_list_concat(data->
list, list);
114 if (!graft || !build)
116 if (!build->at_each_domain)
125 graft->node = build->at_each_domain(graft->node,
126 build, build->at_each_domain_user);
158 isl_ast_graft_list *list;
177 list = isl_ast_graft_list_from_ast_graft(graft);
178 data->
list = isl_ast_graft_list_concat(data->
list, list);
300 return isl_ast_graft_list_from_ast_graft(graft);
325 if (!
build || !executed)
339 data.
list = isl_ast_graft_list_alloc(ctx, 0);
341 data.
list = isl_ast_graft_list_free(data.
list);
344error: data.
list = NULL;
371 if (!graft || !
build)
538 n = isl_pw_aff_list_n_pw_aff(
list);
540 return isl_pw_aff_list_free(
list);
546 for (i =
n - 1; i >= 0; --i) {
552 pa_i = isl_pw_aff_list_get_pw_aff(
list, i);
554 for (j = 0; j <
n; ++j) {
561 pa_j = isl_pw_aff_list_get_pw_aff(
list, j);
575 list = isl_pw_aff_list_drop(
list, i, 1);
584 return isl_pw_aff_list_free(
list);
603 isl_pw_aff_list *
list;
610 n = isl_constraint_list_n_constraint(constraints);
616 return isl_pw_aff_list_from_pw_aff(pa);
620 list = isl_pw_aff_list_alloc(ctx,
n);
622 for (i = 0; i <
n; ++i) {
626 c = isl_constraint_list_get_constraint(constraints, i);
648 isl_pw_aff_list *
list;
652 n = isl_constraint_list_n_constraint(constraints);
658 return isl_pw_aff_list_from_pw_aff(pa);
662 list = isl_pw_aff_list_alloc(ctx,
n);
664 for (i = 0; i <
n; ++i) {
668 c = isl_constraint_list_get_constraint(constraints, i);
695 n = isl_pw_aff_list_n_pw_aff(
list);
701 isl_pw_aff_list_get_pw_aff(
list, 0));
703 ctx = isl_pw_aff_list_get_ctx(
list);
711 for (i = 0; i <
n; ++i) {
715 isl_pw_aff_list_get_pw_aff(
list, i));
719 isl_pw_aff_list_free(
list);
745 if (depth < 0 || has_stride < 0)
747 if (!has_stride && !degenerate)
791 if (!graft || !sub_build)
813 n = isl_constraint_list_n_constraint(
list);
818 "expecting at least one constraint",
return NULL);
821 isl_constraint_list_get_constraint(
list, 0));
822 for (i = 1; i <
n; ++i) {
826 isl_constraint_list_get_constraint(
list, i));
871 n = isl_pw_aff_list_n_pw_aff(lower);
881 for (i = 0; i <
n; ++i) {
887 pa = isl_pw_aff_list_get_pw_aff(lower, i);
919 lower = isl_pw_aff_list_copy(lower);
920 upper = isl_pw_aff_list_copy(upper);
970 n = isl_pw_aff_list_n_pw_aff(
list);
972 return isl_pw_aff_list_free(
list);
979 for (i = 0; i <
n; ++i) {
981 pa = isl_pw_aff_list_get_pw_aff(
list, i);
983 list = isl_pw_aff_list_set_pw_aff(
list, i, pa);
1012 if (!graft || !
list)
1029 isl_pw_aff_list_free(
list);
1113 int use_list,
__isl_keep isl_pw_aff_list *upper_list,
1175 isl_pw_aff_list *lower;
1178 isl_pw_aff_list *upper_list = NULL;
1182 if (!graft || !c_lower || !c_upper || depth < 0)
1187 n_lower = isl_constraint_list_n_constraint(c_lower);
1188 n_upper = isl_constraint_list_n_constraint(c_upper);
1189 if (n_lower < 0 || n_upper < 0)
1198 else if (n_upper > 0)
1203 if (n_lower == 0 || n_upper == 0)
1213 isl_pw_aff_list_free(lower);
1214 isl_pw_aff_list_free(upper_list);
1216 isl_constraint_list_free(c_lower);
1217 isl_constraint_list_free(c_upper);
1221 isl_constraint_list_free(c_lower);
1222 isl_constraint_list_free(c_upper);
1280 isl_constraint_list *lower;
1281 isl_constraint_list *upper;
1285 list = isl_constraint_list_free(list);
1297 isl_constraint_list_free(list);
1301 lower = isl_constraint_list_drop(list, 0, data.
n_indep);
1302 upper = isl_constraint_list_copy(lower);
1303 lower = isl_constraint_list_drop(lower, data.
n_lower, data.
n_upper);
1304 upper = isl_constraint_list_drop(upper, 0, data.
n_lower);
1325 isl_constraint_list *list;
1327 if (!build || !graft)
1373 ctx = isl_ast_graft_list_get_ctx(list);
1483 isl_ast_graft_list *children;
1503 if (degenerate < 0 || eliminated < 0)
1526 children = isl_ast_graft_list_free(children);
1594 for (i = 0; i < 4; ++i) {
1598 for (j = 0; j <
n; ++j) {
1744 ma = isl_multi_aff_identity(space);
1750 isl_multi_aff_copy(
ma));
1752 isl_multi_aff_copy(
ma));
1772 *list = isl_basic_set_list_add(*list, bset);
1794 list = isl_basic_set_list_alloc(ctx,
n);
1796 list = isl_basic_set_list_free(list);
1823 int empty, disjoint;
1849 list = isl_ast_graft_list_add(list, graft);
1853 list = isl_ast_graft_list_free(list);
1875 for (l = 0; l <
depth; ++l)
1898 n = isl_basic_set_list_n_basic_set(list);
1904 res = isl_basic_set_list_from_basic_set(bset);
1905 for (i = 0;
res && i <
n; ++i) {
1911 bset = isl_basic_set_list_get_basic_set(list, i);
1917 res = isl_basic_set_list_free(
res);
1920 bset = isl_basic_set_list_get_basic_set(list, i);
1921 res = isl_basic_set_list_add(
res, bset);
1927 bset = isl_basic_set_list_get_basic_set(list, i);
1932 res = isl_basic_set_list_concat(
res,
1936 isl_basic_set_list_free(list);
1999 n = isl_basic_set_list_n_basic_set(scc);
2002 bset = isl_basic_set_list_get_basic_set(scc, 0);
2004 isl_basic_set_list_free(scc);
2017 for (i = 0; i < depth; ++i)
2022 list = isl_basic_set_list_from_basic_set(bset);
2023 for (i = 1; i <
n; ++i) {
2026 bset = isl_basic_set_list_get_basic_set(scc, i);
2030 list = isl_basic_set_list_free(
list);
2032 isl_die(isl_basic_set_list_get_ctx(scc),
2034 "basic sets in scc are assumed to be disjoint",
2035 list = isl_basic_set_list_free(
list));
2041 isl_basic_set_list_free(scc);
2043 data->
list = isl_ast_graft_list_concat(data->
list,
2045 isl_basic_set_list_free(scc);
2049 isl_basic_set_list_free(scc);
2075 n = isl_basic_set_list_n_basic_set(domain_list);
2079 ctx = isl_basic_set_list_get_ctx(domain_list);
2080 data.
list = isl_ast_graft_list_alloc(ctx,
n);
2085 isl_basic_set_list_get_basic_set(domain_list, 0),
2091 if (depth < 0 || isl_basic_set_list_foreach_scc(domain_list,
2094 data.
list = isl_ast_graft_list_free(data.
list);
2104 int depth = *(
int *)
user;
2111 for (l = 0; l < depth; ++l)
2152 isl_ast_graft_list *
list;
2155 n = isl_basic_set_list_n_basic_set(scc);
2157 scc = isl_basic_set_list_free(scc);
2165 data->
list = isl_ast_graft_list_concat(data->
list,
list);
2167 isl_basic_set_list_free(scc);
2197 data.
n = isl_basic_set_list_n_basic_set(domain_list);
2211 if (isl_basic_set_list_foreach_scc(domain_list, &
shared_outer, &depth,
2214 data.
list = isl_ast_graft_list_free(data.
list);
2267 if (depth < 0 || dim < 0)
2386 aff = isl_multi_aff_get_aff(
ma, 0);
2389 isl_multi_aff_free(
ma);
2459 if (data->
n_div < 0)
2461 if (data->
n_div < 0)
2463 if (data->
n_div == 0)
2468 if (n_div >= data->
n_div)
2470 data->
n_div = n_div;
2521 if (better < 0 || !better) {
2528 data->
lower = lower;
2592 "cannot find lower bound for unrolling",
return NULL);
2675 for (i = 0; i <
n; ++i) {
2695 return n < 0 || i <
n ? -1 : 0;
2834 n = isl_basic_set_list_n_basic_set(unroll_list);
2837 for (i = 0; i <
n; ++i) {
2840 bset = isl_basic_set_list_get_basic_set(unroll_list, i);
2848 if (empty >= 0 && empty) {
2856 isl_basic_set_list_free(unroll_list);
2939 if (empty < 0 || empty) {
2941 return empty < 0 ? -1 : 0;
3127 domains.
list = isl_basic_set_list_alloc(ctx, 0);
3148 domains.
list = isl_basic_set_list_free(domains.
list);
3153 domains.
list = isl_basic_set_list_free(domains.
list);
3162 domains.
list = isl_basic_set_list_free(domains.
list);
3170 return domains.
list;
3184 isl_ast_graft_list *
list = NULL;
3189 isl_basic_set_list_free(domain_list);
3209 isl_ast_graft_list *
list;
3218 isl_basic_set_list_free(domain_list);
3244 data->
list = isl_ast_graft_list_alloc(ctx,
n);
3277 data.
list = isl_ast_graft_list_free(data.
list);
3309 if (dim < 0 || depth < 0)
3364 isl_ast_graft_list *
list;
3386 if (outer_disjunction < 0)
3392 domain_list = isl_basic_set_list_from_basic_set(
hull);
3400 isl_basic_set_list_free(domain_list);
3428 if (depth < 0 || dim < 0)
3456 n = isl_ast_graft_list_n_ast_graft(
list);
3458 return isl_ast_graft_list_free(
list);
3462 graft = isl_ast_graft_list_get_ast_graft(
list, 0);
3464 list = isl_ast_graft_list_set_ast_graft(
list, 0, graft);
3483 isl_ast_graft_list *
list;
3498 return isl_ast_graft_list_alloc(ctx, 0);
3531 isl_ast_graft_list *
list, *
res;
3584 isolated, after, empty,
build);
3620 int empty, has_isolate;
3631 if (has_isolate < 0)
3633 else if (!has_isolate)
3661 for (i = 0; i < depth; ++i)
3725 for (i = 1; i <
n; ++i) {
3772 int *order,
int n,
int depth)
3777 for (i = 0; i <
n; ++i) {
3808 for (i =
n - 1; i >= 0; --i) {
3852 for (i = 1; i <
n; ++i) {
3864 if (empty >= 0 && !empty) {
3877 return i <
n ? -1 : first;
3986 for (i = 0; i <
n; ++i) {
3990 v = isl_multi_val_get_val(
offset, i);
4045 isl_ast_graft_list *list;
4057 if (depth < 0 || first < 0)
4060 mv = isl_multi_val_copy(
offset);
4061 val = isl_multi_val_get_val(
offset, first);
4073 zero = isl_multi_aff_zero(space);
4074 ma = isl_multi_aff_range_splice(
ma, depth + 1, zero);
4080 isl_multi_val_free(mv);
4186 isl_ast_graft_list *list;
4194 if (skip >= 0 && !skip)
4196 if (skip >= 0 && !skip) {
4217 for (i = 0; i <
n; ++i) {
4223 for (d = 0; d < depth; ++d)
4240 mv = isl_multi_val_set_val(mv, i, r);
4248 if (fixed && i > base) {
4250 a = isl_multi_val_get_val(mv, i);
4251 b = isl_multi_val_get_val(mv, base);
4271 isl_multi_val_free(mv);
4343 space = isl_multi_union_pw_aff_get_space(
mupa);
4353 if (empty < 0 || !empty) {
4493 for (i = 0; i <
n; ++i) {
4501 if (after < 0 || after)
4544 for (i = 1; i <
n; ++i) {
4558 for (j = 0; j < i; ++j) {
4582 if (after < 0 || after)
4621 "unexpected internal domain node",
4739 if (after < 0 || after)
4776 isl_ast_graft_list *list = NULL;
4801 list = isl_ast_graft_list_alloc(ctx, 0);
4805 isl_ast_graft_list *list_c;
4808 if (g->
order[i] == -1)
4812 while (g->
order[i] != -1) {
4817 g->
order + first, i - first,
4825error: list = isl_ast_graft_list_free(list);
4827 for (i = 0; i < n_domain; ++i) {
4859 if (!build || !executed)
4866 return isl_ast_graft_list_alloc(ctx, 0);
4871 if (depth < 0 || dim < 0)
4979 isl_ast_graft_list *list;
5003 data->
list = isl_ast_graft_list_concat(data->
list, list);
5046 "invalid nested schedule space",
goto error);
5105 data.
list = isl_ast_graft_list_alloc(ctx, 0);
5111 data.
list = isl_ast_graft_list_free(data.
list);
5152 isl_ast_graft_list *
list;
5199 isl_ast_graft_list *
list;
5220 partial = isl_multi_union_pw_aff_copy(partial);
5230 "band node is not allowed to drop statement instances",
5256 isl_ast_graft_list *
list;
5268 extra = isl_multi_union_pw_aff_align_params(extra,
5270 space = isl_multi_union_pw_aff_get_space(extra);
5284 if (n1 < 0 || n2 < 0)
5288 "band node is not allowed to introduce new parameters",
5323 if (n_param < 0 || extra_param < 0)
5324 return isl_ast_graft_list_free(
list);
5326 if (extra_param == n_param)
5329 extra_param -= n_param;
5332 n_param, extra_param);
5336 n_param, extra_param);
5341 list = isl_ast_graft_list_from_ast_graft(graft);
5386 isl_ast_graft_list *
list;
5409 n = isl_ast_graft_list_n_ast_graft(
list);
5411 list = isl_ast_graft_list_free(
list);
5450 if (n1 < 0 || n2 < 0)
5454 "expansion node is not allowed to introduce "
5455 "new parameters",
goto error);
5525 isl_ast_graft_list *
list;
5540 if (n1 < 0 || n2 < 0)
5544 "filter node is not allowed to introduce "
5545 "new parameters",
goto error);
5549 if (unchanged < 0 || empty < 0)
5560 list = isl_ast_graft_list_alloc(ctx, 0);
5595 isl_ast_graft_list *
list;
5603 if (n1 < 0 || n2 < 0)
5607 "guard node is not allowed to introduce "
5624 list = isl_ast_graft_list_free(
list);
5635 return isl_ast_graft_list_from_ast_graft(graft);
5664 if (!graft || !
build)
5696 isl_ast_graft_list *
list;
5707 n = isl_ast_graft_list_n_ast_graft(
list);
5709 list = isl_ast_graft_list_free(
list);
5713 graft = isl_ast_graft_list_get_ast_graft(
list, 0);
5716 list = isl_ast_graft_list_set_ast_graft(
list, 0, graft);
5744 isl_ast_graft_list *
list;
5747 list = isl_ast_graft_list_alloc(ctx, 0);
5751 list = isl_ast_graft_list_free(
list);
5752 for (i = 0; i <
n; ++i) {
5754 isl_ast_graft_list *list_i;
5759 list = isl_ast_graft_list_concat(
list, list_i);
5798 "unexpected internal domain node",
goto error);
5815 "unhandled type",
goto error);
5865 isl_ast_graft_list *
list;
5880 "expecting parametric initial context",
goto error);
5935 "expecting root domain node",
__isl_give isl_aff * isl_aff_add_constant_si(__isl_take isl_aff *aff, int v)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_set_pw_aff(__isl_take isl_pw_multi_aff *pma, unsigned pos, __isl_take isl_pw_aff *pa)
__isl_null isl_aff * isl_aff_free(__isl_take isl_aff *aff)
int isl_pw_aff_plain_cmp(__isl_keep isl_pw_aff *pa1, __isl_keep isl_pw_aff *pa2)
__isl_export __isl_give isl_union_set * isl_multi_union_pw_aff_domain(__isl_take isl_multi_union_pw_aff *mupa)
__isl_export __isl_give isl_aff * isl_aff_neg(__isl_take isl_aff *aff)
__isl_overload __isl_give isl_aff * isl_aff_scale_val(__isl_take isl_aff *aff, __isl_take isl_val *v)
__isl_give isl_val * isl_aff_get_denominator_val(__isl_keep isl_aff *aff)
__isl_null isl_pw_aff * isl_pw_aff_free(__isl_take isl_pw_aff *pwaff)
__isl_overload __isl_give isl_union_map * isl_union_map_from_multi_union_pw_aff(__isl_take isl_multi_union_pw_aff *mupa)
__isl_overload __isl_give isl_aff * isl_aff_scale_down_val(__isl_take isl_aff *aff, __isl_take isl_val *v)
__isl_give isl_aff * isl_aff_copy(__isl_keep isl_aff *aff)
__isl_export __isl_give isl_set * isl_pw_aff_gt_set(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
__isl_export isl_stat isl_pw_multi_aff_foreach_piece(__isl_keep isl_pw_multi_aff *pma, isl_stat(*fn)(__isl_take isl_set *set, __isl_take isl_multi_aff *maff, void *user), void *user)
__isl_export __isl_give isl_aff * isl_aff_floor(__isl_take isl_aff *aff)
__isl_give isl_aff * isl_aff_add_coefficient_si(__isl_take isl_aff *aff, enum isl_dim_type type, int pos, int v)
__isl_give isl_aff * isl_aff_zero_on_domain(__isl_take isl_local_space *ls)
__isl_constructor __isl_give isl_pw_aff * isl_pw_aff_from_aff(__isl_take isl_aff *aff)
isl_size isl_aff_dim(__isl_keep isl_aff *aff, enum isl_dim_type type)
__isl_export __isl_give isl_aff * isl_aff_sub(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
__isl_export __isl_give isl_val * isl_aff_get_constant_val(__isl_keep isl_aff *aff)
isl_bool isl_pw_aff_every_piece(__isl_keep isl_pw_aff *pa, isl_bool(*test)(__isl_keep isl_set *set, __isl_keep isl_aff *aff, void *user), void *user)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_from_map(__isl_take isl_map *map)
__isl_export __isl_give isl_pw_aff * isl_pw_aff_ceil(__isl_take isl_pw_aff *pwaff)
__isl_export __isl_give isl_aff * isl_aff_add(__isl_take isl_aff *aff1, __isl_take isl_aff *aff2)
__isl_null isl_pw_multi_aff * isl_pw_multi_aff_free(__isl_take isl_pw_multi_aff *pma)
__isl_export __isl_give isl_pw_aff * isl_pw_aff_add(__isl_take isl_pw_aff *pwaff1, __isl_take isl_pw_aff *pwaff2)
__isl_export __isl_give isl_aff * isl_aff_ceil(__isl_take isl_aff *aff)
__isl_export __isl_give isl_pw_aff * isl_pw_aff_coalesce(__isl_take isl_pw_aff *pa)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_copy(__isl_keep isl_pw_multi_aff *pma)
__isl_give isl_pw_aff * isl_pw_multi_aff_get_pw_aff(__isl_keep isl_pw_multi_aff *pma, int pos)
__isl_give isl_set * isl_pw_aff_list_le_set(__isl_take isl_pw_aff_list *list1, __isl_take isl_pw_aff_list *list2)
__isl_give isl_pw_aff * isl_pw_aff_copy(__isl_keep isl_pw_aff *pwaff)
__isl_give isl_pw_multi_aff * isl_pw_multi_aff_identity(__isl_take isl_space *space)
struct isl_multi_aff isl_multi_aff
struct isl_multi_union_pw_aff isl_multi_union_pw_aff
__isl_give isl_ast_node * isl_ast_node_set_annotation(__isl_take isl_ast_node *node, __isl_take isl_id *annotation)
__isl_null isl_ast_expr * isl_ast_expr_free(__isl_take isl_ast_expr *expr)
__isl_give isl_ast_expr * isl_ast_expr_from_val(__isl_take isl_val *v)
__isl_null isl_ast_node * isl_ast_node_free(__isl_take isl_ast_node *node)
__isl_give isl_ast_expr * isl_ast_expr_copy(__isl_keep isl_ast_expr *expr)
__isl_give isl_ast_build * isl_ast_build_copy(__isl_keep isl_ast_build *build)
int isl_options_get_ast_build_separation_bounds(isl_ctx *ctx)
int isl_options_get_ast_build_group_coscheduled(isl_ctx *ctx)
__isl_null isl_ast_build * isl_ast_build_free(__isl_take isl_ast_build *build)
int isl_options_get_ast_build_atomic_upper_bound(isl_ctx *ctx)
int isl_options_get_ast_build_scale_strides(isl_ctx *ctx)
isl_ctx * isl_ast_build_get_ctx(__isl_keep isl_ast_build *build)
int isl_options_get_ast_build_exploit_nested_bounds(isl_ctx *ctx)
#define ISL_AST_BUILD_SEPARATION_BOUNDS_EXPLICIT
isl_size isl_constraint_dim(__isl_keep isl_constraint *constraint, enum isl_dim_type type)
__isl_give isl_map * isl_map_add_constraint(__isl_take isl_map *map, __isl_take isl_constraint *constraint)
__isl_give isl_constraint * isl_constraint_set_constant_val(__isl_take isl_constraint *constraint, __isl_take isl_val *v)
__isl_give isl_aff * isl_constraint_get_bound(__isl_keep isl_constraint *constraint, enum isl_dim_type type, int pos)
isl_bool isl_constraint_is_upper_bound(__isl_keep isl_constraint *constraint, enum isl_dim_type type, unsigned pos)
__isl_null isl_constraint * isl_constraint_free(__isl_take isl_constraint *c)
__isl_give isl_constraint * isl_constraint_copy(__isl_keep isl_constraint *c)
__isl_give isl_constraint * isl_constraint_alloc_equality(__isl_take isl_local_space *ls)
__isl_give isl_constraint * isl_equality_from_aff(__isl_take isl_aff *aff)
isl_bool isl_constraint_involves_dims(__isl_keep isl_constraint *constraint, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_basic_set * isl_basic_set_add_constraint(__isl_take isl_basic_set *bset, __isl_take isl_constraint *constraint)
__isl_give isl_constraint_list * isl_basic_set_get_constraint_list(__isl_keep isl_basic_set *bset)
isl_bool isl_constraint_is_lower_bound(__isl_keep isl_constraint *constraint, enum isl_dim_type type, unsigned pos)
isl_stat isl_basic_set_foreach_constraint(__isl_keep isl_basic_set *bset, isl_stat(*fn)(__isl_take isl_constraint *c, void *user), void *user)
__isl_give isl_basic_set * isl_basic_set_from_constraint(__isl_take isl_constraint *constraint)
__isl_give isl_val * isl_constraint_get_coefficient_val(__isl_keep isl_constraint *constraint, enum isl_dim_type type, int pos)
__isl_give isl_set * isl_set_add_constraint(__isl_take isl_set *set, __isl_take isl_constraint *constraint)
isl_stat isl_basic_map_foreach_constraint(__isl_keep isl_basic_map *bmap, isl_stat(*fn)(__isl_take isl_constraint *c, void *user), void *user)
__isl_give isl_constraint * isl_constraint_set_coefficient_si(__isl_take isl_constraint *constraint, enum isl_dim_type type, int pos, int v)
#define isl_die(ctx, errno, msg, code)
isl_bool isl_bool_ok(int b)
#define isl_calloc_array(ctx, type, n)
isl_bool isl_bool_not(isl_bool b)
__isl_export __isl_give ISL_HMAP __isl_take ISL_KEY __isl_take ISL_VAL * val
isl_stat isl_stat(* fn)(__isl_take ISL_KEY *key, __isl_take ISL_VAL *val, void *user)
isl_stat isl_stat(*) void user)
isl_bool isl_bool(* test)(__isl_keep ISL_KEY *key, __isl_keep ISL_VAL *val, void *user)
__isl_null isl_id * isl_id_free(__isl_take isl_id *id)
__isl_export __isl_give isl_val * isl_set_max_val(__isl_keep isl_set *set, __isl_keep isl_aff *obj)
void GMPZAPI() neg(mp_int rop, mp_int op)
void GMPZAPI() gcd(mp_int rop, mp_int op1, mp_int op2)
int GMPQAPI() cmp(mp_rat op1, mp_rat op2)
void GMPQAPI() init(mp_rat x)
__isl_give isl_ast_node * isl_ast_node_for_mark_degenerate(__isl_take isl_ast_node *node)
__isl_give isl_ast_expr * isl_ast_expr_op_add_arg(__isl_take isl_ast_expr *expr, __isl_take isl_ast_expr *arg)
__isl_give isl_ast_expr * isl_ast_expr_alloc_int_si(isl_ctx *ctx, int i)
__isl_give isl_ast_node * isl_ast_node_alloc_for(__isl_take isl_id *id)
__isl_give isl_ast_expr * isl_ast_expr_alloc_binary(enum isl_ast_expr_op_type type, __isl_take isl_ast_expr *expr1, __isl_take isl_ast_expr *expr2)
__isl_give isl_ast_expr * isl_ast_expr_alloc_op(isl_ctx *ctx, enum isl_ast_expr_op_type op, int n_arg)
__isl_give isl_ast_build * isl_ast_build_increase_depth(__isl_take isl_ast_build *build)
__isl_give isl_ast_build * isl_ast_build_set_single_valued(__isl_take isl_ast_build *build, int sv)
int isl_ast_build_has_value(__isl_keep isl_ast_build *build)
__isl_give isl_set * isl_ast_build_eliminate_inner(__isl_keep isl_ast_build *build, __isl_take isl_set *set)
__isl_give isl_aff * isl_ast_build_get_offset(__isl_keep isl_ast_build *build, int pos)
enum isl_ast_loop_type isl_ast_build_get_loop_type(__isl_keep isl_ast_build *build, int isolated)
__isl_give isl_map * isl_ast_build_map_to_iterator(__isl_keep isl_ast_build *build, __isl_take isl_set *set)
__isl_give isl_set * isl_ast_build_specialize(__isl_keep isl_ast_build *build, __isl_take isl_set *set)
isl_bool isl_ast_build_has_stride(__isl_keep isl_ast_build *build, int pos)
__isl_give isl_basic_set * isl_ast_build_compute_gist_basic_set(__isl_keep isl_ast_build *build, __isl_take isl_basic_set *bset)
__isl_give isl_ast_build * isl_ast_build_align_params(__isl_take isl_ast_build *build, __isl_take isl_space *model)
__isl_give isl_ast_build * isl_ast_build_extract_isolated(__isl_take isl_ast_build *build)
__isl_give isl_set * isl_ast_build_eliminate_divs(__isl_keep isl_ast_build *build, __isl_take isl_set *set)
__isl_give isl_ast_build * isl_ast_build_scale_down(__isl_take isl_ast_build *build, __isl_take isl_val *m, __isl_take isl_union_map *umap)
__isl_give isl_pw_aff * isl_ast_build_compute_gist_pw_aff(__isl_keep isl_ast_build *build, __isl_take isl_pw_aff *pa)
__isl_give isl_ast_build * isl_ast_build_detect_strides(__isl_take isl_ast_build *build, __isl_take isl_set *set)
__isl_give isl_ast_build * isl_ast_build_reset_schedule_node(__isl_take isl_ast_build *build)
__isl_give isl_ast_build * isl_ast_build_clear_local_info(__isl_take isl_ast_build *build)
__isl_give isl_set * isl_ast_build_compute_gist(__isl_keep isl_ast_build *build, __isl_take isl_set *set)
__isl_give isl_set * isl_ast_build_get_generated(__isl_keep isl_ast_build *build)
__isl_give isl_aff * isl_ast_build_compute_gist_aff(__isl_keep isl_ast_build *build, __isl_take isl_aff *aff)
__isl_give isl_map * isl_ast_build_get_schedule_map(__isl_keep isl_ast_build *build)
__isl_give isl_union_map * isl_ast_build_substitute_values_union_map_domain(__isl_keep isl_ast_build *build, __isl_take isl_union_map *umap)
int isl_ast_build_has_schedule_node(__isl_keep isl_ast_build *build)
__isl_give isl_map * isl_ast_build_get_separation_class(__isl_keep isl_ast_build *build)
__isl_give isl_ast_build * isl_ast_build_replace_pending_by_guard(__isl_take isl_ast_build *build, __isl_take isl_set *guard)
__isl_give isl_space * isl_ast_build_get_space(__isl_keep isl_ast_build *build, int internal)
int isl_ast_build_has_isolated(__isl_keep isl_ast_build *build)
__isl_give isl_set * isl_ast_build_get_stride_constraint(__isl_keep isl_ast_build *build)
__isl_give isl_val * isl_ast_build_get_stride(__isl_keep isl_ast_build *build, int pos)
__isl_give isl_ast_build * isl_ast_build_set_executed(__isl_take isl_ast_build *build, __isl_take isl_union_map *executed)
__isl_give isl_multi_aff * isl_ast_build_get_stride_expansion(__isl_keep isl_ast_build *build)
isl_size isl_ast_build_get_depth(__isl_keep isl_ast_build *build)
__isl_give isl_set * isl_ast_build_get_domain(__isl_keep isl_ast_build *build)
__isl_give isl_ast_build * isl_ast_build_set_loop_bounds(__isl_take isl_ast_build *build, __isl_take isl_basic_set *bounds)
__isl_give isl_ast_build * isl_ast_build_restrict_generated(__isl_take isl_ast_build *build, __isl_take isl_set *set)
__isl_give isl_set * isl_ast_build_get_option_domain(__isl_keep isl_ast_build *build, enum isl_ast_loop_type type)
__isl_give isl_id * isl_ast_build_get_iterator_id(__isl_keep isl_ast_build *build, int pos)
__isl_give isl_ast_build * isl_ast_build_set_pending_generated(__isl_take isl_ast_build *build, __isl_take isl_basic_set *bounds)
__isl_give isl_set * isl_ast_build_get_isolated(__isl_keep isl_ast_build *build)
__isl_give isl_schedule_node * isl_ast_build_get_schedule_node(__isl_keep isl_ast_build *build)
int isl_ast_build_options_involve_depth(__isl_keep isl_ast_build *build)
__isl_give isl_map * isl_ast_build_compute_gist_map_domain(__isl_keep isl_ast_build *build, __isl_take isl_map *map)
isl_size isl_ast_build_dim(__isl_keep isl_ast_build *build, enum isl_dim_type type)
__isl_give isl_ast_build * isl_ast_build_product(__isl_take isl_ast_build *build, __isl_take isl_space *space)
__isl_give isl_ast_build * isl_ast_build_insert_dim(__isl_take isl_ast_build *build, int pos)
isl_bool isl_ast_build_has_affine_value(__isl_keep isl_ast_build *build, int pos)
__isl_give isl_set * isl_ast_build_get_pending(__isl_keep isl_ast_build *build)
__isl_give isl_set * isl_ast_build_eliminate(__isl_keep isl_ast_build *build, __isl_take isl_set *domain)
__isl_give isl_ast_build * isl_ast_build_set_schedule_node(__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node)
__isl_give isl_basic_set * isl_ast_build_specialize_basic_set(__isl_keep isl_ast_build *build, __isl_take isl_basic_set *bset)
__isl_give isl_multi_aff * isl_ast_build_get_internal2input(__isl_keep isl_ast_build *build)
__isl_give isl_ast_expr * isl_ast_build_expr_from_pw_aff_internal(__isl_keep isl_ast_build *build, __isl_take isl_pw_aff *pa)
__isl_give isl_ast_expr * isl_ast_build_expr_from_set_internal(__isl_keep isl_ast_build *build, __isl_take isl_set *set)
static isl_bool after_in_set(__isl_keep isl_union_map *umap, __isl_keep isl_schedule_node *node)
static isl_bool domain_follows_at_depth(__isl_keep isl_basic_set *i, __isl_keep isl_basic_set *j, void *user)
static __isl_give isl_ast_graft * set_for_cond_from_set(__isl_take isl_ast_graft *graft, __isl_keep isl_set *set, __isl_keep isl_ast_build *build)
static __isl_give isl_set * isl_set_coalesce_preserve(__isl_take isl_set *set)
static isl_stat check_band_schedule_total_on_instances(__isl_keep isl_multi_union_pw_aff *partial, __isl_keep isl_union_map *executed)
__isl_give isl_ast_node * isl_ast_build_node_from_schedule(__isl_keep isl_ast_build *build, __isl_take isl_schedule *schedule)
static __isl_give isl_ast_graft_list * generate_sorted_domains(__isl_keep isl_basic_set_list *domain_list, __isl_keep isl_union_map *executed, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graft_list * generate_shifted_component_tree_unroll(__isl_take isl_union_map *executed, __isl_take isl_set *domain, __isl_take isl_ast_build *build)
static isl_stat count_constraints(__isl_take isl_constraint *c, void *user)
static isl_bool has_pure_outer_disjunction(__isl_keep isl_set *domain, __isl_keep isl_ast_build *build)
static __isl_give isl_union_map * plug_in_values(__isl_take isl_union_map *executed, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graft * refine_generic_split(__isl_take isl_ast_graft *graft, __isl_take isl_constraint_list *list, __isl_keep isl_set *domain, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graft_list * generate_shifted_component_tree_base(__isl_take isl_union_map *executed, __isl_take isl_ast_build *build, int isolated)
static __isl_give isl_ast_graft_list * build_ast_from_filter(__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node, __isl_take isl_union_map *executed)
static __isl_give isl_ast_graft_list * build_ast_from_mark(__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node, __isl_take isl_union_map *executed)
static __isl_give isl_ast_graft_list * build_ast_from_leaf(__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node, __isl_take isl_union_map *executed)
static isl_stat generate_code_in_space(struct isl_generate_code_data *data, __isl_take isl_set *set, __isl_take isl_space *space)
static __isl_give isl_pw_aff_list * upper_bounds(__isl_keep isl_constraint_list *constraints, int pos, __isl_keep isl_set *domain, __isl_keep isl_ast_build *build)
static __isl_give isl_union_map * internal_executed(__isl_take isl_union_map *executed, __isl_keep isl_space *space, __isl_keep isl_ast_build *build)
static __isl_give isl_aff * find_unroll_lower_bound(__isl_keep isl_ast_build *build, __isl_keep isl_set *domain, int depth, __isl_keep isl_basic_map *expansion, int *n)
static __isl_give isl_ast_graft * at_each_domain(__isl_take isl_ast_graft *graft, __isl_keep isl_map *executed, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graft_list * build_ast_from_extension(__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node, __isl_take isl_union_map *executed)
static isl_stat generate_sorted_domains_wrap(__isl_take isl_basic_set_list *scc, void *user)
static int has_anchored_subtree(__isl_keep isl_ast_build *build)
static isl_stat update_n_div(__isl_take isl_set *set, __isl_take isl_multi_aff *ma, void *user)
__isl_give isl_ast_node * isl_ast_build_ast_from_schedule(__isl_keep isl_ast_build *build, __isl_take isl_union_map *schedule)
static isl_bool shared_outer(__isl_keep isl_basic_set *i, __isl_keep isl_basic_set *j, void *user)
static __isl_give isl_ast_graft_list * build_ast_from_context(__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node, __isl_take isl_union_map *executed)
static int foreach_iteration(__isl_take isl_set *domain, __isl_keep isl_ast_build *build, int(*init)(int n, void *user), int(*fn)(__isl_take isl_basic_set *bset, void *user), void *user)
static __isl_give isl_pw_aff * exact_bound(__isl_keep isl_set *domain, __isl_keep isl_ast_build *build, int upper)
static __isl_give isl_ast_graft_list * generate_parallel_domains(__isl_keep isl_basic_set_list *domain_list, __isl_keep isl_union_map *executed, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graft_list * generate_shifted_component_tree_separate(__isl_take isl_union_map *executed, __isl_take isl_ast_build *build)
static isl_bool after_in_tree(__isl_keep isl_union_map *umap, __isl_keep isl_schedule_node *node)
static __isl_give isl_basic_set_list * isl_basic_set_list_from_set(__isl_take isl_set *set)
static isl_stat generate_code_set(__isl_take isl_set *set, void *user)
static __isl_give isl_ast_graft_list * generate_shifted_component_only_after(__isl_take isl_union_map *executed, __isl_take isl_set *isolated, __isl_take isl_set *after, __isl_take isl_ast_build *build, __isl_take isl_set *dead1, __isl_take isl_set *dead2)
static __isl_give isl_ast_node * before_each_for(__isl_take isl_ast_node *node, __isl_keep isl_ast_build *build)
static int constraint_type(isl_constraint *c, int pos)
static __isl_give isl_set * extract_disjunction(__isl_take isl_set *domain, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graft_list * generate_next_level(__isl_take isl_union_map *executed, __isl_take isl_ast_build *build)
static __isl_give isl_ast_graft * set_for_node_expressions(__isl_take isl_ast_graft *graft, __isl_keep isl_pw_aff_list *lower, int use_list, __isl_keep isl_pw_aff_list *upper_list, __isl_keep isl_set *upper_set, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_node * build_ast_from_domain(__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node)
static isl_stat generate_domain(__isl_take isl_map *executed, void *user)
static __isl_give isl_ast_graft * after_each_for(__isl_take isl_ast_graft *graft, __isl_keep isl_ast_build *build)
static int use_upper_bound_list(isl_ctx *ctx, int n_upper, __isl_keep isl_set *domain, int depth)
static int reduce_list_cmp(__isl_keep isl_pw_aff *a, __isl_keep isl_pw_aff *b, void *user)
static __isl_give isl_set * explicit_bounds(__isl_take isl_map *map, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graft_list * generate_code(__isl_take isl_union_map *executed, __isl_take isl_ast_build *build, int internal)
static isl_stat basic_map_check_scaled(__isl_take isl_basic_map *bmap, void *user)
static __isl_give isl_ast_graft_list * build_ast_from_schedule_node(__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node, __isl_take isl_union_map *executed)
static int do_unroll_tree_iteration(__isl_take isl_basic_set *bset, void *user)
static __isl_give isl_ast_graft * set_for_cond_from_list(__isl_take isl_ast_graft *graft, __isl_keep isl_pw_aff_list *list, __isl_keep isl_ast_build *build)
static isl_bool aff_constant_is_negative(__isl_keep isl_set *set, __isl_keep isl_aff *aff, void *user)
static int cmp_constraint(__isl_keep isl_constraint *a, __isl_keep isl_constraint *b, void *user)
static isl_stat compute_class_domains(__isl_take isl_point *pnt, void *user)
static __isl_give isl_ast_graft * create_node(__isl_take isl_union_map *executed, __isl_take isl_basic_set *bounds, __isl_take isl_set *domain, __isl_take isl_ast_build *build)
static __isl_give isl_basic_set * extract_shared_enforced(__isl_keep isl_ast_graft_list *list, __isl_keep isl_ast_build *build)
static int is_better_lower_bound(struct isl_find_unroll_data *data, __isl_keep isl_aff *lower, __isl_keep isl_val *n)
__isl_give isl_ast_node * isl_ast_build_node_from_schedule_map(__isl_keep isl_ast_build *build, __isl_take isl_union_map *schedule)
static __isl_give isl_ast_graft_list * generate_shifted_component_flat(__isl_take isl_union_map *executed, __isl_take isl_ast_build *build)
static isl_bool after_in_filter(__isl_keep isl_union_map *umap, __isl_keep isl_schedule_node *node)
static __isl_give isl_union_set * child_filter(__isl_keep isl_schedule_node *node, int i)
static isl_stat update_unrolling_lower_bound(struct isl_find_unroll_data *data, __isl_keep isl_constraint *c)
static int dim_is_fixed(__isl_keep isl_set *set, int pos)
static __isl_give isl_pw_aff_list * lower_bounds(__isl_keep isl_constraint_list *constraints, int pos, __isl_keep isl_set *domain, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graft_list * build_ast_from_child(__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node, __isl_take isl_union_map *executed)
static __isl_give isl_ast_graft * set_enforced_from_list(__isl_take isl_ast_graft *graft, __isl_keep isl_pw_aff_list *lower, __isl_keep isl_pw_aff_list *upper)
static int init_unroll_tree(int n, void *user)
static __isl_give isl_ast_graft * after_each_mark(__isl_take isl_ast_graft *graft, __isl_keep isl_ast_build *build)
static isl_bool pw_aff_constant_is_negative(__isl_keep isl_pw_aff *pa, void *user)
static isl_stat generate_non_single_valued(__isl_take isl_map *executed, struct isl_generate_domain_data *data)
static __isl_give isl_ast_graft_list * add_node(__isl_take isl_ast_graft_list *list, __isl_take isl_union_map *executed, __isl_take isl_basic_set *bounds, __isl_take isl_ast_build *build)
static int do_unroll_iteration(__isl_take isl_basic_set *bset, void *user)
static __isl_give isl_pw_aff_list * remove_redundant_lower_bounds(__isl_take isl_pw_aff_list *list, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graft_list * generate_components(__isl_take isl_union_map *executed, __isl_take isl_ast_build *build)
static int eliminate_non_fixed(struct isl_set_map_pair *domain, int *order, int n, int depth, __isl_keep isl_ast_build *build)
static __isl_give isl_constraint * at_offset(int depth, __isl_keep isl_aff *aff, int offset)
static isl_bool after_in_extension(__isl_keep isl_union_map *umap, __isl_keep isl_schedule_node *node)
static isl_stat separate_domain(__isl_take isl_map *map, void *user)
static isl_stat collect_basic_set(__isl_take isl_basic_set *bset, void *user)
static __isl_give isl_ast_graft * set_enforced_from_set(__isl_take isl_ast_graft *graft, __isl_keep isl_pw_aff_list *lower, int pos, __isl_keep isl_set *upper)
static __isl_give isl_set * extract_pending(__isl_keep isl_ast_build *build, __isl_keep isl_basic_set *enforced)
static __isl_give isl_set * compute_atomic_domain(struct isl_codegen_domains *domains, __isl_take isl_set *class_domain)
static __isl_give isl_ast_graft_list * generate_shift_component(struct isl_set_map_pair *domain, int *order, int n, __isl_keep isl_val *stride, __isl_keep isl_multi_val *offset, __isl_take isl_ast_build *build)
static __isl_give isl_union_map * construct_shifted_executed(struct isl_set_map_pair *domain, int *order, int n, __isl_keep isl_val *stride, __isl_keep isl_multi_val *offset, __isl_keep isl_ast_build *build)
static isl_bool after_in_context(__isl_keep isl_union_map *umap, __isl_keep isl_schedule_node *node)
static __isl_give isl_ast_graft * create_node_scaled(__isl_take isl_union_map *executed, __isl_take isl_basic_set *bounds, __isl_take isl_set *domain, __isl_take isl_ast_build *build)
static __isl_give isl_set * separate_schedule_domains(__isl_take isl_space *space, __isl_take isl_union_map *executed, __isl_keep isl_ast_build *build)
static isl_bool after_in_child(__isl_keep isl_union_map *umap, __isl_keep isl_schedule_node *node)
static __isl_give isl_ast_node * create_for(__isl_keep isl_ast_build *build, int degenerate)
static __isl_give isl_ast_graft_list * hoist_out_of_context(__isl_take isl_ast_graft_list *list, __isl_keep isl_ast_build *build, __isl_keep isl_ast_build *sub_build)
static __isl_give isl_ast_graft_list * build_ast_from_band(__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node, __isl_take isl_union_map *executed)
static isl_bool only_intersects_first(__isl_keep isl_set *set, __isl_keep isl_set *first, __isl_keep isl_set *second)
static __isl_give isl_ast_graft_list * generate_shifted_component(__isl_take isl_union_map *executed, __isl_take isl_ast_build *build)
static int list_constant_is_negative(__isl_keep isl_pw_aff_list *list)
static __isl_give isl_ast_expr * reduce_list(enum isl_ast_expr_op_type type, __isl_keep isl_pw_aff_list *list, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graft_list * build_ast_from_sequence(__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node, __isl_take isl_union_map *executed)
static int first_offset(struct isl_set_map_pair *domain, int *order, int n, __isl_keep isl_ast_build *build)
static isl_stat map_check_scaled(__isl_take isl_map *map, void *user)
static __isl_give isl_ast_graft_list * generate_component(struct isl_set_map_pair *domain, int *order, int n, __isl_take isl_ast_build *build)
static isl_bool after_in_sequence(__isl_keep isl_union_map *umap, __isl_keep isl_schedule_node *node)
static __isl_give isl_basic_set_list * compute_domains(__isl_keep isl_union_map *executed, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graft_list * build_ast_from_guard(__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node, __isl_take isl_union_map *executed)
static __isl_give isl_ast_expr * for_inc(__isl_keep isl_ast_build *build)
static __isl_give isl_set * do_unroll(struct isl_codegen_domains *domains, __isl_take isl_set *domain, __isl_take isl_set *class_domain)
static __isl_give isl_set * intersect_constraints(__isl_keep isl_constraint_list *list)
static isl_stat add_domain(__isl_take isl_map *executed, __isl_take isl_map *map, struct isl_generate_domain_data *data)
static __isl_give isl_ast_graft_list * generate_shifted_component_tree_part(__isl_keep isl_union_map *executed, __isl_take isl_set *domain, __isl_keep isl_ast_build *build, int isolated)
static isl_stat extract_domain(__isl_take isl_map *map, void *user)
static void compute_domains_init_options(isl_set *option[4], __isl_keep isl_ast_build *build)
static isl_stat add_nodes(__isl_take isl_basic_set_list *scc, void *user)
static __isl_give isl_ast_graft_list * list_add_guard(__isl_take isl_ast_graft_list *list, __isl_keep isl_set *guard, __isl_keep isl_ast_build *build, __isl_keep isl_ast_build *sub_build)
static int at_most_one_non_fixed(struct isl_set_map_pair *domain, int *order, int n, int depth)
static __isl_give isl_ast_graft * refine_degenerate(__isl_take isl_ast_graft *graft, __isl_keep isl_ast_build *build, __isl_keep isl_ast_build *sub_build)
static __isl_give isl_ast_graft * refine_generic_bounds(__isl_take isl_ast_graft *graft, __isl_take isl_constraint_list *c_lower, __isl_take isl_constraint_list *c_upper, __isl_keep isl_set *domain, __isl_keep isl_ast_build *build)
static int compute_separate_domain(struct isl_codegen_domains *domains, __isl_keep isl_set *class_domain)
static int get_expanded_n_div(struct isl_find_unroll_data *data, __isl_keep isl_aff *lower)
static __isl_give isl_set * add_implied_guards(__isl_take isl_set *guard, int degenerate, __isl_keep isl_basic_set *bounds, __isl_keep isl_ast_build *build)
static isl_stat compute_partial_domains(struct isl_codegen_domains *domains, __isl_take isl_set *class_domain)
static __isl_give isl_ast_graft_list * generate_inner_level(__isl_take isl_union_map *executed, __isl_take isl_ast_build *build)
static __isl_give isl_ast_graft_list * build_ast_from_expansion(__isl_take isl_ast_build *build, __isl_take isl_schedule_node *node, __isl_take isl_union_map *executed)
static __isl_give isl_pw_aff_list * list_add_one(__isl_take isl_pw_aff_list *list, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graft_list * call_create_leaf(__isl_take isl_union_map *executed, __isl_take isl_ast_build *build)
static __isl_give isl_set * implicit_bounds(__isl_take isl_map *map, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graft_list * generate_shifted_component_tree(__isl_take isl_union_map *executed, __isl_take isl_ast_build *build)
static isl_bool after_in_expansion(__isl_keep isl_union_map *umap, __isl_keep isl_schedule_node *node)
static __isl_give isl_aff * lower_bound(__isl_keep isl_constraint *c, int pos, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graft * refine_generic(__isl_take isl_ast_graft *graft, __isl_keep isl_basic_set *bounds, __isl_keep isl_set *domain, __isl_keep isl_ast_build *build)
static isl_stat constraint_check_scaled(__isl_take isl_constraint *c, void *user)
static isl_stat constraint_find_unroll(__isl_take isl_constraint *c, void *user)
static __isl_give isl_basic_set_list * add_split_on(__isl_take isl_basic_set_list *list, __isl_take isl_basic_set *bset, __isl_keep isl_basic_map *gt)
static isl_bool after_in_band(__isl_keep isl_union_map *umap, __isl_keep isl_schedule_node *node)
static __isl_give isl_set * compute_unroll_domains(struct isl_codegen_domains *domains, __isl_take isl_set *class_domain)
static isl_bool any_scheduled_after(int i, int j, void *user)
static __isl_give isl_union_map * construct_component_executed(struct isl_set_map_pair *domain, int *order, int n)
static __isl_give isl_ast_graft_list * generate_shifted_component_from_list(struct isl_set_map_pair *domain, int *order, int n, __isl_take isl_ast_build *build)
static isl_bool after_in_subtree(__isl_keep isl_ast_build *build, __isl_keep isl_map *map1, __isl_keep isl_map *map2)
static isl_stat before_each_mark(__isl_keep isl_id *mark, __isl_keep isl_ast_build *build)
static __isl_give isl_ast_graft_list * generate_shifted_component_parts(__isl_take isl_union_map *executed, __isl_take isl_set *before, __isl_take isl_set *isolated, __isl_take isl_set *after, __isl_take isl_set *other, __isl_take isl_ast_build *build)
__isl_give isl_set * isl_ast_graft_list_extract_hoistable_guard(__isl_keep isl_ast_graft_list *list, __isl_keep isl_ast_build *build)
__isl_give isl_ast_graft * isl_ast_graft_insert_mark(__isl_take isl_ast_graft *graft, __isl_take isl_id *mark)
__isl_give isl_ast_graft_list * isl_ast_graft_list_preimage_multi_aff(__isl_take isl_ast_graft_list *list, __isl_take isl_multi_aff *ma)
__isl_give isl_ast_graft_list * isl_ast_graft_list_merge(__isl_take isl_ast_graft_list *list1, __isl_take isl_ast_graft_list *list2, __isl_keep isl_ast_build *build)
__isl_give isl_ast_node * isl_ast_node_from_graft_list(__isl_take isl_ast_graft_list *list, __isl_keep isl_ast_build *build)
__isl_give isl_ast_graft_list * isl_ast_graft_list_group_on_guard(__isl_take isl_ast_graft_list *list, __isl_keep isl_ast_build *build)
__isl_null isl_ast_graft * isl_ast_graft_free(__isl_take isl_ast_graft *graft)
__isl_give isl_ast_graft * isl_ast_graft_alloc_from_children(__isl_take isl_ast_graft_list *list, __isl_take isl_set *guard, __isl_take isl_basic_set *enforced, __isl_keep isl_ast_build *build, __isl_keep isl_ast_build *sub_build)
__isl_give isl_ast_graft_list * isl_ast_graft_list_gist_guards(__isl_take isl_ast_graft_list *list, __isl_take isl_set *context)
__isl_give isl_basic_set * isl_ast_graft_list_extract_shared_enforced(__isl_keep isl_ast_graft_list *list, __isl_keep isl_ast_build *build)
__isl_give isl_ast_graft * isl_ast_graft_insert_for(__isl_take isl_ast_graft *graft, __isl_take isl_ast_node *node)
__isl_give isl_ast_graft_list * isl_ast_graft_list_sort_guard(__isl_take isl_ast_graft_list *list)
__isl_give isl_ast_graft * isl_ast_graft_enforce(__isl_take isl_ast_graft *graft, __isl_take isl_basic_set *enforced)
__isl_give isl_ast_graft_list * isl_ast_graft_list_insert_pending_guard_nodes(__isl_take isl_ast_graft_list *list, __isl_keep isl_ast_build *build)
__isl_give isl_ast_graft * isl_ast_graft_add_guard(__isl_take isl_ast_graft *graft, __isl_take isl_set *guard, __isl_keep isl_ast_build *build)
__isl_give isl_ast_graft_list * isl_ast_graft_list_fuse(__isl_take isl_ast_graft_list *list, __isl_keep isl_ast_build *build)
__isl_give isl_ast_graft_list * isl_ast_graft_list_unembed(__isl_take isl_ast_graft_list *list, int product)
isl_ctx * isl_ast_graft_get_ctx(__isl_keep isl_ast_graft *graft)
__isl_give isl_ast_graft * isl_ast_graft_alloc(__isl_take isl_ast_node *node, __isl_keep isl_ast_build *build)
__isl_give isl_ast_graft * isl_ast_graft_alloc_domain(__isl_take isl_map *executed, __isl_keep isl_ast_build *build)
__isl_give isl_ast_node * isl_ast_node_for_set_init(__isl_take isl_ast_node *node, __isl_take isl_ast_expr *init)
__isl_give isl_ast_node * isl_ast_node_for_set_inc(__isl_take isl_ast_node *node, __isl_take isl_ast_expr *init)
__isl_give isl_ast_node * isl_ast_node_for_set_cond(__isl_take isl_ast_node *node, __isl_take isl_ast_expr *init)
static int before(void *first, void *second)
static unsigned pos(__isl_keep isl_space *space, enum isl_dim_type type)
#define isl_basic_set_list
static struct isl_arg_choice bound[]
enum isl_schedule_node_type isl_schedule_node_get_type(__isl_keep isl_schedule_node *node)
struct isl_tarjan_graph * isl_tarjan_graph_free(struct isl_tarjan_graph *g)
struct isl_tarjan_graph * isl_tarjan_graph_init(isl_ctx *ctx, int len, isl_bool(*follows)(int i, int j, void *user), void *user)
static __isl_give isl_map * universe(__isl_take isl_map *map)
static __isl_give isl_space * identity(__isl_take isl_space *space)
__isl_give isl_local_space * isl_local_space_from_space(__isl_take isl_space *space)
__isl_export __isl_give isl_map * isl_map_domain_product(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_export __isl_give isl_map * isl_map_intersect_range(__isl_take isl_map *map, __isl_take isl_set *set)
__isl_export isl_bool isl_basic_map_is_empty(__isl_keep isl_basic_map *bmap)
__isl_give isl_basic_map * isl_basic_map_equate(__isl_take isl_basic_map *bmap, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2)
__isl_export __isl_give isl_set * isl_map_domain(__isl_take isl_map *bmap)
isl_bool isl_map_plain_is_single_valued(__isl_keep isl_map *map)
__isl_export isl_bool isl_map_is_single_valued(__isl_keep isl_map *map)
__isl_export __isl_give isl_map * isl_map_apply_domain(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_give isl_map * isl_map_eliminate(__isl_take isl_map *map, enum isl_dim_type type, unsigned first, unsigned n)
__isl_export isl_bool isl_map_is_empty(__isl_keep isl_map *map)
__isl_export __isl_give isl_map * isl_map_universe(__isl_take isl_space *space)
__isl_give isl_map * isl_map_copy(__isl_keep isl_map *map)
__isl_export __isl_give isl_map * isl_set_identity(__isl_take isl_set *set)
__isl_give isl_map * isl_map_lex_gt(__isl_take isl_space *set_space)
__isl_null isl_basic_map * isl_basic_map_free(__isl_take isl_basic_map *bmap)
__isl_give isl_map * isl_map_from_domain_and_range(__isl_take isl_set *domain, __isl_take isl_set *range)
__isl_give isl_map * isl_map_drop_constraints_involving_dims(__isl_take isl_map *map, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_map * isl_map_order_gt(__isl_take isl_map *map, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2)
__isl_give isl_map * isl_map_fix_val(__isl_take isl_map *map, enum isl_dim_type type, unsigned pos, __isl_take isl_val *v)
__isl_export __isl_give isl_map * isl_map_intersect_domain(__isl_take isl_map *map, __isl_take isl_set *set)
__isl_export isl_stat isl_map_foreach_basic_map(__isl_keep isl_map *map, isl_stat(*fn)(__isl_take isl_basic_map *bmap, void *user), void *user)
__isl_export __isl_give isl_set * isl_map_deltas(__isl_take isl_map *map)
__isl_export __isl_give isl_map * isl_map_lexmin(__isl_take isl_map *map)
__isl_export __isl_give isl_pw_multi_aff * isl_map_lexmin_pw_multi_aff(__isl_take isl_map *map)
__isl_give isl_map * isl_map_order_lt(__isl_take isl_map *map, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2)
isl_size isl_map_dim(__isl_keep isl_map *map, enum isl_dim_type type)
__isl_give isl_basic_map * isl_basic_map_order_ge(__isl_take isl_basic_map *bmap, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2)
__isl_export __isl_give isl_basic_map * isl_basic_map_intersect_domain(__isl_take isl_basic_map *bmap, __isl_take isl_basic_set *bset)
__isl_export __isl_give isl_map * isl_map_reverse(__isl_take isl_map *map)
__isl_export __isl_give isl_pw_multi_aff * isl_map_lexmax_pw_multi_aff(__isl_take isl_map *map)
__isl_give isl_basic_map * isl_basic_map_order_gt(__isl_take isl_basic_map *bmap, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2)
__isl_give isl_map * isl_map_equate(__isl_take isl_map *map, enum isl_dim_type type1, int pos1, enum isl_dim_type type2, int pos2)
__isl_export __isl_give isl_map * isl_map_product(__isl_take isl_map *map1, __isl_take isl_map *map2)
__isl_export __isl_give isl_map * isl_map_coalesce(__isl_take isl_map *map)
__isl_give isl_map * isl_map_identity(__isl_take isl_space *space)
__isl_give isl_map * isl_map_insert_dims(__isl_take isl_map *map, enum isl_dim_type type, unsigned pos, unsigned n)
__isl_null isl_map * isl_map_free(__isl_take isl_map *map)
__isl_constructor __isl_give isl_map * isl_map_from_basic_map(__isl_take isl_basic_map *bmap)
__isl_export __isl_give isl_basic_map * isl_basic_map_intersect_range(__isl_take isl_basic_map *bmap, __isl_take isl_basic_set *bset)
__isl_give isl_basic_map * isl_basic_map_copy(__isl_keep isl_basic_map *bmap)
__isl_give isl_basic_map * isl_basic_map_from_domain_and_range(__isl_take isl_basic_set *domain, __isl_take isl_basic_set *range)
__isl_give isl_basic_map * isl_basic_map_from_multi_aff(__isl_take isl_multi_aff *maff)
__isl_export __isl_give isl_set * isl_map_range(__isl_take isl_map *map)
__isl_give isl_basic_set * isl_basic_map_range(__isl_take isl_basic_map *bmap)
__isl_give isl_basic_map * isl_basic_map_universe(__isl_take isl_space *space)
__isl_give isl_map * isl_map_from_multi_aff(__isl_take isl_multi_aff *maff)
struct isl_basic_set isl_basic_set
int isl_options_get_coalesce_preserve_locals(isl_ctx *ctx)
isl_stat isl_options_set_coalesce_preserve_locals(isl_ctx *ctx, int val)
__isl_export __isl_give isl_schedule_node * isl_schedule_get_root(__isl_keep isl_schedule *schedule)
__isl_null isl_schedule * isl_schedule_free(__isl_take isl_schedule *sched)
__isl_export isl_size isl_schedule_node_band_n_member(__isl_keep isl_schedule_node *node)
__isl_export __isl_give isl_multi_union_pw_aff * isl_schedule_node_band_get_partial_schedule(__isl_keep isl_schedule_node *node)
__isl_export isl_size isl_schedule_node_n_children(__isl_keep isl_schedule_node *node)
__isl_export __isl_give isl_union_map * isl_schedule_node_expansion_get_expansion(__isl_keep isl_schedule_node *node)
__isl_export isl_size isl_schedule_node_get_tree_depth(__isl_keep isl_schedule_node *node)
__isl_export __isl_give isl_union_map * isl_schedule_node_extension_get_extension(__isl_keep isl_schedule_node *node)
__isl_export __isl_give isl_union_set * isl_schedule_node_domain_get_domain(__isl_keep isl_schedule_node *node)
__isl_give isl_id * isl_schedule_node_mark_get_id(__isl_keep isl_schedule_node *node)
__isl_export isl_bool isl_schedule_node_is_subtree_anchored(__isl_keep isl_schedule_node *node)
__isl_export __isl_give isl_union_set * isl_schedule_node_filter_get_filter(__isl_keep isl_schedule_node *node)
__isl_export __isl_give isl_set * isl_schedule_node_context_get_context(__isl_keep isl_schedule_node *node)
__isl_export __isl_give isl_union_map * isl_schedule_node_get_prefix_schedule_union_map(__isl_keep isl_schedule_node *node)
__isl_null isl_schedule_node * isl_schedule_node_free(__isl_take isl_schedule_node *node)
__isl_export __isl_give isl_set * isl_schedule_node_guard_get_guard(__isl_keep isl_schedule_node *node)
isl_ctx * isl_schedule_node_get_ctx(__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_get_child(__isl_keep isl_schedule_node *node, int pos)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_child(__isl_take isl_schedule_node *node, int pos)
@ isl_schedule_node_filter
@ isl_schedule_node_domain
@ isl_schedule_node_guard
@ isl_schedule_node_extension
@ isl_schedule_node_expansion
@ isl_schedule_node_sequence
@ isl_schedule_node_error
@ isl_schedule_node_context
__isl_export __isl_give isl_set * isl_set_universe(__isl_take isl_space *space)
__isl_export __isl_give isl_basic_set * isl_set_unshifted_simple_hull(__isl_take isl_set *set)
__isl_export __isl_give isl_set * isl_set_coalesce(__isl_take isl_set *set)
__isl_give isl_basic_set * isl_basic_set_drop_constraints_not_involving_dims(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned first, unsigned n)
__isl_export __isl_give isl_set * isl_set_subtract(__isl_take isl_set *set1, __isl_take isl_set *set2)
isl_bool isl_set_dim_has_upper_bound(__isl_keep isl_set *set, enum isl_dim_type type, unsigned pos)
isl_ctx * isl_set_get_ctx(__isl_keep isl_set *set)
__isl_give isl_set * isl_set_make_disjoint(__isl_take isl_set *set)
__isl_export __isl_give isl_space * isl_set_get_space(__isl_keep isl_set *set)
__isl_export __isl_give isl_set * isl_set_detect_equalities(__isl_take isl_set *set)
__isl_give isl_val * isl_set_plain_get_val_if_fixed(__isl_keep isl_set *set, enum isl_dim_type type, unsigned pos)
__isl_give isl_space * isl_basic_set_get_space(__isl_keep isl_basic_set *bset)
__isl_constructor __isl_give isl_set * isl_set_from_point(__isl_take isl_point *pnt)
__isl_export __isl_give isl_set * isl_set_union(__isl_take isl_set *set1, __isl_take isl_set *set2)
__isl_overload __isl_give isl_set * isl_set_preimage_multi_aff(__isl_take isl_set *set, __isl_take isl_multi_aff *ma)
__isl_give isl_basic_set * isl_basic_set_preimage_multi_aff(__isl_take isl_basic_set *bset, __isl_take isl_multi_aff *ma)
__isl_give isl_basic_set * isl_basic_set_project_out(__isl_take isl_basic_set *bset, enum isl_dim_type type, unsigned first, unsigned n)
__isl_export isl_bool isl_set_is_disjoint(__isl_keep isl_set *set1, __isl_keep isl_set *set2)
__isl_give isl_set * isl_set_eliminate(__isl_take isl_set *set, enum isl_dim_type type, unsigned first, unsigned n)
__isl_null isl_basic_set * isl_basic_set_free(__isl_take isl_basic_set *bset)
__isl_give isl_basic_set * isl_set_simple_hull(__isl_take isl_set *set)
isl_bool isl_basic_set_is_disjoint(__isl_keep isl_basic_set *bset1, __isl_keep isl_basic_set *bset2)
__isl_null isl_set * isl_set_free(__isl_take isl_set *set)
int isl_set_follows_at(__isl_keep isl_set *set1, __isl_keep isl_set *set2, int pos)
__isl_overload __isl_give isl_set * isl_set_preimage_pw_multi_aff(__isl_take isl_set *set, __isl_take isl_pw_multi_aff *pma)
__isl_give isl_set * isl_set_remove_divs_involving_dims(__isl_take isl_set *set, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_set * isl_set_drop_constraints_not_involving_dims(__isl_take isl_set *set, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_set * isl_set_remove_unknown_divs(__isl_take isl_set *set)
__isl_export __isl_give isl_set * isl_set_apply(__isl_take isl_set *set, __isl_take isl_map *map)
__isl_give isl_set * isl_set_copy(__isl_keep isl_set *set)
__isl_give isl_basic_set * isl_basic_set_remove_redundancies(__isl_take isl_basic_set *bset)
__isl_give isl_set * isl_set_project_out(__isl_take isl_set *set, enum isl_dim_type type, unsigned first, unsigned n)
__isl_export __isl_give isl_set * isl_set_gist(__isl_take isl_set *set, __isl_take isl_set *context)
__isl_export isl_stat isl_set_foreach_point(__isl_keep isl_set *set, isl_stat(*fn)(__isl_take isl_point *pnt, void *user), void *user)
__isl_give isl_set * isl_set_compute_divs(__isl_take isl_set *set)
isl_bool isl_set_plain_is_equal(__isl_keep isl_set *set1, __isl_keep isl_set *set2)
isl_bool isl_set_is_params(__isl_keep isl_set *set)
__isl_export isl_stat isl_set_foreach_basic_set(__isl_keep isl_set *set, isl_stat(*fn)(__isl_take isl_basic_set *bset, void *user), void *user)
__isl_export __isl_give isl_basic_set * isl_basic_set_apply(__isl_take isl_basic_set *bset, __isl_take isl_basic_map *bmap)
__isl_give isl_basic_set * isl_set_plain_unshifted_simple_hull(__isl_take isl_set *set)
isl_size isl_set_dim(__isl_keep isl_set *set, enum isl_dim_type type)
isl_stat isl_set_dim_residue_class_val(__isl_keep isl_set *set, int pos, __isl_give isl_val **modulo, __isl_give isl_val **residue)
__isl_give isl_set * isl_set_align_params(__isl_take isl_set *set, __isl_take isl_space *model)
__isl_export isl_bool isl_basic_set_is_empty(__isl_keep isl_basic_set *bset)
__isl_export isl_size isl_set_n_basic_set(__isl_keep isl_set *set)
__isl_export __isl_give isl_set * isl_set_intersect(__isl_take isl_set *set1, __isl_take isl_set *set2)
__isl_export __isl_give isl_set * isl_set_empty(__isl_take isl_space *space)
__isl_constructor __isl_give isl_set * isl_set_from_basic_set(__isl_take isl_basic_set *bset)
__isl_give isl_basic_set * isl_basic_set_copy(__isl_keep isl_basic_set *bset)
__isl_export __isl_give isl_basic_set * isl_basic_set_intersect(__isl_take isl_basic_set *bset1, __isl_take isl_basic_set *bset2)
__isl_give isl_basic_set * isl_basic_set_universe(__isl_take isl_space *space)
__isl_give isl_set * isl_set_drop_constraints_involving_dims(__isl_take isl_set *set, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_basic_set * isl_basic_set_remove_unknown_divs(__isl_take isl_basic_set *bset)
isl_bool isl_set_plain_is_disjoint(__isl_keep isl_set *set1, __isl_keep isl_set *set2)
__isl_export isl_bool isl_set_is_empty(__isl_keep isl_set *set)
__isl_null isl_space * isl_space_free(__isl_take isl_space *space)
__isl_give isl_space * isl_space_from_domain(__isl_take isl_space *space)
__isl_give isl_space * isl_space_insert_dims(__isl_take isl_space *space, enum isl_dim_type type, unsigned pos, unsigned n)
__isl_give isl_space * isl_space_set_from_params(__isl_take isl_space *space)
__isl_give isl_space * isl_space_copy(__isl_keep isl_space *space)
__isl_give isl_space * isl_space_align_params(__isl_take isl_space *space1, __isl_take isl_space *space2)
__isl_export __isl_give isl_space * isl_space_range(__isl_take isl_space *space)
isl_bool isl_space_is_params(__isl_keep isl_space *space)
__isl_export __isl_give isl_space * isl_space_unwrap(__isl_take isl_space *space)
__isl_give isl_space * isl_space_set_alloc(isl_ctx *ctx, unsigned nparam, unsigned dim)
__isl_export __isl_give isl_space * isl_space_map_from_set(__isl_take isl_space *space)
isl_size isl_space_dim(__isl_keep isl_space *space, enum isl_dim_type type)
__isl_give isl_space * isl_space_add_dims(__isl_take isl_space *space, enum isl_dim_type type, unsigned n)
isl_bool isl_space_is_domain(__isl_keep isl_space *space1, __isl_keep isl_space *space2)
__isl_export __isl_give isl_space * isl_space_domain(__isl_take isl_space *space)
isl_ast_graft_list * list
struct isl_set_map_pair * domain
__isl_give isl_id *(* before_each_for)(__isl_keep isl_ast_build *context, void *user)
void * before_each_for_user
__isl_give isl_ast_node *(* after_each_for)(__isl_take isl_ast_node *node, __isl_keep isl_ast_build *context, void *user)
isl_stat(* before_each_mark)(__isl_keep isl_id *mark, __isl_keep isl_ast_build *build, void *user)
void * after_each_for_user
void * after_each_mark_user
void * before_each_mark_user
__isl_give isl_ast_node *(* after_each_mark)(__isl_take isl_ast_node *node, __isl_keep isl_ast_build *context, void *user)
isl_multi_aff * internal2input
__isl_give isl_ast_node *(* create_leaf)(__isl_take isl_ast_build *build, void *user)
isl_ast_graft_list * list
struct isl_codegen_domains * domains
isl_ast_graft_list * list
isl_basic_set_list * list
isl_set * schedule_domain
isl_basic_map * expansion
isl_ast_graft_list * list
isl_ast_graft_list * list
__isl_null isl_union_map * isl_union_map_free(__isl_take isl_union_map *umap)
__isl_export __isl_give isl_space * isl_union_map_get_space(__isl_keep isl_union_map *umap)
__isl_export __isl_give isl_union_map * isl_union_map_reverse(__isl_take isl_union_map *umap)
__isl_export __isl_give isl_union_map * isl_union_map_domain_product(__isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2)
__isl_give isl_union_map * isl_union_map_add_map(__isl_take isl_union_map *umap, __isl_take isl_map *map)
__isl_give isl_union_map * isl_union_map_align_params(__isl_take isl_union_map *umap, __isl_take isl_space *model)
__isl_export isl_stat isl_union_map_foreach_map(__isl_keep isl_union_map *umap, isl_stat(*fn)(__isl_take isl_map *map, void *user), void *user)
__isl_overload __isl_give isl_union_map * isl_union_map_preimage_domain_multi_aff(__isl_take isl_union_map *umap, __isl_take isl_multi_aff *ma)
__isl_give isl_union_set * isl_union_set_align_params(__isl_take isl_union_set *uset, __isl_take isl_space *model)
__isl_export __isl_give isl_union_map * isl_union_map_coalesce(__isl_take isl_union_map *umap)
__isl_export __isl_give isl_union_map * isl_union_map_apply_range(__isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2)
__isl_give isl_union_map * isl_union_map_copy(__isl_keep isl_union_map *umap)
__isl_export isl_bool isl_union_map_is_empty(__isl_keep isl_union_map *umap)
__isl_export __isl_give isl_union_set * isl_union_map_range(__isl_take isl_union_map *umap)
__isl_export __isl_give isl_union_map * isl_union_map_apply_domain(__isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2)
__isl_give isl_union_map * isl_union_map_empty(__isl_take isl_space *space)
__isl_constructor __isl_give isl_union_map * isl_union_map_from_map(__isl_take isl_map *map)
__isl_give isl_union_map * isl_union_map_remove_redundancies(__isl_take isl_union_map *umap)
__isl_export __isl_give isl_union_map * isl_union_map_union(__isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2)
__isl_give isl_union_map * isl_union_map_intersect_domain(__isl_take isl_union_map *umap, __isl_take isl_union_set *uset)
isl_ctx * isl_union_map_get_ctx(__isl_keep isl_union_map *umap)
isl_size isl_union_map_dim(__isl_keep isl_union_map *umap, enum isl_dim_type type)
__isl_export isl_bool isl_union_map_is_subset(__isl_keep isl_union_map *umap1, __isl_keep isl_union_map *umap2)
isl_size isl_union_map_n_map(__isl_keep isl_union_map *umap)
__isl_export __isl_give isl_union_map * isl_union_map_detect_equalities(__isl_take isl_union_map *umap)
__isl_export __isl_give isl_union_map * isl_union_map_from_domain_and_range(__isl_take isl_union_set *domain, __isl_take isl_union_set *range)
__isl_export __isl_give isl_union_set * isl_union_map_domain(__isl_take isl_union_map *umap)
__isl_export __isl_give isl_union_map * isl_union_map_intersect_params(__isl_take isl_union_map *umap, __isl_take isl_set *set)
__isl_export __isl_give isl_union_map * isl_union_map_universe(__isl_take isl_union_map *umap)
__isl_export __isl_give isl_union_map * isl_union_map_intersect(__isl_take isl_union_map *umap1, __isl_take isl_union_map *umap2)
__isl_give isl_union_map * isl_union_map_intersect_range(__isl_take isl_union_map *umap, __isl_take isl_union_set *uset)
struct isl_union_set isl_union_set
__isl_give isl_set * isl_set_from_union_set(__isl_take isl_union_set *uset)
__isl_export isl_stat isl_union_set_foreach_set(__isl_keep isl_union_set *uset, isl_stat(*fn)(__isl_take isl_set *set, void *user), void *user)
__isl_constructor __isl_give isl_union_set * isl_union_set_from_basic_set(__isl_take isl_basic_set *bset)
__isl_export __isl_give isl_space * isl_union_set_get_space(__isl_keep isl_union_set *uset)
__isl_constructor __isl_give isl_union_set * isl_union_set_from_set(__isl_take isl_set *set)
__isl_export __isl_give isl_union_set * isl_union_set_coalesce(__isl_take isl_union_set *uset)
__isl_give isl_union_set * isl_union_set_copy(__isl_keep isl_union_set *uset)
__isl_null isl_union_set * isl_union_set_free(__isl_take isl_union_set *uset)
__isl_export isl_bool isl_union_set_is_subset(__isl_keep isl_union_set *uset1, __isl_keep isl_union_set *uset2)
__isl_export isl_bool isl_val_is_nan(__isl_keep isl_val *v)
__isl_give isl_multi_val * isl_multi_val_mod_val(__isl_take isl_multi_val *mv, __isl_take isl_val *v)
__isl_give isl_val * isl_val_copy(__isl_keep isl_val *v)
__isl_export int isl_val_cmp_si(__isl_keep isl_val *v, long i)
__isl_give isl_val * isl_val_set_si(__isl_take isl_val *v, long i)
__isl_export isl_bool isl_val_is_infty(__isl_keep isl_val *v)
__isl_export __isl_give isl_val * isl_val_div(__isl_take isl_val *v1, __isl_take isl_val *v2)
__isl_overload __isl_give isl_multi_val * isl_multi_val_add_val(__isl_take isl_multi_val *mv, __isl_take isl_val *v)
__isl_export __isl_give isl_val * isl_val_gcd(__isl_take isl_val *v1, __isl_take isl_val *v2)
__isl_export isl_bool isl_val_is_divisible_by(__isl_keep isl_val *v1, __isl_keep isl_val *v2)
__isl_export isl_bool isl_val_is_neg(__isl_keep isl_val *v)
__isl_null isl_val * isl_val_free(__isl_take isl_val *v)
__isl_export isl_bool isl_val_is_zero(__isl_keep isl_val *v)
__isl_export isl_bool isl_val_ne(__isl_keep isl_val *v1, __isl_keep isl_val *v2)
__isl_export isl_bool isl_val_is_one(__isl_keep isl_val *v)
__isl_export __isl_give isl_val * isl_val_neg(__isl_take isl_val *v)
__isl_export long isl_val_get_num_si(__isl_keep isl_val *v)
struct isl_multi_val isl_multi_val