Handled RegParams and Barriers better in constraint handling
[libfirm] / ir / be / becopyheur.c
index 3631a40..3f642d2 100644 (file)
 #include "becopyopt_t.h"
 #include "becopystat.h"
 #include "bitset.h"
-#include "bearch.h"
 
 static firm_dbg_module_t *dbg = NULL;
 
 #define SEARCH_FREE_COLORS
 
-#define SLOTS_PINNED_GLOBAL 256
+#define SLOTS_PINNED_GLOBAL 64
 #define SLOTS_CONFLICTS 8
 #define SLOTS_CHANGED_NODES 32
 
-#define MIN(a,b) ((a<b)?(a):(b))
 #define list_entry_queue(lh) list_entry(lh, qnode_t, queue)
 #define HASH_CONFLICT(c) (HASH_PTR(c.n1) ^ HASH_PTR(c.n2))
 
@@ -527,6 +525,8 @@ static void ou_optimize(unit_t *ou) {
        arch_put_non_ignore_regs(aenv, cls, ign_regs);
        bitset_and(pos_regs, ign_regs);
 
+       assert(bitset_popcnt(pos_regs) != 0 && "No register is allowed for this node !!?");
+
        /* create new qnode */
        bitset_foreach(pos_regs, i)
                ou_insert_qnode(ou, new_qnode(ou, i));