summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/gimple-ssa-split-paths.c16
2 files changed, 17 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 66535bf4e3c..22964c87c38 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 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;