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
This commit is contained in:
parent
8714c21f19
commit
4011806231
|
@ -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>
|
2011-08-08 Richard Henderson <rth@redhat.com>
|
||||||
|
|
||||||
PR middle-end/49990
|
PR middle-end/49990
|
||||||
|
|
|
@ -1367,11 +1367,7 @@ print_allocno_costs (FILE *f)
|
||||||
for (k = 0; k < cost_classes_ptr->num; k++)
|
for (k = 0; k < cost_classes_ptr->num; k++)
|
||||||
{
|
{
|
||||||
rclass = cost_classes[k];
|
rclass = cost_classes[k];
|
||||||
if (contains_reg_of_mode[rclass][PSEUDO_REGNO_MODE (regno)]
|
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
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
fprintf (f, " %s:%d", reg_class_names[rclass],
|
fprintf (f, " %s:%d", reg_class_names[rclass],
|
||||||
COSTS (costs, i)->cost[k]);
|
COSTS (costs, i)->cost[k]);
|
||||||
|
@ -1409,11 +1405,7 @@ print_pseudo_costs (FILE *f)
|
||||||
for (k = 0; k < cost_classes_ptr->num; k++)
|
for (k = 0; k < cost_classes_ptr->num; k++)
|
||||||
{
|
{
|
||||||
rclass = cost_classes[k];
|
rclass = cost_classes[k];
|
||||||
if (contains_reg_of_mode[rclass][PSEUDO_REGNO_MODE (regno)]
|
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
|
|
||||||
)
|
|
||||||
fprintf (f, " %s:%d", reg_class_names[rclass],
|
fprintf (f, " %s:%d", reg_class_names[rclass],
|
||||||
COSTS (costs, regno)->cost[k]);
|
COSTS (costs, regno)->cost[k]);
|
||||||
}
|
}
|
||||||
|
@ -1650,11 +1642,7 @@ find_costs_and_classes (FILE *dump_file)
|
||||||
rclass = cost_classes[k];
|
rclass = cost_classes[k];
|
||||||
/* Ignore classes that are too small or invalid for this
|
/* Ignore classes that are too small or invalid for this
|
||||||
operand. */
|
operand. */
|
||||||
if (! contains_reg_of_mode[rclass][PSEUDO_REGNO_MODE (i)]
|
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
|
|
||||||
)
|
|
||||||
continue;
|
continue;
|
||||||
if (i_costs[k] < best_cost)
|
if (i_costs[k] < best_cost)
|
||||||
{
|
{
|
||||||
|
@ -1725,11 +1713,7 @@ find_costs_and_classes (FILE *dump_file)
|
||||||
continue;
|
continue;
|
||||||
/* Ignore classes that are too small or invalid
|
/* Ignore classes that are too small or invalid
|
||||||
for this operand. */
|
for this operand. */
|
||||||
if (! contains_reg_of_mode[rclass][PSEUDO_REGNO_MODE (i)]
|
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
|
|
||||||
)
|
|
||||||
;
|
;
|
||||||
else if (total_a_costs[k] < best_cost)
|
else if (total_a_costs[k] < best_cost)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue