|  | libFirm
    | 
Last node of a graph. More...
| Functions | |
| void | add_End_keepalive (ir_node *end, ir_node *ka) | 
| Keep alive dedicated nodes.  More... | |
| void | set_End_keepalives (ir_node *end, int n, ir_node *in[]) | 
| Sets new keep-alives.  More... | |
| void | remove_End_keepalive (ir_node *end, const ir_node *irn) | 
| Removes irn from the keep-alive set.  More... | |
| void | remove_End_n (ir_node *end, int idx) | 
| Removes predecessor (a keepalive) at index idxfrom End nodeend.  More... | |
| void | remove_End_Bads_and_doublets (ir_node *end) | 
| Removes Bads, NoMem and doublets from the keep-alive set.  More... | |
| void | free_End (ir_node *end) | 
| Some parts of the End node are allocated separately – their memory is not recovered by dead_node_elimination if a End node is dead.  More... | |
| ir_node * | new_rd_End (dbg_info *dbgi, ir_graph *irg, int arity, ir_node *const *in) | 
| Construct an End node.  More... | |
| ir_node * | new_r_End (ir_graph *irg, int arity, ir_node *const *in) | 
| Construct an End node.  More... | |
| ir_node * | new_d_End (dbg_info *dbgi, int arity, ir_node *const *in) | 
| Construct an End node.  More... | |
| ir_node * | new_End (int arity, ir_node *const *in) | 
| Construct an End node.  More... | |
| int | is_End (const ir_node *node) | 
| Test if node is a End.  More... | |
| int | get_End_n_keepalives (ir_node const *node) | 
| Get the number of End keepalives.  More... | |
| ir_node * | get_End_keepalive (ir_node const *node, int pos) | 
| Get the End keepalive with index pos.  More... | |
| void | set_End_keepalive (ir_node *node, int pos, ir_node *keepalive) | 
| Set the End keepalive with index pos.  More... | |
| ir_node ** | get_End_keepalive_arr (ir_node *node) | 
| Get an array of all End keepalives.  More... | |
| ir_op * | get_op_End (void) | 
| Returns opcode for End nodes.  More... | |
| Variables | |
| ir_op * | op_End | 
| End opcode.  More... | |
Last node of a graph.
It references nodes in endless loops (so called keepalive edges)
Keep alive dedicated nodes.
These must be either PhiM or Block nodes.
| void free_End | ( | ir_node * | end | ) | 
Some parts of the End node are allocated separately – their memory is not recovered by dead_node_elimination if a End node is dead.
free_End() frees these data structures.
Get the End keepalive with index pos. 
Definition at line 1159 of file gen_irnode.c.
Get an array of all End keepalives.
Definition at line 1169 of file gen_irnode.c.
| int get_End_n_keepalives | ( | ir_node const * | node | ) | 
Get the number of End keepalives.
Definition at line 1154 of file gen_irnode.c.
| ir_op* get_op_End | ( | void | ) | 
| int is_End | ( | const ir_node * | node | ) | 
Test if node is a End.
Definition at line 3194 of file gen_irnode.c.
Construct an End node.
| dbgi | A pointer to debug information. | 
| arity | size of additional inputs array | 
| in | additional inputs | 
Definition at line 1142 of file gen_irnode.c.
References current_ir_graph, IR_GRAPH_CONSTRAINT_CONSTRUCTION, irg_is_constrained(), and new_rd_End().
Referenced by new_End().
Construct an End node.
| arity | size of additional inputs array | 
| in | additional inputs | 
Definition at line 1149 of file gen_irnode.c.
References new_d_End().
Construct an End node.
| irg | The IR graph the node belongs to. | 
| arity | size of additional inputs array | 
| in | additional inputs | 
Definition at line 1137 of file gen_irnode.c.
References new_rd_End().
Construct an End node.
| dbgi | A pointer to debug information. | 
| irg | The IR graph the node belongs to. | 
| arity | size of additional inputs array | 
| in | additional inputs | 
Definition at line 1124 of file gen_irnode.c.
References get_irg_end_block(), mode_X, new_ir_node(), op_End, optimize_node(), and verify_new_node().
Referenced by new_d_End(), and new_r_End().
| void remove_End_Bads_and_doublets | ( | ir_node * | end | ) | 
Removes Bads, NoMem and doublets from the keep-alive set.
Removes irn from the keep-alive set.
| void remove_End_n | ( | ir_node * | end, | 
| int | idx | ||
| ) | 
Removes predecessor (a keepalive) at index idx from End node end. 
Set the End keepalive with index pos. 
Definition at line 1164 of file gen_irnode.c.
Sets new keep-alives.
Beware: This might be an expensive operation if dynamic edges are enabled, so avoid it in the backend.
| ir_op* op_End |