X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Flibfirm%2Firedges.h;h=479934e647c42d6df5e75a4ce1af78bdd9a5b7e1;hb=fa9c992b5f23e7a059ac91fdd04b409b951ebcc4;hp=4bf5c9f833500ab4b5f1b95720d3b34d1525a5b0;hpb=a1d8205395ad58c0a301d4bb276938a63a38c14a;p=libfirm diff --git a/include/libfirm/iredges.h b/include/libfirm/iredges.h index 4bf5c9f83..479934e64 100644 --- a/include/libfirm/iredges.h +++ b/include/libfirm/iredges.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved. + * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -104,7 +104,7 @@ int get_irn_n_edges(const ir_node *irn); * @param edge The edge. * @return The position in the in array of that edges source. */ -extern int get_edge_src_pos(const ir_edge_t *edge); +int get_edge_src_pos(const ir_edge_t *edge); /** * Get the edge object of an outgoing edge at a node. @@ -121,32 +121,44 @@ const ir_edge_t *get_irn_edge_kind(ir_graph *irg, const ir_node *irn, int pos, i * @param irn The node. * @param kind The kind. */ -extern int get_irn_n_edges_kind(const ir_node *irn, ir_edge_kind_t kind); - +int get_irn_n_edges_kind(const ir_node *irn, ir_edge_kind_t kind); /** * Check, if the out edges are activated. - * @param irg The graph. - * @param kind The edge kind. + * + * @param irg The graph. + * @param kind The edge kind. + * * @return 1, if the edges are present for the given irg, 0 if not. */ -extern int edges_activated_kind(const ir_graph *irg, ir_edge_kind_t kind); +int edges_activated_kind(const ir_graph *irg, ir_edge_kind_t kind); /** * Activate the edges for an irg. - * @param irg The graph to activate the edges for. - * @param kind The edge kind. + * + * @param irg The graph to activate the edges for. + * @param kind The edge kind. */ -extern void edges_activate_kind(ir_graph *irg, ir_edge_kind_t kind); +void edges_activate_kind(ir_graph *irg, ir_edge_kind_t kind); /** * Deactivate the edges for an irg. - * @param irg The graph. - * @param kind The edge kind. + * + * @param irg The graph. + * @param kind The edge kind. */ -extern void edges_deactivate_kind(ir_graph *irg, ir_edge_kind_t kind); +void edges_deactivate_kind(ir_graph *irg, ir_edge_kind_t kind); -extern void edges_reroute_kind(ir_node *old, ir_node *nw, ir_edge_kind_t kind, ir_graph *irg); +/** + * Reroute edges of a specified kind from an old node to + * a new one. + * + * @param old the old node + * @param nw the new node + * @param kind the edge kind + * @param irg the graph on which the rerouting occurs + */ +void edges_reroute_kind(ir_node *old, ir_node *nw, ir_edge_kind_t kind, ir_graph *irg); /** * Verifies the out edges of graph @p irg. @@ -185,29 +197,51 @@ const ir_edge_t *get_irn_edge(ir_graph *irg, const ir_node *src, int pos); #endif /** - * Activate all the edges for an irg. - * @param irg The graph to activate the edges for. + * Activates data and block edges for an irg. + * If the irg phase is phase_backend, Dependence edges are + * additionally activated. + * + * @param irg The graph to activate the edges for. + */ +void edges_activate(ir_graph *irg); + +/** + * Deactivate data and block edges for an irg. + * If the irg phase is phase_backend, Dependence edges are + * additionally deactivated. + * @param irg The graph. */ -extern void edges_activate(ir_graph *irg); +void edges_deactivate(ir_graph *irg); /** - * Deactivate all the edges for an irg. - * @param irg The graph. + * Ensure that edges are activated. + * + * @param irg the IR graph + * + * @return 0 if edges was deactivated before the call, 1 else */ -extern void edges_deactivate(ir_graph *irg); +int edges_assure(ir_graph *irg); -extern int edges_assure(ir_graph *irg); +/** + * Ensure that edges of a given kind are activated. + * + * @param irg the IR graph + * @param kind the edge kind + * + * @return 0 if edges was deactivated before the call, 1 else + */ +int edges_assure_kind(ir_graph *irg, ir_edge_kind_t kind); -extern void edges_node_deleted(ir_node *irn, ir_graph *irg); +void edges_node_deleted(ir_node *irn, ir_graph *irg); /** * Notify normal and block edges. */ -extern void edges_notify_edge(ir_node *src, int pos, ir_node *tgt, ir_node *old_tgt, ir_graph *irg); +void edges_notify_edge(ir_node *src, int pos, ir_node *tgt, ir_node *old_tgt, ir_graph *irg); /** - * Walks only over Block nodes in the graph. Has it's own visited - * flag, so that it can be interleaved with the other walker. + * Walks only over Block nodes in the graph. Uses the block visited + * flag, so that it can be interleaved with another walker. * * @param block the start block * @param pre the pre visit function