]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
cfgrtl.c (try_redirect_by_replacing_jump): Disable removing tablejumps with no optimi...
authorRichard Henderson <rth@redhat.com>
Thu, 27 Mar 2003 22:25:48 +0000 (14:25 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Thu, 27 Mar 2003 22:25:48 +0000 (14:25 -0800)
        * cfgrtl.c (try_redirect_by_replacing_jump): Disable removing
        tablejumps with no optimization.

From-SVN: r64933

gcc/ChangeLog
gcc/cfgrtl.c

index 9b2fbce0783df2601d2d46653d3e33ccdbc75001..40430f3195ffc44982554a0ecd39d1b3e6a12a86 100644 (file)
@@ -1,3 +1,8 @@
+2003-03-26  Richard Henderson  <rth@redhat.com>
+
+       * cfgrtl.c (try_redirect_by_replacing_jump): Disable removing
+       tablejumps with no optimization.
+
 2003-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
 
        * config/mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define __c99.
index 38158ccc773785a7dbb9abb077f6a7a92239abd3..4f679ef49da27ff5989caffcbc6133080ca7f752 100644 (file)
@@ -665,7 +665,6 @@ try_redirect_by_replacing_jump (e, target)
   edge tmp;
   rtx set;
   int fallthru = 0;
-  rtx table;
 
   /* Verify that all targets will be TARGET.  */
   for (tmp = src->succ; tmp; tmp = tmp->succ_next)
@@ -675,11 +674,7 @@ try_redirect_by_replacing_jump (e, target)
   if (tmp || !onlyjump_p (insn))
     return false;
 
-  if (flow2_completed && JUMP_LABEL (insn)
-      && (table = NEXT_INSN (JUMP_LABEL (insn))) != NULL_RTX
-      && GET_CODE (table) == JUMP_INSN
-      && (GET_CODE (PATTERN (table)) == ADDR_VEC
-         || GET_CODE (PATTERN (table)) == ADDR_DIFF_VEC))
+  if ((!optimize || flow2_completed) && tablejump_p (insn))
     return false;
 
   /* Avoid removing branch with side effects.  */