isl 0.08
[isl.git] / isl_schedule_private.h
blobcbf1f9cc10c54ceddc5855433103d7597036855d
1 #ifndef ISL_SCHEDLUE_PRIVATE_H
2 #define ISL_SCHEDLUE_PRIVATE_H
4 #include <isl/schedule.h>
6 /* The schedule for an individual domain, plus information about the bands
7 * and scheduling dimensions.
8 * In particular, we keep track of the number of bands and for each
9 * band, the starting position of the next band. The first band starts at
10 * position 0.
11 * For each scheduling dimension, we keep track of whether it result
12 * in zero dependence distances (within its band) with respect
13 * to the proximity edges.
15 struct isl_schedule_node {
16 isl_map *sched;
17 int n_band;
18 int *band_end;
19 int *band_id;
20 int *zero;
23 /* Information about the computed schedule.
24 * n is the number of nodes/domains/statements.
25 * n_band is the maximal number of bands.
26 * n_total_row is the number of coordinates of the schedule.
27 * dim contains a description of the parameters.
28 * band_forest points to a band forest representation of the schedule
29 * and may be NULL if the forest hasn't been created yet.
31 struct isl_schedule {
32 int ref;
34 int n;
35 int n_band;
36 int n_total_row;
37 isl_space *dim;
39 isl_band_list *band_forest;
41 struct isl_schedule_node node[1];
44 #endif