aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-ssa-dom.c16
2 files changed, 5 insertions, 16 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9f1531e..5526fcb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-12-27 Jeff Law <law@redhat.com>
+
+ * tree-ssa-dom.c (thread_across_edge): Remove broken code to
+ avoid threading into a loop.
+
2004-12-27 Richard Henderson <rth@redhat.com>
PR target/17406
diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c
index 81fdb0e..67446b1 100644
--- a/gcc/tree-ssa-dom.c
+++ b/gcc/tree-ssa-dom.c
@@ -686,22 +686,6 @@ thread_across_edge (struct dom_walk_data *walk_data, edge e)
|| TREE_CODE (stmt) == SWITCH_EXPR))
{
tree cond, cached_lhs;
- edge e1;
- edge_iterator ei;
-
- /* Do not forward entry edges into the loop. In the case loop
- has multiple entry edges we may end up in constructing irreducible
- region.
- ??? We may consider forwarding the edges in the case all incoming
- edges forward to the same destination block. */
- if (!e->flags & EDGE_DFS_BACK)
- {
- FOR_EACH_EDGE (e1, ei, e->dest->preds)
- if (e1->flags & EDGE_DFS_BACK)
- break;
- if (e1)
- return;
- }
/* Now temporarily cprop the operands and try to find the resulting
expression in the hash tables. */