This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/13722] [3.4/3.5 regression] [ia64] ICE in push_secondary_reload
- From: "rth at redhat dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 22 Jan 2004 22:05:55 -0000
- Subject: [Bug target/13722] [3.4/3.5 regression] [ia64] ICE in push_secondary_reload
- References: <20040117230657.13722.schwab@suse.de>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From rth at redhat dot com 2004-01-22 22:05 -------
Subject: Re: PR 13722 candidate fix
On Thu, Jan 22, 2004 at 12:20:10PM -0800, Zack Weinberg wrote:
> Okay, what is the form of a post_modify expression supposed to be?
My eyes weren't awake, sorry. It's addr = addr + c, not +=.
> (Still looking for a clue about the differences among change_address,
> adjust_address, offset_address, etc.)
change_address can make arbitrary changes to a memory. About
all we assume is that we're pointing to the same object. But
we lose track of offset within the object, and all alignment
not inferrable from the mode of the memory.
adjust_address modifies a memory by adding a HWI to the address.
We get to keep a lot of data about alignment, offset within an
object.
offset_address is similar, except that it takes an rtx.
adjust_automodify_address is like adjust_address in that it
computes new MEM_ATTRS as if adding a HWI to a base address,
except that it allows you to give a completely new rtx for
the address at the same time. The assumption being that the
new rtx is some automodify, but that's not actually checked.
This last is the one you want.
r~
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13722