ira-emit.c (change_regs): Return false when replacing reg by itself.
authorJan Hubicka <jh@suse.cz>
Thu, 16 Oct 2008 01:29:14 +0000 (03:29 +0200)
committerH.J. Lu <hjl@gcc.gnu.org>
Thu, 16 Oct 2008 01:29:14 +0000 (18:29 -0700)
2008-10-15  Jan Hubicka  <jh@suse.cz>

* ira-emit.c (change_regs): Return false when replacing reg by
itself.

From-SVN: r141163

gcc/ChangeLog
gcc/ira-emit.c

index ccdc92e..c3d2d9f 100644 (file)
@@ -1,3 +1,8 @@
+2008-10-15  Jan Hubicka  <jh@suse.cz>
+
+       * ira-emit.c (change_regs): Return false when replacing reg by
+       itself.
+
 2008-10-14  Vladimir Makarov  <vmakarov@redhat.com>
 
        PR target/37633
index 7fdaefb..a6a7582 100644 (file)
@@ -137,6 +137,7 @@ change_regs (rtx *loc)
   int i, regno, result = false;
   const char *fmt;
   enum rtx_code code;
+  rtx reg;
 
   if (*loc == NULL_RTX)
     return false;
@@ -151,7 +152,10 @@ change_regs (rtx *loc)
        return false;
       if (ira_curr_regno_allocno_map[regno] == NULL)
        return false;
-      *loc = ALLOCNO_REG (ira_curr_regno_allocno_map[regno]);
+      reg = ALLOCNO_REG (ira_curr_regno_allocno_map[regno]);
+      if (reg == *loc)
+       return false;
+      *loc = reg;
       return true;
     }