aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/tree-ssa-dom.c6
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b5854f7..96146e8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
2017-12-18 Jeff Law <law@redhat.com>
+ * tree-ssa-dom.c (record_equivalences_from_phis): Do not
+ record symbolic equivalences from backedges in the CFG.
+
Revert
2017-11-19 Jeff Law <law@redhat.com>
diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c
index 05bc807..663d07b 100644
--- a/gcc/tree-ssa-dom.c
+++ b/gcc/tree-ssa-dom.c
@@ -1126,6 +1126,12 @@ record_equivalences_from_phis (basic_block bb)
t = dom_valueize (t);
+ /* If T is an SSA_NAME and its associated edge is a backedge,
+ then quit as we can not utilize this equivalence. */
+ if (TREE_CODE (t) == SSA_NAME
+ && (gimple_phi_arg_edge (phi, i)->flags & EDGE_DFS_BACK))
+ break;
+
/* If we have not processed an alternative yet, then set
RHS to this alternative. */
if (rhs == NULL)