|
docc 0.8.3 (0d44999b)
C++ API Reference
|
Visitor that expands the EinsumNode with the legacy expand() method. More...
#include <sdfg/einsum/passes/einsum_passes.h>
Static Public Member Functions | |
| static std::string | name () |
| Get the pass name. | |
Additional Inherited Members | |
| Protected Member Functions inherited from sdfg::visitor::StructuredSDFGVisitor | |
| virtual bool | visit_internal (structured_control_flow::Sequence &parent) |
| Protected Attributes inherited from sdfg::visitor::StructuredSDFGVisitor | |
| builder::StructuredSDFGBuilder & | builder_ |
| analysis::AnalysisManager & | analysis_manager_ |
Visitor that expands the EinsumNode with the legacy expand() method.
The Expansion visitor traverses the SDFG and expands library nodes that have ImplementationType_NONE. After the first expand, it cuts its traversal, requiring another run to get to further relevant nodes in the same block.
This is a workaround for Einsum. The other MathNode.expand() impls have been migrated to a new pass with an API that would allow splitting Blocks up as part of replacement, but in a generic way. Once the logic of EinsumNode to do this has been integrated into that generic pass, EinsumNode can also be migrated and all expansions will have access to the same logic.
| sdfg::einsum::EinsumExpansion::EinsumExpansion | ( | builder::StructuredSDFGBuilder & | builder, |
| analysis::AnalysisManager & | analysis_manager ) |
Construct the expansion visitor.
| builder | SDFG builder for creating new nodes |
| analysis_manager | Analysis manager for querying properties |
|
overridevirtual |
Visit a block and attempt to expand its library nodes.
| node | Block to visit |
Reimplemented from sdfg::visitor::StructuredSDFGVisitor.
|
inlinestatic |
Get the pass name.