aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/cfganal.c14
2 files changed, 14 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6efa2c8..37cf2fb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2005-02-21 Jeff Law <law@redhat.com>
+
+ * cfganal.c (find_unreachable_blocks): Manually CSE load of
+ e->dest.
+
2005-02-21 Kazu Hirata <kazu@cs.umass.edu>
* tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
diff --git a/gcc/cfganal.c b/gcc/cfganal.c
index f232253..45e9590 100644
--- a/gcc/cfganal.c
+++ b/gcc/cfganal.c
@@ -308,11 +308,15 @@ find_unreachable_blocks (void)
basic_block b = *--tos;
FOR_EACH_EDGE (e, ei, b->succs)
- if (!(e->dest->flags & BB_REACHABLE))
- {
- *tos++ = e->dest;
- e->dest->flags |= BB_REACHABLE;
- }
+ {
+ basic_block dest = e->dest;
+
+ if (!(dest->flags & BB_REACHABLE))
+ {
+ *tos++ = dest;
+ dest->flags |= BB_REACHABLE;
+ }
+ }
}
free (worklist);