1 #ifndef ISL_BAND_H 2 #define ISL_BAND_H 3 4 #include <isl/printer.h> 5 #include <isl/list.h> 6 #include <isl/union_map_type.h> 7 #include <isl/vec.h> 8 9 #if defined(__cplusplus) 10 extern "C" { 11 #endif 12 13 struct isl_band; 14 typedef struct isl_band isl_band; 15 16 __isl_give isl_band *isl_band_copy(__isl_keep isl_band *band); 17 void *isl_band_free(__isl_take isl_band *band); 18 19 isl_ctx *isl_band_get_ctx(__isl_keep isl_band *band); 20 21 int isl_band_has_children(__isl_keep isl_band *band); 22 __isl_give isl_band_list *isl_band_get_children( 23 __isl_keep isl_band *band); 24 25 __isl_give isl_union_map *isl_band_get_prefix_schedule( 26 __isl_keep isl_band *band); 27 __isl_give isl_union_map *isl_band_get_partial_schedule( 28 __isl_keep isl_band *band); 29 __isl_give isl_union_map *isl_band_get_suffix_schedule( 30 __isl_keep isl_band *band); 31 32 int isl_options_set_tile_scale_tile_loops(isl_ctx *ctx, int val); 33 int isl_options_get_tile_scale_tile_loops(isl_ctx *ctx); 34 35 int isl_band_tile(__isl_keep isl_band *band, __isl_take isl_vec *sizes); 36 37 int isl_band_n_member(__isl_keep isl_band *band); 38 int isl_band_member_is_zero_distance(__isl_keep isl_band *band, int pos); 39 40 int isl_band_list_foreach_band(__isl_keep isl_band_list *list, 41 int (*fn)(__isl_keep isl_band *band, void *user), void *user); 42 43 __isl_give isl_printer *isl_printer_print_band(__isl_take isl_printer *p, 44 __isl_keep isl_band *band); 45 void isl_band_dump(__isl_keep isl_band *band); 46 47 #if defined(__cplusplus) 48 } 49 #endif 50 51 #endif 52