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
This commit is contained in:
parent
1540f9ebc4
commit
30984c5791
2 changed files with 14 additions and 0 deletions
|
@ -1,3 +1,10 @@
|
|||
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. */
|
||||
|
|
Loading…
Add table
Reference in a new issue