This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]