move iropt_dbg to private API (it had wrong includes too and didn't work as public...
[libfirm] / include / libfirm / iredges.h
index 31c2816..9d3484f 100644 (file)
@@ -65,6 +65,7 @@ const ir_edge_t *get_irn_out_edge_next(const ir_node *irn, const ir_edge_t *last
  * @param irn  The node.
  * @param edge An ir_edge_t pointer which shall be set to the current edge.
  * @param ne   The next edge, enables alteration safe edge processing.
+ * @param kind The kind of the edge.
  */
 #define foreach_out_edge_kind_safe(irn, edge, ne, kind) \
        for((edge) = (get_irn_out_edge_first_kind(irn, kind)), (ne) = ((edge) ? (get_irn_out_edge_next(irn, edge)) : NULL); \
@@ -92,13 +93,6 @@ const ir_edge_t *get_irn_out_edge_next(const ir_node *irn, const ir_edge_t *last
  */
 ir_node *get_edge_src_irn(const ir_edge_t *edge);
 
-/**
- * Get the number of edges pointing to a node.
- * @param irn The node.
- * @return The number of edges pointing to this node.
- */
-int get_irn_n_edges(const ir_node *irn);
-
 /**
  * Get the position of an edge.
  * @param edge The edge.
@@ -108,9 +102,10 @@ int get_edge_src_pos(const ir_edge_t *edge);
 
 /**
  * Get the edge object of an outgoing edge at a node.
- * @param   irg The graph, the node is in.
- * @param   irn The node at which the edge originates.
- * @param   pos The position of the edge.
+ * @param  irg  The graph, the node is in.
+ * @param  irn  The node at which the edge originates.
+ * @param  pos  The position of the edge.
+ * @param  kind The kind of the edge.
  * @return      The corresponding edge object or NULL,
  *              if no such edge exists.
  */
@@ -171,6 +166,16 @@ int edges_verify(ir_graph *irg);
  */
 void edges_init_dbg(int do_dbg);
 
+/**
+ * Creates an ir_graph pass for edges_verify().
+ *
+ * @param name                the name of this pass or NULL
+ * @param assert_on_problem   assert if problems were found
+ *
+ * @return  the newly created ir_graph pass
+ */
+ir_graph_pass_t *irg_verify_edges_pass(const char *name, unsigned assert_on_problem);
+
 /************************************************************************/
 /* Begin Old Interface                                                  */
 /************************************************************************/
@@ -197,14 +202,19 @@ 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 all the edges for an irg.
- * @param irg The graph.
+ * Deactivate data and block edges for an irg.
+ * If the irg phase is phase_backend, Dependence edges are
+ * additionally deactivated.
+ * @param irg  The graph.
  */
 void edges_deactivate(ir_graph *irg);
 
@@ -245,7 +255,16 @@ void edges_notify_edge(ir_node *src, int pos, ir_node *tgt, ir_node *old_tgt, ir
  */
 void irg_block_edges_walk(ir_node *block, irg_walk_func *pre, irg_walk_func *post, void *env);
 
-void edges_reset_private_data(ir_graph *irg, int offset, size_t 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!
+ *
+ * @param irg     the IR graph to operate on
+ * @param offset  offset of the private data inside the edge
+ * @param size    length of the private data inside the edge
+ */
+void edges_reset_private_data(ir_graph *irg, int offset, unsigned size);
 
 /************************************************************************/
 /* End Old Interface                                                    */