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

#include <BasicBlock.h>

Inheritance diagram for mini_llvm::ir::BasicBlock:
Collaboration diagram for mini_llvm::ir::BasicBlock:

Public Types

using iterator = IndirectIterator<InstructionList::iterator, Instruction>
using const_iterator = IndirectIterator<InstructionList::const_iterator, const Instruction>
using reverse_iterator = IndirectIterator<InstructionList::reverse_iterator, Instruction>
using const_reverse_iterator = IndirectIterator<InstructionList::const_reverse_iterator, const Instruction>
Public Types inherited from mini_llvm::ir::Value
using use_iterator = IndirectIterator<UseSet::iterator, UseBase>

Public Member Functions

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
Instructionfront ()
const Instructionfront () const
Instructionback ()
const Instructionback () const
bool empty () const
size_t size () const
Instructionadd (const_iterator pos, std::shared_ptr< Instruction > I)
Instructionprepend (std::shared_ptr< Instruction > I)
Instructionappend (std::shared_ptr< Instruction > I)
template<typename T>
requires std::derived_from<T, Instruction>
T & add (const_iterator pos, std::shared_ptr< T > I)
template<typename T>
requires std::derived_from<T, Instruction>
T & prepend (std::shared_ptr< T > I)
template<typename T>
requires std::derived_from<T, Instruction>
T & append (std::shared_ptr< T > I)
void remove (const_iterator pos)
void removeFirst ()
void removeLast ()
void clear ()
Functionparent () const
Function::iterator parentIterator () const
bool isWellFormed () const override
std::unique_ptr< Typetype () const override
std::string format () const override
std::string formatAsOperand () const override
std::string formatAsLabel () const
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

Friends

class Function

Member Typedef Documentation

◆ const_iterator

using mini_llvm::ir::BasicBlock::const_iterator = IndirectIterator<InstructionList::const_iterator, const Instruction>

◆ const_reverse_iterator

using mini_llvm::ir::BasicBlock::const_reverse_iterator = IndirectIterator<InstructionList::const_reverse_iterator, const Instruction>

◆ iterator

◆ reverse_iterator

using mini_llvm::ir::BasicBlock::reverse_iterator = IndirectIterator<InstructionList::reverse_iterator, Instruction>

Member Function Documentation

◆ add() [1/2]

Instruction & mini_llvm::ir::BasicBlock::add ( const_iterator pos,
std::shared_ptr< Instruction > I )

◆ add() [2/2]

template<typename T>
requires std::derived_from<T, Instruction>
T & mini_llvm::ir::BasicBlock::add ( const_iterator pos,
std::shared_ptr< T > I )
inline

◆ append() [1/2]

Instruction & mini_llvm::ir::BasicBlock::append ( std::shared_ptr< Instruction > I)
inline

◆ append() [2/2]

template<typename T>
requires std::derived_from<T, Instruction>
T & mini_llvm::ir::BasicBlock::append ( std::shared_ptr< T > I)
inline

◆ back() [1/2]

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

◆ back() [2/2]

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

◆ begin() [1/2]

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

◆ begin() [2/2]

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

◆ clear()

void mini_llvm::ir::BasicBlock::clear ( )

◆ clone()

std::unique_ptr< Value > mini_llvm::ir::BasicBlock::clone ( ) const
inlineoverridevirtual

Implements mini_llvm::ir::Value.

◆ empty()

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

◆ end() [1/2]

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

◆ end() [2/2]

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

◆ format()

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

Implements mini_llvm::ir::Value.

◆ formatAsLabel()

std::string mini_llvm::ir::BasicBlock::formatAsLabel ( ) const
inline

◆ formatAsOperand()

std::string mini_llvm::ir::BasicBlock::formatAsOperand ( ) const
inlineoverridevirtual

Implements mini_llvm::ir::Value.

◆ front() [1/2]

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

◆ front() [2/2]

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

◆ isWellFormed()

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

Reimplemented from mini_llvm::ir::Value.

◆ parent()

Function * mini_llvm::ir::BasicBlock::parent ( ) const
inline

◆ parentIterator()

Function::iterator mini_llvm::ir::BasicBlock::parentIterator ( ) const
inline

◆ prepend() [1/2]

Instruction & mini_llvm::ir::BasicBlock::prepend ( std::shared_ptr< Instruction > I)
inline

◆ prepend() [2/2]

template<typename T>
requires std::derived_from<T, Instruction>
T & mini_llvm::ir::BasicBlock::prepend ( std::shared_ptr< T > I)
inline

◆ rbegin() [1/2]

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

◆ rbegin() [2/2]

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

◆ remove()

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

◆ removeFirst()

void mini_llvm::ir::BasicBlock::removeFirst ( )
inline

◆ removeLast()

void mini_llvm::ir::BasicBlock::removeLast ( )
inline

◆ rend() [1/2]

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

◆ rend() [2/2]

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

◆ size()

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

◆ type()

std::unique_ptr< Type > mini_llvm::ir::BasicBlock::type ( ) const
inlineoverridevirtual

Implements mini_llvm::ir::Value.

◆ Function

friend class Function
friend

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