aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-05-07 17:48:59 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1994-05-07 17:48:59 -0400
commitb87b7ecd734dd4b3713f4b417d968dc55fd04d4d (patch)
tree8a514249ad6e10dab2c78f919e09f80a58232095
parent184ff798d97ce43b1666b4b1e568f62ec61d5219 (diff)
downloadgcc-b87b7ecd734dd4b3713f4b417d968dc55fd04d4d.zip
gcc-b87b7ecd734dd4b3713f4b417d968dc55fd04d4d.tar.gz
gcc-b87b7ecd734dd4b3713f4b417d968dc55fd04d4d.tar.bz2
(emit_reload_insns): Don't try to delete output reload if there isn't
one. From-SVN: r7265
-rw-r--r--gcc/reload1.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 5fb6de5..f9ebc3f 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)]]);