CACAO
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends
cacao::jit::compiler2::EndInst Class Reference

This Instruction mark the end of a basic block. More...

Inheritance diagram for cacao::jit::compiler2::EndInst:
cacao::jit::compiler2::Instruction cacao::jit::compiler2::Value cacao::jit::compiler2::memory::ManagerMixin< Value > cacao::jit::compiler2::GOTOInst cacao::jit::compiler2::IFInst cacao::jit::compiler2::LOOKUPSWITCHInst cacao::jit::compiler2::RETURNInst cacao::jit::compiler2::TABLESWITCHInst

Public Types

typedef alloc::vector
< BeginInstRef >::type 
SuccessorListTy
 
typedef
SuccessorListTy::const_iterator 
succ_const_iterator
 
typedef
SuccessorListTy::const_reverse_iterator 
succ_const_reverse_iterator
 
- 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
 

Public Member Functions

 EndInst (BeginInst *begin)
 
 EndInst (InstID id, BeginInst *begin)
 
virtual EndInstto_EndInst ()
 
virtual bool is_floating () const
 True if the instruction has no fixed control dependencies. More...
 
void append_succ (BeginInst *bi)
 
int get_successor_index (const BeginInst *BI) const
 
SuccessorListTy::const_iterator succ_begin () const
 
SuccessorListTy::const_iterator succ_end () const
 
SuccessorListTy::const_reverse_iterator succ_rbegin () const
 
SuccessorListTy::const_reverse_iterator succ_rend () const
 
BeginInstRefsucc_front ()
 
BeginInstRefsucc_back ()
 
size_t succ_size () const
 
BeginInstRefget_successor (size_t i)
 
virtual void accept (InstructionVisitor &v, bool copyOperands)
 Visitor. 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 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 ()
 
const char * get_name () const
 
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...
 

Private Member Functions

void set_successor (int index, BeginInst *BI)
 

Private Attributes

SuccessorListTy succ_list
 

Friends

class BeginInst
 
class Method
 

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

This Instruction mark the end of a basic block.

Definition at line 197 of file Instructions.hpp.

Member Typedef Documentation

typedef SuccessorListTy::const_iterator cacao::jit::compiler2::EndInst::succ_const_iterator

Definition at line 200 of file Instructions.hpp.

typedef SuccessorListTy::const_reverse_iterator cacao::jit::compiler2::EndInst::succ_const_reverse_iterator

Definition at line 201 of file Instructions.hpp.

Definition at line 199 of file Instructions.hpp.

Constructor & Destructor Documentation

cacao::jit::compiler2::EndInst::EndInst ( BeginInst begin)
inlineexplicit

Definition at line 208 of file Instructions.hpp.

cacao::jit::compiler2::EndInst::EndInst ( InstID  id,
BeginInst begin 
)
inlineexplicit

Definition at line 212 of file Instructions.hpp.

Member Function Documentation

virtual void cacao::jit::compiler2::EndInst::accept ( InstructionVisitor v,
bool  copyOperands 
)
inlinevirtual
void cacao::jit::compiler2::EndInst::append_succ ( BeginInst bi)
inline

Definition at line 219 of file Instructions.hpp.

BeginInstRef& cacao::jit::compiler2::EndInst::get_successor ( size_t  i)
inline

Definition at line 259 of file Instructions.hpp.

int cacao::jit::compiler2::EndInst::get_successor_index ( const BeginInst BI) const
inline

Definition at line 238 of file Instructions.hpp.

virtual bool cacao::jit::compiler2::EndInst::is_floating ( ) const
inlinevirtual

True if the instruction has no fixed control dependencies.

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

Definition at line 217 of file Instructions.hpp.

void cacao::jit::compiler2::EndInst::set_successor ( int  index,
BeginInst BI 
)
inlineprivate

Definition at line 204 of file Instructions.hpp.

BeginInstRef& cacao::jit::compiler2::EndInst::succ_back ( )
inline

Definition at line 256 of file Instructions.hpp.

SuccessorListTy::const_iterator cacao::jit::compiler2::EndInst::succ_begin ( ) const
inline

Definition at line 251 of file Instructions.hpp.

SuccessorListTy::const_iterator cacao::jit::compiler2::EndInst::succ_end ( ) const
inline

Definition at line 252 of file Instructions.hpp.

BeginInstRef& cacao::jit::compiler2::EndInst::succ_front ( )
inline

Definition at line 255 of file Instructions.hpp.

SuccessorListTy::const_reverse_iterator cacao::jit::compiler2::EndInst::succ_rbegin ( ) const
inline

Definition at line 253 of file Instructions.hpp.

SuccessorListTy::const_reverse_iterator cacao::jit::compiler2::EndInst::succ_rend ( ) const
inline

Definition at line 254 of file Instructions.hpp.

size_t cacao::jit::compiler2::EndInst::succ_size ( ) const
inline

Definition at line 257 of file Instructions.hpp.

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

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

Definition at line 216 of file Instructions.hpp.

Friends And Related Function Documentation

friend class BeginInst
friend

Definition at line 264 of file Instructions.hpp.

friend class Method
friend

Definition at line 265 of file Instructions.hpp.

Field Documentation

SuccessorListTy cacao::jit::compiler2::EndInst::succ_list
private

Definition at line 203 of file Instructions.hpp.


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