1 #ifndef ISL_SCHEDLUE_PRIVATE_H 2 #define ISL_SCHEDLUE_PRIVATE_H 3 4 #include <isl/aff.h> 5 #include <isl/schedule.h> 6 #include <isl_schedule_tree.h> 7 8 /* A complete schedule tree. 9 * 10 * "root" is the root of the schedule tree. 11 * 12 * "leaf" may be used to represent a leaf of the schedule. 13 * It should not appear as a child to any other isl_schedule_tree objects, 14 * but an isl_schedule_node may have "leaf" as its tree if it refers to 15 * a leaf of this schedule tree. 16 */ 17 struct isl_schedule { 18 int ref; 19 20 isl_schedule_tree *root; 21 22 struct isl_schedule_tree *leaf; 23 }; 24 25 __isl_give isl_schedule *isl_schedule_from_schedule_tree(isl_ctx *ctx, 26 __isl_take isl_schedule_tree *tree); 27 __isl_give isl_schedule *isl_schedule_set_root( 28 __isl_take isl_schedule *schedule, __isl_take isl_schedule_tree *tree); 29 __isl_give isl_space *isl_schedule_get_space( 30 __isl_keep isl_schedule *schedule); 31 __isl_give isl_union_set *isl_schedule_get_domain( 32 __isl_keep isl_schedule *schedule); 33 __isl_keep isl_schedule_tree *isl_schedule_peek_leaf( 34 __isl_keep isl_schedule *schedule); 35 36 #endif 37