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