X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firphase_t.h;h=9a6e4630ab1bf3b991e36fa09abaf63be3a9e784;hb=a08e6f04aa3669cff094f94a9484c7c2bb1314d0;hp=e1abca35a1f2477067811983de783efd8f7fe8e3;hpb=7c36344d22a7c306a4e216f135c974bdb9f6b943;p=libfirm diff --git a/ir/ir/irphase_t.h b/ir/ir/irphase_t.h index e1abca35a..9a6e4630a 100644 --- a/ir/ir/irphase_t.h +++ b/ir/ir/irphase_t.h @@ -48,10 +48,10 @@ struct ir_phase { * For statistics: A type containing statistic data of a phase object. */ typedef struct { - unsigned node_slots; /**< The number of allocated node slots. */ - unsigned node_slots_used; /**< The number of used node slots, i.e. nodes that have node data. */ - unsigned node_map_bytes; /**< Number of used bytes for the node map. */ - unsigned overall_bytes; /**< Overall number of used bytes for the phase. */ + size_t node_slots; /**< The number of allocated node slots. */ + size_t node_slots_used; /**< The number of used node slots, i.e. nodes that have node data. */ + size_t node_map_bytes; /**< Number of used bytes for the node map. */ + size_t overall_bytes; /**< Overall number of used bytes for the phase. */ } phase_stat_t; /** @@ -69,7 +69,8 @@ phase_stat_t *phase_stat(const ir_phase *phase, phase_stat_t *stat); * @param phase The phase. * @param irn The irn. */ -static inline void phase_reinit_single_irn_data(ir_phase *phase, ir_node *irn) +static inline void phase_reinit_single_irn_data(ir_phase *phase, ir_node *irn, + phase_irn_reinit *reinit) { int idx; @@ -78,7 +79,7 @@ static inline void phase_reinit_single_irn_data(ir_phase *phase, ir_node *irn) idx = get_irn_idx(irn); if (phase->data_ptr[idx]) - phase->data_init(phase, irn, phase->data_ptr[idx]); + phase->data_ptr[idx] = reinit(phase, irn, phase->data_ptr[idx]); } /** @@ -220,8 +221,7 @@ static inline void *phase_get_or_set_irn_data(ir_phase *ph, const ir_node *irn) phase_irn_init *data_init = ph->data_init; /* call the node data structure allocator/constructor. */ - res = ph->data_ptr[idx] = data_init(ph, irn, NULL); - + res = ph->data_ptr[idx] = data_init(ph, irn); } return res; } @@ -250,7 +250,6 @@ static inline void *phase_set_irn_data(ir_phase *ph, const ir_node *irn, return res; } - /** * convenience function that returns phase information attached to a node */ @@ -264,7 +263,8 @@ static inline void *get_irn_phase_info(const ir_node *irn, ir_phase_id id) /** * Get or set information a phase holds about a node. * If the given phase does not hold information of the node, - * the information structure will be created, initialized (see the data_init function of ir_phase), and returned. + * the information structure will be created, initialized (see the data_init + * function of ir_phase), and returned. * @param irn The node. * @param id The ID of the phase. */ @@ -275,14 +275,12 @@ static inline void *get_or_set_irn_phase_info(const ir_node *irn, ir_phase_id id return phase_get_or_set_irn_data(ph, irn); } -static inline void *set_irn_phase_info(const ir_node *irn, ir_phase_id id, void *data) +static inline void *set_irn_phase_info(const ir_node *irn, ir_phase_id id, + void *data) { const ir_graph *irg = get_irn_irg(irn); ir_phase *ph = irg_get_phase(irg, id); return phase_set_irn_data(ph, irn, data); } - - - #endif