aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Kuvyrkov <maxim@codesourcery.com>2011-04-15 10:03:46 +0000
committerMaxim Kuvyrkov <mkuvyrkov@gcc.gnu.org>2011-04-15 10:03:46 +0000
commit3162fdf4d2340687b647e86fa949925fd02d8ff4 (patch)
tree0e8a71ecdbb2a9c2ab596dd335543fc8b5f7a680
parent79002a5737c5f889089bb6000cb9d51fecb06910 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/config/m68k/m68k.c9
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