mini-llvm 0.1.0
Loading...
Searching...
No Matches
mini_llvm::ir::Function Class Referencefinal

#include <Function.h>

Inheritance diagram for mini_llvm::ir::Function:
Collaboration diagram for mini_llvm::ir::Function:

Public Types

using arg_iterator = IndirectIterator<ArgumentList::iterator, Argument>
using const_arg_iterator = IndirectIterator<ArgumentList::const_iterator, const Argument>
using attr_iterator = IndirectIterator<AttributeList::const_iterator, Attribute>
using const_attr_iterator = IndirectIterator<AttributeList::const_iterator, const Attribute>
using iterator = IndirectIterator<BasicBlockList::iterator, BasicBlock>
using const_iterator = IndirectIterator<BasicBlockList::const_iterator, const BasicBlock>
using reverse_iterator = IndirectIterator<BasicBlockList::reverse_iterator, BasicBlock>
using const_reverse_iterator = IndirectIterator<BasicBlockList::const_reverse_iterator, const BasicBlock>
Public Types inherited from mini_llvm::ir::Value
using use_iterator = IndirectIterator<UseSet::iterator, UseBase>

Public Member Functions

 Function (std::unique_ptr< FunctionType > functionType, Linkage linkage)
std::unique_ptr< FunctionTypefunctionType () const
Linkage linkage () const
arg_iterator arg_begin ()
const_arg_iterator arg_begin () const
arg_iterator arg_end ()
const_arg_iterator arg_end () const
bool arg_empty () const
size_t arg_size () const
Argumentarg (size_t i)
const Argumentarg (size_t i) const
attr_iterator attr_begin () const
attr_iterator attr_end () const
bool attr_empty () const
size_t attr_size () const
Attributeattr (size_t i)
const Attributeattr (size_t i) const
template<typename T>
requires std::derived_from<T, Attribute>
OptionalReference< Attributeattr ()
template<typename T>
OptionalReference< const Attributeattr () const
template<typename T>
requires std::derived_from<T, Attribute>
T & addAttr (std::unique_ptr< T > attr)
template<typename T>
requires std::derived_from<T, Attribute>
void removeAttr ()
iterator begin ()
const_iterator begin () const
iterator end ()
const_iterator end () const
reverse_iterator rbegin ()
const_reverse_iterator rbegin () const
reverse_iterator rend ()
const_reverse_iterator rend () const
BasicBlockfront ()
const BasicBlockfront () const
BasicBlockback ()
const BasicBlockback () const
bool empty () const
size_t size () const
BasicBlockentry ()
const BasicBlockentry () const
BasicBlockadd (const_iterator pos, std::shared_ptr< BasicBlock > block)
BasicBlockadd (const_iterator pos)
BasicBlockprepend (std::shared_ptr< BasicBlock > block)
BasicBlockprepend ()
BasicBlockappend (std::shared_ptr< BasicBlock > block)
BasicBlockappend ()
void remove (const_iterator pos)
void removeFirst ()
void removeLast ()
void clear ()
bool isDeclaration () const override
bool isWellFormed () const override
void accept (ConstantVisitor &visitor) override
void accept (ConstantVisitor &visitor) const override
std::string format () const override
Public Member Functions inherited from mini_llvm::ir::GlobalValue
std::unique_ptr< Typetype () const override
std::string formatAsOperand () const override
std::unique_ptr< Valueclone () const override
Public Member Functions inherited from mini_llvm::ir::Value
virtual ~Value ()=default
 Value ()=default
 Value (const Value &)=delete
Valueoperator= (const Value &)=delete
 Value (Value &&)=delete
Valueoperator= (Value &&)=delete
const std::string & name () const &
std::string && name () &&
void setName (std::string name)
std::string formatName () const
use_iterator use_begin () const
use_iterator use_end () const
bool use_empty () const
size_t use_size () const

Protected Member Functions

bool equals (const Constant &other) const override

Member Typedef Documentation

◆ arg_iterator

◆ attr_iterator

using mini_llvm::ir::Function::attr_iterator = IndirectIterator<AttributeList::const_iterator, Attribute>

◆ const_arg_iterator

using mini_llvm::ir::Function::const_arg_iterator = IndirectIterator<ArgumentList::const_iterator, const Argument>

◆ const_attr_iterator

using mini_llvm::ir::Function::const_attr_iterator = IndirectIterator<AttributeList::const_iterator, const Attribute>

◆ const_iterator

using mini_llvm::ir::Function::const_iterator = IndirectIterator<BasicBlockList::const_iterator, const BasicBlock>

◆ const_reverse_iterator

using mini_llvm::ir::Function::const_reverse_iterator = IndirectIterator<BasicBlockList::const_reverse_iterator, const BasicBlock>

◆ iterator

◆ reverse_iterator

using mini_llvm::ir::Function::reverse_iterator = IndirectIterator<BasicBlockList::reverse_iterator, BasicBlock>

Constructor & Destructor Documentation

◆ Function()

mini_llvm::ir::Function::Function ( std::unique_ptr< FunctionType > functionType,
Linkage linkage )

Member Function Documentation

◆ accept() [1/2]

void mini_llvm::ir::Function::accept ( ConstantVisitor & visitor) const
inlineoverridevirtual

◆ accept() [2/2]

void mini_llvm::ir::Function::accept ( ConstantVisitor & visitor)
inlineoverridevirtual

◆ add() [1/2]

BasicBlock & mini_llvm::ir::Function::add ( const_iterator pos)

