Commit 8cfe18d6 by Richard Kenner

(flow_analysis, find_basic_blocks): Ignore nonlocal_label_list for

CALL_INSN that has a REG_RETVAL.

From-SVN: r12263
parent 018086d1
...@@ -358,6 +358,10 @@ flow_analysis (f, nregs, file) ...@@ -358,6 +358,10 @@ flow_analysis (f, nregs, file)
&& nonlocal_label_list != 0) && nonlocal_label_list != 0)
|| prev_code == BARRIER))) || prev_code == BARRIER)))
i++; i++;
if (code == CALL_INSN && ! find_reg_note (insn, REG_RETVAL, NULL_RTX))
code = INSN;
if (code != NOTE) if (code != NOTE)
prev_code = code; prev_code = code;
} }
...@@ -448,7 +452,8 @@ find_basic_blocks (f, nonlocal_label_list) ...@@ -448,7 +452,8 @@ find_basic_blocks (f, nonlocal_label_list)
|| (GET_RTX_CLASS (code) == 'i' || (GET_RTX_CLASS (code) == 'i'
&& (prev_code == JUMP_INSN && (prev_code == JUMP_INSN
|| (prev_code == CALL_INSN || (prev_code == CALL_INSN
&& nonlocal_label_list != 0) && nonlocal_label_list != 0
&& ! find_reg_note (insn, REG_RETVAL, NULL_RTX))
|| prev_code == BARRIER))) || prev_code == BARRIER)))
{ {
basic_block_head[++i] = insn; basic_block_head[++i] = insn;
...@@ -577,7 +582,8 @@ find_basic_blocks (f, nonlocal_label_list) ...@@ -577,7 +582,8 @@ find_basic_blocks (f, nonlocal_label_list)
to all the nonlocal goto handler labels. */ to all the nonlocal goto handler labels. */
for (insn = f; insn; insn = NEXT_INSN (insn)) for (insn = f; insn; insn = NEXT_INSN (insn))
if (GET_CODE (insn) == CALL_INSN) if (GET_CODE (insn) == CALL_INSN
&& ! find_reg_note (insn, REG_RETVAL, NULL_RTX))
{ {
for (x = nonlocal_label_list; x; x = XEXP (x, 1)) for (x = nonlocal_label_list; x; x = XEXP (x, 1))
mark_label_ref (gen_rtx (LABEL_REF, VOIDmode, XEXP (x, 0)), mark_label_ref (gen_rtx (LABEL_REF, VOIDmode, XEXP (x, 0)),
......
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