- get_Block_cfgpred_arr() IS supported, but should not be in the official
[libfirm] / ir / stat / firmstat_t.h
index 7dd2aec..60b2288 100644 (file)
@@ -103,6 +103,7 @@ typedef struct _node_entry_t {
        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;
 
@@ -133,6 +134,7 @@ enum graph_counter_names {
        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. */
@@ -166,6 +168,7 @@ typedef struct _graph_entry_t {
        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;
 
@@ -237,8 +240,10 @@ enum block_counter_names {
  * 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 */
@@ -252,7 +257,7 @@ typedef enum _float_classify_t {
        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;
@@ -328,6 +333,7 @@ typedef struct _statistic_info_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 */