void irg_walk_graph(ir_graph *irg, irg_walk_func *pre, irg_walk_func *post, void *env) {
ir_graph * rem = current_ir_graph;
- hook_irg_walk(irg, (void *)pre, (void *)post);
+ hook_irg_walk(irg, (generic_func *)pre, (generic_func *)post);
current_ir_graph = irg;
irg_walk(get_irg_end(irg), pre, post, env);
current_ir_graph = rem;
ir_node *block, *pred;
int i;
- hook_irg_block_walk(current_ir_graph, node, (void *)pre, (void *)post);
+ hook_irg_block_walk(current_ir_graph, node, (generic_func *)pre, (generic_func *)post);
assert(node);
assert(!get_interprocedural_view()); /* interprocedural_view not implemented, because it
{
ir_graph * rem = current_ir_graph;
- hook_irg_walk_blkwise(irg, (void *)pre, (void *)post);
+ hook_irg_walk_blkwise(irg, (generic_func *)pre, (generic_func *)post);
current_ir_graph = irg;
do_irg_walk_blk(irg, pre, post, env);
current_ir_graph = rem;
IF_RESULT_LAST
} if_result_t;
+/**
+ * A generic function type.
+ */
+typedef void (generic_func)(void);
+
/**
* a hook entry
*/
void (*_hook_turn_into_id)(void *context, ir_node *node);
void (*_hook_new_graph)(void *context, ir_graph *irg, entity *ent);
void (*_hook_free_graph)(void *context, ir_graph *irg);
- void (*_hook_irg_walk)(void *context, ir_graph *irg, void *pre, void *post);
- void (*_hook_irg_walk_blkwise)(void *context, ir_graph *irg, void *pre, void *post);
- void (*_hook_irg_block_walk)(void *context, ir_graph *irg, ir_node *node, void *pre, void *post);
+ void (*_hook_irg_walk)(void *context, ir_graph *irg, generic_func *pre, generic_func *post);
+ void (*_hook_irg_walk_blkwise)(void *context, ir_graph *irg, generic_func *pre, generic_func *post);
+ void (*_hook_irg_block_walk)(void *context, ir_graph *irg, ir_node *node, generic_func *pre, generic_func *post);
void (*_hook_merge_nodes)(void *context, ir_node **new_node_array, int new_num_entries,
ir_node **old_node_array, int old_num_entries, hook_opt_kind opt);
void (*_hook_reassociate)(void *context, int start);