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

#include <sdfg/function.h>

Inheritance diagram for sdfg::Function:
[legend]

Public Member Functions

 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.
virtual void validate () const
 Validates the function.
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

Static Public Attributes

static const std::unique_ptr< types::Scalar > NVPTX_SYMBOL_TYPE
static const std::unique_ptr< types::Pointer > CONST_POINTER_TYPE

Protected Member Functions

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

Protected Attributes

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_

Friends

class sdfg::builder::FunctionBuilder
class sdfg::builder::StructuredSDFGBuilder

Constructor & Destructor Documentation

◆ Function() [1/3]

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

◆ Function() [2/3]

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

◆ Function() [3/3]

sdfg::Function::Function ( const Function & function)
delete

◆ ~Function()

virtual sdfg::Function::~Function ( )
virtualdefault

Member Function Documentation

◆ add_metadata()

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

◆ arguments()

const std::vector< std::string > & sdfg::Function::arguments ( ) const

◆ assumption() [1/2]

symbolic::Assumption & sdfg::Function::assumption ( const symbolic::Symbol symbol)

◆ assumption() [2/2]

const symbolic::Assumption & sdfg::Function::assumption ( const symbolic::Symbol symbol) const

◆ assumptions()

const symbolic::Assumptions & sdfg::Function::assumptions ( ) const

◆ containers()

auto sdfg::Function::containers ( ) const
inline

◆ element_counter()

size_t sdfg::Function::element_counter ( ) const

The last used element ID.

◆ exists()

bool sdfg::Function::exists ( const std::string & name) const

◆ externals()

const std::vector< std::string > & sdfg::Function::externals ( ) const

◆ has_assumption()

bool sdfg::Function::has_assumption ( const symbolic::Symbol symbol) const

◆ is_argument()

bool sdfg::Function::is_argument ( const std::string & name) const

◆ is_external()

bool sdfg::Function::is_external ( const std::string & name) const

◆ is_transient()

bool sdfg::Function::is_transient ( const std::string & name) const

◆ linkage_type()

LinkageType sdfg::Function::linkage_type ( const std::string & name) const

◆ metadata() [1/2]

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

◆ metadata() [2/2]

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

◆ metadata_if_exists()

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

◆ name() [1/2]

const std::string & sdfg::Function::name ( ) const

◆ name() [2/2]

void sdfg::Function::name ( const std::string & name)

◆ parameters()

symbolic::SymbolSet sdfg::Function::parameters ( ) const

◆ remove_metadata()

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

◆ return_type()

const types::IType & sdfg::Function::return_type ( ) const

◆ structure()

const types::StructureDefinition & sdfg::Function::structure ( const std::string & name) const

◆ structures()

auto sdfg::Function::structures ( ) const
inline

◆ type() [1/2]

FunctionType sdfg::Function::type ( ) const

◆ type() [2/2]

const types::IType & sdfg::Function::type ( const std::string & name) const

◆ validate()

virtual void sdfg::Function::validate ( ) const
virtual

Validates the function.

Exceptions
InvalidSDFGExceptionif the function is invalid

Reimplemented in sdfg::SDFG, and sdfg::StructuredSDFG.

◆ sdfg::builder::FunctionBuilder

friend class sdfg::builder::FunctionBuilder
friend

◆ sdfg::builder::StructuredSDFGBuilder

Member Data Documentation

◆ arguments_

std::vector<std::string> sdfg::Function::arguments_
protected

◆ assumptions_

symbolic::Assumptions sdfg::Function::assumptions_
protected

◆ CONST_POINTER_TYPE

const std::unique_ptr<types::Pointer> sdfg::Function::CONST_POINTER_TYPE
static

◆ containers_

std::unordered_map<std::string, std::unique_ptr<types::IType> > sdfg::Function::containers_
protected

◆ element_counter_

size_t sdfg::Function::element_counter_
protected

Last used element id.

◆ externals_

std::vector<std::string> sdfg::Function::externals_
protected

◆ externals_linkage_types_

std::unordered_map<std::string, LinkageType> sdfg::Function::externals_linkage_types_
protected

◆ metadata_

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

◆ name_

std::string sdfg::Function::name_
protected

◆ NVPTX_SYMBOL_TYPE

const std::unique_ptr<types::Scalar> sdfg::Function::NVPTX_SYMBOL_TYPE
static

◆ return_type_

std::unique_ptr<types::IType> sdfg::Function::return_type_
protected

◆ structures_

std::unordered_map<std::string, std::unique_ptr<types::StructureDefinition> > sdfg::Function::structures_
protected

◆ type_

FunctionType sdfg::Function::type_
protected

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