changed |= rerun;
} while (rerun);
+ clear_using_irn_visited(irg);
+ clear_using_irn_link(irg);
+
if (changed) {
/* control flow changed, some blocks may become dead */
set_irg_outs_inconsistent(irg);
set_irg_doms_inconsistent(irg);
set_irg_extblk_inconsistent(irg);
set_irg_loopinfo_inconsistent(irg);
+
+ /* Dead code might be created. Optimize it away as it is dangerous
+ * to call optimize_df() an dead code. */
+ optimize_cf(irg);
}
- clear_using_irn_visited(irg);
- clear_using_irn_link(irg);
}