]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ira-color.c (allocno_reload_assign): Avoid accumulating reload registers in ALLOCNO_T...
authorVladimir Makarov <vmakarov@redhat.com>
Mon, 19 Apr 2010 18:22:14 +0000 (18:22 +0000)
committerJeff Law <law@gcc.gnu.org>
Mon, 19 Apr 2010 18:22:14 +0000 (12:22 -0600)
        * ira-color.c (allocno_reload_assign): Avoid accumulating
        reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.

From-SVN: r158524

gcc/ChangeLog
gcc/ira-color.c

index b21d8c56509e916f0c786ad62cb8f56450d62b38..18374f038a47b6070b70be9126dcfc58b6c67de0 100644 (file)
@@ -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.
index f507db18aee664748ad70affc250901f4c96cdb0..e01a6abdb47709e307f7e19d1dd53a2b472ed209 100644 (file)
@@ -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;
 }