DMD 1.034 and 2.018 releases - Align
Wayne Anderson
wanderon at comcast.net
Mon Aug 11 11:13:03 PDT 2008
Don Wrote:
> bearophile wrote:
> > Aligned memory for array ops:
> >
> > The MMX (etc), SSE, SSE2, SSE3, SSSE3, SSE4, SSE4.1, SSE4.2, SSE4a, SSE5, AVE instructions require data aligned to 8/16 bytes (and maybe more in the future, the D language has to be flexible for things present in the CPUs 3 years from now), the current array ops of D contain code that manages such problems in the alignment, but I presume properly aligned data may lead to better performance.
> >
> > If the static/dynamic pointers in D aren't guaranteed to be aligned to 8/16 (and in the future maybe 32 bytes) then a syntax may be added to ensure it.
>
> Dynamic and static memory allocation of arrays is guaranteed to be
> aligned to 16 since D1.023.
> Stack-allocated arrays aren't yet aligned. I've added a possible
> solution in bugzilla #2278.
> There'll always be a problem with slicing, though -- if you start a
> slice from an odd index, it's going to be misaligned.
>
>
>
I don't understand that. Doesn't it depend on the size of the data type being stored in the array. If the size of the type being stored is a multiple of 16 shouldn't any slice still be aligned?
More information about the Digitalmars-d-announce
mailing list