Struct RichSchedule¶
Defined in File peak_profile.hpp
Struct Documentation¶
-
struct RichSchedule¶
The values of one forest, each with its occurrences, loop instances and home slicing — the analysis-side input every later stage (legality, the ordered schedule, the cell table) reads.
Public Members
-
container::svector<ValueCell> cells¶
One entry per value, indexed by
ValueCell::value_id.
-
std::size_t num_points = 0¶
one past the last static point
-
std::map<std::pair<std::wstring, int>, BatchModeType> loop_kind¶
The kind of every numbered loop instance, keyed by (space base_key, loop_slot): Contracted when the open that created the instance contracts the mode in batches at its node, External when it introduces a carried mode’s physical loop. A space may hold instances of both kinds (an occupied pair contracted in batches beside an occupied external pair), so the kind is a property of the instance, not of the space; the ordered schedule builder reads a block’s kind here.
-
std::map<std::pair<std::pair<std::wstring, int>, std::pair<std::wstring, int>>, std::size_t> loop_order¶
Loop nesting constraints read off the DP’s realization: (outer, inner) pairs of loop instances, each (space base_key, loop_slot), such that some occurrence sits inside
outerandinneris opened inside it (a consecutive pair of its enclosing context, or its enclosing context and a loop it opens itself). The ordered schedule builder nests the realized chain to satisfy every pair (a contradiction is a builder error: the loop identity fused two loops that nest in opposite orders). The mapped value is a witness: the value id of the first occurrence that produced the pair (diagnostics only).
-
container::svector<ValueCell> cells¶