counter_t cnt_walked_blocks; /**< walker walked over the graph blocks */
counter_t cnt_was_inlined; /**< number of times other graph were inlined */
counter_t cnt_got_inlined; /**< number of times this graph was inlined */
+ counter_t cnt_strength_red; /**< number of times strength reduction was successful on this graph */
counter_t cnt_edges; /**< number of DF edges in this graph */
HASH_MAP(opt_entry_t) *opt_hash[STAT_OPT_MAX]; /**< hash maps containing opcode counter for optimizations */
ir_graph *irg; /**< the graph of this object */
entity *ent; /**< the entity of this graph if one exists */
- int deleted; /**< set if this irg was deleted */
+ unsigned is_deleted:1; /**< set if this irg was deleted */
+ unsigned is_leaf:1; /**< set, if this irg is a leaf function */
+ unsigned is_recursive:1; /**< set, if this irg has recursive calls */
+ unsigned is_chain_call:1; /**< set, if this irg is a chain call */
} graph_entry_t;
/**
HASH_MAP(ir_op) *ir_op_hash; /**< hash map containing all ir_ops (accessible by op_codes) */
int recursive; /**< flag for detecting recursive hook calls */
int in_dead_node_elim; /**< set, if dead node elimination runs */
- ir_op *op_Phi0; /**< needed pseudo op */
- ir_op *op_PhiM; /**< needed pseudo op */
+ ir_op *op_Phi0; /**< pseudo op for Phi0 */
+ ir_op *op_PhiM; /**< pseudo op for memory Phi */
+ ir_op *op_MulC; /**< pseudo op for multiplication by const */
+ ir_op *op_DivC; /**< pseudo op for division by const */
+ ir_op *op_ModC; /**< pseudo op for modulo by const */
+ ir_op *op_DivModC; /**< pseudo op for DivMod by const */
dumper_t *dumper; /**< list of dumper */
int enable; /**< if set, statistic is enabled */
} stat_info_t;