2 /* Copyright (C) 1998 - 2000 by Universitaet Karlsruhe
3 ** All rights reserved.
5 ** Authors: Martin Trapp, Christian Schaefer
7 ** irgmod: ir graph modification
10 # include "irnode_t.h"
11 # include "irgraph_t.h"
15 /* Turns a node into a "useless" Tuple. The Tuple just forms a tuple
17 This is useful if a node returning a tuple is removed, but the Projs
18 extracting values from the tuple are not available. */
20 turn_into_tuple (ir_node *node, int arity)
23 set_irn_op(node, op_Tuple);
24 if (get_irn_arity(node) == arity) {
27 /* Allocate new array, don't free old in_array, it's on the obstack. */
28 ir_node *block = get_nodes_Block(node);
29 node->in = NEW_ARR_D (ir_node *, current_ir_graph->obst, arity+1);
30 set_nodes_Block(node, block);
34 /* Insert irnode `new' in place of irnode `old'
35 Since `new' may be bigger than `old' replace `old'
36 by an op_Id which is smaller than everything */
38 exchange (ir_node *old, ir_node *new)
40 ir_node *block = old->in[0];
43 old->in = NEW_ARR_D (ir_node *, current_ir_graph->obst, 2);