![]() |
libFirm
|
Macros | |
| #define | foreach_out_edge_kind(irn, edge, kind) |
| A convenience iteration macro over all out edges of a node. | |
| #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. | |
| #define | foreach_out_edge(irn, edge) |
| Convenience macro for normal out edges. | |
| #define | foreach_out_edge_safe(irn, edge) |
| Convenience macro for normal out edges. | |
| #define | foreach_block_succ(bl, edge) |
| A convenience iteration macro for all control flow edges. | |
| #define | foreach_block_succ_safe(bl, edge) |
| A convenience iteration macro for all control flow edges. | |
Typedefs | |
| typedef struct ir_edge_t | ir_edge_t |
| Dynamic Reverse Edge. | |
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. | |
| const ir_edge_t * | get_irn_out_edge_first (const ir_node *irn) |
| Returns the first edge pointing to some node. | |
| const ir_edge_t * | get_block_succ_first (const ir_node *block) |
| Returns the first edge pointing to a successor block. | |
| 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. | |
| ir_node * | get_edge_src_irn (const ir_edge_t *edge) |
| Returns the source node of an edge. | |
| int | get_edge_src_pos (const ir_edge_t *edge) |
| Returns the position of an edge. | |
| 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. | |
| int | get_irn_n_edges (const ir_node *irn) |
| Returns the number of registered out edges with EDGE_KIND_NORMAL. | |
| int | edges_activated_kind (const ir_graph *irg, ir_edge_kind_t kind) |
| Checks if the out edges are activated. | |
| int | edges_activated (const ir_graph *irg) |
| Checks if out edges with EDG_KIND_NORMAL and EDGE_KIND_BLOCK are activated. | |
| void | edges_activate_kind (ir_graph *irg, ir_edge_kind_t kind) |
| Activates the edges for an irg. | |
| void | edges_deactivate_kind (ir_graph *irg, ir_edge_kind_t kind) |
| Deactivates the edges for an irg. | |
| 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. | |
| void | edges_reroute (ir_node *old, ir_node *nw) |
| Reroutes edges of EDGE_KIND_NORMAL from an old node to a new one. | |
| 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. | |
| 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. | |
| void | edges_init_dbg (int do_dbg) |
| Sets edge verification flag. | |
| void | edges_activate (ir_graph *irg) |
| Activates data and block edges for an irg. | |
| void | edges_deactivate (ir_graph *irg) |
| Deactivates data and block edges for an irg. | |
| void | assure_edges (ir_graph *irg) |
| Ensures that edges are activated. | |
| void | assure_edges_kind (ir_graph *irg, ir_edge_kind_t kind) |
| Ensures that edges of a given kind are activated. | |
| 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. | |
| void | irg_walk_edges (ir_node *start, irg_walk_func *pre, irg_walk_func *post, void *env) |
| Graph walker following EDGE_KIND_NORMAL edges. | |
| #define foreach_block_succ | ( | bl, | |
| edge ) |
A convenience iteration macro for all control flow edges.
| #define foreach_block_succ_safe | ( | bl, | |
| edge ) |
A convenience iteration macro for all control flow edges.
| #define foreach_out_edge | ( | irn, | |
| edge ) |
Convenience macro for normal out edges.
| #define foreach_out_edge_kind | ( | irn, | |
| edge, | |||
| kind ) |
A convenience iteration macro over all out edges of a node.
| irn | The node. |
| kind | The edge's kind. |
| edge | An ir_edge_t pointer which shall be set to the current edge. |
| #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 ) |
Convenience macro for normal out edges.
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 22 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.