From 78c21f853b6f687251810a6a007ef1f9678a2ab5 Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Thu, 29 Jun 2006 13:03:20 +0000 Subject: [PATCH] BugFix: - when welding blocks, correctly handle the blockinfo Removed all dumping functions [r7965] --- ir/opt/ifconv.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/ir/opt/ifconv.c b/ir/opt/ifconv.c index 5e382bd41..07d2dcd7d 100644 --- a/ir/opt/ifconv.c +++ b/ir/opt/ifconv.c @@ -330,7 +330,10 @@ restart: if (arity == 2) { #if 1 DB((dbg, LEVEL_1, "Welding block %+F and %+F\n", block, psi_block)); - get_block_blockinfo(block)->has_pinned |= get_block_blockinfo(psi_block)->has_pinned; + /* copy the block-info from the Psi-block to the block before merging */ + get_block_blockinfo(psi_block)->has_pinned |= get_block_blockinfo(block)->has_pinned; + set_irn_link(block, get_irn_link(psi_block)); + set_irn_in(block, get_irn_arity(psi_block), get_irn_in(psi_block) + 1); exchange_cdep(psi_block, block); exchange(psi_block, block); @@ -609,13 +612,9 @@ void opt_if_conv(ir_graph *irg, const opt_if_conv_info_t *params) DB((dbg, LEVEL_1, "Running if-conversion on %+F\n", irg)); - dump_ir_block_graph(irg, "_00_pre"); - normalize_one_return(irg); remove_critical_cf_edges(irg); - dump_ir_block_graph(irg, "_01_normal"); - compute_cdep(irg); assure_doms(irg); @@ -624,14 +623,10 @@ void opt_if_conv(ir_graph *irg, const opt_if_conv_info_t *params) irg_walk_graph(irg, collect_phis, NULL, NULL); irg_block_walk_graph(irg, NULL, if_conv_walker, NULL); - dump_ir_block_graph(irg, "_02_ifconv"); local_optimize_graph(irg); - dump_ir_block_graph(irg, "_03_postopt"); irg_walk_graph(irg, NULL, optimise_psis, NULL); - dump_ir_block_graph(irg, "_04_postifconv"); - obstack_free(&obst, NULL); free_dom(irg); @@ -1623,8 +1618,6 @@ void opt_if_conv(ir_graph *irg, const opt_if_conv_info_t *params) DBG((dbg, LEVEL_1, "muxes made: %d\n", muxes_made)); obstack_free(&obst, NULL); - - dump_ir_block_graph(irg, "_ifconv_hack"); } #endif -- 2.20.1