Optimize Span.Copy and Span.TryCopyTo (#15947)
authorLevi Broderick <GrabYourPitchforks@users.noreply.github.com>
Sat, 27 Jan 2018 06:35:46 +0000 (22:35 -0800)
committerGitHub <noreply@github.com>
Sat, 27 Jan 2018 06:35:46 +0000 (22:35 -0800)
commite07292d009d47a4920c19c669796b6893b307ec4
treedf9c54394574bbde175527f104103519f6c4d7a6
parenta6577abdb65713ee02ed2382b618be86177c7634
Optimize Span.Copy and Span.TryCopyTo (#15947)

* Introduce a ref-based version of Buffer.Memmove
* Remove pinning logic from Span.CopyTo
* Tweak flow graph of Span.CopyTo / TryCopyTo in order to encourage better codegen
* Push some uncommon logic (one-element buffers, perfectly overlapping buffers) down to Memmove
src/mscorlib/shared/System/ReadOnlySpan.cs
src/mscorlib/shared/System/Span.NonGeneric.cs
src/mscorlib/shared/System/Span.cs
src/mscorlib/src/System/Buffer.cs