aboutsummaryrefslogtreecommitdiff
path: root/gcc/ira.c
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2011-08-23 23:06:04 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2011-08-23 23:06:04 +0000
commitd7b177038864d2e40419bcddbdfaca3b1644d175 (patch)
treef6a4acffaccebdbba5d13a56c6e3a3393ea92a29 /gcc/ira.c
parent3d3aae5b2ef82d57ecc1af9de163bf9b024bf7d4 (diff)
downloadgcc-d7b177038864d2e40419bcddbdfaca3b1644d175.zip
gcc-d7b177038864d2e40419bcddbdfaca3b1644d175.tar.gz
gcc-d7b177038864d2e40419bcddbdfaca3b1644d175.tar.bz2
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
Diffstat (limited to 'gcc/ira.c')
-rw-r--r--gcc/ira.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/ira.c b/gcc/ira.c
index 785478f..2ecb5a3 100644
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -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);