libFirm
|
a hook entry More...
#include <irhooks.h>
Data Fields | |
union { | |
void(* _hook_new_ir_op )(void *context, ir_op *op) | |
This hook is called, after a new ir_op was created. | |
void(* _hook_free_ir_op )(void *context, ir_op *op) | |
This hook is called, before am ir_op is destroyed. | |
void(* _hook_new_node )(void *context, ir_graph *graph, ir_node *node) | |
This hook is called, after a new IR-node was created and before it is optimized. | |
void(* _hook_set_irn_n )(void *context, ir_node *src, int pos, ir_node *tgt, ir_node *old_tgt) | |
This hook is called, before a node input was changed. | |
void(* _hook_replace )(void *context, ir_node *old_node, ir_node *new_node) | |
This hook is called, before a node is replaced (exchange()) by another. | |
void(* _hook_turn_into_id )(void *context, ir_node *node) | |
This hook is called, before a node is changed into an Id node. | |
void(* _hook_normalize )(void *context, ir_node *node) | |
This hook is called, after a commutative node was normalized. | |
void(* _hook_new_graph )(void *context, ir_graph *irg, ir_entity *ent) | |
This hook is called, after a new graph was created and before the first block on this graph is build. | |
void(* _hook_free_graph )(void *context, ir_graph *irg) | |
This hook is called before a graph is freed. | |
void(* _hook_irg_walk )(void *context, ir_graph *irg, generic_func *pre, generic_func *post) | |
This hook is called before an irg walk is started. | |
void(* _hook_irg_walk_blkwise )(void *context, ir_graph *irg, generic_func *pre, generic_func *post) | |
This hook is called before an block wise irg walk is started. | |
void(* _hook_irg_block_walk )(void *context, ir_graph *irg, ir_node *node, generic_func *pre, generic_func *post) | |
This hook is called before an block walk is started. | |
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) | |
This hook is called, when debug info must be merged. | |
void(* _hook_reassociate )(void *context, int start) | |
This hook is called, when reassociation is started/stopped. | |
void(* _hook_lower )(void *context, ir_node *node) | |
This hook is called, before a node is lowered. | |
void(* _hook_inline )(void *context, ir_node *call, ir_graph *irg) | |
This hook is called, before a graph is inlined. | |
void(* _hook_tail_rec )(void *context, ir_graph *irg, int n_calls) | |
This hook is called, before tail recursion is applied to a graph. | |
void(* _hook_strength_red )(void *context, ir_graph *irg, ir_node *node) | |
This hook is called, before a node is replaced due to strength reduction. | |
void(* _hook_dead_node_elim )(void *context, ir_graph *irg, int start) | |
This hook is called, when dead node elimination is started/stopped. | |
void(* _hook_if_conversion )(void *context, ir_graph *irg, ir_node *phi, int pos, ir_node *mux, if_result_t reason) | |
This hook is called after if conversion has run. | |
void(* _hook_func_call )(void *context, ir_graph *irg, ir_node *call) | |
This hook is called after a call was detected as const call. | |
void(* _hook_arch_dep_replace_mul_with_shifts )(void *context, ir_node *irn) | |
This hook is called after a Mul was replaced by a series of Shift and Add/Sub operations. | |
void(* _hook_arch_dep_replace_division_by_const )(void *context, ir_node *irn) | |
This hook is called after a Div/Mod by a constant value was replaced. | |
void(* _hook_new_mode )(void *context, ir_mode *mode) | |
This hook is called after a new mode was registered. | |
void(* _hook_new_entity )(void *context, ir_entity *ent) | |
This hook is called after a new entity was created. | |
void(* _hook_new_type )(void *context, ir_type *tp) | |
This hook is called after a new type was created. | |
void(* _hook_node_info )(void *context, FILE *f, const ir_node *n) | |
This hook is called at the end of the node info dumper to dump additional node info. | |
} | hook |
A union of all possible hook types. | |
void * | context |
the context for every hook | |
struct hook_entry * | next |
needed for chaining |
void(* hook_entry_t::_hook_if_conversion)(void *context, ir_graph *irg, ir_node *phi, int pos, ir_node *mux, if_result_t reason) |
void(* hook_entry_t::_hook_irg_block_walk)(void *context, ir_graph *irg, ir_node *node, generic_func *pre, generic_func *post) |
void(* hook_entry_t::_hook_irg_walk)(void *context, ir_graph *irg, generic_func *pre, generic_func *post) |
void(* hook_entry_t::_hook_irg_walk_blkwise)(void *context, ir_graph *irg, generic_func *pre, generic_func *post) |
void(* hook_entry_t::_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_entry_t::_hook_reassociate)(void *context, int start) |
This hook is called, before a node is replaced (exchange()) by another.
union { ... } hook_entry_t::hook |
A union of all possible hook types.
hook