reload.c (find_reloads): Do not replace a pseudo with (MEM (reg_equiv_addr)) in the...
authorJeff Law <law@gcc.gnu.org>
Fri, 18 Sep 1998 21:54:39 +0000 (15:54 -0600)
committerJeff Law <law@gcc.gnu.org>
Fri, 18 Sep 1998 21:54:39 +0000 (15:54 -0600)
P
        * reload.c (find_reloads): Do not replace a pseudo with
        (MEM (reg_equiv_addr)) in the initializing insn for the
        pseudo.

From-SVN: r22473

gcc/reload.c

index 1aec4fb633bbb040aabd137972c459136a533830..a97357f3bcda7ce44a2385fff8929722b9b5dd8d 100644 (file)
@@ -2673,7 +2673,8 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p)
            substed_operand[i] = recog_operand[i]
              = reg_equiv_mem[regno];
 #endif
-         if (reg_equiv_address[regno] != 0)
+         if (reg_equiv_address[regno] != 0
+             && (set == 0 || &SET_DEST (set) != recog_operand_loc[i]))
            {
              /* If reg_equiv_address is not a constant address, copy it,
                 since it may be shared.  */