1 /* Copyright (C) 1998 - 2000 by Universitaet Karlsruhe
2 ** All rights reserved.
4 ** Authors: Martin Trapp, Christian Schaefer
6 ** irgmod: ir graph modification
13 /* arg_access (ir_mode *mode, long proj) */
15 /* return new_r_Proj (current_ir_graph, current_ir_graph->start, */
16 /* current_ir_graph->args, mode, proj); */
19 /* Turns a node into a "useless" Tuple. The Tuple just forms a tuple
21 This is useful if a node returning a tuple is removed, but the Projs
22 extracting values from the tuple are not available. */
24 turn_into_tuple (ir_node *node, int arity)
27 set_irn_op(node, op_Tuple);
28 if (get_irn_arity(node) == arity) {
31 /* allocate new array, remove old one. */
32 /* !!!??? free old in_array */
33 node->in = NEW_ARR_D (ir_node *, current_ir_graph->obst, arity+1);
37 /* Insert irnode `new' in place of irnode `old'
38 Since `new' may be bigger than `old' replace `old'
39 by an op_Id which is smaller than everything */
41 exchange (ir_node *old, ir_node *new)
43 ir_node *block = old->in[0];
46 old->in = NEW_ARR_D (ir_node *, current_ir_graph->obst, 2);