flow.c (update_life_info_in_dirty_blocks): Only do a partial update if UPDATE_LIFE_LOCAL.
authorRichard Henderson <rth@gcc.gnu.org>
Wed, 29 May 2002 00:25:19 +0000 (17:25 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Wed, 29 May 2002 00:25:19 +0000 (17:25 -0700)
        * flow.c (update_life_info_in_dirty_blocks): Only do a partial
        update if UPDATE_LIFE_LOCAL.

From-SVN: r53978

gcc/ChangeLog
gcc/flow.c

index d124a7debb62f8c9a4fdccd487cdf095d012eabe..880a2973f735b06065834070edc1bb43ecc9d414 100644 (file)
@@ -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.
 
index 4f13e813759a6b912572e371665d74f9ed182755..a9f94a6201fec8f2b9282bff5644beb1f506f256 100644 (file)
@@ -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);