docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
sdfg::einsum::EinsumReplacementContext Class Referenceabstract

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

Detailed Description

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().

Constructor & Destructor Documentation

◆ ~EinsumReplacementContext()

virtual sdfg::einsum::EinsumReplacementContext::~EinsumReplacementContext ( )
virtualdefault

Member Function Documentation

◆ replacement_requires_access_nodes()

virtual std::unique_ptr< passes::LibNodeExpander::AccessNodeExpand > sdfg::einsum::EinsumReplacementContext::replacement_requires_access_nodes ( const std::vector< passes::LibNodeExpander::InputUse > & access_dirs,
bool leave_unconsumed_indices )
pure virtual

◆ successfully_modified_node_only()

virtual ReplaceOutcome sdfg::einsum::EinsumReplacementContext::successfully_modified_node_only ( )
pure virtual

◆ unable()

virtual ReplaceOutcome sdfg::einsum::EinsumReplacementContext::unable ( )
pure virtual

◆ unapplicable()

virtual ReplaceOutcome sdfg::einsum::EinsumReplacementContext::unapplicable ( )
pure virtual

The documentation for this class was generated from the following file: