]> gcc.gnu.org Git - gcc.git/commitdiff
flow.c (clear_log_links): Nuke global_live_at_start and global_live_at_end data...
authorGeoff Keating <geoffk@cygnus.com>
Tue, 1 Aug 2000 01:27:45 +0000 (01:27 +0000)
committerGeoffrey Keating <geoffk@gcc.gnu.org>
Tue, 1 Aug 2000 01:27:45 +0000 (01:27 +0000)
* flow.c (clear_log_links): Nuke global_live_at_start and
global_live_at_end data, since if the log_links stuff is invalid
so is global_live_at_*.

From-SVN: r35396

gcc/ChangeLog
gcc/flow.c

index f69814f5c03be1862f2ec8e7a951eeb52f68f8af..d3189089bdd6622def4d0111f7b2ecd8b51b155d 100644 (file)
@@ -1,3 +1,9 @@
+2000-07-31  Geoff Keating  <geoffk@cygnus.com>
+
+       * flow.c (clear_log_links): Nuke global_live_at_start and
+       global_live_at_end data, since if the log_links stuff is invalid
+       so is global_live_at_*.
+
 2000-07-31  Richard Henderson  <rth@cygnus.com>
 
        * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions.
index 1bd7fbc7e3ef98a1552855340d61d8196c71a655..f760019f98a150d66c065d6fb097df2c849f10f0 100644 (file)
@@ -7760,16 +7760,31 @@ flow_loop_outside_edge_p (loop, e)
 }
 
 
-/* Clear LOG_LINKS fields of insns in a chain.  */
+/* Clear LOG_LINKS fields of insns in a chain.  
+   Also clear the global_live_at_{start,end} fields of the basic block
+   structures.  */
 
 void
 clear_log_links (insns)
      rtx insns;
 {
   rtx i;
+  int b;
+
   for (i = insns; i; i = NEXT_INSN (i))
     if (GET_RTX_CLASS (GET_CODE (i)) == 'i')
       LOG_LINKS (i) = 0;
+
+  for (b = 0; b < n_basic_blocks; b++)
+    {
+      basic_block bb = BASIC_BLOCK (i);
+
+      bb->global_live_at_start = NULL;
+      bb->global_live_at_end = NULL;
+    }
+
+  ENTRY_BLOCK_PTR->global_live_at_end = NULL;
+  EXIT_BLOCK_PTR->global_live_at_start = NULL;
 }
 
 /* Given a register bitmap, turn on the bits in a HARD_REG_SET that
This page took 0.072387 seconds and 5 git commands to generate.