X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbechordal_common.c;h=d9bea04a2c6f9dbea39b1215976cdc8098761d97;hb=b9a1bfdbce56c76bd4d5ff772963628523ecfc41;hp=824d86d7718da2bafa116e2ba4ec9a8ac89c6c8c;hpb=ae1da4394ecac110c79fdf1f07cbca598c1ef4be;p=libfirm diff --git a/ir/be/bechordal_common.c b/ir/be/bechordal_common.c index 824d86d77..d9bea04a2 100644 --- a/ir/be/bechordal_common.c +++ b/ir/be/bechordal_common.c @@ -143,7 +143,7 @@ void create_borders(ir_node *block, void *env_ptr) DB((dbg, LEVEL_1, "\tinsn: %+F, pressure: %d\n", irn, pressure)); DB((dbg, LEVEL_2, "\tlive: %B\n", live)); - be_foreach_definition(irn, env->cls, def, + be_foreach_definition(irn, env->cls, def, req, /* * If the node defines some value, which can put into a * register of the current class, make a border for it. @@ -157,22 +157,18 @@ void create_borders(ir_node *block, void *env_ptr) * If the node is no phi node we can examine the uses. */ if (!is_Phi(irn)) { - for (int i = 0, n = get_irn_arity(irn); i < n; ++i) { - ir_node *op = get_irn_n(irn, i); - - if (arch_irn_consider_in_reg_alloc(env->cls, op)) { - int nr = get_irn_idx(op); - const char *msg = "-"; - - if (!bitset_is_set(live, nr)) { - border_use(op, step, 1); - bitset_set(live, nr); - msg = "X"; - } - - DBG((dbg, LEVEL_4, "\t\t%s pos: %d, use: %+F\n", msg, i, op)); + be_foreach_use(irn, env->cls, in_req_, op, op_req_, + unsigned idx = get_irn_idx(op); + const char *msg = "-"; + + if (!bitset_is_set(live, idx)) { + border_use(op, step, 1); + bitset_set(live, idx); + msg = "X"; } - } + + DB((dbg, LEVEL_4, "\t\t%s pos: %d, use: %+F\n", msg, i_, op)); + ); } ++step; }