Adapted to previous commit.
[libfirm] / ir / be / bespill.c
index 5e16650..573aaa1 100644 (file)
@@ -139,12 +139,6 @@ static void prepare_constr_insn(be_pre_spill_env_t *env, ir_node *node)
                        if (rbitset_equal(req->limited, req2->limited, cls->n_regs))
                                continue;
 
-#if 0
-                       /* Matze: looks fishy to me disabled it for now */
-                       if (be_is_Copy(get_irn_n(insn->irn, a_op->pos)))
-                               continue;
-#endif
-
                        copy = be_new_Copy(cls, block, in);
                        stat_ev_int("constr_copy", 1);
 
@@ -253,6 +247,9 @@ void be_pre_spill_prepare_constr(be_irg_t *birg,
        memset(&env, 0, sizeof(env));
        env.birg = birg;
        env.cls  = cls;
+
+       be_assure_liveness(birg);
+
        irg_block_walk_graph(irg, pre_spill_prepare_constr_walker, NULL, &env);
 }