diff options
author | Richard Biener <rguenther@suse.de> | 2017-02-24 11:51:33 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2017-02-24 11:51:33 +0000 |
commit | d0815217034cbf58cbe1979f7ad4e173dbed6233 (patch) | |
tree | 13354267c217e8b3816898414b86a7814ce416b5 | |
parent | 2af8fd5cdf8a3cb05399af976d6048ef5afa99a8 (diff) | |
download | gcc-d0815217034cbf58cbe1979f7ad4e173dbed6233.zip gcc-d0815217034cbf58cbe1979f7ad4e173dbed6233.tar.gz gcc-d0815217034cbf58cbe1979f7ad4e173dbed6233.tar.bz2 |
re PR tree-optimization/79389 (30% performance regression in SciMark2 MonteCarlo)
2017-02-24 Richard Biener <rguenther@suse.de>
PR tree-optimization/79389
* gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
debug insns.
From-SVN: r245713
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/gimple-ssa-split-paths.c | 16 |
2 files changed, 17 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 66535bf..22964c8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2017-02-24 Richard Biener <rguenther@suse.de> + + PR tree-optimization/79389 + * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip + debug insns. + 2017-02-24 Aldy Hernandez <aldyh@redhat.com> * tree-ssa-loop-niter.c (number_of_iterations_exit): Update diff --git a/gcc/gimple-ssa-split-paths.c b/gcc/gimple-ssa-split-paths.c index 0f6b241..df88c76 100644 --- a/gcc/gimple-ssa-split-paths.c +++ b/gcc/gimple-ssa-split-paths.c @@ -249,6 +249,8 @@ is_feasible_trace (basic_block bb) imm_use_iterator iter2; FOR_EACH_IMM_USE_FAST (use2_p, iter2, gimple_phi_result (stmt)) { + if (is_gimple_debug (USE_STMT (use2_p))) + continue; basic_block use_bb = gimple_bb (USE_STMT (use2_p)); if (use_bb != bb && dominated_by_p (CDI_DOMINATORS, bb, use_bb)) @@ -280,11 +282,15 @@ is_feasible_trace (basic_block bb) use_operand_p use_p; imm_use_iterator iter; FOR_EACH_IMM_USE_FAST (use_p, iter, op) - if (gimple_bb (USE_STMT (use_p)) == bb) - { - found_cprop_opportunity = true; - break; - } + { + if (is_gimple_debug (USE_STMT (use_p))) + continue; + if (gimple_bb (USE_STMT (use_p)) == bb) + { + found_cprop_opportunity = true; + break; + } + } } if (found_cprop_opportunity) break; |