Commit 0948d23f by Eric Botcazou Committed by Eric Botcazou

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
parent d1236680
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-15 Segher Boessenkool <segher@kernel.crashing.org>
* config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
......
......@@ -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);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment