|
docc 0.8.3 (0d44999b)
C++ API Reference
|
ExpandContext for replacing an EinsumCluster with a new implementation. More...
#include <sdfg/einsum/einsum_replacer.h>
Public Member Functions | |
| virtual | ~EinsumReplacementContext ()=default |
| virtual std::unique_ptr< passes::LibNodeExpander::AccessNodeExpand > | replacement_requires_access_nodes (const std::vector< passes::LibNodeExpander::InputUse > &access_dirs, bool leave_unconsumed_indices)=0 |
| virtual ReplaceOutcome | successfully_modified_node_only ()=0 |
| virtual ReplaceOutcome | unable ()=0 |
| virtual ReplaceOutcome | unapplicable ()=0 |
ExpandContext for replacing an EinsumCluster with a new implementation.
Mirrors the library-node expansion infrastructure (LibNodeExpansionContext) but is driven by an analysis-only EinsumCluster instead of a materialized library node. It reuses the AccessNodeExpand interface so replacers construct their replacement exactly like a library-node expander would.
The "replacement site" is the outermost loop consumed into the cluster (or, if none were consumed, the block holding the reduction core). The replacement is inserted right after the site and the original computation is removed on cleanup().
|
virtualdefault |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |