93 isl_ast_graft_list *list;
102 data->
list = isl_ast_graft_list_concat(data->
list, list);
113 if (!graft || !build)
115 if (!build->at_each_domain)
124 graft->node = build->at_each_domain(graft->node,
125 build, build->at_each_domain_user);
154 isl_ast_graft_list *list;
173 list = isl_ast_graft_list_from_ast_graft(graft);
174 data->
list = isl_ast_graft_list_concat(data->
list, list);
273 return isl_ast_graft_list_from_ast_graft(graft);
298 if (!
build || !executed)
312 data.
list = isl_ast_graft_list_alloc(ctx, 0);
314 data.
list = isl_ast_graft_list_free(data.
list);
317error: data.
list = NULL;
344 if (!graft || !
build)
511 n = isl_pw_aff_list_n_pw_aff(
list);
513 return isl_pw_aff_list_free(
list);
519 for (i =
n - 1; i >= 0; --i) {
525 pa_i = isl_pw_aff_list_get_pw_aff(
list, i);
527 for (j = 0; j <
n; ++j) {
534 pa_j = isl_pw_aff_list_get_pw_aff(
list, j);
548 list = isl_pw_aff_list_drop(
list, i, 1);
557 return isl_pw_aff_list_free(
list);
576 isl_pw_aff_list *
list;
583 n = isl_constraint_list_n_constraint(constraints);
589 return isl_pw_aff_list_from_pw_aff(
pa);
593 list = isl_pw_aff_list_alloc(ctx,
n);
595 for (i = 0; i <
n; ++i) {
599 c = isl_constraint_list_get_constraint(constraints, i);
621 isl_pw_aff_list *
list;
625 n = isl_constraint_list_n_constraint(constraints);
631 return isl_pw_aff_list_from_pw_aff(
pa);
635 list = isl_pw_aff_list_alloc(ctx,
n);
637 for (i = 0; i <
n; ++i) {
641 c = isl_constraint_list_get_constraint(constraints, i);
668 n = isl_pw_aff_list_n_pw_aff(
list);
674 isl_pw_aff_list_get_pw_aff(
list, 0));
676 ctx = isl_pw_aff_list_get_ctx(
list);
684 for (i = 0; i <
n; ++i) {
688 isl_pw_aff_list_get_pw_aff(
list, i));
692 isl_pw_aff_list_free(
list);
718 if (depth < 0 || has_stride < 0)
720 if (!has_stride && !degenerate)
764 if (!graft || !sub_build)
786 n = isl_constraint_list_n_constraint(
list);
791 "expecting at least one constraint",
return NULL);
794 isl_constraint_list_get_constraint(
list, 0));
795 for (i = 1; i <
n; ++i) {
799 isl_constraint_list_get_constraint(
list, i));
844 n = isl_pw_aff_list_n_pw_aff(lower);
854 for (i = 0; i <
n; ++i) {
860 pa = isl_pw_aff_list_get_pw_aff(lower, i);
892 lower = isl_pw_aff_list_copy(lower);
893 upper = isl_pw_aff_list_copy(upper);
943 n = isl_pw_aff_list_n_pw_aff(
list);
945 return isl_pw_aff_list_free(
list);
952 for (i = 0; i <
n; ++i) {
954 pa = isl_pw_aff_list_get_pw_aff(
list, i);
956 list = isl_pw_aff_list_set_pw_aff(
list, i,
pa);
1002 isl_pw_aff_list_free(
list);
1086 int use_list,
__isl_keep isl_pw_aff_list *upper_list,
1148 isl_pw_aff_list *lower;
1151 isl_pw_aff_list *upper_list = NULL;
1155 if (!graft || !c_lower || !c_upper || depth < 0)
1160 n_lower = isl_constraint_list_n_constraint(c_lower);
1161 n_upper = isl_constraint_list_n_constraint(c_upper);
1162 if (n_lower < 0 || n_upper < 0)
1171 else if (n_upper > 0)
1176 if (n_lower == 0 || n_upper == 0)
1186 isl_pw_aff_list_free(lower);
1187 isl_pw_aff_list_free(upper_list);
1189 isl_constraint_list_free(c_lower);
1190 isl_constraint_list_free(c_upper);
1194 isl_constraint_list_free(c_lower);
1195 isl_constraint_list_free(c_upper);
1253 isl_constraint_list *lower;
1254 isl_constraint_list *upper;
1258 list = isl_constraint_list_free(list);
1270 isl_constraint_list_free(list);
1274 lower = isl_constraint_list_drop(list, 0, data.
n_indep);
1275 upper = isl_constraint_list_copy(lower);
1276 lower = isl_constraint_list_drop(lower, data.
n_lower, data.
n_upper);
1277 upper = isl_constraint_list_drop(upper, 0, data.
n_lower);
1298 isl_constraint_list *list;
1300 if (!build || !graft)
1346 ctx = isl_ast_graft_list_get_ctx(list);
1456 isl_ast_graft_list *children;
1476 if (degenerate < 0 || eliminated < 0)
1499 children = isl_ast_graft_list_free(children);
1567 for (i = 0; i < 4; ++i) {
1571 for (j = 0; j <
n; ++j) {
1717 ma = isl_multi_aff_identity(space);
1723 isl_multi_aff_copy(
ma));
1725 isl_multi_aff_copy(
ma));
1745 *list = isl_basic_set_list_add(*list, bset);
1767 list = isl_basic_set_list_alloc(ctx,
n);
1769 list = isl_basic_set_list_free(list);
1796 int empty, disjoint;
1822 list = isl_ast_graft_list_add(list, graft);
1826 list = isl_ast_graft_list_free(list);
1848 for (l = 0; l <
depth; ++l)
1871 n = isl_basic_set_list_n_basic_set(list);
1877 res = isl_basic_set_list_from_basic_set(bset);
1878 for (i = 0;
res && i <
n; ++i) {
1884 bset = isl_basic_set_list_get_basic_set(list, i);
1890 res = isl_basic_set_list_free(
res);
1893 bset = isl_basic_set_list_get_basic_set(list, i);
1894 res = isl_basic_set_list_add(
res, bset);
1900 bset = isl_basic_set_list_get_basic_set(list, i);
1905 res = isl_basic_set_list_concat(
res,
1909 isl_basic_set_list_free(list);
1972 n = isl_basic_set_list_n_basic_set(scc);
1975 bset = isl_basic_set_list_get_basic_set(scc, 0);
1977 isl_basic_set_list_free(scc);
1990 for (i = 0; i < depth; ++i)
1995 list = isl_basic_set_list_from_basic_set(bset);
1996 for (i = 1; i <
n; ++i) {
1999 bset = isl_basic_set_list_get_basic_set(scc, i);
2003 list = isl_basic_set_list_free(
list);
2005 isl_die(isl_basic_set_list_get_ctx(scc),
2007 "basic sets in scc are assumed to be disjoint",
2008 list = isl_basic_set_list_free(
list));
2014 isl_basic_set_list_free(scc);
2016 data->
list = isl_ast_graft_list_concat(data->
list,
2018 isl_basic_set_list_free(scc);
2022 isl_basic_set_list_free(scc);
2048 n = isl_basic_set_list_n_basic_set(domain_list);
2052 ctx = isl_basic_set_list_get_ctx(domain_list);
2053 data.
list = isl_ast_graft_list_alloc(ctx,
n);
2058 isl_basic_set_list_get_basic_set(domain_list, 0),
2064 if (depth < 0 || isl_basic_set_list_foreach_scc(domain_list,
2067 data.
list = isl_ast_graft_list_free(data.
list);
2077 int depth = *(
int *)
user;
2084 for (l = 0; l < depth; ++l)
2125 isl_ast_graft_list *
list;
2128 n = isl_basic_set_list_n_basic_set(scc);
2130 scc = isl_basic_set_list_free(scc);
2138 data->
list = isl_ast_graft_list_concat(data->
list,
list);
2140 isl_basic_set_list_free(scc);
2170 data.
n = isl_basic_set_list_n_basic_set(domain_list);
2184 if (isl_basic_set_list_foreach_scc(domain_list, &
shared_outer, &depth,
2187 data.
list = isl_ast_graft_list_free(data.
list);
2240 if (depth < 0 || dim < 0)
2359 aff = isl_multi_aff_get_aff(
ma, 0);
2362 isl_multi_aff_free(
ma);
2432 if (data->
n_div < 0)
2434 if (data->
n_div < 0)
2436 if (data->
n_div == 0)
2441 if (n_div >= data->
n_div)
2443 data->
n_div = n_div;
2494 if (better < 0 || !better) {
2501 data->
lower = lower;
2565 "cannot find lower bound for unrolling",
return NULL);
2648 for (i = 0; i <
n; ++i) {
2668 return n < 0 || i <
n ? -1 : 0;
2807 n = isl_basic_set_list_n_basic_set(unroll_list);
2810 for (i = 0; i <
n; ++i) {
2813 bset = isl_basic_set_list_get_basic_set(unroll_list, i);
2821 if (empty >= 0 && empty) {
2829 isl_basic_set_list_free(unroll_list);
2912 if (empty < 0 || empty) {
2914 return empty < 0 ? -1 : 0;
3100 domains.
list = isl_basic_set_list_alloc(ctx, 0);
3121 domains.
list = isl_basic_set_list_free(domains.
list);
3126 domains.
list = isl_basic_set_list_free(domains.
list);
3135 domains.
list = isl_basic_set_list_free(domains.
list);
3143 return domains.
list;
3157 isl_ast_graft_list *
list = NULL;
3162 isl_basic_set_list_free(domain_list);
3182 isl_ast_graft_list *
list;
3191 isl_basic_set_list_free(domain_list);
3217 data->
list = isl_ast_graft_list_alloc(ctx,
n);
3250 data.
list = isl_ast_graft_list_free(data.
list);
3282 if (dim < 0 || depth < 0)
3337 isl_ast_graft_list *
list;
3359 if (outer_disjunction < 0)
3365 domain_list = isl_basic_set_list_from_basic_set(
hull);
3373 isl_basic_set_list_free(domain_list);
3401 if (depth < 0 || dim < 0)
3429 n = isl_ast_graft_list_n_ast_graft(
list);
3431 return isl_ast_graft_list_free(
list);
3435 graft = isl_ast_graft_list_get_ast_graft(
list, 0);
3437 list = isl_ast_graft_list_set_ast_graft(
list, 0, graft);
3456 isl_ast_graft_list *
list;
3471 return isl_ast_graft_list_alloc(ctx, 0);
3504 isl_ast_graft_list *
list, *
res;
3557 isolated, after, empty,
build);
3593 int empty, has_isolate;
3604 if (has_isolate < 0)
3606 else if (!has_isolate)
3634 for (i = 0; i < depth; ++i)
3698 for (i = 1; i <
n; ++i) {
3745 int *order,
int n,
int depth)
3750 for (i = 0; i <
n; ++i) {
3781 for (i =
n - 1; i >= 0; --i) {
3825 for (i = 1; i <
n; ++i) {
3837 if (empty >= 0 && !empty) {
3850 return i <
n ? -1 : first;
3959 for (i = 0; i <
n; ++i) {
3963 v = isl_multi_val_get_val(
offset, i);
4018 isl_ast_graft_list *list;
4030 if (depth < 0 || first < 0)
4033 mv = isl_multi_val_copy(
offset);
4034 val = isl_multi_val_get_val(
offset, first);
4046 zero = isl_multi_aff_zero(space);
4047 ma = isl_multi_aff_range_splice(
ma, depth + 1, zero);
4053 isl_multi_val_free(mv);
4159 isl_ast_graft_list *list;
4167 if (skip >= 0 && !skip)
4169 if (skip >= 0 && !skip) {
4190 for (i = 0; i <
n; ++i) {
4196 for (d = 0; d < depth; ++d)
4213 mv = isl_multi_val_set_val(mv, i, r);
4221 if (fixed && i > base) {
4223 a = isl_multi_val_get_val(mv, i);
4224 b = isl_multi_val_get_val(mv, base);
4244 isl_multi_val_free(mv);
4316 space = isl_multi_union_pw_aff_get_space(
mupa);
4326 if (empty < 0 || !empty) {
4466 for (i = 0; i <
n; ++i) {
4474 if (after < 0 || after)
4517 for (i = 1; i <
n; ++i) {
4531 for (j = 0; j < i; ++j) {
4555 if (after < 0 || after)
4594 "unexpected internal domain node",
4712 if (after < 0 || after)
4749 isl_ast_graft_list *list = NULL;
4774 list = isl_ast_graft_list_alloc(ctx, 0);
4778 isl_ast_graft_list *list_c;
4781 if (g->
order[i] == -1)
4785 while (g->
order[i] != -1) {
4790 g->
order + first, i - first,
4798error: list = isl_ast_graft_list_free(list);
4800 for (i = 0; i < n_domain; ++i) {
4832 if (!build || !executed)
4839 return isl_ast_graft_list_alloc(ctx, 0);
4844 if (depth < 0 || dim < 0)
4952 isl_ast_graft_list *list;
4976 data->
list = isl_ast_graft_list_concat(data->
list, list);
5019 "invalid nested schedule space",
goto error);
5078 data.
list = isl_ast_graft_list_alloc(ctx, 0);
5084 data.
list = isl_ast_graft_list_free(data.
list);
5125 isl_ast_graft_list *
list;
5169 isl_ast_graft_list *
list;
5190 partial = isl_multi_union_pw_aff_copy(partial);
5200 "band node is not allowed to drop statement instances",
5226 isl_ast_graft_list *
list;
5238 extra = isl_multi_union_pw_aff_align_params(extra,
5240 space = isl_multi_union_pw_aff_get_space(extra);
5254 if (n1 < 0 || n2 < 0)
5258 "band node is not allowed to introduce new parameters",
5293 if (n_param < 0 || extra_param < 0)
5294 return isl_ast_graft_list_free(
list);
5296 if (extra_param == n_param)
5299 extra_param -= n_param;
5302 n_param, extra_param);
5306 n_param, extra_param);
5311 list = isl_ast_graft_list_from_ast_graft(graft);
5356 isl_ast_graft_list *
list;
5379 n = isl_ast_graft_list_n_ast_graft(
list);
5381 list = isl_ast_graft_list_free(
list);
5420 if (n1 < 0 || n2 < 0)
5424 "expansion node is not allowed to introduce "
5425 "new parameters",
goto error);
5495 isl_ast_graft_list *
list;
5510 if (n1 < 0 || n2 < 0)
5514 "filter node is not allowed to introduce "
5515 "new parameters",
goto error);
5519 if (unchanged < 0 || empty < 0)
5530 list = isl_ast_graft_list_alloc(ctx, 0);
5565 isl_ast_graft_list *
list;
5573 if (n1 < 0 || n2 < 0)
5577 "guard node is not allowed to introduce "
5594 list = isl_ast_graft_list_free(
list);
5605 return isl_ast_graft_list_from_ast_graft(graft);
5634 if (!graft || !
build)
5666 isl_ast_graft_list *
list;
5677 n = isl_ast_graft_list_n_ast_graft(
list);
5679 list = isl_ast_graft_list_free(
list);
5683 graft = isl_ast_graft_list_get_ast_graft(
list, 0);
5686 list = isl_ast_graft_list_set_ast_graft(
list, 0, graft);
5714 isl_ast_graft_list *
list;
5717 list = isl_ast_graft_list_alloc(ctx, 0);
5721 list = isl_ast_graft_list_free(
list);
5722 for (i = 0; i <
n; ++i) {
5724 isl_ast_graft_list *list_i;
5729 list = isl_ast_graft_list_concat(
list, list_i);
5768 "unexpected internal domain node",
goto error);
5785 "unhandled type",
goto error);
5835 isl_ast_graft_list *
list;
5850 "expecting parametric initial context",
goto error);
5904 "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)
int GMPQAPI cmp(mp_rat op1, mp_rat op2)
void GMPZAPI neg(mp_int rop, mp_int op)
void GMPZAPI gcd(mp_int rop, mp_int op1, mp_int 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)
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_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)
static int cmp_constraint(__isl_keep isl_constraint *a, __isl_keep isl_constraint *b, void *user)
__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_stat add_domain(__isl_take isl_map *executed, struct isl_generate_domain_data *data)
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_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)
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)
__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