Partially revert previous change
authorBernd Schmidt <bernds@redhat.com>
Wed, 4 Apr 2001 15:56:36 +0000 (15:56 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Wed, 4 Apr 2001 15:56:36 +0000 (15:56 +0000)
From-SVN: r41085

gcc/ChangeLog
gcc/sched-deps.c

index 69e2eacbc3c8577bf42d4ff095dfed104f604223..9855c592fa8a872a4793d6c3b1bea0313d6e5039 100644 (file)
@@ -1,3 +1,8 @@
+2001-04-04  Bernd Schmidt  <bernds@redhat.com>
+
+       * sched-deps.c (sched_analyze_insn): Partially revert March 27
+       change.
+
 2001-04-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
 
        * emit-rtl.c (mark_label_nuses) Increment the label uses for
index 0d13a2025e3b3d6b60c2e7ebf42fc44bb3e53750..0bb9386f2eadb98f162c2c657d93a01b89a80659 100644 (file)
@@ -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);
        }
     }