5 #include <isl/schedule_node.h>
10 typedef struct ppcg_ht_bounds ppcg_ht_bounds
;
13 typedef struct ppcg_ht_phase ppcg_ht_phase
;
15 isl_bool
ppcg_ht_has_input_pattern(__isl_keep isl_schedule_node
*node
);
16 isl_bool
ppcg_ht_parent_has_input_pattern(__isl_keep isl_schedule_node
*node
);
18 __isl_give ppcg_ht_bounds
*ppcg_ht_compute_bounds(struct ppcg_scop
*scop
,
19 __isl_keep isl_schedule_node
*node
);
20 void ppcg_ht_bounds_dump(__isl_keep ppcg_ht_bounds
*bounds
);
21 isl_bool
ppcg_ht_bounds_is_valid(__isl_keep ppcg_ht_bounds
*bounds
);
22 isl_bool
ppcg_ht_bounds_supports_sizes(__isl_keep ppcg_ht_bounds
*bounds
,
23 __isl_keep isl_multi_val
*sizes
);
24 __isl_give isl_schedule_node
*ppcg_ht_bounds_insert_tiling(
25 __isl_take ppcg_ht_bounds
*bounds
, __isl_take isl_multi_val
*sizes
,
26 __isl_take isl_schedule_node
*node
, struct ppcg_options
*options
);
27 __isl_null ppcg_ht_bounds
*ppcg_ht_bounds_free(
28 __isl_take ppcg_ht_bounds
*bounds
);
30 __isl_keep ppcg_ht_phase
*ppcg_ht_phase_extract_from_mark(
31 __isl_keep isl_schedule_node
*node
);
32 __isl_give isl_schedule_node
*ppcg_ht_phase_shift_space_point(
33 __isl_keep ppcg_ht_phase
*phase
, __isl_take isl_schedule_node
*node
);
34 __isl_give isl_schedule_node
*hybrid_tile_foreach_phase(
35 __isl_take isl_schedule_node
*node
,
36 __isl_give isl_schedule_node
*(*fn
)(__isl_take isl_schedule_node
*node
,
37 void *user
), void *user
);
38 __isl_give isl_schedule_node
*hybrid_tile_drop_phase_marks(
39 __isl_take isl_schedule_node
*node
);