aboutsummaryrefslogtreecommitdiff
path: root/gcc/cse.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2000-02-27 14:06:15 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2000-02-27 09:06:15 -0500
commit4e37e57d144fc4d905ae6b235fb637ce259e2c38 (patch)
treeb296a9a09e057ac41c1f2bc8c6596c7096f4dffe /gcc/cse.c
parentb8d12d7997dffb2ff0ab5849fa1a41905aae1bd2 (diff)
downloadgcc-4e37e57d144fc4d905ae6b235fb637ce259e2c38.zip
gcc-4e37e57d144fc4d905ae6b235fb637ce259e2c38.tar.gz
gcc-4e37e57d144fc4d905ae6b235fb637ce259e2c38.tar.bz2
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
Diffstat (limited to 'gcc/cse.c')
-rw-r--r--gcc/cse.c14
1 files changed, 2 insertions, 12 deletions
diff --git a/gcc/cse.c b/gcc/cse.c
index 9611421..944d86f 100644
--- a/gcc/cse.c
+++ b/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;
}