CACAO
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Static Private Member Functions | Private Attributes | Static Private Attributes | Friends
cacao::jit::compiler2::Instruction Class Referenceabstract

Instruction super class. More...

Inheritance diagram for cacao::jit::compiler2::Instruction:
cacao::jit::compiler2::Value cacao::jit::compiler2::memory::ManagerMixin< Value > cacao::jit::compiler2::ALOADInst cacao::jit::compiler2::ANEWARRAYInst cacao::jit::compiler2::AREFInst cacao::jit::compiler2::ASTOREInst cacao::jit::compiler2::BeginInst cacao::jit::compiler2::BinaryInst cacao::jit::compiler2::BUILTINInst cacao::jit::compiler2::CHECKCASTInst cacao::jit::compiler2::CHECKNULLInst cacao::jit::compiler2::CONSTInst cacao::jit::compiler2::ContainerInst cacao::jit::compiler2::COPYInst cacao::jit::compiler2::EndInst cacao::jit::compiler2::GETEXCEPTIONInst cacao::jit::compiler2::GETFIELDInst cacao::jit::compiler2::GETSTATICInst cacao::jit::compiler2::IF_CMPInst cacao::jit::compiler2::INCInst cacao::jit::compiler2::INSTANCEOFInst cacao::jit::compiler2::INVOKEINTERFACEInst cacao::jit::compiler2::INVOKESPECIALInst cacao::jit::compiler2::INVOKEVIRTUALInst cacao::jit::compiler2::JSRInst cacao::jit::compiler2::LoadInst cacao::jit::compiler2::MOVEInst cacao::jit::compiler2::MULTIANEWARRAYInst cacao::jit::compiler2::MultiOpInst cacao::jit::compiler2::NEWARRAYInst cacao::jit::compiler2::NEWInst cacao::jit::compiler2::NoInst cacao::jit::compiler2::NOPInst cacao::jit::compiler2::POPInst cacao::jit::compiler2::PUTFIELDInst cacao::jit::compiler2::PUTSTATICInst cacao::jit::compiler2::RETInst cacao::jit::compiler2::SHLInst cacao::jit::compiler2::STOREInst cacao::jit::compiler2::THROWInst cacao::jit::compiler2::UnaryInst cacao::jit::compiler2::USHRInst

Public Types

enum  InstID {
  LoadInstID, UnaryInstID, BinaryInstID, NOPInstID,
  POPInstID, CHECKNULLInstID, ARRAYLENGTHInstID, ARRAYBOUNDSCHECKInstID,
  NEGInstID, CASTInstID, ADDInstID, SUBInstID,
  MULInstID, DIVInstID, REMInstID, SHLInstID,
  USHRInstID, ANDInstID, ORInstID, XORInstID,
  CMPInstID, CONSTInstID, GETFIELDInstID, PUTFIELDInstID,
  PUTSTATICInstID, GETSTATICInstID, INCInstID, AREFInstID,
  ASTOREInstID, ALOADInstID, RETInstID, LOADInstID,
  STOREInstID, NEWInstID, NEWARRAYInstID, ANEWARRAYInstID,
  MULTIANEWARRAYInstID, CHECKCASTInstID, INSTANCEOFInstID, GOTOInstID,
  JSRInstID, BUILTINInstID, INVOKEVIRTUALInstID, INVOKESPECIALInstID,
  INVOKESTATICInstID, INVOKEINTERFACEInstID, IFInstID, IF_CMPInstID,
  TABLESWITCHInstID, LOOKUPSWITCHInstID, RETURNInstID, THROWInstID,
  COPYInstID, MOVEInstID, GETEXCEPTIONInstID, PHIInstID,
  ContainerInstID, BeginInstID, EndInstID, NoInstID
}
 
typedef alloc::vector< Value * >
::type 
OperandListTy
 
typedef alloc::list
< Instruction * >::type 
DepListTy
 
typedef OperandListTy::iterator op_iterator
 
typedef DepListTy::iterator dep_iterator
 
typedef
OperandListTy::const_iterator 
const_op_iterator
 
typedef DepListTy::const_iterator const_dep_iterator
 
- Public Types inherited from cacao::jit::compiler2::Value
typedef alloc::unordered_set
< Instruction * >::type 
UserListTy
 

Public Member Functions

 Instruction (InstID opcode, Type::TypeID type, BeginInst *begin=NULL)
 
virtual ~Instruction ()
 
int get_id () const
 return a unique identifier for this instruction More...
 
InstID get_opcode () const
 return the opcode of the instruction More...
 
void set_Method (Method *M)
 
Methodget_Method () const
 
const_op_iterator op_begin () const
 
const_op_iterator op_end () const
 
Valueop_front () const
 
Valueop_back () const
 
size_t op_size () const
 
Valueget_operand (size_t i)
 
int get_operand_index (Value *op) const
 
void append_dep (Instruction *I)
 
void remove_dep (Instruction *I)
 
virtual bool verify () const
 check if the instruction is in a correct state More...
 
const_dep_iterator dep_begin () const
 
const_dep_iterator dep_end () const
 
Instructiondep_front () const
 
Instructiondep_back () const
 
size_t dep_size () const
 
const_dep_iterator rdep_begin () const
 
const_dep_iterator rdep_end () const
 
size_t rdep_size () const
 
virtual BeginInstget_BeginInst () const
 Get the corresponding BeginInst. More...
 
virtual bool set_BeginInst (BeginInst *b)
 
virtual bool is_homogeneous () const
 True if the instruction has a homogeneous signature. More...
 
virtual bool is_floating () const
 True if the instruction has no fixed control dependencies. More...
 
virtual bool has_side_effects () const
 True the instruction has side effects. More...
 
virtual bool is_arithmetic () const
 True if the instruction is an arithmetic instruction. More...
 
virtual bool is_commutable () const
 True if the operands of the instruction are commutable. More...
 
virtual Instructionto_Instruction ()
 
virtual LoadInstto_LoadInst ()
 
virtual UnaryInstto_UnaryInst ()
 
virtual BinaryInstto_BinaryInst ()
 
virtual NOPInstto_NOPInst ()
 
virtual POPInstto_POPInst ()
 
virtual CHECKNULLInstto_CHECKNULLInst ()
 
virtual ARRAYLENGTHInstto_ARRAYLENGTHInst ()
 
virtual ARRAYBOUNDSCHECKInstto_ARRAYBOUNDSCHECKInst ()
 
virtual NEGInstto_NEGInst ()
 
virtual CASTInstto_CASTInst ()
 
virtual ADDInstto_ADDInst ()
 
virtual SUBInstto_SUBInst ()
 
virtual MULInstto_MULInst ()
 
virtual DIVInstto_DIVInst ()
 
virtual REMInstto_REMInst ()
 
virtual SHLInstto_SHLInst ()
 
virtual USHRInstto_USHRInst ()
 
virtual ANDInstto_ANDInst ()
 
virtual ORInstto_ORInst ()
 
virtual XORInstto_XORInst ()
 
virtual CMPInstto_CMPInst ()
 
virtual CONSTInstto_CONSTInst ()
 
virtual GETFIELDInstto_GETFIELDInst ()
 
virtual PUTFIELDInstto_PUTFIELDInst ()
 
virtual PUTSTATICInstto_PUTSTATICInst ()
 
virtual GETSTATICInstto_GETSTATICInst ()
 
virtual INCInstto_INCInst ()
 
virtual AREFInstto_AREFInst ()
 
virtual ASTOREInstto_ASTOREInst ()
 
virtual ALOADInstto_ALOADInst ()
 
virtual RETInstto_RETInst ()
 
virtual LOADInstto_LOADInst ()
 
virtual STOREInstto_STOREInst ()
 
virtual NEWInstto_NEWInst ()
 
virtual NEWARRAYInstto_NEWARRAYInst ()
 
virtual ANEWARRAYInstto_ANEWARRAYInst ()
 
virtual MULTIANEWARRAYInstto_MULTIANEWARRAYInst ()
 
virtual CHECKCASTInstto_CHECKCASTInst ()
 
virtual INSTANCEOFInstto_INSTANCEOFInst ()
 
virtual GOTOInstto_GOTOInst ()
 
virtual JSRInstto_JSRInst ()
 
virtual BUILTINInstto_BUILTINInst ()
 
virtual INVOKEVIRTUALInstto_INVOKEVIRTUALInst ()
 
virtual INVOKESPECIALInstto_INVOKESPECIALInst ()
 
virtual INVOKESTATICInstto_INVOKESTATICInst ()
 
virtual INVOKEINTERFACEInstto_INVOKEINTERFACEInst ()
 
virtual IFInstto_IFInst ()
 
virtual IF_CMPInstto_IF_CMPInst ()
 
virtual TABLESWITCHInstto_TABLESWITCHInst ()
 
virtual LOOKUPSWITCHInstto_LOOKUPSWITCHInst ()
 
virtual RETURNInstto_RETURNInst ()
 
virtual THROWInstto_THROWInst ()
 
virtual COPYInstto_COPYInst ()
 
virtual MOVEInstto_MOVEInst ()
 
virtual GETEXCEPTIONInstto_GETEXCEPTIONInst ()
 
virtual PHIInstto_PHIInst ()
 
virtual ContainerInstto_ContainerInst ()
 
virtual BeginInstto_BeginInst ()
 
virtual EndInstto_EndInst ()
 
const char * get_name () const
 
virtual void accept (InstructionVisitor &v, bool copyOperands)=0
 Visitor. More...
 
virtual OStreamprint (OStream &OS) const
 print More...
 
- Public Member Functions inherited from cacao::jit::compiler2::Value
 Value (Type::TypeID type)
 
Type::TypeID get_type () const
 get the value type of the instruction More...
 
virtual ~Value ()
 
UserListTy::const_iterator user_begin () const
 
UserListTy::const_iterator user_end () const
 
size_t user_size () const
 Get the number of (unique) users. More...
 
void replace_value (Value *v)
 Replace this Value this the new one in all users. More...
 

Protected Member Functions

 Instruction ()
 
void append_op (Value *v)
 
void replace_op (Value *v_old, Value *v_new)
 
OStreamprint_operands (OStream &OS)
 
- Protected Member Functions inherited from cacao::jit::compiler2::Value
void append_user (Instruction *I)
 
OStreamprint_users (OStream &OS) const
 
void user_remove (Instruction *I)
 
void set_type (Type::TypeID t)
 

Protected Attributes

const InstID opcode
 
Methodmethod
 
const int id
 
BeginInstbegin
 

Static Private Member Functions

static void reset ()
 Reset static infos (run by Compiler) More...
 

Private Attributes

OperandListTy op_list
 
DepListTy dep_list
 
DepListTy reverse_dep_list
 

Static Private Attributes

static int id_counter = 0
 

Friends

class Value
 
MachineCodecompile (methodinfo *)
 

Additional Inherited Members

- Static Public Member Functions inherited from cacao::jit::compiler2::memory::ManagerMixin< Value >
static voidoperator new (std::size_t size) throw (std::bad_alloc)
 normal new More...
 
static voidoperator new (std::size_t size, void *ptr) throw ()
 placement new More...
 
static voidoperator new (std::size_t size, const std::nothrow_t &nt) throw ()
 nothrow new More...
 
static void operator delete (void *pMemory) throw ()
 normal delete More...
 
static void operator delete (void *pMemory, void *ptr) throw ()
 placement delete More...
 
static void operator delete (void *pMemory, const std::nothrow_t &) throw ()
 nothrow delete More...
 
static voidoperator new[] (std::size_t size) throw (std::bad_alloc)
 normal new[] More...
 
static voidoperator new[] (std::size_t size, void *ptr) throw ()
 placement new[] More...
 
static voidoperator new[] (std::size_t size, const std::nothrow_t &nt) throw ()
 nothrow new[] More...
 
static void operator delete[] (void *pMemory) throw ()
 normal delete[] More...
 
static void operator delete[] (void *pMemory, void *ptr) throw ()
 placement delete[] More...
 
static void operator delete[] (void *pMemory, const std::nothrow_t &) throw ()
 nothrow delete[] More...
 

Detailed Description

Instruction super class.

This is the base class for all instruction. The functions 'toXInstruction()' can be used to cast Instructions. If casting is not possible these functions return NULL. Therefor it can be used to check for a specific Instruction, e.g.: if (CmdInstruction* ti = i.toCmdInstruction() { // 'i' is a CmpInstruction ... }

Definition at line 73 of file Instruction.hpp.

Member Typedef Documentation

typedef DepListTy::const_iterator cacao::jit::compiler2::Instruction::const_dep_iterator

Definition at line 81 of file Instruction.hpp.

typedef OperandListTy::const_iterator cacao::jit::compiler2::Instruction::const_op_iterator

Definition at line 80 of file Instruction.hpp.

Definition at line 79 of file Instruction.hpp.

Definition at line 76 of file Instruction.hpp.

typedef OperandListTy::iterator cacao::jit::compiler2::Instruction::op_iterator

Definition at line 78 of file Instruction.hpp.

Definition at line 75 of file Instruction.hpp.

Member Enumeration Documentation

Enumerator
LoadInstID 
UnaryInstID 
BinaryInstID 
NOPInstID 
POPInstID 
CHECKNULLInstID 
ARRAYLENGTHInstID 
ARRAYBOUNDSCHECKInstID 
NEGInstID 
CASTInstID 
ADDInstID 
SUBInstID 
MULInstID 
DIVInstID 
REMInstID 
SHLInstID 
USHRInstID 
ANDInstID 
ORInstID 
XORInstID 
CMPInstID 
CONSTInstID 
GETFIELDInstID 
PUTFIELDInstID 
PUTSTATICInstID 
GETSTATICInstID 
INCInstID 
AREFInstID 
ASTOREInstID 
ALOADInstID 
RETInstID 
LOADInstID 
STOREInstID 
NEWInstID 
NEWARRAYInstID 
ANEWARRAYInstID 
MULTIANEWARRAYInstID 
CHECKCASTInstID 
INSTANCEOFInstID 
GOTOInstID 
JSRInstID 
BUILTINInstID 
INVOKEVIRTUALInstID 
INVOKESPECIALInstID 
INVOKESTATICInstID 
INVOKEINTERFACEInstID 
IFInstID 
IF_CMPInstID 
TABLESWITCHInstID 
LOOKUPSWITCHInstID 
RETURNInstID 
THROWInstID 
COPYInstID 
MOVEInstID 
GETEXCEPTIONInstID 
PHIInstID 
ContainerInstID 
BeginInstID 
EndInstID 
NoInstID 

Definition at line 83 of file Instruction.hpp.

Constructor & Destructor Documentation

cacao::jit::compiler2::Instruction::Instruction ( )
inlineexplicitprotected

Definition at line 111 of file Instruction.hpp.

cacao::jit::compiler2::Instruction::Instruction ( InstID  opcode,
Type::TypeID  type,
BeginInst begin = NULL 
)
inlineexplicit

Definition at line 127 of file Instruction.hpp.

cacao::jit::compiler2::Instruction::~Instruction ( )
virtual

Definition at line 48 of file Instruction.cpp.

Member Function Documentation

virtual void cacao::jit::compiler2::Instruction::accept ( InstructionVisitor v,
bool  copyOperands 
)
pure virtual

Visitor.

Implemented in cacao::jit::compiler2::ContainerInst, cacao::jit::compiler2::PHIInst, cacao::jit::compiler2::GETEXCEPTIONInst, cacao::jit::compiler2::MOVEInst, cacao::jit::compiler2::COPYInst, cacao::jit::compiler2::THROWInst, cacao::jit::compiler2::RETURNInst, cacao::jit::compiler2::LOOKUPSWITCHInst, cacao::jit::compiler2::TABLESWITCHInst, cacao::jit::compiler2::IF_CMPInst, cacao::jit::compiler2::IFInst, cacao::jit::compiler2::INVOKEINTERFACEInst, cacao::jit::compiler2::INVOKESTATICInst, cacao::jit::compiler2::INVOKESPECIALInst, cacao::jit::compiler2::INVOKEVIRTUALInst, cacao::jit::compiler2::BUILTINInst, cacao::jit::compiler2::JSRInst, cacao::jit::compiler2::GOTOInst, cacao::jit::compiler2::INSTANCEOFInst, cacao::jit::compiler2::CHECKCASTInst, cacao::jit::compiler2::MULTIANEWARRAYInst, cacao::jit::compiler2::ANEWARRAYInst, cacao::jit::compiler2::NEWARRAYInst, cacao::jit::compiler2::NEWInst, cacao::jit::compiler2::STOREInst, cacao::jit::compiler2::LOADInst, cacao::jit::compiler2::RETInst, cacao::jit::compiler2::ARRAYBOUNDSCHECKInst, cacao::jit::compiler2::ALOADInst, cacao::jit::compiler2::ASTOREInst, cacao::jit::compiler2::AREFInst, cacao::jit::compiler2::INCInst, cacao::jit::compiler2::GETSTATICInst, cacao::jit::compiler2::PUTSTATICInst, cacao::jit::compiler2::PUTFIELDInst, cacao::jit::compiler2::GETFIELDInst, cacao::jit::compiler2::CONSTInst, cacao::jit::compiler2::CMPInst, cacao::jit::compiler2::XORInst, cacao::jit::compiler2::ORInst, cacao::jit::compiler2::ANDInst, cacao::jit::compiler2::USHRInst, cacao::jit::compiler2::SHLInst, cacao::jit::compiler2::REMInst, cacao::jit::compiler2::DIVInst, cacao::jit::compiler2::MULInst, cacao::jit::compiler2::SUBInst, cacao::jit::compiler2::ADDInst, cacao::jit::compiler2::CASTInst, cacao::jit::compiler2::NEGInst, cacao::jit::compiler2::ARRAYLENGTHInst, cacao::jit::compiler2::CHECKNULLInst, cacao::jit::compiler2::POPInst, cacao::jit::compiler2::NOPInst, cacao::jit::compiler2::EndInst, cacao::jit::compiler2::BeginInst, and cacao::jit::compiler2::NoInst.

void cacao::jit::compiler2::Instruction::append_dep ( Instruction I)
inline

Definition at line 155 of file Instruction.hpp.

void cacao::jit::compiler2::Instruction::append_op ( Value v)
inlineprotected

Definition at line 114 of file Instruction.hpp.

Instruction* cacao::jit::compiler2::Instruction::dep_back ( ) const
inline

Definition at line 173 of file Instruction.hpp.

const_dep_iterator cacao::jit::compiler2::Instruction::dep_begin ( ) const
inline

Definition at line 170 of file Instruction.hpp.

const_dep_iterator cacao::jit::compiler2::Instruction::dep_end ( ) const
inline

Definition at line 171 of file Instruction.hpp.

Instruction* cacao::jit::compiler2::Instruction::dep_front ( ) const
inline

Definition at line 172 of file Instruction.hpp.

size_t cacao::jit::compiler2::Instruction::dep_size ( ) const
inline

Definition at line 174 of file Instruction.hpp.

virtual BeginInst* cacao::jit::compiler2::Instruction::get_BeginInst ( ) const
inlinevirtual

Get the corresponding BeginInst.

BeginInst are used to mark control flow joins (aka the start of a basic block).

Returns
The directly dominating BeginInst. NULL if there is none (eg. several cadidates or dead code).

Reimplemented in cacao::jit::compiler2::ContainerInst, cacao::jit::compiler2::PHIInst, cacao::jit::compiler2::INVOKESTATICInst, cacao::jit::compiler2::ALOADInst, cacao::jit::compiler2::ASTOREInst, cacao::jit::compiler2::GETSTATICInst, cacao::jit::compiler2::PUTSTATICInst, and cacao::jit::compiler2::BeginInst.

Definition at line 186 of file Instruction.hpp.

int cacao::jit::compiler2::Instruction::get_id ( ) const
inline

return a unique identifier for this instruction

Definition at line 133 of file Instruction.hpp.

Method* cacao::jit::compiler2::Instruction::get_Method ( ) const
inline

Definition at line 137 of file Instruction.hpp.

const char* cacao::jit::compiler2::Instruction::get_name ( ) const
inline

Definition at line 214 of file Instruction.hpp.

InstID cacao::jit::compiler2::Instruction::get_opcode ( ) const
inline

return the opcode of the instruction

Definition at line 134 of file Instruction.hpp.

Value* cacao::jit::compiler2::Instruction::get_operand ( size_t  i)
inline

Definition at line 144 of file Instruction.hpp.

int cacao::jit::compiler2::Instruction::get_operand_index ( Value op) const
inline

Definition at line 147 of file Instruction.hpp.

virtual bool cacao::jit::compiler2::Instruction::has_side_effects ( ) const
inlinevirtual
virtual bool cacao::jit::compiler2::Instruction::is_arithmetic ( ) const
inlinevirtual

True if the instruction is an arithmetic instruction.

Reimplemented in cacao::jit::compiler2::DIVInst, cacao::jit::compiler2::MULInst, cacao::jit::compiler2::SUBInst, cacao::jit::compiler2::ADDInst, and cacao::jit::compiler2::NEGInst.

Definition at line 204 of file Instruction.hpp.

virtual bool cacao::jit::compiler2::Instruction::is_commutable ( ) const
inlinevirtual

True if the operands of the instruction are commutable.

Reimplemented in cacao::jit::compiler2::XORInst, cacao::jit::compiler2::ORInst, cacao::jit::compiler2::ANDInst, cacao::jit::compiler2::MULInst, and cacao::jit::compiler2::ADDInst.

Definition at line 206 of file Instruction.hpp.

virtual bool cacao::jit::compiler2::Instruction::is_floating ( ) const
inlinevirtual
virtual bool cacao::jit::compiler2::Instruction::is_homogeneous ( ) const
inlinevirtual

True if the instruction has a homogeneous signature.

(i.e. all operands and the result have the same type)

Reimplemented in cacao::jit::compiler2::ARRAYBOUNDSCHECKInst, cacao::jit::compiler2::ALOADInst, cacao::jit::compiler2::ASTOREInst, cacao::jit::compiler2::AREFInst, cacao::jit::compiler2::CMPInst, cacao::jit::compiler2::CASTInst, and cacao::jit::compiler2::ARRAYLENGTHInst.

Definition at line 198 of file Instruction.hpp.

Value* cacao::jit::compiler2::Instruction::op_back ( ) const
inline

Definition at line 142 of file Instruction.hpp.

const_op_iterator cacao::jit::compiler2::Instruction::op_begin ( ) const
inline

Definition at line 139 of file Instruction.hpp.

const_op_iterator cacao::jit::compiler2::Instruction::op_end ( ) const
inline

Definition at line 140 of file Instruction.hpp.

Value* cacao::jit::compiler2::Instruction::op_front ( ) const
inline

Definition at line 141 of file Instruction.hpp.

size_t cacao::jit::compiler2::Instruction::op_size ( ) const
inline

Definition at line 143 of file Instruction.hpp.

OStream & cacao::jit::compiler2::Instruction::print ( OStream OS) const
virtual

print

Reimplemented from cacao::jit::compiler2::Value.

Reimplemented in cacao::jit::compiler2::CONSTInst.

Definition at line 43 of file Instruction.cpp.

OStream & cacao::jit::compiler2::Instruction::print_operands ( OStream OS)
protected
Todo:
use Value::print_operands

Definition at line 75 of file Instruction.cpp.

const_dep_iterator cacao::jit::compiler2::Instruction::rdep_begin ( ) const
inline

Definition at line 175 of file Instruction.hpp.

const_dep_iterator cacao::jit::compiler2::Instruction::rdep_end ( ) const
inline

Definition at line 176 of file Instruction.hpp.

size_t cacao::jit::compiler2::Instruction::rdep_size ( ) const
inline

Definition at line 177 of file Instruction.hpp.

void cacao::jit::compiler2::Instruction::remove_dep ( Instruction I)
inline

Definition at line 161 of file Instruction.hpp.

void cacao::jit::compiler2::Instruction::replace_op ( Value v_old,
Value v_new 
)
protected

Definition at line 66 of file Instruction.cpp.

static void cacao::jit::compiler2::Instruction::reset ( )
inlinestaticprivate

Reset static infos (run by Compiler)

Definition at line 100 of file Instruction.hpp.

virtual bool cacao::jit::compiler2::Instruction::set_BeginInst ( BeginInst b)
inlinevirtual

Definition at line 187 of file Instruction.hpp.

void cacao::jit::compiler2::Instruction::set_Method ( Method M)
inline

Definition at line 136 of file Instruction.hpp.

virtual ADDInst* cacao::jit::compiler2::Instruction::to_ADDInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::ADDInst.

Definition at line 42 of file Instruction.hpp.

virtual ALOADInst* cacao::jit::compiler2::Instruction::to_ALOADInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::ALOADInst.

Definition at line 61 of file Instruction.hpp.

virtual ANDInst* cacao::jit::compiler2::Instruction::to_ANDInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::ANDInst.

Definition at line 49 of file Instruction.hpp.

virtual ANEWARRAYInst* cacao::jit::compiler2::Instruction::to_ANEWARRAYInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::ANEWARRAYInst.

Definition at line 67 of file Instruction.hpp.

virtual AREFInst* cacao::jit::compiler2::Instruction::to_AREFInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::AREFInst.

Definition at line 59 of file Instruction.hpp.

virtual ARRAYBOUNDSCHECKInst* cacao::jit::compiler2::Instruction::to_ARRAYBOUNDSCHECKInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::ARRAYBOUNDSCHECKInst.

Definition at line 39 of file Instruction.hpp.

virtual ARRAYLENGTHInst* cacao::jit::compiler2::Instruction::to_ARRAYLENGTHInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::ARRAYLENGTHInst.

Definition at line 38 of file Instruction.hpp.

virtual ASTOREInst* cacao::jit::compiler2::Instruction::to_ASTOREInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::ASTOREInst.

Definition at line 60 of file Instruction.hpp.

virtual BeginInst* cacao::jit::compiler2::Instruction::to_BeginInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::BeginInst.

Definition at line 89 of file Instruction.hpp.

virtual BinaryInst* cacao::jit::compiler2::Instruction::to_BinaryInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::BinaryInst.

Definition at line 34 of file Instruction.hpp.

virtual BUILTINInst* cacao::jit::compiler2::Instruction::to_BUILTINInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::BUILTINInst.

Definition at line 73 of file Instruction.hpp.

virtual CASTInst* cacao::jit::compiler2::Instruction::to_CASTInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::CASTInst.

Definition at line 41 of file Instruction.hpp.

virtual CHECKCASTInst* cacao::jit::compiler2::Instruction::to_CHECKCASTInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::CHECKCASTInst.

Definition at line 69 of file Instruction.hpp.

virtual CHECKNULLInst* cacao::jit::compiler2::Instruction::to_CHECKNULLInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::CHECKNULLInst.

Definition at line 37 of file Instruction.hpp.

virtual CMPInst* cacao::jit::compiler2::Instruction::to_CMPInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::CMPInst.

Definition at line 52 of file Instruction.hpp.

virtual CONSTInst* cacao::jit::compiler2::Instruction::to_CONSTInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::CONSTInst.

Definition at line 53 of file Instruction.hpp.

virtual ContainerInst* cacao::jit::compiler2::Instruction::to_ContainerInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::ContainerInst.

Definition at line 88 of file Instruction.hpp.

virtual COPYInst* cacao::jit::compiler2::Instruction::to_COPYInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::COPYInst.

Definition at line 84 of file Instruction.hpp.

virtual DIVInst* cacao::jit::compiler2::Instruction::to_DIVInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::DIVInst.

Definition at line 45 of file Instruction.hpp.

virtual EndInst* cacao::jit::compiler2::Instruction::to_EndInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::EndInst.

Definition at line 90 of file Instruction.hpp.

virtual GETEXCEPTIONInst* cacao::jit::compiler2::Instruction::to_GETEXCEPTIONInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::GETEXCEPTIONInst.

Definition at line 86 of file Instruction.hpp.

virtual GETFIELDInst* cacao::jit::compiler2::Instruction::to_GETFIELDInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::GETFIELDInst.

Definition at line 54 of file Instruction.hpp.

virtual GETSTATICInst* cacao::jit::compiler2::Instruction::to_GETSTATICInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::GETSTATICInst.

Definition at line 57 of file Instruction.hpp.

virtual GOTOInst* cacao::jit::compiler2::Instruction::to_GOTOInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::GOTOInst.

Definition at line 71 of file Instruction.hpp.

virtual IF_CMPInst* cacao::jit::compiler2::Instruction::to_IF_CMPInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::IF_CMPInst.

Definition at line 79 of file Instruction.hpp.

virtual IFInst* cacao::jit::compiler2::Instruction::to_IFInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::IFInst.

Definition at line 78 of file Instruction.hpp.

virtual INCInst* cacao::jit::compiler2::Instruction::to_INCInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::INCInst.

Definition at line 58 of file Instruction.hpp.

virtual INSTANCEOFInst* cacao::jit::compiler2::Instruction::to_INSTANCEOFInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::INSTANCEOFInst.

Definition at line 70 of file Instruction.hpp.

virtual Instruction* cacao::jit::compiler2::Instruction::to_Instruction ( )
inlinevirtual

Reimplemented from cacao::jit::compiler2::Value.

Definition at line 209 of file Instruction.hpp.

virtual INVOKEINTERFACEInst* cacao::jit::compiler2::Instruction::to_INVOKEINTERFACEInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::INVOKEINTERFACEInst.

Definition at line 77 of file Instruction.hpp.

virtual INVOKESPECIALInst* cacao::jit::compiler2::Instruction::to_INVOKESPECIALInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::INVOKESPECIALInst.

Definition at line 75 of file Instruction.hpp.

virtual INVOKESTATICInst* cacao::jit::compiler2::Instruction::to_INVOKESTATICInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::INVOKESTATICInst.

Definition at line 76 of file Instruction.hpp.

virtual INVOKEVIRTUALInst* cacao::jit::compiler2::Instruction::to_INVOKEVIRTUALInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::INVOKEVIRTUALInst.

Definition at line 74 of file Instruction.hpp.

virtual JSRInst* cacao::jit::compiler2::Instruction::to_JSRInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::JSRInst.

Definition at line 72 of file Instruction.hpp.

virtual LoadInst* cacao::jit::compiler2::Instruction::to_LoadInst ( )
inlinevirtual

Definition at line 32 of file Instruction.hpp.

virtual LOADInst* cacao::jit::compiler2::Instruction::to_LOADInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::LOADInst.

Definition at line 63 of file Instruction.hpp.

virtual LOOKUPSWITCHInst* cacao::jit::compiler2::Instruction::to_LOOKUPSWITCHInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::LOOKUPSWITCHInst.

Definition at line 81 of file Instruction.hpp.

virtual MOVEInst* cacao::jit::compiler2::Instruction::to_MOVEInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::MOVEInst.

Definition at line 85 of file Instruction.hpp.

virtual MULInst* cacao::jit::compiler2::Instruction::to_MULInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::MULInst.

Definition at line 44 of file Instruction.hpp.

virtual MULTIANEWARRAYInst* cacao::jit::compiler2::Instruction::to_MULTIANEWARRAYInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::MULTIANEWARRAYInst.

Definition at line 68 of file Instruction.hpp.

virtual NEGInst* cacao::jit::compiler2::Instruction::to_NEGInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::NEGInst.

Definition at line 40 of file Instruction.hpp.

virtual NEWARRAYInst* cacao::jit::compiler2::Instruction::to_NEWARRAYInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::NEWARRAYInst.

Definition at line 66 of file Instruction.hpp.

virtual NEWInst* cacao::jit::compiler2::Instruction::to_NEWInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::NEWInst.

Definition at line 65 of file Instruction.hpp.

virtual NOPInst* cacao::jit::compiler2::Instruction::to_NOPInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::NOPInst.

Definition at line 35 of file Instruction.hpp.

virtual ORInst* cacao::jit::compiler2::Instruction::to_ORInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::ORInst.

Definition at line 50 of file Instruction.hpp.

virtual PHIInst* cacao::jit::compiler2::Instruction::to_PHIInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::PHIInst.

Definition at line 87 of file Instruction.hpp.

virtual POPInst* cacao::jit::compiler2::Instruction::to_POPInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::POPInst.

Definition at line 36 of file Instruction.hpp.

virtual PUTFIELDInst* cacao::jit::compiler2::Instruction::to_PUTFIELDInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::PUTFIELDInst.

Definition at line 55 of file Instruction.hpp.

virtual PUTSTATICInst* cacao::jit::compiler2::Instruction::to_PUTSTATICInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::PUTSTATICInst.

Definition at line 56 of file Instruction.hpp.

virtual REMInst* cacao::jit::compiler2::Instruction::to_REMInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::REMInst.

Definition at line 46 of file Instruction.hpp.

virtual RETInst* cacao::jit::compiler2::Instruction::to_RETInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::RETInst.

Definition at line 62 of file Instruction.hpp.

virtual RETURNInst* cacao::jit::compiler2::Instruction::to_RETURNInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::RETURNInst.

Definition at line 82 of file Instruction.hpp.

virtual SHLInst* cacao::jit::compiler2::Instruction::to_SHLInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::SHLInst.

Definition at line 47 of file Instruction.hpp.

virtual STOREInst* cacao::jit::compiler2::Instruction::to_STOREInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::STOREInst.

Definition at line 64 of file Instruction.hpp.

virtual SUBInst* cacao::jit::compiler2::Instruction::to_SUBInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::SUBInst.

Definition at line 43 of file Instruction.hpp.

virtual TABLESWITCHInst* cacao::jit::compiler2::Instruction::to_TABLESWITCHInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::TABLESWITCHInst.

Definition at line 80 of file Instruction.hpp.

virtual THROWInst* cacao::jit::compiler2::Instruction::to_THROWInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::THROWInst.

Definition at line 83 of file Instruction.hpp.

virtual UnaryInst* cacao::jit::compiler2::Instruction::to_UnaryInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::UnaryInst.

Definition at line 33 of file Instruction.hpp.

virtual USHRInst* cacao::jit::compiler2::Instruction::to_USHRInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::USHRInst.

Definition at line 48 of file Instruction.hpp.

virtual XORInst* cacao::jit::compiler2::Instruction::to_XORInst ( )
inlinevirtual

Reimplemented in cacao::jit::compiler2::XORInst.

Definition at line 51 of file Instruction.hpp.

bool cacao::jit::compiler2::Instruction::verify ( ) const
virtual

check if the instruction is in a correct state

Reimplemented in cacao::jit::compiler2::LOOKUPSWITCHInst, and cacao::jit::compiler2::TABLESWITCHInst.

Definition at line 82 of file Instruction.cpp.

Friends And Related Function Documentation

MachineCode* compile ( methodinfo )
friend

prolog start jit_compile

prolog end jit_compile

prolog start jit_compile_intern

prolog end jit_compile_intern

epilog start jit_compile

epilog end jit_compile

Definition at line 123 of file Compiler.cpp.

friend class Value
friend

Definition at line 230 of file Instruction.hpp.

Field Documentation

BeginInst* cacao::jit::compiler2::Instruction::begin
protected

Definition at line 109 of file Instruction.hpp.

DepListTy cacao::jit::compiler2::Instruction::dep_list
private

Definition at line 92 of file Instruction.hpp.

const int cacao::jit::compiler2::Instruction::id
protected

Definition at line 108 of file Instruction.hpp.

int cacao::jit::compiler2::Instruction::id_counter = 0
staticprivate

Definition at line 95 of file Instruction.hpp.

Method* cacao::jit::compiler2::Instruction::method
protected

Definition at line 107 of file Instruction.hpp.

OperandListTy cacao::jit::compiler2::Instruction::op_list
private

Definition at line 91 of file Instruction.hpp.

const InstID cacao::jit::compiler2::Instruction::opcode
protected

Definition at line 106 of file Instruction.hpp.

DepListTy cacao::jit::compiler2::Instruction::reverse_dep_list
private

Definition at line 93 of file Instruction.hpp.


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