alpha.c (alpha_rtx_costs): Cost 0 for a memory source.
authorRichard Henderson <rth@redhat.com>
Mon, 19 Sep 2005 17:05:44 +0000 (10:05 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Mon, 19 Sep 2005 17:05:44 +0000 (10:05 -0700)
        * config/alpha/alpha.c (alpha_rtx_costs) <FLOAT_EXTEND>: Cost 0
        for a memory source.

From-SVN: r104425

gcc/ChangeLog
gcc/config/alpha/alpha.c

index 2a56ded..addadd5 100644 (file)
@@ -4,6 +4,9 @@
        * real.c (exact_real_truncate): Return false if the format cannot
        represent the number as a normal.
 
+       * config/alpha/alpha.c (alpha_rtx_costs) <FLOAT_EXTEND>: Cost 0
+       for a memory source.
+
 2005-09-19  Dorit Nuzman  <dorit@il.ibm.com>
 
        * tree-ssa-operands.c (swap_tree_operands): Export.
index 808116a..1e31db4 100644 (file)
@@ -1473,11 +1473,17 @@ alpha_rtx_costs (rtx x, int code, int outer_code, int *total)
     case UNSIGNED_FLOAT:
     case FIX:
     case UNSIGNED_FIX:
-    case FLOAT_EXTEND:
     case FLOAT_TRUNCATE:
       *total = cost_data->fp_add;
       return false;
 
+    case FLOAT_EXTEND:
+      if (GET_CODE (XEXP (x, 0)) == MEM)
+       *total = 0;
+      else
+       *total = cost_data->fp_add;
+      return false;
+
     default:
       return false;
     }