re PR tree-optimization/57318 (optimizer takes several seconds on nested loops)
authorRichard Biener <rguenther@suse.de>
Tue, 21 May 2013 11:59:28 +0000 (11:59 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Tue, 21 May 2013 11:59:28 +0000 (11:59 +0000)
2013-05-21  Richard Biener  <rguenther@suse.de>

PR tree-optimization/57318
* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
estimate stmts with side-effects as likely eliminated.

From-SVN: r199140

gcc/ChangeLog
gcc/tree-ssa-loop-ivcanon.c

index bab6db4..3abc99c 100644 (file)
@@ -1,5 +1,11 @@
 2013-05-21  Richard Biener  <rguenther@suse.de>
 
+       PR tree-optimization/57318
+       * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
+       estimate stmts with side-effects as likely eliminated.
+
+2013-05-21  Richard Biener  <rguenther@suse.de>
+
        PR tree-optimization/57330
        * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
        preserve the call stmts fntype.
index b5751cb..45774e6 100644 (file)
@@ -257,8 +257,10 @@ tree_estimate_loop_size (struct loop *loop, edge exit, edge edge_to_cancel, stru
 
          /* Look for reasons why we might optimize this stmt away. */
 
+         if (gimple_has_side_effects (stmt))
+           ;
          /* Exit conditional.  */
-         if (exit && body[i] == exit->src
+         else if (exit && body[i] == exit->src
                   && stmt == last_stmt (exit->src))
            {
              if (dump_file && (dump_flags & TDF_DETAILS))