From 3d83581faf4eaf52c1cf52cc0d11cc7dd1264275 Mon Sep 17 00:00:00 2001 From: gjl Date: Mon, 5 Sep 2011 12:20:03 +0000 Subject: [PATCH] PR target/50289 * 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 | 6 ++++++ gcc/config/avr/avr.c | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0f92802..1534d47 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-09-05 Georg-Johann Lay + + PR target/50289 + * config/avr/avr.c (sequent_regs_live): Don't recognize sequences + that contain global register variable. + 2011-09-05 Richard Guenther * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace. diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index d267ef0..f158cdd 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -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)) -- 2.7.4