Why align all pinned array payloads on 16 bytes?

Ömer Sinan Ağacan omeragacan at gmail.com
Thu Oct 11 17:43:31 UTC 2018


I just found out we currently align all pinned array payloads to 16 bytes and
I'm wondering why. I don't see any comments/notes on this, and it's also not
part of the primop documentation. We also have another primop for aligned
allocation: newAlignedPinnedByteArray#. Given that alignment behavior of
newPinnedByteArray# is not documented and we have another one for aligned
allocation, perhaps we can remove alignment in newPinnedByteArray#.

Does anyone remember what was the motivation for always aligning pinned arrays?



More information about the ghc-devs mailing list