143 std::string src_conn_;
144 std::string dst_conn_;
146 std::unique_ptr<types::IType> base_type_;
Access nodes for reading/writing data in the dataflow graph.
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 sdfg_builder.h:13
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
Definition data_flow_graph.h:29
Abstract base class for all dataflow graph nodes.
Definition data_flow_node.h:106
void set_subset(const Subset &subset)
Set the data access subset.
void replace(const symbolic::Expression old_expression, const symbolic::Expression new_expression) override
Replace symbolic expressions in this memlet.
ElementType type_id() const override
Returns the type of the element.
Definition memlet.h:179
DataFlowGraph & get_parent()
Get the parent dataflow graph (mutable).
void replace(const symbolic::ExpressionMapping &replacements) override
bool is_dst_read() const
Contents of dst are read.
std::unique_ptr< types::IType > result_type(const Function &function) const
Compute the result type after applying subset.
bool is_dst_write() const
makes a memory write to dst (itself).
static bool classof(const Element &element)
Definition memlet.h:183
bool is_src_pointed_to_address_leak(const types::IType &src_type) const
Leaks address of what src points to.
const Subset & subset() const
Get the data access subset.
DataFlowNode & src()
Get the source node (mutable).
const std::string & dst_conn() const
Get the destination connector name.
bool is_src_constant(double value) const
Check if the source is a constant scalar with the given value.
const DataFlowGraph & get_parent() const
Get the parent dataflow graph (const).
Memlet & operator=(const Memlet &)=delete
const DataFlowNode & dst() const
Get the destination node (const).
void validate(const Function &function) const override
Validate the memlet.
Memlet(const Memlet &memlet)=delete
bool is_src_pointed_to_read() const
Makes a memory read with src-contents as (partial) address.
bool is_src_direct_read() const
Memlet returns the contents of src (this is [is_src_read()], excluding that the contents are only use...
bool is_src_read() const
Memlet actually reads src (from memory).
bool is_src_address_leak() const
Leaks the address of src or uses it in an address calculation that is returned.
std::unique_ptr< Memlet > clone(size_t element_id, const graph::Edge &edge, DataFlowGraph &parent, DataFlowNode &src, DataFlowNode &dst) const
Clone this memlet for graph transformations.
const std::string & src_conn() const
Get the source connector name.
const types::IType & base_type() const
Get the base type of the data.
bool is_src_constant(int64_t value) const
Check if the source is a constant scalar with the given integer value.
bool is_dst_pointed_to_write() const
Contents of dst are used in the address calculation of a memory write.
void set_base_type(const types::IType &base_type)
Set the base type of the data.
MemletType type() const
Determine the type of this memlet.
const graph::Edge edge() const
Get the graph edge for this memlet.
const DataFlowNode & src() const
Get the source node (const).
DataFlowNode & dst()
Get the destination node (mutable).
Abstract base interface for all types in the sdfglib type system.
Definition type.h:625
Base class for all nodes in the dataflow graph.
std::vector< Expression > MultiExpression
Vector of symbolic expressions for multi-dimensional operations.
Definition symbolic.h:89
SymEngine::RCP< const SymEngine::Basic > Expression
Reference-counted pointer to a symbolic expression (SymEngine Basic).
Definition symbolic.h:83
SymEngine::map_basic_basic ExpressionMapping
Definition symbolic.h:109
Definition function_builder.h:10
Definition access_node.h:67
symbolic::MultiExpression Subset
Type alias for a subset specification (array of symbolic expressions).
Definition memlet.h:103
MemletType
Type of data movement represented by a memlet.
Definition memlet.h:109
@ Dereference_Src
Dereferences pointer at source.
Definition memlet.h:112
@ Dereference_Dst
Dereferences pointer at destination.
Definition memlet.h:113
@ Reference
Creates a reference/pointer to data.
Definition memlet.h:111
@ Computational
Standard data transfer for computation.
Definition memlet.h:110
boost::graph_traits< Graph >::edge_descriptor Edge
Definition graph.h:26
ElementType
Definition element.h:72
@ Memlet
Definition element.h:79
Symbolic system for integer-based symbol analysis.