From: Jan Hubicka Date: Thu, 12 Jul 2001 14:52:51 +0000 (+0200) Subject: flow.c (find_basic_blocks_1): Do not emit NOP after call. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c35e85f9783adaed94192057083315cffc34dc09;p=gcc.git flow.c (find_basic_blocks_1): Do not emit NOP after call. * flow.c (find_basic_blocks_1): Do not emit NOP after call. * flow.c (outgoing_edges_match): Return early if condition reversal failed. From-SVN: r43965 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e4b982a8463..cc1c003a4a3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +Thu Jul 12 16:48:54 CEST 2001 Jan Hubicka + + * 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 * config/mips/mips.c (print_operand): Extend '%D' to memory operands. diff --git a/gcc/flow.c b/gcc/flow.c index 356433351ae..51fe12ce156 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -859,17 +859,6 @@ find_basic_blocks_1 (f) 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; } @@ -911,17 +900,6 @@ find_basic_blocks_1 (f) 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: @@ -3394,6 +3372,9 @@ outgoing_edges_match (bb1, bb2) 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))