diff options
author | Steven Bosscher <steven@gcc.gnu.org> | 2004-11-29 20:46:14 +0000 |
---|---|---|
committer | Steven Bosscher <steven@gcc.gnu.org> | 2004-11-29 20:46:14 +0000 |
commit | 6be85b25c2fadc5c1912f4e664d075fa08fa3e15 (patch) | |
tree | 19ff7e4a9275ba4b32556d6dcb4edd68c18e5bf5 /gcc | |
parent | 5e23162d1a2ebf9f9a765f5d8c1c8a1b99a3dfa2 (diff) | |
download | gcc-6be85b25c2fadc5c1912f4e664d075fa08fa3e15.tar.gz |
cfgcleanup.c (outgoing_edges_match, [...]): Remove CASE_DROPS_THROUGH checks, it is never defined.
* 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.
From-SVN: r91488
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 17 | ||||
-rw-r--r-- | gcc/cfgbuild.c | 11 | ||||
-rw-r--r-- | gcc/cfgcleanup.c | 4 | ||||
-rw-r--r-- | gcc/cfglayout.c | 10 | ||||
-rw-r--r-- | gcc/cfgrtl.c | 8 | ||||
-rw-r--r-- | gcc/config/v850/v850.h | 5 | ||||
-rw-r--r-- | gcc/doc/md.texi | 5 | ||||
-rw-r--r-- | gcc/doc/tm.texi | 6 | ||||
-rw-r--r-- | gcc/stmt.c | 8 | ||||
-rw-r--r-- | gcc/system.h | 3 |
10 files changed, 22 insertions, 55 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 54334091193..801ecee75e7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 @@ -802,7 +817,7 @@ 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 diff --git a/gcc/cfgbuild.c b/gcc/cfgbuild.c index 134a984fa76..5761cd2f56e 100644 --- a/gcc/cfgbuild.c +++ b/gcc/cfgbuild.c @@ -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); } } diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c index 373be911eb6..1cb3f2ed86e 100644 --- a/gcc/cfgcleanup.c +++ b/gcc/cfgcleanup.c @@ -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)) diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c index f680eee8794..241e97628e3 100644 --- a/gcc/cfglayout.c +++ b/gcc/cfglayout.c @@ -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 diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c index a439b8d857d..ec92966fb87 100644 --- a/gcc/cfgrtl.c +++ b/gcc/cfgrtl.c @@ -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); diff --git a/gcc/config/v850/v850.h b/gcc/config/v850/v850.h index fe3a659c963..2b67c3f0f3f 100644 --- a/gcc/config/v850/v850.h +++ b/gcc/config/v850/v850.h @@ -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. diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi index 9d7771c2770..9e11e44fd50 100644 --- a/gcc/doc/md.texi +++ b/gcc/doc/md.texi @@ -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 diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 5a044a5a13d..788bc420fc6 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -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. diff --git a/gcc/stmt.c b/gcc/stmt.c index e22ae5aca16..5e3f3649fb3 100644 --- a/gcc/stmt.c +++ b/gcc/stmt.c @@ -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); diff --git a/gcc/system.h b/gcc/system.h index c19f129f6a0..fb6b4850929 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -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 \ |