OSDN Git Service

* cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge):
authorsteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 29 Nov 2004 20:46:14 +0000 (20:46 +0000)
committersteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 29 Nov 2004 20:46:14 +0000 (20:46 +0000)
Remove CASE_DROPS_THROUGH checks, it is never defined.
* cfglyout.c (fixup_reorder_chain): Likewise.
* cfgrtl.c (rtl_verify_flow_info): Likewise.
* stmt.c (expand_case): Likewise.
* cfgbuild.c (make_edges): Likewise.  Also remove force_fallthru,
it is now always 0.
* system.h (CASE_DROPS_THROUGH): Poison.
* doc/md.texi (casesi): Remove documentation of CASE_DROPS_THROUGH.
* doc/tm.texi (casesi): Remove documentation of CASE_DROPS_THROUGH.

* config/v850/v850.h: Remove commented out CASE_DROPS_THROUGH.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91488 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/cfgbuild.c
gcc/cfgcleanup.c
gcc/cfglayout.c
gcc/cfgrtl.c
gcc/config/v850/v850.h
gcc/doc/md.texi
gcc/doc/tm.texi
gcc/stmt.c
gcc/system.h

index 5433409..801ecee 100644 (file)
@@ -1,3 +1,18 @@
+2004-11-29  Steven Bosscher  <stevenb@suse.de>
+
+       * cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge):
+       Remove CASE_DROPS_THROUGH checks, it is never defined.
+       * cfglyout.c (fixup_reorder_chain): Likewise.
+       * cfgrtl.c (rtl_verify_flow_info): Likewise.
+       * stmt.c (expand_case): Likewise.
+       * cfgbuild.c (make_edges): Likewise.  Also remove force_fallthru,
+       it is now always 0.
+       * system.h (CASE_DROPS_THROUGH): Poison.
+       * doc/md.texi (casesi): Remove documentation of CASE_DROPS_THROUGH.
+       * doc/tm.texi (casesi): Remove documentation of CASE_DROPS_THROUGH.
+
+       * config/v850/v850.h: Remove commented out CASE_DROPS_THROUGH.
+
 2004-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
 
        PR middle-end/18725
        Use amd64 instead of 64.
 
 2004-11-24  Mark Mitchell  <mark@codesourcery.com>
-            Joseph Myers  <joseph@codesourcery.com>
+           Joseph Myers  <joseph@codesourcery.com>
 
        * crtstuff.c (IN_LIBGCC2): Define it.
        (EH_FRAME_SECTION_CONST): Check EH_TABLES_CAN_BE_READ_ONLY
index 134a984..5761cd2 100644 (file)
@@ -269,7 +269,6 @@ make_edges (basic_block min, basic_block max, int update_p)
     {
       rtx insn, x;
       enum rtx_code code;
-      int force_fallthru = 0;
       edge e;
 
       if (LABEL_P (BB_HEAD (bb))
@@ -320,12 +319,6 @@ make_edges (basic_block min, basic_block max, int update_p)
                  && GET_CODE (XEXP (SET_SRC (tmp), 2)) == LABEL_REF)
                make_label_edge (edge_cache, bb,
                                 XEXP (XEXP (SET_SRC (tmp), 2), 0), 0);
-
-#ifdef CASE_DROPS_THROUGH
-             /* Silly VAXen.  The ADDR_VEC is going to be in the way of
-                us naturally detecting fallthru into the next block.  */
-             force_fallthru = 1;
-#endif
            }
 
          /* If this is a computed jump, then mark it as reaching
@@ -398,11 +391,11 @@ make_edges (basic_block min, basic_block max, int update_p)
             && NOTE_LINE_NUMBER (insn) != NOTE_INSN_BASIC_BLOCK)
        insn = NEXT_INSN (insn);
 
-      if (!insn || (bb->next_bb == EXIT_BLOCK_PTR && force_fallthru))
+      if (!insn)
        cached_make_edge (edge_cache, bb, EXIT_BLOCK_PTR, EDGE_FALLTHRU);
       else if (bb->next_bb != EXIT_BLOCK_PTR)
        {
-         if (force_fallthru || insn == BB_HEAD (bb->next_bb))
+         if (insn == BB_HEAD (bb->next_bb))
            cached_make_edge (edge_cache, bb, bb->next_bb, EDGE_FALLTHRU);
        }
     }
index 373be91..1cb3f2e 100644 (file)
@@ -1353,7 +1353,6 @@ outgoing_edges_match (int mode, basic_block bb1, basic_block bb2)
   /* Generic case - we are seeing a computed jump, table jump or trapping
      instruction.  */
 
-#ifndef CASE_DROPS_THROUGH
   /* Check whether there are tablejumps in the end of BB1 and BB2.
      Return true if they are identical.  */
     {
@@ -1427,7 +1426,6 @@ outgoing_edges_match (int mode, basic_block bb1, basic_block bb2)
          return false;
        }
     }
-#endif
 
   /* First ensure that the instructions match.  There may be many outgoing
      edges so this test is generally cheaper.  */
@@ -1565,7 +1563,6 @@ try_crossjump_to_edge (int mode, edge e1, edge e2)
       && (newpos1 != BB_HEAD (src1)))
     return false;
 
