f5c31cf342a48c69406371d4054aa5e53ac9213d
[platform/upstream/isl.git] / include / isl / band.h
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
8 #if defined(__cplusplus)
9 extern "C" {
10 #endif
11
12 struct isl_band;
13 typedef struct isl_band isl_band;
14
15 __isl_give isl_band *isl_band_copy(__isl_keep isl_band *band);
16 void *isl_band_free(__isl_take isl_band *band);
17
18 isl_ctx *isl_band_get_ctx(__isl_keep isl_band *band);
19
20 int isl_band_has_children(__isl_keep isl_band *band);
21 __isl_give isl_band_list *isl_band_get_children(
22         __isl_keep isl_band *band);
23
24 __isl_give isl_union_map *isl_band_get_prefix_schedule(
25         __isl_keep isl_band *band);
26 __isl_give isl_union_map *isl_band_get_partial_schedule(
27         __isl_keep isl_band *band);
28 __isl_give isl_union_map *isl_band_get_suffix_schedule(
29         __isl_keep isl_band *band);
30
31 int isl_band_n_member(__isl_keep isl_band *band);
32 int isl_band_member_is_zero_distance(__isl_keep isl_band *band, int pos);
33
34 __isl_give isl_printer *isl_printer_print_band(__isl_take isl_printer *p,
35         __isl_keep isl_band *band);
36 void isl_band_dump(__isl_keep isl_band *band);
37
38 #if defined(__cplusplus)
39 }
40 #endif
41
42 #endif