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

#include <sdfg/builder/sdfg_builder.h>

Inheritance diagram for sdfg::builder::SDFGBuilder:
[legend]

Public Member Functions

 SDFGBuilder (std::unique_ptr< SDFG > &sdfg)
 SDFGBuilder (const std::string &name, FunctionType type)
 SDFGBuilder (const std::string &name, FunctionType type, const types::IType &return_type)
SDFG & subject () const
sdfg::control_flow::State * get_non_const_state (const sdfg::control_flow::State *state) const
std::unique_ptr< SDFG > move ()
void rename_container (const std::string &old_name, const std::string &new_name) const override
control_flow::State & add_state (bool is_start_state=false, const DebugInfo &debug_info=DebugInfo())
control_flow::State & add_state_before (const control_flow::State &state, bool is_start_state=false, const DebugInfo &debug_info=DebugInfo())
control_flow::State & add_state_after (const control_flow::State &state, bool connect_states=true, const DebugInfo &debug_info=DebugInfo())
control_flow::ReturnState & add_return_state (const std::string &data, const DebugInfo &debug_info=DebugInfo())
control_flow::ReturnState & add_return_state_after (const control_flow::State &state, const std::string &data, const DebugInfo &debug_info=DebugInfo())
control_flow::ReturnState & add_constant_return_state (const std::string &data, const types::IType &type, const DebugInfo &debug_info=DebugInfo())
control_flow::ReturnState & add_constant_return_state_after (const control_flow::State &state, const std::string &data, const types::IType &type, const DebugInfo &debug_info=DebugInfo())
control_flow::InterstateEdge & add_edge (const control_flow::State &src, const control_flow::State &dst, const DebugInfo &debug_info=DebugInfo())
control_flow::InterstateEdge & add_edge (const control_flow::State &src, const control_flow::State &dst, const symbolic::Condition condition, const DebugInfo &debug_info=DebugInfo())
control_flow::InterstateEdge & add_edge (const control_flow::State &src, const control_flow::State &dst, const control_flow::Assignments &assignments, const DebugInfo &debug_info=DebugInfo())
control_flow::InterstateEdge & add_edge (const control_flow::State &src, const control_flow::State &dst, const control_flow::Assignments &assignments, const symbolic::Condition condition, const DebugInfo &debug_info=DebugInfo())
void remove_edge (const control_flow::InterstateEdge &edge)
std::tuple< control_flow::State &, control_flow::State &, control_flow::State & > add_loop (const control_flow::State &state, sdfg::symbolic::Symbol iterator, sdfg::symbolic::Expression init, sdfg::symbolic::Condition cond, sdfg::symbolic::Expression update, const DebugInfo &debug_info=DebugInfo())
data_flow::AccessNode & add_access (control_flow::State &state, const std::string &data, const DebugInfo &debug_info=DebugInfo())
data_flow::ConstantNode & add_constant (control_flow::State &state, const std::string &data, const types::IType &type, const DebugInfo &debug_info=DebugInfo())
data_flow::Tasklet & add_tasklet (control_flow::State &state, const data_flow::TaskletCode code, const std::string &output, const std::vector< std::string > &inputs, const DebugInfo &debug_info=DebugInfo())
data_flow::Memlet & add_memlet (control_flow::State &state, data_flow::DataFlowNode &src, const std::string &src_conn, data_flow::DataFlowNode &dst, const std::string &dst_conn, const data_flow::Subset &subset, const types::IType &base_type, const DebugInfo &debug_info)
data_flow::Memlet & add_computational_memlet (control_flow::State &state, data_flow::AccessNode &src, data_flow::Tasklet &dst, const std::string &dst_conn, const data_flow::Subset &subset, const types::IType &base_type, const DebugInfo &debug_info=DebugInfo())
data_flow::Memlet & add_computational_memlet (control_flow::State &state, data_flow::Tasklet &src, const std::string &src_conn, data_flow::AccessNode &dst, const data_flow::Subset &subset, const types::IType &base_type, const DebugInfo &debug_info=DebugInfo())
data_flow::Memlet & add_computational_memlet (control_flow::State &state, data_flow::AccessNode &src, data_flow::Tasklet &dst, const std::string &dst_conn, const data_flow::Subset &subset, const DebugInfo &debug_info=DebugInfo())
data_flow::Memlet & add_computational_memlet (control_flow::State &state, data_flow::Tasklet &src, const std::string &src_conn, data_flow::AccessNode &dst, const data_flow::Subset &subset, const DebugInfo &debug_info=DebugInfo())
data_flow::Memlet & add_computational_memlet (control_flow::State &state, data_flow::AccessNode &src, data_flow::LibraryNode &dst, const std::string &dst_conn, const data_flow::Subset &subset, const types::IType &base_type, const DebugInfo &debug_info=DebugInfo())
data_flow::Memlet & add_computational_memlet (control_flow::State &state, data_flow::LibraryNode &src, const std::string &src_conn, data_flow::AccessNode &dst, const data_flow::Subset &subset, const types::IType &base_type, const DebugInfo &debug_info=DebugInfo())
data_flow::Memlet & add_reference_memlet (control_flow::State &state, data_flow::AccessNode &src, data_flow::AccessNode &dst, const data_flow::Subset &subset, const types::IType &base_type, const DebugInfo &debug_info=DebugInfo())
data_flow::Memlet & add_dereference_memlet (control_flow::State &state, data_flow::AccessNode &src, data_flow::AccessNode &dst, bool derefs_src, const types::IType &base_type, const DebugInfo &debug_info=DebugInfo())
template<typename T, typename... Args>
data_flow::LibraryNode & add_library_node (control_flow::State &state, const DebugInfo &debug_info, Args... arguments)
Public Member Functions inherited from sdfg::builder::FunctionBuilder
virtual ~FunctionBuilder ()=default
void set_return_type (const types::IType &type) const
const types::IType & add_container (const std::string &name, const types::IType &type, bool is_argument=false, bool is_external=false) const
const types::IType & add_external (const std::string &name, const types::IType &type, LinkageType linkage_type) const
void remove_container (const std::string &name) const
void change_type (const std::string &name, const types::IType &type) const
types::StructureDefinition & add_structure (const std::string &name, bool is_packed) const
std::unique_ptr< types::Structure > create_vector_type (const types::Scalar &element_type, size_t vector_size)
std::string find_new_name (std::string prefix="tmp_") const
void set_element_counter (size_t element_counter)
virtual void replace_symbols (const symbolic::Expression old_expression, const symbolic::Expression new_expression)
 Replace symbolic expressions on the whole SDFG.
