docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
sdfg::passes::LibNodeExpander::ExpandContext Class Referenceabstract

#include <sdfg/passes/expansion/lib_node_expander.h>

Inheritance diagram for sdfg::passes::LibNodeExpander::ExpandContext:
[legend]

Public Member Functions

virtual ~ExpandContext ()=default
virtual std::unique_ptr< AccessNodeExpand > replacement_requires_access_nodes (const std::vector< InputUse > &access_dirs)=0
 start expansion with access nodes.
virtual ExpandOutcome successfully_modified_node_only ()=0
 Only properties of the node under expansion had to be changed, no change to the dataflow were necessary.
virtual ExpandOutcome unable ()=0
virtual ExpandOutcome unapplicable ()=0
virtual const Options & options () const =0
 Compile options for this run, so expanders can select variants (e.g.

Constructor & Destructor Documentation

◆ ~ExpandContext()

virtual sdfg::passes::LibNodeExpander::ExpandContext::~ExpandContext ( )
virtualdefault

Member Function Documentation

◆ options()

virtual const Options & sdfg::passes::LibNodeExpander::ExpandContext::options ( ) const
pure virtual

Compile options for this run, so expanders can select variants (e.g.

an online vs. multi-pass lowering) via registered option keys.

Implemented in sdfg::passes::expansion::LibNodeExpansionContext.

◆ replacement_requires_access_nodes()

virtual std::unique_ptr< AccessNodeExpand > sdfg::passes::LibNodeExpander::ExpandContext::replacement_requires_access_nodes ( const std::vector< InputUse > & access_dirs)
pure virtual

start expansion with access nodes.

The expander may cut the dataflow into input, and output. If there is a return value, then the access nodes can be provided. Whether this required cutting up the original dataflow or not does not matter

Actual replacement of the operation must be done via one of the methods of AccessNodeExpand, such as replace_with_sequence().

Parameters
access_dirslist matching the input_conns of the node. Indicating for each input, whether it will be needed as read and/or write nodes ( because ptr-inputs may result in indirect reads or writes or both). Non-ptr inputs may only be skipped or used as Scalar)
Returns
null, if cannot be provided. Otherwise a handle to create arbitrarily many copies of access nodes fitting the access_dirs

Implemented in sdfg::passes::expansion::LibNodeExpansionContext.

◆ successfully_modified_node_only()

virtual ExpandOutcome sdfg::passes::LibNodeExpander::ExpandContext::successfully_modified_node_only ( )
pure virtual

Only properties of the node under expansion had to be changed, no change to the dataflow were necessary.

Implemented in sdfg::passes::expansion::LibNodeExpansionContext.

◆ unable()

virtual ExpandOutcome sdfg::passes::LibNodeExpander::ExpandContext::unable ( )
pure virtual

◆ unapplicable()

virtual ExpandOutcome sdfg::passes::LibNodeExpander::ExpandContext::unapplicable ( )
pure virtual

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