aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChung-Lin Tang <cltang@codesourcery.com>2011-02-18 17:26:31 +0000
committerChung-Lin Tang <cltang@gcc.gnu.org>2011-02-18 17:26:31 +0000
commit7efcf910eeb14928a4230e835a126784e9e196b0 (patch)
treeac4d7d4b4ed03e4c4988fae35b30f39df0d21689
parent4a16e6813387edc211094a97a5366e272dfa6512 (diff)
downloadgcc-7efcf910eeb14928a4230e835a126784e9e196b0.zip
gcc-7efcf910eeb14928a4230e835a126784e9e196b0.tar.gz
gcc-7efcf910eeb14928a4230e835a126784e9e196b0.tar.bz2
re PR rtl-optimization/46178 (gcc.target/i386/(u)divmod-[58].c FAIL: ICE: in dec_register_pressure, at ira-lives.c:215 with -fira-algorithm=priority)
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[]. From-SVN: r170277
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/ira.c18
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
diff --git a/gcc/ira.c b/gcc/ira.c
index 5f27fc2..68d47fb 100644
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -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)]);
}
}