From 4a61be9acc1e0a4d0258f47da59a1463a0e59b8d Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Tue, 21 May 2013 11:59:28 +0000 Subject: [PATCH] re PR tree-optimization/57318 (optimizer takes several seconds on nested loops) 2013-05-21 Richard Biener 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 | 6 ++++++ gcc/tree-ssa-loop-ivcanon.c | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bab6db43cf2..3abc99ce73a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2013-05-21 Richard Biener + + 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 PR tree-optimization/57330 diff --git a/gcc/tree-ssa-loop-ivcanon.c b/gcc/tree-ssa-loop-ivcanon.c index b5751cb7f7f..45774e60dd8 100644 --- a/gcc/tree-ssa-loop-ivcanon.c +++ b/gcc/tree-ssa-loop-ivcanon.c @@ -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)) -- 2.30.2