counter_t cnt_alive; /**< amount of nodes in this entry */
counter_t new_node; /**< amount of new nodes for this entry */
counter_t into_Id; /**< amount of nodes that turned into Id's for this entry */
+ counter_t normalized; /**< amount of nodes that normalized for this entry */
const ir_op *op; /**< the op for this entry */
} node_entry_t;
gcnt_call_with_all_cnst_arg, /**< number of calls with all const args */
gcnt_call_with_local_adr, /**< number of calls with address of local var args */
gcnt_indirect_calls, /**< number of indirect calls */
+ gcnt_external_calls, /**< number of external calls */
gcnt_pure_adr_ops, /**< number of pure address operation */
gcnt_all_adr_ops, /**< number of all address operation */
gcnt_global_adr, /**< number of global load/store addresses. */
unsigned is_leaf_call:2; /**< set, if this irg calls only leaf functions */
unsigned is_recursive:1; /**< set, if this irg has recursive calls */
unsigned is_chain_call:1; /**< set, if this irg is a chain call */
+ unsigned is_strict:1; /**< set, if this irg represents a strict program */
unsigned is_analyzed:1; /**< helper: set, if this irg was already analysed */
} graph_entry_t;
* An entry for a block or extended block in a ir-graph
*/
typedef struct _block_entry_t {
- counter_t cnt[_bcnt_last]; /**< counter */
- long block_nr; /**< block nr */
+ counter_t cnt[_bcnt_last]; /**< counter */
+ long block_nr; /**< block nr */
+ unsigned is_start:1; /**< set, if it's the Start block. */
+ unsigned is_end:1; /**< set, if it's the End block. */
} block_entry_t;
/** An entry for an extended block in a ir-graph */
STAT_FC_1, /**< the float value 1.0 */
STAT_FC_2, /**< the float value 2.0 */
STAT_FC_0_5, /**< the float value 0.5 */
- STAT_FC_EXACT, /**< an exact value */
+ STAT_FC_POWER_OF_TWO, /**< another 2^x value */
STAT_FC_OTHER, /**< all other values */
STAT_FC_MAX /**< last value */
} float_classify_t;
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 */
+ ir_op *op_QuotC; /**< pseudo op for floating point division by const */
ir_op *op_SelSel; /**< pseudo op for Sel(Sel) */
ir_op *op_SelSelSel; /**< pseudo op for Sel(Sel(Sel)) */
dumper_t *dumper; /**< list of dumper */