The following patch solves the PR48381. The reason for the problem is
described on
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48381
Ok to commit? It was successfully bootstrapped on x86-64.
2011-03-31 Vladimir Makarov <vmaka...@redhat.com>
PR rtl-optimization/48381
* ira-color.c (assign_hard_reg): Use hard reg set intersection
instead of ira_class_hard_reg_index for calculating conflicting
hard registers.
Index: ira-color.c
===================================================================
--- ira-color.c (revision 171769)
+++ ira-color.c (working copy)
@@ -1620,7 +1620,9 @@ assign_hard_reg (ira_allocno_t a, bool r
{
hard_regno = ALLOCNO_HARD_REGNO (conflict_a);
if (hard_regno >= 0
- && ira_class_hard_reg_index[aclass][hard_regno] >= 0)
+ && (ira_hard_reg_set_intersection_p
+ (hard_regno, ALLOCNO_MODE (conflict_a),
+ reg_class_contents[aclass])))
{
int n_objects = ALLOCNO_NUM_OBJECTS (conflict_a);
int conflict_nregs;