summaryrefslogtreecommitdiff
path: root/gcc/sched.c
diff options
context:
space:
mode:
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>1993-06-12 17:43:42 +0000
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>1993-06-12 17:43:42 +0000
commitdb8012c28c1b8de4204fe51ffc2c6fd5026f8723 (patch)
tree38c3f161a3402b74fc0012e7c4cdb572f78a9b5a /gcc/sched.c
parente2619b7143f391ae40921cb9f306fbc0bedd3db9 (diff)
downloadgcc-db8012c28c1b8de4204fe51ffc2c6fd5026f8723.tar.gz
(add_dependence): Reject CODE_LABELs when searching for
last insn of a sched group. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@4667 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/sched.c')
-rw-r--r--gcc/sched.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/sched.c b/gcc/sched.c
index 8ddf4bd1e43..2fec9bcf9bb 100644
--- a/gcc/sched.c
+++ b/gcc/sched.c
@@ -844,7 +844,12 @@ add_dependence (insn, elem, dep_type)
{
/* Notes will never intervene here though, so don't bother checking
for them. */
- while (NEXT_INSN (next) && SCHED_GROUP_P (NEXT_INSN (next)))
+ /* We must reject CODE_LABELs, so that we don't get confused by one
+ that has LABEL_PRESERVE_P set, which is represented by the same
+ bit in the rtl as SCHED_GROUP_P. A CODE_LABEL can never be
+ SCHED_GROUP_P. */
+ while (NEXT_INSN (next) && SCHED_GROUP_P (NEXT_INSN (next))
+ && GET_CODE (NEXT_INSN (next)) != CODE_LABEL)
next = NEXT_INSN (next);
/* Again, don't depend an insn on itself. */