Claim that AMD family 12h, 14h and 15h are K10.
[libfirm] / ir / stat / firmstat_t.h
index e096aa2..0ab8fde 100644 (file)
@@ -21,7 +21,6 @@
  * @file
  * @brief   Statistics for Firm. Internal data structures.
  * @author  Michael Beck
- * @version $Id$
  */
 #ifndef FIRM_STAT_FIRMSTAT_T_H
 #define FIRM_STAT_FIRMSTAT_T_H
@@ -58,8 +57,8 @@ typedef pset hmap_distrib_entry_t;
 /**
  * An entry in a distribution table
  */
-typedef struct _distrib_entry_t {
-       counter_t        cnt;       /**< the current count */
+typedef struct distrib_entry_t {
+       counter_t   cnt;      /**< the current count */
        const void *object;   /**< the object which is counted */
 } distrib_entry_t;
 
@@ -69,7 +68,7 @@ typedef unsigned (*distrib_hash_fun)(const void *object);
 /**
  * The distribution table.
  */
-typedef struct _distrib_tbl_t {
+typedef struct distrib_tbl_t {
        struct obstack            cnts;       /**< obstack containing the distrib_entry_t entries */
        HASH_MAP(distrib_entry_t) *hash_map;  /**< the hash map containing the distribution */
        distrib_hash_fun          hash_func;  /**< the hash function for object in this distribution */
@@ -88,7 +87,7 @@ enum adr_marker_t {
 /**
  * An entry in the address_mark set
  */
-typedef struct _address_mark_entry_t {
+typedef struct address_mark_entry_t {
   ir_node  *node;               /**< the node which this entry belongs to, needed for compare */
   unsigned mark;                /**< the mark, a bitmask of enum adr_marker_t */
 } address_mark_entry_t;
@@ -96,7 +95,7 @@ typedef struct _address_mark_entry_t {
 /**
  * An entry for ir_nodes, used in ir_graph statistics.
  */
-typedef struct _node_entry_t {
+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 */
@@ -148,11 +147,10 @@ enum graph_counter_names {
 /**
  * An entry for ir_graphs. These numbers are calculated for every IR graph.
  */
-typedef struct _graph_entry_t {
+typedef struct graph_entry_t {
        struct obstack             recalc_cnts;                  /**< obstack containing the counters that are recalculated */
        HASH_MAP(node_entry_t)     *opcode_hash;                 /**< hash map containing the opcode counter */
        HASH_MAP(block_entry_t)    *block_hash;                  /**< hash map containing the block counter */
-       HASH_MAP(block_entry_t)    *extbb_hash;                  /**< hash map containing the extended block counter */
        HASH_MAP(be_block_entry_t) *be_block_hash;               /**< hash map containing backend block information */
        counter_t                  cnt[_gcnt_last];               /**< counter */
        unsigned                   num_tail_recursion;           /**< number of tail recursion optimizations */
@@ -172,7 +170,7 @@ typedef struct _graph_entry_t {
 /**
  * An entry for optimized ir_nodes
  */
-typedef struct _opt_entry_t {
+typedef struct opt_entry_t {
        counter_t   count;    /**< optimization counter */
        const ir_op *op;      /**< the op for this entry */
 } opt_entry_t;
@@ -180,7 +178,7 @@ typedef struct _opt_entry_t {
 /**
  * An entry for register pressure.
  */
-typedef struct _reg_pressure_entry_t {
+typedef struct reg_pressure_entry_t {
        const char *class_name; /**< name of the register class */
        int         pressure;   /**< the register pressure for this class */
 } reg_pressure_entry_t;
@@ -188,7 +186,7 @@ typedef struct _reg_pressure_entry_t {
 /**
  * An entry for permutation statistics.
  */
-typedef struct _perm_stat_entry_t {
+typedef struct perm_stat_entry_t {
        ir_node       *perm;       /**< the perm node */
        int            size;       /**< complete size */
        int            real_size;  /**< number of pairs with different registers */
@@ -201,7 +199,7 @@ typedef struct _perm_stat_entry_t {
 /**
  * An entry for permutation statistics per class.
  */
-typedef struct _perm_class_entry_t {
+typedef struct perm_class_entry_t {
        const char                  *class_name; /**< name of the register class */
        int                          n_regs;     /**< number of register in this class */
        HASH_MAP(perm_stat_entry_t) *perm_stat;  /**< statistics about all perm nodes of this class */
@@ -210,7 +208,7 @@ typedef struct _perm_class_entry_t {
 /**
  * An entry for a block or extended block in a ir-graph
  */
-typedef struct _be_block_entry_t {
+typedef struct be_block_entry_t {
        long                           block_nr;         /**< block nr */
        distrib_tbl_t                  *sched_ready;     /**< distribution of ready nodes per block */
        /**< the highest register pressures for this block for each register class */
@@ -236,20 +234,17 @@ enum block_counter_names {
 /**
  * An entry for a block or extended block in a ir-graph
  */
-typedef struct _block_entry_t {
+typedef struct block_entry_t {
        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 */
-typedef block_entry_t extbb_entry_t;
-
 /**
  * Some potential interesting float values
  */
-typedef enum _float_classify_t {
+typedef enum float_classify_t {
        STAT_FC_0,                /**< the float value 0.0 */
        STAT_FC_1,                /**< the float value 1.0 */
        STAT_FC_2,                /**< the float value 2.0 */
@@ -262,14 +257,14 @@ typedef enum _float_classify_t {
 /**
  * constant info
  */
-typedef struct _constant_info_t {
+typedef struct constant_info_t {
        counter_t  int_bits_count[32];  /**< distribution of bit sizes of integer constants */
        counter_t  floats[STAT_FC_MAX]; /**< floating point constants */
        counter_t  others;              /**< all other constants */
 } constant_info_t;
 
 /** forward */
-typedef struct _dumper_t dumper_t;
+typedef struct dumper_t dumper_t;
 
 /**
  * handler for dumping an IRG
@@ -277,24 +272,24 @@ typedef struct _dumper_t dumper_t;
  * @param dmp   the dumper
  * @param entry the IR-graph hash map entry
  */
-typedef void (*dump_graph_FUNC)(dumper_t *dmp, graph_entry_t *entry);
+typedef void dump_graph_FUNC(dumper_t *dmp, graph_entry_t *entry);
 
 /**
  * handler for dumper a constant info table
  *
  * @param dmp   the dumper
  */
-typedef void (*dump_const_table_FUNC)(dumper_t *dmp, const constant_info_t *tbl);
+typedef void dump_const_table_FUNC(dumper_t *dmp, const constant_info_t *tbl);
 
 /**
  * dumps the parameter distribution table
  */
-typedef void (*dump_param_tbl_FUNC)(dumper_t *dmp, const distrib_tbl_t *tbl, graph_entry_t *global);
+typedef void dump_param_tbl_FUNC(dumper_t *dmp, const distrib_tbl_t *tbl, graph_entry_t *global);
 
 /**
  * dumps the optimizations counter
  */
-typedef void (*dump_opt_cnt_FUNC)(dumper_t *dumper, const counter_t *tbl, unsigned len);
+typedef void dump_opt_cnt_FUNC(dumper_t *dumper, const counter_t *tbl, unsigned len);
 
 /**
  * handler for dumper init
@@ -302,19 +297,19 @@ typedef void (*dump_opt_cnt_FUNC)(dumper_t *dumper, const counter_t *tbl, unsign
  * @param dmp   the dumper
  * @param name  name of the file to dump to
  */
-typedef void (*dump_init_FUNC)(dumper_t *dmp, const char *name);
+typedef void dump_init_FUNC(dumper_t *dmp, const char *name);
 
 /**
  * handler for dumper finish
  *
  * @param dmp   the dumper
  */
-typedef void (*dump_finish_FUNC)(dumper_t *dmp);
+typedef void dump_finish_FUNC(dumper_t *dmp);
 
 /**
  * statistics info
  */
-typedef struct _statistic_info_t {
+typedef struct statistic_info_t {
        unsigned                stat_options;        /**< statistic options: field must be first */
        struct obstack          cnts;                /**< obstack containing the counters that are incremented */
        struct obstack          be_data;             /**< obstack containing backend statistics data */
@@ -329,8 +324,6 @@ typedef struct _statistic_info_t {
        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 */
-       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 */
@@ -344,24 +337,24 @@ typedef struct _statistic_info_t {
 /**
  * a dumper description
  */
-struct _dumper_t {
-       dump_graph_FUNC         dump_graph;     /**< handler for dumping an irg */
-       dump_const_table_FUNC   dump_const_tbl; /**< handler for dumping a const table */
-       dump_param_tbl_FUNC     dump_param_tbl; /**< handler for dumping the Call parameter table */
-       dump_opt_cnt_FUNC       dump_opt_cnt;   /**< handler for dumping the optimization table. */
-       dump_init_FUNC          init;           /**< handler for init */
-       dump_finish_FUNC        finish;         /**< handler for finish */
-       FILE                    *f;             /**< the file to dump to */
-       stat_info_t             *status;        /**< access to the global status */
-       dumper_t                *next;          /**< link to the next dumper */
-       pset                    *func_map;      /**< pset containing all registered functions */
-       unsigned                tag;            /**< the id tag of the dumper */
+struct dumper_t {
+       dump_graph_FUNC       *dump_graph;     /**< handler for dumping an irg */
+       dump_const_table_FUNC *dump_const_tbl; /**< handler for dumping a const table */
+       dump_param_tbl_FUNC   *dump_param_tbl; /**< handler for dumping the Call parameter table */
+       dump_opt_cnt_FUNC     *dump_opt_cnt;   /**< handler for dumping the optimization table. */
+       dump_init_FUNC        *init;           /**< handler for init */
+       dump_finish_FUNC      *finish;         /**< handler for finish */
+       FILE                  *f;             /**< the file to dump to */
+       stat_info_t           *status;        /**< access to the global status */
+       dumper_t              *next;          /**< link to the next dumper */
+       pset                  *func_map;      /**< pset containing all registered functions */
+       unsigned               tag;            /**< the id tag of the dumper */
 };
 
 /**
  * helper: get an ir_op from an opcode
  */
-ir_op *stat_get_op_from_opcode(ir_opcode code);
+ir_op *stat_get_op_from_opcode(unsigned code);
 
 /* API for distribution tables */
 
@@ -511,6 +504,6 @@ void stat_be_block_stat_permcycle(const char *class_name, ir_node *perm, ir_node
  *
  * @param func  the dump function to register
  */
-void stat_register_dumper_func(dump_graph_FUNC func);
+void stat_register_dumper_func(dump_graph_FUNC *func);
 
 #endif /* FIRM_STAT_FIRMSTAT_T_H */