virtual void replace_symbols (const symbolic::ExpressionMapping &replacements)
void update_tasklet (data_flow::Tasklet &tasklet, const data_flow::TaskletCode code)
 Common Dataflow Operations.

Protected Member Functions

Function & function () const override
Protected Member Functions inherited from sdfg::builder::FunctionBuilder
size_t new_element_id () const
size_t new_element_id_batch (size_t batch) const

Constructor & Destructor Documentation

◆ SDFGBuilder() [1/3]

sdfg::builder::SDFGBuilder::SDFGBuilder ( std::unique_ptr< SDFG > & sdfg)

◆ SDFGBuilder() [2/3]

sdfg::builder::SDFGBuilder::SDFGBuilder ( const std::string & name,
FunctionType type )

◆ SDFGBuilder() [3/3]

sdfg::builder::SDFGBuilder::SDFGBuilder ( const std::string & name,
FunctionType type,
const types::IType & return_type )

Member Function Documentation

◆ add_access()

data_flow::AccessNode & sdfg::builder::SDFGBuilder::add_access ( control_flow::State & state,
const std::string & data,
const DebugInfo & debug_info = DebugInfo() )

◆ add_computational_memlet() [1/6]

data_flow::Memlet & sdfg::builder::SDFGBuilder::add_computational_memlet ( control_flow::State & state,
data_flow::AccessNode & src,
data_flow::LibraryNode & dst,
const std::string & dst_conn,
const data_flow::Subset & subset,
const types::IType & base_type,
const DebugInfo & debug_info = DebugInfo() )