-#ifndef CASE_DROPS_THROUGH
   /* Here we know that the insns in the end of SRC1 which are common with SRC2
      will be deleted.
      If we have tablejumps in the end of SRC1 and SRC2
@@ -1596,7 +1593,6 @@ try_crossjump_to_edge (int mode, edge e1, edge e2)
            }
        }
     }
-#endif
 
   /* Avoid splitting if possible.  */
   if (newpos2 == BB_HEAD (src2))
index f680eee..241e976 100644 (file)
@@ -739,21 +739,11 @@ fixup_reorder_chain (void)
            }
          else
            {
-#ifndef CASE_DROPS_THROUGH
              /* Otherwise we have some return, switch or computed
                 jump.  In the 99% case, there should not have been a
                 fallthru edge.  */
              gcc_assert (returnjump_p (bb_end_insn) || !e_fall);
              continue;
-#else
-             if (returnjump_p (bb_end_insn) || !e_fall)
-               continue;
-             /* Except for VAX.  Since we didn't have predication for the
-                tablejump, the fallthru block should not have moved.  */
-             if (bb->rbi->next == e_fall->dest)
-               continue;
-             bb_end_insn = skip_insns_after_block (bb);
-#endif
            }
        }
       else
index a439b8d..ec92966 100644 (file)
@@ -2191,13 +2191,7 @@ rtl_verify_flow_info (void)
          else
            for (insn = NEXT_INSN (BB_END (e->src)); insn != BB_HEAD (e->dest);
                 insn = NEXT_INSN (insn))
-             if (BARRIER_P (insn)
-#ifndef CASE_DROPS_THROUGH
-                 || INSN_P (insn)
-#else
-                 || (INSN_P (insn) && ! JUMP_TABLE_DATA_P (insn))
-#endif
-                 )
+             if (BARRIER_P (insn) || INSN_P (insn))
                {
                  error ("verify_flow_info: Incorrect fallthru %i->%i",
                         e->src->index, e->dest->index);
index fe3a659..2b67c3f 100644 (file)
@@ -1240,11 +1240,6 @@ zbss_section ()                                                          \
    for the index in the tablejump instruction.  */
 #define CASE_VECTOR_MODE (TARGET_BIG_SWITCH ? SImode : HImode)
 
-/* Define this if the case instruction drops through after the table
-   when the index is out of range.  Don't define it if the case insn
-   jumps to the default label instead.  */
-/* #define CASE_DROPS_THROUGH */
-
 /* Define as C expression which evaluates to nonzero if the tablejump
    instruction expects the table to contain offsets from the address of the
    table.
index 9d7771c..9e11e44 100644 (file)
@@ -3500,11 +3500,6 @@ A label that precedes the table itself.
 
 @item
 A label to jump to if the index has a value outside the bounds.
-(If the machine-description macro @code{CASE_DROPS_THROUGH} is defined,
-then an out-of-bounds index drops through to the code following
-the jump table instead of jumping to this label.  In that case,
-this label is not actually used by the @samp{casesi} instruction,
-but it is always provided as an operand.)
 @end enumerate
 
 The table is a @code{addr_vec} or @code{addr_diff_vec} inside of a
index 5a044a5..788bc42 100644 (file)
@@ -8717,12 +8717,6 @@ contain relative addresses only when @option{-fPIC} or @option{-fPIC}
 is in effect.
 @end defmac
 
-@defmac CASE_DROPS_THROUGH
-Define this if control falls through a @code{case} insn when the index
-value is out of range.  This means the specified default-label is
-actually ignored by the @code{case} insn proper.
-@end defmac
-
 @defmac CASE_VALUES_THRESHOLD
 Define this to be the smallest number of different values for which it
 is best to use a jump-table instead of a tree of conditional branches.
index e22ae5a..5e3f364 100644 (file)
@@ -2553,14 +2553,8 @@ expand_case (tree exp)
            emit_jump_insn (gen_rtx_ADDR_VEC (CASE_VECTOR_MODE,
                                              gen_rtvec_v (ncases, labelvec)));
 
-         /* If the case insn drops through the table,
-            after the table we must jump to the default-label.
-            Otherwise record no drop-through after the table.  */
-#ifdef CASE_DROPS_THROUGH
-         emit_jump (default_label);
-#else
+         /* Record no drop-through after the table.  */
          emit_barrier ();
-#endif
        }
 
       before_case = NEXT_INSN (before_case);
index c19f129..fb6b485 100644 (file)
@@ -658,7 +658,8 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
        GDB_INV_REF_REGPARM_STABS_LETTER DBX_MEMPARM_STABS_LETTER          \
        PUT_SDB_SRC_FILE STABS_GCC_MARKER DBX_OUTPUT_FUNCTION_END          \
        DBX_OUTPUT_GCC_MARKER DBX_FINISH_SYMBOL SDB_GENERATE_FAKE          \
-       NON_SAVING_SETJMP TARGET_LATE_RTL_PROLOGUE_EPILOGUE
+       NON_SAVING_SETJMP TARGET_LATE_RTL_PROLOGUE_EPILOGUE                \
+       CASE_DROPS_THROUGH
 
 /* Hooks that are no longer used.  */
  #pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE  \