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

#include <sdfg/sdfg.h>

Inheritance diagram for sdfg::SDFG:
[legend]

Public Member Functions

 SDFG (const std::string &name, FunctionType type)
 SDFG (const std::string &name, FunctionType type, const types::IType &return_type)
 SDFG (const SDFG &sdfg)=delete
SDFG & operator= (const SDFG &)=delete
void validate () const override
 Validates the function.
auto states () const
auto edges () const
auto in_edges (const control_flow::State &state) const
auto out_edges (const control_flow::State &state) const
const control_flow::State & start_state () const
auto terminal_states () const
size_t in_degree (const control_flow::State &state) const
size_t out_degree (const control_flow::State &state) const
bool is_adjacent (const control_flow::State &src, const control_flow::State &dst) const
const control_flow::InterstateEdge & edge (const control_flow::State &src, const control_flow::State &dst) const
std::unordered_map< const control_flow::State *, const control_flow::State * > dominator_tree () const
std::unordered_map< const control_flow::State *, const control_flow::State * > post_dominator_tree ()
std::list< const control_flow::InterstateEdge * > back_edges () const
std::list< std::list< const control_flow::InterstateEdge * > > all_simple_paths (const control_flow::State &src, const control_flow::State &dst) const
void as_dot (std::ostream &out) const
Public Member Functions inherited from sdfg::Function
 Function (const Function &function)=delete
virtual ~Function ()=default
const std::string & name () const
void name (const std::string &name)
FunctionType type () const
const types::IType & return_type () const
size_t element_counter () const
 The last used element ID.
bool exists (const std::string &name) const
auto containers () const
const types::IType & type (const std::string &name) const
auto structures () const
const types::StructureDefinition & structure (const std::string &name) const
const std::vector< std::string > & arguments () const
const std::vector< std::string > & externals () const
bool is_argument (const std::string &name) const
bool is_external (const std::string &name) const
bool is_transient (const std::string &name) const
LinkageType linkage_type (const std::string &name) const
symbolic::SymbolSet parameters () const
bool has_assumption (const symbolic::Symbol symbol) const
const symbolic::Assumption & assumption (const symbolic::Symbol symbol) const
symbolic::Assumption & assumption (const symbolic::Symbol symbol)
const symbolic::Assumptions & assumptions () const
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

Friends

class sdfg::builder::SDFGBuilder
class sdfg::builder::StructuredSDFGBuilder

Additional Inherited Members

Static Public Attributes inherited from sdfg::Function
static const std::unique_ptr< types::Scalar > NVPTX_SYMBOL_TYPE
static const std::unique_ptr< types::Pointer > CONST_POINTER_TYPE
Protected Member Functions inherited from sdfg::Function
 Function (const std::string &name, FunctionType type)
 Function (const std::string &name, FunctionType type, const types::IType &return_type)
Protected Attributes inherited from sdfg::Function
size_t element_counter_
 Last used element id.
std::string name_
FunctionType type_
std::unique_ptr< types::IType > return_type_
std::unordered_map< std::string, std::unique_ptr< types::IType > > containers_
std::unordered_map< std::string, std::unique_ptr< types::StructureDefinition > > structures_
std::vector< std::string > arguments_
std::vector< std::string > externals_
std::unordered_map< std::string, LinkageType > externals_linkage_types_
symbolic::Assumptions assumptions_
std::unordered_map< std::string, std::string > metadata_

Constructor & Destructor Documentation

◆ SDFG() [1/3]

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

◆ SDFG() [2/3]

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

◆ SDFG() [3/3]

sdfg::SDFG::SDFG ( const SDFG & sdfg)
delete

Member Function Documentation

◆ all_simple_paths()

std::list< std::list< const control_flow::InterstateEdge * > > sdfg::SDFG::all_simple_paths ( const control_flow::State & src,
const control_flow::State & dst ) const

◆ as_dot()

void sdfg::SDFG::as_dot ( std::ostream & out) const

◆ back_edges()

std::list< const control_flow::InterstateEdge * > sdfg::SDFG::back_edges ( ) const

◆ dominator_tree()

std::unordered_map< const control_flow::State *, const control_flow::State * > sdfg::SDFG::dominator_tree ( ) const

◆ edge()

const control_flow::InterstateEdge & sdfg::SDFG::edge ( const control_flow::State & src,
const control_flow::State & dst ) const

◆ edges()

auto sdfg::SDFG::edges ( ) const
inline

◆ in_degree()

size_t sdfg::SDFG::in_degree ( const control_flow::State & state) const

◆ in_edges()

auto sdfg::SDFG::in_edges ( const control_flow::State & state) const
inline

◆ is_adjacent()

bool sdfg::SDFG::is_adjacent ( const control_flow::State & src,
const control_flow::State & dst ) const

◆ operator=()

SDFG & sdfg::SDFG::operator= ( const SDFG & )
delete

◆ out_degree()

size_t sdfg::SDFG::out_degree ( const control_flow::State & state) const

◆ out_edges()

auto sdfg::SDFG::out_edges ( const control_flow::State & state) const
inline

◆ post_dominator_tree()

std::unordered_map< const control_flow::State *, const control_flow::State * > sdfg::SDFG::post_dominator_tree ( )

◆ start_state()

const control_flow::State & sdfg::SDFG::start_state ( ) const

◆ states()

auto sdfg::SDFG::states ( ) const
inline

◆ terminal_states()

auto sdfg::SDFG::terminal_states ( ) const
inline

◆ validate()

void sdfg::SDFG::validate ( ) const
overridevirtual

Validates the function.

Exceptions
InvalidSDFGExceptionif the function is invalid

Reimplemented from sdfg::Function.

◆ sdfg::builder::SDFGBuilder

friend class sdfg::builder::SDFGBuilder
friend

◆ sdfg::builder::StructuredSDFGBuilder


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