Struct ScopeBlock¶
Defined in File ordered_schedule.hpp
Struct Documentation¶
-
struct ScopeBlock¶
One loop block: a batch loop over
axis(sentinel/default on the root block, which sits outside every loop), containing an ordered sequence of build steps and nested child blocks, plus the set of values that leave this block (and how) when it closes.Public Functions
-
inline ScopeBlock()¶
-
inline ScopeBlock(ScopeBlock const&)¶
-
inline ScopeBlock(ScopeBlock&&)¶
-
inline ScopeBlock &operator=(ScopeBlock const&)¶
-
inline ScopeBlock &operator=(ScopeBlock&&)¶
-
inline ~ScopeBlock()¶
Public Members
-
int latitude_ordinal = 0¶
layout: the pass index — disambiguates recurring sibling blocks realizing the same axis (a forced-split nest emits one sibling block per pass it holds; see
forced_split_levels).
-
DagScopeLevel level = {}¶
this block’s DAG-scope nest position (mirrors
axisandlatitude_ordinal; seeDagScopeLevel'sdoc comment). Default-valued (depth 0, empty space, altitude/latitude ordinals 0) on the root block.
-
BatchModeType kind = BatchModeType::Contracted¶
Contracted (accumulate on block exit) or External (scatter on block exit); meaningless on the root.
-
container::vector<Step> steps¶
ordered: build-or-child-block, interleaved (see
Step'sdoc comment for whycontainer::vector, notsvector).
-
container::svector<std::pair<std::size_t, OutputKind>> outputs = {}¶
value_id -> how it leaves this block on close.
-
inline ScopeBlock()¶