summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2002-05-29 00:25:19 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2002-05-29 00:25:19 +0000
commit9817b015f904778533dfd0fd21a14592e979d9ab (patch)
treee94f8861be9af3da8f2ed69daed6a8e7777f7b2b
parentacba97b8460dc80d747fa20718021da88ecec4d3 (diff)
downloadgcc-9817b015f904778533dfd0fd21a14592e979d9ab.tar.gz
* flow.c (update_life_info_in_dirty_blocks): Only do a partial
update if UPDATE_LIFE_LOCAL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@53978 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/flow.c23
2 files changed, 24 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d124a7debb6..880a2973f73 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,9 @@
-002-05-28 Toshiyasu Morita <toshiyasu.morita@hsa.hitachi.com>
+2002-05-28 Richard Henderson <rth@redhat.com>
+
+ * flow.c (update_life_info_in_dirty_blocks): Only do a partial
+ update if UPDATE_LIFE_LOCAL.
+
+2002-05-28 Toshiyasu Morita <toshiyasu.morita@hsa.hitachi.com>
* config/sh/sh.c: Include real.h for REAL_VALUE_TYPE.
diff --git a/gcc/flow.c b/gcc/flow.c
index 4f13e813759..a9f94a6201f 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);