ira.c (ira_init_register_move_cost): Check small subclasses through ira_reg_class_max_nregs and ira_available_class_regs.

2011-08-23  Vladimir Makarov  <vmakarov@redhat.com>

	* ira.c (ira_init_register_move_cost): Check small subclasses
	through ira_reg_class_max_nregs and ira_available_class_regs.

From-SVN: r178019
This commit is contained in:
Vladimir Makarov 2011-08-23 23:06:04 +00:00 committed by Vladimir Makarov
parent 3d3aae5b2e
commit d7b1770388
2 changed files with 6 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2011-08-23 Vladimir Makarov <vmakarov@redhat.com>
* ira.c (ira_init_register_move_cost): Check small subclasses
through ira_reg_class_max_nregs and ira_available_class_regs.
2011-08-23 Uros Bizjak <ubizjak@gmail.com>
* config/i386/constraints.md (Yp): New register constraint.

View File

@ -1503,7 +1503,7 @@ ira_init_register_move_cost (enum machine_mode mode)
{
/* Some subclasses are to small to have enough registers to hold
a value of MODE. Just ignore them. */
if (! contains_reg_of_mode[cl1][mode])
if (ira_reg_class_max_nregs[cl1][mode] > ira_available_class_regs[cl1])
continue;
COPY_HARD_REG_SET (temp_hard_regset, reg_class_contents[cl1]);
AND_COMPL_HARD_REG_SET (temp_hard_regset, no_unit_alloc_regs);