+2018-09-17 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/87328
+ * tree-ssa-sccvn.c (process_bb): Remove assertion about not
+ visiting unexecutable backedges when not iterating.
+ (do_rpo_vn): Mark all edges not executable even when not
+ iterating.
+
2018-09-17 Martin Jambor <mjambor@suse.cz>
PR c/63886
fprintf (dump_file,
"marking outgoing edge %d -> %d executable\n",
e->src->index, e->dest->index);
- gcc_checking_assert (iterate || !(e->flags & EDGE_DFS_BACK));
e->flags |= EDGE_EXECUTABLE;
e->dest->flags |= BB_EXECUTABLE;
}
"marking known outgoing %sedge %d -> %d executable\n",
e->flags & EDGE_DFS_BACK ? "back-" : "",
e->src->index, e->dest->index);
- gcc_checking_assert (iterate || !(e->flags & EDGE_DFS_BACK));
e->flags |= EDGE_EXECUTABLE;
e->dest->flags |= BB_EXECUTABLE;
}
fprintf (dump_file,
"marking outgoing edge %d -> %d executable\n",
e->src->index, e->dest->index);
- gcc_checking_assert (iterate || !(e->flags & EDGE_DFS_BACK));
e->flags |= EDGE_EXECUTABLE;
e->dest->flags |= BB_EXECUTABLE;
}
{
if (e->flags & EDGE_DFS_BACK)
has_backedges = true;
- if (! iterate && (e->flags & EDGE_DFS_BACK))
- e->flags |= EDGE_EXECUTABLE;
- else
- e->flags &= ~EDGE_EXECUTABLE;
+ e->flags &= ~EDGE_EXECUTABLE;
if (e == entry)
continue;
if (bb_to_rpo[e->src->index] > i)