libFirm
|
Functions | |
void | add_End_keepalive (ir_node *end, ir_node *ka) |
Keep alive dedicated nodes. | |
void | set_End_keepalives (ir_node *end, int n, ir_node *in[]) |
Sets new keep-alives. | |
void | remove_End_keepalive (ir_node *end, const ir_node *irn) |
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 . | |
void | remove_End_Bads_and_doublets (ir_node *end) |
Removes Bads, NoMem and doublets from the keep-alive set. | |
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. | |
ir_node * | new_rd_End (dbg_info *dbgi, ir_graph *irg, int arity, ir_node *const *in) |
Construct an End node. | |
ir_node * | new_r_End (ir_graph *irg, int arity, ir_node *const *in) |
Construct an End node. | |
ir_node * | new_d_End (dbg_info *dbgi, int arity, ir_node *const *in) |
Construct an End node. | |
ir_node * | new_End (int arity, ir_node *const *in) |
Construct an End node. | |
int | is_End (const ir_node *node) |
Test if node is a End. | |
int | get_End_n_keepalives (ir_node const *node) |
Get the number of End keepalives. | |
ir_node * | get_End_keepalive (ir_node const *node, int pos) |
Get the End keepalive with index pos . | |
void | set_End_keepalive (ir_node *node, int pos, ir_node *keepalive) |
Set the End keepalive with index pos . | |
ir_node ** | get_End_keepalive_arr (ir_node *node) |
Get an array of all End keepalives. | |
ir_op * | get_op_End (void) |
Returns opcode for End nodes. | |
Variables | |
ir_op * | op_End |
End opcode. | |
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.
int get_End_n_keepalives | ( | ir_node const * | node | ) |
Get the number of End keepalives.
ir_op * get_op_End | ( | void | ) |
Returns opcode for End nodes.
int is_End | ( | const ir_node * | node | ) |
Test if node is a End.
Construct an End node.
dbgi | A pointer to debug information. |
arity | size of additional inputs array |
in | additional inputs |
Construct an End node.
arity | size of additional inputs array |
in | additional inputs |
Construct an End node.
irg | The IR graph the node belongs to. |
arity | size of additional inputs array |
in | additional inputs |
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 |
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
.
Sets new keep-alives.
Beware: This might be an expensive operation if dynamic edges are enabled, so avoid it in the backend.