◆ add_computational_memlet() [2/6]

data_flow::Memlet & sdfg::builder::SDFGBuilder::add_computational_memlet ( control_flow::State & state,
data_flow::AccessNode & src,
data_flow::Tasklet & dst,
const std::string & dst_conn,
const data_flow::Subset & subset,
const DebugInfo & debug_info = DebugInfo() )

◆ add_computational_memlet() [3/6]

data_flow::Memlet & sdfg::builder::SDFGBuilder::add_computational_memlet ( control_flow::State & state,
data_flow::AccessNode & src,
data_flow::Tasklet & dst,
const std::string & dst_conn,
const data_flow::Subset & subset,
const types::IType & base_type,
const DebugInfo & debug_info = DebugInfo() )

◆ add_computational_memlet() [4/6]

data_flow::Memlet & sdfg::builder::SDFGBuilder::add_computational_memlet ( control_flow::State & state,
data_flow::LibraryNode & src,
const std::string & src_conn,
data_flow::AccessNode & dst,
const data_flow::Subset & subset,
const types::IType & base_type,
const DebugInfo & debug_info = DebugInfo() )

◆ add_computational_memlet() [5/6]

data_flow::Memlet & sdfg::builder::SDFGBuilder::add_computational_memlet ( control_flow::State & state,
data_flow::Tasklet & src,
const std::string & src_conn,
data_flow::AccessNode & dst,
const data_flow::Subset & subset,
const DebugInfo & debug_info = DebugInfo() )

◆ add_computational_memlet() [6/6]

data_flow::Memlet & sdfg::builder::SDFGBuilder::add_computational_memlet ( control_flow::State & state,
data_flow::Tasklet & src,
const std::string & src_conn,
data_flow::AccessNode & dst,
const data_flow::Subset & subset,
const types::IType & base_type,
const DebugInfo & debug_info = DebugInfo() )

◆ add_constant()

data_flow::ConstantNode & sdfg::builder::SDFGBuilder::add_constant ( control_flow::State & state,
const std::string & data,
const types::IType & type,
const DebugInfo & debug_info = DebugInfo() )

◆ add_constant_return_state()

control_flow::ReturnState & sdfg::builder::SDFGBuilder::add_constant_return_state ( const std::string & data,
const types::IType & type,
const DebugInfo & debug_info = DebugInfo() )

◆ add_constant_return_state_after()

control_flow::ReturnState & sdfg::builder::SDFGBuilder::add_constant_return_state_after ( const control_flow::State & state,
const std::string & data,
const types::IType & type,
const DebugInfo & debug_info = DebugInfo() )

◆ add_dereference_memlet()

data_flow::Memlet & sdfg::builder::SDFGBuilder::add_dereference_memlet ( control_flow::State & state,
data_flow::AccessNode & src,
data_flow::AccessNode & dst,
bool derefs_src,
const types::IType & base_type,
const DebugInfo & debug_info = DebugInfo() )

◆ add_edge() [1/4]

control_flow::InterstateEdge & sdfg::builder::SDFGBuilder::add_edge ( const control_flow::State & src,
const control_flow::State & dst,
const control_flow::Assignments & assignments,
const DebugInfo & debug_info = DebugInfo() )

◆ add_edge() [2/4]

control_flow::InterstateEdge & sdfg::builder::SDFGBuilder::add_edge ( const control_flow::State & src,
const control_flow::State & dst,
const control_flow::Assignments & assignments,
const symbolic::Condition condition,
const DebugInfo & debug_info = DebugInfo() )

◆ add_edge() [3/4]

