aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-sccvn.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2015-08-13 09:39:50 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2015-08-13 09:39:50 +0000
commit310d5e7d8ce98f214ba4d83c4fd336f2a82565a2 (patch)
tree8944fccac960f218c34750d0637b8cf35ca65c95 /gcc/tree-ssa-sccvn.c
parentd27555bfeeb3f58037d5d399df5ae22c7c90d3fa (diff)
downloadgcc-310d5e7d8ce98f214ba4d83c4fd336f2a82565a2.zip
gcc-310d5e7d8ce98f214ba4d83c4fd336f2a82565a2.tar.gz
gcc-310d5e7d8ce98f214ba4d83c4fd336f2a82565a2.tar.bz2
re PR tree-optimization/67191 (ICE: in before_dom_children, at tree-ssa-sccvn.c:4372)
2015-08-13 Richard Biener <rguenther@suse.de> PR tree-optimization/67191 * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Remove assert we value-numbered last stmts operand because it can validly trigger for unreachable code. * gcc.dg/torture/pr67191.c: New testcase. * g++.dg/torture/pr67191.C: Likewise. From-SVN: r226854
Diffstat (limited to 'gcc/tree-ssa-sccvn.c')
-rw-r--r--gcc/tree-ssa-sccvn.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c
index 73d1070..d4c2b46 100644
--- a/gcc/tree-ssa-sccvn.c
+++ b/gcc/tree-ssa-sccvn.c
@@ -4429,6 +4429,9 @@ sccvn_dom_walker::before_dom_children (basic_block bb)
return;
}
+ if (dump_file && (dump_flags & TDF_DETAILS))
+ fprintf (dump_file, "Visiting BB %d\n", bb->index);
+
/* If we have a single predecessor record the equivalence from a
possible condition on the predecessor edge. */
if (single_pred_p (bb))
@@ -4502,17 +4505,10 @@ sccvn_dom_walker::before_dom_children (basic_block bb)
if (dump_file && (dump_flags & TDF_DETAILS))
{
- fprintf (dump_file, "Visiting stmt ending BB %d: ", bb->index);
+ fprintf (dump_file, "Visiting control stmt ending BB %d: ", bb->index);
print_gimple_stmt (dump_file, stmt, 0, 0);
}
- /* Value-number the last stmts SSA uses. */
- ssa_op_iter i;
- tree op;
- FOR_EACH_SSA_TREE_OPERAND (op, stmt, i, SSA_OP_USE)
- gcc_assert (VN_INFO (op)->visited
- || SSA_NAME_IS_DEFAULT_DEF (op));
-
/* ??? We can even handle stmts with outgoing EH or ABNORMAL edges
if value-numbering can prove they are not reachable. Handling
computed gotos is also possible. */