docc 0.8.3 (0d44999b)
C++ API Reference
Loading...
Searching...
No Matches
map.h
Go to the documentation of this file.
1#pragma once
2
3#include <memory>
4#include <unordered_map>
5
10
11namespace sdfg {
12
13namespace builder {
15}
17
47class Map : public StructuredLoop {
49
50private:
51 Map(size_t element_id,
52 const DebugInfo& debug_info,
53 ControlFlowNode* parent,
59
60 static constexpr size_t REQUIRED_ELEMENT_IDS = StructuredLoop::REQUIRED_ELEMENT_IDS;
61
62public:
63 Map(const Map& node) = delete;
64 Map& operator=(const Map&) = delete;
65
66 ElementType type_id() const override {
67 return ElementType::Map;
68 }
69
70 static bool classof(const Element& element) {
71 return element.type_id() == ElementType::Map;
72 }
73
75
76 void validate(const Function& function) const override;
77};
78
79} // namespace structured_control_flow
80} // namespace sdfg
Definition element.h:30
Element(size_t element_id, const DebugInfo &debug_info)
size_t element_id() const
const DebugInfo & debug_info() const
virtual ElementType type_id() const =0
Returns the type of the element.
Definition function.h:43
Note: Even though the class references unique_ptr, it will never delete an SDFG it has a reference to...
Definition structured_sdfg_builder.h:44
Base class for all structured control flow nodes in a StructuredSDFG.
Definition control_flow_node.h:44
void validate(const Function &function) const override
Validates the element.
static bool classof(const Element &element)
Definition map.h:70
bool accept(visitor::ActualStructuredSDFGVisitor &visitor) override
ElementType type_id() const override
Returns the type of the element.
Definition map.h:66
Map(const Map &node)=delete
Map & operator=(const Map &)=delete
Represents a schedule type for Map nodes.
Definition structured_loop.h:31
const symbolic::Expression update() const
Get the update expression for the induction variable.
const symbolic::Symbol indvar() const
Get the induction variable (loop counter) symbol.
const ScheduleType & schedule_type() const
Get the scheduling strategy for this Map.
const symbolic::Expression init() const
Get the initialization expression for the induction variable.
static constexpr size_t REQUIRED_ELEMENT_IDS
Definition structured_loop.h:281
StructuredLoop(size_t element_id, const DebugInfo &debug_info, ControlFlowNode *parent, symbolic::Symbol indvar, symbolic::Expression init, symbolic::Expression update, symbolic::Condition condition, const ScheduleType &schedule_type=ScheduleType_Sequential::create())
const symbolic::Condition condition() const
Get the loop continuation condition.
Visitor for Structured SDFG (not a builder).
Definition structured_sdfg_visitor.h:71
SymEngine::RCP< const SymEngine::Basic > Expression
Reference-counted pointer to a symbolic expression (SymEngine Basic).
Definition symbolic.h:83
SymEngine::RCP< const SymEngine::Symbol > Symbol
Reference-counted pointer to a SymEngine Symbol.
Definition symbolic.h:71
SymEngine::RCP< const SymEngine::Boolean > Condition
Reference-counted pointer to a boolean condition expression.
Definition symbolic.h:86
Definition function_builder.h:10
Definition language_extension.h:18
Definition control_flow_node.h:16
Definition analysis.h:7
ElementType
Definition element.h:72
@ Map
Definition element.h:89
Symbolic system for integer-based symbol analysis.