aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>1997-01-29 20:25:29 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>1997-01-29 20:25:29 +0000
commit538fe8cddb437db19ca4bd0b833084e701ef71e1 (patch)
tree634937eb8340075f71bb99f73e363051caeb9524 /gcc
parenta2ec2fadc59a2a51fd87c7276f0399ed09a9c4a0 (diff)
downloadgcc-538fe8cddb437db19ca4bd0b833084e701ef71e1.zip
gcc-538fe8cddb437db19ca4bd0b833084e701ef71e1.tar.gz
gcc-538fe8cddb437db19ca4bd0b833084e701ef71e1.tar.bz2
Add a case where reg_n_refs is cleared
From-SVN: r13561
Diffstat (limited to 'gcc')
-rw-r--r--gcc/combine.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index be5843b..a0f15b3 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -2355,7 +2355,9 @@ try_combine (i3, i2, i1)
/* If the reg formerly set in I2 died only once and that was in I3,
zero its use count so it won't make `reload' do any work. */
- if (! added_sets_2 && newi2pat == 0 && ! i2dest_in_i2src)
+ if (! added_sets_2
+ && (newi2pat == 0 || ! reg_mentioned_p (i2dest, newi2pat))
+ && ! i2dest_in_i2src)
{
regno = REGNO (i2dest);
reg_n_sets[regno]--;