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:
parent
5e23162d1a
commit
6be85b25c2
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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 \
|
||||
|
|
Loading…
Reference in New Issue