![]()  | 
  
    libFirm
    
   | 
 
Macros | |
| #define | foreach_out_edge_kind(irn, edge, kind) for (ir_edge_t const *edge = get_irn_out_edge_first_kind(irn, kind); edge; edge = get_irn_out_edge_next(irn, edge, kind)) | 
| A convenience iteration macro over all out edges of a node.  More... | |
| #define | foreach_out_edge_kind_safe(irn, edge, kind) | 
| A convenience iteration macro over all out edges of a node, which is safe against alteration of the current edge.  More... | |
| #define | foreach_out_edge(irn, edge) foreach_out_edge_kind(irn, edge, EDGE_KIND_NORMAL) | 
| Convenience macro for normal out edges.  More... | |
| #define | foreach_out_edge_safe(irn, edge) foreach_out_edge_kind_safe(irn, edge, EDGE_KIND_NORMAL) | 
| Convenience macro for normal out edges.  More... | |
| #define | foreach_block_succ(bl, edge) foreach_out_edge_kind(bl, edge, EDGE_KIND_BLOCK) | 
| A convenience iteration macro for all control flow edges.  More... | |
Typedefs | |
| typedef struct ir_edge_t | ir_edge_t | 
| Dynamic Reverse Edge.  More... | |
Enumerations | |
| enum | ir_edge_kind_t { EDGE_KIND_NORMAL, EDGE_KIND_FIRST = EDGE_KIND_NORMAL, EDGE_KIND_BLOCK, EDGE_KIND_LAST = EDGE_KIND_BLOCK } | 
| Supported Edge kinds.  More... | |
Functions | |
| const ir_edge_t * | get_irn_out_edge_first_kind (const ir_node *irn, ir_edge_kind_t kind) | 
| Returns the first edge pointing to some node.  More... | |
| const ir_edge_t * | get_irn_out_edge_first (const ir_node *irn) | 
| Returns the first edge pointing to some node.  More... | |
| const ir_edge_t * | get_block_succ_first (const ir_node *block) | 
| Returns the first edge pointing to a successor block.  More... | |
| const ir_edge_t * | get_irn_out_edge_next (const ir_node *irn, const ir_edge_t *last, ir_edge_kind_t kind) | 
| Returns the next edge in the out list of some node.  More... | |
| ir_node * | get_edge_src_irn (const ir_edge_t *edge) | 
| Returns the source node of an edge.  More... | |
| int | get_edge_src_pos (const ir_edge_t *edge) | 
| Returns the position of an edge.  More... | |
| int | get_irn_n_edges_kind (const ir_node *irn, ir_edge_kind_t kind) | 
| Returns the number of registered out edges for a specific kind.  More... | |
| int | get_irn_n_edges (const ir_node *irn) | 
| Returns the number of registered out edges with EDGE_KIND_NORMAL.  More... | |
| int | edges_activated_kind (const ir_graph *irg, ir_edge_kind_t kind) | 
| Checks if the out edges are activated.  More... | |
| int | edges_activated (const ir_graph *irg) | 
| Checks if out edges with EDG_KIND_NORMAL and EDGE_KIND_BLOCK are activated.  More... | |
| void | edges_activate_kind (ir_graph *irg, ir_edge_kind_t kind) | 
| Activates the edges for an irg.  More... | |
| void | edges_deactivate_kind (ir_graph *irg, ir_edge_kind_t kind) | 
| Deactivates the edges for an irg.  More... | |
| void | edges_reroute_kind (ir_node *old, ir_node *nw, ir_edge_kind_t kind) | 
| Reroutes edges of a specified kind from an old node to a new one.  More... | |
| void | edges_reroute (ir_node *old, ir_node *nw) | 
| Reroutes edges of EDGE_KIND_NORMAL from an old node to a new one.  More... | |
| void | edges_reroute_except (ir_node *old, ir_node *nw, ir_node *exception) | 
reroutes (normal) edges from an old node to a new node, except for the exception node which keeps its input even if it is old.  More... | |
| int | edges_verify (ir_graph *irg) | 
Verifies the out edges of graph irg.  More... | |
| int | edges_verify_kind (ir_graph *irg, ir_edge_kind_t kind) | 
Verifies a certrain kind of out edges of graph irg.  More... | |
| void | edges_init_dbg (int do_dbg) | 
| Sets edge verification flag.  More... | |
| void | edges_activate (ir_graph *irg) | 
| Activates data and block edges for an irg.  More... | |
| void | edges_deactivate (ir_graph *irg) | 
| Deactivates data and block edges for an irg.  More... | |
| void | assure_edges (ir_graph *irg) | 
| Ensures that edges are activated.  More... | |
| void | assure_edges_kind (ir_graph *irg, ir_edge_kind_t kind) | 
| Ensures that edges of a given kind are activated.  More... | |
| void | irg_block_edges_walk (ir_node *block, irg_walk_func *pre, irg_walk_func *post, void *env) | 
| Walks only over Block nodes in the graph.  More... | |
| void | irg_walk_edges (ir_node *start, irg_walk_func *pre, irg_walk_func *post, void *env) | 
| Graph walker following EDGE_KIND_NORMAL edges.  More... | |
| #define foreach_block_succ | ( | bl, | |
| edge | |||
| ) | foreach_out_edge_kind(bl, edge, EDGE_KIND_BLOCK) | 
| #define foreach_out_edge | ( | irn, | |
| edge | |||
| ) | foreach_out_edge_kind(irn, edge, EDGE_KIND_NORMAL) | 
| #define foreach_out_edge_kind | ( | irn, | |
| edge, | |||
| kind | |||
| ) | for (ir_edge_t const *edge = get_irn_out_edge_first_kind(irn, kind); edge; edge = get_irn_out_edge_next(irn, edge, kind)) | 
| #define foreach_out_edge_kind_safe | ( | irn, | |
| edge, | |||
| kind | |||
| ) | 
A convenience iteration macro over all out edges of a node, which is safe against alteration of the current edge.
| irn | The node. | 
| edge | An ir_edge_t pointer which shall be set to the current edge. | 
| kind | The kind of the edge. | 
| #define foreach_out_edge_safe | ( | irn, | |
| edge | |||
| ) | foreach_out_edge_kind_safe(irn, edge, EDGE_KIND_NORMAL) | 
Dynamic Reverse Edge.
Definition at line 62 of file firm_types.h.
| enum ir_edge_kind_t | 
Supported Edge kinds.
| Enumerator | |
|---|---|
| EDGE_KIND_NORMAL | 
 Normal data flow edges.  | 
