From 326ee7a3fe67675491fee5445748d705499cb339 Mon Sep 17 00:00:00 2001 From: Jeffrey A Law Date: Sat, 13 Sep 1997 19:00:22 +0000 Subject: [PATCH] haifa-sched.c (add_branch_dependences): Make each insn in a SCHED_GROUP_P block explicitly depend on the previous insn. * haifa-sched.c (add_branch_dependences): Make each insn in a SCHED_GROUP_P block explicitly depend on the previous insn. Fixes x86 abort. From-SVN: r15430 --- gcc/ChangeLog | 5 +++++ gcc/haifa-sched.c | 12 ++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dae16a599e2..aea087b5471 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Sat Sep 13 12:57:26 1997 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (add_branch_dependences): Make each insn in + a SCHED_GROUP_P block explicitly depend on the previous insn. + Thu Sep 11 17:43:55 1997 Jim Wilson * configure.in (native_prefix): Delete. diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index 4b0be8879a8..16b1e20a753 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -7106,9 +7106,17 @@ add_branch_dependences (head, tail) CANT_MOVE (insn) = 1; last = insn; - /* Skip over insns that are part of a group. */ + /* Skip over insns that are part of a group. + Make each insn explicitly depend on the previous insn. + This ensures that only the group header will ever enter + the ready queue (and, when scheduled, will automatically + schedule the SCHED_GROUP_P block). */ while (SCHED_GROUP_P (insn)) - insn = prev_nonnote_insn (insn); + { + rtx temp = prev_nonnote_insn (insn); + add_dependence (insn, temp, REG_DEP_ANTI); + insn = temp; + } } /* Don't overrun the bounds of the basic block. */ -- 2.30.2