aboutsummaryrefslogtreecommitdiff
path: root/gcc/flow.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@gcc.gnu.org>2002-05-28 17:25:19 -0700
committerRichard Henderson <rth@gcc.gnu.org>2002-05-28 17:25:19 -0700
commite0e577a2d2b95ad57f36ed3e034fef3957c85e1e (patch)
treee94f8861be9af3da8f2ed69daed6a8e7777f7b2b /gcc/flow.c
parent8ea08b7d7bd834782e403121564b9eb2ee6e15a0 (diff)
downloadgcc-e0e577a2d2b95ad57f36ed3e034fef3957c85e1e.zip
gcc-e0e577a2d2b95ad57f36ed3e034fef3957c85e1e.tar.gz
gcc-e0e577a2d2b95ad57f36ed3e034fef3957c85e1e.tar.bz2
flow.c (update_life_info_in_dirty_blocks): Only do a partial update if UPDATE_LIFE_LOCAL.
* flow.c (update_life_info_in_dirty_blocks): Only do a partial update if UPDATE_LIFE_LOCAL. From-SVN: r53978
Diffstat (limited to 'gcc/flow.c')
-rw-r--r--gcc/flow.c23
1 files changed, 18 insertions, 5 deletions
diff --git a/gcc/flow.c b/gcc/flow.c
index 4f13e813..a9f94a6 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -768,11 +768,24 @@ update_life_info_in_dirty_blocks (extent, prop_flags)
sbitmap_zero (update_life_blocks);
FOR_EACH_BB (bb)
- if (bb->flags & BB_DIRTY)
- {
- SET_BIT (update_life_blocks, bb->index);
- n++;
- }
+ {
+ if (extent == UPDATE_LIFE_LOCAL)
+ {
+ if (bb->flags & BB_DIRTY)
+ {
+ SET_BIT (update_life_blocks, bb->index);
+ n++;
+ }
+ }
+ else
+ {
+ /* ??? Bootstrap with -march=pentium4 fails to terminate
+ with only a partial life update. */
+ SET_BIT (update_life_blocks, bb->index);
+ if (bb->flags & BB_DIRTY)
+ n++;
+ }
+ }
if (n)
retval = update_life_info (update_life_blocks, extent, prop_flags);