aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorChung-Lin Tang <cltang@codesourcery.com>2011-02-22 03:23:21 +0000
committerChung-Lin Tang <cltang@gcc.gnu.org>2011-02-22 03:23:21 +0000
commit6042d1dd489cd2188a6eee867a580aa664cc742b (patch)
tree5e1480f8c01b2730da087523abdc65adcdb709be /gcc
parentd18c88a8438e0404530aecca69173b18d0f4f992 (diff)
downloadgcc-6042d1dd489cd2188a6eee867a580aa664cc742b.zip
gcc-6042d1dd489cd2188a6eee867a580aa664cc742b.tar.gz
gcc-6042d1dd489cd2188a6eee867a580aa664cc742b.tar.bz2
re PR rtl-optimization/46002 (ICE: in update_copy_costs, at ira-color.c:319 with -fira-algorithm=priority)
2011-02-21 Chung-Lin Tang <cltang@codesourcery.com> PR rtl-optimization/46002 * ira-color.c (update_copy_costs): Change class intersection test to reg_class_contents[] test of 'hard_regno'. From-SVN: r170388
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/ira-color.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4ce1138..a78deb0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-02-21 Chung-Lin Tang <cltang@codesourcery.com>
+
+ PR rtl-optimization/46002
+ * ira-color.c (update_copy_costs): Change class intersection
+ test to reg_class_contents[] test of 'hard_regno'.
+
2011-02-21 Joseph Myers <joseph@codesourcery.com>
* config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
diff --git a/gcc/ira-color.c b/gcc/ira-color.c
index 9c5f4b7..5c98ef9 100644
--- a/gcc/ira-color.c
+++ b/gcc/ira-color.c
@@ -292,7 +292,8 @@ update_copy_costs (ira_allocno_t allocno, bool decr_p)
gcc_unreachable ();
cover_class = ALLOCNO_COVER_CLASS (another_allocno);
- if (! ira_reg_classes_intersect_p[rclass][cover_class]
+ if (! TEST_HARD_REG_BIT (reg_class_contents[cover_class],
+ hard_regno)
|| ALLOCNO_ASSIGNED_P (another_allocno))
continue;