Function sequant::eval::detail::populate_build_scope_walk¶
Defined in File ordered_schedule.hpp
Function Documentation¶
-
inline void sequant::eval::detail::populate_build_scope_walk(ScopeBlock const &block, container::svector<ScopeBlockAxisLevel> const &enc, std::unordered_map<std::size_t, container::svector<ScopeBlockAxisLevel>> &build_scope)¶
compute_sliced_mode_assignment'sblock-tree walk: record, for every value produced (aBuildStep) or escaped (a blockoutputsentry), the ordered list of enclosing loop blocks (axis+level) it is evaluated under — i.e. the loops whose batch it reads its operands inside. This is the build-scope walk itself, keeping each block’sDagScopeLevel(not just its axis) so the map can name the runtimeBatchContextEntry::level.encis the root-to-blockpath includingblock'sown (axis, level) — a value built or escaping insideblockreads its operands insideblock'sown loop, so the block’s own axis encloses that read (this walk always includes the block axis; only the home of an escape sits one level out, which is irrelevant here — we want the read/fetch scope, not the home).