Expand description
The optimizer applies metadata-only rewrite rules (reduce and reduce_parent) in a
fixpoint loop until no more transformations are possible.
Optimization runs between execution steps, which is what enables cross-step optimizations:
after a child is decoded, new reduce_parent rules may match that were previously blocked.
There are three public entry points on ArrayOptimizer:
ArrayOptimizer::optimizeuses only static rules registered on encoding vtables.ArrayOptimizer::optimize_ctxalso consults session-scopedArrayKernelsbefore static parent-reduce rules, so this is the entry point used by execution.ArrayOptimizer::optimize_recursiveapplies the session-aware optimizer to the root and every descendant.
Modules§
- kernels
- Session-scoped registry for optimizer kernels.
- rules
- Metadata-only rewrite rules for the optimizer (Layers 1 and 2 of the execution model).
Traits§
- Array
Optimizer - Extension trait for optimizing array trees using reduce/reduce_parent rules.