re PR rtl-optimization/50026 (Revision 177575 caused many test failures)
2011-08-09 Vladimir Makarov <vmakarov@redhat.com> PR target/50026 Revert: 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: r177599
This commit is contained in:
parent
3cb6e5bd17
commit
394b15208d
@ -1,3 +1,12 @@
|
||||
2011-08-09 Vladimir Makarov <vmakarov@redhat.com>
|
||||
|
||||
PR target/50026
|
||||
Revert:
|
||||
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-09 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
|
||||
|
@ -1367,7 +1367,11 @@ 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)])
|
||||
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],
|
||||
COSTS (costs, i)->cost[k]);
|
||||
@ -1405,7 +1409,11 @@ 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)])
|
||||
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],
|
||||
COSTS (costs, regno)->cost[k]);
|
||||
}
|
||||
@ -1642,7 +1650,11 @@ 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)])
|
||||
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;
|
||||
if (i_costs[k] < best_cost)
|
||||
{
|
||||
@ -1713,7 +1725,11 @@ 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)])
|
||||
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)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user