diff options
author | Jeff Law <law@gcc.gnu.org> | 1994-11-30 18:43:50 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1994-11-30 18:43:50 -0700 |
commit | 0b84a0d328490126cc506c0cca4dfdc797ca9b3c (patch) | |
tree | 2940215860d8db6b19d171a952a5eac0613283f6 /gcc | |
parent | ca89d290d8ccb0fd7b5d9e41f69ed9870a833974 (diff) | |
download | gcc-0b84a0d328490126cc506c0cca4dfdc797ca9b3c.zip gcc-0b84a0d328490126cc506c0cca4dfdc797ca9b3c.tar.gz gcc-0b84a0d328490126cc506c0cca4dfdc797ca9b3c.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/reorg.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/gcc/reorg.c b/gcc/reorg.c index cd7d652..eef6f06 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; |