From: Jeff Law Date: Thu, 1 Dec 1994 01:43:50 +0000 (-0700) Subject: reorg.c (fill_slots_from_thread): Create a USE insn for any redundant insn we pretend... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0b84a0d328490126cc506c0cca4dfdc797ca9b3c;p=gcc.git reorg.c (fill_slots_from_thread): Create a USE insn for any redundant insn we pretend to fill a delay slot with. * reorg.c (fill_slots_from_thread): Create a USE insn for any redundant insn we pretend to fill a delay slot with. Continue searching for a suitable delay slot insn at the new USE insn. From-SVN: r8595 --- diff --git a/gcc/reorg.c b/gcc/reorg.c index cd7d6528f24..eef6f06c047 100644 --- a/gcc/reorg.c +++ b/gcc/reorg.c @@ -3329,7 +3329,20 @@ fill_slots_from_thread (insn, condition, thread, opposite_thread, likely, else { update_reg_unused_notes (prior_insn, trial); - new_thread = next_active_insn (trial); + + /* Even if we don't own the the thread, we still need + call update_block to get our special USE insn inserted. + + Furthermore, new_thread should point to the USE insn + so the USE insn will be after any label created before + new_thread later in reorg. Also note next_active_insn + skips the USE insn. + + If we do not do this mark_target_live_regs may fail + to realize any insn set by the redundant insn was + live at new_thread. */ + update_block (trial, next_active_insn (thread)); + new_thread = PREV_INSN (next_active_insn (trial)); } continue;