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

#include <sdfg/element.h>

Inheritance diagram for sdfg::Element:
[legend]

Public Member Functions

 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)

Protected Attributes

size_t element_id_
DebugInfo debug_info_
std::unordered_map< std::string, std::string > metadata_

Friends

class builder::SDFGBuilder
class builder::StructuredSDFGBuilder
class serializer::JSONSerializer
class deepcopy::StructuredSDFGDeepCopy

Constructor & Destructor Documentation

◆ Element()

sdfg::Element::Element ( size_t element_id,
const DebugInfo & debug_info )

◆ ~Element()

virtual sdfg::Element::~Element ( )
virtualdefault

Member Function Documentation

◆ add_metadata()

void sdfg::Element::add_metadata ( const std::string & key,
const std::string & value )

◆ debug_info()

const DebugInfo & sdfg::Element::debug_info ( ) const

◆ element_id()

size_t sdfg::Element::element_id ( ) const

◆ element_type()

std::string_view sdfg::Element::element_type ( ) const
inline

Returns the type of the element as a human-readable string.

◆ metadata() [1/2]

const std::unordered_map< std::string, std::string > & sdfg::Element::metadata ( ) const

◆ metadata() [2/2]

const std::string & sdfg::Element::metadata ( const std::string & key) const

◆ metadata_if_exists()

const std::string * sdfg::Element::metadata_if_exists ( const std::string & key) const

◆ remove_metadata()

void sdfg::Element::remove_metadata ( const std::string & key)

◆ replace() [1/2]

virtual void sdfg::Element::replace ( const symbolic::Expression old_expression,
const symbolic::Expression new_expression )
pure virtual

Implemented in sdfg::control_flow::InterstateEdge, sdfg::control_flow::ReturnState, sdfg::control_flow::State, sdfg::cuda::CUDADataOffloadingNode, sdfg::data_flow::AccessNode, sdfg::data_flow::AtomicScalarOpNode, sdfg::data_flow::BarrierLocalNode, sdfg::data_flow::CallNode, sdfg::data_flow::InvokeNode, sdfg::data_flow::LoadConstNode, sdfg::data_flow::Memlet, sdfg::data_flow::MetadataNode, sdfg::data_flow::Tasklet, sdfg::einsum::EinsumNode, sdfg::fp_math::OzakiMatMulNode, sdfg::gpu::GpuMmaFillNode, sdfg::gpu::GpuMmaFragmentEltwiseAddNode, sdfg::gpu::GpuMmaFragmentLoadNode, sdfg::gpu::GpuMmaFragmentStoreNode, sdfg::gpu::GpuMmaMatmulNode, sdfg::gpu::GpuTileArrivalNode, sdfg::math::blas::BatchedGEMMNode, sdfg::math::blas::DotNode, sdfg::math::blas::GEMMNode, sdfg::math::cmath::CMathNode, sdfg::math::tensor::ArangeNode, sdfg::math::tensor::BatchNormNode, sdfg::math::tensor::BroadcastNode, sdfg::math::tensor::ClampNode, sdfg::math::tensor::ConcatNode, sdfg::math::tensor::ConditionalTensorCopyNode, sdfg::math::tensor::ConstPaddingNode, sdfg::math::tensor::ConvNode, sdfg::math::tensor::ElementWiseDataflowTensorNode, sdfg::math::tensor::EluNode, sdfg::math::tensor::EmbeddingNode, sdfg::math::tensor::EmbeddingRenormNode, sdfg::math::tensor::IndexNode, sdfg::math::tensor::LayerNormNode, sdfg::math::tensor::LeakyReLUNode, sdfg::math::tensor::MatMulNode, sdfg::math::tensor::ReduceNode, sdfg::math::tensor::SpatialTensorNode, sdfg::math::tensor::TensorCopyNode, sdfg::math::tensor::UpsampleBilinear2DNode, sdfg::offloading::DataOffloadingNode, sdfg::rocm::ROCMDataOffloadingNode, sdfg::stdlib::AllocaNode, sdfg::stdlib::AssertNode, sdfg::stdlib::CallocNode, sdfg::stdlib::FreeNode, sdfg::stdlib::MallocNode, sdfg::stdlib::MemcpyNode, sdfg::stdlib::MemmoveNode, sdfg::stdlib::MemsetNode, sdfg::stdlib::TrapNode, sdfg::stdlib::UnreachableNode, sdfg::structured_control_flow::AssignmentBlock, sdfg::structured_control_flow::Block, sdfg::structured_control_flow::Break, sdfg::structured_control_flow::Continue, sdfg::structured_control_flow::IfElse, sdfg::structured_control_flow::Reduce, sdfg::structured_control_flow::Return, sdfg::structured_control_flow::Sequence, sdfg::structured_control_flow::StructuredLoop, sdfg::structured_control_flow::While, sdfg::tiles::PipelineCommitNode, sdfg::tiles::PipelineWaitNode, and sdfg::tiles::TileCopyNode.

