X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbeirgmod.c;h=ac09a21c9175b19b0d1c3568fe5ca19c344264c9;hb=3dceaf7b51dbe63c4588dc92e92f71ddbfe32e9c;hp=dc3ee7a030e793ea96401a8bb74939dbce004744;hpb=e30e5834fd8c1c3a7d28fc66e99b91a84993bde8;p=libfirm diff --git a/ir/be/beirgmod.c b/ir/be/beirgmod.c index dc3ee7a03..ac09a21c9 100644 --- a/ir/be/beirgmod.c +++ b/ir/be/beirgmod.c @@ -29,9 +29,7 @@ * - empty block elimination * - a simple dead node elimination (set inputs of unreachable nodes to BAD) */ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif #include @@ -85,7 +83,6 @@ ir_node *insert_Perm_after(be_irg_t *birg, const arch_register_class_t *cls, ir_node *pos) { - const arch_env_t *arch_env = birg->main_env->arch_env; be_lv_t *lv = birg->lv; ir_node *bl = is_Block(pos) ? pos : get_nodes_block(pos); ir_graph *irg = get_irn_irg(bl); @@ -98,7 +95,7 @@ ir_node *insert_Perm_after(be_irg_t *birg, DBG((dbg, LEVEL_1, "Insert Perm after: %+F\n", pos)); ir_nodeset_init(&live); - be_liveness_nodes_live_at(lv, arch_env, cls, pos, &live); + be_liveness_nodes_live_at(lv, cls, pos, &live); n = ir_nodeset_size(&live); if(n == 0) { @@ -106,7 +103,7 @@ ir_node *insert_Perm_after(be_irg_t *birg, return NULL; } - nodes = xmalloc(n * sizeof(nodes[0])); + nodes = XMALLOCN(ir_node*, n); DBG((dbg, LEVEL_1, "live:\n")); i = 0; @@ -124,12 +121,12 @@ ir_node *insert_Perm_after(be_irg_t *birg, 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(arch_env, perm_op); + const arch_register_t *reg = arch_get_irn_register(perm_op); be_ssa_construction_env_t senv; ir_mode *mode = get_irn_mode(perm_op); ir_node *proj = new_r_Proj(irg, bl, perm, mode, i); - arch_set_irn_register(arch_env, proj, reg); + arch_set_irn_register(proj, reg); curr = proj; @@ -161,10 +158,9 @@ static void remove_empty_block(ir_node *block) ir_node *succ_block; ir_node *jump = NULL; - if (irn_visited(block)) + if (irn_visited_else_mark(block)) return; - mark_irn_visited(block); if (get_Block_n_cfgpreds(block) != 1) goto check_preds;