31 #ifndef _JIT_COMPILER2_INSTRUCTION
32 #define _JIT_COMPILER2_INSTRUCTION
196 assert(0 &&
"Trying to set BeginInst of a non floating instruction");
241 return "Unknown Instruction";
261 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 marks the start of a basic block.
virtual void accept(InstructionVisitor &v, bool copyOperands)=0
Visitor pattern.
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.
virtual SourceStateAwareInst * to_SourceStateAwareInst()
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
Base type of instructions that can be mapped to a SourceStateInst.
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
virtual 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
Base type of instructions that dereference an object reference.
virtual DereferenceInst * to_DereferenceInst()
DepListTy::iterator dep_iterator
const_op_iterator op_end() const
alloc::list< Instruction * >::type DepListTy