libFirm
hook_entry_t Struct Reference

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

Detailed Description

a hook entry

Definition at line 87 of file irhooks.h.

Field Documentation

void(* hook_entry_t::_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.

Definition at line 160 of file irhooks.h.

void(* hook_entry_t::_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.

Definition at line 157 of file irhooks.h.

void(* hook_entry_t::_hook_dead_node_elim)(void *context, ir_graph *irg, int start)

This hook is called, when dead node elimination is started/stopped.

Definition at line 148 of file irhooks.h.

void(* hook_entry_t::_hook_free_graph)(void *context, ir_graph *irg)

This hook is called before a graph is freed.

Definition at line 117 of file irhooks.h.

void(* hook_entry_t::_hook_free_ir_op)(void *context, ir_op *op)

This hook is called, before am ir_op is destroyed.

Definition at line 94 of file irhooks.h.

void(* hook_entry_t::_hook_func_call)(void *context, ir_graph *irg, ir_node *call)

This hook is called after a call was detected as const call.

Definition at line 154 of file irhooks.h.

void(* hook_entry_t::_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.

Definition at line 151 of file irhooks.h.

void(* hook_entry_t::_hook_inline)(void *context, ir_node *call, ir_graph *irg)

This hook is called, before a graph is inlined.

Definition at line 139 of file irhooks.h.

void(* hook_entry_t::_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.

Definition at line 126 of file irhooks.h.

void(* hook_entry_t::_hook_irg_walk)(void *context, ir_graph *irg, generic_func *pre, generic_func *post)

This hook is called before an irg walk is started.

Definition at line 120 of file irhooks.h.

void(* hook_entry_t::_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.

Definition at line 123 of file irhooks.h.

void(* hook_entry_t::_hook_lower)(void *context, ir_node *node)

This hook is called, before a node is lowered.

Definition at line 136 of file irhooks.h.

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)

This hook is called, when debug info must be merged.

Definition at line 129 of file irhooks.h.

void(* hook_entry_t::_hook_new_entity)(void *context, ir_entity *ent)

This hook is called after a new entity was created.

Definition at line 166 of file irhooks.h.

void(* hook_entry_t::_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.

Definition at line 114 of file irhooks.h.

void(* hook_entry_t::_hook_new_ir_op)(void *context, ir_op *op)

This hook is called, after a new ir_op was created.

Definition at line 91 of file irhooks.h.

void(* hook_entry_t::_hook_new_mode)(void *context, ir_mode *mode)

This hook is called after a new mode was registered.

Definition at line 163 of file irhooks.h.

void(* hook_entry_t::_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.

Definition at line 97 of file irhooks.h.

void(* hook_entry_t::_hook_new_type)(void *context, ir_type *tp)

This hook is called after a new type was created.

Definition at line 169 of file irhooks.h.

void(* hook_entry_t::_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.

Definition at line 172 of file irhooks.h.

void(* hook_entry_t::_hook_normalize)(void *context, ir_node *node)

This hook is called, after a commutative node was normalized.

Definition at line 110 of file irhooks.h.

void(* hook_entry_t::_hook_reassociate)(void *context, int start)

This hook is called, when reassociation is started/stopped.

Definition at line 133 of file irhooks.h.

void(* hook_entry_t::_hook_replace)(void *context, ir_node *old_node, ir_node *new_node)

This hook is called, before a node is replaced (exchange()) by another.

Definition at line 104 of file irhooks.h.

void(* hook_entry_t::_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.

Definition at line 100 of file irhooks.h.

void(* hook_entry_t::_hook_strength_red)(void *context, ir_graph *irg, ir_node *node)

This hook is called, before a node is replaced due to strength reduction.

Definition at line 145 of file irhooks.h.

void(* hook_entry_t::_hook_tail_rec)(void *context, ir_graph *irg, int n_calls)

This hook is called, before tail recursion is applied to a graph.

Definition at line 142 of file irhooks.h.

void(* hook_entry_t::_hook_turn_into_id)(void *context, ir_node *node)

This hook is called, before a node is changed into an Id node.

Definition at line 107 of file irhooks.h.

void* hook_entry_t::context

the context for every hook

Definition at line 176 of file irhooks.h.

union { ... } hook_entry_t::hook

A union of all possible hook types.

hook

struct hook_entry* hook_entry_t::next

needed for chaining

Definition at line 179 of file irhooks.h.


The documentation for this struct was generated from the following file: