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