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