PR target/50289
authorgjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 Sep 2011 12:20:03 +0000 (12:20 +0000)
committergjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 5 Sep 2011 12:20:03 +0000 (12:20 +0000)
* config/avr/avr.c (sequent_regs_live): Don't recognize sequences
that contain global register variable.

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

gcc/ChangeLog
gcc/config/avr/avr.c

index 0f92802..1534d47 100644 (file)
@@ -1,3 +1,9 @@
+2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
+
+       PR target/50289
+       * config/avr/avr.c (sequent_regs_live): Don't recognize sequences
+       that contain global register variable.
+
 2011-09-05  Richard Guenther  <rguenther@suse.de>
 
        * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace.
index d267ef0..f158cdd 100644 (file)
@@ -522,6 +522,17 @@ sequent_regs_live (void)
 
   for (reg = 0; reg < 18; ++reg)
     {
+      if (fixed_regs[reg])
+        {
+          /* Don't recognize sequences that contain global register
+             variables.  */
+      
+          if (live_seq != 0)
+            return 0;
+          else
+            continue;
+        }
+      
       if (!call_used_regs[reg])
        {
          if (df_regs_ever_live_p (reg))