re PR target/50289 ([avr]: call-prologues saving/restoring global register variables)
authorGeorg-Johann Lay <avr@gjlay.de>
Mon, 5 Sep 2011 12:20:03 +0000 (12:20 +0000)
committerGeorg-Johann Lay <gjl@gcc.gnu.org>
Mon, 5 Sep 2011 12:20:03 +0000 (12:20 +0000)
PR target/50289
* config/avr/avr.c (sequent_regs_live): Don't recognize sequences
that contain global register variable.

From-SVN: r178528

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

index 0f9280245306adcb758313a3c26db206b2d7664a..1534d479c30c1d2e81e72d3248acc2654ac2968e 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 d267ef0090129441454edf4d180f2a1014254b46..f158cddefe95e56a341b7bc494e54ea4794ff463 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))