X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firnode.c;h=8f445b3521d149fdcbae0d9da817f1ea19b37b78;hb=8f355cb9b3d20c10f71d1b1e17cbf59a51ced83b;hp=987fea16d70d5fac3ef304a3a0ba16d087ed7e46;hpb=41cd9133698cf7a75d8835dd04c2fc5d1435925e;p=libfirm diff --git a/ir/ir/irnode.c b/ir/ir/irnode.c index 987fea16d..8f445b352 100644 --- a/ir/ir/irnode.c +++ b/ir/ir/irnode.c @@ -228,40 +228,41 @@ get_irn_in(const ir_node *node) { void set_irn_in(ir_node *node, int arity, ir_node **in) { int i; - ir_node *** arr; + ir_node *** pOld_in; ir_graph *irg = current_ir_graph; assert(node); if (get_interprocedural_view()) { /* handle Filter and Block specially */ - if (get_irn_opcode(node) == iro_Filter) { + ir_opcode code = get_irn_opcode(node); + if (code == iro_Filter) { assert(node->attr.filter.in_cg); - arr = &node->attr.filter.in_cg; - } else if (get_irn_opcode(node) == iro_Block && node->attr.block.in_cg) { - arr = &node->attr.block.in_cg; + pOld_in = &node->attr.filter.in_cg; + } else if (code == iro_Block && node->attr.block.in_cg) { + pOld_in = &node->attr.block.in_cg; } else { - arr = &node->in; + pOld_in = &node->in; } } else { - arr = &node->in; + pOld_in = &node->in; } for (i = 0; i < arity; i++) { - if (i < ARR_LEN(*arr)-1) - edges_notify_edge(node, i, in[i], (*arr)[i+1], irg); + if (i < ARR_LEN(*pOld_in)-1) + edges_notify_edge(node, i, in[i], (*pOld_in)[i+1], irg); else - edges_notify_edge(node, i, in[i], NULL, irg); + edges_notify_edge(node, i, in[i], NULL, irg); } - for(;i < ARR_LEN(*arr)-1; i++) { - edges_notify_edge(node, i, NULL, (*arr)[i+1], irg); + for (;i < ARR_LEN(*pOld_in)-1; i++) { + edges_notify_edge(node, i, NULL, (*pOld_in)[i+1], irg); } - if (arity != ARR_LEN(*arr) - 1) { - ir_node * block = (*arr)[0]; - *arr = NEW_ARR_D(ir_node *, irg->obst, arity + 1); - (*arr)[0] = block; + if (arity != ARR_LEN(*pOld_in) - 1) { + ir_node * block = (*pOld_in)[0]; + *pOld_in = NEW_ARR_D(ir_node *, irg->obst, arity + 1); + (*pOld_in)[0] = block; } fix_backedges(irg->obst, node); - memcpy((*arr) + 1, in, sizeof(ir_node *) * arity); + memcpy((*pOld_in) + 1, in, sizeof(ir_node *) * arity); } ir_node * @@ -884,7 +885,7 @@ ir_node *get_irn_MacroBlock(const ir_node *n) { n = get_nodes_block(n); /* if the Block is Bad, do NOT try to get it's MB, it will fail. */ if (is_Bad(n)) - return new_Bad(); + return (ir_node *)n; } return get_Block_MacroBlock(n); } @@ -2709,6 +2710,11 @@ int return _is_Tuple(node); } +int +(is_Bound)(const ir_node *node) { + return _is_Bound(node); +} + int (is_Start)(const ir_node *node) { return _is_Start(node);