18 #ifndef FIRM_ANA_IRLOOP_H 
   19 #define FIRM_ANA_IRLOOP_H 
   23 #include "firm_types.h" 
   24 #include "firm_common.h" 
ir_loop * son
Pointer to an ir_loop element. 
loop_element get_loop_element(const ir_loop *loop, size_t pos)
Returns a loop element. 
int is_backedge(const ir_node *n, int pos)
Returns non-zero if the predecessor pos is a backedge. 
int has_backedges(const ir_node *n)
Returns non-zero if n has backedges. 
Loop elements: loop nodes and ir nodes. 
unsigned get_loop_depth(const ir_loop *loop)
Returns nesting depth of this loop. 
struct ir_graph ir_graph
Procedure Graph. 
long get_loop_loop_nr(const ir_loop *loop)
Returns a unique node number for the loop node to make output readable. 
struct ir_loop ir_loop
Loop. 
int is_loop_invariant(const ir_node *n, const ir_node *block)
Tests whether a value is loop invariant. 
void clear_backedges(ir_node *n)
Clears all backedge information. 
ir_loop * get_irn_loop(const ir_node *n)
Returns the loop n is contained in. 
void construct_cf_backedges(ir_graph *irg)
Construct Intra-procedural control flow loop tree for a IR-graph. 
void free_loop_information(ir_graph *irg)
Removes all loop information. 
ir_loop * get_irg_loop(const ir_graph *irg)
Returns the root loop info (if exists) for an irg. 
void set_backedge(ir_node *n, int pos)
Marks edge pos as a backedge. 
ir_graph * irg
Pointer to an ir_graph element (only callgraph loop trees) 
void * get_loop_link(const ir_loop *loop)
Returns field with additional loop information. 
firm_kind * kind
is either k_ir_node or k_ir_loop 
void set_loop_link(ir_loop *loop, void *link)
A field to connect additional information to a loop. 
firm_kind
A list of firm kinds. 
ir_loop * get_loop_outer_loop(const ir_loop *loop)
Returns outer loop, itself if outermost. 
void set_irg_loop(ir_graph *irg, ir_loop *l)
Sets the outermost loop in ir graph as basic access to loop tree. 
struct ir_node ir_node
Procedure Graph Node. 
ir_node * node
Pointer to an ir_node element. 
void assure_loopinfo(ir_graph *irg)
Computes Intra-procedural control flow loop tree on demand. 
size_t get_loop_n_elements(const ir_loop *loop)
Returns the number of elements contained in loop.