30 #define DEBUG_NAME "compiler2/Instruction"
40 return OS <<
"Instruction is NULL";
49 LOG(
"deleting instruction: " <<
this <<
nl);
67 LOG(
"Instruction:::replace_op(this=" <<
this <<
",v_old=" << v_old <<
",v_new=" << v_new <<
")" <<
nl );
76 OS <<
"Operands of " <<
this <<
" (" <<
get_name() <<
")" <<
nl ;
78 OS <<
"OP: " << *
i <<
nl;
87 ERROR_MSG(
"Instruction verification error",
"This type " << *
this
88 <<
" is not equal to operand (" << V <<
") type " << V->
get_type() <<
nl );
virtual OStream & print(OStream &OS) const
print
void append_user(Instruction *I)
Type::TypeID get_type() const
get the value type of the instruction
#define DEBUG(STMT)
Execute debug statements in your current module.
const char * get_name() const
#define ERROR_MSG(EXPR_SHORT, EXPR_LONG)
OStream & print_operands(OStream &OS)
virtual bool verify() const
check if the instruction is in a correct state
int get_id() const
return a unique identifier for this instruction
Simple stream class for formatted output.
OStream & operator<<(OStream &OS, const Conditional::CondID &cond)
void replace_op(Value *v_old, Value *v_new)
virtual bool is_homogeneous() const
True if the instruction has a homogeneous signature.
void user_remove(Instruction *I)
#define LOG(STMT)
Analogous to DEBUG.
DepListTy reverse_dep_list
OStream & dbg()
The default destination for logging messages.