On 4/4/07, Zdenek Dvorak <[EMAIL PROTECTED]> wrote:
Hello,
> This looks like a very complicated (though very generic) way of
> specifying a memory
> reference. Last time we discussed this I proposed to just have BASE, OFFSET
> and accessed TYPE (and an alias tag of the memory reference). I realize
> this
> doesn't cover accesses to multi-dimensional arrays, but using the
> full-blown scheme
> in place of a simple INDIRECT_REF makes memory usage for the trees go up
> noticable.
by the way, does your claim "using the full-blown scheme... makes memory
usage go up noticeable" mean that you have experimented with some
similar representation? If so, could you please post your
patches/results? Or do you have at least some data regarding how great
part of the tree memory consumption comes from memory references?
No, I didn't do patches or measurements. I just extrapolated that if you want
to handle things like a.x[i].y.z[j] you need to store not only two indices but
either two strides or two types (to extract the stride). So you'd
have (assuming
a flat tree) for example two VECs in the memory reference tree. Together
with the (possibly non-constant) offset and the base these are four pointers
compared to one in a simple INDIRECT_REF.
Maybe we can incrementally create out of all the existing memory reference
two reference trees, one simple that does not handle multi-dimensional array
accesses well and one full-blown one?
Richard.