31 #ifndef _JIT_COMPILER2_INSTRUCTION
32 #define _JIT_COMPILER2_INSTRUCTION
192 assert(0 &&
"Trying to set BeginInst of a non floating instruction");
221 return "Unknown Instruction";
239 public std::binary_function<const Instruction*, const Instruction*, bool> {
Instruction * dep_back() const
virtual OStream & print(OStream &OS) const
print
const_dep_iterator rdep_begin() const
Value * get_operand(size_t i)
void append_user(Instruction *I)
void set_Method(Method *M)
const char * get_name() const
This Instruction mark the start of a basic block.
virtual void accept(InstructionVisitor &v, bool copyOperands)=0
Visitor.
const_dep_iterator dep_begin() const
OperandListTy::iterator op_iterator
friend MachineCode * compile(methodinfo *)
virtual bool is_floating() const
True if the instruction has no fixed control dependencies.
virtual bool has_side_effects() const
True the instruction has side effects.
void append_dep(Instruction *I)
Second stage compiler class.
virtual bool is_arithmetic() const
True if the instruction is an arithmetic instruction.
OperandListTy::const_iterator const_op_iterator
std::list< T, Allocator< T > > type
InstID get_opcode() const
return the opcode of the instruction
OStream & print_operands(OStream &OS)
virtual bool verify() const
check if the instruction is in a correct state
JNIEnv jthread jmethodID method
int get_id() const
return a unique identifier for this instruction
void remove_dep(Instruction *I)
std::vector< T, Allocator< T > > type
virtual bool is_commutable() const
True if the operands of the instruction are commutable.
virtual Instruction * to_Instruction()
Simple stream class for formatted output.
Instruction * dep_front() const
OStream & operator<<(OStream &OS, const Conditional::CondID &cond)
Less comparator for Instruction pointers.
alloc::vector< Value * >::type OperandListTy
void replace_op(Value *v_old, Value *v_new)
const_dep_iterator rdep_end() const
virtual bool is_homogeneous() const
True if the instruction has a homogeneous signature.
DepListTy::const_iterator const_dep_iterator
const_op_iterator op_begin() const
int get_operand_index(Value *op) const
static void reset()
Reset static infos (run by Compiler)
Method * get_Method() const
DepListTy reverse_dep_list
virtual bool set_BeginInst(BeginInst *b)
const_dep_iterator dep_end() const
virtual BeginInst * get_BeginInst() const
Get the corresponding BeginInst.
bool operator()(const Instruction *lhs, const Instruction *rhs) const
DepListTy::iterator dep_iterator
const_op_iterator op_end() const
alloc::list< Instruction * >::type DepListTy
Instruction(InstID opcode, Type::TypeID type, BeginInst *begin=NULL)