diff options
author | Bernd Schmidt <bernds@redhat.com> | 2001-04-04 15:56:36 +0000 |
---|---|---|
committer | Bernd Schmidt <bernds@gcc.gnu.org> | 2001-04-04 15:56:36 +0000 |
commit | 79ba58ef680bf23f7ae886be3259e0cead8ecd21 (patch) | |
tree | 4463acd8dd211c28153b8d8b4d1ee618099503ea /gcc/sched-deps.c | |
parent | e5bef2e40095525c3e12d3543d2f921703bc95b1 (diff) | |
download | gcc-79ba58ef680bf23f7ae886be3259e0cead8ecd21.tar.gz |
Partially revert previous change
From-SVN: r41085
Diffstat (limited to 'gcc/sched-deps.c')
-rw-r--r-- | gcc/sched-deps.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c index 0d13a2025e3..0bb9386f2ea 100644 --- a/gcc/sched-deps.c +++ b/gcc/sched-deps.c @@ -1022,12 +1022,13 @@ sched_analyze_insn (deps, x, insn, loop_notes) if (GET_CODE (insn) == JUMP_INSN) { - rtx next, u; + rtx next; next = next_nonnote_insn (insn); if (next && GET_CODE (next) == BARRIER) schedule_barrier_found = 1; else { + rtx pending, pending_mem, u; regset_head tmp; INIT_REG_SET (&tmp); @@ -1042,6 +1043,19 @@ sched_analyze_insn (deps, x, insn, loop_notes) }); CLEAR_REG_SET (&tmp); + + pending = deps->pending_write_insns; + pending_mem = deps->pending_write_mems; + while (pending) + { + add_dependence (insn, XEXP (pending, 0), REG_DEP_OUTPUT); + + pending = XEXP (pending, 1); + pending_mem = XEXP (pending_mem, 1); + } + + for (u = deps->last_pending_memory_flush; u; u = XEXP (u, 1)) + add_dependence (insn, XEXP (u, 0), REG_DEP_ANTI); } } |