| EDGE_KIND_FIRST | |
| EDGE_KIND_BLOCK | 
 Block to Block control flow edges.  | 
| EDGE_KIND_LAST | |
Definition at line 20 of file iredgekinds.h.
| void assure_edges | ( | ir_graph * | irg | ) | 
Ensures that edges are activated.
| irg | the IR graph | 
| void assure_edges_kind | ( | ir_graph * | irg, | 
| ir_edge_kind_t | kind | ||
| ) | 
Ensures that edges of a given kind are activated.
| irg | the IR graph | 
| kind | the edge kind | 
| void edges_activate | ( | ir_graph * | irg | ) | 
Activates data and block edges for an irg.
If the irg phase is phase_backend, Dependence edges are additionally activated.
| irg | The graph to activate the edges for. | 
| void edges_activate_kind | ( | ir_graph * | irg, | 
| ir_edge_kind_t | kind | ||
| ) | 
Activates the edges for an irg.
| irg | The graph to activate the edges for. | 
| kind | The edge kind. | 
| int edges_activated | ( | const ir_graph * | irg | ) | 
Checks if out edges with EDG_KIND_NORMAL and EDGE_KIND_BLOCK are activated.
| irg | The graph. | 
| int edges_activated_kind | ( | const ir_graph * | irg, | 
| ir_edge_kind_t | kind | ||
| ) | 
Checks if the out edges are activated.
| irg | The graph. | 
| kind | The edge kind. | 
| void edges_deactivate | ( | ir_graph * | irg | ) | 
Deactivates data and block edges for an irg.
If the irg phase is phase_backend, Dependence edges are additionally deactivated.
| irg | The graph. | 
| void edges_deactivate_kind | ( | ir_graph * | irg, | 
| ir_edge_kind_t | kind | ||
| ) | 
Deactivates the edges for an irg.
| irg | The graph. | 
| kind | The edge kind. | 
| void edges_init_dbg | ( | int | do_dbg | ) | 
Sets edge verification flag.
Reroutes edges of EDGE_KIND_NORMAL from an old node to a new one.
| old | the old node | 
| nw | the new node | 
reroutes (normal) edges from an old node to a new node, except for the exception node which keeps its input even if it is old. 
| void edges_reroute_kind | ( | ir_node * | old, | 
| ir_node * | nw, | ||
| ir_edge_kind_t | kind | ||
| ) | 
Reroutes edges of a specified kind from an old node to a new one.
| old | the old node | 
| nw | the new node | 
| kind | the edge kind | 
| int edges_verify | ( | ir_graph * | irg | ) | 
Verifies the out edges of graph irg. 
| int edges_verify_kind | ( | ir_graph * | irg, | 
| ir_edge_kind_t | kind | ||
| ) | 
Verifies a certrain kind of out edges of graph irg. 
Returns the first edge pointing to a successor block.
You can navigate the list with the usual get_irn_out_edge_next().
| block | the Block | 
Returns the source node of an edge.
| edge | The edge. | 
| int get_edge_src_pos | ( | const ir_edge_t * | edge | ) | 
Returns the position of an edge.
| edge | The edge. | 
| int get_irn_n_edges | ( | const ir_node * | irn | ) | 
Returns the number of registered out edges with EDGE_KIND_NORMAL.
| irn | The node. | 
| int get_irn_n_edges_kind | ( | const ir_node * | irn, | 
| ir_edge_kind_t | kind | ||
| ) | 
Returns the number of registered out edges for a specific kind.
| irn | The node. | 
| kind | The kind. | 
Returns the first edge pointing to some node.
| irn | The node. | 
| const ir_edge_t* get_irn_out_edge_first_kind | ( | const ir_node * | irn, | 
| ir_edge_kind_t | kind | ||
| ) | 
Returns the first edge pointing to some node.
| irn | The node. | 
| kind | The kind of the edge. | 
| const ir_edge_t* get_irn_out_edge_next | ( | const ir_node * | irn, | 
| const ir_edge_t * | last, | ||
| ir_edge_kind_t | kind | ||
| ) | 
Returns the next edge in the out list of some node.
| irn | The node. | 
| last | The last out edge you have seen. | 
| kind | the kind of edge that are iterated | 
irn 's out list after last. | void irg_block_edges_walk | ( | ir_node * | block, | 
| irg_walk_func * | pre, | ||
| irg_walk_func * | post, | ||
| void * | env | ||
| ) | 
Walks only over Block nodes in the graph.
Uses the block visited flag, so that it can be interleaved with another walker.
| block | the start block | 
| pre | the pre visit function | 
| post | the post visit function | 
| env | the environment for the walker | 
| void irg_walk_edges | ( | ir_node * | start, | 
| irg_walk_func * | pre, | ||
| irg_walk_func * | post, | ||
| void * | env | ||
| ) | 
Graph walker following EDGE_KIND_NORMAL edges.