- DBG((dbg, LEVEL_1, " they do interfere: insert %+F(%s)\n", dupl, get_reg(dupl)->name));
- } else {
- /*
- * First check if there is a phi
- * - in the same block
- * - having arg at the current pos in its arg-list
- * - having the same color as arg
- *
- * If found, then pin the arg
- */
- DBG((dbg, LEVEL_1, " they do not interfere\n"));
- assert(is_Proj(arg));
- if (!is_pinned(arg)) {
- ir_node *other_phi;
- DBG((dbg, LEVEL_1, " searching for phi with same arg having args register\n"));
- for(other_phi = get_irn_link(phi_block); other_phi; other_phi = get_irn_link(other_phi)) {
- assert(is_Phi(other_phi) && get_nodes_block(phi) == get_nodes_block(other_phi) && "link fields are screwed up");
- if (get_irn_n(other_phi, i) == arg && get_reg(other_phi) == arg_reg) {
- DBG((dbg, LEVEL_1, " found %+F(%s)\n", other_phi, get_reg(other_phi)->name));
- pin_irn(arg, phi_block);
- }
+ be_liveness_introduce(lv, dupl);
+ be_liveness_update(lv, arg);
+ DBG((dbg, LEVEL_1, " they do interfere: insert %+F(%s)\n", dupl, arch_get_irn_register(dupl)->name));
+ continue; /* with next argument */
+ }
+
+ DBG((dbg, LEVEL_1, " they do not interfere\n"));
+ assert(is_Proj(arg));
+ /*
+ First check if there is an other phi
+ - in the same block
+ - having arg at the current pos in its arg-list
+ - having the same color as arg
+
+ If found, then pin the arg (for that phi)
+ */
+ if (! is_pinned(arg)) {
+ ir_node *other_phi;
+
+ DBG((dbg, LEVEL_1, " searching for phi with same arg having args register\n"));
+
+ for (other_phi = (ir_node*)get_irn_link(phi_block);
+ other_phi != NULL;
+ other_phi = (ir_node*)get_irn_link(other_phi)) {
+
+ assert(is_Phi(other_phi) &&
+ get_nodes_block(phi) == get_nodes_block(other_phi) &&
+ "link fields are screwed up");
+
+ if (get_irn_n(other_phi, i) == arg && arch_get_irn_register(other_phi) == arg_reg) {
+ DBG((dbg, LEVEL_1, " found %+F(%s)\n", other_phi, arch_get_irn_register(other_phi)->name));
+ pin_irn(arg, phi_block);
+ break;