Commit eb5b8ad4 by Mark Mitchell

cfgrtl.c (try_redirect_by_replacing_jump): Create a basic block for orphaned jump tables.

	* cfgrtl.c (try_redirect_by_replacing_jump): Create a basic block
	for orphaned jump tables.

From-SVN: r65792
parent 3e378f14
...@@ -731,7 +731,7 @@ try_redirect_by_replacing_jump (e, target) ...@@ -731,7 +731,7 @@ try_redirect_by_replacing_jump (e, target)
else else
{ {
rtx target_label = block_label (target); rtx target_label = block_label (target);
rtx barrier; rtx barrier, label, table;
emit_jump_insn_after (gen_jump (target_label), insn); emit_jump_insn_after (gen_jump (target_label), insn);
JUMP_LABEL (src->end) = target_label; JUMP_LABEL (src->end) = target_label;
...@@ -744,6 +744,9 @@ try_redirect_by_replacing_jump (e, target) ...@@ -744,6 +744,9 @@ try_redirect_by_replacing_jump (e, target)
table will be removed later, if it is no longer needed. */ table will be removed later, if it is no longer needed. */
delete_insn_chain (kill_from, insn); delete_insn_chain (kill_from, insn);
if (tablejump_p (insn, &label, &table))
create_basic_block (label, table, src);
barrier = next_nonnote_insn (src->end); barrier = next_nonnote_insn (src->end);
if (!barrier || GET_CODE (barrier) != BARRIER) if (!barrier || GET_CODE (barrier) != BARRIER)
emit_barrier_after (src->end); emit_barrier_after (src->end);
......
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