diff options
author | Jeffrey A Law <law@cygnus.com> | 1997-09-02 04:12:45 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1997-09-01 22:12:45 -0600 |
commit | c9e03727e0c20171c1b1dc0e5f3922b097bb527d (patch) | |
tree | 78cf5f4acbac57342e44204856bd9fdf25b58624 | |
parent | a5d6a95b99188fd2e42a13ae79093d85ac40c7bf (diff) | |
download | gcc-c9e03727e0c20171c1b1dc0e5f3922b097bb527d.zip gcc-c9e03727e0c20171c1b1dc0e5f3922b097bb527d.tar.gz gcc-c9e03727e0c20171c1b1dc0e5f3922b097bb527d.tar.bz2 |
version.c: Bump for snapshot.
* version.c: Bump for snapshot.
Preparing for next snapshot.
* haifa-sched.c (move_insn): Handle notes correctly for insns
with SCHED_GROUP_P set.
Should fix some x86 failures with haifa enabled.
From-SVN: r15027
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/haifa-sched.c | 28 | ||||
-rw-r--r-- | gcc/version.c | 2 |
3 files changed, 33 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8f82575c..3c6479d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +Mon Sep 1 22:13:18 1997 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump for snapshot. + + * haifa-sched.c (move_insn): Handle notes correctly for insns + with SCHED_GROUP_P set. + Mon Sep 1 16:58:57 1997 H.J. Lu (hjl@gnu.ai.mit.edu) * alpha/xm-linux.h (USE_BFD): Undef before define. diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index dd9e507..b439d90 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -6494,23 +6494,45 @@ reemit_notes (insn, last) } /* Move INSN, and all insns which should be issued before it, - due to SCHED_GROUP_P flag. Reemit notes if needed. */ + due to SCHED_GROUP_P flag. Reemit notes if needed. + + Return the last insn emitted by the scheduler, which is the + return value from the first call to reemit_notes. */ static rtx move_insn (insn, last) rtx insn, last; { - rtx new_last = insn; + rtx retval = NULL; + /* If INSN has SCHED_GROUP_P set, then issue it and any other + insns with SCHED_GROUP_P set first. */ while (SCHED_GROUP_P (insn)) { rtx prev = PREV_INSN (insn); + + /* Move a SCHED_GROUP_P insn. */ move_insn1 (insn, last); + /* If this is the first call to reemit_notes, then record + its return value. */ + if (retval == NULL_RTX) + retval = reemit_notes (insn, insn); + else + reemit_notes (insn, insn); insn = prev; } + /* Now move the first non SCHED_GROUP_P insn. */ move_insn1 (insn, last); - return reemit_notes (new_last, new_last); + + /* If this is the first call to reemit_notes, then record + its return value. */ + if (retval == NULL_RTX) + retval = reemit_notes (insn, insn); + else + reemit_notes (insn, insn); + + return retval; } /* Return an insn which represents a SCHED_GROUP, which is diff --git a/gcc/version.c b/gcc/version.c index 1e47a92..3f53ba0 100644 --- a/gcc/version.c +++ b/gcc/version.c @@ -1 +1 @@ -char *version_string = "egcs-2.90.03 970828 (gcc2-970802 experimental)"; +char *version_string = "egcs-2.90.04 970901 (gcc2-970802 experimental)"; |