]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
jump.c: Include insn-attr.h.
authorJeffrey A Law <law@cygnus.com>
Mon, 15 Feb 1999 22:10:25 +0000 (22:10 +0000)
committerJeff Law <law@gcc.gnu.org>
Mon, 15 Feb 1999 22:10:25 +0000 (15:10 -0700)
        * jump.c: Include insn-attr.h.
        (delete_computation): If reload has completed and insn scheduling
        after reload is enabled, then do not depend on REG_DEAD notes.
        * Makefile.in (jump.o): Depend on insn-attr.h.

From-SVN: r25224

gcc/ChangeLog
gcc/Makefile.in
gcc/jump.c

index 62aeb4d9b1d41c720df8aadd62f1d28fd05355d4..5f11bfeacab7cb87fc9a2cc1afa1ac2345299236 100644 (file)
@@ -1,5 +1,10 @@
 Mon Feb 15 11:33:51 1999  Jeffrey A Law  (law@cygnus.com)
 
+       * jump.c: Include insn-attr.h.
+       (delete_computation): If reload has completed and insn scheduling
+       after reload is enabled, then do not depend on REG_DEAD notes.
+       * Makefile.in (jump.o): Depend on insn-attr.h.
+
        * sparc.c (output_scc_insn): Add missing argument to output_cbranch.
 
        * loop.c (mark_loop_jump): Handle LO_SUM.  If we encounter something
index 5acf9267aef736fc3639bb73d7a86bac83d9b3d9..8d301cb98c4a5da44e8b3e83b3c69bb31dcc07b7 100644 (file)
@@ -1429,7 +1429,7 @@ integrate.o : integrate.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h \
 
 jump.o : jump.c $(CONFIG_H) system.h $(RTL_H) flags.h hard-reg-set.h $(REGS_H) \
    insn-config.h insn-flags.h $(RECOG_H) $(EXPR_H) real.h except.h \
-   toplev.h
+   toplev.h insn-attr.h
 stupid.o : stupid.c $(CONFIG_H) system.h $(RTL_H) $(REGS_H) hard-reg-set.h \
    flags.h toplev.h
 
index 9a3cd8cbf6deebe8741ae89ce2be210e4f5877c3..ff4680c766229dd693e1f5d2e8492290f3d07683 100644 (file)
@@ -59,6 +59,7 @@ Boston, MA 02111-1307, USA.  */
 #include "regs.h"
 #include "insn-config.h"
 #include "insn-flags.h"
+#include "insn-attr.h"
 #include "recog.h"
 #include "expr.h"
 #include "real.h"
@@ -3650,6 +3651,17 @@ delete_computation (insn)
     }
 #endif
 
+#ifdef INSN_SCHEDULING
+  /* ?!? The schedulers do not keep REG_DEAD notes accurate after
+     reload has completed.  The schedulers need to be fixed.  Until
+     they are, we must not rely on the death notes here.  */
+  if (reload_completed && flag_schedule_insns_after_reload)
+    {
+      delete_insn (insn);
+      return;
+    }
+#endif
+
   for (note = REG_NOTES (insn); note; note = next)
     {
       rtx our_prev;