diff options
author | Vladimir Makarov <vmakarov@redhat.com> | 2003-01-17 00:00:18 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@gcc.gnu.org> | 2003-01-17 00:00:18 +0000 |
commit | cda1f7656126d203689c0b92ddb23b205cc8db0a (patch) | |
tree | 6a518c0a40b187dcecd0e59e899e3632f564f628 /gcc/haifa-sched.c | |
parent | 200097cc9a3d0355c61c8630a03e991563f91104 (diff) | |
download | gcc-cda1f7656126d203689c0b92ddb23b205cc8db0a.zip gcc-cda1f7656126d203689c0b92ddb23b205cc8db0a.tar.gz gcc-cda1f7656126d203689c0b92ddb23b205cc8db0a.tar.bz2 |
haifa-sched.c (move_insn): Restore moving all schedule group.
2003-01-16 Vladimir Makarov <vmakarov@redhat.com>
* haifa-sched.c (move_insn): Restore moving all schedule group.
(set_priorities): Restore taking SCHED_GROUP_P into account.
* sched-deps.c (add_dependence): Restore processing the last group
insn.
(remove_dependence, group_leader): Restore the functions.
(set_sched_group_p): Restore adding dependencies from previous insn
in the group.
(compute_forward_dependences): Restore usage of group_leader.
* sched-ebb.c (init_ready_list): Restore taking SCHED_GROUP_P into
account.
* sched-rgn.c (init_ready_list): Restore taking SCHED_GROUP_P into
account.
(can_schedule_ready_p): Ditto.
(add_branch_dependences): Restore skipping over the group insns.
From-SVN: r61412
Diffstat (limited to 'gcc/haifa-sched.c')
-rw-r--r-- | gcc/haifa-sched.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index 046abc3..c6b2aab 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -1769,6 +1769,25 @@ move_insn (insn, last) { 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); + /* Consume SCHED_GROUP_P flag. */ + SCHED_GROUP_P (insn) = 0; + insn = prev; + } + /* Now move the first non SCHED_GROUP_P insn. */ move_insn1 (insn, last); @@ -1779,8 +1798,6 @@ move_insn (insn, last) else reemit_notes (insn, insn); - SCHED_GROUP_P (insn) = 0; - return retval; } @@ -2376,7 +2393,8 @@ set_priorities (head, tail) if (GET_CODE (insn) == NOTE) continue; - n_insn++; + if (! SCHED_GROUP_P (insn)) + n_insn++; (void) priority (insn); } |