Polly 19.0.0git
schedule_node.h
Go to the documentation of this file.
1#ifndef ISL_SCHEDULE_NODE_H
2#define ISL_SCHEDULE_NODE_H
3
4#include <isl/schedule_type.h>
6#include <isl/aff_type.h>
7#include <isl/ast_type.h>
8#include <isl/val_type.h>
9#include <isl/space_type.h>
10#include <isl/id_type.h>
11#include <isl/set_type.h>
12
13#if defined(__cplusplus)
14extern "C" {
15#endif
16
22 __isl_take isl_union_map *extension);
27
31
41
46 void *user);
50 void *user);
55 void *user);
60 void *user), void *user);
61
88
99 __isl_take isl_schedule_node *node, int generation);
102 __isl_take isl_schedule_node *node, int pos);
104 __isl_take isl_schedule_node *node, int pos1, int pos2);
114
118
121
123 __isl_take isl_schedule_node *node, int pos);
126
135 __isl_keep isl_schedule_node *node, int pos);
141 __isl_keep isl_schedule_node *node, int pos);
159 __isl_keep isl_schedule_node *node, int pos);
162 __isl_take isl_schedule_node *node, int pos, int coincident);
168 __isl_take isl_schedule_node *node, int permutable);
169
174
195 __isl_take isl_schedule_node *node, int pos);
196
220
246
271
276
283
292
297
302
303#if defined(__cplusplus)
304}
305#endif
306
307#endif
struct isl_union_pw_multi_aff isl_union_pw_multi_aff
Definition: aff_type.h:38
struct isl_multi_union_pw_aff isl_multi_union_pw_aff
Definition: aff_type.h:46
isl_ast_loop_type
Definition: ast_type.h:91
#define __isl_export
Definition: ctx.h:31
#define __isl_take
Definition: ctx.h:22
isl_stat
Definition: ctx.h:84
#define __isl_give
Definition: ctx.h:19
#define __isl_null
Definition: ctx.h:28
#define __isl_subclass(super)
Definition: ctx.h:40
#define __isl_keep
Definition: ctx.h:25
int isl_size
Definition: ctx.h:96
isl_bool
Definition: ctx.h:89
__isl_export __isl_give ISL_HMAP __isl_take ISL_KEY __isl_take ISL_VAL * val
Definition: hmap.h:32
isl_stat isl_stat(* fn)(__isl_take ISL_KEY *key, __isl_take ISL_VAL *val, void *user)
Definition: hmap.h:37
isl_stat isl_stat(*) void user)
Definition: hmap.h:39
isl_bool isl_bool(* test)(__isl_keep ISL_KEY *key, __isl_keep ISL_VAL *val, void *user)
Definition: hmap.h:41
static unsigned pos(__isl_keep isl_space *space, enum isl_dim_type type)
Definition: isl_map.c:70
enum isl_schedule_node_type isl_schedule_node_get_type(__isl_keep isl_schedule_node *node)
enum isl_fold type
Definition: isl_test.c:4017
const char * schedule
Definition: isl_test.c:10697
const char * p
Definition: isl_test.c:8643
const char * context
Definition: isl_test.c:1784
const char * sizes
Definition: isl_test.c:10698
#define isl_union_set_list
struct isl_set isl_set
Definition: map_type.h:26
__isl_export isl_size isl_schedule_node_band_n_member(__isl_keep isl_schedule_node *node)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_insert_context(__isl_take isl_schedule_node *node, __isl_take isl_set *context)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_insert_mark(__isl_take isl_schedule_node *node, __isl_take isl_id *mark)
__isl_give isl_schedule_node * isl_schedule_node_band_sink(__isl_take 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)
enum isl_schedule_node_type isl_schedule_node_get_parent_type(__isl_keep isl_schedule_node *node)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_band_scale_down(__isl_take isl_schedule_node *node, __isl_take isl_multi_val *mv)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_band_split(__isl_take isl_schedule_node *node, int pos)
__isl_export isl_bool isl_schedule_node_has_previous_sibling(__isl_keep isl_schedule_node *node)
__isl_export isl_bool isl_schedule_node_is_equal(__isl_keep isl_schedule_node *node1, __isl_keep isl_schedule_node *node2)
__isl_give isl_schedule_node * isl_schedule_node_group(__isl_take isl_schedule_node *node, __isl_take isl_id *group_id)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_first_child(__isl_take isl_schedule_node *node)
__isl_export __isl_give isl_multi_union_pw_aff * isl_schedule_node_get_prefix_schedule_multi_union_pw_aff(__isl_keep isl_schedule_node *node)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_insert_filter(__isl_take isl_schedule_node *node, __isl_take isl_union_set *filter)
__isl_give isl_union_map * isl_schedule_node_get_subtree_expansion(__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_schedule_node * isl_schedule_node_get_shared_ancestor(__isl_keep isl_schedule_node *node1, __isl_keep isl_schedule_node *node2)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_ancestor(__isl_take isl_schedule_node *node, int generation)
__isl_give isl_schedule_node * isl_schedule_node_reset_user(__isl_take isl_schedule_node *node)
__isl_export __isl_give isl_union_map * isl_schedule_node_expansion_get_expansion(__isl_keep isl_schedule_node *node)
int isl_options_get_tile_scale_tile_loops(isl_ctx *ctx)
__isl_export isl_size isl_schedule_node_get_tree_depth(__isl_keep isl_schedule_node *node)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_band_member_set_coincident(__isl_take isl_schedule_node *node, int pos, int coincident)
__isl_give isl_schedule_node * isl_schedule_node_grandchild(__isl_take isl_schedule_node *node, int pos1, int pos2)
__isl_export __isl_give isl_schedule * isl_schedule_node_get_schedule(__isl_keep isl_schedule_node *node)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_order_before(__isl_take isl_schedule_node *node, __isl_take isl_union_set *filter)
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_union_map * isl_schedule_node_get_prefix_schedule_relation(__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_sequence_splice_child(__isl_take isl_schedule_node *node, int pos)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_previous_sibling(__isl_take isl_schedule_node *node)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_band_tile(__isl_take isl_schedule_node *node, __isl_take isl_multi_val *sizes)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_insert_guard(__isl_take isl_schedule_node *node, __isl_take isl_set *context)
__isl_export 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_space * isl_schedule_node_band_get_space(__isl_keep isl_schedule_node *node)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_band_set_permutable(__isl_take isl_schedule_node *node, int permutable)
void isl_schedule_node_dump(__isl_keep isl_schedule_node *node)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_band_mod(__isl_take isl_schedule_node *node, __isl_take isl_multi_val *mv)
__isl_export __isl_give isl_union_map * isl_schedule_node_extension_get_extension(__isl_keep isl_schedule_node *node)
__isl_export 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_size isl_schedule_node_get_schedule_depth(__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_export __isl_give isl_union_pw_multi_aff * isl_schedule_node_get_prefix_schedule_union_pw_multi_aff(__isl_keep isl_schedule_node *node)
__isl_export isl_size isl_schedule_node_get_child_position(__isl_keep isl_schedule_node *node)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_graft_before(__isl_take isl_schedule_node *node, __isl_take isl_schedule_node *graft)
__isl_export isl_bool isl_schedule_node_has_children(__isl_keep isl_schedule_node *node)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_insert_partial_schedule(__isl_take isl_schedule_node *node, __isl_take isl_multi_union_pw_aff *schedule)
__isl_give isl_id * isl_schedule_node_mark_get_id(__isl_keep isl_schedule_node *node)
__isl_give isl_union_map * isl_schedule_node_band_get_partial_schedule_union_map(__isl_keep isl_schedule_node *node)
__isl_export __isl_give isl_union_pw_multi_aff * isl_schedule_node_expansion_get_contraction(__isl_keep isl_schedule_node *node)
__isl_export __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_export __isl_give isl_schedule_node * isl_schedule_node_from_extension(__isl_take isl_union_map *extension)
__isl_export __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)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_root(__isl_take isl_schedule_node *node)
__isl_export isl_bool isl_schedule_node_is_subtree_anchored(__isl_keep isl_schedule_node *node)
__isl_give isl_schedule_node * isl_schedule_node_sequence_splice_children(__isl_take isl_schedule_node *node)
int isl_options_get_tile_shift_point_loops(isl_ctx *ctx)
isl_stat isl_options_set_tile_scale_tile_loops(isl_ctx *ctx, int val)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_order_after(__isl_take isl_schedule_node *node, __isl_take isl_union_set *filter)
__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_band_get_ast_isolate_option(__isl_keep isl_schedule_node *node)
__isl_export __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_export __isl_give isl_set * isl_schedule_node_context_get_context(__isl_keep isl_schedule_node *node)
__isl_export isl_bool isl_schedule_node_has_next_sibling(__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_export __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_union_set * isl_schedule_node_get_domain(__isl_keep isl_schedule_node *node)
__isl_export isl_bool isl_schedule_node_band_member_get_coincident(__isl_keep isl_schedule_node *node, int pos)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_from_domain(__isl_take isl_union_set *domain)
__isl_export 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)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_parent(__isl_take isl_schedule_node *node)
__isl_export isl_bool isl_schedule_node_band_get_permutable(__isl_keep isl_schedule_node *node)
__isl_export __isl_give isl_union_set * isl_schedule_node_band_get_ast_build_options(__isl_keep isl_schedule_node *node)
__isl_give isl_union_set * isl_schedule_node_get_universe_domain(__isl_keep isl_schedule_node *node)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_graft_after(__isl_take isl_schedule_node *node, __isl_take isl_schedule_node *graft)
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_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_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_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)
__isl_export __isl_give isl_set * isl_schedule_node_guard_get_guard(__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_export __isl_give isl_schedule_node * isl_schedule_node_insert_sequence(__isl_take isl_schedule_node *node, __isl_take isl_union_set_list *filters)
isl_ctx * isl_schedule_node_get_ctx(__isl_keep isl_schedule_node *node)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_next_sibling(__isl_take 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_bool isl_schedule_node_has_parent(__isl_keep isl_schedule_node *node)
__isl_export __isl_give isl_schedule_node * isl_schedule_node_child(__isl_take isl_schedule_node *node, int pos)
__isl_export isl_size isl_schedule_node_get_ancestor_child_position(__isl_keep isl_schedule_node *node, __isl_keep isl_schedule_node *ancestor)
isl_stat isl_options_set_tile_shift_point_loops(isl_ctx *ctx, int val)
__isl_give isl_schedule_node * isl_schedule_node_delete(__isl_take isl_schedule_node *node)
__isl_export __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)
__isl_export __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_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_schedule_node_type
Definition: schedule_type.h:8
static Signature domain
struct isl_union_set isl_union_set
struct isl_multi_val isl_multi_val
Definition: val_type.h:16