diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cfganal.c | 14 |
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); |