* reorg.c (fill_slots_from_thread): Update REG_DEAD/REG_UNUSED notes
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 5 May 1998 00:15:50 +0000 (00:15 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 5 May 1998 00:15:50 +0000 (00:15 +0000)
        for any insns skipped at the start of a block because they were
        redundant.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19534 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/reorg.c

index 7e04af5..0b36736 100644 (file)
@@ -1,3 +1,9 @@
+Tue May  5 01:15:06 1998  Jeffrey A Law  (law@cygnus.com)
+
+       * reorg.c (fill_slots_from_thread): Update REG_DEAD/REG_UNUSED notes
+       for any insns skipped at the start of a block because they were
+       redundant.
+
 Mon May  4 20:23:51 1998  Jim Wilson  <wilson@cygnus.com>
 
        * alpha.h (DBX_CONTIN_LENGTH): Decrease to 3000.
index 68486b0..4cea552 100644 (file)
@@ -3665,8 +3665,16 @@ fill_slots_from_thread (insn, condition, thread, opposite_thread, likely,
                             && ! insn_sets_resource_p (new_thread, &needed, 1)
                             && ! insn_references_resource_p (new_thread,
                                                              &set, 1)
-                            && redundant_insn (new_thread, insn, delay_list))
-                       new_thread = next_active_insn (new_thread);
+                            && (prior_insn
+                                = redundant_insn (new_thread, insn,
+                                                  delay_list)))
+                       {
+                         /* We know we do not own the thread, so no need
+                            to call update_block and delete_insn.  */
+                         fix_reg_dead_note (prior_insn, insn);
+                         update_reg_unused_notes (prior_insn, new_thread);
+                         new_thread = next_active_insn (new_thread);
+                       }
                      break;
                    }