#include "bearch.h"
+typedef struct _be_chordal_env_t be_chordal_env_t;
+
/**
* Allocate registers for an ir graph.
* @param irg The graph.
* @return Some internal data to be freed with be_ra_chordal_done().
*/
-void be_ra_chordal(ir_graph *irg,
+be_chordal_env_t *be_ra_chordal(ir_graph *irg,
const arch_env_t *arch_env,
const arch_register_class_t *cls);
+/**
+ * Check current register allocation for correctness.
+ * Interfering nodes have different colors
+ * Register constraints
+ * O(n^2)
+ */
+void be_ra_chordal_check(be_chordal_env_t *chordal_env);
+
/**
* Free data from the chordal register allocation.
* @param irg The graph.
*/
-void be_ra_chordal_done(ir_graph *irg);
+void be_ra_chordal_done(be_chordal_env_t *info);
/**
* Init some things for the chordal register allocator.