diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ira.c | 18 |
2 files changed, 11 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3e31b74..32b4921 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-02-18 Chung-Lin Tang <cltang@codesourcery.com> + + PR rtl-optimization/46178 + * ira.c (setup_hard_regno_class): Use ira_class_translate[] to + compute ira_hard_regno_cover_class[]. + 2011-02-18 Richard Guenther <rguenther@suse.de> PR lto/47798 @@ -1033,22 +1033,14 @@ find_reg_class_closure (void) static void setup_hard_regno_cover_class (void) { - int i, j; - enum reg_class cl; + int i; for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) { - ira_hard_regno_cover_class[i] = NO_REGS; - for (j = 0; j < ira_reg_class_cover_size; j++) - { - cl = ira_reg_class_cover[j]; - if (ira_class_hard_reg_index[cl][i] >= 0) - { - ira_hard_regno_cover_class[i] = cl; - break; - } - } - + ira_hard_regno_cover_class[i] + = (TEST_HARD_REG_BIT (no_unit_alloc_regs, i) + ? NO_REGS + : ira_class_translate[REGNO_REG_CLASS (i)]); } } |