Hello,

> > -- base of the reference
> > -- constant offset
> > -- vector of indices
> > -- type of the accessed location
> > -- original tree of the memory reference (or another summary of the
> >       structure of the access, for aliasing purposes)
> > -- flags
> 
> What do you do with Ada COMPONENT_REFs, at a variable offset?

for concreteness, let us consider a.x{offset: n}

I have considered three possibilities
1) making the offset part of the expression for base, i.e., having
   tmp = &a + n
   and reference with base: tmp
2) allowing the offset in the reference to be non-constant, i.e., having
   reference with
   base: &a, offset: n
3) making this offset into an index, i.e, having
   base: &a, indices: (step:1, value: n)

Out of these, I like 3) the most, although it might be fairly expensive
memory-wise (any idea how common the variable offsets are?)

Zdenek

Reply via email to