Polly 22.0.0git
isl_schedule_node.c File Reference
#include <isl/id.h>
#include <isl/val.h>
#include <isl/space.h>
#include <isl/set.h>
#include <isl_schedule_band.h>
#include <isl_schedule_private.h>
#include <isl_schedule_node_private.h>

Go to the source code of this file.

Classes

struct  isl_schedule_node_get_filter_prefix_data
struct  isl_schedule_node_preorder_data
struct  isl_union_map_every_data
struct  isl_schedule_node_postorder_data
struct  isl_schedule_group_data
struct  isl_node_gist_data
struct  isl_subtree_expansion_data
struct  isl_subtree_contraction_data
struct  isl_schedule_expand_data

Functions

__isl_give isl_schedule_nodeisl_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_nodeisl_schedule_node_from_domain (__isl_take isl_union_set *domain)
__isl_give isl_schedule_nodeisl_schedule_node_from_extension (__isl_take isl_union_map *extension)
isl_ctxisl_schedule_node_get_ctx (__isl_keep isl_schedule_node *node)
__isl_keep isl_schedule_treeisl_schedule_node_peek_leaf (__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_treeisl_schedule_node_get_leaf (__isl_keep isl_schedule_node *node)
enum isl_schedule_node_type isl_schedule_node_get_type (__isl_keep isl_schedule_node *node)
enum isl_schedule_node_type isl_schedule_node_get_parent_type (__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_treeisl_schedule_node_get_tree (__isl_keep isl_schedule_node *node)
__isl_give isl_scheduleisl_schedule_node_get_schedule (__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_nodeisl_schedule_node_dup (__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_nodeisl_schedule_node_cow (__isl_take isl_schedule_node *node)
__isl_give isl_schedule_nodeisl_schedule_node_copy (__isl_keep isl_schedule_node *node)
__isl_null isl_schedule_nodeisl_schedule_node_free (__isl_take isl_schedule_node *node)
isl_bool isl_schedule_node_is_equal (__isl_keep isl_schedule_node *node1, __isl_keep isl_schedule_node *node2)
isl_size isl_schedule_node_get_schedule_depth (__isl_keep 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)
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_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)
static isl_stat collect_filter_prefix_init (__isl_keep isl_schedule_tree *tree, struct isl_schedule_node_get_filter_prefix_data *data)
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_multi_union_pw_affisl_schedule_node_get_prefix_schedule_multi_union_pw_aff (__isl_keep isl_schedule_node *node)
__isl_give isl_union_pw_multi_affisl_schedule_node_get_prefix_schedule_union_pw_multi_aff (__isl_keep isl_schedule_node *node)
__isl_give isl_union_mapisl_schedule_node_get_prefix_schedule_union_map (__isl_keep isl_schedule_node *node)
__isl_give isl_union_mapisl_schedule_node_get_prefix_schedule_relation (__isl_keep isl_schedule_node *node)
__isl_give isl_union_setisl_schedule_node_get_domain (__isl_keep isl_schedule_node *node)
__isl_give isl_union_setisl_schedule_node_get_universe_domain (__isl_keep isl_schedule_node *node)
__isl_give isl_union_mapisl_schedule_node_get_subtree_schedule_union_map (__isl_keep isl_schedule_node *node)
isl_size isl_schedule_node_get_tree_depth (__isl_keep isl_schedule_node *node)
isl_bool isl_schedule_node_has_parent (__isl_keep isl_schedule_node *node)
isl_size isl_schedule_node_get_child_position (__isl_keep isl_schedule_node *node)
isl_bool isl_schedule_node_has_previous_sibling (__isl_keep isl_schedule_node *node)
isl_bool isl_schedule_node_has_next_sibling (__isl_keep isl_schedule_node *node)
isl_bool isl_schedule_node_has_children (__isl_keep isl_schedule_node *node)
isl_size isl_schedule_node_n_children (__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_nodeisl_schedule_node_ancestor (__isl_take isl_schedule_node *node, int generation)
__isl_give isl_schedule_nodeisl_schedule_node_parent (__isl_take isl_schedule_node *node)
__isl_give isl_schedule_nodeisl_schedule_node_grandparent (__isl_take isl_schedule_node *node)
__isl_give isl_schedule_nodeisl_schedule_node_root (__isl_take isl_schedule_node *node)
__isl_give isl_schedule_nodeisl_schedule_node_child (__isl_take isl_schedule_node *node, int pos)
__isl_give isl_schedule_nodeisl_schedule_node_grandchild (__isl_take isl_schedule_node *node, int pos1, int pos2)
__isl_give isl_schedule_nodeisl_schedule_node_first_child (__isl_take isl_schedule_node *node)
__isl_give isl_schedule_nodeisl_schedule_node_previous_sibling (__isl_take isl_schedule_node *node)
__isl_give isl_schedule_nodeisl_schedule_node_next_sibling (__isl_take isl_schedule_node *node)
__isl_give isl_schedule_nodeisl_schedule_node_get_child (__isl_keep isl_schedule_node *node, int pos)
static __isl_give isl_schedule_nodetraverse (__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)
static __isl_give isl_schedule_nodepreorder_enter (__isl_take isl_schedule_node *node, void *user)
static __isl_give isl_schedule_nodepreorder_leave (__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)
static isl_bool call_every (__isl_keep isl_schedule_node *node, void *user)
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_give isl_schedule_nodepostorder_enter (__isl_take isl_schedule_node *node, void *user)
static __isl_give isl_schedule_nodepostorder_leave (__isl_take isl_schedule_node *node, void *user)
__isl_give isl_schedule_nodeisl_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)
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_bool isl_schedule_node_is_subtree_anchored (__isl_keep isl_schedule_node *node)
isl_size isl_schedule_node_band_n_member (__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_nodeisl_schedule_node_band_member_set_coincident (__isl_take isl_schedule_node *node, int pos, int coincident)
isl_bool isl_schedule_node_band_get_permutable (__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_nodeisl_schedule_node_band_set_permutable (__isl_take isl_schedule_node *node, int permutable)
__isl_give isl_spaceisl_schedule_node_band_get_space (__isl_keep isl_schedule_node *node)
__isl_give isl_multi_union_pw_affisl_schedule_node_band_get_partial_schedule (__isl_keep isl_schedule_node *node)
__isl_give isl_union_mapisl_schedule_node_band_get_partial_schedule_union_map (__isl_keep isl_schedule_node *node)
enum isl_ast_loop_type isl_schedule_node_band_member_get_ast_loop_type (__isl_keep isl_schedule_node *node, int pos)
__isl_give isl_schedule_nodeisl_schedule_node_band_member_set_ast_loop_type (__isl_take isl_schedule_node *node, int pos, enum isl_ast_loop_type type)
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_nodeisl_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_setisl_schedule_node_band_get_ast_build_options (__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_nodeisl_schedule_node_band_set_ast_build_options (__isl_take isl_schedule_node *node, __isl_take isl_union_set *options)
__isl_give isl_setisl_schedule_node_band_get_ast_isolate_option (__isl_keep isl_schedule_node *node)
static int check_space_multi_val (__isl_keep isl_schedule_node *node, __isl_keep isl_multi_val *mv)
__isl_give isl_schedule_nodeisl_schedule_node_band_scale (__isl_take isl_schedule_node *node, __isl_take isl_multi_val *mv)
__isl_give isl_schedule_nodeisl_schedule_node_band_scale_down (__isl_take isl_schedule_node *node, __isl_take isl_multi_val *mv)
__isl_give isl_schedule_nodeisl_schedule_node_band_mod (__isl_take isl_schedule_node *node, __isl_take isl_multi_val *mv)
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_schedule_nodeisl_schedule_node_band_shift (__isl_take isl_schedule_node *node, __isl_take isl_multi_union_pw_aff *shift)
__isl_give isl_schedule_nodeisl_schedule_node_band_tile (__isl_take isl_schedule_node *node, __isl_take isl_multi_val *sizes)
__isl_give isl_schedule_nodeisl_schedule_node_band_sink (__isl_take isl_schedule_node *node)
__isl_give isl_schedule_nodeisl_schedule_node_band_split (__isl_take isl_schedule_node *node, int pos)
__isl_give isl_setisl_schedule_node_context_get_context (__isl_keep isl_schedule_node *node)
__isl_give isl_union_setisl_schedule_node_domain_get_domain (__isl_keep isl_schedule_node *node)
__isl_give isl_union_mapisl_schedule_node_expansion_get_expansion (__isl_keep isl_schedule_node *node)
__isl_give isl_union_pw_multi_affisl_schedule_node_expansion_get_contraction (__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_nodeisl_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_union_mapisl_schedule_node_extension_get_extension (__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_nodeisl_schedule_node_extension_set_extension (__isl_take isl_schedule_node *node, __isl_take isl_union_map *extension)
__isl_give isl_union_setisl_schedule_node_filter_get_filter (__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_nodeisl_schedule_node_filter_set_filter (__isl_take isl_schedule_node *node, __isl_take isl_union_set *filter)
__isl_give isl_schedule_nodeisl_schedule_node_filter_intersect_filter (__isl_take isl_schedule_node *node, __isl_take isl_union_set *filter)
__isl_give isl_setisl_schedule_node_guard_get_guard (__isl_keep isl_schedule_node *node)
__isl_give isl_idisl_schedule_node_mark_get_id (__isl_keep isl_schedule_node *node)
static isl_stat check_is_sequence (__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_nodeisl_schedule_node_sequence_splice (__isl_take isl_schedule_node *node, int pos, __isl_take isl_schedule_tree *tree)
__isl_give isl_schedule_nodeisl_schedule_node_sequence_splice_child (__isl_take isl_schedule_node *node, int pos)
__isl_give isl_schedule_nodeisl_schedule_node_sequence_splice_children (__isl_take isl_schedule_node *node)
static __isl_give isl_schedule_nodeupdate_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_give isl_schedule_nodeisl_schedule_node_graft_tree (__isl_take isl_schedule_node *pos, __isl_take isl_schedule_tree *tree)
static int check_insert (__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_nodeisl_schedule_node_insert_partial_schedule (__isl_take isl_schedule_node *node, __isl_take isl_multi_union_pw_aff *mupa)
__isl_give isl_schedule_nodeisl_schedule_node_insert_context (__isl_take isl_schedule_node *node, __isl_take isl_set *context)
__isl_give isl_schedule_nodeisl_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_schedule_nodeisl_schedule_node_insert_extension (__isl_take isl_schedule_node *node, __isl_take isl_union_map *extension)
__isl_give isl_schedule_nodeisl_schedule_node_insert_filter (__isl_take isl_schedule_node *node, __isl_take isl_union_set *filter)
__isl_give isl_schedule_nodeisl_schedule_node_insert_guard (__isl_take isl_schedule_node *node, __isl_take isl_set *guard)
__isl_give isl_schedule_nodeisl_schedule_node_insert_mark (__isl_take isl_schedule_node *node, __isl_take isl_id *mark)
static __isl_give isl_schedule_nodeisl_schedule_node_insert_children (__isl_take isl_schedule_node *node, enum isl_schedule_node_type type, __isl_take isl_union_set_list *filters)
__isl_give isl_schedule_nodeisl_schedule_node_insert_sequence (__isl_take isl_schedule_node *node, __isl_take isl_union_set_list *filters)
__isl_give isl_schedule_nodeisl_schedule_node_insert_set (__isl_take isl_schedule_node *node, __isl_take isl_union_set_list *filters)
__isl_give isl_schedule_nodeisl_schedule_node_cut (__isl_take isl_schedule_node *node)
__isl_give isl_schedule_nodeisl_schedule_node_delete (__isl_take isl_schedule_node *node)
static isl_bool locally_covered_by_domain (__isl_keep isl_union_set *domain, struct isl_schedule_group_data *data)
static __isl_give isl_schedule_treegroup_band (__isl_take isl_schedule_tree *tree, __isl_keep isl_schedule_node *pos, struct isl_schedule_group_data *data)
static __isl_give isl_union_setunion_set_drop_extra_params (__isl_take isl_union_set *uset, __isl_keep isl_space *space, int n)
static __isl_give isl_schedule_treegroup_context (__isl_take isl_schedule_tree *tree, __isl_keep isl_schedule_node *pos, struct isl_schedule_group_data *data)
static __isl_give isl_schedule_treegroup_domain (__isl_take isl_schedule_tree *tree, __isl_keep isl_schedule_node *pos, struct isl_schedule_group_data *data)
static __isl_give isl_schedule_treegroup_expansion (__isl_take isl_schedule_tree *tree, __isl_keep isl_schedule_node *pos, struct isl_schedule_group_data *data)
static __isl_give isl_schedule_treegroup_ancestor (__isl_take isl_schedule_tree *tree, __isl_keep isl_schedule_node *pos, void *user)
__isl_give isl_schedule_nodeisl_schedule_node_group (__isl_take isl_schedule_node *node, __isl_take isl_id *group_id)
__isl_give isl_schedule_nodeisl_schedule_node_band_gist (__isl_take isl_schedule_node *node, __isl_take isl_union_set *context)
static __isl_give isl_schedule_nodegist_enter_expansion (__isl_take isl_schedule_node *node, struct isl_node_gist_data *data)
static __isl_give isl_schedule_nodegist_leave_expansion (__isl_take isl_schedule_node *node, struct isl_node_gist_data *data)
static __isl_give isl_schedule_nodegist_enter_extension (__isl_take isl_schedule_node *node, struct isl_node_gist_data *data)
static isl_bool gist_done (__isl_keep isl_schedule_node *node, struct isl_node_gist_data *data)
static __isl_give isl_schedule_nodegist_enter (__isl_take isl_schedule_node *node, void *user)
static __isl_give isl_schedule_nodegist_leave (__isl_take isl_schedule_node *node, void *user)
__isl_give isl_schedule_nodeisl_schedule_node_gist (__isl_take isl_schedule_node *node, __isl_take isl_union_set *context)
__isl_give isl_schedule_nodeisl_schedule_node_domain_intersect_domain (__isl_take isl_schedule_node *node, __isl_take isl_union_set *domain)
__isl_give isl_schedule_nodeisl_schedule_node_domain_gist_params (__isl_take isl_schedule_node *node, __isl_take isl_set *context)
static __isl_give isl_schedule_nodesubtree_expansion_enter (__isl_take isl_schedule_node *node, void *user)
static __isl_give isl_schedule_nodesubtree_expansion_leave (__isl_take isl_schedule_node *node, void *user)
__isl_give isl_union_mapisl_schedule_node_get_subtree_expansion (__isl_keep isl_schedule_node *node)
static __isl_give isl_schedule_nodesubtree_contraction_enter (__isl_take isl_schedule_node *node, void *user)
static __isl_give isl_schedule_nodesubtree_contraction_leave (__isl_take isl_schedule_node *node, void *user)
__isl_give isl_union_pw_multi_affisl_schedule_node_get_subtree_contraction (__isl_keep isl_schedule_node *node)
static isl_bool has_ancestors (__isl_keep isl_schedule_node *node, int n, enum isl_schedule_node_type *types)
static isl_bool is_disjoint_extension (__isl_keep isl_schedule_node *node, __isl_keep isl_union_map *extension)
static __isl_give isl_schedule_nodeextend_extension (__isl_take isl_schedule_node *node, __isl_take isl_union_map *extension)
static __isl_give isl_union_setreplace_by_universe_if_disjoint (__isl_take isl_union_set *uset, __isl_keep isl_union_set *ref)
static __isl_give isl_schedule_nodeinsert_extension (__isl_take isl_schedule_node *node, __isl_take isl_union_map *extension)
static __isl_give isl_schedule_nodegraft_or_splice (__isl_take isl_schedule_node *node, __isl_take isl_schedule_tree *tree, int tree_pos)
static __isl_give isl_schedule_nodegraft_extension (__isl_take isl_schedule_node *node, __isl_take isl_schedule_node *graft, int before)
static __isl_give isl_schedule_nodeextension_from_domain (__isl_take isl_schedule_node *node, __isl_keep isl_schedule_node *pos)
static __isl_give isl_schedule_nodeisl_schedule_node_graft_before_or_after (__isl_take isl_schedule_node *node, __isl_take isl_schedule_node *graft, int before)
__isl_give isl_schedule_nodeisl_schedule_node_graft_before (__isl_take isl_schedule_node *node, __isl_take isl_schedule_node *graft)
__isl_give isl_schedule_nodeisl_schedule_node_graft_after (__isl_take isl_schedule_node *node, __isl_take isl_schedule_node *graft)
static __isl_give isl_schedule_nodeisl_schedule_node_order_before_or_after (__isl_take isl_schedule_node *node, __isl_take isl_union_set *filter, int before)
__isl_give isl_schedule_nodeisl_schedule_node_order_before (__isl_take isl_schedule_node *node, __isl_take isl_union_set *filter)
__isl_give isl_schedule_nodeisl_schedule_node_order_after (__isl_take isl_schedule_node *node, __isl_take isl_union_set *filter)
__isl_give isl_schedule_nodeisl_schedule_node_reset_user (__isl_take isl_schedule_node *node)
__isl_give isl_schedule_nodeisl_schedule_node_align_params (__isl_take isl_schedule_node *node, __isl_take isl_space *space)
__isl_give isl_schedule_nodeisl_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_nodeexpand (__isl_take isl_schedule_node *node, void *user)
__isl_give isl_schedule_nodeisl_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_size isl_schedule_node_get_ancestor_child_position (__isl_keep isl_schedule_node *node, __isl_keep isl_schedule_node *ancestor)
__isl_give isl_schedule_nodeisl_schedule_node_get_shared_ancestor (__isl_keep isl_schedule_node *node1, __isl_keep isl_schedule_node *node2)
__isl_give isl_printerisl_printer_print_schedule_node (__isl_take isl_printer *p, __isl_keep isl_schedule_node *node)
void isl_schedule_node_dump (__isl_keep isl_schedule_node *node)
__isl_give char * isl_schedule_node_to_str (__isl_keep isl_schedule_node *node)

Function Documentation

◆ call_every()

◆ check_insert()

◆ check_is_sequence()

◆ check_space_multi_union_pw_aff()

◆ check_space_multi_val()

◆ collect_filter_prefix()

◆ collect_filter_prefix_expansion()

◆ collect_filter_prefix_init()

◆ collect_filter_prefix_update()

◆ collect_universe_domain_extension()

◆ expand()

◆ extend_extension()

◆ extension_from_domain()

◆ gist_done()

◆ gist_enter()

◆ gist_enter_expansion()

◆ gist_enter_extension()

◆ gist_leave()

◆ gist_leave_expansion()

◆ graft_extension()

◆ graft_or_splice()

◆ group_ancestor()

◆ group_band()

◆ group_context()

◆ group_domain()

◆ group_expansion()

◆ has_ancestors()

◆ insert_extension()

◆ is_disjoint_extension()

◆ isl_printer_print_schedule_node()

◆ isl_schedule_node_align_params()

◆ isl_schedule_node_alloc()

◆ isl_schedule_node_ancestor()

◆ isl_schedule_node_band_get_ast_build_options()

__isl_give isl_union_set * isl_schedule_node_band_get_ast_build_options ( __isl_keep isl_schedule_node * node)

◆ isl_schedule_node_band_get_ast_isolate_option()

◆ isl_schedule_node_band_get_partial_schedule()

◆ isl_schedule_node_band_get_partial_schedule_union_map()

◆ isl_schedule_node_band_get_permutable()

◆ isl_schedule_node_band_get_space()

__isl_give isl_space * isl_schedule_node_band_get_space ( __isl_keep isl_schedule_node * node)

◆ isl_schedule_node_band_gist()

◆ isl_schedule_node_band_member_get_ast_loop_type()

enum isl_ast_loop_type isl_schedule_node_band_member_get_ast_loop_type ( __isl_keep isl_schedule_node * node,
int pos )

◆ isl_schedule_node_band_member_get_coincident()

◆ isl_schedule_node_band_member_get_isolate_ast_loop_type()

enum isl_ast_loop_type isl_schedule_node_band_member_get_isolate_ast_loop_type ( __isl_keep isl_schedule_node * node,
int pos )

◆ isl_schedule_node_band_member_set_ast_loop_type()

◆ isl_schedule_node_band_member_set_coincident()

◆ isl_schedule_node_band_member_set_isolate_ast_loop_type()

__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_schedule_node_band_mod()

◆ isl_schedule_node_band_n_member()

◆ isl_schedule_node_band_scale()

◆ isl_schedule_node_band_scale_down()

◆ isl_schedule_node_band_set_ast_build_options()

◆ isl_schedule_node_band_set_permutable()

◆ isl_schedule_node_band_shift()

◆ isl_schedule_node_band_sink()

◆ isl_schedule_node_band_split()

◆ isl_schedule_node_band_tile()

◆ isl_schedule_node_child()

◆ isl_schedule_node_context_get_context()

◆ isl_schedule_node_copy()

◆ isl_schedule_node_cow()

◆ isl_schedule_node_cut()

◆ isl_schedule_node_delete()

◆ isl_schedule_node_domain_get_domain()

◆ isl_schedule_node_domain_gist_params()

◆ isl_schedule_node_domain_intersect_domain()

◆ isl_schedule_node_dump()

◆ isl_schedule_node_dup()

◆ isl_schedule_node_every_descendant()

◆ isl_schedule_node_expand()

◆ isl_schedule_node_expansion_get_contraction()

◆ isl_schedule_node_expansion_get_expansion()

◆ isl_schedule_node_expansion_set_contraction_and_expansion()

◆ isl_schedule_node_extension_get_extension()

◆ isl_schedule_node_extension_set_extension()

◆ isl_schedule_node_filter_get_filter()

◆ isl_schedule_node_filter_intersect_filter()

◆ isl_schedule_node_filter_set_filter()

◆ isl_schedule_node_first_child()

◆ isl_schedule_node_foreach_ancestor_top_down()

◆ isl_schedule_node_foreach_descendant_top_down()

◆ isl_schedule_node_free()

__isl_null isl_schedule_node * isl_schedule_node_free ( __isl_take isl_schedule_node * node)

Definition at line 228 of file isl_schedule_node.c.

References __isl_null, __isl_take, isl_schedule_free(), and isl_schedule_tree_free().

Referenced by after_in_child(), after_in_set(), after_in_subtree(), before_node(), build_ast_from_band(), build_ast_from_domain(), build_ast_from_expansion(), build_ast_from_filter(), build_ast_from_leaf(), build_ast_from_mark(), build_ast_from_schedule_node(), build_ast_from_sequence(), carry(), child_filter(), compute_component_schedule(), compute_next_band(), compute_schedule(), compute_schedule_wcc(), compute_schedule_wcc_whole(), compute_split_schedule(), compute_sub_schedule(), detect_components(), expand(), extend_extension(), extension_from_domain(), gist_enter(), gist_enter_expansion(), gist_enter_extension(), gist_leave(), gist_leave_expansion(), graft_extension(), graft_or_splice(), has_anchored_subtree(), insert_current_band(), insert_extension(), is_disjoint_extension(), isl_ast_build_free(), isl_ast_build_reset_schedule_node(), isl_ast_build_set_schedule_node(), isl_compute_flow_schedule_data_clear(), isl_scc_graph_decompose(), isl_schedule_constraints_compute_schedule(), isl_schedule_expand(), isl_schedule_foreach_schedule_node_top_down(), isl_schedule_get_map(), isl_schedule_gist_domain_params(), isl_schedule_insert_context(), isl_schedule_insert_guard(), isl_schedule_insert_partial_schedule(), isl_schedule_intersect_domain(), isl_schedule_map_schedule_node_bottom_up(), isl_schedule_node_alloc(), isl_schedule_node_ancestor(), isl_schedule_node_band_mod(), isl_schedule_node_band_scale(), isl_schedule_node_band_scale_down(), isl_schedule_node_band_set_ast_build_options(), isl_schedule_node_band_shift(), isl_schedule_node_band_sink(), isl_schedule_node_band_split(), isl_schedule_node_band_tile(), isl_schedule_node_child(), isl_schedule_node_compute_finish_band(), isl_schedule_node_compute_wcc_clustering(), isl_schedule_node_cut(), isl_schedule_node_delete(), isl_schedule_node_domain_gist_params(), isl_schedule_node_domain_intersect_domain(), isl_schedule_node_expand(), isl_schedule_node_expansion_set_contraction_and_expansion(), isl_schedule_node_extension_set_extension(), isl_schedule_node_filter_intersect_filter(), isl_schedule_node_filter_set_filter(), isl_schedule_node_foreach_ancestor_top_down(), isl_schedule_node_foreach_descendant_top_down(), isl_schedule_node_get_subtree_contraction(), isl_schedule_node_get_subtree_expansion(), isl_schedule_node_graft_before_or_after(), isl_schedule_node_graft_tree(), isl_schedule_node_group(), isl_schedule_node_insert_children(), isl_schedule_node_insert_context(), isl_schedule_node_insert_expansion(), isl_schedule_node_insert_filter(), isl_schedule_node_insert_guard(), isl_schedule_node_insert_mark(), isl_schedule_node_insert_partial_schedule(), isl_schedule_node_next_sibling(), isl_schedule_node_order_before_or_after(), isl_schedule_node_parent(), isl_schedule_node_previous_sibling(), isl_schedule_node_root(), isl_schedule_node_sequence_splice(), isl_schedule_node_sequence_splice_child(), isl_schedule_node_sequence_splice_children(), node_set_options(), preorder_enter(), recurse(), sort_statements(), split_scaled(), subtree_contraction_enter(), subtree_contraction_leave(), subtree_expansion_enter(), subtree_expansion_leave(), test_conditional_schedule_constraints(), test_schedule_tree_group_1(), test_schedule_tree_group_2(), test_schedule_tree_prefix(), test_tile(), traverse(), update_ancestors(), and isl::schedule_node::~schedule_node().

◆ isl_schedule_node_from_domain()

◆ isl_schedule_node_from_extension()

◆ isl_schedule_node_get_ancestor_child_position()

◆ isl_schedule_node_get_child()

◆ isl_schedule_node_get_child_position()

◆ isl_schedule_node_get_ctx()

isl_ctx * isl_schedule_node_get_ctx ( __isl_keep isl_schedule_node * node)

Definition at line 103 of file isl_schedule_node.c.

References __isl_keep, and isl_schedule_get_ctx().

Referenced by after_in_tree(), build_ast_from_schedule_node(), carry(), check_insert(), check_is_sequence(), check_space_multi_union_pw_aff(), check_space_multi_val(), compute_component_schedule(), compute_next_band(), compute_schedule(), compute_schedule_wcc(), compute_schedule_wcc_whole(), compute_split_schedule(), isl::schedule_node::ctx(), isl::schedule_node_band::ctx(), isl::schedule_node_context::ctx(), isl::schedule_node_domain::ctx(), isl::schedule_node_expansion::ctx(), isl::schedule_node_extension::ctx(), isl::schedule_node_filter::ctx(), isl::schedule_node_guard::ctx(), isl::schedule_node_leaf::ctx(), isl::schedule_node_mark::ctx(), isl::schedule_node_sequence::ctx(), isl::schedule_node_set::ctx(), extend_extension(), extension_from_domain(), finish_bands_clustering(), finish_bands_decompose(), group_context(), insert_current_band(), isl_schedule_insert_partial_schedule(), isl_schedule_node_ancestor(), isl_schedule_node_band_get_partial_schedule_union_map(), isl_schedule_node_band_mod(), isl_schedule_node_band_scale(), isl_schedule_node_band_scale_down(), isl_schedule_node_band_shift(), isl_schedule_node_band_sink(), isl_schedule_node_band_tile(), isl_schedule_node_child(), isl_schedule_node_compute_finish_band(), isl_schedule_node_compute_wcc_clustering(), isl_schedule_node_cut(), isl_schedule_node_delete(), isl_schedule_node_dump(), isl_schedule_node_get_ancestor_child_position(), isl_schedule_node_get_child_position(), isl_schedule_node_get_parent_type(), isl_schedule_node_get_shared_ancestor(), isl_schedule_node_graft_before_or_after(), isl_schedule_node_group(), isl_schedule_node_insert_children(), isl_schedule_node_insert_partial_schedule(), isl_schedule_node_next_sibling(), isl_schedule_node_parent(), isl_schedule_node_previous_sibling(), isl_schedule_node_sequence_splice(), isl_schedule_node_to_str(), sort_statements(), and split_scaled().

◆ isl_schedule_node_get_domain()

◆ isl_schedule_node_get_leaf()

◆ isl_schedule_node_get_parent_type()

◆ isl_schedule_node_get_prefix_schedule_multi_union_pw_aff()

◆ isl_schedule_node_get_prefix_schedule_relation()

◆ isl_schedule_node_get_prefix_schedule_union_map()

◆ isl_schedule_node_get_prefix_schedule_union_pw_multi_aff()

◆ isl_schedule_node_get_schedule()

◆ isl_schedule_node_get_schedule_depth()

◆ isl_schedule_node_get_shared_ancestor()

◆ isl_schedule_node_get_subtree_contraction()

◆ isl_schedule_node_get_subtree_expansion()

◆ isl_schedule_node_get_subtree_schedule_union_map()

◆ isl_schedule_node_get_tree()

◆ isl_schedule_node_get_tree_depth()

◆ isl_schedule_node_get_type()

◆ isl_schedule_node_get_universe_domain()

◆ isl_schedule_node_gist()

◆ isl_schedule_node_graft_after()

◆ isl_schedule_node_graft_before()

◆ isl_schedule_node_graft_before_or_after()

◆ isl_schedule_node_graft_tree()

__isl_give isl_schedule_node * isl_schedule_node_graft_tree ( __isl_take isl_schedule_node * pos,
__isl_take isl_schedule_tree * tree )

Definition at line 2490 of file isl_schedule_node.c.

References __isl_give, __isl_take, isl_schedule_node_cow(), isl_schedule_node_free(), isl_schedule_tree_free(), pos(), tree, and update_ancestors().

Referenced by expand(), extension_from_domain(), gist_leave(), graft_or_splice(), isl_schedule_node_align_params(), isl_schedule_node_band_gist(), isl_schedule_node_band_member_set_ast_loop_type(), isl_schedule_node_band_member_set_coincident(), isl_schedule_node_band_member_set_isolate_ast_loop_type(), isl_schedule_node_band_mod(), isl_schedule_node_band_scale(), isl_schedule_node_band_scale_down(), isl_schedule_node_band_set_ast_build_options(), isl_schedule_node_band_set_permutable(), isl_schedule_node_band_shift(), isl_schedule_node_band_sink(), isl_schedule_node_band_split(), isl_schedule_node_band_tile(), isl_schedule_node_cut(), isl_schedule_node_delete(), isl_schedule_node_domain_gist_params(), isl_schedule_node_domain_intersect_domain(), isl_schedule_node_expansion_set_contraction_and_expansion(), isl_schedule_node_extension_set_extension(), isl_schedule_node_filter_set_filter(), isl_schedule_node_insert_children(), isl_schedule_node_insert_context(), isl_schedule_node_insert_expansion(), isl_schedule_node_insert_extension(), isl_schedule_node_insert_filter(), isl_schedule_node_insert_guard(), isl_schedule_node_insert_mark(), isl_schedule_node_insert_partial_schedule(), isl_schedule_node_pullback_union_pw_multi_aff(), isl_schedule_node_reset_user(), and isl_schedule_node_sequence_splice().

◆ isl_schedule_node_grandchild()

◆ isl_schedule_node_grandparent()

◆ isl_schedule_node_group()

__isl_give isl_schedule_node * isl_schedule_node_group ( __isl_take isl_schedule_node * node,
__isl_take isl_id * group_id )

Definition at line 3255 of file isl_schedule_node.c.

References __isl_give, __isl_take, check_insert(), isl_schedule_group_data::contraction, isl_schedule_group_data::dim, domain, isl_schedule_group_data::domain, isl_schedule_group_data::domain_universe, isl_schedule_group_data::expansion, isl_schedule_group_data::group, group_ancestor(), isl_schedule_group_data::group_universe, isl_die, isl_dim_set, isl_error_invalid, isl_id_free(), isl_schedule_node_child(), isl_schedule_node_free(), isl_schedule_node_get_ctx(), isl_schedule_node_get_domain(), isl_schedule_node_get_prefix_schedule_multi_union_pw_aff(), isl_schedule_node_get_schedule_depth(), isl_schedule_node_insert_expansion(), isl_set, isl_set_universe(), isl_space_copy(), isl_space_map_from_set(), isl_space_set_alloc(), isl_space_set_tuple_id(), isl_union_map_copy(), isl_union_map_domain(), isl_union_map_free(), isl_union_map_from_domain_and_range(), isl_union_map_from_union_pw_multi_aff(), isl_union_map_intersect_range(), isl_union_map_reverse(), isl_union_map_universe(), isl_union_pw_multi_aff_copy(), isl_union_pw_multi_aff_free(), isl_union_pw_multi_aff_from_multi_union_pw_aff(), isl_union_pw_multi_aff_from_union_map(), isl_union_pw_multi_aff_intersect_domain(), isl_union_set, isl_union_set_coalesce(), isl_union_set_copy(), isl_union_set_free(), isl_union_set_from_set(), isl_union_set_is_disjoint(), isl_union_set_universe(), isl_schedule_group_data::sched, set, and update_ancestors().

Referenced by test_schedule_tree_group_1(), and test_schedule_tree_group_2().

◆ isl_schedule_node_guard_get_guard()

__isl_give isl_set * isl_schedule_node_guard_get_guard ( __isl_keep isl_schedule_node * node)

◆ isl_schedule_node_has_children()

◆ isl_schedule_node_has_next_sibling()

◆ isl_schedule_node_has_parent()

◆ isl_schedule_node_has_previous_sibling()

◆ isl_schedule_node_insert_children()

◆ isl_schedule_node_insert_context()

◆ isl_schedule_node_insert_expansion()

◆ isl_schedule_node_insert_extension()

◆ isl_schedule_node_insert_filter()

◆ isl_schedule_node_insert_guard()

◆ isl_schedule_node_insert_mark()

◆ isl_schedule_node_insert_partial_schedule()

◆ isl_schedule_node_insert_sequence()

◆ isl_schedule_node_insert_set()

◆ isl_schedule_node_is_equal()

◆ isl_schedule_node_is_subtree_anchored()

◆ isl_schedule_node_map_descendant_bottom_up()

◆ isl_schedule_node_mark_get_id()

__isl_give isl_id * isl_schedule_node_mark_get_id ( __isl_keep isl_schedule_node * node)

◆ isl_schedule_node_n_children()

◆ isl_schedule_node_next_sibling()

◆ isl_schedule_node_order_after()

◆ isl_schedule_node_order_before()

◆ isl_schedule_node_order_before_or_after()

◆ isl_schedule_node_parent()

◆ isl_schedule_node_peek_leaf()

◆ isl_schedule_node_previous_sibling()

◆ isl_schedule_node_pullback_union_pw_multi_aff()

◆ isl_schedule_node_reset_user()

◆ isl_schedule_node_root()

◆ isl_schedule_node_sequence_splice()

◆ isl_schedule_node_sequence_splice_child()

◆ isl_schedule_node_sequence_splice_children()

◆ isl_schedule_node_to_str()

◆ locally_covered_by_domain()

◆ postorder_enter()

__isl_give isl_schedule_node * postorder_enter ( __isl_take isl_schedule_node * node,
void * user )
static

◆ postorder_leave()

◆ preorder_enter()

◆ preorder_leave()

__isl_give isl_schedule_node * preorder_leave ( __isl_take isl_schedule_node * node,
void * user )
static

Definition at line 1398 of file isl_schedule_node.c.

References __isl_give, __isl_take, and user.

◆ replace_by_universe_if_disjoint()

◆ subtree_contraction_enter()

◆ subtree_contraction_leave()

◆ subtree_expansion_enter()

◆ subtree_expansion_leave()

◆ traverse()

◆ union_set_drop_extra_params()

◆ update_ancestors()