LDC Runtime Interface
Any D implementation has a rather large runtime implementation, the one in LDC is mostly based on DMD, but with some portability changes.
Functions for arrays
Of particular interest is some of the functions handling arrays. They take and return void[] types, but the length on the array is not in bytes, but number of elements.
These functions are:
- _aaValues
- _aaKeys
- _adReverse
- _adEq
- _adCmp
- _adDupT
- _adSort
_d_newclass
Use _d_allocclass instead. It does not initialize the memory to ClassInfo?.init. LDC tries to put initializations inline whereever possible to give LLVM better optimization opportunities.