+ /* find best color */
+ best_size = -1;
+ for (col = 0; col < MAX_COLORS; ++col) { /* TODO: try phi color first */
+ DBG((dbgphi, 1, "\tTesting colors %d\n", col));
+
+ memset(cand, 0, pu->count * sizeof(ir_node*));
+ memset(max_set, 0, pu->count * sizeof(ir_node*));
+
+ /* BETTER: Alle die mit dem phi interferieren koennen eigentlich
+ * schon frueher raus, da unabhaengig von Farbe. */
+ /* for this color get all potential candidates for a max indep. set */
+ cand[0] = phi;
+ size = 1;
+ for (i = 1; i < pu->count; ++i)
+ if ((!bitset_is_set(pu->used_cols[i], col) || get_irn_color(pu->members[i]) == col)
+ && !phi_ops_interfere(phi, pu->members[i])) {
+ /* color is free or already used by the node
+ * and argument is not interfering with phi */
+ cand[i] = pu->members[i];
+ DBG((dbgphi, 1, "\t\tAdding candidate %n\n", cand[i]));
+ size++;
+ }
+ if (size <= best_size) {
+ /* If the candidate set is smaller the max indep. set wont be larger :) */
+ continue;
+ }