aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorGeoff Keating <geoffk@cygnus.com>2000-08-01 01:27:45 +0000
committerGeoffrey Keating <geoffk@gcc.gnu.org>2000-08-01 01:27:45 +0000
commit1868b439596f4fab73f606bcb00c453a53f30a91 (patch)
tree9aad4d52d8baae4b8ee6b1ebb65362f9a4148c3d /gcc
parent45e84bd9d1c8a1dba39d10fee0b1869c6bd49ec9 (diff)
downloadgcc-1868b439596f4fab73f606bcb00c453a53f30a91.zip
gcc-1868b439596f4fab73f606bcb00c453a53f30a91.tar.gz
gcc-1868b439596f4fab73f606bcb00c453a53f30a91.tar.bz2
flow.c (clear_log_links): Nuke global_live_at_start and global_live_at_end data...
* 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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/flow.c17
2 files changed, 22 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f69814f..d318908 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/flow.c b/gcc/flow.c
index 1bd7fbc..f760019 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -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