Commit 5d693491 by Josef Zlomek Committed by Josef Zlomek

cfgrtl.c (try_redirect_by_replacing_jump): Move jump immediatelly before BARRIER.

	PR/11640
	* cfgrtl.c (try_redirect_by_replacing_jump): Move jump
	immediatelly before BARRIER.

From-SVN: r73142
parent c2edc52b
2003-10-31 Josef Zlomek <zlomekj@suse.cz>
PR/11640
* cfgrtl.c (try_redirect_by_replacing_jump): Move jump
immediatelly before BARRIER.
2003-10-31 Kelley Cook <kcook@gcc.gnu.org>
* Makefile.in (STRICT2_WARN): Add -Wold-style-definition.
......
......@@ -793,6 +793,30 @@ try_redirect_by_replacing_jump (edge e, basic_block target, bool in_cfglayout)
barrier = next_nonnote_insn (src->end);
if (!barrier || GET_CODE (barrier) != BARRIER)
emit_barrier_after (src->end);
else
{
if (barrier != NEXT_INSN (src->end))
{
/* Move the jump before barrier so that the notes
which originally were or were created before jump table are
inside the basic block. */
rtx new_insn = src->end;
rtx tmp;
for (tmp = NEXT_INSN (src->end); tmp != barrier;
tmp = NEXT_INSN (tmp))
set_block_for_insn (tmp, src);
NEXT_INSN (PREV_INSN (new_insn)) = NEXT_INSN (new_insn);
PREV_INSN (NEXT_INSN (new_insn)) = PREV_INSN (new_insn);
NEXT_INSN (new_insn) = barrier;
NEXT_INSN (PREV_INSN (barrier)) = new_insn;
PREV_INSN (new_insn) = PREV_INSN (barrier);
PREV_INSN (barrier) = new_insn;
}
}
}
/* Keep only one edge out and set proper flags. */
......
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