Function sequant::eval::build_ordered_schedule¶
Defined in File ordered_schedule.hpp
Function Documentation¶
-
inline OrderedSchedule sequant::eval::build_ordered_schedule(RichSchedule const &rich, LegalitySchedule const &legality, BatchPolicy const &policy, std::initializer_list<std::wstring> mode_order = {})¶
Builds the
OrderedScheduleofrich:the loop-block tree, the build steps inside each block, and each value’s escape chain.- Parameters:
rich – the schedule’s values, their occurrences and loop instances
legality – the per-value, per-axis roles
analyze_legalityderivedpolicy – accepted for interface symmetry with the rest of the pipeline; the axis filtering it would provide is already baked into
CellLegality::per_axismode_order – optional outer-to-inner order of index-space base keys, used to order the loop chain
- Throws:
Exception – when a batched mode has no loop identity to place its escape on
- Returns:
a schedule satisfying
well_formed