The libc memcpy implementation is not optimized for the case of constant count
values (because of the function's interface) and is not inlineable. Using the local
implementation allows us to eliminate the trampoline in the call and optimize for
small constants.
This gives a 4% boost on Prims.
Swift SVN r24131
swift_retain and objc_retain both handle nil already, so we can bypass the generic Optional value witnesses when instantiating Optional on a class type, which happens kind of a lot.
Swift SVN r23613
If, after layout, we recognize that a generic struct or enum instance is POD, we can replace the generic value witnesses in the image with POD ones.
Swift SVN r23609
Set a bit for types that are non-bitwise-takable, and calculate it as part of runtime struct and enum layout. Include 'bitwise takable' as part of the runtime 'is inline' calculation to be consistent with the compile-time policy change in r17008.
Swift SVN r17036