diff options
author | Richard Biener <rguenther@suse.de> | 2016-05-25 11:49:03 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2016-05-25 11:49:03 +0000 |
commit | 3072d4ea29f3b6b8b1708bd74428db307ee4976e (patch) | |
tree | b9a8f055bf0c9112231afb930cd0db1fa26f8fcb /gcc/tree-if-conv.c | |
parent | a86f2f6f94eeacf73b2f3204a84eda61c15338b3 (diff) | |
download | gcc-3072d4ea29f3b6b8b1708bd74428db307ee4976e.zip gcc-3072d4ea29f3b6b8b1708bd74428db307ee4976e.tar.gz gcc-3072d4ea29f3b6b8b1708bd74428db307ee4976e.tar.bz2 |
re PR tree-optimization/71261 (Trunk GCC hangs on knl and broadwell targets)
2016-05-25 Richard Biener <rguenther@suse.de>
PR tree-optimization/71261
* tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
interesting stmt instead of immediate uses when looking
for the use operand to replace.
* c-c++-common/torture/pr71261.c: New testcase.
From-SVN: r236701
Diffstat (limited to 'gcc/tree-if-conv.c')
-rw-r--r-- | gcc/tree-if-conv.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c index fa0cae6..5914a78 100644 --- a/gcc/tree-if-conv.c +++ b/gcc/tree-if-conv.c @@ -2529,7 +2529,7 @@ ifcvt_split_def_stmt (gimple *def_stmt, gimple *use_stmt) gimple *copy_stmt; gimple_stmt_iterator gsi; use_operand_p use_p; - imm_use_iterator imm_iter; + ssa_op_iter iter; var = gimple_assign_lhs (def_stmt); copy_stmt = gimple_copy (def_stmt); @@ -2548,9 +2548,9 @@ ifcvt_split_def_stmt (gimple *def_stmt, gimple *use_stmt) print_generic_expr (dump_file, lhs, TDF_SLIM); fprintf (dump_file, "\n"); } - FOR_EACH_IMM_USE_FAST (use_p, imm_iter, var) + FOR_EACH_SSA_USE_OPERAND (use_p, use_stmt, iter, SSA_OP_USE) { - if (USE_STMT (use_p) != use_stmt) + if (USE_FROM_PTR (use_p) != var) continue; SET_USE (use_p, lhs); break; |