aboutsummaryrefslogtreecommitdiff
path: root/gcc
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
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')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/cse.c14
2 files changed, 5 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bc3d71d..56925d2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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>
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;
}