* options for the hook_merge_nodes hook
*/
typedef enum {
+ HOOK_OPT_DEAD_BLOCK, /**< a block was removed because it's dead */
HOOK_OPT_STG, /**< straightening optimization */
HOOK_OPT_IFSIM, /**< if simplification */
HOOK_OPT_CONST_EVAL, /**< constant evaluation */
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);
* register the hook entry.
*
* @param hook the hook type
- * @rapam entry the hook entry
+ * @param entry the hook entry
*/
void register_hook(hook_type_t hook, hook_entry_t *entry);