diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2017-06-15 13:24:53 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2017-06-15 13:24:53 +0000 |
commit | 0948d23fffba754853cc93984e106d2aaf9a3897 (patch) | |
tree | a3e56701bccc21dc51b9119ff81ebbfb6290c913 /gcc/reorg.c | |
parent | d12366802a9ac3de79126daeea9ae60aad98e1d5 (diff) | |
download | gcc-0948d23fffba754853cc93984e106d2aaf9a3897.zip gcc-0948d23fffba754853cc93984e106d2aaf9a3897.tar.gz gcc-0948d23fffba754853cc93984e106d2aaf9a3897.tar.bz2 |
re PR rtl-optimization/80474 (ipa-cp wrongly adding LO(symbol) twice)
PR rtl-optimization/80474
* reorg.c (update_block): Do not ignore instructions in a delay slot.
From-SVN: r249219
Diffstat (limited to 'gcc/reorg.c')
-rw-r--r-- | gcc/reorg.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/gcc/reorg.c b/gcc/reorg.c index 1a6fd86..dbd74ab 100644 --- a/gcc/reorg.c +++ b/gcc/reorg.c @@ -1694,9 +1694,8 @@ own_thread_p (rtx thread, rtx label, int allow_fallthrough) } /* Called when INSN is being moved from a location near the target of a jump. - We leave a marker of the form (use (INSN)) immediately in front - of WHERE for mark_target_live_regs. These markers will be deleted when - reorg finishes. + We leave a marker of the form (use (INSN)) immediately in front of WHERE + for mark_target_live_regs. These markers will be deleted at the end. We used to try to update the live status of registers if WHERE is at the start of a basic block, but that can't work since we may remove a @@ -1705,16 +1704,10 @@ own_thread_p (rtx thread, rtx label, int allow_fallthrough) static void update_block (rtx_insn *insn, rtx_insn *where) { - /* Ignore if this was in a delay slot and it came from the target of - a branch. */ - if (INSN_FROM_TARGET_P (insn)) - return; - emit_insn_before (gen_rtx_USE (VOIDmode, insn), where); /* INSN might be making a value live in a block where it didn't use to be. So recompute liveness information for this block. */ - incr_ticks_for_insn (insn); } |