aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-04-07 22:13:16 +0000
committerRichard Stallman <rms@gnu.org>1993-04-07 22:13:16 +0000
commit8244fc4f48759523b1eb9d4b5ef9d75f5ec1418d (patch)
tree099e22b7c7e6b8a3085e78ba19fca612f1b04548 /gcc
parent84ab931b38ea576576927b27e9b56be80dcfb486 (diff)
downloadgcc-8244fc4f48759523b1eb9d4b5ef9d75f5ec1418d.zip
gcc-8244fc4f48759523b1eb9d4b5ef9d75f5ec1418d.tar.gz
gcc-8244fc4f48759523b1eb9d4b5ef9d75f5ec1418d.tar.bz2
(mark_set_1): Clear reg_next_use for all kinds of regs.
From-SVN: r4041
Diffstat (limited to 'gcc')
-rw-r--r--gcc/flow.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/flow.c b/gcc/flow.c
index 08cf4c5..183f1ad 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -1795,6 +1795,9 @@ mark_set_1 (needed, dead, x, insn, significant)
/* Mark it as as dead before this insn. */
dead[offset] |= bit;
+ /* The next use is no longer "next", since a store intervenes. */
+ reg_next_use[regno] = 0;
+
/* A hard reg in a wide mode may really be multiple registers.
If so, mark all of them just like the first. */
if (regno < FIRST_PSEUDO_REGISTER)
@@ -1863,9 +1866,6 @@ mark_set_1 (needed, dead, x, insn, significant)
reg_live_length[regno]++;
}
- /* The next use is no longer "next", since a store intervenes. */
- reg_next_use[regno] = 0;
-
if (all_needed)
{
/* Make a logical link from the next following insn
@@ -1915,6 +1915,8 @@ mark_set_1 (needed, dead, x, insn, significant)
}
}
}
+ else if (GET_CODE (reg) == REG)
+ reg_next_use[regno] = 0;
/* If this is the last pass and this is a SCRATCH, show it will be dying
here and count it. */