expmed.c (synth_mult): Initialize latency.
authorDaniel Jacobowitz <dan@debian.org>
Mon, 13 Sep 2004 23:25:12 +0000 (23:25 +0000)
committerDaniel Jacobowitz <drow@gcc.gnu.org>
Mon, 13 Sep 2004 23:25:12 +0000 (23:25 +0000)
* expmed.c (synth_mult): Initialize latency.  Check cost before
checking ops count.

From-SVN: r87456

gcc/ChangeLog
gcc/expmed.c

index 5609638..419c409 100644 (file)
@@ -1,3 +1,8 @@
+2004-09-13  Daniel Jacobowitz  <dan@debian.org>
+
+       * expmed.c (synth_mult): Initialize latency.  Check cost before
+       checking ops count.
+
 2004-09-26  Kenneth Zadeck  <Kenneth.Zadeck@NaturalBridge.com>
 
 
index eb8226d..232381f 100644 (file)
@@ -2247,6 +2247,7 @@ synth_mult (struct algorithm *alg_out, unsigned HOST_WIDE_INT t,
   /* Indicate that no algorithm is yet found.  If no algorithm
      is found, this value will be returned and indicate failure.  */
   alg_out->cost.cost = cost_limit->cost + 1;
+  alg_out->cost.latency = cost_limit->latency + 1;
 
   if (cost_limit->cost < 0
       || (cost_limit->cost == 0 && cost_limit->latency <= 0))
@@ -2516,15 +2517,15 @@ synth_mult (struct algorithm *alg_out, unsigned HOST_WIDE_INT t,
        }
     }
 
+  /* If best_cost has not decreased, we have not found any algorithm.  */
+  if (!CHEAPER_MULT_COST (&best_cost, cost_limit))
+    return;
+
   /* If we are getting a too long sequence for `struct algorithm'
      to record, make this search fail.  */
   if (best_alg->ops == MAX_BITS_PER_WORD)
     return;
 
-  /* If best_cost has not decreased, we have not found any algorithm.  */
-  if (!CHEAPER_MULT_COST (&best_cost, cost_limit))
-    return;
-
   /* Copy the algorithm from temporary space to the space at alg_out.
      We avoid using structure assignment because the majority of
      best_alg is normally undefined, and this is a critical function.  */