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