]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR rtl-optimization/80474 (ipa-cp wrongly adding LO(symbol) twice)
authorEric Botcazou <ebotcazou@adacore.com>
Thu, 15 Jun 2017 13:25:56 +0000 (13:25 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Thu, 15 Jun 2017 13:25:56 +0000 (13:25 +0000)
PR rtl-optimization/80474
* reorg.c (update_block): Do not ignore instructions in a delay slot.

From-SVN: r249221

gcc/ChangeLog
gcc/reorg.c

index 13972b681d3325fc964f10159ade610091de3abc..02a6b92be58660e4c0715552f501c59664ab705b 100644 (file)
@@ -1,3 +1,8 @@
+2017-06-15  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR rtl-optimization/80474
+       * reorg.c (update_block): Do not ignore instructions in a delay slot.
+
 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
 
        * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
index 7b28821c99f1cbffff45fc6ec4f0ba6e6c147848..ad780619838ca04ece75e995b06b926b5280632e 100644 (file)
@@ -1697,9 +1697,8 @@ own_thread_p (rtx thread, rtx label, int allow_fallthrough)
 }
 \f
 /* 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
@@ -1708,16 +1707,10 @@ own_thread_p (rtx thread, rtx label, int allow_fallthrough)
 static void
 update_block (rtx_insn *insn, rtx 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);
 }