add isl_aff_mod_val
[platform/upstream/isl.git] / isl_schedule_private.h
index 19801e6..5831071 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef ISL_SCHEDLUE_PRIVATE_H
 #define ISL_SCHEDLUE_PRIVATE_H
 
+#include <isl/aff.h>
 #include <isl/schedule.h>
 
 /* The schedule for an individual domain, plus information about the bands
@@ -8,15 +9,16 @@
  * In particular, we keep track of the number of bands and for each
  * band, the starting position of the next band.  The first band starts at
  * position 0.
- * For each scheduling dimension, we keep track of whether it is parallel
- * (within its band) with respect to the proximity edges.
+ * For each scheduling dimension, we keep track of whether it result
+ * in zero dependence distances (within its band) with respect
+ * to the proximity edges.
  */
 struct isl_schedule_node {
-       isl_map *sched;
+       isl_multi_aff *sched;
        int      n_band;
        int     *band_end;
        int     *band_id;
-       int     *parallel;
+       int     *zero;
 };
 
 /* Information about the computed schedule.
@@ -24,6 +26,8 @@ struct isl_schedule_node {
  * n_band is the maximal number of bands.
  * n_total_row is the number of coordinates of the schedule.
  * dim contains a description of the parameters.
+ * band_forest points to a band forest representation of the schedule
+ * and may be NULL if the forest hasn't been created yet.
  */
 struct isl_schedule {
        int ref;
@@ -31,7 +35,9 @@ struct isl_schedule {
        int n;
        int n_band;
        int n_total_row;
-       isl_dim *dim;
+       isl_space *dim;
+
+       isl_band_list *band_forest;
 
        struct isl_schedule_node node[1];
 };