libFirm
|
Builds a Tuple from single values. More...
Functions | |
ir_node * | new_rd_Tuple (dbg_info *dbgi, ir_node *block, int arity, ir_node *const *in) |
Construct a Tuple node. More... | |
ir_node * | new_r_Tuple (ir_node *block, int arity, ir_node *const *in) |
Construct a Tuple node. More... | |
ir_node * | new_d_Tuple (dbg_info *dbgi, int arity, ir_node *const *in) |
Construct a Tuple node. More... | |
ir_node * | new_Tuple (int arity, ir_node *const *in) |
Construct a Tuple node. More... | |
int | is_Tuple (const ir_node *node) |
Test if node is a Tuple. More... | |
int | get_Tuple_n_preds (ir_node const *node) |
Get the number of Tuple preds. More... | |
ir_node * | get_Tuple_pred (ir_node const *node, int pos) |
Get the Tuple pred with index pos . More... | |
void | set_Tuple_pred (ir_node *node, int pos, ir_node *pred) |
Set the Tuple pred with index pos . More... | |
ir_node ** | get_Tuple_pred_arr (ir_node *node) |
Get an array of all Tuple preds. More... | |
ir_op * | get_op_Tuple (void) |
Returns opcode for Tuple nodes. More... | |
Variables | |
ir_op * | op_Tuple |
Tuple opcode. More... | |
Builds a Tuple from single values.
This is needed to implement optimizations that remove a node that produced a tuple. The node can be replaced by the Tuple operation so that the following Proj nodes have not to be changed. (They are hard to find due to the implementation with pointers in only one direction.) The Tuple node is smaller than any other node, so that a node can be changed into a Tuple by just changing its opcode and giving it a new in array.
ir_op* get_op_Tuple | ( | void | ) |
int get_Tuple_n_preds | ( | ir_node const * | node | ) |
Get the number of Tuple preds.
Definition at line 2839 of file gen_irnode.c.
Get the Tuple pred with index pos
.
Definition at line 2844 of file gen_irnode.c.
int is_Tuple | ( | const ir_node * | node | ) |
Test if node is a Tuple.
Definition at line 3515 of file gen_irnode.c.
Construct a Tuple node.
dbgi | A pointer to debug information. |
arity | size of additional inputs array |
in | additional inputs |
Definition at line 2827 of file gen_irnode.c.
References current_ir_graph, get_cur_block(), IR_GRAPH_CONSTRAINT_CONSTRUCTION, irg_is_constrained(), and new_rd_Tuple().
Referenced by new_Tuple().
Construct a Tuple node.
block | The IR block the node belongs to. |
arity | size of additional inputs array |
in | additional inputs |
Definition at line 2822 of file gen_irnode.c.
References new_rd_Tuple().
Construct a Tuple node.
dbgi | A pointer to debug information. |
block | The IR block the node belongs to. |
arity | size of additional inputs array |
in | additional inputs |
Definition at line 2808 of file gen_irnode.c.
References get_irn_irg(), mode_T, new_ir_node(), op_Tuple, optimize_node(), and verify_new_node().
Referenced by new_d_Tuple(), and new_r_Tuple().
Construct a Tuple node.
arity | size of additional inputs array |
in | additional inputs |
Definition at line 2834 of file gen_irnode.c.
References new_d_Tuple().
Set the Tuple pred with index pos
.
Definition at line 2849 of file gen_irnode.c.
ir_op* op_Tuple |
Tuple opcode.
Definition at line 4167 of file nodes.h.
Referenced by get_op_Tuple(), get_Tuple_pred_arr(), new_rd_Tuple(), and set_typeconst_type().