diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2000-02-27 14:06:15 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2000-02-27 09:06:15 -0500 |
commit | 4e37e57d144fc4d905ae6b235fb637ce259e2c38 (patch) | |
tree | b296a9a09e057ac41c1f2bc8c6596c7096f4dffe /gcc/cse.c | |
parent | b8d12d7997dffb2ff0ab5849fa1a41905aae1bd2 (diff) | |
download | gcc-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.c | 14 |
1 files changed, 2 insertions, 12 deletions
@@ -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; } |