◆ replace() [2/2]

virtual void sdfg::Element::replace ( const symbolic::ExpressionMapping & replacements)
virtual

Reimplemented in sdfg::data_flow::AtomicScalarOpNode, sdfg::data_flow::BarrierLocalNode, sdfg::data_flow::CallNode, sdfg::data_flow::InvokeNode, sdfg::data_flow::LoadConstNode, sdfg::data_flow::Memlet, sdfg::data_flow::MetadataNode, sdfg::data_flow::Tasklet, sdfg::einsum::EinsumNode, sdfg::fp_math::OzakiMatMulNode, sdfg::gpu::GpuMmaFillNode, sdfg::gpu::GpuMmaFragmentEltwiseAddNode, sdfg::gpu::GpuMmaFragmentLoadNode, sdfg::gpu::GpuMmaFragmentStoreNode, sdfg::gpu::GpuMmaMatmulNode, sdfg::gpu::GpuTileArrivalNode, sdfg::math::blas::BatchedGEMMNode, sdfg::math::blas::DotNode, sdfg::math::blas::GEMMNode, sdfg::math::cmath::CMathNode, sdfg::math::tensor::ArangeNode, sdfg::math::tensor::BatchNormNode, sdfg::math::tensor::BroadcastNode, sdfg::math::tensor::ClampNode, sdfg::math::tensor::ConcatNode, sdfg::math::tensor::ConditionalTensorCopyNode, sdfg::math::tensor::ConstPaddingNode, sdfg::math::tensor::ConvNode, sdfg::math::tensor::ElementWiseDataflowTensorNode, sdfg::math::tensor::EluNode, sdfg::math::tensor::EmbeddingNode, sdfg::math::tensor::EmbeddingRenormNode, sdfg::math::tensor::IndexNode, sdfg::math::tensor::LayerNormNode, sdfg::math::tensor::LeakyReLUNode, sdfg::math::tensor::MatMulNode, sdfg::math::tensor::ReduceNode, sdfg::math::tensor::SpatialTensorNode, sdfg::math::tensor::TensorCopyNode, sdfg::math::tensor::UpsampleBilinear2DNode, sdfg::stdlib::AllocaNode, sdfg::stdlib::AssertNode, sdfg::stdlib::CallocNode, sdfg::stdlib::FreeNode, sdfg::stdlib::MallocNode, sdfg::stdlib::MemcpyNode, sdfg::stdlib::MemmoveNode, sdfg::stdlib::MemsetNode, sdfg::stdlib::TrapNode, sdfg::stdlib::UnreachableNode, sdfg::structured_control_flow::AssignmentBlock, sdfg::structured_control_flow::Block, sdfg::structured_control_flow::Break, sdfg::structured_control_flow::Continue, sdfg::structured_control_flow::IfElse, sdfg::structured_control_flow::Reduce, sdfg::structured_control_flow::Return, sdfg::structured_control_flow::Sequence, sdfg::structured_control_flow::StructuredLoop, sdfg::structured_control_flow::While, sdfg::tiles::PipelineCommitNode, sdfg::tiles::PipelineWaitNode, and sdfg::tiles::TileCopyNode.

◆ set_debug_info()

void sdfg::Element::set_debug_info ( const DebugInfo & debug_info)

◆ type_id()

◆ validate()

virtual void sdfg::Element::validate ( const Function & function) const
pure virtual

Validates the element.

Exceptions
InvalidSDFGExceptionif the element is invalid

Implemented in sdfg::control_flow::InterstateEdge, sdfg::control_flow::ReturnState, sdfg::control_flow::State, sdfg::cuda::CUDADataOffloadingNode, sdfg::data_flow::AccessNode, sdfg::data_flow::AtomicScalarOpNode, sdfg::data_flow::BarrierLocalNode, sdfg::data_flow::CallNode, sdfg::data_flow::CodeNode, sdfg::data_flow::ConstantNode, sdfg::data_flow::InvokeNode, sdfg::data_flow::Memlet, sdfg::data_flow::MetadataNode, sdfg::data_flow::Tasklet, sdfg::einsum::EinsumNode, sdfg::fp_math::OzakiMatMulNode, sdfg::gpu::GpuMmaFillNode, sdfg::gpu::GpuMmaFragmentEltwiseAddNode, sdfg::gpu::GpuMmaFragmentLoadNode, sdfg::gpu::GpuMmaFragmentStoreNode, sdfg::gpu::GpuMmaMatmulNode, sdfg::gpu::GpuTileArrivalNode, sdfg::math::blas::BatchedGEMMNode, sdfg::math::blas::DotNode, sdfg::math::blas::GEMMNode, sdfg::math::cmath::CMathNode, sdfg::math::tensor::ArangeNode, sdfg::math::tensor::BroadcastNode, sdfg::math::tensor::CastNode, sdfg::math::tensor::ClampNode, sdfg::math::tensor::CMathTensorNode, sdfg::math::tensor::ConcatNode, sdfg::math::tensor::ConditionalTensorCopyNode, sdfg::math::tensor::ConstPaddingNode, sdfg::math::tensor::ConvNode, sdfg::math::tensor::ElementWiseDataflowTensorNode, sdfg::math::tensor::EluNode, sdfg::math::tensor::EmbeddingNode, sdfg::math::tensor::EmbeddingRenormNode, sdfg::math::tensor::IndexNode, sdfg::math::tensor::LayerNormNode, sdfg::math::tensor::LeakyReLUNode, sdfg::math::tensor::LogicalNotNode, sdfg::math::tensor::MatMulNode, sdfg::math::tensor::PoolingNode, sdfg::math::tensor::ReduceNode, sdfg::math::tensor::SoftmaxNode, sdfg::math::tensor::TaskletTensorNode, sdfg::math::tensor::TensorCopyNode, sdfg::math::tensor::TensorNode, sdfg::math::tensor::UpsampleBilinear2DNode, sdfg::offloading::ExternalDataOffloadingNode, sdfg::rocm::ROCMDataOffloadingNode, sdfg::stdlib::AllocaNode, sdfg::stdlib::CallocNode, sdfg::stdlib::FreeNode, sdfg::stdlib::MallocNode, sdfg::stdlib::MemcpyNode, sdfg::stdlib::MemmoveNode, sdfg::stdlib::MemsetNode, sdfg::stdlib::TrapNode, sdfg::stdlib::UnreachableNode, 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, sdfg::structured_control_flow::StructuredLoop, sdfg::structured_control_flow::While, sdfg::tiles::PipelineCommitNode, sdfg::tiles::PipelineWaitNode, and sdfg::tiles::TileCopyNode.

◆ builder::SDFGBuilder

friend class builder::SDFGBuilder
friend

◆ builder::StructuredSDFGBuilder

friend class builder::StructuredSDFGBuilder
friend

◆ deepcopy::StructuredSDFGDeepCopy

friend class deepcopy::StructuredSDFGDeepCopy
friend

◆ serializer::JSONSerializer

friend class serializer::JSONSerializer
friend

Member Data Documentation

◆ debug_info_

DebugInfo sdfg::Element::debug_info_
protected

◆ element_id_

size_t sdfg::Element::element_id_
protected

◆ metadata_

std::unordered_map<std::string, std::string> sdfg::Element::metadata_
protected

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