◆ add() [2/2]

BasicBlock & mini_llvm::ir::Function::add ( const_iterator pos,
std::shared_ptr< BasicBlock > block )

◆ addAttr()

template<typename T>
requires std::derived_from<T, Attribute>
T & mini_llvm::ir::Function::addAttr ( std::unique_ptr< T > attr)
inline

◆ append() [1/2]

BasicBlock & mini_llvm::ir::Function::append ( )

◆ append() [2/2]

BasicBlock & mini_llvm::ir::Function::append ( std::shared_ptr< BasicBlock > block)

◆ arg() [1/2]

Argument & mini_llvm::ir::Function::arg ( size_t i)
inline

◆ arg() [2/2]

const Argument & mini_llvm::ir::Function::arg ( size_t i) const
inline

◆ arg_begin() [1/2]

arg_iterator mini_llvm::ir::Function::arg_begin ( )
inline

◆ arg_begin() [2/2]

const_arg_iterator mini_llvm::ir::Function::arg_begin ( ) const
inline

◆ arg_empty()

bool mini_llvm::ir::Function::arg_empty ( ) const
inline

◆ arg_end() [1/2]

arg_iterator mini_llvm::ir::Function::arg_end ( )
inline

◆ arg_end() [2/2]

const_arg_iterator mini_llvm::ir::Function::arg_end ( ) const
inline

◆ arg_size()

size_t mini_llvm::ir::Function::arg_size ( ) const
inline

◆ attr() [1/4]

template<typename T>
requires std::derived_from<T, Attribute>
OptionalReference< Attribute > mini_llvm::ir::Function::attr ( )
inline

◆ attr() [2/4]

template<typename T>
OptionalReference< const Attribute > mini_llvm::ir::Function::attr ( ) const
inline

◆ attr() [3/4]

Attribute & mini_llvm::ir::Function::attr ( size_t i)
inline

◆ attr() [4/4]

const Attribute & mini_llvm::ir::Function::attr ( size_t i) const
inline

◆ attr_begin()

attr_iterator mini_llvm::ir::Function::attr_begin ( ) const
inline

◆ attr_empty()

bool mini_llvm::ir::Function::attr_empty ( ) const
inline

◆ attr_end()

attr_iterator mini_llvm::ir::Function::attr_end ( ) const
inline

◆ attr_size()

size_t mini_llvm::ir::Function::attr_size ( ) const
inline

◆ back() [1/2]

BasicBlock & mini_llvm::ir::Function::back ( )
inline

◆ back() [2/2]

const BasicBlock & mini_llvm::ir::Function::back ( ) const
inline

◆ begin() [1/2]

iterator mini_llvm::ir::Function::begin ( )
inline

◆ begin() [2/2]

const_iterator mini_llvm::ir::Function::begin ( ) const
inline

◆ clear()

void mini_llvm::ir::Function::clear ( )

◆ empty()

bool mini_llvm::ir::Function::empty ( ) const
inline

◆ end() [1/2]

iterator mini_llvm::ir::Function::end ( )
inline

◆ end() [2/2]

const_iterator mini_llvm::ir::Function::end ( ) const
inline

◆ entry() [1/2]

BasicBlock & mini_llvm::ir::Function::entry ( )
inline

◆ entry() [2/2]

const BasicBlock & mini_llvm::ir::Function::entry ( ) const
inline

◆ equals()

bool mini_llvm::ir::Function::equals ( const Constant & other) const
inlineoverrideprotectedvirtual

◆ format()

std::string mini_llvm::ir::Function::format ( ) const
overridevirtual

Implements mini_llvm::ir::Value.

◆ front() [1/2]

BasicBlock & mini_llvm::ir::Function::front ( )
inline

◆ front() [2/2]

const BasicBlock & mini_llvm::ir::Function::front ( ) const
inline

◆ functionType()

std::unique_ptr< FunctionType > mini_llvm::ir::Function::functionType ( ) const
inline

◆ isDeclaration()

bool mini_llvm::ir::Function::isDeclaration ( ) const
inlineoverridevirtual

◆ isWellFormed()

bool mini_llvm::ir::Function::isWellFormed ( ) const
overridevirtual

Reimplemented from mini_llvm::ir::Value.

◆ linkage()

Linkage mini_llvm::ir::Function::linkage ( ) const
inline

◆ prepend() [1/2]

BasicBlock & mini_llvm::ir::Function::prepend ( )

◆ prepend() [2/2]

BasicBlock & mini_llvm::ir::Function::prepend ( std::shared_ptr< BasicBlock > block)

◆ rbegin() [1/2]

reverse_iterator mini_llvm::ir::Function::rbegin ( )
inline

◆ rbegin() [2/2]

const_reverse_iterator mini_llvm::ir::Function::rbegin ( ) const
inline

◆ remove()

void mini_llvm::ir::Function::remove ( const_iterator pos)

◆ removeAttr()

template<typename T>
requires std::derived_from<T, Attribute>
void mini_llvm::ir::Function::removeAttr ( )
inline

◆ removeFirst()

void mini_llvm::ir::Function::removeFirst ( )

◆ removeLast()

void mini_llvm::ir::Function::removeLast ( )

◆ rend() [1/2]

reverse_iterator mini_llvm::ir::Function::rend ( )
inline

◆ rend() [2/2]

const_reverse_iterator mini_llvm::ir::Function::rend ( ) const
inline

◆ size()

size_t mini_llvm::ir::Function::size ( ) const
inline

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