summaryrefslogtreecommitdiff
path: root/gcc/reorg.c
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1998-05-05 00:15:50 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1998-05-05 00:15:50 +0000
commit60d599be700f3b8079fe5d157a4592b63c944e4d (patch)
treef8b7943c8b025bf8bdbde096bb589f4a986f0c92 /gcc/reorg.c
parent3ad08967493a99cf39df801d5c3a8c27e12b4398 (diff)
downloadgcc-60d599be700f3b8079fe5d157a4592b63c944e4d.tar.gz
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19534 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reorg.c')
-rw-r--r--gcc/reorg.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/reorg.c b/gcc/reorg.c
index 68486b0ffec..4cea552d7cf 100644
--- a/gcc/reorg.c
+++ b/gcc/reorg.c
@@ -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;
}