Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:48:19

0001 #ifndef ISL_SCHEDULE_NODE_H
0002 #define ISL_SCHEDULE_NODE_H
0003 
0004 #include <isl/schedule_type.h>
0005 #include <isl/union_set_type.h>
0006 #include <isl/aff_type.h>
0007 #include <isl/ast_type.h>
0008 #include <isl/val_type.h>
0009 #include <isl/space_type.h>
0010 #include <isl/id_type.h>
0011 #include <isl/set_type.h>
0012 
0013 #if defined(__cplusplus)
0014 extern "C" {
0015 #endif
0016 
0017 __isl_export
0018 __isl_give isl_schedule_node *isl_schedule_node_from_domain(
0019     __isl_take isl_union_set *domain);
0020 __isl_export
0021 __isl_give isl_schedule_node *isl_schedule_node_from_extension(
0022     __isl_take isl_union_map *extension);
0023 __isl_give isl_schedule_node *isl_schedule_node_copy(
0024     __isl_keep isl_schedule_node *node);
0025 __isl_null isl_schedule_node *isl_schedule_node_free(
0026     __isl_take isl_schedule_node *node);
0027 
0028 __isl_export
0029 isl_bool isl_schedule_node_is_equal(__isl_keep isl_schedule_node *node1,
0030     __isl_keep isl_schedule_node *node2);
0031 
0032 isl_ctx *isl_schedule_node_get_ctx(__isl_keep isl_schedule_node *node);
0033 __isl_subclass(isl_schedule_node)
0034 enum isl_schedule_node_type isl_schedule_node_get_type(
0035     __isl_keep isl_schedule_node *node);
0036 enum isl_schedule_node_type isl_schedule_node_get_parent_type(
0037     __isl_keep isl_schedule_node *node);
0038 __isl_export
0039 __isl_give isl_schedule *isl_schedule_node_get_schedule(
0040     __isl_keep isl_schedule_node *node);
0041 
0042 __isl_export
0043 isl_stat isl_schedule_node_foreach_descendant_top_down(
0044     __isl_keep isl_schedule_node *node,
0045     isl_bool (*fn)(__isl_keep isl_schedule_node *node, void *user),
0046     void *user);
0047 __isl_export
0048 isl_bool isl_schedule_node_every_descendant(__isl_keep isl_schedule_node *node,
0049     isl_bool (*test)(__isl_keep isl_schedule_node *node, void *user),
0050     void *user);
0051 __isl_export
0052 isl_stat isl_schedule_node_foreach_ancestor_top_down(
0053     __isl_keep isl_schedule_node *node,
0054     isl_stat (*fn)(__isl_keep isl_schedule_node *node, void *user),
0055     void *user);
0056 __isl_export
0057 __isl_give isl_schedule_node *isl_schedule_node_map_descendant_bottom_up(
0058     __isl_take isl_schedule_node *node,
0059     __isl_give isl_schedule_node *(*fn)(__isl_take isl_schedule_node *node,
0060         void *user), void *user);
0061 
0062 __isl_export
0063 isl_size isl_schedule_node_get_tree_depth(__isl_keep isl_schedule_node *node);
0064 __isl_export
0065 isl_bool isl_schedule_node_has_parent(__isl_keep isl_schedule_node *node);
0066 __isl_export
0067 isl_bool isl_schedule_node_has_children(__isl_keep isl_schedule_node *node);
0068 __isl_export
0069 isl_bool isl_schedule_node_has_previous_sibling(
0070     __isl_keep isl_schedule_node *node);
0071 __isl_export
0072 isl_bool isl_schedule_node_has_next_sibling(__isl_keep isl_schedule_node *node);
0073 __isl_export
0074 isl_size isl_schedule_node_n_children(__isl_keep isl_schedule_node *node);
0075 __isl_export
0076 isl_size isl_schedule_node_get_child_position(
0077     __isl_keep isl_schedule_node *node);
0078 __isl_export
0079 isl_size isl_schedule_node_get_ancestor_child_position(
0080     __isl_keep isl_schedule_node *node,
0081     __isl_keep isl_schedule_node *ancestor);
0082 __isl_give isl_schedule_node *isl_schedule_node_get_child(
0083     __isl_keep isl_schedule_node *node, int pos);
0084 __isl_export
0085 __isl_give isl_schedule_node *isl_schedule_node_get_shared_ancestor(
0086     __isl_keep isl_schedule_node *node1,
0087     __isl_keep isl_schedule_node *node2);
0088 
0089 __isl_export
0090 __isl_give isl_schedule_node *isl_schedule_node_root(
0091     __isl_take isl_schedule_node *node);
0092 __isl_export
0093 __isl_give isl_schedule_node *isl_schedule_node_parent(
0094     __isl_take isl_schedule_node *node);
0095 __isl_give isl_schedule_node *isl_schedule_node_grandparent(
0096     __isl_take isl_schedule_node *node);
0097 __isl_export
0098 __isl_give isl_schedule_node *isl_schedule_node_ancestor(
0099     __isl_take isl_schedule_node *node, int generation);
0100 __isl_export
0101 __isl_give isl_schedule_node *isl_schedule_node_child(
0102     __isl_take isl_schedule_node *node, int pos);
0103 __isl_give isl_schedule_node *isl_schedule_node_grandchild(
0104     __isl_take isl_schedule_node *node, int pos1, int pos2);
0105 __isl_export
0106 __isl_give isl_schedule_node *isl_schedule_node_first_child(
0107     __isl_take isl_schedule_node *node);
0108 __isl_export
0109 __isl_give isl_schedule_node *isl_schedule_node_previous_sibling(
0110     __isl_take isl_schedule_node *node);
0111 __isl_export
0112 __isl_give isl_schedule_node *isl_schedule_node_next_sibling(
0113     __isl_take isl_schedule_node *node);
0114 
0115 __isl_export
0116 isl_bool isl_schedule_node_is_subtree_anchored(
0117     __isl_keep isl_schedule_node *node);
0118 
0119 __isl_give isl_schedule_node *isl_schedule_node_group(
0120     __isl_take isl_schedule_node *node, __isl_take isl_id *group_id);
0121 
0122 __isl_give isl_schedule_node *isl_schedule_node_sequence_splice_child(
0123     __isl_take isl_schedule_node *node, int pos);
0124 __isl_give isl_schedule_node *isl_schedule_node_sequence_splice_children(
0125     __isl_take isl_schedule_node *node);
0126 
0127 __isl_give isl_space *isl_schedule_node_band_get_space(
0128     __isl_keep isl_schedule_node *node);
0129 __isl_export
0130 __isl_give isl_multi_union_pw_aff *isl_schedule_node_band_get_partial_schedule(
0131     __isl_keep isl_schedule_node *node);
0132 __isl_give isl_union_map *isl_schedule_node_band_get_partial_schedule_union_map(
0133     __isl_keep isl_schedule_node *node);
0134 enum isl_ast_loop_type isl_schedule_node_band_member_get_ast_loop_type(
0135     __isl_keep isl_schedule_node *node, int pos);
0136 __isl_export
0137 __isl_give isl_schedule_node *isl_schedule_node_band_member_set_ast_loop_type(
0138     __isl_take isl_schedule_node *node, int pos,
0139     enum isl_ast_loop_type type);
0140 enum isl_ast_loop_type isl_schedule_node_band_member_get_isolate_ast_loop_type(
0141     __isl_keep isl_schedule_node *node, int pos);
0142 __isl_give isl_schedule_node *
0143 isl_schedule_node_band_member_set_isolate_ast_loop_type(
0144     __isl_take isl_schedule_node *node, int pos,
0145     enum isl_ast_loop_type type);
0146 __isl_export
0147 __isl_give isl_union_set *isl_schedule_node_band_get_ast_build_options(
0148     __isl_keep isl_schedule_node *node);
0149 __isl_export
0150 __isl_give isl_schedule_node *isl_schedule_node_band_set_ast_build_options(
0151     __isl_take isl_schedule_node *node, __isl_take isl_union_set *options);
0152 __isl_export
0153 __isl_give isl_set *isl_schedule_node_band_get_ast_isolate_option(
0154     __isl_keep isl_schedule_node *node);
0155 __isl_export
0156 isl_size isl_schedule_node_band_n_member(__isl_keep isl_schedule_node *node);
0157 __isl_export
0158 isl_bool isl_schedule_node_band_member_get_coincident(
0159     __isl_keep isl_schedule_node *node, int pos);
0160 __isl_export
0161 __isl_give isl_schedule_node *isl_schedule_node_band_member_set_coincident(
0162     __isl_take isl_schedule_node *node, int pos, int coincident);
0163 __isl_export
0164 isl_bool isl_schedule_node_band_get_permutable(
0165     __isl_keep isl_schedule_node *node);
0166 __isl_export
0167 __isl_give isl_schedule_node *isl_schedule_node_band_set_permutable(
0168     __isl_take isl_schedule_node *node, int permutable);
0169 
0170 isl_stat isl_options_set_tile_scale_tile_loops(isl_ctx *ctx, int val);
0171 int isl_options_get_tile_scale_tile_loops(isl_ctx *ctx);
0172 isl_stat isl_options_set_tile_shift_point_loops(isl_ctx *ctx, int val);
0173 int isl_options_get_tile_shift_point_loops(isl_ctx *ctx);
0174 
0175 __isl_export
0176 __isl_give isl_schedule_node *isl_schedule_node_band_scale(
0177     __isl_take isl_schedule_node *node, __isl_take isl_multi_val *mv);
0178 __isl_export
0179 __isl_give isl_schedule_node *isl_schedule_node_band_scale_down(
0180     __isl_take isl_schedule_node *node, __isl_take isl_multi_val *mv);
0181 __isl_export
0182 __isl_give isl_schedule_node *isl_schedule_node_band_mod(
0183     __isl_take isl_schedule_node *node, __isl_take isl_multi_val *mv);
0184 __isl_export
0185 __isl_give isl_schedule_node *isl_schedule_node_band_shift(
0186     __isl_take isl_schedule_node *node,
0187     __isl_take isl_multi_union_pw_aff *shift);
0188 __isl_export
0189 __isl_give isl_schedule_node *isl_schedule_node_band_tile(
0190     __isl_take isl_schedule_node *node, __isl_take isl_multi_val *sizes);
0191 __isl_give isl_schedule_node *isl_schedule_node_band_sink(
0192     __isl_take isl_schedule_node *node);
0193 __isl_export
0194 __isl_give isl_schedule_node *isl_schedule_node_band_split(
0195     __isl_take isl_schedule_node *node, int pos);
0196 
0197 __isl_export
0198 __isl_give isl_set *isl_schedule_node_context_get_context(
0199     __isl_keep isl_schedule_node *node);
0200 __isl_export
0201 __isl_give isl_union_set *isl_schedule_node_domain_get_domain(
0202     __isl_keep isl_schedule_node *node);
0203 __isl_export
0204 __isl_give isl_union_map *isl_schedule_node_expansion_get_expansion(
0205     __isl_keep isl_schedule_node *node);
0206 __isl_export
0207 __isl_give isl_union_pw_multi_aff *isl_schedule_node_expansion_get_contraction(
0208     __isl_keep isl_schedule_node *node);
0209 __isl_export
0210 __isl_give isl_union_map *isl_schedule_node_extension_get_extension(
0211     __isl_keep isl_schedule_node *node);
0212 __isl_export
0213 __isl_give isl_union_set *isl_schedule_node_filter_get_filter(
0214     __isl_keep isl_schedule_node *node);
0215 __isl_export
0216 __isl_give isl_set *isl_schedule_node_guard_get_guard(
0217     __isl_keep isl_schedule_node *node);
0218 __isl_give isl_id *isl_schedule_node_mark_get_id(
0219     __isl_keep isl_schedule_node *node);
0220 
0221 isl_size isl_schedule_node_get_schedule_depth(
0222     __isl_keep isl_schedule_node *node);
0223 __isl_give isl_union_set *isl_schedule_node_get_domain(
0224     __isl_keep isl_schedule_node *node);
0225 __isl_give isl_union_set *isl_schedule_node_get_universe_domain(
0226     __isl_keep isl_schedule_node *node);
0227 __isl_export
0228 __isl_give isl_multi_union_pw_aff *
0229 isl_schedule_node_get_prefix_schedule_multi_union_pw_aff(
0230     __isl_keep isl_schedule_node *node);
0231 __isl_export
0232 __isl_give isl_union_pw_multi_aff *
0233 isl_schedule_node_get_prefix_schedule_union_pw_multi_aff(
0234     __isl_keep isl_schedule_node *node);
0235 __isl_export
0236 __isl_give isl_union_map *isl_schedule_node_get_prefix_schedule_union_map(
0237     __isl_keep isl_schedule_node *node);
0238 __isl_give isl_union_map *isl_schedule_node_get_prefix_schedule_relation(
0239     __isl_keep isl_schedule_node *node);
0240 __isl_give isl_union_map *isl_schedule_node_get_subtree_schedule_union_map(
0241     __isl_keep isl_schedule_node *node);
0242 __isl_give isl_union_map *isl_schedule_node_get_subtree_expansion(
0243     __isl_keep isl_schedule_node *node);
0244 __isl_give isl_union_pw_multi_aff *isl_schedule_node_get_subtree_contraction(
0245     __isl_keep isl_schedule_node *node);
0246 
0247 __isl_export
0248 __isl_give isl_schedule_node *isl_schedule_node_insert_context(
0249     __isl_take isl_schedule_node *node, __isl_take isl_set *context);
0250 __isl_export
0251 __isl_give isl_schedule_node *isl_schedule_node_insert_partial_schedule(
0252     __isl_take isl_schedule_node *node,
0253     __isl_take isl_multi_union_pw_aff *schedule);
0254 __isl_export
0255 __isl_give isl_schedule_node *isl_schedule_node_insert_filter(
0256     __isl_take isl_schedule_node *node, __isl_take isl_union_set *filter);
0257 __isl_export
0258 __isl_give isl_schedule_node *isl_schedule_node_insert_guard(
0259     __isl_take isl_schedule_node *node, __isl_take isl_set *context);
0260 __isl_export
0261 __isl_give isl_schedule_node *isl_schedule_node_insert_mark(
0262     __isl_take isl_schedule_node *node, __isl_take isl_id *mark);
0263 __isl_export
0264 __isl_give isl_schedule_node *isl_schedule_node_insert_sequence(
0265     __isl_take isl_schedule_node *node,
0266     __isl_take isl_union_set_list *filters);
0267 __isl_export
0268 __isl_give isl_schedule_node *isl_schedule_node_insert_set(
0269     __isl_take isl_schedule_node *node,
0270     __isl_take isl_union_set_list *filters);
0271 
0272 __isl_give isl_schedule_node *isl_schedule_node_cut(
0273     __isl_take isl_schedule_node *node);
0274 __isl_give isl_schedule_node *isl_schedule_node_delete(
0275     __isl_take isl_schedule_node *node);
0276 
0277 __isl_export
0278 __isl_give isl_schedule_node *isl_schedule_node_order_before(
0279     __isl_take isl_schedule_node *node, __isl_take isl_union_set *filter);
0280 __isl_export
0281 __isl_give isl_schedule_node *isl_schedule_node_order_after(
0282     __isl_take isl_schedule_node *node, __isl_take isl_union_set *filter);
0283 
0284 __isl_export
0285 __isl_give isl_schedule_node *isl_schedule_node_graft_before(
0286     __isl_take isl_schedule_node *node,
0287     __isl_take isl_schedule_node *graft);
0288 __isl_export
0289 __isl_give isl_schedule_node *isl_schedule_node_graft_after(
0290     __isl_take isl_schedule_node *node,
0291     __isl_take isl_schedule_node *graft);
0292 
0293 __isl_give isl_schedule_node *isl_schedule_node_reset_user(
0294     __isl_take isl_schedule_node *node);
0295 __isl_give isl_schedule_node *isl_schedule_node_align_params(
0296     __isl_take isl_schedule_node *node, __isl_take isl_space *space);
0297 
0298 __isl_give isl_printer *isl_printer_print_schedule_node(
0299     __isl_take isl_printer *p, __isl_keep isl_schedule_node *node);
0300 void isl_schedule_node_dump(__isl_keep isl_schedule_node *node);
0301 __isl_give char *isl_schedule_node_to_str(__isl_keep isl_schedule_node *node);
0302 
0303 #if defined(__cplusplus)
0304 }
0305 #endif
0306 
0307 #endif