GPUOcelot
|
Internal representation of an instruction. More...
#include <Instruction.h>
Public Types | |
enum | Architecture { PTX, Emulated, SASS, LLVM, CAL, VIR, Remote, x86, x86_64, SPU, External, Unknown } |
typedef unsigned int | RegisterType |
A type for a register identifier. | |
Public Member Functions | |
Instruction () | |
virtual | ~Instruction () |
virtual std::string | toString () const =0 |
Returns a string representation of the instruction. | |
virtual std::string | valid () const =0 |
Determines if the instruction is valid, returns an empty string if valid otherwise an error message. | |
virtual Instruction * | clone (bool copy=true) const =0 |
Invoke the derived new operator from a base pointer. | |
Static Public Member Functions | |
static std::string | toString (Architecture a) |
Get a string represention of an architecture. | |
Public Attributes | |
Architecture | ISA |
Indicates ISA of the instruction. |
Internal representation of an instruction.
typedef unsigned int ir::Instruction::RegisterType |
A type for a register identifier.
ir::Instruction::Instruction | ( | ) |
ir::Instruction::~Instruction | ( | ) | [virtual] |
virtual Instruction* ir::Instruction::clone | ( | bool | copy = true | ) | const [pure virtual] |
Invoke the derived new operator from a base pointer.
Implemented in ir::ILInstruction, ir::ILUnaryInstruction, ir::ILBinaryInstruction, ir::ILTrinaryInstruction, ir::ILAbs, ir::ILAdd, ir::ILAnd, ir::ILBreak, ir::ILCmov_Logical, ir::ILCos_Vec, ir::ILDiv, ir::ILElse, ir::ILEnd, ir::ILEndIf, ir::ILEndLoop, ir::ILEq, ir::ILExp_Vec, ir::ILFfb_Hi, ir::ILFence, ir::ILFma, ir::ILFtoI, ir::ILFtoU, ir::ILGe, ir::ILIadd, ir::ILIand, ir::ILIeq, ir::ILIfLogicalNZ, ir::ILIfLogicalZ, ir::ILIge, ir::ILIlt, ir::ILImax, ir::ILImin, ir::ILImul, ir::ILIne, ir::ILInegate, ir::ILInot, ir::ILIor, ir::ILIshl, ir::ILIshr, ir::ILItoF, ir::ILIxor, ir::ILLds_And_Resource, ir::ILLds_Load_Id, ir::ILLds_Or_Resource, ir::ILLds_Read_Add_Resource, ir::ILLds_Store_Id, ir::ILLog_Vec, ir::ILLt, ir::ILMad, ir::ILMov, ir::ILMul, ir::ILNe, ir::ILRcp, ir::ILRound_Nearest, ir::ILRound_Neginf, ir::ILRsq_Vec, ir::ILSin_Vec, ir::ILSub, ir::ILSqrt_Vec, ir::ILUav_Arena_Load_Id, ir::ILUav_Arena_Store_Id, ir::ILUav_Raw_Load_Id, ir::ILUav_Raw_Store_Id, ir::ILUav_Read_Add_Id, ir::ILUav_Read_Max_Id, ir::ILUav_Read_Min_Id, ir::ILUav_Read_Xchg_Id, ir::ILUdiv, ir::ILUmul, ir::ILUmul24, ir::ILUshr, ir::ILUtoF, ir::ILWhileLoop, ir::LLVMInstruction, ir::LLVMUnaryInstruction, ir::LLVMBinaryInstruction, ir::LLVMConversionInstruction, ir::LLVMComparisonInstruction, ir::LLVMAdd, ir::LLVMAlloca, ir::LLVMAnd, ir::LLVMAshr, ir::LLVMBitcast, ir::LLVMBr, ir::LLVMCall, ir::LLVMExtractelement, ir::LLVMExtractvalue, ir::LLVMFadd, ir::LLVMFcmp, ir::LLVMFdiv, ir::LLVMFmul, ir::LLVMFpext, ir::LLVMFptosi, ir::LLVMFptoui, ir::LLVMFptrunc, ir::LLVMFree, ir::LLVMFrem, ir::LLVMFsub, ir::LLVMGetelementptr, ir::LLVMIcmp, ir::LLVMInsertelement, ir::LLVMInsertvalue, ir::LLVMInttoptr, ir::LLVMInvoke, ir::LLVMLoad, ir::LLVMLshr, ir::LLVMMalloc, ir::LLVMMul, ir::LLVMOr, ir::LLVMPhi, ir::LLVMPtrtoint, ir::LLVMRet, ir::LLVMSdiv, ir::LLVMSelect, ir::LLVMSext, ir::LLVMShl, ir::LLVMShufflevector, ir::LLVMSitofp, ir::LLVMSrem, ir::LLVMStore, ir::LLVMSub, ir::LLVMSwitch, ir::LLVMTrunc, ir::LLVMUdiv, ir::LLVMUitofp, ir::LLVMUnreachable, ir::LLVMUnwind, ir::LLVMUrem, ir::LLVMVaArg, ir::LLVMXor, ir::LLVMZext, and ir::PTXInstruction.
virtual std::string ir::Instruction::toString | ( | ) | const [pure virtual] |
Returns a string representation of the instruction.
Implemented in ir::ILInstruction, ir::ILUnaryInstruction, ir::ILBinaryInstruction, ir::ILTrinaryInstruction, ir::ILFence, ir::ILIfLogicalNZ, ir::ILIfLogicalZ, ir::ILUav_Arena_Load_Id, ir::ILUav_Arena_Store_Id, ir::LLVMInstruction, ir::LLVMUnaryInstruction, ir::LLVMBinaryInstruction, ir::LLVMConversionInstruction, ir::LLVMComparisonInstruction, ir::LLVMAdd, ir::LLVMAlloca, ir::LLVMBr, ir::LLVMCall, ir::LLVMExtractelement, ir::LLVMExtractvalue, ir::LLVMFree, ir::LLVMGetelementptr, ir::LLVMInsertelement, ir::LLVMInsertvalue, ir::LLVMInvoke, ir::LLVMLoad, ir::LLVMMalloc, ir::LLVMMul, ir::LLVMPhi, ir::LLVMRet, ir::LLVMSdiv, ir::LLVMSelect, ir::LLVMShufflevector, ir::LLVMStore, ir::LLVMSub, ir::LLVMSwitch, ir::LLVMUnreachable, ir::LLVMUnwind, ir::LLVMVaArg, and ir::PTXInstruction.
std::string ir::Instruction::toString | ( | Architecture | a | ) | [static] |
Get a string represention of an architecture.
virtual std::string ir::Instruction::valid | ( | ) | const [pure virtual] |
Determines if the instruction is valid, returns an empty string if valid otherwise an error message.
Implemented in ir::ILInstruction, ir::LLVMInstruction, ir::LLVMUnaryInstruction, ir::LLVMBinaryInstruction, ir::LLVMConversionInstruction, ir::LLVMComparisonInstruction, ir::LLVMAdd, ir::LLVMAlloca, ir::LLVMAshr, ir::LLVMBr, ir::LLVMCall, ir::LLVMExtractelement, ir::LLVMExtractvalue, ir::LLVMFree, ir::LLVMGetelementptr, ir::LLVMInsertelement, ir::LLVMInsertvalue, ir::LLVMInvoke, ir::LLVMLoad, ir::LLVMLshr, ir::LLVMMalloc, ir::LLVMPhi, ir::LLVMRet, ir::LLVMSelect, ir::LLVMShl, ir::LLVMShufflevector, ir::LLVMStore, ir::LLVMSwitch, ir::LLVMUnreachable, ir::LLVMUnwind, ir::LLVMVaArg, and ir::PTXInstruction.
Indicates ISA of the instruction.