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
This commit is contained in:
Steven Bosscher 2004-11-29 20:46:14 +00:00
parent 5e23162d1a
commit 6be85b25c2
10 changed files with 22 additions and 55 deletions

View 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
@ -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

View 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);
}
}

View 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))

View 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

View 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);

View 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.

View 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

View 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.

View 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);

View 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 \