X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firop.c;h=f11728a36a2af6559c7ee168f3989ddb785443ee;hb=0ada12ba1e11d8ff2e39e3183eb43c4783df2d91;hp=67eab22f9a9b17e34d4c79b2d0fa82175bd34d80;hpb=84a591c384be2dde69acfc8b3549e7b9b7fe3284;p=libfirm diff --git a/ir/ir/irop.c b/ir/ir/irop.c index 67eab22f9..f11728a36 100644 --- a/ir/ir/irop.c +++ b/ir/ir/irop.c @@ -26,6 +26,7 @@ #include +#include "error.h" #include "irop_t.h" #include "irnode_t.h" #include "irhooks.h" @@ -338,7 +339,7 @@ static int node_cmp_attr_Phi(const ir_node *a, const ir_node *b) (void) b; /* do not CSE Phi-nodes without any inputs when building new graphs */ if (get_irn_arity(a) == 0 && - get_irg_phase_state(get_irn_irg(a)) == phase_building) { + irg_is_constrained(get_irn_irg(a), IR_GRAPH_CONSTRAINT_CONSTRUCTION)) { return 1; } return 0; @@ -501,16 +502,10 @@ static int node_cmp_attr_InstOf(const ir_node *a, const ir_node *b) static void default_copy_attr(ir_graph *irg, const ir_node *old_node, ir_node *new_node) { - unsigned size = firm_add_node_size; (void) irg; assert(get_irn_op(old_node) == get_irn_op(new_node)); memcpy(&new_node->attr, &old_node->attr, get_op_attr_size(get_irn_op(old_node))); - - if (size > 0) { - /* copy additional node data */ - memcpy(get_irn_data(new_node, void, size), get_irn_data(old_node, void, size), size); - } } /** @@ -532,7 +527,7 @@ static void block_copy_attr(ir_graph *irg, const ir_node *old_node, default_copy_attr(irg, old_node, new_node); new_node->attr.block.irg.irg = irg; new_node->attr.block.phis = NULL; - new_node->attr.block.backedge = new_backedge_arr(irg->obst, get_irn_arity(new_node)); + new_node->attr.block.backedge = new_backedge_arr(get_irg_obstack(irg), get_irn_arity(new_node)); new_node->attr.block.block_visited = 0; memset(&new_node->attr.block.dom, 0, sizeof(new_node->attr.block.dom)); memset(&new_node->attr.block.pdom, 0, sizeof(new_node->attr.block.pdom)); @@ -551,7 +546,7 @@ static void phi_copy_attr(ir_graph *irg, const ir_node *old_node, { default_copy_attr(irg, old_node, new_node); new_node->attr.phi.next = NULL; - new_node->attr.phi.u.backedge = new_backedge_arr(irg->obst, get_irn_arity(new_node)); + new_node->attr.phi.u.backedge = new_backedge_arr(get_irg_obstack(irg), get_irn_arity(new_node)); } /** @@ -561,9 +556,10 @@ static void ASM_copy_attr(ir_graph *irg, const ir_node *old_node, ir_node *new_node) { default_copy_attr(irg, old_node, new_node); - new_node->attr.assem.input_constraints = DUP_ARR_D(ir_asm_constraint, irg->obst, old_node->attr.assem.input_constraints); - new_node->attr.assem.output_constraints = DUP_ARR_D(ir_asm_constraint, irg->obst, old_node->attr.assem.output_constraints); - new_node->attr.assem.clobbers = DUP_ARR_D(ident*, irg->obst, old_node->attr.assem.clobbers); + struct obstack *const obst = get_irg_obstack(irg); + new_node->attr.assem.input_constraints = DUP_ARR_D(ir_asm_constraint, obst, old_node->attr.assem.input_constraints); + new_node->attr.assem.output_constraints = DUP_ARR_D(ir_asm_constraint, obst, old_node->attr.assem.output_constraints); + new_node->attr.assem.clobbers = DUP_ARR_D(ident*, obst, old_node->attr.assem.clobbers); } static void switch_copy_attr(ir_graph *irg, const ir_node *old_node,