X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbecopyopt.c;h=d45ba4ca827ae0ac857b60c858924b521cec682a;hb=5b51879171b314533f689985b172e62a7aefd66a;hp=b82e951e52fdc5408fec4966f266bdab5a41be26;hpb=e4766594e9640777c92da56f37dbdce7b41385a0;p=libfirm diff --git a/ir/be/becopyopt.c b/ir/be/becopyopt.c index b82e951e5..d45ba4ca8 100644 --- a/ir/be/becopyopt.c +++ b/ir/be/becopyopt.c @@ -197,15 +197,14 @@ static void co_collect_units(ir_node *irn, void *env) { /* Src == Tgt of a 2-addr-code instruction */ if (is_2addr_code(get_arch_env(co), irn, &req)) { - int pos = req.data.pos; - ir_node *other = get_irn_n(irn, pos); + ir_node *other = req.other; if (!nodes_interfere(co->chordal_env, irn, other)) { unit->nodes = xmalloc(2 * sizeof(*unit->nodes)); unit->costs = xmalloc(2 * sizeof(*unit->costs)); unit->node_count = 2; unit->nodes[0] = irn; unit->nodes[1] = other; - unit->costs[1] = co->get_costs(irn, other, pos); + unit->costs[1] = co->get_costs(irn, other, -120480); } } else assert(0 && "This is not an optimizable node!"); @@ -278,7 +277,7 @@ int is_optimizable_arg(const copy_opt_t *co, ir_node *irn) { arch_get_register_req(aenv, &req, n, -1); - if( ( (req.type == arch_register_req_type_should_be_same && get_irn_n(n, req.data.pos) == irn) || + if( ( (req.type == arch_register_req_type_should_be_same && req.other == irn) || is_Reg_Phi(n) || is_Perm(get_arch_env(co), n) ) && (irn == n || !nodes_interfere(co->chordal_env, irn, n)))