Home | History | Annotate | Download | only in isl
      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