28 __isl_take isl_schedule_tree_list *ancestors,
int *child_pos)
35 n = isl_schedule_tree_list_n_schedule_tree(ancestors);
38 if (
n > 0 && !child_pos)
51 for (i = 0; i <
n; ++i)
58 isl_schedule_tree_list_free(ancestors);
152 n = isl_schedule_tree_list_n_schedule_tree(node->ancestors);
157 parent = isl_schedule_tree_list_get_schedule_tree(node->ancestors,
pos);
195 isl_schedule_tree_list_copy(node->ancestors),
236 isl_schedule_tree_list_free(node->ancestors);
237 free(node->child_pos);
254 if (!node1 || !node2)
258 if (node1->schedule != node2->schedule)
263 if (n1 < 0 || n2 < 0)
267 for (i = 0; i < n1; ++i)
268 if (node1->child_pos[i] != node2->child_pos[i])
289 n = isl_schedule_tree_list_n_schedule_tree(node->ancestors);
292 for (i =
n - 1; i >= 0; --i) {
296 tree = isl_schedule_tree_list_get_schedule_tree(
380 data->
prefix = isl_multi_union_pw_aff_flat_range_product(
498 isl_multi_union_pw_aff_free(data->
prefix);
499 mupa = isl_multi_union_pw_aff_reset_tuple_id(
mupa,
501 data->
prefix = isl_multi_union_pw_aff_copy(
mupa);
588 data->
prefix = isl_multi_union_pw_aff_flat_range_product(
mupa,
640 for (i =
n - 1; i >= 0; --i) {
645 tree = isl_schedule_tree_list_get_schedule_tree(list, i);
695 if (node->tree == node->schedule->root)
705 n = isl_schedule_tree_list_n_schedule_tree(node->ancestors);
747 if (node->tree == node->schedule->root)
758 n = isl_schedule_tree_list_n_schedule_tree(node->ancestors);
765 if (data.
prefix && dim == 0) {
766 isl_multi_union_pw_aff_free(data.
prefix);
814 if (node->tree == node->schedule->root)
825 n = isl_schedule_tree_list_n_schedule_tree(node->ancestors);
832 if (data.
prefix && dim == 0) {
833 isl_multi_union_pw_aff_free(data.
prefix);
864 if (node->tree == node->schedule->root) {
878 n = isl_schedule_tree_list_n_schedule_tree(node->ancestors);
903 if (node->tree == node->schedule->root) {
917 n = isl_schedule_tree_list_n_schedule_tree(node->ancestors);
964 return isl_schedule_tree_list_n_schedule_tree(node->ancestors);
998 n = isl_schedule_tree_list_n_schedule_tree(node->ancestors);
1014 if (has_parent < 0 || !has_parent)
1017 n = isl_schedule_tree_list_n_schedule_tree(node->ancestors);
1036 if (has_parent < 0 || !has_parent)
1039 n = isl_schedule_tree_list_n_schedule_tree(node->ancestors);
1042 tree = isl_schedule_tree_list_get_schedule_tree(node->ancestors,
n - 1);
1048 return isl_bool_ok(node->child_pos[
n - 1] + 1 < n_child);
1105 if (generation == 0)
1110 if (generation < 0 || generation >
n)
1112 "generation out of bounds",
1118 tree = isl_schedule_tree_list_get_schedule_tree(node->ancestors,
1122 node->ancestors = isl_schedule_tree_list_drop(node->ancestors,
1123 n - generation, generation);
1124 if (!node->ancestors || !node->tree)
1139 "node has no parent",
1183 "node has no children",
1187 n = isl_schedule_tree_list_n_schedule_tree(node->ancestors);
1193 node->child_pos = child_pos;
1194 node->child_pos[
n] =
pos;
1196 node->ancestors = isl_schedule_tree_list_add(node->ancestors,
1206 if (!node->tree || !node->ancestors)
1246 "node has no previous sibling",
1249 n = isl_schedule_tree_list_n_schedule_tree(node->ancestors);
1252 parent = isl_schedule_tree_list_get_schedule_tree(node->ancestors,
1256 node->child_pos[
n - 1]--;
1257 tree = isl_schedule_tree_list_get_schedule_tree(parent->
children,
1258 node->child_pos[
n - 1]);
1282 "node has no next sibling",
1285 n = isl_schedule_tree_list_n_schedule_tree(node->ancestors);
1288 parent = isl_schedule_tree_list_get_schedule_tree(node->ancestors,
1292 node->child_pos[
n - 1]++;
1293 tree = isl_schedule_tree_list_get_schedule_tree(parent->
children,
1294 node->child_pos[
n - 1]);
1334 node = enter(node,
user);
1335 node = leave(node,
user);
1340 node = leave(node,
user);
1344 if (node_depth > depth)
1346 }
while (node_depth > depth);
1382 r = data->
fn(node, data->
user);
1516 return data->
fn(node, data->
user);
1555 for (i = 0; i <
n; ++i) {
1613 if (c == coincident)
1695 "not a band node",
return NULL);
1825 mv_space = isl_multi_val_get_space(mv);
1834 "spaces don't match",
return -1);
1857 "cannot scale band node with anchored subtree",
1864 isl_multi_val_free(mv);
1887 "cannot scale down band node with anchored subtree",
1894 isl_multi_val_free(mv);
1917 "cannot perform mod on band node with anchored subtree",
1924 isl_multi_val_free(mv);
1940 mupa_space = isl_multi_union_pw_aff_get_space(
mupa);
1963 if (!node || !shift)
1972 "cannot shift band node with anchored subtree",
1979 isl_multi_union_pw_aff_free(shift);
2013 if (!node || !
sizes)
2020 "cannot tile band node with anchored subtree",
2030 isl_multi_val_free(
sizes);
2072 "cannot sink band node in anchored subtree",
2166 if (!node || !contraction || !expansion)
2171 contraction, expansion);
2198 if (!node || !extension)
2228 if (!node || !filter)
2251 if (!node || !filter)
2322 "not a sequence node",
goto error);
2361 for (i = 0; i <
n; ++i) {
2396 for (i =
n - 1; i >= 0; --i) {
2449 n = isl_schedule_tree_list_n_schedule_tree(node->ancestors);
2454 for (i =
n - 1; i >= 0; --i) {
2457 parent = isl_schedule_tree_list_get_schedule_tree(
2458 node->ancestors, i);
2460 node->child_pos[i],
tree);
2465 node->ancestors = isl_schedule_tree_list_set_schedule_tree(
2481 if (!node->schedule || !node->ancestors)
2527 "cannot insert node outside of root",
return -1);
2534 "cannot insert node between set or sequence node "
2535 "and its filter children",
return -1);
2562 "cannot insert band node in anchored subtree",
2573 isl_multi_union_pw_aff_free(
mupa);
2709 isl_schedule_tree_list *list;
2714 n = isl_union_set_list_n_union_set(filters);
2719 list = isl_schedule_tree_list_alloc(ctx,
n);
2720 for (i = 0; i <
n; ++i) {
2725 filter = isl_union_set_list_get_union_set(filters, i);
2732 list = isl_schedule_tree_list_add(list,
tree);
2737 isl_union_set_list_free(filters);
2740 isl_union_set_list_free(filters);
2793 "cannot cut child of set or sequence",
2817 if (depth < 0 ||
n < 0)
2822 "cannot delete root node",
2826 "can only delete node with a single child",
2831 "cannot delete child of set or sequence",
2842 "cannot delete band node with anchored subtree",
2935 if (is_covered >= 0 && is_covered) {
2946 if (depth < 0 ||
n < 0)
2948 ma = isl_multi_aff_copy(data->
sched);
2953 has_id = isl_multi_union_pw_aff_has_tuple_id(partial,
isl_dim_set);
2955 partial = isl_multi_union_pw_aff_free(partial);
2956 }
else if (has_id) {
2958 id = isl_multi_union_pw_aff_get_tuple_id(partial,
isl_dim_set);
2959 mupa = isl_multi_union_pw_aff_set_tuple_id(
mupa,
3018 if (n1 < 0 || n2 < 0)
3029 "grouping cannot only refer to global parameters",
3052 data->
sched = isl_multi_aff_align_params(data->
sched,
3056 data->
sched = isl_multi_aff_free(data->
sched);
3057 data->
sched = isl_multi_aff_drop_dims(data->
sched,
3088 "grouped domain should be part of outer domain",
3130 "grouped domain should be part "
3131 "of outer expansion domain",
3156 contraction, expansion);
3195 "grouping not allowed in extended tree",
3267 if (depth < 0 || !group_id)
3278 if (data.
dim == 0) {
3299 prefix = isl_multi_union_pw_aff_set_tuple_id(prefix,
3301 space = isl_multi_union_pw_aff_get_space(prefix);
3313 data.
sched = isl_multi_aff_identity(space);
3331 isl_multi_aff_free(data.
sched);
3337 if (!node || disjoint < 0)
3341 "group instances already reach node",
3394 n = isl_union_set_list_n_union_set(data->
filters);
3397 inner = isl_union_set_list_get_union_set(data->
filters,
n - 1);
3407 inner = isl_union_set_list_get_union_set(data->
filters,
n - 1);
3411 contraction, expansion);
3441 n = isl_union_set_list_n_union_set(data->
filters);
3464 n = isl_union_set_list_n_union_set(data->
filters);
3467 inner = isl_union_set_list_get_union_set(data->
filters,
n - 1);
3494 outer = isl_union_set_list_get_union_set(data->
filters, 0);
3564 n = isl_union_set_list_n_union_set(data->
filters);
3565 if (
n < 0 || done < 0 || done) {
3568 if (
n < 0 || done < 0)
3572 inner = isl_union_set_list_get_union_set(data->
filters,
n - 1);
3636 n = isl_union_set_list_n_union_set(data->
filters);
3643 n = isl_union_set_list_n_union_set(data->
filters);
3646 filter = isl_union_set_list_get_union_set(data->
filters,
n - 1);
3655 for (i =
n - 1; i >= 0; --i) {
3677 }
else if (
n == 0) {
3681 isl_union_set_list_get_union_set(data->
filters, 0);
3719 isl_union_set_list_free(data.
filters);
3839 n = isl_union_map_list_n_union_map(data->
expansions);
3844 isl_union_map_list_get_union_map(data->
expansions,
3848 isl_union_map_list_add(data->
expansions, inner);
3851 n = isl_union_map_list_n_union_map(data->
expansions);
3858 isl_union_map_list_get_union_map(data->
expansions,
3862 isl_union_map_list_set_union_map(data->
expansions,
3908 n = isl_union_map_list_n_union_map(data->
expansions);
3916 n = isl_union_map_list_n_union_map(data->
expansions);
3920 inner = isl_union_map_list_get_union_map(data->
expansions,
3965 data.
expansions = isl_union_map_list_from_union_map(expansion);
4024 n = isl_union_pw_multi_aff_list_n_union_pw_multi_aff(
4028 isl_union_pw_multi_aff_list_free(
4031 isl_union_pw_multi_aff_list_get_union_pw_multi_aff(
4040 n = isl_union_pw_multi_aff_list_n_union_pw_multi_aff(
4044 isl_union_pw_multi_aff_list_free(
4049 isl_union_pw_multi_aff_list_get_union_pw_multi_aff(
4053 inner, contraction);
4055 isl_union_pw_multi_aff_list_set_union_pw_multi_aff(
4101 n = isl_union_pw_multi_aff_list_n_union_pw_multi_aff(
4111 n = isl_union_pw_multi_aff_list_n_union_pw_multi_aff(
4116 inner = isl_union_pw_multi_aff_list_get_union_pw_multi_aff(
4162 isl_union_pw_multi_aff_list_from_union_pw_multi_aff(contraction);
4188 n_ancestor = isl_schedule_tree_list_n_schedule_tree(node->ancestors);
4194 for (i = 0; i <
n; ++i) {
4198 tree = isl_schedule_tree_list_get_schedule_tree(node->ancestors,
4199 n_ancestor - 1 - i);
4272 "extension domain should be disjoint from earlier "
4295 "extension domain should be disjoint from "
4300 if (disjoint >= 0 && disjoint) {
4468 if (depth < 0 || anchored < 0)
4472 "cannot graft anchored tree with domain root",
4526 if (!node || !graft)
4538 "expecting domain or extension as root of graft",
4605 isl_union_set *node_domain, *node_filter = NULL, *parent_filter;
4611 if (!node || !filter)
4627 if (empty1 < 0 || empty2 < 0)
4629 if (empty1 || empty2) {
4783 if (empty >= 0 && !empty) {
4821 if (!node || !contraction || !
tree)
4854 if (n1 < 0 || n2 < 0)
4857 if (node->schedule != ancestor->schedule)
4864 tree = isl_schedule_tree_list_get_schedule_tree(node->ancestors, n1);
4866 if (
tree != ancestor->tree)
4870 return node->child_pos[n1];
4893 if (n1 < 0 || n2 < 0)
4895 if (node1->schedule != node2->schedule)
4897 "not part of same schedule",
return NULL);
4905 for (i = 0; i < n1; ++i)
4906 if (node1->child_pos[i] != node2->child_pos[i])
4922 n = isl_schedule_tree_list_n_schedule_tree(node->ancestors);
polly Polly Forward operand tree
__isl_null isl_union_pw_multi_aff * isl_union_pw_multi_aff_free(__isl_take isl_union_pw_multi_aff *upma)
__isl_export __isl_give isl_union_set * isl_multi_union_pw_aff_domain(__isl_take isl_multi_union_pw_aff *mupa)
isl_size isl_union_pw_multi_aff_dim(__isl_keep isl_union_pw_multi_aff *upma, enum isl_dim_type type)
__isl_overload __isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_pullback_union_pw_multi_aff(__isl_take isl_union_pw_multi_aff *upma1, __isl_take isl_union_pw_multi_aff *upma2)
__isl_export __isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_union_add(__isl_take isl_union_pw_multi_aff *upma1, __isl_take isl_union_pw_multi_aff *upma2)
__isl_overload __isl_give isl_multi_union_pw_aff * isl_multi_union_pw_aff_pullback_union_pw_multi_aff(__isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_union_pw_multi_aff *upma)
__isl_overload __isl_give isl_union_map * isl_union_map_from_multi_union_pw_aff(__isl_take isl_multi_union_pw_aff *mupa)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_align_params(__isl_take isl_union_pw_multi_aff *upma, __isl_take isl_space *model)
__isl_export __isl_give isl_union_set * isl_union_pw_multi_aff_domain(__isl_take isl_union_pw_multi_aff *upma)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_intersect_domain(__isl_take isl_union_pw_multi_aff *upma, __isl_take isl_union_set *uset)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_copy(__isl_keep isl_union_pw_multi_aff *upma)
__isl_export __isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_gist(__isl_take isl_union_pw_multi_aff *upma, __isl_take isl_union_set *context)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_from_multi_union_pw_aff(__isl_take isl_multi_union_pw_aff *mupa)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_empty(__isl_take isl_space *space)
__isl_overload __isl_give isl_union_map * isl_union_map_from_union_pw_multi_aff(__isl_take isl_union_pw_multi_aff *upma)
__isl_give isl_multi_union_pw_aff * isl_multi_union_pw_aff_from_multi_aff(__isl_take isl_multi_aff *ma)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_from_domain(__isl_take isl_union_set *uset)
__isl_export __isl_give isl_multi_union_pw_aff * isl_multi_union_pw_aff_intersect_domain(__isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_union_set *uset)
__isl_export __isl_give isl_multi_union_pw_aff * isl_multi_union_pw_aff_union_add(__isl_take isl_multi_union_pw_aff *mupa1, __isl_take isl_multi_union_pw_aff *mupa2)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_drop_dims(__isl_take isl_union_pw_multi_aff *upma, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_union_pw_multi_aff * isl_union_pw_multi_aff_from_union_map(__isl_take isl_union_map *umap)
__isl_give isl_union_pw_multi_aff * isl_union_set_identity_union_pw_multi_aff(__isl_take isl_union_set *uset)
struct isl_union_pw_multi_aff isl_union_pw_multi_aff
struct isl_multi_aff isl_multi_aff
struct isl_multi_union_pw_aff isl_multi_union_pw_aff
#define isl_calloc_type(ctx, type)
#define isl_die(ctx, errno, msg, code)
isl_bool isl_bool_ok(int b)
#define isl_alloc_array(ctx, type, n)
#define isl_realloc_array(ctx, ptr, type, n)
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_give isl_multi_union_pw_aff * isl_multi_union_pw_aff_zero(__isl_take isl_space *space)
static int before(void *first, void *second)
static unsigned pos(__isl_keep isl_space *space, enum isl_dim_type type)
__isl_give isl_space * isl_schedule_get_space(__isl_keep isl_schedule *schedule)
__isl_keep isl_schedule_tree * isl_schedule_peek_leaf(__isl_keep isl_schedule *schedule)
__isl_give isl_schedule * isl_schedule_set_root(__isl_take isl_schedule *schedule, __isl_take isl_schedule_tree *tree)
__isl_give isl_schedule * isl_schedule_from_schedule_tree(isl_ctx *ctx, __isl_take isl_schedule_tree *tree)
__isl_give isl_schedule_band * isl_schedule_band_from_multi_union_pw_aff(__isl_take isl_multi_union_pw_aff *mupa)
__isl_give isl_schedule_node * isl_schedule_node_root(__isl_take isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_band_scale(__isl_take isl_schedule_node *node, __isl_take isl_multi_val *mv)
__isl_give isl_schedule_node * isl_schedule_node_band_sink(__isl_take isl_schedule_node *node)
static isl_stat collect_filter_prefix_update(__isl_keep isl_schedule_tree *tree, struct isl_schedule_node_get_filter_prefix_data *data)
__isl_give isl_schedule_node * isl_schedule_node_insert_mark(__isl_take isl_schedule_node *node, __isl_take isl_id *mark)
enum isl_schedule_node_type isl_schedule_node_get_parent_type(__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_insert_sequence(__isl_take isl_schedule_node *node, __isl_take isl_union_set_list *filters)
__isl_give isl_schedule_node * isl_schedule_node_dup(__isl_keep isl_schedule_node *node)
static __isl_give isl_schedule_node * update_ancestors(__isl_take isl_schedule_node *node, __isl_give isl_schedule_tree *(*fn)(__isl_take isl_schedule_tree *tree, __isl_keep isl_schedule_node *pos, void *user), void *user)
isl_size isl_schedule_node_n_children(__isl_keep isl_schedule_node *node)
static __isl_give isl_schedule_node * expand(__isl_take isl_schedule_node *node, void *user)
__isl_keep isl_schedule_tree * isl_schedule_node_peek_leaf(__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_group(__isl_take isl_schedule_node *node, __isl_take isl_id *group_id)
static __isl_give isl_schedule_tree * group_expansion(__isl_take isl_schedule_tree *tree, __isl_keep isl_schedule_node *pos, struct isl_schedule_group_data *data)
__isl_give isl_schedule_node * isl_schedule_node_gist(__isl_take isl_schedule_node *node, __isl_take isl_union_set *context)
__isl_give isl_schedule_node * isl_schedule_node_domain_gist_params(__isl_take isl_schedule_node *node, __isl_take isl_set *context)
static __isl_give isl_schedule_node * isl_schedule_node_insert_children(__isl_take isl_schedule_node *node, enum isl_schedule_node_type type, __isl_take isl_union_set_list *filters)
static __isl_give isl_schedule_node * isl_schedule_node_order_before_or_after(__isl_take isl_schedule_node *node, __isl_take isl_union_set *filter, int before)
__isl_give isl_schedule_node * isl_schedule_node_child(__isl_take isl_schedule_node *node, int pos)
__isl_give isl_schedule_node * isl_schedule_node_from_extension(__isl_take isl_union_map *extension)
__isl_give isl_schedule_node * isl_schedule_node_filter_intersect_filter(__isl_take isl_schedule_node *node, __isl_take isl_union_set *filter)
__isl_give isl_schedule_node * isl_schedule_node_map_descendant_bottom_up(__isl_take isl_schedule_node *node, __isl_give isl_schedule_node *(*fn)(__isl_take isl_schedule_node *node, void *user), void *user)
static isl_stat check_space_multi_union_pw_aff(__isl_keep isl_schedule_node *node, __isl_keep isl_multi_union_pw_aff *mupa)
__isl_give isl_set * isl_schedule_node_guard_get_guard(__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_band_split(__isl_take isl_schedule_node *node, int pos)
__isl_give isl_schedule_tree * isl_schedule_node_get_tree(__isl_keep isl_schedule_node *node)
__isl_give isl_union_map * isl_schedule_node_get_subtree_expansion(__isl_keep isl_schedule_node *node)
static __isl_give isl_schedule_node * traverse(__isl_take isl_schedule_node *node, __isl_give isl_schedule_node *(*enter)(__isl_take isl_schedule_node *node, void *user), __isl_give isl_schedule_node *(*leave)(__isl_take isl_schedule_node *node, void *user), void *user)
__isl_give isl_schedule_node * isl_schedule_node_reset_user(__isl_take isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_grandchild(__isl_take isl_schedule_node *node, int pos1, int pos2)
__isl_give isl_set * isl_schedule_node_band_get_ast_isolate_option(__isl_keep isl_schedule_node *node)
isl_bool isl_schedule_node_every_descendant(__isl_keep isl_schedule_node *node, isl_bool(*test)(__isl_keep isl_schedule_node *node, void *user), void *user)
static isl_bool has_ancestors(__isl_keep isl_schedule_node *node, int n, enum isl_schedule_node_type *types)
enum isl_ast_loop_type isl_schedule_node_band_member_get_ast_loop_type(__isl_keep isl_schedule_node *node, int pos)
static __isl_give isl_schedule_node * postorder_enter(__isl_take isl_schedule_node *node, void *user)
__isl_give isl_union_set * isl_schedule_node_band_get_ast_build_options(__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_insert_set(__isl_take isl_schedule_node *node, __isl_take isl_union_set_list *filters)
__isl_give isl_union_map * isl_schedule_node_get_prefix_schedule_relation(__isl_keep isl_schedule_node *node)
static __isl_give isl_union_set * union_set_drop_extra_params(__isl_take isl_union_set *uset, __isl_keep isl_space *space, int n)
static __isl_give isl_schedule_node * gist_leave_expansion(__isl_take isl_schedule_node *node, struct isl_node_gist_data *data)
__isl_give isl_schedule_node * isl_schedule_node_sequence_splice_child(__isl_take isl_schedule_node *node, int pos)
isl_stat isl_schedule_node_foreach_ancestor_top_down(__isl_keep isl_schedule_node *node, isl_stat(*fn)(__isl_keep isl_schedule_node *node, void *user), void *user)
__isl_give isl_schedule_node * isl_schedule_node_band_scale_down(__isl_take isl_schedule_node *node, __isl_take isl_multi_val *mv)
__isl_give isl_schedule_node * isl_schedule_node_expand(__isl_take isl_schedule_node *node, __isl_take isl_union_pw_multi_aff *contraction, __isl_take isl_union_set *domain, __isl_take isl_schedule_tree *tree)
__isl_give isl_schedule_node * isl_schedule_node_band_member_set_ast_loop_type(__isl_take isl_schedule_node *node, int pos, enum isl_ast_loop_type type)
isl_size isl_schedule_node_get_ancestor_child_position(__isl_keep isl_schedule_node *node, __isl_keep isl_schedule_node *ancestor)
static __isl_give isl_schedule_node * gist_enter_extension(__isl_take isl_schedule_node *node, struct isl_node_gist_data *data)
static __isl_give isl_schedule_node * gist_enter(__isl_take isl_schedule_node *node, void *user)
isl_stat isl_schedule_node_foreach_descendant_top_down(__isl_keep isl_schedule_node *node, isl_bool(*fn)(__isl_keep isl_schedule_node *node, void *user), void *user)
__isl_give isl_schedule_node * isl_schedule_node_insert_extension(__isl_take isl_schedule_node *node, __isl_take isl_union_map *extension)
__isl_give isl_schedule_node * isl_schedule_node_previous_sibling(__isl_take isl_schedule_node *node)
__isl_give isl_space * isl_schedule_node_band_get_space(__isl_keep isl_schedule_node *node)
static int check_insert(__isl_keep isl_schedule_node *node)
static __isl_give isl_schedule_node * subtree_contraction_leave(__isl_take isl_schedule_node *node, void *user)
isl_bool isl_schedule_node_has_previous_sibling(__isl_keep isl_schedule_node *node)
void isl_schedule_node_dump(__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_parent(__isl_take isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_first_child(__isl_take isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_extension_set_extension(__isl_take isl_schedule_node *node, __isl_take isl_union_map *extension)
__isl_give isl_schedule_node * isl_schedule_node_band_tile(__isl_take isl_schedule_node *node, __isl_take isl_multi_val *sizes)
isl_size isl_schedule_node_get_schedule_depth(__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_insert_filter(__isl_take isl_schedule_node *node, __isl_take isl_union_set *filter)
static __isl_give isl_schedule_tree * group_domain(__isl_take isl_schedule_tree *tree, __isl_keep isl_schedule_node *pos, struct isl_schedule_group_data *data)
__isl_give isl_schedule * isl_schedule_node_get_schedule(__isl_keep isl_schedule_node *node)
__isl_give isl_union_map * isl_schedule_node_get_prefix_schedule_union_map(__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_filter_set_filter(__isl_take isl_schedule_node *node, __isl_take isl_union_set *filter)
__isl_give isl_schedule_node * isl_schedule_node_band_gist(__isl_take isl_schedule_node *node, __isl_take isl_union_set *context)
__isl_give isl_schedule_node * isl_schedule_node_band_set_ast_build_options(__isl_take isl_schedule_node *node, __isl_take isl_union_set *options)
static int check_space_multi_val(__isl_keep isl_schedule_node *node, __isl_keep isl_multi_val *mv)
__isl_give isl_multi_union_pw_aff * isl_schedule_node_get_prefix_schedule_multi_union_pw_aff(__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_insert_guard(__isl_take isl_schedule_node *node, __isl_take isl_set *guard)
__isl_give isl_union_map * isl_schedule_node_extension_get_extension(__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_pullback_union_pw_multi_aff(__isl_take isl_schedule_node *node, __isl_take isl_union_pw_multi_aff *upma)
static __isl_give isl_schedule_node * gist_enter_expansion(__isl_take isl_schedule_node *node, struct isl_node_gist_data *data)
__isl_give isl_union_pw_multi_aff * isl_schedule_node_expansion_get_contraction(__isl_keep isl_schedule_node *node)
static isl_bool is_disjoint_extension(__isl_keep isl_schedule_node *node, __isl_keep isl_union_map *extension)
static __isl_give isl_schedule_tree * group_band(__isl_take isl_schedule_tree *tree, __isl_keep isl_schedule_node *pos, struct isl_schedule_group_data *data)
__isl_give isl_schedule_node * isl_schedule_node_graft_before(__isl_take isl_schedule_node *node, __isl_take isl_schedule_node *graft)
__isl_give isl_schedule_node * isl_schedule_node_order_before(__isl_take isl_schedule_node *node, __isl_take isl_union_set *filter)
isl_bool isl_schedule_node_is_subtree_anchored(__isl_keep isl_schedule_node *node)
__isl_give isl_id * isl_schedule_node_mark_get_id(__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_cow(__isl_take isl_schedule_node *node)
__isl_give isl_union_map * isl_schedule_node_band_get_partial_schedule_union_map(__isl_keep isl_schedule_node *node)
static isl_stat check_is_sequence(__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_domain_intersect_domain(__isl_take isl_schedule_node *node, __isl_take isl_union_set *domain)
__isl_give isl_schedule_node * isl_schedule_node_sequence_splice_children(__isl_take isl_schedule_node *node)
static isl_stat collect_filter_prefix(__isl_keep isl_schedule_tree_list *list, int n, struct isl_schedule_node_get_filter_prefix_data *data)
__isl_give isl_schedule_node * isl_schedule_node_alloc(__isl_take isl_schedule *schedule, __isl_take isl_schedule_tree *tree, __isl_take isl_schedule_tree_list *ancestors, int *child_pos)
__isl_give isl_schedule_node * isl_schedule_node_insert_expansion(__isl_take isl_schedule_node *node, __isl_take isl_union_pw_multi_aff *contraction, __isl_take isl_union_map *expansion)
__isl_give isl_set * isl_schedule_node_context_get_context(__isl_keep isl_schedule_node *node)
static __isl_give isl_schedule_node * extension_from_domain(__isl_take isl_schedule_node *node, __isl_keep isl_schedule_node *pos)
__isl_give isl_union_set * isl_schedule_node_domain_get_domain(__isl_keep isl_schedule_node *node)
isl_size isl_schedule_node_band_n_member(__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_next_sibling(__isl_take isl_schedule_node *node)
isl_bool isl_schedule_node_band_get_permutable(__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_sequence_splice(__isl_take isl_schedule_node *node, int pos, __isl_take isl_schedule_tree *tree)
__isl_give isl_schedule_node * isl_schedule_node_graft_tree(__isl_take isl_schedule_node *pos, __isl_take isl_schedule_tree *tree)
static isl_stat collect_filter_prefix_expansion(__isl_take isl_schedule_tree *tree, __isl_keep isl_schedule_tree_list *list, int n, struct isl_schedule_node_get_filter_prefix_data *data)
static __isl_give isl_schedule_tree * group_context(__isl_take isl_schedule_tree *tree, __isl_keep isl_schedule_node *pos, struct isl_schedule_group_data *data)
enum isl_schedule_node_type isl_schedule_node_get_type(__isl_keep isl_schedule_node *node)
isl_size isl_schedule_node_get_child_position(__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_band_member_set_isolate_ast_loop_type(__isl_take isl_schedule_node *node, int pos, enum isl_ast_loop_type type)
__isl_give isl_union_set * isl_schedule_node_get_domain(__isl_keep isl_schedule_node *node)
isl_bool isl_schedule_node_is_equal(__isl_keep isl_schedule_node *node1, __isl_keep isl_schedule_node *node2)
static __isl_give isl_schedule_node * isl_schedule_node_graft_before_or_after(__isl_take isl_schedule_node *node, __isl_take isl_schedule_node *graft, int before)
static __isl_give isl_schedule_node * extend_extension(__isl_take isl_schedule_node *node, __isl_take isl_union_map *extension)
isl_bool isl_schedule_node_has_children(__isl_keep isl_schedule_node *node)
__isl_give isl_union_set * isl_schedule_node_get_universe_domain(__isl_keep isl_schedule_node *node)
isl_bool isl_schedule_node_band_member_get_coincident(__isl_keep isl_schedule_node *node, int pos)
__isl_give isl_schedule_node * isl_schedule_node_insert_context(__isl_take isl_schedule_node *node, __isl_take isl_set *context)
__isl_give isl_multi_union_pw_aff * isl_schedule_node_band_get_partial_schedule(__isl_keep isl_schedule_node *node)
static isl_bool gist_done(__isl_keep isl_schedule_node *node, struct isl_node_gist_data *data)
static isl_bool locally_covered_by_domain(__isl_keep isl_union_set *domain, struct isl_schedule_group_data *data)
static __isl_give isl_schedule_node * graft_or_splice(__isl_take isl_schedule_node *node, __isl_take isl_schedule_tree *tree, int tree_pos)
enum isl_ast_loop_type isl_schedule_node_band_member_get_isolate_ast_loop_type(__isl_keep isl_schedule_node *node, int pos)
__isl_give isl_schedule_node * isl_schedule_node_get_shared_ancestor(__isl_keep isl_schedule_node *node1, __isl_keep isl_schedule_node *node2)
__isl_give isl_schedule_node * isl_schedule_node_grandparent(__isl_take isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_align_params(__isl_take isl_schedule_node *node, __isl_take isl_space *space)
__isl_give isl_schedule_node * isl_schedule_node_band_mod(__isl_take isl_schedule_node *node, __isl_take isl_multi_val *mv)
__isl_null isl_schedule_node * isl_schedule_node_free(__isl_take isl_schedule_node *node)
__isl_give isl_union_set * isl_schedule_node_filter_get_filter(__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_band_member_set_coincident(__isl_take isl_schedule_node *node, int pos, int coincident)
static isl_bool call_every(__isl_keep isl_schedule_node *node, void *user)
__isl_give isl_schedule_node * isl_schedule_node_band_shift(__isl_take isl_schedule_node *node, __isl_take isl_multi_union_pw_aff *shift)
__isl_give isl_union_map * isl_schedule_node_get_subtree_schedule_union_map(__isl_keep isl_schedule_node *node)
__isl_give isl_union_pw_multi_aff * isl_schedule_node_get_subtree_contraction(__isl_keep isl_schedule_node *node)
__isl_give char * isl_schedule_node_to_str(__isl_keep isl_schedule_node *node)
static __isl_give isl_schedule_node * preorder_leave(__isl_take isl_schedule_node *node, void *user)
static isl_stat collect_filter_prefix_init(__isl_keep isl_schedule_tree *tree, struct isl_schedule_node_get_filter_prefix_data *data)
__isl_give isl_schedule_node * isl_schedule_node_from_domain(__isl_take isl_union_set *domain)
isl_size isl_schedule_node_get_tree_depth(__isl_keep isl_schedule_node *node)
__isl_give isl_union_map * isl_schedule_node_expansion_get_expansion(__isl_keep isl_schedule_node *node)
static __isl_give isl_schedule_node * postorder_leave(__isl_take isl_schedule_node *node, void *user)
__isl_give isl_schedule_tree * isl_schedule_node_get_leaf(__isl_keep isl_schedule_node *node)
__isl_give isl_printer * isl_printer_print_schedule_node(__isl_take isl_printer *p, __isl_keep isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_expansion_set_contraction_and_expansion(__isl_take isl_schedule_node *node, __isl_take isl_union_pw_multi_aff *contraction, __isl_take isl_union_map *expansion)
__isl_give isl_schedule_node * isl_schedule_node_band_set_permutable(__isl_take isl_schedule_node *node, int permutable)
isl_bool isl_schedule_node_has_next_sibling(__isl_keep isl_schedule_node *node)
isl_bool isl_schedule_node_has_parent(__isl_keep isl_schedule_node *node)
isl_ctx * isl_schedule_node_get_ctx(__isl_keep isl_schedule_node *node)
static __isl_give isl_schedule_node * subtree_expansion_enter(__isl_take isl_schedule_node *node, void *user)
static __isl_give isl_schedule_node * subtree_expansion_leave(__isl_take isl_schedule_node *node, void *user)
__isl_give isl_schedule_node * isl_schedule_node_get_child(__isl_keep isl_schedule_node *node, int pos)
static __isl_give isl_schedule_node * graft_extension(__isl_take isl_schedule_node *node, __isl_take isl_schedule_node *graft, int before)
__isl_give isl_schedule_node * isl_schedule_node_order_after(__isl_take isl_schedule_node *node, __isl_take isl_union_set *filter)
static __isl_give isl_union_set * replace_by_universe_if_disjoint(__isl_take isl_union_set *uset, __isl_keep isl_union_set *ref)
__isl_give isl_schedule_node * isl_schedule_node_ancestor(__isl_take isl_schedule_node *node, int generation)
__isl_give isl_union_pw_multi_aff * isl_schedule_node_get_prefix_schedule_union_pw_multi_aff(__isl_keep isl_schedule_node *node)
static __isl_give isl_schedule_node * gist_leave(__isl_take isl_schedule_node *node, void *user)
__isl_give isl_schedule_node * isl_schedule_node_graft_after(__isl_take isl_schedule_node *node, __isl_take isl_schedule_node *graft)
__isl_give isl_schedule_node * isl_schedule_node_delete(__isl_take isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_insert_partial_schedule(__isl_take isl_schedule_node *node, __isl_take isl_multi_union_pw_aff *mupa)
static __isl_give isl_schedule_node * subtree_contraction_enter(__isl_take isl_schedule_node *node, void *user)
static __isl_give isl_schedule_node * insert_extension(__isl_take isl_schedule_node *node, __isl_take isl_union_map *extension)
static __isl_give isl_schedule_node * preorder_enter(__isl_take isl_schedule_node *node, void *user)
static __isl_give isl_schedule_tree * group_ancestor(__isl_take isl_schedule_tree *tree, __isl_keep isl_schedule_node *pos, void *user)
static isl_stat collect_universe_domain_extension(__isl_take isl_schedule_tree *tree, __isl_keep isl_schedule_tree_list *list, int n, struct isl_schedule_node_get_filter_prefix_data *data)
__isl_give isl_schedule_node * isl_schedule_node_cut(__isl_take isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_copy(__isl_keep isl_schedule_node *node)
__isl_give isl_multi_union_pw_aff * isl_schedule_tree_band_get_partial_schedule(__isl_keep isl_schedule_tree *tree)
__isl_give isl_schedule_tree * isl_schedule_tree_band_set_permutable(__isl_take isl_schedule_tree *tree, int permutable)
__isl_null isl_schedule_tree * isl_schedule_tree_free(__isl_take isl_schedule_tree *tree)
__isl_give isl_schedule_tree * isl_schedule_tree_extension_set_extension(__isl_take isl_schedule_tree *tree, __isl_take isl_union_map *extension)
__isl_give isl_schedule_tree * isl_schedule_tree_from_filter(__isl_take isl_union_set *filter)
__isl_give isl_schedule_tree * isl_schedule_tree_from_extension(__isl_take isl_union_map *extension)
__isl_give isl_schedule_tree * isl_schedule_tree_pullback_union_pw_multi_aff(__isl_take isl_schedule_tree *tree, __isl_take isl_union_pw_multi_aff *upma)
__isl_give isl_schedule_tree * isl_schedule_tree_band_scale_down(__isl_take isl_schedule_tree *tree, __isl_take isl_multi_val *mv)
isl_size isl_schedule_tree_band_n_member(__isl_keep isl_schedule_tree *tree)
__isl_give isl_schedule_tree * isl_schedule_tree_insert_band(__isl_take isl_schedule_tree *tree, __isl_take isl_schedule_band *band)
__isl_give isl_schedule_tree * isl_schedule_tree_band_gist(__isl_take isl_schedule_tree *tree, __isl_take isl_union_set *context)
__isl_give isl_schedule_tree * isl_schedule_tree_band_mod(__isl_take isl_schedule_tree *tree, __isl_take isl_multi_val *mv)
__isl_give isl_space * isl_schedule_tree_band_get_space(__isl_keep isl_schedule_tree *tree)
__isl_give isl_schedule_tree * isl_schedule_tree_insert_mark(__isl_take isl_schedule_tree *tree, __isl_take isl_id *mark)
__isl_give isl_schedule_tree * isl_schedule_tree_band_member_set_isolate_ast_loop_type(__isl_take isl_schedule_tree *tree, int pos, enum isl_ast_loop_type type)
__isl_give isl_schedule_tree * isl_schedule_tree_band_shift(__isl_take isl_schedule_tree *tree, __isl_take isl_multi_union_pw_aff *shift)
isl_bool isl_schedule_tree_band_member_get_coincident(__isl_keep isl_schedule_tree *tree, int pos)
__isl_give isl_schedule_tree * isl_schedule_tree_copy(__isl_keep isl_schedule_tree *tree)
enum isl_ast_loop_type isl_schedule_tree_band_member_get_ast_loop_type(__isl_keep isl_schedule_tree *tree, int pos)
__isl_give isl_union_pw_multi_aff * isl_schedule_tree_expansion_get_contraction(__isl_keep isl_schedule_tree *tree)
__isl_give isl_schedule_tree * isl_schedule_tree_band_split(__isl_take isl_schedule_tree *tree, int pos, int depth)
__isl_give isl_schedule_tree * isl_schedule_tree_domain_set_domain(__isl_take isl_schedule_tree *tree, __isl_take isl_union_set *domain)
__isl_give isl_schedule_tree * isl_schedule_tree_align_params(__isl_take isl_schedule_tree *tree, __isl_take isl_space *space)
__isl_give isl_schedule_tree * isl_schedule_tree_insert_expansion(__isl_take isl_schedule_tree *tree, __isl_take isl_union_pw_multi_aff *contraction, __isl_take isl_union_map *expansion)
__isl_give isl_schedule_tree * isl_schedule_tree_reset_children(__isl_take isl_schedule_tree *tree)
isl_size isl_schedule_tree_n_children(__isl_keep isl_schedule_tree *tree)
__isl_give isl_schedule_tree * isl_schedule_tree_band_member_set_coincident(__isl_take isl_schedule_tree *tree, int pos, int coincident)
__isl_give isl_schedule_tree * isl_schedule_tree_set_pair(__isl_take isl_schedule_tree *tree1, __isl_take isl_schedule_tree *tree2)
__isl_give isl_schedule_tree * isl_schedule_tree_insert_guard(__isl_take isl_schedule_tree *tree, __isl_take isl_set *guard)
__isl_give isl_union_map * isl_schedule_tree_expansion_get_expansion(__isl_keep isl_schedule_tree *tree)
__isl_give isl_schedule_tree * isl_schedule_tree_band_scale(__isl_take isl_schedule_tree *tree, __isl_take isl_multi_val *mv)
__isl_give isl_schedule_tree * isl_schedule_tree_filter_set_filter(__isl_take isl_schedule_tree *tree, __isl_take isl_union_set *filter)
__isl_give isl_schedule_tree * isl_schedule_tree_reset_user(__isl_take isl_schedule_tree *tree)
__isl_give isl_union_map * isl_schedule_tree_get_subtree_schedule_union_map(__isl_keep isl_schedule_tree *tree)
__isl_give isl_schedule_tree * isl_schedule_tree_band_member_set_ast_loop_type(__isl_take isl_schedule_tree *tree, int pos, enum isl_ast_loop_type type)
__isl_give isl_schedule_tree * isl_schedule_tree_from_children(enum isl_schedule_node_type type, __isl_take isl_schedule_tree_list *list)
__isl_give isl_id * isl_schedule_tree_mark_get_id(__isl_keep isl_schedule_tree *tree)
int isl_schedule_tree_has_children(__isl_keep isl_schedule_tree *tree)
__isl_give isl_schedule_tree * isl_schedule_tree_insert_filter(__isl_take isl_schedule_tree *tree, __isl_take isl_union_set *filter)
__isl_give isl_schedule_tree * isl_schedule_tree_band_intersect_domain(__isl_take isl_schedule_tree *tree, __isl_take isl_union_set *domain)
__isl_give isl_schedule_tree * isl_schedule_tree_band_set_ast_build_options(__isl_take isl_schedule_tree *tree, __isl_take isl_union_set *options)
__isl_give isl_schedule_tree * isl_schedule_tree_expansion_set_contraction_and_expansion(__isl_take isl_schedule_tree *tree, __isl_take isl_union_pw_multi_aff *contraction, __isl_take isl_union_map *expansion)
__isl_give isl_schedule_tree * isl_schedule_tree_append_to_leaves(__isl_take isl_schedule_tree *tree1, __isl_take isl_schedule_tree *tree2)
__isl_give isl_schedule_tree * isl_schedule_tree_get_child(__isl_keep isl_schedule_tree *tree, int pos)
__isl_give isl_set * isl_schedule_tree_guard_get_guard(__isl_take isl_schedule_tree *tree)
isl_bool isl_schedule_tree_band_get_permutable(__isl_keep isl_schedule_tree *tree)
__isl_give isl_set * isl_schedule_tree_context_get_context(__isl_keep isl_schedule_tree *tree)
__isl_give isl_union_set * isl_schedule_tree_domain_get_domain(__isl_keep isl_schedule_tree *tree)
enum isl_schedule_node_type isl_schedule_tree_get_type(__isl_keep isl_schedule_tree *tree)
__isl_give isl_union_set * isl_schedule_tree_filter_get_filter(__isl_keep isl_schedule_tree *tree)
__isl_give isl_printer * isl_printer_print_schedule_tree_mark(__isl_take isl_printer *p, __isl_keep isl_schedule_tree *tree, int n_ancestor, int *child_pos)
__isl_give isl_schedule_tree * isl_schedule_tree_child(__isl_take isl_schedule_tree *tree, int pos)
__isl_give isl_schedule_tree * isl_schedule_tree_replace_child(__isl_take isl_schedule_tree *tree, int pos, __isl_take isl_schedule_tree *child)
__isl_give isl_schedule_tree * isl_schedule_tree_insert_context(__isl_take isl_schedule_tree *tree, __isl_take isl_set *context)
__isl_give isl_schedule_tree * isl_schedule_tree_drop_child(__isl_take isl_schedule_tree *tree, int pos)
__isl_give isl_schedule_tree * isl_schedule_tree_band_set_partial_schedule(__isl_take isl_schedule_tree *tree, __isl_take isl_multi_union_pw_aff *schedule)
__isl_give isl_set * isl_schedule_tree_band_get_ast_isolate_option(__isl_keep isl_schedule_tree *tree, int depth)
__isl_give isl_schedule_tree * isl_schedule_tree_band_tile(__isl_take isl_schedule_tree *tree, __isl_take isl_multi_val *sizes)
__isl_give isl_schedule_tree * isl_schedule_tree_insert_extension(__isl_take isl_schedule_tree *tree, __isl_take isl_union_map *extension)
__isl_give isl_union_set * isl_schedule_tree_band_get_ast_build_options(__isl_keep isl_schedule_tree *tree)
__isl_give isl_schedule_tree * isl_schedule_tree_sequence_pair(__isl_take isl_schedule_tree *tree1, __isl_take isl_schedule_tree *tree2)
__isl_give isl_schedule_tree * isl_schedule_tree_first_schedule_descendant(__isl_take isl_schedule_tree *tree, __isl_keep isl_schedule_tree *leaf)
isl_ctx * isl_schedule_tree_get_ctx(__isl_keep isl_schedule_tree *tree)
isl_bool isl_schedule_tree_is_subtree_anchored(__isl_keep isl_schedule_tree *tree)
int isl_schedule_tree_is_leaf(__isl_keep isl_schedule_tree *tree)
__isl_give isl_union_map * isl_schedule_tree_extension_get_extension(__isl_take isl_schedule_tree *tree)
enum isl_ast_loop_type isl_schedule_tree_band_member_get_isolate_ast_loop_type(__isl_keep isl_schedule_tree *tree, int pos)
__isl_give isl_schedule_tree * isl_schedule_tree_sequence_splice(__isl_take isl_schedule_tree *tree, int pos, __isl_take isl_schedule_tree *child)
static __isl_give isl_map * universe(__isl_take isl_map *map)
static __isl_give isl_space * identity(__isl_take isl_space *space)
#define isl_union_set_list
__isl_null isl_printer * isl_printer_free(__isl_take isl_printer *printer)
__isl_give char * isl_printer_get_str(__isl_keep isl_printer *printer)
__isl_give isl_printer * isl_printer_to_file(isl_ctx *ctx, FILE *file)
#define ISL_YAML_STYLE_BLOCK
__isl_give isl_printer * isl_printer_set_yaml_style(__isl_take isl_printer *p, int yaml_style)
__isl_give isl_printer * isl_printer_to_str(isl_ctx *ctx)
__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_give isl_schedule * isl_schedule_from_domain(__isl_take isl_union_set *domain)
__isl_give isl_schedule * isl_schedule_copy(__isl_keep isl_schedule *sched)
isl_ctx * isl_schedule_get_ctx(__isl_keep isl_schedule *sched)
@ 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_null isl_set * isl_set_free(__isl_take isl_set *set)
__isl_give isl_space * isl_space_set_tuple_id(__isl_take isl_space *space, enum isl_dim_type type, __isl_take isl_id *id)
__isl_null isl_space * isl_space_free(__isl_take isl_space *space)
__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_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_bool isl_space_tuple_is_equal(__isl_keep isl_space *space1, enum isl_dim_type type1, __isl_keep isl_space *space2, enum isl_dim_type type2)
__isl_give isl_space * isl_space_add_dims(__isl_take isl_space *space, enum isl_dim_type type, unsigned n)
isl_union_set_list * filters
isl_union_set * domain_universe
isl_union_set * group_universe
isl_union_pw_multi_aff * contraction
isl_union_map * expansion
isl_multi_union_pw_aff * prefix
__isl_give isl_schedule_node *(* fn)(__isl_take isl_schedule_node *node, void *user)
isl_bool(* fn)(__isl_keep isl_schedule_node *node, void *user)
isl_schedule_tree_list * ancestors
isl_schedule_tree_list * children
isl_union_pw_multi_aff_list * contractions
isl_union_pw_multi_aff * res
isl_union_map_list * expansions
isl_bool(* test)(__isl_keep isl_schedule_node *node, void *user)
__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_give isl_union_map * isl_union_map_align_params(__isl_take isl_union_map *umap, __isl_take isl_space *model)
__isl_export __isl_give isl_union_map * isl_union_set_identity(__isl_take isl_union_set *uset)
__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_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_map * isl_union_map_gist_domain(__isl_take isl_union_map *umap, __isl_take isl_union_set *uset)
__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_from_domain(__isl_take isl_union_set *uset)
isl_bool isl_union_map_involves_dims(__isl_keep isl_union_map *umap, enum isl_dim_type type, unsigned first, unsigned n)
__isl_give isl_union_map * isl_union_map_empty(__isl_take isl_space *space)
__isl_export __isl_give isl_union_map * isl_union_map_subtract_range(__isl_take isl_union_map *umap, __isl_take isl_union_set *dom)
isl_bool isl_union_map_is_identity(__isl_keep 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_give isl_union_map * isl_union_map_project_out(__isl_take isl_union_map *umap, enum isl_dim_type type, unsigned first, unsigned n)
isl_size isl_union_map_dim(__isl_keep isl_union_map *umap, enum isl_dim_type type)
__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_bool isl_union_map_is_disjoint(__isl_keep isl_union_map *umap1, __isl_keep isl_union_map *umap2)
__isl_export __isl_give isl_union_map * isl_union_map_universe(__isl_take isl_union_map *umap)
__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_size isl_union_set_dim(__isl_keep isl_union_set *uset, enum isl_dim_type type)
__isl_export isl_bool isl_union_set_is_empty(__isl_keep isl_union_set *uset)
__isl_export __isl_give isl_union_set * isl_union_set_gist_params(__isl_take isl_union_set *uset, __isl_take isl_set *set)
__isl_export __isl_give isl_union_set * isl_union_set_universe(__isl_take isl_union_set *uset)
__isl_overload __isl_give isl_union_set * isl_union_set_preimage_union_pw_multi_aff(__isl_take isl_union_set *uset, __isl_take isl_union_pw_multi_aff *upma)
__isl_export isl_bool isl_union_set_is_disjoint(__isl_keep isl_union_set *uset1, __isl_keep isl_union_set *uset2)
__isl_export __isl_give isl_union_set * isl_union_set_union(__isl_take isl_union_set *uset1, __isl_take isl_union_set *uset2)
__isl_export __isl_give isl_union_set * isl_union_set_apply(__isl_take isl_union_set *uset, __isl_take isl_union_map *umap)
__isl_give isl_union_set * isl_union_set_project_out(__isl_take isl_union_set *uset, enum isl_dim_type type, unsigned first, unsigned n)
__isl_export __isl_give isl_union_set * isl_union_set_intersect(__isl_take isl_union_set *uset1, __isl_take isl_union_set *uset2)
__isl_give isl_union_set * isl_union_set_empty(__isl_take isl_space *space)
__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_ctx * isl_union_set_get_ctx(__isl_keep isl_union_set *uset)
__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_export __isl_give isl_union_set * isl_union_set_subtract(__isl_take isl_union_set *uset1, __isl_take isl_union_set *uset2)
__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_give isl_union_set * isl_union_set_gist(__isl_take isl_union_set *uset, __isl_take isl_union_set *context)
struct isl_multi_val isl_multi_val