This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [LTO] Flattening memory expressions?
Hi,
On Thu, 8 Jun 2006, Daniel Berlin wrote:
> >>> with base being either some memory object or an INDIRECT_REF of a
> >>> pointer and be done with that tree code.
> >> So if you have MEM_REF(INDIRECT_REF(a),i,0), you really haven't done
> >> any better in removing recursion :)
> >
> > What type the first operand would be could be a one-bit flag in the
> > MEM_REF itself. I.e. if there's an implicit INDIRECT_REF around the
> > first operand, or not. The important part is only that the target
> > address of that memory reference is computable completely trivially,
> > namely by A + i, where A is either a or &a depending on that flag.
> > And the more important thing anyway is that alias information of this
> > specific mem reference encoded therein.
>
> Not for data dependence it's not. :)
You mean tests based on the actual index vector, instead of the final
offset vector? I still sometimes think that one should be able to
recover the index vector reasonably well, when given only offsets (and
perhaps adjusted bases). It's a tradeoff of having only one way to
express memory accesses (which I find quite sexy) and having to do a
bit more work when trying to get at the offsets.
Ciao,
Michael.