haifa-sched.c (sched_analyze_1, [...]): Revert 2000-11-22 change.
authorRichard Henderson <rth@redhat.com>
Sat, 25 Nov 2000 18:54:33 +0000 (10:54 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Sat, 25 Nov 2000 18:54:33 +0000 (10:54 -0800)
        * haifa-sched.c (sched_analyze_1, sched_analyze_2, sched_analyze):
        Revert 2000-11-22 change.

From-SVN: r37741

gcc/ChangeLog
gcc/haifa-sched.c

index 92b48f615e874f0291cd83cd443624994a4734b9..97cd49a9fbe8900be31b7c4d757c1d6afe781e45 100644 (file)
@@ -1,3 +1,8 @@
+2000-11-25  Richard Henderson  <rth@redhat.com>
+
+       * haifa-sched.c (sched_analyze_1, sched_analyze_2, sched_analyze):
+       Revert 2000-11-22 change.
+
 2000-11-25  Bernd Schmidt  <bernds@redhat.co.uk>
 
        * config/i386/i386.h (FIXED_REGS): Make the three flags registers
index 6ad7441f9e7967d35dd4cc93bc291763e80a4549..477eec3f792fac770a2413d48d30e931e161af2b 100644 (file)
@@ -3405,6 +3405,11 @@ sched_analyze_1 (deps, x, insn)
                }
              else
                SET_REGNO_REG_SET (reg_pending_clobbers, r);
+
+             /* Function calls clobber all call_used regs.  */
+             if (global_regs[r] || (code == SET && call_used_regs[r]))
+               for (u = deps->last_function_call; u; u = XEXP (u, 1))
+                 add_dependence (insn, XEXP (u, 0), REG_DEP_ANTI);
            }
        }
       else
@@ -3556,6 +3561,11 @@ sched_analyze_2 (deps, x, insn)
                /* ??? This should never happen.  */
                for (u = deps->reg_last_clobbers[r]; u; u = XEXP (u, 1))
                  add_dependence (insn, XEXP (u, 0), 0);
+
+               if (call_used_regs[r] || global_regs[r])
+                 /* Function calls clobber all call_used regs.  */
+                 for (u = deps->last_function_call; u; u = XEXP (u, 1))
+                   add_dependence (insn, XEXP (u, 0), REG_DEP_ANTI);
              }
          }
        else
@@ -3998,11 +4008,9 @@ sched_analyze (deps, head, tail)
                  {
                    for (u = deps->reg_last_uses[i]; u; u = XEXP (u, 1))
                      add_dependence (insn, XEXP (u, 0), REG_DEP_ANTI);
-                   free_INSN_LIST_list (&deps->reg_last_uses[i]);
 
                    for (u = deps->reg_last_sets[i]; u; u = XEXP (u, 1))
-                     add_dependence (insn, XEXP (u, 0), REG_DEP_OUTPUT);
-                   free_INSN_LIST_list (&deps->reg_last_sets[i]);
+                     add_dependence (insn, XEXP (u, 0), REG_DEP_ANTI);
 
                    SET_REGNO_REG_SET (reg_pending_clobbers, i);
                  }