Jlm
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
jlm::rvsdg::FunctionType Class Reference

Function type class. More...

#include <FunctionType.hpp>

Inheritance diagram for jlm::rvsdg::FunctionType:
Inheritance graph
[legend]
Collaboration diagram for jlm::rvsdg::FunctionType:
Collaboration graph
[legend]

Public Member Functions

 ~FunctionType () noexcept override
 
 FunctionType (std::vector< std::shared_ptr< const jlm::rvsdg::Type >> argumentTypes, std::vector< std::shared_ptr< const jlm::rvsdg::Type >> resultTypes)
 
const std::vector< std::shared_ptr< const jlm::rvsdg::Type > > & Arguments () const noexcept
 
const std::vector< std::shared_ptr< const jlm::rvsdg::Type > > & Results () const noexcept
 
size_t NumResults () const noexcept
 
size_t NumArguments () const noexcept
 
const jlm::rvsdg::TypeResultType (size_t index) const noexcept
 
const jlm::rvsdg::TypeArgumentType (size_t index) const noexcept
 
std::string debug_string () const override
 
bool operator== (const jlm::rvsdg::Type &other) const noexcept override
 
std::size_t ComputeHash () const noexcept override
 
TypeKind Kind () const noexcept override
 Return the kind of this type. More...
 
- Public Member Functions inherited from jlm::rvsdg::Type
virtual ~Type () noexcept
 
bool operator!= (const jlm::rvsdg::Type &other) const noexcept
 

Static Public Member Functions

static std::shared_ptr< const FunctionTypeCreate (std::vector< std::shared_ptr< const jlm::rvsdg::Type >> argumentTypes, std::vector< std::shared_ptr< const jlm::rvsdg::Type >> resultTypes)
 

Private Attributes

std::vector< std::shared_ptr< const jlm::rvsdg::Type > > ArgumentTypes_
 
std::vector< std::shared_ptr< const jlm::rvsdg::Type > > ResultTypes_
 

Additional Inherited Members

- Protected Member Functions inherited from jlm::rvsdg::Type
constexpr Type () noexcept
 

Detailed Description

Function type class.

Represents the type of a callable function.

Definition at line 24 of file FunctionType.hpp.

Constructor & Destructor Documentation

◆ ~FunctionType()

jlm::rvsdg::FunctionType::~FunctionType ( )
overridedefaultnoexcept

◆ FunctionType()

jlm::rvsdg::FunctionType::FunctionType ( std::vector< std::shared_ptr< const jlm::rvsdg::Type >>  argumentTypes,
std::vector< std::shared_ptr< const jlm::rvsdg::Type >>  resultTypes 
)

Definition at line 17 of file FunctionType.cpp.

Member Function Documentation

◆ Arguments()

const std::vector<std::shared_ptr<const jlm::rvsdg::Type> >& jlm::rvsdg::FunctionType::Arguments ( ) const
inlinenoexcept

Definition at line 34 of file FunctionType.hpp.

◆ ArgumentType()

const jlm::rvsdg::Type& jlm::rvsdg::FunctionType::ArgumentType ( size_t  index) const
inlinenoexcept

Definition at line 65 of file FunctionType.hpp.

◆ ComputeHash()

std::size_t jlm::rvsdg::FunctionType::ComputeHash ( ) const
overridevirtualnoexcept

Computes a hash value for the instance of the type.

Returns
A hash value.

Implements jlm::rvsdg::Type.

Definition at line 89 of file FunctionType.cpp.

◆ Create()

std::shared_ptr< const FunctionType > jlm::rvsdg::FunctionType::Create ( std::vector< std::shared_ptr< const jlm::rvsdg::Type >>  argumentTypes,
std::vector< std::shared_ptr< const jlm::rvsdg::Type >>  resultTypes 
)
static

Definition at line 115 of file FunctionType.cpp.

◆ debug_string()

std::string jlm::rvsdg::FunctionType::debug_string ( ) const
overridevirtual

Implements jlm::rvsdg::Type.

Definition at line 26 of file FunctionType.cpp.

◆ Kind()

TypeKind jlm::rvsdg::FunctionType::Kind ( ) const
overridevirtualnoexcept

Return the kind of this type.

Implements jlm::rvsdg::Type.

Definition at line 109 of file FunctionType.cpp.

◆ NumArguments()

size_t jlm::rvsdg::FunctionType::NumArguments ( ) const
inlinenoexcept

Definition at line 52 of file FunctionType.hpp.

◆ NumResults()

size_t jlm::rvsdg::FunctionType::NumResults ( ) const
inlinenoexcept

Definition at line 46 of file FunctionType.hpp.

◆ operator==()

bool jlm::rvsdg::FunctionType::operator== ( const jlm::rvsdg::Type other) const
overridevirtualnoexcept

Implements jlm::rvsdg::Type.

Definition at line 57 of file FunctionType.cpp.

◆ Results()

const std::vector<std::shared_ptr<const jlm::rvsdg::Type> >& jlm::rvsdg::FunctionType::Results ( ) const
inlinenoexcept

Definition at line 40 of file FunctionType.hpp.

◆ ResultType()

const jlm::rvsdg::Type& jlm::rvsdg::FunctionType::ResultType ( size_t  index) const
inlinenoexcept

Definition at line 58 of file FunctionType.hpp.

Member Data Documentation

◆ ArgumentTypes_

std::vector<std::shared_ptr<const jlm::rvsdg::Type> > jlm::rvsdg::FunctionType::ArgumentTypes_
private

Definition at line 89 of file FunctionType.hpp.

◆ ResultTypes_

std::vector<std::shared_ptr<const jlm::rvsdg::Type> > jlm::rvsdg::FunctionType::ResultTypes_
private

Definition at line 90 of file FunctionType.hpp.


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