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

#include <ICmp.h>

Inheritance diagram for mini_llvm::ir::ICmp:
Collaboration diagram for mini_llvm::ir::ICmp:

Public Types

enum class  Condition {
  kEQ , kNE , kSLT , kSGT ,
  kSLE , kSGE , kULT , kUGT ,
  kULE , kUGE
}
Public Types inherited from mini_llvm::ir::Value
using use_iterator = IndirectIterator<UseSet::iterator, UseBase>

Public Member Functions

 ICmp (Condition cond, std::shared_ptr< Value > lhs, std::shared_ptr< Value > rhs)
Condition cond () const
void setCond (Condition cond)
std::shared_ptr< Constantfold () const override
void accept (InstructionVisitor &visitor) override
void accept (InstructionVisitor &visitor) const override
std::string format () const override
std::unique_ptr< Valueclone () const override
Public Member Functions inherited from mini_llvm::ir::BinaryIntegerRelationalOperator
std::unique_ptr< Typetype () const override
Public Member Functions inherited from mini_llvm::ir::BinaryIntegerOperator
template<typename Self>
auto & lhs (this Self &&self)
template<typename Self>
auto & rhs (this Self &&self)
std::unordered_set< const UseBase * > operands () const override
bool isFoldable () const override
bool isWellFormed () const override
Public Member Functions inherited from mini_llvm::ir::Instruction
BasicBlockparent () const
BasicBlock::iterator parentIterator () const
std::unordered_set< UseBase * > operands ()
bool isWellFormed () const override
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

Protected Member Functions inherited from mini_llvm::ir::BinaryIntegerRelationalOperator
 BinaryIntegerRelationalOperator (std::shared_ptr< Value > lhs, std::shared_ptr< Value > rhs)
Protected Member Functions inherited from mini_llvm::ir::BinaryIntegerOperator
 BinaryIntegerOperator (std::shared_ptr< Value > lhs, std::shared_ptr< Value > rhs)

Member Enumeration Documentation

◆ Condition

enum class mini_llvm::ir::ICmp::Condition
strong
Enumerator
kEQ 
kNE 
kSLT 
kSGT 
kSLE 
kSGE 
kULT 
kUGT 
kULE 
kUGE 

Constructor & Destructor Documentation

◆ ICmp()

mini_llvm::ir::ICmp::ICmp ( Condition cond,
std::shared_ptr< Value > lhs,
std::shared_ptr< Value > rhs )
inline

Member Function Documentation

◆ accept() [1/2]

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

◆ accept() [2/2]

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

◆ clone()

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

Implements mini_llvm::ir::Value.

◆ cond()

Condition mini_llvm::ir::ICmp::cond ( ) const
inline

◆ fold()

std::shared_ptr< Constant > mini_llvm::ir::ICmp::fold ( ) const
overridevirtual

Reimplemented from mini_llvm::ir::Instruction.

◆ format()

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

Implements mini_llvm::ir::Value.

◆ setCond()

void mini_llvm::ir::ICmp::setCond ( Condition cond)
inline

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