summaryrefslogtreecommitdiff
path: root/gcc/gimple-ssa-split-paths.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2017-02-24 11:51:33 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2017-02-24 11:51:33 +0000
commitd0815217034cbf58cbe1979f7ad4e173dbed6233 (patch)
tree13354267c217e8b3816898414b86a7814ce416b5 /gcc/gimple-ssa-split-paths.c
parent2af8fd5cdf8a3cb05399af976d6048ef5afa99a8 (diff)
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
Diffstat (limited to 'gcc/gimple-ssa-split-paths.c')
-rw-r--r--gcc/gimple-ssa-split-paths.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/gcc/gimple-ssa-split-paths.c b/gcc/gimple-ssa-split-paths.c
index 0f6b2417d2c..df88c76aa53 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;