re PR rtl-optimization/42621 (Computed gotos on AMD 800% slower)
authorSteven Bosscher <steven@gcc.gnu.org>
Sun, 10 Jan 2010 23:31:30 +0000 (23:31 +0000)
committerSteven Bosscher <steven@gcc.gnu.org>
Sun, 10 Jan 2010 23:31:30 +0000 (23:31 +0000)
PR rtl-optimization/42621
* bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
optimizing for size.
(duplicate_computed_gotos): Remove now-redundant check.

From-SVN: r155796

gcc/ChangeLog
gcc/bb-reorder.c

index 708befd48bcd92d17f75baecfb03024913ccf0d9..9761902af4531ebe61583e768f35928b65b1c75a 100644 (file)
@@ -1,3 +1,10 @@
+2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
+
+       PR rtl-optimization/42621
+       * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
+       optimizing for size.
+       (duplicate_computed_gotos): Remove now-redundant check.
+
 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
 
        PR target/37454
index 561d7d0044435bdee903f8359bf9fcf271b2c53a..ebbd517dabdd51b92ca0d50df8295831752b3ed8 100644 (file)
@@ -1981,7 +1981,9 @@ gate_duplicate_computed_gotos (void)
 {
   if (targetm.cannot_modify_jumps_p ())
     return false;
-  return (optimize > 0 && flag_expensive_optimizations);
+  return (optimize > 0
+         && flag_expensive_optimizations
+         && ! optimize_function_for_size_p (cfun));
 }
 
 
@@ -2072,9 +2074,6 @@ duplicate_computed_gotos (void)
          || single_pred_p (single_succ (bb)))
        continue;
 
-      if (!optimize_bb_for_size_p (bb))
-       continue;
-
       /* The successor block has to be a duplication candidate.  */
       if (!bitmap_bit_p (candidates, single_succ (bb)->index))
        continue;