Public Types | Public Member Functions | Static Public Member Functions | Public Attributes

ir::Instruction Class Reference

Internal representation of an instruction. More...

#include <Instruction.h>

Inheritance diagram for ir::Instruction:
Inheritance graph

List of all members.

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 Instructionclone (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.

Detailed Description

Internal representation of an instruction.

Member Typedef Documentation

typedef unsigned int ir::Instruction::RegisterType

A type for a register identifier.

Member Enumeration Documentation


Constructor & Destructor Documentation

ir::Instruction::Instruction ( )
ir::Instruction::~Instruction ( ) [virtual]

Member Function Documentation

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]
std::string ir::Instruction::toString ( Architecture  a) [static]

Get a string represention of an architecture.

virtual std::string ir::Instruction::valid ( ) const [pure virtual]

Member Data Documentation

Indicates ISA of the instruction.

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines