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

Traverses a structured SDFG and reports uses with the classic Users semantics: one user per access node and direction (READ/WRITE/VIEW/MOVE), deduplicated symbol reads, loop headers split into init / condition / update, and nothing after a Return. More...

#include <sdfg/users/legacy_user_visitor.h>

Inheritance diagram for sdfg::users::LegacyUserVisitor:
[legend]

Public Types

enum class  LoopPart { None , Init , Condition , Update }

Public Member Functions

void traverse (structured_control_flow::ControlFlowNode &node)
 Visits node and all of its children.
bool visit (structured_control_flow::Block &node) override
bool visit (structured_control_flow::AssignmentBlock &node) override
bool visit (structured_control_flow::Sequence &node) override
bool visit (structured_control_flow::Return &node) override
bool visit (structured_control_flow::IfElse &node) override
bool handleStructuredLoop (structured_control_flow::StructuredLoop &loop) override
bool visit (structured_control_flow::While &node) override
bool visit (structured_control_flow::Continue &node) override
bool visit (structured_control_flow::Break &node) override
bool visit (sdfg::structured_control_flow::ControlFlowNode &node)
virtual bool visit (sdfg::structured_control_flow::For &node)
virtual bool visit (sdfg::structured_control_flow::Map &node)
virtual bool visit (sdfg::structured_control_flow::Reduce &node)
Public Member Functions inherited from sdfg::visitor::ActualStructuredSDFGVisitor
 ActualStructuredSDFGVisitor ()
virtual ~ActualStructuredSDFGVisitor ()=default
bool visit (sdfg::structured_control_flow::ControlFlowNode &node)
bool dispatch (sdfg::structured_control_flow::ControlFlowNode &node)

Protected Member Functions

virtual void on_enter (structured_control_flow::ControlFlowNode &node)
virtual void on_leave (structured_control_flow::ControlFlowNode &node)
virtual void on_use (const std::string &container, Element *element, Use use, LoopPart part)=0

Detailed Description

Traverses a structured SDFG and reports uses with the classic Users semantics: one user per access node and direction (READ/WRITE/VIEW/MOVE), deduplicated symbol reads, loop headers split into init / condition / update, and nothing after a Return.

Users of a node are reported contiguously between on_enter and on_leave of that node.

Member Enumeration Documentation

◆ LoopPart

Enumerator
None 
Init 
Condition 
Update 

Member Function Documentation

◆ handleStructuredLoop()

bool sdfg::users::LegacyUserVisitor::handleStructuredLoop ( structured_control_flow::StructuredLoop & loop)
overridevirtual

◆ on_enter()

virtual void sdfg::users::LegacyUserVisitor::on_enter ( structured_control_flow::ControlFlowNode & node)
inlineprotectedvirtual

◆ on_leave()

virtual void sdfg::users::LegacyUserVisitor::on_leave ( structured_control_flow::ControlFlowNode & node)
inlineprotectedvirtual

◆ on_use()

virtual void sdfg::users::LegacyUserVisitor::on_use ( const std::string & container,
Element * element,
Use use,
LoopPart part )
protectedpure virtual

◆ traverse()

void sdfg::users::LegacyUserVisitor::traverse ( structured_control_flow::ControlFlowNode & node)

Visits node and all of its children.

◆ visit() [1/12]

◆ visit() [2/12]

◆ visit() [3/12]

◆ visit() [4/12]

◆ visit() [5/12]

bool sdfg::users::LegacyUserVisitor::visit ( structured_control_flow::AssignmentBlock & node)
overridevirtual

◆ visit() [6/12]

bool sdfg::users::LegacyUserVisitor::visit ( structured_control_flow::Block & node)
overridevirtual

◆ visit() [7/12]

bool sdfg::users::LegacyUserVisitor::visit ( structured_control_flow::Break & node)
overridevirtual

◆ visit() [8/12]

bool sdfg::users::LegacyUserVisitor::visit ( structured_control_flow::Continue & node)
overridevirtual

◆ visit() [9/12]

bool sdfg::users::LegacyUserVisitor::visit ( structured_control_flow::IfElse & node)
overridevirtual

◆ visit() [10/12]

bool sdfg::users::LegacyUserVisitor::visit ( structured_control_flow::Return & node)
overridevirtual

◆ visit() [11/12]

bool sdfg::users::LegacyUserVisitor::visit ( structured_control_flow::Sequence & node)
overridevirtual

◆ visit() [12/12]

bool sdfg::users::LegacyUserVisitor::visit ( structured_control_flow::While & node)
overridevirtual

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