Index: reload1.c =================================================================== --- reload1.c (revision 162675) +++ reload1.c (working copy) @@ -599,6 +599,8 @@ replace_pseudos_in (rtx *loc, enum machi if (reg_equiv_constant[regno]) *loc = reg_equiv_constant[regno]; + else if (reg_equiv_invariant[regno]) + *loc = reg_equiv_invariant[regno]; else if (reg_equiv_mem[regno]) *loc = reg_equiv_mem[regno]; else if (reg_equiv_address[regno]) @@ -814,6 +816,7 @@ reload (rtx first, int global) last_spill_reg = -1; /* Spill any hard regs that we know we can't eliminate. */ + CLEAR_REG_SET (&spilled_pseudos); CLEAR_HARD_REG_SET (used_spill_regs); /* There can be multiple ways to eliminate a register; they should be listed adjacently.