summaryrefslogtreecommitdiff
path: root/gcc/config/m68k
diff options
context:
space:
mode:
authormkuvyrkov <mkuvyrkov@138bc75d-0d04-0410-961f-82ee72b054a4>2011-04-15 10:03:46 +0000
committermkuvyrkov <mkuvyrkov@138bc75d-0d04-0410-961f-82ee72b054a4>2011-04-15 10:03:46 +0000
commit3dd7d6a7c6a0147c3e58b2b6668cde7f3729a96c (patch)
tree0e8a71ecdbb2a9c2ab596dd335543fc8b5f7a680 /gcc/config/m68k
parent83456a4b6fbf918565f1940629bfa025e2b08c03 (diff)
downloadgcc-3dd7d6a7c6a0147c3e58b2b6668cde7f3729a96c.tar.gz
* config/m68k/m68k.c (m68k_sched_variable_issue): Handle
-fsched-pressure. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172481 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/m68k')
-rw-r--r--gcc/config/m68k/m68k.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c
index 3953d01578c..654c0e5cfbc 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