-}
-
-void be_ssa_constr_ignore(dom_front_info_t *info, int n, ir_node *nodes[], pset *ignore_uses)
-{
- pset *irns = pset_new_ptr(n);
- int i;
-
- for(i = 0; i < n; ++i)
- pset_insert_ptr(irns, nodes[i]);
- be_ssa_constr_set_ignore(info, irns, ignore_uses);
- del_pset(irns);
-}
-
-void be_ssa_constr(dom_front_info_t *info, int n, ir_node *nodes[])
-{
- pset *empty_set = be_empty_set();
- assert(pset_count(empty_set) == 0);
- be_ssa_constr_ignore(info, n, nodes, empty_set);
-}
-
-void be_ssa_constr_set_ignore(dom_front_info_t *df, pset *nodes, 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();
- firm_dbg_module_t *dbg = DBG_MODULE;
-
- ir_node *irn;
-
- firm_dbg_set_mask(dbg, DBG_LEVEL);
- 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));
+ ir_free_resources(irg, IR_RESOURCE_IRN_VISITED);
+
+ if (blocks_removed) {
+ /* invalidate analysis info */
+ set_irg_doms_inconsistent(irg);
+ set_irg_extblk_inconsistent(irg);
+ set_irg_outs_inconsistent(irg);
+ set_irg_loopinfo_inconsistent(irg);