flow.c (find_basic_blocks_1): Do not emit NOP after call.
authorJan Hubicka <jh@suse.cz>
Thu, 12 Jul 2001 14:52:51 +0000 (16:52 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Thu, 12 Jul 2001 14:52:51 +0000 (14:52 +0000)
* 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

gcc/ChangeLog
gcc/flow.c

index e4b982a846353c085f50c4dc87be253ed61f13d0..cc1c003a4a3d01139491e0dd4587b00f7300c80e 100644 (file)
@@ -1,3 +1,10 @@
+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.
index 356433351aeae1cfe9d5c0749b390b17c87c48ac..51fe12ce1563d5ad2dbc469451e8e400c319a0d9 100644 (file)
@@ -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))