control_flow::InterstateEdge & sdfg::builder::SDFGBuilder::add_edge ( const control_flow::State & src,
const control_flow::State & dst,
const DebugInfo & debug_info = DebugInfo() )

◆ add_edge() [4/4]

control_flow::InterstateEdge & sdfg::builder::SDFGBuilder::add_edge ( const control_flow::State & src,
const control_flow::State & dst,
const symbolic::Condition condition,
const DebugInfo & debug_info = DebugInfo() )

◆ add_library_node()

template<typename T, typename... Args>
data_flow::LibraryNode & sdfg::builder::SDFGBuilder::add_library_node ( control_flow::State & state,
const DebugInfo & debug_info,
Args... arguments )
inline

◆ add_loop()

std::tuple< control_flow::State &, control_flow::State &, control_flow::State & > sdfg::builder::SDFGBuilder::add_loop ( const control_flow::State & state,
sdfg::symbolic::Symbol iterator,
sdfg::symbolic::Expression init,
sdfg::symbolic::Condition cond,
sdfg::symbolic::Expression update,
const DebugInfo & debug_info = DebugInfo() )

◆ add_memlet()

data_flow::Memlet & sdfg::builder::SDFGBuilder::add_memlet ( control_flow::State & state,
data_flow::DataFlowNode & src,
const std::string & src_conn,
data_flow::DataFlowNode & dst,
const std::string & dst_conn,
const data_flow::Subset & subset,
const types::IType & base_type,
const DebugInfo & debug_info )

◆ add_reference_memlet()

data_flow::Memlet & sdfg::builder::SDFGBuilder::add_reference_memlet ( control_flow::State & state,
data_flow::AccessNode & src,
data_flow::AccessNode & dst,
const data_flow::Subset & subset,
const types::IType & base_type,
const DebugInfo & debug_info = DebugInfo() )

◆ add_return_state()

control_flow::ReturnState & sdfg::builder::SDFGBuilder::add_return_state ( const std::string & data,
const DebugInfo & debug_info = DebugInfo() )

◆ add_return_state_after()

control_flow::ReturnState & sdfg::builder::SDFGBuilder::add_return_state_after ( const control_flow::State & state,
const std::string & data,
const DebugInfo & debug_info = DebugInfo() )

◆ add_state()

control_flow::State & sdfg::builder::SDFGBuilder::add_state ( bool is_start_state = false,
const DebugInfo & debug_info = DebugInfo() )

◆ add_state_after()

control_flow::State & sdfg::builder::SDFGBuilder::add_state_after ( const control_flow::State & state,
bool connect_states = true,
const DebugInfo & debug_info = DebugInfo() )

◆ add_state_before()

control_flow::State & sdfg::builder::SDFGBuilder::add_state_before ( const control_flow::State & state,
bool is_start_state = false,
const DebugInfo & debug_info = DebugInfo() )

◆ add_tasklet()

data_flow::Tasklet & sdfg::builder::SDFGBuilder::add_tasklet ( control_flow::State & state,
const data_flow::TaskletCode code,
const std::string & output,
const std::vector< std::string > & inputs,
const DebugInfo & debug_info = DebugInfo() )

◆ function()

Function & sdfg::builder::SDFGBuilder::function ( ) const
overrideprotectedvirtual

◆ get_non_const_state()

sdfg::control_flow::State * sdfg::builder::SDFGBuilder::get_non_const_state ( const sdfg::control_flow::State * state) const
inline

◆ move()

std::unique_ptr< SDFG > sdfg::builder::SDFGBuilder::move ( )

◆ remove_edge()

void sdfg::builder::SDFGBuilder::remove_edge ( const control_flow::InterstateEdge & edge)

◆ rename_container()

void sdfg::builder::SDFGBuilder::rename_container ( const std::string & old_name,
const std::string & new_name ) const
overridevirtual

Reimplemented from sdfg::builder::FunctionBuilder.

◆ subject()

SDFG & sdfg::builder::SDFGBuilder::subject ( ) const

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