On 11 April 2007 12:53, Andi Kleen wrote: > Richard Henderson <[EMAIL PROTECTED]> writes: > >> On Tue, Apr 10, 2007 at 11:13:44AM -0700, Ian Lance Taylor wrote: >>> The obvious way to make the proposed tuples position independent would >>> be to use array offsets rather than pointers. >> >> I suggest instead, if we want something like this, that we make >> the references be pc-relative. So something like > > If you go this way (and require special GC/debugger support) you > could as well xor next/prev too and save another field. > > Adding a xor is basically free and much cheaper than any cache miss > from larger data structures.
Using a delta is even better than an XOR, because it remains constant when you relocate the data. > The only thing that wouldn't work is that when you have a pointer > to an arbitary element (without starting from beginning/end first) > you couldn't get previous or next. You need a pointer to two consecutive nodes to act as an iterator. However we already discussed the whole idea upthread and the general feeling was that it's a whole bunch of tricky code for a small saving, so not worth doing in the first iteration. Maybe as a future refinement. See the earlier posts in this thread for the discussion. cheers, DaveK -- Can't think of a witty .sigline today....