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 2838 of file gen_irnode.c.
Get the Tuple pred with index pos
.
Definition at line 2843 of file gen_irnode.c.
Get an array of all Tuple preds.
Definition at line 2853 of file gen_irnode.c.
int is_Tuple | ( | const ir_node * | node | ) |
Test if node is a Tuple.
Definition at line 3514 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 2826 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 2821 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 2807 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 2833 of file gen_irnode.c.
References new_d_Tuple().
Set the Tuple pred with index pos
.
Definition at line 2848 of file gen_irnode.c.
ir_op* op_Tuple |
Tuple opcode.
Definition at line 4225 of file nodes.h.
Referenced by get_op_Tuple(), and new_rd_Tuple().