-/**
- * The type of a phase data init function. This callback is called to
- * (re-) initialize the phase data for each new node.
- *
- * @param phase The phase.
- * @param irn The node for which the phase data is (re-) initialized
- * @param old The old phase data for this node.
- *
- * @return The new (or reinitialized) phase data for this node.
- *
- * If newly node data is allocated, old is equal to NULL, else points to the old data.
- */
-typedef void *(phase_irn_data_init_t)(ir_phase *phase, ir_node *irn, void *old);
-
-/**
- * The default grow factor.
- * The node => data map does not speculatively allocate more slots.
- */
-#define PHASE_DEFAULT_GROWTH (256)
-
-/**
- * A phase object.
- */
-struct _ir_phase {
- struct obstack obst; /**< The obstack where the irn phase data will be stored on. */
- const char *name; /**< The name of the phase. */
- ir_graph *irg; /**< The irg this phase will we applied to. */
- unsigned growth_factor; /**< The factor to leave room for additional nodes. 256 means 1.0. */
- void *priv; /**< Some pointer private to the user of the phase. */
- size_t n_data_ptr; /**< The length of the data_ptr array. */
- void **data_ptr; /**< Map node indexes to irn data on the obstack. */
- phase_irn_data_init_t *data_init; /**< A callback that is called to initialize newly created node data. */
-};
-
-/**
- * Initialize a phase object.
- *
- * @param name The name of the phase. Just for debugging.
- * @param irg The graph the phase will run on.
- * @param growth_factor A factor denoting how many node slots will be additionally allocated,
- * if the node => data is full. The factor is given in units of 1/256, so
- * 256 means 1.0.
- * @param irn_data_init A callback that is called to initialize newly created node data.
- * Must be non-null.
- * @param priv Some private pointer which is kept in the phase and can be retrieved with phase_get_private().
- * @return A new phase object.
- */
-ir_phase *phase_init(ir_phase *ph, const char *name, ir_graph *irg, unsigned growth_factor, phase_irn_data_init_t *data_init, void *priv);
-
-/**
- * Free the phase and all node data associated with it.
- *
- * @param phase The phase.
- */
-void phase_free(ir_phase *phase);
-
-/**
- * Re-initialize the irn data for all nodes in the node => data map using the given callback.
- *
- * @param phase The phase.
- */
-void phase_reinit_irn_data(ir_phase *phase);
-
-/**
- * Re-initialize the irn data for all nodes having phase data in the given block.
- *
- * @param phase The phase.
- * @param block The block.
- *
- * @note Beware: iterates over all nodes in the graph to find the nodes of the given block.
- */
-void phase_reinit_block_irn_data(ir_phase *phase, ir_node *block);