From: Richard Kenner Date: Tue, 14 Jun 1994 21:23:53 +0000 (-0400) Subject: (reload_as_needed): Clear spill_reg_store at start. X-Git-Tag: misc/cutover-egcs-0~6489 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c95c07325b76fb61ede1d899a0c65ad573be1cde;p=thirdparty%2Fgcc.git (reload_as_needed): Clear spill_reg_store at start. (emit_reload_insns): Omit erroneous predicate of reload deletion -- reload_spill_index is not indexed by regno. From-SVN: r7454 --- diff --git a/gcc/reload1.c b/gcc/reload1.c index 0b355b548bcb..10afe98bb564 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -3618,6 +3618,7 @@ reload_as_needed (first, live_known) rtx after_call = 0; bzero (spill_reg_rtx, sizeof spill_reg_rtx); + bzero (spill_reg_store, sizeof spill_reg_store); reg_last_reload_reg = (rtx *) alloca (max_regno * sizeof (rtx)); bzero (reg_last_reload_reg, max_regno * sizeof (rtx)); reg_has_output_reload = (char *) alloca (max_regno); @@ -5630,12 +5631,11 @@ emit_reload_insns (insn) if (optimize && GET_CODE (oldequiv) == REG && REGNO (oldequiv) < FIRST_PSEUDO_REGISTER && spill_reg_order[REGNO (oldequiv)] >= 0 - && spill_reg_store[reload_spill_index[REGNO (oldequiv)]] != 0 + && spill_reg_store[spill_reg_order[REGNO (oldequiv)]] != 0 && find_reg_note (insn, REG_DEAD, 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 - && spill_reg_store[spill_reg_order[REGNO (oldequiv)]] != 0) + && count_occurrences (PATTERN (insn), reload_in[j]) == 1) delete_output_reload (insn, j, spill_reg_store[spill_reg_order[REGNO (oldequiv)]]);