+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);
+
+
+/**
+ * Build internal optimization units structure
+ */
+void co_build_ou_structure(copy_opt_t *co);
+
+/**
+ * Frees the space used by the opt unit representation.
+ * Does NOT free the whole copyopt structure
+ */
+void co_free_ou_structure(copy_opt_t *co);
+
+/**
+ * Solves the problem using a heuristic approach
+ * Uses the OU data structure
+ */
+int co_solve_heuristic(copy_opt_t *co);
+
+/**
+ * Apply Park/Moon coalescing to the graph.
+ * @param co The copy optimization data structure.
+ */
+void co_solve_park_moon(copy_opt_t *co);
+
+/**
+ * Solves the copy minimization problem using another heuristic approach.
+ * Uses the OU and the GRAPH data structure.
+ */
+int co_solve_heuristic_new(copy_opt_t *co);
+
+/**
+ * Solves the copy minimization problem using another heuristic approach implemented in Java.
+ * This function needs a JVM which is started to call the Java module.
+ * Uses the GRAPH data structure.
+ */
+int co_solve_heuristic_java(copy_opt_t *co);
+
+/**
+ * This is the pure C implementation of co_solve_heuristic_java().
+ */
+int co_solve_heuristic_mst(copy_opt_t *co);