re PR middle-end/49990 (Regression: Bootstrap failure for x86_64-*-mingw32 in libfortran)
authorVladimir Makarov <vmakarov@redhat.com>
Mon, 8 Aug 2011 23:18:23 +0000 (23:18 +0000)
committerVladimir Makarov <vmakarov@gcc.gnu.org>
Mon, 8 Aug 2011 23:18:23 +0000 (23:18 +0000)
2011-08-08  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/49990
* ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
ignore classes which can not change mode.
(find_costs_and_classes): Ditto.

From-SVN: r177575

gcc/ChangeLog
gcc/ira-costs.c

index 58945f19b204624924537f54e0cd51ffbebab1af..2b9fb29a8a56645f7d82d2f0e47910ef0a87c126 100644 (file)
@@ -1,3 +1,10 @@
+2011-08-08  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR rtl-optimization/49990
+       * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
+       ignore classes which can not change mode.
+       (find_costs_and_classes): Ditto.
+
 2011-08-08  Richard Henderson  <rth@redhat.com>
 
        PR middle-end/49990
index 39ef33a541c17b13b1479e732c7201f0ac072966..39cd432ce093794b21228782fcbd3d7ce0454432 100644 (file)
@@ -1367,11 +1367,7 @@ print_allocno_costs (FILE *f)
       for (k = 0; k < cost_classes_ptr->num; k++)
        {
          rclass = cost_classes[k];
-         if (contains_reg_of_mode[rclass][PSEUDO_REGNO_MODE (regno)]
-#ifdef CANNOT_CHANGE_MODE_CLASS
-             && ! invalid_mode_change_p (regno, (enum reg_class) rclass)
-#endif
-             )
+         if (contains_reg_of_mode[rclass][PSEUDO_REGNO_MODE (regno)])
            {
              fprintf (f, " %s:%d", reg_class_names[rclass],
                       COSTS (costs, i)->cost[k]);
@@ -1409,11 +1405,7 @@ print_pseudo_costs (FILE *f)
       for (k = 0; k < cost_classes_ptr->num; k++)
        {
          rclass = cost_classes[k];
-         if (contains_reg_of_mode[rclass][PSEUDO_REGNO_MODE (regno)]
-#ifdef CANNOT_CHANGE_MODE_CLASS
-             && ! invalid_mode_change_p (regno, (enum reg_class) rclass)
-#endif
-             )
+         if (contains_reg_of_mode[rclass][PSEUDO_REGNO_MODE (regno)])
            fprintf (f, " %s:%d", reg_class_names[rclass],
                     COSTS (costs, regno)->cost[k]);
        }
@@ -1650,11 +1642,7 @@ find_costs_and_classes (FILE *dump_file)
              rclass = cost_classes[k];
              /* Ignore classes that are too small or invalid for this
                 operand.  */
-             if (! contains_reg_of_mode[rclass][PSEUDO_REGNO_MODE (i)]
-#ifdef CANNOT_CHANGE_MODE_CLASS
-                 || invalid_mode_change_p (i, (enum reg_class) rclass)
-#endif
-                 )
+             if (! contains_reg_of_mode[rclass][PSEUDO_REGNO_MODE (i)])
                continue;
              if (i_costs[k] < best_cost)
                {
@@ -1725,11 +1713,7 @@ find_costs_and_classes (FILE *dump_file)
                        continue;
                      /* Ignore classes that are too small or invalid
                         for this operand.  */
-                     if (! contains_reg_of_mode[rclass][PSEUDO_REGNO_MODE (i)]
-#ifdef CANNOT_CHANGE_MODE_CLASS
-                         || invalid_mode_change_p (i, (enum reg_class) rclass)
-#endif
-                         )
+                     if (! contains_reg_of_mode[rclass][PSEUDO_REGNO_MODE (i)])
                        ;
                      else if (total_a_costs[k] < best_cost)
                        {