aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2010-04-19 18:22:14 +0000
committerJeff Law <law@gcc.gnu.org>2010-04-19 12:22:14 -0600
commitec99573229c53d2c59941aa0732465e0b2629a72 (patch)
tree090e4563f9c015a1efbffa5ab3e9956748433af7
parentacd638015562cb10a9b70ba5acd0109aeba2f40b (diff)
downloadgcc-ec99573229c53d2c59941aa0732465e0b2629a72.zip
gcc-ec99573229c53d2c59941aa0732465e0b2629a72.tar.gz
gcc-ec99573229c53d2c59941aa0732465e0b2629a72.tar.bz2
ira-color.c (allocno_reload_assign): Avoid accumulating reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
* ira-color.c (allocno_reload_assign): Avoid accumulating reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS. From-SVN: r158524
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ira-color.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b21d8c5..18374f0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2010-04-19 Vladimir Makarov <vmakarov@redhat.com>
+
+ * ira-color.c (allocno_reload_assign): Avoid accumulating
+ reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
+
2010-04-19 Martin Jambor <mjambor@suse.cz>
* gimple.h (create_tmp_reg): Declare.
diff --git a/gcc/ira-color.c b/gcc/ira-color.c
index f507db1..e01a6ab 100644
--- a/gcc/ira-color.c
+++ b/gcc/ira-color.c
@@ -2786,7 +2786,9 @@ allocno_reload_assign (ira_allocno_t a, HARD_REG_SET forbidden_regs)
int hard_regno;
enum reg_class cover_class;
int regno = ALLOCNO_REGNO (a);
+ HARD_REG_SET saved;
+ COPY_HARD_REG_SET (saved, ALLOCNO_TOTAL_CONFLICT_HARD_REGS (a));
IOR_HARD_REG_SET (ALLOCNO_TOTAL_CONFLICT_HARD_REGS (a), forbidden_regs);
if (! flag_caller_saves && ALLOCNO_CALLS_CROSSED_NUM (a) != 0)
IOR_HARD_REG_SET (ALLOCNO_TOTAL_CONFLICT_HARD_REGS (a), call_used_reg_set);
@@ -2830,7 +2832,7 @@ allocno_reload_assign (ira_allocno_t a, HARD_REG_SET forbidden_regs)
}
else if (internal_flag_ira_verbose > 3 && ira_dump_file != NULL)
fprintf (ira_dump_file, "\n");
-
+ COPY_HARD_REG_SET (ALLOCNO_TOTAL_CONFLICT_HARD_REGS (a), saved);
return reg_renumber[regno] >= 0;
}