re PR middle-end/17278 (8% C++ compile-time regression in comparison with 3.4.1 at...
authorSteven Bosscher <stevenb@suse.de>
Thu, 27 Jan 2005 16:32:12 +0000 (16:32 +0000)
committerSteven Bosscher <steven@gcc.gnu.org>
Thu, 27 Jan 2005 16:32:12 +0000 (16:32 +0000)
PR middle-end/17278
* opts.c (decode_options): Move flag_thread_jumps from -O1 and
higher to -O2 and higher.  Likewise for tree PRE.
* tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
and better.

From-SVN: r94325

gcc/ChangeLog
gcc/opts.c
gcc/tree-ssa-dom.c

index 02cf5fef9aa38c78ebffcb3075e73afe109452ed..47c180ec815ce49e3842d4ab74ed8fca91d84a63 100644 (file)
@@ -1,3 +1,11 @@
+2005-01-27  Steven Bosscher  <stevenb@suse.de>
+
+       PR middle-end/17278
+       * opts.c (decode_options): Move flag_thread_jumps from -O1 and
+       higher to -O2 and higher.  Likewise for tree PRE.
+       * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
+       and better.
+
 2005-01-27  Ian Lance Taylor  <ian@c2micro.com>
 
        PR middle-end/19583
index 1dd9da1619d0285cdb165d7ed8e7d8630a0b7813..b5e2930c842fc34dd678b84e9370ba6c45b55561 100644 (file)
@@ -481,7 +481,6 @@ decode_options (unsigned int argc, const char **argv)
   if (optimize >= 1)
     {
       flag_defer_pop = 1;
-      flag_thread_jumps = 1;
 #ifdef DELAY_SLOTS
       flag_delayed_branch = 1;
 #endif
@@ -510,14 +509,12 @@ decode_options (unsigned int argc, const char **argv)
             the condition is satisfied in the first iteration and therefore
             to eliminate it.  Jump threading handles these cases now.  */
          flag_tree_ch = 1;
-          /* PRE tends to generate bigger code.  */
-          flag_tree_pre = 1;
        }
     }
 
   if (optimize >= 2)
     {
+      flag_thread_jumps = 1;
       flag_crossjumping = 1;
       flag_optimize_sibling_calls = 1;
       flag_cse_follow_jumps = 1;
@@ -540,6 +537,12 @@ decode_options (unsigned int argc, const char **argv)
       flag_reorder_blocks = 1;
       flag_reorder_functions = 1;
       flag_unit_at_a_time = 1;
+
+      if (!optimize_size)
+       {
+          /* PRE tends to generate bigger code.  */
+          flag_tree_pre = 1;
+       }
     }
 
   if (optimize >= 3)
index b4929494749d39f0fc71ff81ffd068d7766eafd5..648ee5625ddf58bec9dda4fa0ee05882724f16c9 100644 (file)
@@ -479,7 +479,7 @@ tree_ssa_dominator_optimize (void)
            SSA_NAME_VALUE (name) = NULL;
        }
     }
-  while (cfg_altered);
+  while (optimize > 1 && cfg_altered);
 
   /* Debugging dumps.  */
   if (dump_file && (dump_flags & TDF_STATS))