Replace memcpy() by simple assignment.
[libfirm] / ir / stat / firmstat_t.h
index d57589e..32b03f3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1995-2007 University of Karlsruhe.  All right reserved.
+ * Copyright (C) 1995-2008 University of Karlsruhe.  All right reserved.
  *
  * This file is part of libFirm.
  *
  * PURPOSE.
  */
 
-/*
- * Project:     libFIRM
- * File name:   ir/stat/firmstat_t.h
- * Purpose:     Statistics for Firm. Internal data structures.
- * Author:      Michael Beck
- * Created:
- * CVS-ID:      $Id$
- * Copyright:   (c) 2004 Universität Karlsruhe
- */
-#ifndef _FIRMSTAT_T_H_
-#define _FIRMSTAT_T_H_
-
 /**
- * @file firmstat_t.h
+ * @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
+
 #include "firmstat.h"
 
 #include "irop_t.h"
@@ -139,6 +133,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. */
@@ -243,8 +238,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 */
@@ -295,6 +292,11 @@ typedef void (*dump_const_table_FUNC)(dumper_t *dmp, const constant_info_t *tbl)
  */
 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);
+
 /**
  * handler for dumper init
  *
@@ -334,7 +336,9 @@ typedef struct _statistic_info_t {
        dumper_t                *dumper;             /**< list of dumper */
        int                     reassoc_run;         /**< if set, reassociation is running */
        constant_info_t         const_info;          /**< statistic info for constants */
-       distrib_tbl_t           *dist_param_cnt;     /**< distributation table for call parameters */
+       distrib_tbl_t           *dist_param_cnt;     /**< distribution table for call parameters */
+
+       counter_t               num_opts[FS_OPT_MAX];/**< count optimizations */
 } stat_info_t;
 
 /**
@@ -343,7 +347,8 @@ typedef struct _statistic_info_t {
 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 dumper the Call parameter 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 */
@@ -508,4 +513,4 @@ void stat_be_block_stat_permcycle(const char *class_name, ir_node *perm, ir_node
  */
 void stat_register_dumper_func(dump_graph_FUNC func);
 
-#endif /* _FIRMSTAT_T_H_ */
+#endif /* FIRM_STAT_FIRMSTAT_T_H */