libFirm 1.20
|
Loop datastructure and access functions. More...
Go to the source code of this file.
Data Structures | |
union | loop_element |
Loop elements: loop nodes and ir nodes. More... | |
Functions | |
int | is_backedge (const ir_node *n, int pos) |
Returns non-zero if the predecessor pos is a backedge. | |
void | set_backedge (ir_node *n, int pos) |
Marks edge pos as a backedge. | |
void | set_not_backedge (ir_node *n, int pos) |
Marks edge pos as a non-backedge. | |
int | has_backedges (const ir_node *n) |
Returns non-zero if n has backedges. | |
void | clear_backedges (ir_node *n) |
Clears all backedge information. | |
int | is_ir_loop (const void *thing) |
Tests whether a given pointer points to a loop. | |
void | set_irg_loop (ir_graph *irg, ir_loop *l) |
Sets the outermost loop in ir graph as basic access to loop tree. | |
ir_loop * | get_irg_loop (const ir_graph *irg) |
Returns the root loop info (if exists) for an irg. | |
ir_loop * | get_irn_loop (const ir_node *n) |
Returns the loop n is contained in. | |
ir_loop * | get_loop_outer_loop (const ir_loop *loop) |
Returns outer loop, itself if outermost. | |
unsigned | get_loop_depth (const ir_loop *loop) |
Returns nesting depth of this loop. | |
size_t | get_loop_n_elements (const ir_loop *loop) |
Returns the number of elements contained in loop. | |
loop_element | get_loop_element (const ir_loop *loop, size_t pos) |
Returns a loop element. | |
long | get_loop_loop_nr (const ir_loop *loop) |
Returns a unique node number for the loop node to make output readable. | |
void | set_loop_link (ir_loop *loop, void *link) |
A field to connect additional information to a loop. | |
void * | get_loop_link (const ir_loop *loop) |
Returns field with additional loop information. | |
int | construct_backedges (ir_graph *irg) |
Constructs backedge information and loop tree for a graph. | |
int | construct_cf_backedges (ir_graph *irg) |
Construct Intra-procedural control flow loop tree for a IR-graph. | |
void | assure_loopinfo (ir_graph *irg) |
Computes Intra-procedural control flow loop tree on demand. | |
void | free_loop_information (ir_graph *irg) |
Removes all loop information. | |
void | free_all_loop_information (void) |
Removes loop information from all graphs in the current program. | |
int | is_loop_invariant (const ir_node *n, const ir_node *block) |
Tests whether a value is loop invariant. |
Loop datastructure and access functions.
Computes backedges in the control and data flow.
Definition in file irloop.h.