+Thu Jul 12 16:48:54 CEST 2001 Jan Hubicka <jh@suse.cz>
+
+ * flow.c (find_basic_blocks_1): Do not emit NOP after call.
+
+ * flow.c (outgoing_edges_match): Return early if condition reversal
+ failed.
+
2001-07-06 Richard Sandiford <rsandifo@redhat.com>
* config/mips/mips.c (print_operand): Extend '%D' to memory operands.
to a barrier or some such, no need to do it again. */
if (head != NULL_RTX)
{
- /* While we now have edge lists with which other portions of
- the compiler might determine a call ending a basic block
- does not imply an abnormal edge, it will be a bit before
- everything can be updated. So continue to emit a noop at
- the end of such a block. */
- if (GET_CODE (end) == CALL_INSN && ! SIBLING_CALL_P (end))
- {
- rtx nop = gen_rtx_USE (VOIDmode, const0_rtx);
- end = emit_insn_after (nop, end);
- }
-
create_basic_block (i++, head, end, bb_note);
bb_note = NULL_RTX;
}
jump already closed the basic block -- no need to do it again. */
if (head == NULL_RTX)
break;
-
- /* While we now have edge lists with which other portions of the
- compiler might determine a call ending a basic block does not
- imply an abnormal edge, it will be a bit before everything can
- be updated. So continue to emit a noop at the end of such a
- block. */
- if (GET_CODE (end) == CALL_INSN && ! SIBLING_CALL_P (end))
- {
- rtx nop = gen_rtx_USE (VOIDmode, const0_rtx);
- end = emit_insn_after (nop, end);
- }
goto new_bb_exclusive;
case CALL_INSN:
else
code2 = GET_CODE (cond2);
+ if (code2 == UNKNOWN)
+ return false;
+
/* See if we don have (cross) match in the codes and operands. */
match = ((code1 == code2
&& rtx_renumbered_equal_p (XEXP (cond1, 0), XEXP (cond2, 0))