Commit 30984c57 by Jakub Jelinek Committed by Jakub Jelinek

re PR rtl-optimization/6086 (Reload misoptimizes DImode PREINC on PPC)

	PR optimization/6086
	* combine.c (combine_simplify_rtx): If simplify_rtx failed because
	of SUBREG of volatile MEM or because the MEM was mode dependent,
	return CLOBBER instead of unmodified SUBREG.

From-SVN: r51606
parent 1540f9eb
2002-03-30 Jakub Jelinek <jakub@redhat.com>
PR optimization/6086
* combine.c (combine_simplify_rtx): If simplify_rtx failed because
of SUBREG of volatile MEM or because the MEM was mode dependent,
return CLOBBER instead of unmodified SUBREG.
Sat Mar 30 14:08:55 CET 2002 Jan Hubicka <jh@suse.cz>
* local-alloc.c (local_alloc): Avoid call of update_equiv_regs when not optimizing.
......
......@@ -3875,6 +3875,13 @@ combine_simplify_rtx (x, op0_mode, last, in_dest)
return temp;
}
/* Don't change the mode of the MEM if that would change the meaning
of the address. */
if (GET_CODE (SUBREG_REG (x)) == MEM
&& (MEM_VOLATILE_P (SUBREG_REG (x))
|| mode_dependent_address_p (XEXP (SUBREG_REG (x), 0))))
return gen_rtx_CLOBBER (mode, const0_rtx);
/* Note that we cannot do any narrowing for non-constants since
we might have been counting on using the fact that some bits were
zero. We now do this in the SET. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment