CACAO
Data Structures | Public Member Functions | Private Attributes
cacao::jit::compiler2::CONSTInst Class Reference
Inheritance diagram for cacao::jit::compiler2::CONSTInst:
cacao::jit::compiler2::Instruction cacao::jit::compiler2::Value cacao::jit::compiler2::memory::ManagerMixin< Value >

Data Structures

union  val_operand_t
 

Public Member Functions

 CONSTInst (int32_t i, Type::IntType)
 
 CONSTInst (int64_t l, Type::LongType)
 
 CONSTInst (float f, Type::FloatType)
 
 CONSTInst (double d, Type::DoubleType)
 
virtual CONSTInstto_CONSTInst ()
 
s8 get_value () const
 
int32_t get_Int () const
 
int64_t get_Long () const
 
float get_Float () const
 
double get_Double () const
 
virtual void accept (InstructionVisitor &v, bool copyOperands)
 Visitor. More...
 
virtual OStreamprint (OStream &OS) const
 print More...
 
- Public Member Functions inherited from cacao::jit::compiler2::Instruction
 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 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
 
- 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...
 

Private Attributes

val_operand_t value
 

Additional Inherited Members

- Public Types inherited from cacao::jit::compiler2::Instruction
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
 
- 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...
 
- Protected Member Functions inherited from cacao::jit::compiler2::Instruction
 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 inherited from cacao::jit::compiler2::Instruction
const InstID opcode
 
Methodmethod
 
const int id
 
BeginInstbegin
 

Detailed Description

Definition at line 420 of file Instructions.hpp.

Constructor & Destructor Documentation

cacao::jit::compiler2::CONSTInst::CONSTInst ( int32_t  i,
Type::IntType   
)
inlineexplicit

Definition at line 433 of file Instructions.hpp.

cacao::jit::compiler2::CONSTInst::CONSTInst ( int64_t  l,
Type::LongType   
)
inlineexplicit

Definition at line 436 of file Instructions.hpp.

cacao::jit::compiler2::CONSTInst::CONSTInst ( float  f,
Type::FloatType   
)
inlineexplicit

Definition at line 439 of file Instructions.hpp.

cacao::jit::compiler2::CONSTInst::CONSTInst ( double  d,
Type::DoubleType   
)
inlineexplicit

Definition at line 442 of file Instructions.hpp.

Member Function Documentation

virtual void cacao::jit::compiler2::CONSTInst::accept ( InstructionVisitor v,
bool  copyOperands 
)
inlinevirtual

Visitor.

Implements cacao::jit::compiler2::Instruction.

Definition at line 476 of file Instructions.hpp.

double cacao::jit::compiler2::CONSTInst::get_Double ( ) const
inline

Definition at line 472 of file Instructions.hpp.

float cacao::jit::compiler2::CONSTInst::get_Float ( ) const
inline

Definition at line 468 of file Instructions.hpp.

int32_t cacao::jit::compiler2::CONSTInst::get_Int ( ) const
inline

Definition at line 460 of file Instructions.hpp.

int64_t cacao::jit::compiler2::CONSTInst::get_Long ( ) const
inline

Definition at line 464 of file Instructions.hpp.

s8 cacao::jit::compiler2::CONSTInst::get_value ( ) const
inline
Bug:
this does not what one might expect! Do not use!

Definition at line 450 of file Instructions.hpp.

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

print

Reimplemented from cacao::jit::compiler2::Instruction.

Definition at line 477 of file Instructions.hpp.

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

Reimplemented from cacao::jit::compiler2::Instruction.

Definition at line 445 of file Instructions.hpp.

Field Documentation

val_operand_t cacao::jit::compiler2::CONSTInst::value
private

Definition at line 431 of file Instructions.hpp.


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