diff options
author | Maxim Kuvyrkov <maxim@codesourcery.com> | 2011-04-15 10:03:46 +0000 |
---|---|---|
committer | Maxim Kuvyrkov <mkuvyrkov@gcc.gnu.org> | 2011-04-15 10:03:46 +0000 |
commit | 3162fdf4d2340687b647e86fa949925fd02d8ff4 (patch) | |
tree | 0e8a71ecdbb2a9c2ab596dd335543fc8b5f7a680 | |
parent | 79002a5737c5f889089bb6000cb9d51fecb06910 (diff) | |
download | gcc-3162fdf4d2340687b647e86fa949925fd02d8ff4.zip gcc-3162fdf4d2340687b647e86fa949925fd02d8ff4.tar.gz gcc-3162fdf4d2340687b647e86fa949925fd02d8ff4.tar.bz2 |
m68k.c (m68k_sched_variable_issue): Handle -fsched-pressure.
* config/m68k/m68k.c (m68k_sched_variable_issue): Handle
-fsched-pressure.
From-SVN: r172481
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/m68k/m68k.c | 9 |
2 files changed, 13 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3eb95e4..b30b817 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-04-15 Maxim Kuvyrkov <maxim@codesourcery.com> + + * config/m68k/m68k.c (m68k_sched_variable_issue): Handle + -fsched-pressure. + 2011-04-15 Georg-Johann Lay <avr@gjlay.de> * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c index 3953d01..654c0e5 100644 --- a/gcc/config/m68k/m68k.c +++ b/gcc/config/m68k/m68k.c @@ -6128,7 +6128,14 @@ m68k_sched_variable_issue (FILE *sched_dump ATTRIBUTE_UNUSED, gcc_unreachable (); } - gcc_assert (insn_size <= sched_ib.filled); + if (insn_size > sched_ib.filled) + /* Scheduling for register pressure does not always take DFA into + account. Workaround instruction buffer not being filled enough. */ + { + gcc_assert (sched_pressure_p); + insn_size = sched_ib.filled; + } + --can_issue_more; } else if (GET_CODE (PATTERN (insn)) == ASM_INPUT |