cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps even after reload...
authorGeoffrey Keating <geoffk@apple.com>
Sat, 17 Jan 2004 07:46:49 +0000 (07:46 +0000)
committerGeoffrey Keating <geoffk@gcc.gnu.org>
Sat, 17 Jan 2004 07:46:49 +0000 (07:46 +0000)
* cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
even after reload, just don't remove the actual jump tables.

From-SVN: r76028

gcc/ChangeLog
gcc/cfgrtl.c

index 47112590d000da1f8cf00d000e647e061d21a9e0..b039e860ee2f7d7b4bc99a305c7c1e0d5b764169 100644 (file)
@@ -1,3 +1,8 @@
+2004-01-16  Geoffrey Keating  <geoffk@apple.com>
+
+       * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
+       even after reload, just don't remove the actual jump tables.
+
 2004-01-17  J. Brobecker  <brobecker@gnat.com>
 
        * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
index c1b17455345cebb5775f0fd77f9754f20b3992a1..9bf10f5fd8c28638bed7020ec89ad638a0faa697 100644 (file)
@@ -703,7 +703,7 @@ try_redirect_by_replacing_jump (edge e, basic_block target, bool in_cfglayout)
 
   if (tmp || !onlyjump_p (insn))
     return false;
-  if ((!optimize || reload_completed) && tablejump_p (insn, NULL, NULL))
+  if ((!optimize || flow2_completed) && tablejump_p (insn, NULL, NULL))
     return false;
 
   /* Avoid removing branch with side effects.  */
@@ -793,7 +793,7 @@ try_redirect_by_replacing_jump (edge e, basic_block target, bool in_cfglayout)
       /* Recognize a tablejump that we are converting to a
         simple jump and remove its associated CODE_LABEL
         and ADDR_VEC or ADDR_DIFF_VEC.  */
-      if (tablejump_p (insn, &label, &table))
+      if (! reload_completed && tablejump_p (insn, &label, &table))
        delete_insn_chain (label, table);
 
       barrier = next_nonnote_insn (BB_END (src));