OSDN Git Service

2008-09-04 Vladimir Makarov <vmakarov@redhat.com>
authorvmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 6 Sep 2008 00:39:58 +0000 (00:39 +0000)
committervmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 6 Sep 2008 00:39:58 +0000 (00:39 +0000)
* ira-color.c (ira_fast_allocation): Permit global allocno
allocation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140052 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/ira-color.c

index e1e7df6..85315b7 100644 (file)
@@ -1,3 +1,8 @@
+2008-09-04  Vladimir Makarov  <vmakarov@redhat.com>
+
+       * ira-color.c (ira_fast_allocation): Permit global allocno
+       allocation.
+       
 2008-09-05  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
 
        Improved branch hints, safe hints, and scheduling.
index 8afc010..9bda76d 100644 (file)
@@ -2985,17 +2985,13 @@ ira_fast_allocation (void)
   for (i = 0; i < num; i++)
     {
       a = sorted_allocnos[i];
-      ALLOCNO_ASSIGNED_P (a) = true;
-      ALLOCNO_HARD_REGNO (a) = -1;
-      /* Live info about hard registers are absent when OPTIMIZE==0.
-        So try to assign hard-registers only to local allocnos.  */
-      if (!optimize && REG_BASIC_BLOCK (ALLOCNO_REGNO (a)) == REG_BLOCK_GLOBAL)
-       continue;
       COPY_HARD_REG_SET (conflict_hard_regs, ALLOCNO_CONFLICT_HARD_REGS (a));
       for (r = ALLOCNO_LIVE_RANGES (a); r != NULL; r = r->next)
        for (j =  r->start; j <= r->finish; j++)
          IOR_HARD_REG_SET (conflict_hard_regs, used_hard_regs[j]);
       cover_class = ALLOCNO_COVER_CLASS (a);
+      ALLOCNO_ASSIGNED_P (a) = true;
+      ALLOCNO_HARD_REGNO (a) = -1;
       if (hard_reg_set_subset_p (reg_class_contents[cover_class],
                                 conflict_hard_regs))
        continue;