X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbeirgmod.c;h=bd2eefb669944c423564971c8bdbdc6127edfdd4;hb=2232b14b4acf810ae96a69d1d2a33cf150b695d9;hp=fb111426880065e5f963c7fe254f7713231f36da;hpb=0df5e0ea5d4d6a566339ac4b93a73719858e81e1;p=libfirm diff --git a/ir/be/beirgmod.c b/ir/be/beirgmod.c index fb1114268..bd2eefb66 100644 --- a/ir/be/beirgmod.c +++ b/ir/be/beirgmod.c @@ -87,7 +87,7 @@ ir_node *insert_Perm_after(ir_graph *irg, const arch_register_class_t *cls, ir_nodeset_t live; ir_nodeset_iterator_t iter; - ir_node *curr, *irn, *perm, **nodes; + ir_node *irn, *perm, **nodes; size_t i, n; DBG((dbg, LEVEL_1, "Insert Perm after: %+F\n", pos)); @@ -116,7 +116,6 @@ ir_node *insert_Perm_after(ir_graph *irg, const arch_register_class_t *cls, sched_add_after(pos, perm); free(nodes); - curr = perm; for (i = 0; i < n; ++i) { ir_node *perm_op = get_irn_n(perm, i); const arch_register_t *reg = arch_get_irn_register(perm_op); @@ -126,8 +125,6 @@ ir_node *insert_Perm_after(ir_graph *irg, const arch_register_class_t *cls, ir_node *proj = new_r_Proj(perm, mode, i); arch_set_irn_register(proj, reg); - curr = proj; - be_ssa_construction_init(&senv, irg); be_ssa_construction_add_copy(&senv, perm_op); be_ssa_construction_add_copy(&senv, proj); @@ -165,7 +162,7 @@ static void remove_empty_block(ir_node *block) sched_foreach(block, node) { if (! is_Jmp(node) - && !(arch_irn_get_flags(node) & arch_irn_flags_simple_jump)) + && !(arch_get_irn_flags(node) & arch_irn_flags_simple_jump)) goto check_preds; if (jump != NULL) { /* we should never have 2 jumps in a block */ @@ -227,7 +224,7 @@ static void remove_empty_block(ir_node *block) panic("Unexpected node %+F in block %+F with empty schedule", node, block); } - set_Block_cfgpred(block, 0, new_r_Bad(irg)); + set_Block_cfgpred(block, 0, new_r_Bad(irg, mode_X)); kill_node(jump); blocks_removed = 1; @@ -266,10 +263,8 @@ int be_remove_empty_blocks(ir_graph *irg) if (blocks_removed) { /* invalidate analysis info */ - set_irg_doms_inconsistent(irg); + clear_irg_state(irg, IR_GRAPH_STATE_CONSISTENT_DOMINANCE); set_irg_extblk_inconsistent(irg); - set_irg_outs_inconsistent(irg); - set_irg_loopinfo_inconsistent(irg); } return blocks_removed; }