dcb6d7ad28b6f2092f57684388fe8cce946d8a9e
[platform/upstream/isl.git] / isl_schedule_private.h
1 #ifndef ISL_SCHEDLUE_PRIVATE_H
2 #define ISL_SCHEDLUE_PRIVATE_H
3
4 #include <isl/schedule.h>
5
6 /* The schedule for an individual domain, plus information about the bands.
7  * In particular, we keep track of the number of bands and for each
8  * band, the starting position of the next band.  The first band starts at
9  * position 0.
10  */
11 struct isl_schedule_node {
12         isl_map *sched;
13         int      n_band;
14         int     *band_end;
15         int     *band_id;
16 };
17
18 /* Information about the computed schedule.
19  * n is the number of nodes/domains/statements.
20  * n_band is the maximal number of bands.
21  * n_total_row is the number of coordinates of the schedule.
22  * dim contains a description of the parameters.
23  */
24 struct isl_schedule {
25         int ref;
26
27         int n;
28         int n_band;
29         int n_total_row;
30         isl_dim *dim;
31
32         struct isl_schedule_node node[1];
33 };
34
35 #endif