summaryrefslogtreecommitdiff
path: root/gcc/reload1.c
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1994-05-07 21:48:59 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1994-05-07 21:48:59 +0000
commit1f86a2c470d45e25cc23cff67160fd2653a3b4ee (patch)
tree8a514249ad6e10dab2c78f919e09f80a58232095 /gcc/reload1.c
parentec4346a3c869d926808760f802f00b788f8dac2c (diff)
downloadgcc-1f86a2c470d45e25cc23cff67160fd2653a3b4ee.tar.gz
(emit_reload_insns): Don't try to delete output reload if there isn't
one. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7265 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r--gcc/reload1.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 5fb6de501eb..f9ebc3f0012 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -5605,8 +5605,9 @@ emit_reload_insns (insn)
&& spill_reg_store[reload_spill_index[REGNO (oldequiv)]] != 0
&& dead_or_set_p (insn, reload_in[j])
/* This is unsafe if operand occurs more than once in current
- insn. Perhaps some occurrences weren't reloaded. */
- && count_occurrences (PATTERN (insn), reload_in[j]) == 1)
+ insn. Perhaps some occurrences weren't reloaded. */
+ && count_occurrences (PATTERN (insn), reload_in[j]) == 1
+ && spill_reg_store[spill_reg_order[REGNO (oldequiv)]] != 0)
delete_output_reload
(insn, j, spill_reg_store[spill_reg_order[REGNO (oldequiv)]]);