libFirm 1.20
|
Public header for the automatically updating outs. More...
Go to the source code of this file.
Defines | |
#define | foreach_out_edge_kind(irn, edge, kind) for(edge = get_irn_out_edge_first_kind(irn, kind); edge; edge = get_irn_out_edge_next(irn, edge)) |
A convenience iteration macro over all out edges of a node. | |
#define | foreach_out_edge_kind_safe(irn, edge, ne, 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) foreach_out_edge_kind(irn, edge, EDGE_KIND_NORMAL) |
Convenience macro for normal out edges. | |
#define | foreach_out_edge_safe(irn, edge, tmp) foreach_out_edge_kind_safe(irn, edge, tmp, EDGE_KIND_NORMAL) |
Convenience macro for normal out edges. | |
#define | foreach_block_succ(bl, edge) foreach_out_edge_kind(bl, edge, EDGE_KIND_BLOCK) |
A convenience iteration macro for all control flow edges. | |
#define | edges_reroute(old, nw) edges_reroute_kind(old, nw, EDGE_KIND_NORMAL) |
Convenience version of edges_reroute_kind() with EDGE_KIND_NORMAL. | |
#define | edges_activated(irg) (edges_activated_kind(irg, EDGE_KIND_NORMAL) && edges_activated_kind(irg, EDGE_KIND_BLOCK)) |
Conventience version of edges_activated_kind() for EDGE_KIND_NORMAL and EDGE_KIND_BLOCK. | |
#define | get_irn_n_edges(irn) get_irn_n_edges_kind(irn, EDGE_KIND_NORMAL) |
Conventience version of get_irn_n_edges_kind() with EDGE_KIND_NORMAL. | |
#define | get_irn_out_edge_first(irn) get_irn_out_edge_first_kind(irn, EDGE_KIND_NORMAL) |
Convenience version of get_irn_out_edge_first_kind() with EDGE_KIND_NORMAL. | |
#define | get_block_succ_first(irn) get_irn_out_edge_first_kind(irn, EDGE_KIND_BLOCK) |
Convenience version of get_irn_out_edge_first_kind() with EDGE_KIND_BLOCK. | |
#define | get_block_succ_next(irn, last) get_irn_out_edge_next(irn, last) |
Convenience version of get_irn_out_edge_next() with EDGE_KIND_BLOCK. | |
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_next (const ir_node *irn, const ir_edge_t *last) |
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. | |
const ir_edge_t * | get_irn_edge_kind (const ir_node *irn, int pos, ir_edge_kind_t kind) |
Returns the edge object of an outgoing edge at a 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. | |
int | edges_activated_kind (const ir_graph *irg, ir_edge_kind_t kind) |
Checks if the out edges 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. | |
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. | |
ir_graph_pass_t * | irg_verify_edges_pass (const char *name, unsigned assert_on_problem) |
Creates an ir_graph pass for edges_verify(). | |
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. | |
int | edges_assure (ir_graph *irg) |
Ensures that edges are activated. | |
int | edges_assure_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. | |
void | edges_reset_private_data (ir_graph *irg, int offset, unsigned size) |
Reset the user's private data at offset 'offset' The user has to remember his offset and the size of his data! Caution: Using wrong values here can destroy other users private data! |