|
mini-llvm 0.1.0
|
#include <Instruction.h>


Public Member Functions | |
| BasicBlock * | parent () const |
| BasicBlock::iterator | parentIterator () const |
| virtual std::unordered_set< const UseBase * > | operands () const =0 |
| std::unordered_set< UseBase * > | operands () |
| virtual bool | isFoldable () const |
| virtual std::shared_ptr< Constant > | fold () const |
| virtual void | accept (InstructionVisitor &visitor)=0 |
| virtual void | accept (InstructionVisitor &visitor) const =0 |
| 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 | |
| Value & | operator= (const Value &)=delete |
| Value (Value &&)=delete | |
| Value & | operator= (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 |
| virtual std::unique_ptr< Type > | type () const =0 |
| virtual std::string | format () const =0 |
| virtual std::unique_ptr< Value > | clone () const =0 |
Friends | |
| class | BasicBlock |
Additional Inherited Members | |
| Public Types inherited from mini_llvm::ir::Value | |
| using | use_iterator = IndirectIterator<UseSet::iterator, UseBase> |
|
pure virtual |
Implemented in mini_llvm::ir::Add, mini_llvm::ir::Alloca, mini_llvm::ir::And, mini_llvm::ir::ASHR, mini_llvm::ir::BitCast, mini_llvm::ir::Br, mini_llvm::ir::Call, mini_llvm::ir::CondBr, mini_llvm::ir::FAdd, mini_llvm::ir::FCmp, mini_llvm::ir::FDiv, mini_llvm::ir::FMul, mini_llvm::ir::FNeg, mini_llvm::ir::FPExt, mini_llvm::ir::FPToSI, mini_llvm::ir::FPToUI, mini_llvm::ir::FPTrunc, mini_llvm::ir::FRem, mini_llvm::ir::FSub, mini_llvm::ir::GetElementPtr, mini_llvm::ir::ICmp, mini_llvm::ir::IndirectCall, mini_llvm::ir::IntToPtr, mini_llvm::ir::Load, mini_llvm::ir::LSHR, mini_llvm::ir::Mul, mini_llvm::ir::Or, mini_llvm::ir::Phi, mini_llvm::ir::PtrToInt, mini_llvm::ir::Ret, mini_llvm::ir::SDiv, mini_llvm::ir::Select, mini_llvm::ir::SExt, mini_llvm::ir::SHL, mini_llvm::ir::SIToFP, mini_llvm::ir::SRem, mini_llvm::ir::Store, mini_llvm::ir::Sub, mini_llvm::ir::Trunc, mini_llvm::ir::UDiv, mini_llvm::ir::UIToFP, mini_llvm::ir::URem, mini_llvm::ir::Xor, and mini_llvm::ir::ZExt.
|
pure virtual |
Implemented in mini_llvm::ir::Add, mini_llvm::ir::Alloca, mini_llvm::ir::And, mini_llvm::ir::ASHR, mini_llvm::ir::BitCast, mini_llvm::ir::Br, mini_llvm::ir::Call, mini_llvm::ir::CondBr, mini_llvm::ir::FAdd, mini_llvm::ir::FCmp, mini_llvm::ir::FDiv, mini_llvm::ir::FMul, mini_llvm::ir::FNeg, mini_llvm::ir::FPExt, mini_llvm::ir::FPToSI, mini_llvm::ir::FPToUI, mini_llvm::ir::FPTrunc, mini_llvm::ir::FRem, mini_llvm::ir::FSub, mini_llvm::ir::GetElementPtr, mini_llvm::ir::ICmp, mini_llvm::ir::IndirectCall, mini_llvm::ir::IntToPtr, mini_llvm::ir::Load, mini_llvm::ir::LSHR, mini_llvm::ir::Mul, mini_llvm::ir::Or, mini_llvm::ir::Phi, mini_llvm::ir::PtrToInt, mini_llvm::ir::Ret, mini_llvm::ir::SDiv, mini_llvm::ir::Select, mini_llvm::ir::SExt, mini_llvm::ir::SHL, mini_llvm::ir::SIToFP, mini_llvm::ir::SRem, mini_llvm::ir::Store, mini_llvm::ir::Sub, mini_llvm::ir::Trunc, mini_llvm::ir::UDiv, mini_llvm::ir::UIToFP, mini_llvm::ir::URem, mini_llvm::ir::Xor, and mini_llvm::ir::ZExt.
|
inlinevirtual |
Reimplemented in mini_llvm::ir::Add, mini_llvm::ir::And, mini_llvm::ir::ASHR, mini_llvm::ir::BitCast, mini_llvm::ir::FAdd, mini_llvm::ir::FCmp, mini_llvm::ir::FDiv, mini_llvm::ir::FMul, mini_llvm::ir::FNeg, mini_llvm::ir::FPExt, mini_llvm::ir::FPToSI, mini_llvm::ir::FPToUI, mini_llvm::ir::FPTrunc, mini_llvm::ir::FRem, mini_llvm::ir::FSub, mini_llvm::ir::ICmp, mini_llvm::ir::LSHR, mini_llvm::ir::Mul, mini_llvm::ir::Or, mini_llvm::ir::SDiv, mini_llvm::ir::Select, mini_llvm::ir::SExt, mini_llvm::ir::SHL, mini_llvm::ir::SIToFP, mini_llvm::ir::SRem, mini_llvm::ir::Sub, mini_llvm::ir::Trunc, mini_llvm::ir::UDiv, mini_llvm::ir::UIToFP, mini_llvm::ir::URem, mini_llvm::ir::Xor, and mini_llvm::ir::ZExt.
|
inlineoverridevirtual |
Implements mini_llvm::ir::Value.
|
inlinevirtual |
Reimplemented in mini_llvm::ir::BinaryFloatingOperator, mini_llvm::ir::BinaryIntegerOperator, mini_llvm::ir::BitCast, mini_llvm::ir::FloatingCastingOperator, mini_llvm::ir::FloatingToIntegerCastingOperator, mini_llvm::ir::IntegerCastingOperator, mini_llvm::ir::IntegerToFloatingCastingOperator, mini_llvm::ir::Select, and mini_llvm::ir::UnaryFloatingOperator.
|
overridevirtual |
Reimplemented from mini_llvm::ir::Value.
Reimplemented in mini_llvm::ir::IntegerCastingOperator, mini_llvm::ir::IntegerToFloatingCastingOperator, mini_llvm::ir::IntToPtr, mini_llvm::ir::Load, mini_llvm::ir::Phi, mini_llvm::ir::PtrToInt, mini_llvm::ir::Select, mini_llvm::ir::SExt, mini_llvm::ir::Store, mini_llvm::ir::Trunc, mini_llvm::ir::UnaryFloatingOperator, and mini_llvm::ir::ZExt.
| std::unordered_set< UseBase * > mini_llvm::ir::Instruction::operands | ( | ) |
|
pure virtual |
Implemented in mini_llvm::ir::Alloca, mini_llvm::ir::BinaryFloatingOperator, mini_llvm::ir::BinaryIntegerOperator, mini_llvm::ir::BitCast, mini_llvm::ir::Br, mini_llvm::ir::Call, mini_llvm::ir::CondBr, mini_llvm::ir::FloatingCastingOperator, mini_llvm::ir::FloatingToIntegerCastingOperator, mini_llvm::ir::GetElementPtr, mini_llvm::ir::IndirectCall, mini_llvm::ir::IntegerCastingOperator, mini_llvm::ir::IntegerToFloatingCastingOperator, mini_llvm::ir::IntToPtr, mini_llvm::ir::Load, mini_llvm::ir::Phi, mini_llvm::ir::PtrToInt, mini_llvm::ir::Ret, mini_llvm::ir::Select, mini_llvm::ir::Store, and mini_llvm::ir::UnaryFloatingOperator.
|
inline |
|
inline |
|
friend |