reorg.c (fill_slots_from_thread): Update REG_DEAD/REG_UNUSED notes for any insns...
authorJeffrey A Law <law@cygnus.com>
Tue, 5 May 1998 00:15:50 +0000 (00:15 +0000)
committerJeff Law <law@gcc.gnu.org>
Tue, 5 May 1998 00:15:50 +0000 (18:15 -0600)
        * 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.

From-SVN: r19534

gcc/ChangeLog
gcc/reorg.c

index 7e04af59406c08d6eec665e49acc78b5eb73b2d5..0b36736c7c844ee750fd7e5a2d0fd30f3d19e5e3 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 68486b0ffec8cde8bf22c3ac5b13c4378ea4ca0a..4cea552d7cfe1f6d54308ddd37e49e87e49017a0 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;
                    }