edges: Remove support for private edge data.
authorChristoph Mallon <christoph.mallon@gmx.de>
Fri, 23 Nov 2012 21:21:22 +0000 (22:21 +0100)
committerChristoph Mallon <christoph.mallon@gmx.de>
Sat, 24 Nov 2012 10:01:31 +0000 (11:01 +0100)
include/libfirm/iredges.h
ir/ir/iredges.c
ir/ir/iredges_t.h

index b1f2c35..d50d57b 100644 (file)
@@ -258,18 +258,6 @@ FIRM_API void irg_block_edges_walk(ir_node *block, irg_walk_func *pre,
 FIRM_API void irg_walk_edges(ir_node *start, irg_walk_func *pre,
                              irg_walk_func *post, void *env);
 
-/**
- * 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
- */
-FIRM_API void edges_reset_private_data(ir_graph *irg, int offset,
-                                       unsigned size);
-
 /** @} */
 
 #include "end.h"
index 6a338b5..212cdfb 100644 (file)
@@ -136,13 +136,6 @@ DEBUG_ONLY(static firm_dbg_module_t *dbg;)
  */
 static int edges_used = 0;
 
-/**
- * Summed size of all users private data
- */
-
-static size_t edges_private_size = 0;
-#define EDGE_SIZE (sizeof(ir_edge_t) + edges_private_size)
-
 /**
  * If set to 1, the list heads are checked every time an edge is changed.
  */
@@ -156,27 +149,6 @@ static inline long edge_get_id(const ir_edge_t *e)
        return (long)e;
 }
 
-size_t edges_register_private_data(size_t n)
-{
-       size_t res = edges_private_size;
-
-       assert(!edges_used && "you cannot register private edge data, if edges have been initialized");
-
-       edges_private_size += n;
-       return res;
-}
-
-void edges_reset_private_data(ir_graph *irg, int offset, unsigned size)
-{
-       irg_edge_info_t       *info = get_irg_edge_info(irg, EDGE_KIND_NORMAL);
-       ir_edge_t             *edge;
-       ir_edgeset_iterator_t  iter;
-
-       foreach_ir_edgeset(&info->edges, edge, iter) {
-               memset(edge + sizeof(*edge) + offset, 0, size);
-       }
-}
-
 void edges_init_graph_kind(ir_graph *irg, ir_edge_kind_t kind)
 {
        if (edges_activated_kind(irg, kind)) {
@@ -348,7 +320,7 @@ void edges_notify_edge_kind(ir_node *src, int pos, ir_node *tgt,
                        ir_edge_t *edge;
 
                        if (list_empty(&info->free_edges)) {
-                               edge = (ir_edge_t*)obstack_alloc(&info->edges_obst, EDGE_SIZE);
+                               edge = OALLOC(&info->edges_obst, ir_edge_t);
                        } else {
                                edge = list_entry(info->free_edges.next, ir_edge_t, list);
                                list_del(&edge->list);
@@ -361,7 +333,6 @@ void edges_notify_edge_kind(ir_node *src, int pos, ir_node *tgt,
                        edge->kind      = kind;
                        edge->list.next = NULL;
                        edge->list.prev = NULL;
-                       memset(edge + 1, 0, edges_private_size);
 
                        new_edge = ir_edgeset_insert(edges, edge);
                        if (new_edge != edge) {
index ab918dd..8315ca1 100644 (file)
@@ -143,28 +143,6 @@ void edges_node_revival(ir_node *node);
 
 void edges_invalidate_kind(ir_node *irn, ir_edge_kind_t kind);
 
-/**
- * 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.
- */
-size_t 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)
-{
-       return (void *) ((char *) edge + sizeof(edge[0]) + ofs);
-}
-
 static inline ir_node *get_edge_src_irn_(const ir_edge_t *edge)
 {
        return edge->src;
@@ -209,7 +187,6 @@ void edges_notify_edge(ir_node *src, int pos, ir_node *tgt,
 #define get_irn_n_edges_kind(irn, kind)   get_irn_n_edges_kind_(irn, kind)
 #define get_edge_src_irn(edge)            get_edge_src_irn_(edge)
 #define get_edge_src_pos(edge)            get_edge_src_pos_(edge)
-#define get_edge_private_data(edge, ofs)  get_edge_private_data_(edge,ofs)
 #define get_irn_out_edge_next(irn, last)  get_irn_out_edge_next_(irn, last)
 
 #ifndef get_irn_n_edges