From 747f4d2922e2407f56f1426901bc2b6c310a8a9f Mon Sep 17 00:00:00 2001 From: Christoph Mallon Date: Fri, 23 Nov 2012 22:21:22 +0100 Subject: [PATCH] edges: Remove support for private edge data. --- include/libfirm/iredges.h | 12 ------------ ir/ir/iredges.c | 31 +------------------------------ ir/ir/iredges_t.h | 23 ----------------------- 3 files changed, 1 insertion(+), 65 deletions(-) diff --git a/include/libfirm/iredges.h b/include/libfirm/iredges.h index b1f2c35d9..d50d57b3f 100644 --- a/include/libfirm/iredges.h +++ b/include/libfirm/iredges.h @@ -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" diff --git a/ir/ir/iredges.c b/ir/ir/iredges.c index 6a338b583..212cdfba3 100644 --- a/ir/ir/iredges.c +++ b/ir/ir/iredges.c @@ -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) { diff --git a/ir/ir/iredges_t.h b/ir/ir/iredges_t.h index ab918dd07..8315ca1ce 100644 --- a/ir/ir/iredges_t.h +++ b/ir/ir/iredges_t.h @@ -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 -- 2.20.1