From: Michael Beck Date: Thu, 12 Jun 2008 11:18:29 +0000 (+0000) Subject: workaround for dead CF: restart the optimization X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=680e3f5f4c5233fcf3f0f81890715aed0960da6f;hp=3bb99d96d55905d1606140fef99e35b28ab38542;p=libfirm workaround for dead CF: restart the optimization [r20076] --- diff --git a/ir/opt/cfopt.c b/ir/opt/cfopt.c index be03bfad6..ddb8e53fb 100644 --- a/ir/opt/cfopt.c +++ b/ir/opt/cfopt.c @@ -707,6 +707,7 @@ void optimize_cf(ir_graph *irg) { /* FIXME: is this still needed? */ edges_deactivate(irg); +restart: env.changed = 0; env.phis_moved = 0; @@ -762,11 +763,11 @@ void optimize_cf(ir_graph *irg) { set_irg_doms_inconsistent(irg); set_irg_extblk_inconsistent(irg); set_irg_loopinfo_inconsistent(irg); + goto restart; } /* Optimize the standard code. */ env.changed = 0; - assure_doms(irg); irg_block_walk(get_irg_end_block(irg), optimize_blocks, remove_simple_blocks, &env); /* Walk all keep alives, optimize them if block, add to new in-array