OSDN Git Service

* cse.c (cse_insn): Delete dead code involving tablejump.
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 27 Feb 2000 14:06:15 +0000 (14:06 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 27 Feb 2000 14:06:15 +0000 (14:06 +0000)
Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32219 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/cse.c

index bc3d71d..56925d2 100644 (file)
@@ -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>
index 9611421..944d86f 100644 (file)
--- 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;
            }