13 #ifndef FIRM_ANA_CALLGRAPH_H 
   14 #define FIRM_ANA_CALLGRAPH_H 
   17 #include "firm_types.h" 
void analyse_loop_nesting_depth(void)
Computes the interprocedural loop nesting information. 
Loop nesting depth is computed but the graphs have been changed since. 
void set_irp_loop_nesting_depth_state_inconsistent(void)
Marks the nesting depth state of the program representation as inconsistent. 
int has_irg_callee_backedge(const ir_graph *irg)
Returns non-zero if the irg has a backedge callee. 
ir_graph * get_irg_callee(const ir_graph *irg, size_t pos)
Returns the callee at position pos. 
void callgraph_walk_func(ir_graph *g, void *env)
A function type for functions passed to the callgraph walker. 
int is_irg_callee_backedge(const ir_graph *irg, size_t pos)
Returns non-zero if the callee at position pos is "a backedge", i.e. 
loop_nesting_depth_state get_irp_loop_nesting_depth_state(void)
Returns the nesting depth state of the program representation. 
void set_irp_loop_nesting_depth_state(loop_nesting_depth_state s)
Sets the nesting depth state of the program representation. 
struct ir_graph ir_graph
Procedure Graph. 
ir_graph * get_irg_caller(const ir_graph *irg, size_t pos)
Returns the caller at position pos. 
double get_irg_method_execution_frequency(const ir_graph *irg)
Returns the method execution frequency of a graph. 
Loop nesting depth information is computed and correct. 
void callgraph_walk(callgraph_walk_func *pre, callgraph_walk_func *post, void *env)
Walks over the callgraph. 
Both callgraph and calltree are consistent. 
loop_nesting_depth_state
The state of loop nesting depth. 
size_t get_irg_n_callees(const ir_graph *irg)
Returns the number of procedures that are called by the given irg. 
irp_callgraph_state
Flag to indicate state of callgraph. 
size_t get_irg_callee_loop_depth(const ir_graph *irg, size_t pos)
Returns the maximal loop depth of call nodes that call along this edge. 
void set_irp_callgraph_state(irp_callgraph_state s)
Sets the callgraph state of the program representation. 
void find_callgraph_recursions(void)
Compute the backedges that represent recursions and a looptree. 
Callgraph is allocated but inconsistent. 
irp_callgraph_state get_irp_callgraph_state(void)
Returns the callgraph state of the program representation. 
int is_irg_caller_backedge(const ir_graph *irg, size_t pos)
Returns non-zero if the caller at position pos is "a backedge", i.e. 
int has_irg_caller_backedge(const ir_graph *irg)
Returns non-zero if the irg has a backedge caller. 
Callgraph constistent but calltree is inconsistent. 
size_t get_irg_n_callers(const ir_graph *irg)
Returns the number of procedures that call the given irg. 
void free_callgraph(void)
Destruct the callgraph. 
size_t get_irg_caller_loop_depth(const ir_graph *irg, size_t pos)
Returns the maximal loop depth of call nodes that call along this edge. 
Loop nesting depths are not computed, no memory is allocated, access fails. 
void compute_callgraph(void)
Construct the callgraph.