+void be_ssa_constr_ignore(be_dom_front_info_t *info, be_lv_t *lv, int n, ir_node *nodes[], pset *ignore_uses)
+{
+ be_ssa_constr_phis_ignore(info, lv, n, nodes, NULL, ignore_uses);
+}
+
+void be_ssa_constr(be_dom_front_info_t *info, be_lv_t *lv, int n, ir_node *nodes[])
+{
+ pset *empty_set = be_empty_set();
+ be_ssa_constr_ignore(info, lv, n, nodes, empty_set);
+}
+
+void be_ssa_constr_set_phis_ignore(be_dom_front_info_t *df, be_lv_t *lv, pset *nodes, pset *phis, pset *ignore_uses)
+{
+ int n = pset_count(nodes);
+ pset *blocks = pset_new_ptr(n);
+ pset *phi_blocks = pset_new_ptr(n);
+ int save_optimize = get_optimize();
+ int save_normalize = get_opt_normalize();
+ int phis_set_created = 0;
+ FIRM_DBG_REGISTER(firm_dbg_module_t *dbg, DBG_MODULE);
+
+ ir_node *irn;
+
+ /* We need to collect the phi functions to compute their liveness. */
+ if(lv && !phis) {
+ phis_set_created = 1;
+ phis = pset_new_ptr_default();
+ }
+
+ DBG((dbg, LEVEL_1, "Introducing following copies for:\n"));
+
+ /* Fill the sets. */
+ for(irn = pset_first(nodes); irn; irn = pset_next(nodes)) {
+ ir_node *bl = get_nodes_block(irn);
+ pset_insert_ptr(blocks, bl);
+ DBG((dbg, LEVEL_1, "\t%+F in %+F\n", irn, bl));