Added support for SymConst(ofs_ent)
[libfirm] / ir / be / becopyopt.h
index 23b497f..7e11ba3 100644 (file)
@@ -105,7 +105,26 @@ int co_get_costs_exec_freq(const copy_opt_t *co, ir_node *root, ir_node* arg, in
  */
 int co_get_costs_all_one(const copy_opt_t *co, ir_node *root, ir_node* arg, int pos);
 
+/**
+ * Statistics over a copy optimization module.
+ */
+typedef struct {
+       ulong64 aff_edges;            /**< number of affinity edges. */
+       ulong64 aff_nodes;            /**< number of nodes with incident affinity edges. */
+       ulong64 aff_int;              /**< number of affinity edges whose nodes also interfere. */
+       ulong64 inevit_costs;         /**< costs which cannot be evited (due to interfering affinities). */
+       ulong64 max_costs;            /**< all costs of the affinities. */
+       ulong64 costs;                /**< The costs of the current coloring. */
+       ulong64 unsatisfied_edges;    /**< The number of unequally colored affinity edges. */
+} co_complete_stats_t;
 
+/**
+ * Collect statistics of a copy optimization module.
+ * @param co    The copy optimization environment.
+ * @param stat  Where to put the stats.
+ * @note  This requires the graph info to be computed.
+ */
+void co_complete_stats(const copy_opt_t *co, co_complete_stats_t *stat);
 
 
 /**