mini-llvm 0.1.0
Loading...
Searching...
No Matches
mini_llvm::mir::BasicBlock Class Reference

#include <BasicBlock.h>

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 Member Functions

 BasicBlock ()=default
 BasicBlock (const BasicBlock &)=delete
 BasicBlock (BasicBlock &&)=delete
BasicBlockoperator= (const BasicBlock &)=delete
BasicBlockoperator= (BasicBlock &&)=delete
const std::string & name () const &
std::string && name () &&
void setName (std::string name)
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::unique_ptr< Instruction > I)
Instructionprepend (std::unique_ptr< Instruction > I)
Instructionappend (std::unique_ptr< Instruction > I)
template<typename T>
requires std::derived_from<T, Instruction>
T & add (const_iterator pos, std::unique_ptr< T > I)
template<typename T>
requires std::derived_from<T, Instruction>
T & prepend (std::unique_ptr< T > I)
template<typename T>
requires std::derived_from<T, Instruction>
T & append (std::unique_ptr< T > I)
std::unique_ptr< Instructionremove (const_iterator pos)
std::unique_ptr< InstructionremoveFirst ()
std::unique_ptr< InstructionremoveLast ()
void replace (const_iterator pos, std::unique_ptr< Instruction > I)
void clear ()
template<typename I>
requires std::input_iterator<I>
void assign (I first, I last)
template<typename R>
requires std::ranges::range<R>
void assign_range (R &&range)
std::string format () const
std::string formatAsOperand () const

Member Typedef Documentation

◆ const_iterator

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

◆ const_reverse_iterator

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

◆ iterator

◆ reverse_iterator

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

Constructor & Destructor Documentation

◆ BasicBlock() [1/3]

mini_llvm::mir::BasicBlock::BasicBlock ( )
default

◆ BasicBlock() [2/3]

mini_llvm::mir::BasicBlock::BasicBlock ( const BasicBlock & )
delete

◆ BasicBlock() [3/3]

mini_llvm::mir::BasicBlock::BasicBlock ( BasicBlock && )
delete

Member Function Documentation

◆ add() [1/2]

Instruction & mini_llvm::mir::BasicBlock::add ( const_iterator pos,
std::unique_ptr< Instruction > I )

◆ add() [2/2]

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

◆ append() [1/2]

Instruction & mini_llvm::mir::BasicBlock::append ( std::unique_ptr< Instruction > I)
inline

◆ append() [2/2]

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

◆ assign()

template<typename I>
requires std::input_iterator<I>
void mini_llvm::mir::BasicBlock::assign ( I first,
I last )
inline

◆ assign_range()

template<typename R>
requires std::ranges::range<R>
void mini_llvm::mir::BasicBlock::assign_range ( R && range)
inline

◆ back() [1/2]

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

◆ back() [2/2]

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

◆ begin() [1/2]

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

◆ begin() [2/2]

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

◆ clear()

void mini_llvm::mir::BasicBlock::clear ( )

◆ empty()

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

◆ end() [1/2]

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

◆ end() [2/2]

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

◆ format()

std::string mini_llvm::mir::BasicBlock::format ( ) const

◆ formatAsOperand()

std::string mini_llvm::mir::BasicBlock::formatAsOperand ( ) const

◆ front() [1/2]

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

◆ front() [2/2]

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

◆ name() [1/2]

std::string && mini_llvm::mir::BasicBlock::name ( ) &&
inline

◆ name() [2/2]

const std::string & mini_llvm::mir::BasicBlock::name ( ) const &
inline

◆ operator=() [1/2]

BasicBlock & mini_llvm::mir::BasicBlock::operator= ( BasicBlock && )
delete

◆ operator=() [2/2]

BasicBlock & mini_llvm::mir::BasicBlock::operator= ( const BasicBlock & )
delete

◆ prepend() [1/2]

Instruction & mini_llvm::mir::BasicBlock::prepend ( std::unique_ptr< Instruction > I)
inline

◆ prepend() [2/2]

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

◆ rbegin() [1/2]

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

◆ rbegin() [2/2]

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

◆ remove()

std::unique_ptr< Instruction > mini_llvm::mir::BasicBlock::remove ( const_iterator pos)

◆ removeFirst()

std::unique_ptr< Instruction > mini_llvm::mir::BasicBlock::removeFirst ( )
inline

◆ removeLast()

std::unique_ptr< Instruction > mini_llvm::mir::BasicBlock::removeLast ( )
inline

◆ rend() [1/2]

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

◆ rend() [2/2]

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

◆ replace()

void mini_llvm::mir::BasicBlock::replace ( const_iterator pos,
std::unique_ptr< Instruction > I )

◆ setName()

void mini_llvm::mir::BasicBlock::setName ( std::string name)
inline

◆ size()

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

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