libFirm 1.20
|
Representation and computation of the callgraph. More...
Go to the source code of this file.
Typedefs | |
typedef void | callgraph_walk_func (ir_graph *g, void *env) |
A function type for functions passed to the callgraph walker. | |
Enumerations | |
enum | irp_callgraph_state { irp_callgraph_none, irp_callgraph_consistent, irp_callgraph_inconsistent, irp_callgraph_and_calltree_consistent } |
Flag to indicate state of callgraph. More... | |
enum | loop_nesting_depth_state { loop_nesting_depth_none, loop_nesting_depth_consistent, loop_nesting_depth_inconsistent } |
The state of loop nesting depth. More... | |
Functions | |
irp_callgraph_state | get_irp_callgraph_state (void) |
Returns the callgraph state of the program representation. | |
void | set_irp_callgraph_state (irp_callgraph_state s) |
Sets the callgraph 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. | |
ir_graph * | get_irg_caller (const ir_graph *irg, size_t pos) |
Returns the caller at position pos. | |
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. | |
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. | |
size_t | get_irg_n_callees (const ir_graph *irg) |
Returns the number of procedures that are called by the given irg. | |
ir_graph * | get_irg_callee (const ir_graph *irg, size_t pos) |
Returns the callee at position pos. | |
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. | |
int | has_irg_callee_backedge (const ir_graph *irg) |
Returns non-zero if the irg has a backedge callee. | |
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. | |
size_t | get_irg_loop_depth (const ir_graph *irg) |
Returns the maximal loop depth of all paths from an external visible method to this irg. | |
size_t | get_irg_recursion_depth (const ir_graph *irg) |
Returns the maximal recursion depth of all paths from an external visible method to this irg. | |
double | get_irg_method_execution_frequency (const ir_graph *irg) |
Returns the method execution frequency of a graph. | |
void | compute_callgraph (void) |
Construct the callgraph. | |
void | free_callgraph (void) |
Destruct the callgraph. | |
void | callgraph_walk (callgraph_walk_func *pre, callgraph_walk_func *post, void *env) |
Walks over the callgraph. | |
void | find_callgraph_recursions (void) |
Compute the backedges that represent recursions and a looptree. | |
void | analyse_loop_nesting_depth (void) |
Computes the interprocedural loop nesting information. | |
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. | |
void | set_irp_loop_nesting_depth_state_inconsistent (void) |
Marks the nesting depth state of the program representation as inconsistent. |
Representation and computation of the callgraph.
Definition in file callgraph.h.