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

#include <Phi.h>

Inheritance diagram for mini_llvm::ir::Phi:
Collaboration diagram for mini_llvm::ir::Phi:

Classes

struct  Incoming
struct  ConstIncoming
class  incoming_iterator
class  const_incoming_iterator

Public Member Functions

 Phi (std::unique_ptr< Type > type)
incoming_iterator incoming_begin ()
incoming_iterator incoming_end ()
const_incoming_iterator incoming_begin () const
const_incoming_iterator incoming_end () const
bool incoming_empty () const
size_t incoming_size () const
incoming_iterator findIncoming (const BasicBlock &B)
const_incoming_iterator findIncoming (const BasicBlock &B) const
void addIncoming (std::weak_ptr< BasicBlock > B, std::shared_ptr< Value > value)
void removeIncoming (const_incoming_iterator i)
std::unordered_set< const UseBase * > operands () const override
void accept (InstructionVisitor &visitor) override
void accept (InstructionVisitor &visitor) const override
bool isWellFormed () const override
std::unique_ptr< Typetype () const override
std::string format () const override
std::unique_ptr< Valueclone () const override
Public Member Functions inherited from mini_llvm::ir::Instruction
BasicBlockparent () const
BasicBlock::iterator parentIterator () const
std::unordered_set< UseBase * > operands ()
virtual bool isFoldable () const
virtual std::shared_ptr< Constantfold () const
std::string formatAsOperand () 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

Additional Inherited Members

Public Types inherited from mini_llvm::ir::Value
using use_iterator = IndirectIterator<UseSet::iterator, UseBase>

Constructor & Destructor Documentation

◆ Phi()

mini_llvm::ir::Phi::Phi ( std::unique_ptr< Type > type)
inlineexplicit

Member Function Documentation

◆ accept() [1/2]

void mini_llvm::ir::Phi::accept ( InstructionVisitor & visitor) const
inlineoverridevirtual

◆ accept() [2/2]

void mini_llvm::ir::Phi::accept ( InstructionVisitor & visitor)
inlineoverridevirtual

◆ addIncoming()

void mini_llvm::ir::Phi::addIncoming ( std::weak_ptr< BasicBlock > B,
std::shared_ptr< Value > value )

◆ clone()

std::unique_ptr< Value > mini_llvm::ir::Phi::clone ( ) const
overridevirtual

Implements mini_llvm::ir::Value.

◆ findIncoming() [1/2]

incoming_iterator mini_llvm::ir::Phi::findIncoming ( const BasicBlock & B)

◆ findIncoming() [2/2]

const_incoming_iterator mini_llvm::ir::Phi::findIncoming ( const BasicBlock & B) const

◆ format()

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

Implements mini_llvm::ir::Value.

◆ incoming_begin() [1/2]

incoming_iterator mini_llvm::ir::Phi::incoming_begin ( )
inline

◆ incoming_begin() [2/2]

const_incoming_iterator mini_llvm::ir::Phi::incoming_begin ( ) const
inline

◆ incoming_empty()

bool mini_llvm::ir::Phi::incoming_empty ( ) const
inline

◆ incoming_end() [1/2]

incoming_iterator mini_llvm::ir::Phi::incoming_end ( )
inline

◆ incoming_end() [2/2]

const_incoming_iterator mini_llvm::ir::Phi::incoming_end ( ) const
inline

◆ incoming_size()

size_t mini_llvm::ir::Phi::incoming_size ( ) const
inline

◆ isWellFormed()

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

Reimplemented from mini_llvm::ir::Instruction.

◆ operands()

std::unordered_set< const UseBase * > mini_llvm::ir::Phi::operands ( ) const
overridevirtual

◆ removeIncoming()

void mini_llvm::ir::Phi::removeIncoming ( const_incoming_iterator i)

◆ type()

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

Implements mini_llvm::ir::Value.


The documentation for this class was generated from the following file:
  • include/mini-llvm/ir/Instruction/Phi.h