It is always the same as the irn of the corresponding insn.
be_operand_t *const out_op = &insn->ops[j];
for (int i = insn->use_start; i < insn->n_ops; ++i) {
be_operand_t *const op = &insn->ops[i];
- if (op->partner || be_values_interfere(lv, op->irn, op->carrier))
+ if (op->partner || be_values_interfere(lv, insn->irn, op->carrier))
continue;
bitset_copy(bs, op->regs);
/* found a def: create a new operand */
o.req = arch_get_irn_register_req(p);
o.carrier = p;
- o.irn = irn;
o.partner = NULL;
obstack_grow(obst, &o, sizeof(o));
insn->n_ops++;
/* only one def, create one operand */
o.req = arch_get_irn_register_req(irn);
o.carrier = irn;
- o.irn = irn;
o.partner = NULL;
obstack_grow(obst, &o, sizeof(o));
insn->n_ops++;
/* found a register use, create an operand */
o.req = arch_get_irn_register_req_in(irn, i);
o.carrier = op;
- o.irn = irn;
o.partner = NULL;
obstack_grow(obst, &o, sizeof(o));
insn->n_ops++;
typedef struct be_insn_t be_insn_t;
struct be_operand_t {
- ir_node *irn; /**< Firm node of the insn this operand belongs to */
ir_node *carrier; /**< node representing the operand value (Proj or the node itself for defs, the used value for uses) */
be_operand_t *partner; /**< used in bechordal later... (TODO what does it do?) */
const bitset_t *regs; /**< admissible register bitset */