+#define foreach_border_head(head, pos) list_for_each_entry_reverse(border_t, pos, head, list)
+#define border_next(b) (list_entry((b)->list.next, border_t, list))
+#define border_prev(b) (list_entry((b)->list.prev, border_t, list))
+
+#define chordal_has_class(chordal_env, irn) \
+ arch_irn_consider_in_reg_alloc(chordal_env->cls, irn)
+
+void be_ra_chordal_color(be_chordal_env_t *chordal_env);
+
+enum {
+ /* Dump flags */
+ BE_CH_DUMP_NONE = (1 << 0),
+ BE_CH_DUMP_SPILL = (1 << 1),
+ BE_CH_DUMP_LIVE = (1 << 2),
+ BE_CH_DUMP_COLOR = (1 << 3),
+ BE_CH_DUMP_COPYMIN = (1 << 4),
+ BE_CH_DUMP_SSADESTR = (1 << 5),
+ BE_CH_DUMP_TREE_INTV = (1 << 6),
+ BE_CH_DUMP_CONSTR = (1 << 7),
+ BE_CH_DUMP_SPILLSLOTS = (1 << 8),
+ BE_CH_DUMP_LOWER = (1 << 9),
+ BE_CH_DUMP_APPEL = (1 << 10),
+ BE_CH_DUMP_ALL = 2 * BE_CH_DUMP_APPEL - 1,
+
+ /* lower perm options */
+ BE_CH_LOWER_PERM_SWAP = 1,
+ BE_CH_LOWER_PERM_COPY = 2,
+
+ /* verify options */
+ BE_CH_VRFY_OFF = 1,
+ BE_CH_VRFY_WARN = 2,
+ BE_CH_VRFY_ASSERT = 3,
+};