mini-llvm 0.1.0
Loading...
Searching...
No Matches
mini_llvm::mir::BinaryOperator Class Referenceabstract

#include <BinaryOperator.h>

Inheritance diagram for mini_llvm::mir::BinaryOperator:
Collaboration diagram for mini_llvm::mir::BinaryOperator:

Public Member Functions

int width () const
template<typename Self>
auto & dst (this Self &&self)
template<typename Self>
auto & src1 (this Self &&self)
template<typename Self>
auto & src2 (this Self &&self)
ExtensionMode extMode () const
std::unordered_set< const RegisterOperand * > regOps () const override
std::unordered_set< const RegisterOperand * > dsts () const override
std::unordered_set< const RegisterOperand * > srcs () const override
std::unordered_set< const ImmediateOperand * > immOps () const override
std::unordered_set< const MemoryOperand * > memOps () const override
std::string format () const override
Public Member Functions inherited from mini_llvm::mir::Instruction
virtual ~Instruction ()=default
 Instruction ()=default
 Instruction (const Instruction &)=delete
Instructionoperator= (const Instruction &)=delete
 Instruction (Instruction &&)=delete
Instructionoperator= (Instruction &&)=delete
std::unordered_set< RegisterOperand * > regOps ()
std::unordered_set< RegisterOperand * > dsts ()
std::unordered_set< RegisterOperand * > srcs ()
virtual std::unordered_set< PhysicalRegister * > implicitDsts () const
virtual std::unordered_set< PhysicalRegister * > implicitSrcs () const
std::unordered_set< ImmediateOperand * > immOps ()
std::unordered_set< MemoryOperand * > memOps ()
virtual bool isCoalescent () const
virtual RegistercoalescenceDst () const
virtual RegistercoalescenceSrc () const
virtual bool hasSideEffects () const =0
virtual std::unique_ptr< Instructionclone () const =0
virtual void accept (InstructionVisitor &visitor)=0
virtual void accept (InstructionVisitor &visitor) const =0

Protected Member Functions

 BinaryOperator (int width, std::shared_ptr< Register > dst, std::shared_ptr< Register > src1, std::shared_ptr< Register > src2, ExtensionMode extMode)
virtual const char * mnemonic () const =0

Constructor & Destructor Documentation

◆ BinaryOperator()

mini_llvm::mir::BinaryOperator::BinaryOperator ( int width,
std::shared_ptr< Register > dst,
std::shared_ptr< Register > src1,
std::shared_ptr< Register > src2,
ExtensionMode extMode )
inlineprotected

Member Function Documentation

◆ dst()

template<typename Self>
auto & mini_llvm::mir::BinaryOperator::dst ( this Self && self)
inline

◆ dsts()

std::unordered_set< const RegisterOperand * > mini_llvm::mir::BinaryOperator::dsts ( ) const
inlineoverridevirtual

◆ extMode()

ExtensionMode mini_llvm::mir::BinaryOperator::extMode ( ) const
inline

◆ format()

std::string mini_llvm::mir::BinaryOperator::format ( ) const
overridevirtual

◆ immOps()

std::unordered_set< const ImmediateOperand * > mini_llvm::mir::BinaryOperator::immOps ( ) const
inlineoverridevirtual

◆ memOps()

std::unordered_set< const MemoryOperand * > mini_llvm::mir::BinaryOperator::memOps ( ) const
inlineoverridevirtual

◆ mnemonic()

◆ regOps()

std::unordered_set< const RegisterOperand * > mini_llvm::mir::BinaryOperator::regOps ( ) const
inlineoverridevirtual

◆ src1()

template<typename Self>
auto & mini_llvm::mir::BinaryOperator::src1 ( this Self && self)
inline

◆ src2()

template<typename Self>
auto & mini_llvm::mir::BinaryOperator::src2 ( this Self && self)
inline

◆ srcs()

std::unordered_set< const RegisterOperand * > mini_llvm::mir::BinaryOperator::srcs ( ) const
inlineoverridevirtual

◆ width()

int mini_llvm::mir::BinaryOperator::width ( ) const
inline

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