aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload1.c
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1998-11-09 02:12:55 +0000
committerJeff Law <law@gcc.gnu.org>1998-11-08 19:12:55 -0700
commita3a24aa619357792a6d06c38156b898350547b45 (patch)
treee4c0cb38cc7057b664d7139c8530cfefbe2c26ad /gcc/reload1.c
parentbfa88f2d891aa26554afecebd63887cb92bb513f (diff)
downloadgcc-a3a24aa619357792a6d06c38156b898350547b45.zip
gcc-a3a24aa619357792a6d06c38156b898350547b45.tar.gz
gcc-a3a24aa619357792a6d06c38156b898350547b45.tar.bz2
reload1.c (delete_output_reload_insn): If a pseudo is set multiple times, then it can not be completely replaced.
* reload1.c (delete_output_reload_insn): If a pseudo is set multiple times, then it can not be completely replaced. Fixes mis-compilation of wave5 in spec92. From-SVN: r23581
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r--gcc/reload1.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 0d587ae..ea8bc1f 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -7931,6 +7931,7 @@ delete_output_reload (insn, j, last_reload_reg)
and forget we had a stack slot for the pseudo. */
if (reload_out[j] != reload_in[j]
&& REG_N_DEATHS (REGNO (reg)) == 1
+ && REG_N_SETS (REGNO (reg)) == 1
&& REG_BASIC_BLOCK (REGNO (reg)) >= 0
&& find_regno_note (insn, REG_DEAD, REGNO (reg)))
{