- * Get the position of an edge.
- * @param edge.
- * @return The position in the in array of that edges source.
- */
-static INLINE int _get_edge_src_pos(const ir_edge_t *edge)
+* Notify of a edge change.
+* The edge from (src, pos) -> old_tgt is redirected to tgt
+*/
+void edges_notify_edge_kind(ir_node *src, int pos, ir_node *tgt, ir_node *old_tgt, ir_edge_kind_t kind, ir_graph *irg);
+
+/**
+* A node is deleted.
+*/
+void edges_node_deleted(ir_node *old, ir_graph *irg);
+
+void edges_invalidate_kind(ir_node *irn, ir_edge_kind_t kind, ir_graph *irg);
+
+/**
+* Register additional memory in an edge.
+* This must be called before Firm is initialized.
+* @param n Number of bytes you need.
+* @return A number you have to keep and to pass
+* edges_get_private_data()
+* to get a pointer to your data.
+*/
+int edges_register_private_data(size_t n);
+
+/**
+* Get a pointer to the private data you registered.
+* @param edge The edge.
+* @param ofs The number, you obtained with
+* edges_register_private_data().
+* @return A pointer to the private data.
+*/
+static INLINE void *_get_edge_private_data(const ir_edge_t *edge, int ofs)