From 79ba58ef680bf23f7ae886be3259e0cead8ecd21 Mon Sep 17 00:00:00 2001 From: Bernd Schmidt Date: Wed, 4 Apr 2001 15:56:36 +0000 Subject: [PATCH] Partially revert previous change From-SVN: r41085 --- gcc/ChangeLog | 5 +++++ gcc/sched-deps.c | 16 +++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 69e2eacbc3c..9855c592fa8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-04-04 Bernd Schmidt + + * sched-deps.c (sched_analyze_insn): Partially revert March 27 + change. + 2001-04-04 Herman A.J. ten Brugge * emit-rtl.c (mark_label_nuses) Increment the label uses for 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); } } -- 2.30.2