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