no need for no_float_fold hack anymore
[libfirm] / ir / be / bechordal.c
index d84e6e2..2f56341 100644 (file)
@@ -73,7 +73,7 @@ DEBUG_ONLY(static firm_dbg_module_t *dbg = NULL;)
 
 #define DUMP_INTERVALS
 
-typedef struct _be_chordal_alloc_env_t {
+typedef struct be_chordal_alloc_env_t {
        be_chordal_env_t *chordal_env;
 
        pset *pre_colored;     /**< Set of precolored nodes. */
@@ -129,17 +129,17 @@ static void pair_up_operands(const be_chordal_alloc_env_t *alloc_env, be_insn_t
        /*
         * For each out operand, try to find an in operand which can be assigned the
         * same register as the out operand.
-       */
+        */
        for (j = 0; j < insn->use_start; ++j) {
-               int smallest         = -1;
-               int smallest_n_regs  = env->cls->n_regs + 1;
-               be_operand_t *out_op = &insn->ops[j];
+               be_operand_t *smallest        = NULL;
+               int           smallest_n_regs = env->cls->n_regs + 1;
+               be_operand_t *out_op          = &insn->ops[j];
 
                /* Try to find an in operand which has ... */
                for (i = insn->use_start; i < insn->n_ops; ++i) {
-                       int n_total;
-                       const be_operand_t *op = &insn->ops[i];
-                       be_lv_t            *lv;
+                       int           n_total;
+                       be_operand_t *op = &insn->ops[i];
+                       be_lv_t      *lv;
 
                        if (op->partner != NULL)
                                continue;
@@ -147,26 +147,24 @@ static void pair_up_operands(const be_chordal_alloc_env_t *alloc_env, be_insn_t
                        if (be_values_interfere(lv, op->irn, op->carrier))
                                continue;
 
-                       bitset_clear_all(bs);
                        bitset_copy(bs, op->regs);
                        bitset_and(bs, out_op->regs);
                        n_total = bitset_popcount(op->regs);
 
                        if (!bitset_is_empty(bs) && n_total < smallest_n_regs) {
-                               smallest = i;
+                               smallest        = op;
                                smallest_n_regs = n_total;
                        }
                }
 
-               if (smallest >= 0) {
-                       be_operand_t *partner = &insn->ops[smallest];
+               if (smallest != NULL) {
                        for (i = insn->use_start; i < insn->n_ops; ++i) {
-                               if (insn->ops[i].carrier == partner->carrier)
+                               if (insn->ops[i].carrier == smallest->carrier)
                                        insn->ops[i].partner = out_op;
                        }
 
-                       out_op->partner  = partner;
-                       partner->partner = out_op;
+                       out_op->partner   = smallest;
+                       smallest->partner = out_op;
                }
        }
 }