#ifndef ISL_SCHEDLUE_PRIVATE_H #define ISL_SCHEDLUE_PRIVATE_H #include #include #include /* A complete schedule tree. * * band_forest points to a band forest representation of the schedule * and may be NULL if the forest hasn't been created yet. * * "root" is the root of the schedule tree and may be NULL if we * have created a band forest corresponding to the schedule. * * A pointer to "leaf" may be used to represent a leaf of the schedule. * It should not appear as a child to any other isl_schedule_tree objects, * but an isl_schedule_node may point to "leaf" if it refers to * a leaf of this schedule tree. */ struct isl_schedule { int ref; isl_band_list *band_forest; isl_schedule_tree *root; struct isl_schedule_tree leaf; }; __isl_give isl_schedule *isl_schedule_from_schedule_tree(isl_ctx *ctx, __isl_take isl_schedule_tree *tree); __isl_give isl_schedule *isl_schedule_set_root( __isl_take isl_schedule *schedule, __isl_take isl_schedule_tree *tree); __isl_give isl_space *isl_schedule_get_space( __isl_keep isl_schedule *schedule); __isl_give isl_union_set *isl_schedule_get_domain( __isl_keep isl_schedule *schedule); __isl_keep isl_schedule_tree *isl_schedule_peek_leaf( __isl_keep isl_schedule *schedule); #endif