aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2011-08-08 23:18:23 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2011-08-08 23:18:23 +0000
commit40118062317f00b285ed3db851cf49a13637f734 (patch)
tree9f8c350b51866e5a98b5e0904a418b2db1f7533f
parent8714c21f19912fbb55bc0e586756fe890b7f5baf (diff)
downloadgcc-40118062317f00b285ed3db851cf49a13637f734.zip
gcc-40118062317f00b285ed3db851cf49a13637f734.tar.gz
gcc-40118062317f00b285ed3db851cf49a13637f734.tar.bz2
re PR middle-end/49990 (Regression: Bootstrap failure for x86_64-*-mingw32 in libfortran)
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
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/ira-costs.c24
2 files changed, 11 insertions, 20 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 58945f1..2b9fb29 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/ira-costs.c b/gcc/ira-costs.c
index 39ef33a..39cd432 100644
--- a/gcc/ira-costs.c
+++ b/gcc/ira-costs.c
@@ -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)
{