|
docc 0.8.3 (0d44999b)
C++ API Reference
|
Base class for all structured control flow nodes in a StructuredSDFG. More...
#include <sdfg/structured_control_flow/control_flow_node.h>
Public Member Functions | |
| virtual bool | accept (visitor::ActualStructuredSDFGVisitor &visitor)=0 |
| virtual | ~ControlFlowNode ()=default |
| ControlFlowNode * | get_parent () |
| const ControlFlowNode * | get_parent () const |
| ControlFlowNode (const ControlFlowNode &node)=delete | |
| ControlFlowNode & | operator= (const ControlFlowNode &)=delete |
| Public Member Functions inherited from sdfg::Element | |
| Element (size_t element_id, const DebugInfo &debug_info) | |
| virtual | ~Element ()=default |
| size_t | element_id () const |
| const DebugInfo & | debug_info () const |
| void | set_debug_info (const DebugInfo &debug_info) |
| void | add_metadata (const std::string &key, const std::string &value) |
| void | remove_metadata (const std::string &key) |
| const std::string & | metadata (const std::string &key) const |
| const std::string * | metadata_if_exists (const std::string &key) const |
| const std::unordered_map< std::string, std::string > & | metadata () const |
| virtual ElementType | type_id () const =0 |
| Returns the type of the element. | |
| std::string_view | element_type () const |
| Returns the type of the element as a human-readable string. | |
| virtual void | validate (const Function &function) const =0 |
| Validates the element. | |
| virtual void | replace (const symbolic::Expression old_expression, const symbolic::Expression new_expression)=0 |
| virtual void | replace (const symbolic::ExpressionMapping &replacements) |
Static Public Member Functions | |
| static bool | classof (const Element &element) |
LLVM-style RTTI predicate: true if element is a ControlFlowNode. | |
| static std::vector< ControlFlowNode * > | parent_chain (ControlFlowNode &child) |
Static Public Attributes | |
| static constexpr ElementType | TypeGroup |
| Bitmask of all concrete ElementTypes that are ControlFlowNodes. | |
Protected Member Functions | |
| ControlFlowNode (size_t element_id, const DebugInfo &debug_info, ControlFlowNode *parent) | |
| Protected constructor for control flow nodes with parent. | |
Protected Attributes | |
| ControlFlowNode * | parent_ |
| Protected Attributes inherited from sdfg::Element | |
| size_t | element_id_ |
| DebugInfo | debug_info_ |
| std::unordered_map< std::string, std::string > | metadata_ |
Friends | |
| class | builder::StructuredSDFGBuilder |
Base class for all structured control flow nodes in a StructuredSDFG.
ControlFlowNode is the abstract base class for all elements that form the structured control flow of a StructuredSDFG. This includes:
Control flow nodes form a hierarchical tree structure representing the program's control flow in a structured manner, avoiding the need for arbitrary goto statements or unstructured control flow graphs.
|
protected |
Protected constructor for control flow nodes with parent.
| element_id | Unique identifier for this element |
| debug_info | Debug information for this node |
| parent | The parent ControlFlowNode |
|
virtualdefault |
|
delete |
|
pure virtual |
Implemented in sdfg::structured_control_flow::AssignmentBlock, sdfg::structured_control_flow::Block, sdfg::structured_control_flow::Break, sdfg::structured_control_flow::Continue, sdfg::structured_control_flow::For, sdfg::structured_control_flow::IfElse, sdfg::structured_control_flow::Map, sdfg::structured_control_flow::Reduce, sdfg::structured_control_flow::Return, sdfg::structured_control_flow::Sequence, and sdfg::structured_control_flow::While.
|
inlinestatic |
LLVM-style RTTI predicate: true if element is a ControlFlowNode.
| ControlFlowNode * sdfg::structured_control_flow::ControlFlowNode::get_parent | ( | ) |
| const ControlFlowNode * sdfg::structured_control_flow::ControlFlowNode::get_parent | ( | ) | const |
|
delete |
|
static |
|
friend |
|
protected |
|
staticconstexpr |
Bitmask of all concrete ElementTypes that are ControlFlowNodes.