Commit a3579a47 by Richard Kenner

(find_basic_blocks): When starting new basic block for a CALL_INSN in the…

(find_basic_blocks): When starting new basic block for a CALL_INSN in the presence of nonlocal labels...

(find_basic_blocks): When starting new basic block for a CALL_INSN in
the presence of nonlocal labels, don't get confused with following
CLOBBER.
(flow_analysis): Use same logic as find_basic_block to see when the
insn after a CALL_INSN starts a new basic block.

From-SVN: r6097
parent b258707c
...@@ -341,10 +341,17 @@ flow_analysis (f, nregs, file) ...@@ -341,10 +341,17 @@ flow_analysis (f, nregs, file)
|| (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
/* Ignore a CLOBBER after a CALL_INSN here. */
&& ! (code == INSN
&& GET_CODE (PATTERN (insn)) == CLOBBER))
|| prev_code == BARRIER))) || prev_code == BARRIER)))
i++; i++;
if (code != NOTE) if (code != NOTE
/* Skip a CLOBBER after a CALL_INSN. See similar code in
find_basic_blocks. */
&& ! (prev_code == CALL_INSN
&& code == INSN && GET_CODE (PATTERN (insn)) == CLOBBER))
prev_code = code; prev_code = code;
} }
} }
...@@ -431,7 +438,11 @@ find_basic_blocks (f, nonlocal_label_list) ...@@ -431,7 +438,11 @@ 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
/* Ignore if CLOBBER since we consider this
part of the CALL. See below. */
&& ! (code == INSN
&& GET_CODE (PATTERN (insn)) == CLOBBER))
|| prev_code == BARRIER))) || prev_code == BARRIER)))
{ {
basic_block_head[++i] = insn; basic_block_head[++i] = 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