DMD 1.034 and 2.018 releases - Align

Don nospam at nospam.com.au
Mon Aug 11 08:18:34 PDT 2008


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.





More information about the Digitalmars-d-announce mailing list