X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fcommon%2Firtools.c;h=426ff8fe737ab67dc7acd41f9461a58d367d2508;hb=57e82df032e718c5d69807a4df3b5841b0b243b3;hp=3b3b490010b8fa869dd8b9d55dafed696fdc243a;hpb=43aca1df83b9862e00da7d604c09521a0aabe770;p=libfirm diff --git a/ir/common/irtools.c b/ir/common/irtools.c index 3b3b49001..426ff8fe7 100644 --- a/ir/common/irtools.c +++ b/ir/common/irtools.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. + * Copyright (C) 1995-2011 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -51,6 +51,20 @@ void firm_clear_node_and_phi_links(ir_node *n, void *env) set_Phi_next(n, NULL); } +void firm_clear_block_phis(ir_node *node, void *env) +{ + (void) env; + if (is_Block(node)) + set_Block_phis(node, NULL); +} + +void firm_collect_block_phis(ir_node *node, void *env) +{ + (void) env; + if (is_Phi(node)) + add_Block_phi(get_nodes_block(node), node); +} + void copy_irn_to_irg(ir_node *n, ir_graph *irg) { ir_op *op = get_irn_op(n); @@ -58,9 +72,7 @@ void copy_irn_to_irg(ir_node *n, ir_graph *irg) ir_node *nn = NULL; /* do not copy standard nodes */ - if (op == op_Bad) - nn = get_irg_bad(irg); - else if (op == op_NoMem) + if (op == op_NoMem) n = get_irg_no_mem(irg); else if (op == op_Block) { old_irg = get_irn_irg(n); @@ -191,7 +203,7 @@ void firm_pset_dump(pset *set) { void *obj; - foreach_pset(set, obj) { + foreach_pset(set, void*, obj) { ir_fprintf(stderr, "%+F\n", obj); } }