mirror of git://gcc.gnu.org/git/gcc.git
cse.c (cse_insn): Delete dead code involving tablejump.
* cse.c (cse_insn): Delete dead code involving tablejump. Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE. From-SVN: r32219
This commit is contained in:
parent
b8d12d7997
commit
4e37e57d14
|
|
@ -1,5 +1,8 @@
|
|||
Sun Feb 27 07:44:17 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||||
|
||||
* cse.c (cse_insn): Delete dead code involving tablejump.
|
||||
Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
|
||||
|
||||
* Makefile.in (libcpp.a): Start by deleting it.
|
||||
|
||||
2000-02-27 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
|
||||
|
|
|
|||
14
gcc/cse.c
14
gcc/cse.c
|
|
@ -5197,17 +5197,6 @@ cse_insn (insn, libcall_insn)
|
|||
|| (GET_CODE (trial) == LABEL_REF
|
||||
&& ! condjump_p (insn))))
|
||||
{
|
||||
/* If TRIAL is a label in front of a jump table, we are
|
||||
really falling through the switch (this is how casesi
|
||||
insns work), so we must branch around the table. */
|
||||
if (GET_CODE (trial) == CODE_LABEL
|
||||
&& NEXT_INSN (trial) != 0
|
||||
&& GET_CODE (NEXT_INSN (trial)) == JUMP_INSN
|
||||
&& (GET_CODE (PATTERN (NEXT_INSN (trial))) == ADDR_DIFF_VEC
|
||||
|| GET_CODE (PATTERN (NEXT_INSN (trial))) == ADDR_VEC))
|
||||
|
||||
trial = gen_rtx_LABEL_REF (Pmode, get_label_after (trial));
|
||||
|
||||
if (trial == pc_rtx)
|
||||
{
|
||||
SET_SRC (sets[i].rtl) = trial;
|
||||
|
|
@ -5215,7 +5204,8 @@ cse_insn (insn, libcall_insn)
|
|||
break;
|
||||
}
|
||||
|
||||
PATTERN (insn) = gen_jump (trial);
|
||||
PATTERN (insn) = gen_jump (XEXP (trial, 0));
|
||||
INSN_CODE (insn) = -1;
|
||||
cse_jumps_altered = 1;
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue