Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[JitDiff X64] [xtqqczze] Avoid Unsafe.As for Memory<T> and ReadOnlyMemory<T> conversion #956

Open
MihuBot opened this issue Jan 28, 2025 · 3 comments

Comments

@MihuBot
Copy link
Owner

MihuBot commented Jan 28, 2025

Job completed in 15 minutes 45 seconds (remote runner delay: 1 minute 24 seconds).
dotnet/runtime#111023

Diffs

Diffs
Found 109 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 43603954
Total bytes of diff: 43606455
Total bytes of delta: 2501 (0.01 % of base)
Total relative delta: 30.88
    diff is a regression.
    relative diff is a regression.


Top file regressions (bytes):
         921 : System.Private.CoreLib.dasm (0.01 % of base)
         605 : System.Security.Cryptography.Pkcs.dasm (0.16 % of base)
         575 : System.Security.Cryptography.dasm (0.05 % of base)
         420 : System.Net.Sockets.dasm (0.16 % of base)
         155 : System.Formats.Tar.dasm (0.12 % of base)
          65 : System.Net.WebSockets.dasm (0.04 % of base)
          56 : System.Net.Ping.dasm (0.11 % of base)
          31 : System.IO.Pipes.dasm (0.08 % of base)
           3 : System.IO.Pipelines.dasm (0.00 % of base)

Top file improvements (bytes):
        -100 : System.Net.ServerSentEvents.dasm (-0.14 % of base)
         -84 : System.Net.Http.dasm (-0.01 % of base)
         -56 : System.Memory.dasm (-0.02 % of base)
         -39 : System.Security.Cryptography.Cose.dasm (-0.06 % of base)
         -18 : System.Text.Json.dasm (-0.00 % of base)
          -8 : Microsoft.Extensions.Logging.Console.dasm (-0.01 % of base)
          -8 : System.Private.Xml.dasm (-0.00 % of base)
          -7 : System.Net.Mail.dasm (-0.00 % of base)
          -4 : System.IO.Compression.dasm (-0.00 % of base)
          -4 : System.Net.HttpListener.dasm (-0.00 % of base)
          -2 : System.Memory.Data.dasm (-0.01 % of base)

20 total files with Code Size differences (11 improved, 9 regressed), 243 unchanged.

Top method regressions (bytes):
         106 (19.96 % of base) : System.Private.CoreLib.dasm - System.IO.MemoryStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          97 (4.87 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader+<WriteWithUnseekableDataStreamAsync>d__86:MoveNext():this (FullOpts)
          94 (14.66 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.UdpClient:SendAsync(System.ReadOnlyMemory`1[ubyte],System.Net.IPEndPoint,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          83 (4.21 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.WebSocket+<ReceiveAsync>d__14:MoveNext():this (FullOpts)
          67 (17.36 % of base) : System.Private.CoreLib.dasm - System.IO.UnmanagedMemoryStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          56 (1.83 % of base) : System.Net.Ping.dasm - System.Net.NetworkInformation.Ping+<SendIcmpEchoRequestOverRawSocketAsync>d__76:MoveNext():this (FullOpts)
          42 (1.29 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.CryptoStream+<ReadAsyncCore>d__44:MoveNext():this (FullOpts)
          41 (18.55 % of base) : System.Private.CoreLib.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle+ThreadPoolValueTaskSource:QueueRead(System.Memory`1[ubyte],long,System.Threading.CancellationToken,System.IO.Strategies.OSFileStreamStrategy):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          41 (57.75 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketAsyncEventArgs:get_Buffer():ubyte[]:this (FullOpts)
          35 (11.01 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:Parse(System.IO.Stream,System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
          34 (12.73 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendAsync(System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          34 (9.83 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendToAsync(System.ReadOnlyMemory`1[ubyte],int,System.Net.EndPoint,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          34 (11.60 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.UdpClient:SendAsync(System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Memory`1[double]:op_Implicit(System.Memory`1[double]):System.ReadOnlyMemory`1[double] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Memory`1[int]:op_Implicit(System.Memory`1[int]):System.ReadOnlyMemory`1[int] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Memory`1[long]:op_Implicit(System.Memory`1[long]):System.ReadOnlyMemory`1[long] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Memory`1[short]:op_Implicit(System.Memory`1[short]):System.ReadOnlyMemory`1[short] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Memory`1[System.__Canon]:op_Implicit(System.Memory`1[System.__Canon]):System.ReadOnlyMemory`1[System.__Canon] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Memory`1[System.Nullable`1[int]]:op_Implicit(System.Memory`1[System.Nullable`1[int]]):System.ReadOnlyMemory`1[System.Nullable`1[int]] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Memory`1[System.Numerics.Vector`1[float]]:op_Implicit(System.Memory`1[System.Numerics.Vector`1[float]]):System.ReadOnlyMemory`1[System.Numerics.Vector`1[float]] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Memory`1[ubyte]:op_Implicit(System.Memory`1[ubyte]):System.ReadOnlyMemory`1[ubyte] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsMemory[double](System.ReadOnlyMemory`1[double]):System.Memory`1[double] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsMemory[int](System.ReadOnlyMemory`1[int]):System.Memory`1[int] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsMemory[long](System.ReadOnlyMemory`1[long]):System.Memory`1[long] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsMemory[short](System.ReadOnlyMemory`1[short]):System.Memory`1[short] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsMemory[System.__Canon](System.ReadOnlyMemory`1[System.__Canon]):System.Memory`1[System.__Canon] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsMemory[System.Nullable`1[int]](System.ReadOnlyMemory`1[System.Nullable`1[int]]):System.Memory`1[System.Nullable`1[int]] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsMemory[System.Numerics.Vector`1[float]](System.ReadOnlyMemory`1[System.Numerics.Vector`1[float]]):System.Memory`1[System.Numerics.Vector`1[float]] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsMemory[ubyte](System.ReadOnlyMemory`1[ubyte]):System.Memory`1[ubyte] (FullOpts)
          32 (1.65 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHelpers+<CopyBytesAsync>d__9:MoveNext():this (FullOpts)
          32 (10.00 % of base) : System.Private.CoreLib.dasm - System.IO.RandomAccess:ReadAsync(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Memory`1[ubyte],long,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int] (FullOpts)
          31 (2.40 % of base) : System.IO.Pipes.dasm - System.IO.Pipes.PipeStream+<WriteAsyncCore>d__83:MoveNext():this (FullOpts)
          30 (6.16 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendAsync(System.ArraySegment`1[ubyte]):System.Threading.Tasks.Task`1[int]:this (FullOpts)
          30 (2.29 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument+<ParseAsyncCore>d__69:MoveNext():this (FullOpts)
          28 (65.12 % of base) : System.Private.CoreLib.dasm - System.MemoryDebugView`1[System.__Canon]:.ctor(System.Memory`1[System.__Canon]):this (FullOpts)
          27 (77.14 % of base) : System.Private.CoreLib.dasm - System.MemoryDebugView`1[double]:.ctor(System.Memory`1[double]):this (FullOpts)
          27 (77.14 % of base) : System.Private.CoreLib.dasm - System.MemoryDebugView`1[int]:.ctor(System.Memory`1[int]):this (FullOpts)
          27 (77.14 % of base) : System.Private.CoreLib.dasm - System.MemoryDebugView`1[long]:.ctor(System.Memory`1[long]):this (FullOpts)
          27 (77.14 % of base) : System.Private.CoreLib.dasm - System.MemoryDebugView`1[short]:.ctor(System.Memory`1[short]):this (FullOpts)
          27 (77.14 % of base) : System.Private.CoreLib.dasm - System.MemoryDebugView`1[System.Nullable`1[int]]:.ctor(System.Memory`1[System.Nullable`1[int]]):this (FullOpts)
          27 (77.14 % of base) : System.Private.CoreLib.dasm - System.MemoryDebugView`1[System.Numerics.Vector`1[float]]:.ctor(System.Memory`1[System.Numerics.Vector`1[float]]):this (FullOpts)
          27 (77.14 % of base) : System.Private.CoreLib.dasm - System.MemoryDebugView`1[ubyte]:.ctor(System.Memory`1[ubyte]):this (FullOpts)
          27 (5.43 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendAsync(System.ArraySegment`1[ubyte],int):System.Threading.Tasks.Task`1[int]:this (FullOpts)
          27 (4.86 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendToAsync(System.ArraySegment`1[ubyte],System.Net.EndPoint):System.Threading.Tasks.Task`1[int]:this (FullOpts)
          27 (5.41 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketTaskExtensions:SendAsync(System.Net.Sockets.Socket,System.ArraySegment`1[ubyte],int):System.Threading.Tasks.Task`1[int] (FullOpts)
          26 (2.02 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader+<WriteWithSeekableDataStreamAsync>d__84:MoveNext():this (FullOpts)
          26 (5.52 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendToAsync(System.ReadOnlyMemory`1[ubyte],int,System.Net.SocketAddress,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          26 (9.06 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[System.__Canon](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.__Canon],byref,byref) (FullOpts)
          26 (9.06 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[System.__Canon](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.__Canon],byref,byref) (FullOpts)
          26 (9.06 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadSubjectPublicKeyInfo[System.__Canon](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.__Canon],byref,byref) (FullOpts)
          26 (9.06 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadSubjectPublicKeyInfo[System.__Canon](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.__Canon],byref,byref) (FullOpts)
          26 (1.97 % of base) : System.Private.CoreLib.dasm - System.Text.TranscodingStream+<<DisposeAsync>g__DisposeAsyncCore|30_0>d:MoveNext():this (FullOpts)
          25 (8.77 % of base) : System.Private.CoreLib.dasm - System.IO.Stream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          25 (4.51 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.NetworkStream:WriteAsync(System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
          24 (8.76 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendAsync(System.ReadOnlyMemory`1[ubyte],int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          24 (8.92 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendAsyncForNetworkStream(System.ReadOnlyMemory`1[ubyte],int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
          24 (7.21 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendToAsync(System.ReadOnlyMemory`1[ubyte],System.Net.EndPoint,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          24 (8.70 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketTaskExtensions:SendAsync(System.Net.Sockets.Socket,System.ReadOnlyMemory`1[ubyte],int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int] (FullOpts)
          24 (3.59 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.SignedCms:Decode(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
          20 (3.43 % of base) : System.Private.CoreLib.dasm - System.IO.TextReader:ReadAsync(System.Memory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          20 (3.43 % of base) : System.Private.CoreLib.dasm - System.IO.TextReader:ReadBlockAsync(System.Memory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[double](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[double],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[double](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[double],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[double](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[double],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[double](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[double],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[int](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[int],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[int](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[int],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[int](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[int],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[int](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[int],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[long](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[long],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[long](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[long],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[long](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[long],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[long](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[long],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[short](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[short],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[short](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[short],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[short](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[short],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[short](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[short],byref,byref) (FullOpts)
          20 (5.45 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.__Canon](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.__Canon],byref,byref) (FullOpts)
          20 (5.45 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.__Canon](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.__Canon],byref,byref) (FullOpts)
          20 (5.48 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.__Canon](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.__Canon],byref,byref) (FullOpts)
          20 (5.48 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.__Canon](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.__Canon],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Nullable`1[int]](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Nullable`1[int]],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Nullable`1[int]](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Nullable`1[int]],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Nullable`1[int]](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Nullable`1[int]],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Nullable`1[int]](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Nullable`1[int]],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Numerics.Vector`1[float]](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Numerics.Vector`1[float]],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Numerics.Vector`1[float]](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Numerics.Vector`1[float]],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Numerics.Vector`1[float]](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Numerics.Vector`1[float]],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Numerics.Vector`1[float]](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Numerics.Vector`1[float]],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[ubyte](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[ubyte],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[ubyte](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[ubyte],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[ubyte](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[ubyte],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[ubyte](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[ubyte],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[double](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[double],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[double](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[double],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[int](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[int],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[int](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[int],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[long](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[long],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[long](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[long],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[short](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[short],byref,byref) (FullOpts)

Top method improvements (bytes):
        -161 (-10.76 % of base) : System.Private.CoreLib.dasm - System.IO.File+<InternalReadAllBytesAsync>d__100:MoveNext():this (FullOpts)
        -135 (-4.86 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketPal+<SendPacketsAsync>d__84:MoveNext():this (FullOpts)
         -18 (-0.62 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+<SendCloseFrameAsync>d__70:MoveNext():this (FullOpts)
         -17 (-0.42 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+Http2Stream+<SendRequestBodyAsync>d__45:MoveNext():this (FullOpts)
         -17 (-0.57 % of base) : System.Net.Http.dasm - System.Net.Http.Http3RequestStream+<SendContentAsync>d__31:MoveNext():this (FullOpts)
         -17 (-0.49 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:TryParseValue(byref,byref,ubyte,ubyte):ubyte (FullOpts)
         -16 (-0.57 % of base) : System.Net.Http.dasm - System.Net.Http.Http3RequestStream+<WriteRequestContentAsync>d__32:MoveNext():this (FullOpts)
         -15 (-0.73 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.CryptoStream+<CopyToAsyncInternal>d__56:MoveNext():this (FullOpts)
         -13 (-0.53 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+<SetupAsync>d__54:MoveNext():this (FullOpts)
         -12 (-0.37 % of base) : System.Net.ServerSentEvents.dasm - System.Net.ServerSentEvents.SseFormatter+<WriteAsyncCore>d__3`1[double]:MoveNext():this (FullOpts)
         -12 (-0.37 % of base) : System.Net.ServerSentEvents.dasm - System.Net.ServerSentEvents.SseFormatter+<WriteAsyncCore>d__3`1[int]:MoveNext():this (FullOpts)
         -12 (-0.37 % of base) : System.Net.ServerSentEvents.dasm - System.Net.ServerSentEvents.SseFormatter+<WriteAsyncCore>d__3`1[long]:MoveNext():this (FullOpts)
         -12 (-0.37 % of base) : System.Net.ServerSentEvents.dasm - System.Net.ServerSentEvents.SseFormatter+<WriteAsyncCore>d__3`1[short]:MoveNext():this (FullOpts)
         -12 (-0.29 % of base) : System.Net.ServerSentEvents.dasm - System.Net.ServerSentEvents.SseFormatter+<WriteAsyncCore>d__3`1[System.__Canon]:MoveNext():this (FullOpts)
         -12 (-0.37 % of base) : System.Net.ServerSentEvents.dasm - System.Net.ServerSentEvents.SseFormatter+<WriteAsyncCore>d__3`1[System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -12 (-0.36 % of base) : System.Net.ServerSentEvents.dasm - System.Net.ServerSentEvents.SseFormatter+<WriteAsyncCore>d__3`1[System.Numerics.Vector`1[float]]:MoveNext():this (FullOpts)
         -12 (-0.37 % of base) : System.Net.ServerSentEvents.dasm - System.Net.ServerSentEvents.SseFormatter+<WriteAsyncCore>d__3`1[ubyte]:MoveNext():this (FullOpts)
         -12 (-0.98 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[double](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[double],byref,byref) (FullOpts)
         -12 (-0.94 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[double](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[double],byref,byref) (FullOpts)
         -12 (-0.98 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[int](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[int],byref,byref) (FullOpts)
         -12 (-0.94 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[int](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[int],byref,byref) (FullOpts)
         -12 (-0.98 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[long](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[long],byref,byref) (FullOpts)
         -12 (-0.94 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[long](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[long],byref,byref) (FullOpts)
         -12 (-0.98 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[short](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[short],byref,byref) (FullOpts)
         -12 (-0.94 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[short](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[short],byref,byref) (FullOpts)
         -12 (-0.95 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.__Canon](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.__Canon],byref,byref) (FullOpts)
         -12 (-0.91 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.__Canon](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.__Canon],byref,byref) (FullOpts)
         -12 (-0.98 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Nullable`1[int]](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Nullable`1[int]],byref,byref) (FullOpts)
         -12 (-0.94 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Nullable`1[int]](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Nullable`1[int]],byref,byref) (FullOpts)
         -12 (-0.97 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Numerics.Vector`1[float]](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Numerics.Vector`1[float]],byref,byref) (FullOpts)
         -12 (-0.93 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Numerics.Vector`1[float]](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Numerics.Vector`1[float]],byref,byref) (FullOpts)
         -12 (-0.98 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[ubyte](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[ubyte],byref,byref) (FullOpts)
         -12 (-0.94 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[ubyte](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[ubyte],byref,byref) (FullOpts)
          -8 (-8.89 % of base) : System.Memory.dasm - System.Buffers.ArrayBufferWriter`1[double]:get_WrittenMemory():System.ReadOnlyMemory`1[double]:this (FullOpts)
          -8 (-8.89 % of base) : System.Memory.dasm - System.Buffers.ArrayBufferWriter`1[int]:get_WrittenMemory():System.ReadOnlyMemory`1[int]:this (FullOpts)
          -8 (-8.89 % of base) : System.Memory.dasm - System.Buffers.ArrayBufferWriter`1[long]:get_WrittenMemory():System.ReadOnlyMemory`1[long]:this (FullOpts)
          -8 (-8.89 % of base) : System.Memory.dasm - System.Buffers.ArrayBufferWriter`1[short]:get_WrittenMemory():System.ReadOnlyMemory`1[short]:this (FullOpts)
          -8 (-8.89 % of base) : System.Memory.dasm - System.Buffers.ArrayBufferWriter`1[System.Nullable`1[int]]:get_WrittenMemory():System.ReadOnlyMemory`1[System.Nullable`1[int]]:this (FullOpts)
          -8 (-8.89 % of base) : System.Memory.dasm - System.Buffers.ArrayBufferWriter`1[System.Numerics.Vector`1[float]]:get_WrittenMemory():System.ReadOnlyMemory`1[System.Numerics.Vector`1[float]]:this (FullOpts)
          -8 (-8.89 % of base) : System.Memory.dasm - System.Buffers.ArrayBufferWriter`1[ubyte]:get_WrittenMemory():System.ReadOnlyMemory`1[ubyte]:this (FullOpts)
          -8 (-3.65 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:InternalCopyToAsync(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
          -8 (-3.07 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderValue:FromBytes(System.ReadOnlySpan`1[ubyte]):System.Security.Cryptography.Cose.CoseHeaderValue (FullOpts)
          -8 (-2.37 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderValue:FromBytes(ubyte[]):System.Security.Cryptography.Cose.CoseHeaderValue (FullOpts)
          -8 (-0.57 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonWriter+<FlushAsync>d__78:MoveNext():this (FullOpts)
          -8 (-0.51 % of base) : System.Private.Xml.dasm - System.Xml.XmlEncodedRawTextWriter+<EncodeCharsAsync>d__122:MoveNext():this (FullOpts)
          -7 (-0.52 % of base) : System.Net.Mail.dasm - System.Net.Mime.QuotedPrintableStream+<FlushAsync>d__26:MoveNext():this (FullOpts)
          -7 (-0.58 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseMultiSignMessage+<CreateCoseMultiSignMessageAsync>d__20:MoveNext():this (FullOpts)
          -7 (-2.33 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509CertificateLoader+CertKeyMatcher:ExtractPublicKey(byref,System.Security.Cryptography.AsymmetricAlgorithm,int) (FullOpts)
          -5 (-2.96 % of base) : System.Net.Http.dasm - System.Net.Http.Http3RequestStream:FlushSendBufferAsync(ubyte,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
          -5 (-0.45 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:Parse(System.Buffers.ReadOnlySequence`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
          -5 (-0.92 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlyMemory`1[ushort],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
          -4 (-3.81 % of base) : System.IO.Compression.dasm - System.IO.Compression.Inflater:SetInput(ubyte[],int,int):this (FullOpts)
          -4 (-1.15 % of base) : System.Net.Http.dasm - System.Net.Http.Http3RequestStream+Http3WriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
          -4 (-3.60 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:get_RemainingBuffer():System.ReadOnlyMemory`1[ubyte]:this (FullOpts)
          -4 (-0.39 % of base) : System.Net.HttpListener.dasm - System.Net.HttpResponseStream+<InternalWriteIgnoreErrorsAsync>d__37:MoveNext():this (FullOpts)
          -4 (-3.70 % of base) : System.Net.ServerSentEvents.dasm - System.Net.ServerSentEvents.PooledByteBufferWriter:get_WrittenMemory():System.ReadOnlyMemory`1[ubyte]:this (FullOpts)
          -4 (-3.70 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderValue:Encode(System.Formats.Cbor.CborWriter):System.ReadOnlyMemory`1[ubyte] (FullOpts)
          -4 (-1.63 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderValue:FromInt32(int):System.Security.Cryptography.Cose.CoseHeaderValue (FullOpts)
          -4 (-1.25 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderValue:FromString(System.String):System.Security.Cryptography.Cose.CoseHeaderValue (FullOpts)
          -4 (-2.48 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:ParseRented(System.Text.Json.PooledByteBufferWriter,System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
          -4 (-0.74 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:WriteDocument[double](byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[double]):System.Text.Json.JsonDocument (FullOpts)
          -4 (-0.74 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:WriteDocument[int](byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[int]):System.Text.Json.JsonDocument (FullOpts)
          -4 (-0.74 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:WriteDocument[long](byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[long]):System.Text.Json.JsonDocument (FullOpts)
          -4 (-0.74 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:WriteDocument[short](byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[short]):System.Text.Json.JsonDocument (FullOpts)
          -4 (-0.74 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:WriteDocument[System.__Canon](byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.__Canon]):System.Text.Json.JsonDocument (FullOpts)
          -4 (-0.74 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:WriteDocument[System.Nullable`1[int]](byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Nullable`1[int]]):System.Text.Json.JsonDocument (FullOpts)
          -4 (-0.74 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:WriteDocument[System.Numerics.Vector`1[float]](byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Numerics.Vector`1[float]]):System.Text.Json.JsonDocument (FullOpts)
          -4 (-0.74 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:WriteDocument[ubyte](byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[ubyte]):System.Text.Json.JsonDocument (FullOpts)
          -4 (-0.75 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:WriteDocumentAsObject(System.Object,System.Text.Json.Serialization.Metadata.JsonTypeInfo):System.Text.Json.JsonDocument (FullOpts)
          -4 (-3.70 % of base) : System.Text.Json.dasm - System.Text.Json.PooledByteBufferWriter:get_WrittenMemory():System.ReadOnlyMemory`1[ubyte]:this (FullOpts)
          -4 (-3.70 % of base) : Microsoft.Extensions.Logging.Console.dasm - System.Text.Json.PooledByteBufferWriter:get_WrittenMemory():System.ReadOnlyMemory`1[ubyte]:this (FullOpts)
          -4 (-0.37 % of base) : System.Text.Json.dasm - System.Text.Json.PooledByteBufferWriter+<FlushAsync>d__20:MoveNext():this (FullOpts)
          -4 (-0.37 % of base) : Microsoft.Extensions.Logging.Console.dasm - System.Text.Json.PooledByteBufferWriter+<FlushAsync>d__20:MoveNext():this (FullOpts)
          -2 (-0.13 % of base) : System.Memory.Data.dasm - System.BinaryData+<FromStreamAsync>d__32:MoveNext():this (FullOpts)
          -2 (-0.58 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderMap:Add(System.Security.Cryptography.Cose.CoseHeaderLabel,int):this (FullOpts)
          -2 (-0.57 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderMap:Add(System.Security.Cryptography.Cose.CoseHeaderLabel,System.ReadOnlySpan`1[ubyte]):this (FullOpts)
          -1 (-0.06 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+<FlushOutgoingBytesAsync>d__60:MoveNext():this (FullOpts)
          -1 (-0.18 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:BeginSendTo(ubyte[],int,int,int,System.Net.EndPoint,System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts)
          -1 (-0.36 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.CryptoStream:WriteAsync(ubyte[],int,int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)

Top method regressions (percentages):
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Memory`1[double]:op_Implicit(System.Memory`1[double]):System.ReadOnlyMemory`1[double] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Memory`1[int]:op_Implicit(System.Memory`1[int]):System.ReadOnlyMemory`1[int] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Memory`1[long]:op_Implicit(System.Memory`1[long]):System.ReadOnlyMemory`1[long] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Memory`1[short]:op_Implicit(System.Memory`1[short]):System.ReadOnlyMemory`1[short] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Memory`1[System.__Canon]:op_Implicit(System.Memory`1[System.__Canon]):System.ReadOnlyMemory`1[System.__Canon] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Memory`1[System.Nullable`1[int]]:op_Implicit(System.Memory`1[System.Nullable`1[int]]):System.ReadOnlyMemory`1[System.Nullable`1[int]] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Memory`1[System.Numerics.Vector`1[float]]:op_Implicit(System.Memory`1[System.Numerics.Vector`1[float]]):System.ReadOnlyMemory`1[System.Numerics.Vector`1[float]] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Memory`1[ubyte]:op_Implicit(System.Memory`1[ubyte]):System.ReadOnlyMemory`1[ubyte] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsMemory[double](System.ReadOnlyMemory`1[double]):System.Memory`1[double] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsMemory[int](System.ReadOnlyMemory`1[int]):System.Memory`1[int] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsMemory[long](System.ReadOnlyMemory`1[long]):System.Memory`1[long] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsMemory[short](System.ReadOnlyMemory`1[short]):System.Memory`1[short] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsMemory[System.__Canon](System.ReadOnlyMemory`1[System.__Canon]):System.Memory`1[System.__Canon] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsMemory[System.Nullable`1[int]](System.ReadOnlyMemory`1[System.Nullable`1[int]]):System.Memory`1[System.Nullable`1[int]] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsMemory[System.Numerics.Vector`1[float]](System.ReadOnlyMemory`1[System.Numerics.Vector`1[float]]):System.Memory`1[System.Numerics.Vector`1[float]] (FullOpts)
          33 (113.79 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.MemoryMarshal:AsMemory[ubyte](System.ReadOnlyMemory`1[ubyte]):System.Memory`1[ubyte] (FullOpts)
          27 (77.14 % of base) : System.Private.CoreLib.dasm - System.MemoryDebugView`1[double]:.ctor(System.Memory`1[double]):this (FullOpts)
          27 (77.14 % of base) : System.Private.CoreLib.dasm - System.MemoryDebugView`1[int]:.ctor(System.Memory`1[int]):this (FullOpts)
          27 (77.14 % of base) : System.Private.CoreLib.dasm - System.MemoryDebugView`1[long]:.ctor(System.Memory`1[long]):this (FullOpts)
          27 (77.14 % of base) : System.Private.CoreLib.dasm - System.MemoryDebugView`1[short]:.ctor(System.Memory`1[short]):this (FullOpts)
          27 (77.14 % of base) : System.Private.CoreLib.dasm - System.MemoryDebugView`1[System.Nullable`1[int]]:.ctor(System.Memory`1[System.Nullable`1[int]]):this (FullOpts)
          27 (77.14 % of base) : System.Private.CoreLib.dasm - System.MemoryDebugView`1[System.Numerics.Vector`1[float]]:.ctor(System.Memory`1[System.Numerics.Vector`1[float]]):this (FullOpts)
          27 (77.14 % of base) : System.Private.CoreLib.dasm - System.MemoryDebugView`1[ubyte]:.ctor(System.Memory`1[ubyte]):this (FullOpts)
          28 (65.12 % of base) : System.Private.CoreLib.dasm - System.MemoryDebugView`1[System.__Canon]:.ctor(System.Memory`1[System.__Canon]):this (FullOpts)
          41 (57.75 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketAsyncEventArgs:get_Buffer():ubyte[]:this (FullOpts)
         106 (19.96 % of base) : System.Private.CoreLib.dasm - System.IO.MemoryStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          41 (18.55 % of base) : System.Private.CoreLib.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle+ThreadPoolValueTaskSource:QueueRead(System.Memory`1[ubyte],long,System.Threading.CancellationToken,System.IO.Strategies.OSFileStreamStrategy):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          67 (17.36 % of base) : System.Private.CoreLib.dasm - System.IO.UnmanagedMemoryStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          94 (14.66 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.UdpClient:SendAsync(System.ReadOnlyMemory`1[ubyte],System.Net.IPEndPoint,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          34 (12.73 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendAsync(System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          34 (11.60 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.UdpClient:SendAsync(System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          35 (11.01 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:Parse(System.IO.Stream,System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
          32 (10.00 % of base) : System.Private.CoreLib.dasm - System.IO.RandomAccess:ReadAsync(Microsoft.Win32.SafeHandles.SafeFileHandle,System.Memory`1[ubyte],long,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int] (FullOpts)
          34 (9.83 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendToAsync(System.ReadOnlyMemory`1[ubyte],int,System.Net.EndPoint,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          26 (9.06 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[System.__Canon](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.__Canon],byref,byref) (FullOpts)
          26 (9.06 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[System.__Canon](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.__Canon],byref,byref) (FullOpts)
          26 (9.06 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadSubjectPublicKeyInfo[System.__Canon](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.__Canon],byref,byref) (FullOpts)
          26 (9.06 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadSubjectPublicKeyInfo[System.__Canon](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.__Canon],byref,byref) (FullOpts)
          24 (8.92 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendAsyncForNetworkStream(System.ReadOnlyMemory`1[ubyte],int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
          25 (8.77 % of base) : System.Private.CoreLib.dasm - System.IO.Stream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          24 (8.76 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendAsync(System.ReadOnlyMemory`1[ubyte],int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[double](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[double],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[double](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[double],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[int](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[int],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[int](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[int],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[long](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[long],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[long](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[long],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[short](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[short],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[short](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[short],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[System.Nullable`1[int]](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Nullable`1[int]],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[System.Nullable`1[int]](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Nullable`1[int]],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[System.Numerics.Vector`1[float]](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Numerics.Vector`1[float]],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[System.Numerics.Vector`1[float]](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Numerics.Vector`1[float]],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[ubyte](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[ubyte],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadPkcs8[ubyte](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[ubyte],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadSubjectPublicKeyInfo[double](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[double],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadSubjectPublicKeyInfo[double](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[double],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadSubjectPublicKeyInfo[int](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[int],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadSubjectPublicKeyInfo[int](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[int],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadSubjectPublicKeyInfo[long](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[long],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadSubjectPublicKeyInfo[long](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[long],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadSubjectPublicKeyInfo[short](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[short],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadSubjectPublicKeyInfo[short](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[short],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadSubjectPublicKeyInfo[System.Nullable`1[int]](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Nullable`1[int]],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadSubjectPublicKeyInfo[System.Nullable`1[int]](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Nullable`1[int]],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadSubjectPublicKeyInfo[System.Numerics.Vector`1[float]](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Numerics.Vector`1[float]],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadSubjectPublicKeyInfo[System.Numerics.Vector`1[float]](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Numerics.Vector`1[float]],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadSubjectPublicKeyInfo[ubyte](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[ubyte],byref,byref) (FullOpts)
          20 (8.73 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadSubjectPublicKeyInfo[ubyte](System.String[],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[ubyte],byref,byref) (FullOpts)
          24 (8.70 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketTaskExtensions:SendAsync(System.Net.Sockets.Socket,System.ReadOnlyMemory`1[ubyte],int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int] (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[double](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[double],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[double](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[double],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[int](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[int],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[int](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[int],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[long](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[long],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[long](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[long],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[short](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[short],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[short](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[short],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Nullable`1[int]](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Nullable`1[int]],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Nullable`1[int]](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Nullable`1[int]],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Numerics.Vector`1[float]](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Numerics.Vector`1[float]],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Numerics.Vector`1[float]](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Numerics.Vector`1[float]],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[ubyte](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[ubyte],byref,byref) (FullOpts)
          20 (7.49 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[ubyte](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[ubyte],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[double](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[double],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[double](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[double],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[int](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[int],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[int](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[int],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[long](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[long],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[long](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[long],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[short](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[short],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[short](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[short],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Nullable`1[int]](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Nullable`1[int]],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Nullable`1[int]](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Nullable`1[int]],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Numerics.Vector`1[float]](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Numerics.Vector`1[float]],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Numerics.Vector`1[float]](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Numerics.Vector`1[float]],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[ubyte](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[ubyte],byref,byref) (FullOpts)
          20 (7.46 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[ubyte](System.String[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[ubyte],byref,byref) (FullOpts)
          24 (7.21 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendToAsync(System.ReadOnlyMemory`1[ubyte],System.Net.EndPoint,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
          30 (6.16 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendAsync(System.ArraySegment`1[ubyte]):System.Threading.Tasks.Task`1[int]:this (FullOpts)

Top method improvements (percentages):
        -161 (-10.76 % of base) : System.Private.CoreLib.dasm - System.IO.File+<InternalReadAllBytesAsync>d__100:MoveNext():this (FullOpts)
          -8 (-8.89 % of base) : System.Memory.dasm - System.Buffers.ArrayBufferWriter`1[double]:get_WrittenMemory():System.ReadOnlyMemory`1[double]:this (FullOpts)
          -8 (-8.89 % of base) : System.Memory.dasm - System.Buffers.ArrayBufferWriter`1[int]:get_WrittenMemory():System.ReadOnlyMemory`1[int]:this (FullOpts)
          -8 (-8.89 % of base) : System.Memory.dasm - System.Buffers.ArrayBufferWriter`1[long]:get_WrittenMemory():System.ReadOnlyMemory`1[long]:this (FullOpts)
          -8 (-8.89 % of base) : System.Memory.dasm - System.Buffers.ArrayBufferWriter`1[short]:get_WrittenMemory():System.ReadOnlyMemory`1[short]:this (FullOpts)
          -8 (-8.89 % of base) : System.Memory.dasm - System.Buffers.ArrayBufferWriter`1[System.Nullable`1[int]]:get_WrittenMemory():System.ReadOnlyMemory`1[System.Nullable`1[int]]:this (FullOpts)
          -8 (-8.89 % of base) : System.Memory.dasm - System.Buffers.ArrayBufferWriter`1[System.Numerics.Vector`1[float]]:get_WrittenMemory():System.ReadOnlyMemory`1[System.Numerics.Vector`1[float]]:this (FullOpts)
          -8 (-8.89 % of base) : System.Memory.dasm - System.Buffers.ArrayBufferWriter`1[ubyte]:get_WrittenMemory():System.ReadOnlyMemory`1[ubyte]:this (FullOpts)
        -135 (-4.86 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketPal+<SendPacketsAsync>d__84:MoveNext():this (FullOpts)
          -4 (-3.81 % of base) : System.IO.Compression.dasm - System.IO.Compression.Inflater:SetInput(ubyte[],int,int):this (FullOpts)
          -4 (-3.70 % of base) : System.Net.ServerSentEvents.dasm - System.Net.ServerSentEvents.PooledByteBufferWriter:get_WrittenMemory():System.ReadOnlyMemory`1[ubyte]:this (FullOpts)
          -4 (-3.70 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderValue:Encode(System.Formats.Cbor.CborWriter):System.ReadOnlyMemory`1[ubyte] (FullOpts)
          -4 (-3.70 % of base) : System.Text.Json.dasm - System.Text.Json.PooledByteBufferWriter:get_WrittenMemory():System.ReadOnlyMemory`1[ubyte]:this (FullOpts)
          -4 (-3.70 % of base) : Microsoft.Extensions.Logging.Console.dasm - System.Text.Json.PooledByteBufferWriter:get_WrittenMemory():System.ReadOnlyMemory`1[ubyte]:this (FullOpts)
          -8 (-3.65 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:InternalCopyToAsync(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
          -4 (-3.60 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:get_RemainingBuffer():System.ReadOnlyMemory`1[ubyte]:this (FullOpts)
          -8 (-3.07 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderValue:FromBytes(System.ReadOnlySpan`1[ubyte]):System.Security.Cryptography.Cose.CoseHeaderValue (FullOpts)
          -5 (-2.96 % of base) : System.Net.Http.dasm - System.Net.Http.Http3RequestStream:FlushSendBufferAsync(ubyte,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
          -4 (-2.48 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:ParseRented(System.Text.Json.PooledByteBufferWriter,System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
          -8 (-2.37 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderValue:FromBytes(ubyte[]):System.Security.Cryptography.Cose.CoseHeaderValue (FullOpts)
          -7 (-2.33 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509CertificateLoader+CertKeyMatcher:ExtractPublicKey(byref,System.Security.Cryptography.AsymmetricAlgorithm,int) (FullOpts)
          -4 (-1.63 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderValue:FromInt32(int):System.Security.Cryptography.Cose.CoseHeaderValue (FullOpts)
          -4 (-1.25 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderValue:FromString(System.String):System.Security.Cryptography.Cose.CoseHeaderValue (FullOpts)
          -4 (-1.15 % of base) : System.Net.Http.dasm - System.Net.Http.Http3RequestStream+Http3WriteStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
         -12 (-0.98 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[ubyte](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[ubyte],byref,byref) (FullOpts)
         -12 (-0.98 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[int](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[int],byref,byref) (FullOpts)
         -12 (-0.98 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[double](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[double],byref,byref) (FullOpts)
         -12 (-0.98 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[long](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[long],byref,byref) (FullOpts)
         -12 (-0.98 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[short](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[short],byref,byref) (FullOpts)
         -12 (-0.98 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Nullable`1[int]](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Nullable`1[int]],byref,byref) (FullOpts)
         -12 (-0.97 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Numerics.Vector`1[float]](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Numerics.Vector`1[float]],byref,byref) (FullOpts)
         -12 (-0.95 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.__Canon](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.__Canon],byref,byref) (FullOpts)
         -12 (-0.94 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[ubyte](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[ubyte],byref,byref) (FullOpts)
         -12 (-0.94 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[int](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[int],byref,byref) (FullOpts)
         -12 (-0.94 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[double](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[double],byref,byref) (FullOpts)
         -12 (-0.94 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[long](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[long],byref,byref) (FullOpts)
         -12 (-0.94 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[short](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[short],byref,byref) (FullOpts)
         -12 (-0.94 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Nullable`1[int]](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Nullable`1[int]],byref,byref) (FullOpts)
         -12 (-0.93 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.Numerics.Vector`1[float]](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.Numerics.Vector`1[float]],byref,byref) (FullOpts)
          -5 (-0.92 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlyMemory`1[ushort],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
         -12 (-0.91 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.KeyFormatHelper:ReadEncryptedPkcs8[System.__Canon](System.String[],System.ReadOnlyMemory`1[ubyte],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.KeyFormatHelper+KeyReader`1[System.__Canon],byref,byref) (FullOpts)
          -4 (-0.75 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:WriteDocumentAsObject(System.Object,System.Text.Json.Serialization.Metadata.JsonTypeInfo):System.Text.Json.JsonDocument (FullOpts)
          -4 (-0.74 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:WriteDocument[double](byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[double]):System.Text.Json.JsonDocument (FullOpts)
          -4 (-0.74 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:WriteDocument[int](byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[int]):System.Text.Json.JsonDocument (FullOpts)
          -4 (-0.74 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:WriteDocument[long](byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[long]):System.Text.Json.JsonDocument (FullOpts)
          -4 (-0.74 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:WriteDocument[short](byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[short]):System.Text.Json.JsonDocument (FullOpts)
          -4 (-0.74 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:WriteDocument[System.__Canon](byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.__Canon]):System.Text.Json.JsonDocument (FullOpts)
          -4 (-0.74 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:WriteDocument[System.Nullable`1[int]](byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Nullable`1[int]]):System.Text.Json.JsonDocument (FullOpts)
          -4 (-0.74 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:WriteDocument[System.Numerics.Vector`1[float]](byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.Numerics.Vector`1[float]]):System.Text.Json.JsonDocument (FullOpts)
          -4 (-0.74 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:WriteDocument[ubyte](byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[ubyte]):System.Text.Json.JsonDocument (FullOpts)
         -15 (-0.73 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.CryptoStream+<CopyToAsyncInternal>d__56:MoveNext():this (FullOpts)
         -18 (-0.62 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+<SendCloseFrameAsync>d__70:MoveNext():this (FullOpts)
          -2 (-0.58 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderMap:Add(System.Security.Cryptography.Cose.CoseHeaderLabel,int):this (FullOpts)
          -7 (-0.58 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseMultiSignMessage+<CreateCoseMultiSignMessageAsync>d__20:MoveNext():this (FullOpts)
         -17 (-0.57 % of base) : System.Net.Http.dasm - System.Net.Http.Http3RequestStream+<SendContentAsync>d__31:MoveNext():this (FullOpts)
         -16 (-0.57 % of base) : System.Net.Http.dasm - System.Net.Http.Http3RequestStream+<WriteRequestContentAsync>d__32:MoveNext():this (FullOpts)
          -8 (-0.57 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonWriter+<FlushAsync>d__78:MoveNext():this (FullOpts)
          -2 (-0.57 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseHeaderMap:Add(System.Security.Cryptography.Cose.CoseHeaderLabel,System.ReadOnlySpan`1[ubyte]):this (FullOpts)
         -13 (-0.53 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+<SetupAsync>d__54:MoveNext():this (FullOpts)
          -7 (-0.52 % of base) : System.Net.Mail.dasm - System.Net.Mime.QuotedPrintableStream+<FlushAsync>d__26:MoveNext():this (FullOpts)
          -8 (-0.51 % of base) : System.Private.Xml.dasm - System.Xml.XmlEncodedRawTextWriter+<EncodeCharsAsync>d__122:MoveNext():this (FullOpts)
         -17 (-0.49 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:TryParseValue(byref,byref,ubyte,ubyte):ubyte (FullOpts)
          -5 (-0.45 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:Parse(System.Buffers.ReadOnlySequence`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
         -17 (-0.42 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+Http2Stream+<SendRequestBodyAsync>d__45:MoveNext():this (FullOpts)
          -4 (-0.39 % of base) : System.Net.HttpListener.dasm - System.Net.HttpResponseStream+<InternalWriteIgnoreErrorsAsync>d__37:MoveNext():this (FullOpts)
          -4 (-0.37 % of base) : System.Text.Json.dasm - System.Text.Json.PooledByteBufferWriter+<FlushAsync>d__20:MoveNext():this (FullOpts)
          -4 (-0.37 % of base) : Microsoft.Extensions.Logging.Console.dasm - System.Text.Json.PooledByteBufferWriter+<FlushAsync>d__20:MoveNext():this (FullOpts)
         -12 (-0.37 % of base) : System.Net.ServerSentEvents.dasm - System.Net.ServerSentEvents.SseFormatter+<WriteAsyncCore>d__3`1[double]:MoveNext():this (FullOpts)
         -12 (-0.37 % of base) : System.Net.ServerSentEvents.dasm - System.Net.ServerSentEvents.SseFormatter+<WriteAsyncCore>d__3`1[int]:MoveNext():this (FullOpts)
         -12 (-0.37 % of base) : System.Net.ServerSentEvents.dasm - System.Net.ServerSentEvents.SseFormatter+<WriteAsyncCore>d__3`1[long]:MoveNext():this (FullOpts)
         -12 (-0.37 % of base) : System.Net.ServerSentEvents.dasm - System.Net.ServerSentEvents.SseFormatter+<WriteAsyncCore>d__3`1[short]:MoveNext():this (FullOpts)
         -12 (-0.37 % of base) : System.Net.ServerSentEvents.dasm - System.Net.ServerSentEvents.SseFormatter+<WriteAsyncCore>d__3`1[System.Nullable`1[int]]:MoveNext():this (FullOpts)
         -12 (-0.37 % of base) : System.Net.ServerSentEvents.dasm - System.Net.ServerSentEvents.SseFormatter+<WriteAsyncCore>d__3`1[ubyte]:MoveNext():this (FullOpts)
         -12 (-0.36 % of base) : System.Net.ServerSentEvents.dasm - System.Net.ServerSentEvents.SseFormatter+<WriteAsyncCore>d__3`1[System.Numerics.Vector`1[float]]:MoveNext():this (FullOpts)
          -1 (-0.36 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.CryptoStream:WriteAsync(ubyte[],int,int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
         -12 (-0.29 % of base) : System.Net.ServerSentEvents.dasm - System.Net.ServerSentEvents.SseFormatter+<WriteAsyncCore>d__3`1[System.__Canon]:MoveNext():this (FullOpts)
          -1 (-0.18 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:BeginSendTo(ubyte[],int,int,int,System.Net.EndPoint,System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts)
          -2 (-0.13 % of base) : System.Memory.Data.dasm - System.BinaryData+<FromStreamAsync>d__32:MoveNext():this (FullOpts)
          -1 (-0.06 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+<FlushOutgoingBytesAsync>d__60:MoveNext():this (FullOpts)

210 total methods with Code Size differences (79 improved, 131 regressed), 247100 unchanged.

--------------------------------------------------------------------------------

Artifacts:

@MihuBot
Copy link
Owner Author

MihuBot commented Jan 28, 2025

Top method regressions

106 (19.96 % of base) - System.IO.MemoryStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this
 ; Assembly listing for method System.IO.MemoryStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 11 single block inlinees; 4 inlinees without PGO data
+; 0 inlinees with PGO data; 12 single block inlinees; 4 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  6,  6   )     ref  ->  rbx         this class-hnd single-def <System.IO.MemoryStream>
-;  V01 arg1         [V01,T00] (  7,  7   )  struct (16) [rbp-0x20]  do-not-enreg[SFA] multireg-arg ld-addr-op single-def <System.Memory`1[ubyte]>
+;  V00 this         [V00,T00] (  6,  6   )     ref  ->  rbx         this class-hnd single-def <System.IO.MemoryStream>
+;  V01 arg1         [V01,T02] (  5,  5   )  struct (16) [rbp-0x38]  do-not-enreg[SFA] multireg-arg ld-addr-op single-def <System.Memory`1[ubyte]>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op single-def <System.Threading.CancellationToken>
-;  V03 loc0         [V03    ] (  4,  4   )  struct (16) [rbp-0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[ubyte]>
-;  V04 loc1         [V04,T07] ( 10,  5   )  struct (16) [rbp-0x40]  do-not-enreg[SZR] multireg-ret must-init EH-live <System.Threading.Tasks.ValueTask`1[int]>
+;  V03 loc0         [V03    ] (  4,  4   )  struct (16) [rbp-0x48]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.ArraySegment`1[ubyte]>
+;  V04 loc1         [V04,T07] ( 10,  5   )  struct (16) [rbp-0x58]  do-not-enreg[SZR] multireg-ret must-init EH-live <System.Threading.Tasks.ValueTask`1[int]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlyMemory`1[ubyte]>
-;  V07 tmp2         [V07,T08] (  2,  4   )     ref  ->  rsi         class-hnd single-def "impAppendStmt" <ubyte[]>
-;  V08 tmp3         [V08,T10] (  2,  4   )     int  ->  rdx         "impAppendStmt"
-;  V09 tmp4         [V09,T11] (  3,  3   )     int  ->  rax        
+;  V07 tmp2         [V07,T12] (  2,  4   )     ref  ->  rsi         class-hnd single-def "impAppendStmt" <ubyte[]>
+;  V08 tmp3         [V08,T14] (  2,  4   )     int  ->  rdx         "impAppendStmt"
+;  V09 tmp4         [V09,T15] (  3,  3   )     int  ->  rax        
 ;* V10 tmp5         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[int]>
 ;* V11 tmp6         [V11    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
-;  V12 tmp7         [V12,T28] (  2,  0   )     ref  ->  rdi         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+;  V12 tmp7         [V12,T33] (  2,  0   )     ref  ->  rdi         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
 ;* V13 tmp8         [V13    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask`1[int]>
-;  V14 tmp9         [V14,T29] (  2,  0   )     ref  ->  rdi         class-hnd single-def "impSpillSpecialSideEff" <System.OperationCanceledException>
+;  V14 tmp9         [V14,T34] (  2,  0   )     ref  ->  rdi         class-hnd single-def "impSpillSpecialSideEff" <System.OperationCanceledException>
 ;* V15 tmp10        [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[int]>
 ;* V16 tmp11        [V16    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask`1[int]>
-;* V17 tmp12        [V17,T26] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V17 tmp12        [V17,T31] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V18 tmp13        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;* V19 tmp14        [V19    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
-;  V20 tmp15        [V20    ] (  5, 10   )  struct (16) [rbp-0x50]  do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[int]>
+;  V20 tmp15        [V20    ] (  5, 10   )  struct (16) [rbp-0x68]  do-not-enreg[SBR] multireg-ret must-init ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[int]>
 ;  V21 tmp16        [V21,T06] (  3,  6   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[int]>
-;* V22 tmp17        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Memory`1[ubyte]>
-;* V23 tmp18        [V23    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
-;  V24 tmp19        [V24,T03] (  6,  6   )   byref  ->  r15         "Inline stloc first use temp"
-;  V25 tmp20        [V25,T04] (  6,  6   )     int  ->  rdx         "Inline stloc first use temp"
-;  V26 tmp21        [V26,T02] (  7,  7   )     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp" <System.Object>
-;* V27 tmp22        [V27    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-;* V28 tmp23        [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Buffers.MemoryManager`1[ubyte]>
-;* V29 tmp24        [V29    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
-;* V30 tmp25        [V30    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
-;  V31 tmp26        [V31,T12] (  3,  3   )    long  ->  rsi         "Inline stloc first use temp"
-;  V32 tmp27        [V32,T13] (  3,  3   )     int  ->  rdi         "Inline stloc first use temp"
-;* V33 tmp28        [V33    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "updating class info" <ubyte[]>
-;* V34 tmp29        [V34    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <ubyte[]>
-;  V35 tmp30        [V35,T09] (  2,  4   )   byref  ->  rax         single-def "Inlining Arg"
-;* V36 tmp31        [V36    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
-;  V37 tmp32        [V37,T27] (  3,  0   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[int]>
-;  V38 tmp33        [V38,T05] (  4,  4   )     ref  ->  rcx         single-def "field V02._source (fldOffset=0x0)" P-INDEP
-;  V39 tmp34        [V39    ] (  2,  2   )     ref  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed "field V03._array (fldOffset=0x0)" P-DEP
-;  V40 tmp35        [V40    ] (  2,  2   )     int  ->  [rbp-0x28]  do-not-enreg[X] addr-exposed "field V03._offset (fldOffset=0x8)" P-DEP
-;  V41 tmp36        [V41    ] (  2,  2   )     int  ->  [rbp-0x24]  do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0xc)" P-DEP
-;* V42 tmp37        [V42    ] (  0,  0   )     ref  ->  zero-ref    "field V06._object (fldOffset=0x0)" P-INDEP
-;* V43 tmp38        [V43    ] (  0,  0   )     int  ->  zero-ref    "field V06._index (fldOffset=0x8)" P-INDEP
-;* V44 tmp39        [V44    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0xc)" P-INDEP
-;* V45 tmp40        [V45    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V10._obj (fldOffset=0x0)" P-INDEP
-;* V46 tmp41        [V46    ] (  0,  0   )     int  ->  zero-ref    "field V10._result (fldOffset=0x8)" P-INDEP
-;* V47 tmp42        [V47    ] (  0,  0   )   short  ->  zero-ref    "field V10._token (fldOffset=0xc)" P-INDEP
-;* V48 tmp43        [V48    ] (  0,  0   )   ubyte  ->  zero-ref    "field V10._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
-;* V49 tmp44        [V49    ] (  0,  0   )   byref  ->  zero-ref    "field V11._reference (fldOffset=0x0)" P-INDEP
-;* V50 tmp45        [V50    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
-;* V51 tmp46        [V51    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V15._obj (fldOffset=0x0)" P-INDEP
-;* V52 tmp47        [V52    ] (  0,  0   )     int  ->  zero-ref    "field V15._result (fldOffset=0x8)" P-INDEP
-;* V53 tmp48        [V53    ] (  0,  0   )   short  ->  zero-ref    "field V15._token (fldOffset=0xc)" P-INDEP
-;* V54 tmp49        [V54    ] (  0,  0   )   ubyte  ->  zero-ref    "field V15._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
-;* V55 tmp50        [V55    ] (  0,  0   )     ref  ->  zero-ref    "field V19._source (fldOffset=0x0)" P-INDEP
-;  V56 tmp51        [V56,T14] (  2,  3   )     ref  ->  [rbp-0x50]  do-not-enreg[] single-def "field V20._obj (fldOffset=0x0)" P-DEP
-;  V57 tmp52        [V57,T15] (  2,  3   )     int  ->  [rbp-0x48]  do-not-enreg[] "field V20._result (fldOffset=0x8)" P-DEP
-;  V58 tmp53        [V58,T16] (  2,  3   )   short  ->  [rbp-0x44]  do-not-enreg[] "field V20._token (fldOffset=0xc)" P-DEP
-;  V59 tmp54        [V59,T17] (  2,  3   )   ubyte  ->  [rbp-0x42]  do-not-enreg[] "field V20._continueOnCapturedContext (fldOffset=0xe)" P-DEP
-;* V60 tmp55        [V60    ] (  0,  0   )     ref  ->  zero-ref    "field V22._object (fldOffset=0x0)" P-INDEP
-;* V61 tmp56        [V61    ] (  0,  0   )     int  ->  zero-ref    "field V22._index (fldOffset=0x8)" P-INDEP
-;* V62 tmp57        [V62    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0xc)" P-INDEP
-;* V63 tmp58        [V63    ] (  0,  0   )   byref  ->  zero-ref    "field V23._reference (fldOffset=0x0)" P-INDEP
-;* V64 tmp59        [V64    ] (  0,  0   )     int  ->  zero-ref    "field V23._length (fldOffset=0x8)" P-INDEP
-;  V65 tmp60        [V65,T22] (  2,  2   )   byref  ->  rsi         single-def "field V27._reference (fldOffset=0x0)" P-INDEP
-;  V66 tmp61        [V66,T24] (  2,  2   )     int  ->  rdx         "field V27._length (fldOffset=0x8)" P-INDEP
-;* V67 tmp62        [V67    ] (  0,  0   )   byref  ->  zero-ref    "field V29._reference (fldOffset=0x0)" P-DEP
-;* V68 tmp63        [V68    ] (  0,  0   )     int  ->  zero-ref    "field V29._length (fldOffset=0x8)" P-DEP
-;  V69 tmp64        [V69,T23] (  2,  2   )   byref  ->  r15         "field V30._reference (fldOffset=0x0)" P-INDEP
-;  V70 tmp65        [V70,T25] (  2,  2   )     int  ->  rdx         "field V30._length (fldOffset=0x8)" P-INDEP
-;* V71 tmp66        [V71    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V36._reference (fldOffset=0x0)" P-INDEP
-;* V72 tmp67        [V72    ] (  0,  0   )     int  ->  zero-ref    "field V36._length (fldOffset=0x8)" P-INDEP
-;  V73 tmp68        [V73,T18] (  4,  2   )     ref  ->  [rbp-0x68]  do-not-enreg[M] EH-live "V04.[000..008)"
-;  V74 tmp69        [V74,T19] (  4,  2   )     int  ->  [rbp-0x54]  do-not-enreg[Z] EH-live "V04.[008..012)"
-;  V75 tmp70        [V75,T20] (  4,  2   )   short  ->  [rbp-0x58]  do-not-enreg[Z] EH-live "V04.[012..014)"
-;  V76 tmp71        [V76,T21] (  4,  2   )   ubyte  ->  [rbp-0x5C]  do-not-enreg[Z] EH-live "V04.[014..015)"
-;  V77 rat0         [V77    ] (  1,  1   )    long  ->  [rbp-0x70]  do-not-enreg[V] "PSPSym"
+;* V22 tmp17        [V22    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.Memory`1[ubyte]>
+;  V23 tmp18        [V23    ] (  5, 10   )  struct (16) [rbp-0x78]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
+;* V24 tmp19        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Object>
+;* V25 tmp20        [V25    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V26 tmp21        [V26    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V27 tmp22        [V27    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
+;  V28 tmp23        [V28,T03] (  6,  6   )   byref  ->  r12         "Inline stloc first use temp"
+;  V29 tmp24        [V29,T04] (  6,  6   )     int  ->  rdx         "Inline stloc first use temp"
+;* V30 tmp25        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.Object>
+;* V31 tmp26        [V31    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+;* V32 tmp27        [V32    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Buffers.MemoryManager`1[ubyte]>
+;* V33 tmp28        [V33    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
+;* V34 tmp29        [V34    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
+;  V35 tmp30        [V35,T16] (  3,  3   )    long  ->  rsi         "Inline stloc first use temp"
+;* V36 tmp31        [V36    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V37 tmp32        [V37    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "updating class info" <ubyte[]>
+;* V38 tmp33        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <ubyte[]>
+;  V39 tmp34        [V39,T13] (  2,  4   )   byref  ->  rdi         single-def "Inlining Arg"
+;* V40 tmp35        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;  V41 tmp36        [V41,T32] (  3,  0   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[int]>
+;  V42 tmp37        [V42,T05] (  4,  4   )     ref  ->  rcx         single-def "field V02._source (fldOffset=0x0)" P-INDEP
+;  V43 tmp38        [V43    ] (  2,  2   )     ref  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V03._array (fldOffset=0x0)" P-DEP
+;  V44 tmp39        [V44    ] (  2,  2   )     int  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed "field V03._offset (fldOffset=0x8)" P-DEP
+;  V45 tmp40        [V45    ] (  2,  2   )     int  ->  [rbp-0x3C]  do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0xc)" P-DEP
+;* V46 tmp41        [V46    ] (  0,  0   )     ref  ->  zero-ref    "field V06._object (fldOffset=0x0)" P-INDEP
+;* V47 tmp42        [V47    ] (  0,  0   )     int  ->  zero-ref    "field V06._index (fldOffset=0x8)" P-INDEP
+;* V48 tmp43        [V48    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0xc)" P-INDEP
+;* V49 tmp44        [V49    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V10._obj (fldOffset=0x0)" P-INDEP
+;* V50 tmp45        [V50    ] (  0,  0   )     int  ->  zero-ref    "field V10._result (fldOffset=0x8)" P-INDEP
+;* V51 tmp46        [V51    ] (  0,  0   )   short  ->  zero-ref    "field V10._token (fldOffset=0xc)" P-INDEP
+;* V52 tmp47        [V52    ] (  0,  0   )   ubyte  ->  zero-ref    "field V10._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
+;* V53 tmp48        [V53    ] (  0,  0   )   byref  ->  zero-ref    "field V11._reference (fldOffset=0x0)" P-INDEP
+;* V54 tmp49        [V54    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
+;* V55 tmp50        [V55    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V15._obj (fldOffset=0x0)" P-INDEP
+;* V56 tmp51        [V56    ] (  0,  0   )     int  ->  zero-ref    "field V15._result (fldOffset=0x8)" P-INDEP
+;* V57 tmp52        [V57    ] (  0,  0   )   short  ->  zero-ref    "field V15._token (fldOffset=0xc)" P-INDEP
+;* V58 tmp53        [V58    ] (  0,  0   )   ubyte  ->  zero-ref    "field V15._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
+;* V59 tmp54        [V59    ] (  0,  0   )     ref  ->  zero-ref    "field V19._source (fldOffset=0x0)" P-INDEP
+;  V60 tmp55        [V60,T19] (  2,  3   )     ref  ->  [rbp-0x68]  do-not-enreg[] single-def "field V20._obj (fldOffset=0x0)" P-DEP
+;  V61 tmp56        [V61,T20] (  2,  3   )     int  ->  [rbp-0x60]  do-not-enreg[] "field V20._result (fldOffset=0x8)" P-DEP
+;  V62 tmp57        [V62,T21] (  2,  3   )   short  ->  [rbp-0x5C]  do-not-enreg[] "field V20._token (fldOffset=0xc)" P-DEP
+;  V63 tmp58        [V63,T22] (  2,  3   )   ubyte  ->  [rbp-0x5A]  do-not-enreg[] "field V20._continueOnCapturedContext (fldOffset=0xe)" P-DEP
+;* V64 tmp59        [V64    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V22._object (fldOffset=0x0)" P-INDEP
+;* V65 tmp60        [V65    ] (  0,  0   )     int  ->  zero-ref    "field V22._index (fldOffset=0x8)" P-INDEP
+;* V66 tmp61        [V66    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0xc)" P-INDEP
+;  V67 tmp62        [V67,T08] (  3,  5   )     ref  ->  [rbp-0x78]  do-not-enreg[] "field V23._object (fldOffset=0x0)" P-DEP
+;  V68 tmp63        [V68,T09] (  3,  5   )     int  ->  [rbp-0x70]  do-not-enreg[] "field V23._index (fldOffset=0x8)" P-DEP
+;  V69 tmp64        [V69,T10] (  3,  5   )     int  ->  [rbp-0x6C]  do-not-enreg[] "field V23._length (fldOffset=0xc)" P-DEP
+;* V70 tmp65        [V70    ] (  0,  0   )   byref  ->  zero-ref    "field V27._reference (fldOffset=0x0)" P-INDEP
+;* V71 tmp66        [V71    ] (  0,  0   )     int  ->  zero-ref    "field V27._length (fldOffset=0x8)" P-INDEP
+;  V72 tmp67        [V72,T27] (  2,  2   )   byref  ->  rsi         single-def "field V31._reference (fldOffset=0x0)" P-INDEP
+;  V73 tmp68        [V73,T29] (  2,  2   )     int  ->  rdx         "field V31._length (fldOffset=0x8)" P-INDEP
+;* V74 tmp69        [V74    ] (  0,  0   )   byref  ->  zero-ref    "field V33._reference (fldOffset=0x0)" P-DEP
+;* V75 tmp70        [V75    ] (  0,  0   )     int  ->  zero-ref    "field V33._length (fldOffset=0x8)" P-DEP
+;  V76 tmp71        [V76,T28] (  2,  2   )   byref  ->  r12         "field V34._reference (fldOffset=0x0)" P-INDEP
+;  V77 tmp72        [V77,T30] (  2,  2   )     int  ->  rdx         "field V34._length (fldOffset=0x8)" P-INDEP
+;* V78 tmp73        [V78    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V40._reference (fldOffset=0x0)" P-INDEP
+;* V79 tmp74        [V79    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x8)" P-INDEP
+;  V80 tmp75        [V80,T01] (  7,  7   )     ref  ->  r15         single-def "V01.[000..008)"
+;  V81 tmp76        [V81,T17] (  3,  3   )     int  ->  r14         "V01.[008..012)"
+;  V82 tmp77        [V82,T11] (  4,  4   )     int  ->  r13         "V01.[012..016)"
+;  V83 tmp78        [V83,T23] (  4,  2   )     ref  ->  [rbp-0x90]  do-not-enreg[M] EH-live "V04.[000..008)"
+;  V84 tmp79        [V84,T24] (  4,  2   )     int  ->  [rbp-0x7C]  do-not-enreg[Z] EH-live "V04.[008..012)"
+;  V85 tmp80        [V85,T25] (  4,  2   )   short  ->  [rbp-0x80]  do-not-enreg[Z] EH-live "V04.[012..014)"
+;  V86 tmp81        [V86,T26] (  4,  2   )   ubyte  ->  [rbp-0x84]  do-not-enreg[Z] EH-live "V04.[014..015)"
+;  V87 cse0         [V87,T18] (  3,  3   )    long  ->  rax         "CSE #01: moderate"
+;  V88 rat0         [V88    ] (  1,  1   )    long  ->  [rbp-0xA0]  do-not-enreg[V] "PSPSym"
 ;
-; Lcl frame size = 96
+; Lcl frame size = 120
 
 G_M40605_IG01:
        push     rbp
        push     r15
+       push     r14
+       push     r13
+       push     r12
        push     rbx
-       sub      rsp, 96
-       lea      rbp, [rsp+0x70]
+       sub      rsp, 120
+       lea      rbp, [rsp+0xA0]
+       xor      eax, eax
+       mov      qword ptr [rbp-0x78], rax
        vxorps   xmm8, xmm8, xmm8
-       vmovdqu  ymmword ptr [rbp-0x50], ymm8
-       vmovdqa  xmmword ptr [rbp-0x30], xmm8
-       mov      qword ptr [rbp-0x70], rsp
-       mov      gword ptr [rbp-0x20], rsi
-       mov      qword ptr [rbp-0x18], rdx
+       vmovdqu  ymmword ptr [rbp-0x70], ymm8
+       vmovdqa  xmmword ptr [rbp-0x50], xmm8
+       mov      qword ptr [rbp-0x40], rax
+       mov      qword ptr [rbp-0xA0], rsp
+       mov      gword ptr [rbp-0x38], rsi
+       mov      qword ptr [rbp-0x30], rdx
        mov      rbx, rdi
-						;; size=43 bbWeight=1 PerfScore 11.33
+						;; size=65 bbWeight=1 PerfScore 16.58
 G_M40605_IG02:
+       mov      r15, gword ptr [rbp-0x38]
+       mov      r14d, dword ptr [rbp-0x30]
+       mov      r13d, dword ptr [rbp-0x2C]
        test     rcx, rcx
        je       SHORT G_M40605_IG05
        cmp      dword ptr [rcx+0x20], 0
        je       SHORT G_M40605_IG05
        mov      rdi, rcx
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:FromCanceled[int](System.Threading.CancellationToken):System.Threading.Tasks.Task`1[int]
        call     [rax]System.Threading.Tasks.Task:FromCanceled[int](System.Threading.CancellationToken):System.Threading.Tasks.Task`1[int]
        test     rax, rax
        je       SHORT G_M40605_IG04
-       mov      gword ptr [rbp-0x50], rax
+       mov      gword ptr [rbp-0x68], rax
        xor      eax, eax
-       mov      dword ptr [rbp-0x48], eax
-       mov      byte  ptr [rbp-0x42], 1
-       mov      word  ptr [rbp-0x44], 0
-       mov      rax, gword ptr [rbp-0x50]
-       mov      rdx, qword ptr [rbp-0x48]
-						;; size=58 bbWeight=1 PerfScore 16.25
+       mov      dword ptr [rbp-0x60], eax
+       mov      byte  ptr [rbp-0x5A], 1
+       mov      word  ptr [rbp-0x5C], 0
+       mov      rax, gword ptr [rbp-0x68]
+       mov      rdx, qword ptr [rbp-0x60]
+						;; size=70 bbWeight=1 PerfScore 19.25
 G_M40605_IG03:
-       add      rsp, 96
+       add      rsp, 120
        pop      rbx
+       pop      r12
+       pop      r13
+       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=9 bbWeight=1 PerfScore 2.75
+						;; size=15 bbWeight=1 PerfScore 4.25
 G_M40605_IG04:
        mov      edi, 9
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)
        int3     
 						;; size=18 bbWeight=1 PerfScore 3.75
 G_M40605_IG05:
-       mov      rdi, gword ptr [rbp-0x20]
-       mov      rsi, qword ptr [rbp-0x18]
-       lea      rdx, [rbp-0x30]
+       mov      gword ptr [rbp-0x78], r15
+       mov      dword ptr [rbp-0x70], r14d
+       mov      dword ptr [rbp-0x6C], r13d
+       mov      rdi, gword ptr [rbp-0x78]
+       mov      rsi, qword ptr [rbp-0x70]
+       lea      rdx, [rbp-0x48]
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.MemoryMarshal:TryGetArray[ubyte](System.ReadOnlyMemory`1[ubyte],byref):ubyte
        call     [rax]System.Runtime.InteropServices.MemoryMarshal:TryGetArray[ubyte](System.ReadOnlyMemory`1[ubyte],byref):ubyte
        test     eax, eax
        je       SHORT G_M40605_IG06
-       mov      rsi, gword ptr [rbp-0x30]
-       mov      edx, dword ptr [rbp-0x28]
+       mov      rsi, gword ptr [rbp-0x48]
+       mov      edx, dword ptr [rbp-0x40]
        mov      rdi, rbx
-       mov      ecx, dword ptr [rbp-0x24]
+       mov      ecx, dword ptr [rbp-0x3C]
        mov      rax, qword ptr [rbx]
        mov      rax, qword ptr [rax+0x60]
        call     [rax+0x18]System.IO.Stream:Read(ubyte[],int,int):int:this
        jmp      SHORT G_M40605_IG10
-						;; size=53 bbWeight=1 PerfScore 19.25
+						;; size=65 bbWeight=1 PerfScore 22.25
 G_M40605_IG06:
-       xor      r15, r15
+       xor      r12, r12
        xor      edx, edx
-       mov      rdi, gword ptr [rbp-0x20]
-       test     rdi, rdi
+       test     r15, r15
        je       SHORT G_M40605_IG09
-       mov      rax, qword ptr [rdi]
-       test     dword ptr [rax], 0xD1FFAB1E
+       mov      rax, qword ptr [r15]
+       mov      rdi, rax
+       test     dword ptr [rdi], 0xD1FFAB1E
        jne      SHORT G_M40605_IG07
-       mov      rax, qword ptr [rdi]
+       mov      rdi, r15
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x28]System.Buffers.MemoryManager`1[ubyte]:GetSpan():System.Span`1[ubyte]:this
-       mov      r15, rax
+       mov      r12, rax
        jmp      SHORT G_M40605_IG08
-						;; size=40 bbWeight=1 PerfScore 18.00
+						;; size=39 bbWeight=1 PerfScore 15.50
 G_M40605_IG07:
-       lea      r15, bword ptr [rdi+0x10]
-       mov      edx, dword ptr [rdi+0x08]
-						;; size=7 bbWeight=1 PerfScore 2.50
+       lea      r12, bword ptr [r15+0x10]
+       mov      edx, dword ptr [r15+0x08]
+						;; size=8 bbWeight=1 PerfScore 2.50
 G_M40605_IG08:
-       mov      esi, dword ptr [rbp-0x18]
-       and      esi, 0xD1FFAB1E
-       mov      edi, dword ptr [rbp-0x14]
-       mov      eax, edi
-       add      rax, rsi
+       and      r14d, 0xD1FFAB1E
+       mov      esi, r14d
+       mov      edi, r13d
+       add      rdi, rsi
        mov      edx, edx
-       cmp      rax, rdx
+       cmp      rdi, rdx
        ja       SHORT G_M40605_IG12
-       add      r15, rsi
-       mov      edx, edi
-						;; size=29 bbWeight=1 PerfScore 4.75
+       add      r12, rsi
+       mov      edx, r13d
+						;; size=29 bbWeight=1 PerfScore 3.00
 G_M40605_IG09:
-       mov      rsi, r15
+       mov      rsi, r12
        mov      rdi, rbx
        mov      rax, qword ptr [rbx]
        mov      rax, qword ptr [rax+0x60]
        call     [rax+0x20]System.IO.Stream:Read(System.Span`1[ubyte]):int:this
 						;; size=16 bbWeight=1 PerfScore 7.50
 G_M40605_IG10:
        xor      rcx, rcx
-       mov      gword ptr [rbp-0x68], rcx
-       mov      dword ptr [rbp-0x54], eax
-						;; size=9 bbWeight=1 PerfScore 2.25
+       mov      gword ptr [rbp-0x90], rcx
+       mov      dword ptr [rbp-0x7C], eax
+						;; size=12 bbWeight=1 PerfScore 2.25
 G_M40605_IG11:
-       mov      dword ptr [rbp-0x58], ecx
-       mov      dword ptr [rbp-0x5C], 1
+       mov      dword ptr [rbp-0x80], ecx
+       mov      dword ptr [rbp-0x84], 1
        jmp      SHORT G_M40605_IG13
-						;; size=12 bbWeight=1 PerfScore 4.00
+						;; size=15 bbWeight=1 PerfScore 4.00
 G_M40605_IG12:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=1 PerfScore 3.50
 G_M40605_IG13:
-       mov      rax, gword ptr [rbp-0x68]
-       mov      gword ptr [rbp-0x40], rax
-       mov      eax, dword ptr [rbp-0x54]
-       mov      dword ptr [rbp-0x38], eax
-       mov      eax, dword ptr [rbp-0x58]
-       mov      word  ptr [rbp-0x34], ax
-       mov      eax, dword ptr [rbp-0x5C]
-       mov      byte  ptr [rbp-0x32], al
-       mov      rax, gword ptr [rbp-0x40]
-       mov      rdx, qword ptr [rbp-0x38]
-						;; size=35 bbWeight=1 PerfScore 10.00
+       mov      rax, gword ptr [rbp-0x90]
+       mov      gword ptr [rbp-0x58], rax
+       mov      eax, dword ptr [rbp-0x7C]
+       mov      dword ptr [rbp-0x50], eax
+       mov      eax, dword ptr [rbp-0x80]
+       mov      word  ptr [rbp-0x4C], ax
+       mov      eax, dword ptr [rbp-0x84]
+       mov      byte  ptr [rbp-0x4A], al
+       mov      rax, gword ptr [rbp-0x58]
+       mov      rdx, qword ptr [rbp-0x50]
+						;; size=41 bbWeight=1 PerfScore 10.00
 G_M40605_IG14:
-       add      rsp, 96
+       add      rsp, 120
        pop      rbx
+       pop      r12
+       pop      r13
+       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=9 bbWeight=1 PerfScore 2.75
+						;; size=15 bbWeight=1 PerfScore 4.25
 G_M40605_IG15:
        push     rbp
        push     r15
+       push     r14
+       push     r13
+       push     r12
        push     rbx
-       sub      rsp, 16
+       push     rax
        mov      rbp, qword ptr [rdi]
        mov      qword ptr [rsp], rbp
-       lea      rbp, [rbp+0x70]
-						;; size=19 bbWeight=0 PerfScore 0.00
+       lea      rbp, [rbp+0xA0]
+						;; size=25 bbWeight=0 PerfScore 0.00
 G_M40605_IG16:
        mov      rdi, rsi
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:FromCanceled[int](System.OperationCanceledException):System.Threading.Tasks.Task`1[int]
        call     [rax]System.Threading.Tasks.Task:FromCanceled[int](System.OperationCanceledException):System.Threading.Tasks.Task`1[int]
        test     rax, rax
        je       SHORT G_M40605_IG19
-       mov      gword ptr [rbp-0x68], rax
+       mov      gword ptr [rbp-0x90], rax
        xor      eax, eax
-       mov      dword ptr [rbp-0x54], eax
-						;; size=29 bbWeight=0 PerfScore 0.00
+       mov      dword ptr [rbp-0x7C], eax
+						;; size=32 bbWeight=0 PerfScore 0.00
 G_M40605_IG17:
-       mov      dword ptr [rbp-0x58], eax
-       mov      dword ptr [rbp-0x5C], 1
+       mov      dword ptr [rbp-0x80], eax
+       mov      dword ptr [rbp-0x84], 1
        lea      rax, G_M40605_IG13
-						;; size=17 bbWeight=0 PerfScore 0.00
+						;; size=20 bbWeight=0 PerfScore 0.00
 G_M40605_IG18:
-       add      rsp, 16
+       add      rsp, 8
        pop      rbx
+       pop      r12
+       pop      r13
+       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=9 bbWeight=0 PerfScore 0.00
+						;; size=15 bbWeight=0 PerfScore 0.00
 G_M40605_IG19:
        mov      edi, 9
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 G_M40605_IG20:
        push     rbp
        push     r15
+       push     r14
+       push     r13
+       push     r12
        push     rbx
-       sub      rsp, 16
+       push     rax
        mov      rbp, qword ptr [rdi]
        mov      qword ptr [rsp], rbp
-       lea      rbp, [rbp+0x70]
-						;; size=19 bbWeight=0 PerfScore 0.00
+       lea      rbp, [rbp+0xA0]
+						;; size=25 bbWeight=0 PerfScore 0.00
 G_M40605_IG21:
        mov      rdi, rsi
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.ValueTask:FromException[int](System.Exception):System.Threading.Tasks.ValueTask`1[int]
        call     [rax]System.Threading.Tasks.ValueTask:FromException[int](System.Exception):System.Threading.Tasks.ValueTask`1[int]
-       mov      gword ptr [rbp-0x40], rax
-       mov      qword ptr [rbp-0x38], rdx
-       mov      rsi, gword ptr [rbp-0x40]
-       mov      gword ptr [rbp-0x68], rsi
-       mov      esi, dword ptr [rbp-0x38]
-       mov      dword ptr [rbp-0x54], esi
-       movsx    rsi, word  ptr [rbp-0x34]
-       mov      dword ptr [rbp-0x58], esi
-       movzx    rsi, byte  ptr [rbp-0x32]
-       mov      dword ptr [rbp-0x5C], esi
+       mov      gword ptr [rbp-0x58], rax
+       mov      qword ptr [rbp-0x50], rdx
+       mov      rsi, gword ptr [rbp-0x58]
+       mov      gword ptr [rbp-0x90], rsi
+       mov      esi, dword ptr [rbp-0x50]
+       mov      dword ptr [rbp-0x7C], esi
+       movsx    rsi, word  ptr [rbp-0x4C]
+       mov      dword ptr [rbp-0x80], esi
+       movzx    rsi, byte  ptr [rbp-0x4A]
+       mov      dword ptr [rbp-0x84], esi
        lea      rax, G_M40605_IG13
-						;; size=60 bbWeight=0 PerfScore 0.00
+						;; size=66 bbWeight=0 PerfScore 0.00
 G_M40605_IG22:
-       add      rsp, 16
+       add      rsp, 8
        pop      rbx
+       pop      r12
+       pop      r13
+       pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=9 bbWeight=0 PerfScore 0.00
+						;; size=15 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 531, prolog size 43, PerfScore 108.58, instruction count 159, allocated bytes for code 531 (MethodHash=9ad96162) for method System.IO.MemoryStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
+; Total bytes of code 637, prolog size 65, PerfScore 118.58, instruction count 188, allocated bytes for code 637 (MethodHash=9ad96162) for method System.IO.MemoryStream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
 ; ============================================================
94 (14.66 % of base) - System.Net.Sockets.UdpClient:SendAsync(System.ReadOnlyMemory`1[ubyte],System.Net.IPEndPoint,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this
 ; Assembly listing for method System.Net.Sockets.UdpClient:SendAsync(System.ReadOnlyMemory`1[ubyte],System.Net.IPEndPoint,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 21 single block inlinees; 7 inlinees without PGO data
+; 0 inlinees with PGO data; 23 single block inlinees; 7 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  8,  6   )     ref  ->  rbx         this class-hnd single-def <System.Net.Sockets.UdpClient>
-;  V01 arg1         [V01,T02] (  6,  4   )  struct (16) [rbp-0x30]  do-not-enreg[SA] multireg-arg single-def <System.ReadOnlyMemory`1[ubyte]>
+;  V01 arg1         [V01,T02] (  5,  5   )  struct (16) [rbp-0x38]  do-not-enreg[SFA] multireg-arg single-def <System.ReadOnlyMemory`1[ubyte]>
 ;  V02 arg2         [V02,T03] (  5,  4   )     ref  ->  r14         class-hnd single-def <System.Net.IPEndPoint>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Threading.CancellationToken>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask`1[int]>
-;  V06 tmp2         [V06,T26] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
+;  V06 tmp2         [V06,T35] (  3,  0   )     ref  ->  r15         class-hnd exact single-def "NewObj constructor temp" <System.InvalidOperationException>
 ;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask`1[int]>
-;  V08 tmp4         [V08,T12] (  5,  2.50)  struct (16) [rbp-0x40]  do-not-enreg[SR] multireg-ret must-init "Inline return value spill temp" <System.Threading.Tasks.ValueTask`1[int]>
+;  V08 tmp4         [V08,T12] (  5,  2.50)  struct (16) [rbp-0x48]  do-not-enreg[SR] multireg-ret must-init "Inline return value spill temp" <System.Threading.Tasks.ValueTask`1[int]>
 ;* V09 tmp5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
 ;  V10 tmp6         [V10,T04] (  5,  5   )     ref  ->  rbx         class-hnd single-def "Inlining Arg" <System.Net.Sockets.Socket>
-;  V11 tmp7         [V11,T14] (  2,  2   )     ref  ->  r14         class-hnd single-def "dup spill" <System.__Canon>
+;  V11 tmp7         [V11,T23] (  2,  2   )     ref  ->  r14         class-hnd single-def "dup spill" <System.__Canon>
 ;  V12 tmp8         [V12,T09] (  7,  3.50)     ref  ->  r14        
 ;* V13 tmp9         [V13    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Memory`1[ubyte]>
 ;  V14 tmp10        [V14,T05] (  5,  5   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs>
-;* V15 tmp11        [V15,T18] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V15 tmp11        [V15,T27] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V16 tmp12        [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
 ;* V17 tmp13        [V17    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
 ;* V18 tmp14        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[int]>
 ;  V19 tmp15        [V19,T10] (  3,  3   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[int]>
-;* V20 tmp16        [V20    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlyMemory`1[ubyte]>
-;  V21 tmp17        [V21,T13] (  5,  2.50)  struct (16) [rbp-0x50]  do-not-enreg[SR] multireg-ret must-init "Inline return value spill temp" <System.Threading.Tasks.ValueTask`1[int]>
-;* V22 tmp18        [V22    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
-;  V23 tmp19        [V23,T06] (  5,  5   )     ref  ->  rbx         class-hnd single-def "Inlining Arg" <System.Net.Sockets.Socket>
-;  V24 tmp20        [V24,T15] (  2,  2   )     ref  ->  r13         class-hnd single-def "dup spill" <System.__Canon>
-;  V25 tmp21        [V25,T08] (  8,  4   )     ref  ->  r13        
-;* V26 tmp22        [V26    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Memory`1[ubyte]>
-;  V27 tmp23        [V27,T07] (  5,  5   )     ref  ->  r13         class-hnd exact single-def "NewObj constructor temp" <System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs>
-;* V28 tmp24        [V28,T19] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V29 tmp25        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
-;* V30 tmp26        [V30    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
-;* V31 tmp27        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[int]>
-;  V32 tmp28        [V32,T11] (  3,  3   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[int]>
-;* V33 tmp29        [V33    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlyMemory`1[ubyte]>
-;  V34 tmp30        [V34,T01] (  9,  5   )     ref  ->  r15         single-def "field V03._source (fldOffset=0x0)" P-INDEP
-;* V35 tmp31        [V35    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V09._source (fldOffset=0x0)" P-INDEP
-;* V36 tmp32        [V36    ] (  0,  0   )     ref  ->  zero-ref    "field V13._object (fldOffset=0x0)" P-INDEP
-;* V37 tmp33        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V13._index (fldOffset=0x8)" P-INDEP
-;* V38 tmp34        [V38    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0xc)" P-INDEP
-;* V39 tmp35        [V39    ] (  0,  0   )     ref  ->  zero-ref    "field V17._source (fldOffset=0x0)" P-INDEP
-;  V40 tmp36        [V40,T16] (  2,  1   )     ref  ->  rax         single-def "field V18._obj (fldOffset=0x0)" P-INDEP
-;* V41 tmp37        [V41,T20] (  0,  0   )     int  ->  zero-ref    "field V18._result (fldOffset=0x8)" P-INDEP
-;* V42 tmp38        [V42,T21] (  0,  0   )   short  ->  zero-ref    "field V18._token (fldOffset=0xc)" P-INDEP
-;* V43 tmp39        [V43,T22] (  0,  0   )   ubyte  ->  zero-ref    "field V18._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
-;* V44 tmp40        [V44    ] (  0,  0   )     ref  ->  zero-ref    "field V20._object (fldOffset=0x0)" P-INDEP
-;* V45 tmp41        [V45    ] (  0,  0   )     int  ->  zero-ref    "field V20._index (fldOffset=0x8)" P-INDEP
-;* V46 tmp42        [V46    ] (  0,  0   )     int  ->  zero-ref    "field V20._length (fldOffset=0xc)" P-INDEP
-;* V47 tmp43        [V47    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V22._source (fldOffset=0x0)" P-INDEP
-;* V48 tmp44        [V48    ] (  0,  0   )     ref  ->  zero-ref    "field V26._object (fldOffset=0x0)" P-INDEP
-;* V49 tmp45        [V49    ] (  0,  0   )     int  ->  zero-ref    "field V26._index (fldOffset=0x8)" P-INDEP
-;* V50 tmp46        [V50    ] (  0,  0   )     int  ->  zero-ref    "field V26._length (fldOffset=0xc)" P-INDEP
-;* V51 tmp47        [V51    ] (  0,  0   )     ref  ->  zero-ref    "field V30._source (fldOffset=0x0)" P-INDEP
-;  V52 tmp48        [V52,T17] (  2,  1   )     ref  ->  rax         single-def "field V31._obj (fldOffset=0x0)" P-INDEP
-;* V53 tmp49        [V53,T23] (  0,  0   )     int  ->  zero-ref    "field V31._result (fldOffset=0x8)" P-INDEP
-;* V54 tmp50        [V54,T24] (  0,  0   )   short  ->  zero-ref    "field V31._token (fldOffset=0xc)" P-INDEP
-;* V55 tmp51        [V55,T25] (  0,  0   )   ubyte  ->  zero-ref    "field V31._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
-;* V56 tmp52        [V56    ] (  0,  0   )     ref  ->  zero-ref    "field V33._object (fldOffset=0x0)" P-INDEP
-;* V57 tmp53        [V57    ] (  0,  0   )     int  ->  zero-ref    "field V33._index (fldOffset=0x8)" P-INDEP
-;* V58 tmp54        [V58    ] (  0,  0   )     int  ->  zero-ref    "field V33._length (fldOffset=0xc)" P-INDEP
-;  V59 tmp55        [V59,T27] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
+;  V20 tmp16        [V20    ] (  5,  5   )  struct (16) [rbp-0x58]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]>
+;* V21 tmp17        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Object>
+;* V22 tmp18        [V22    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V23 tmp19        [V23    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;  V24 tmp20        [V24,T13] (  5,  2.50)  struct (16) [rbp-0x68]  do-not-enreg[SR] multireg-ret must-init "Inline return value spill temp" <System.Threading.Tasks.ValueTask`1[int]>
+;* V25 tmp21        [V25    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Threading.CancellationToken>
+;  V26 tmp22        [V26,T06] (  5,  5   )     ref  ->  rbx         class-hnd single-def "Inlining Arg" <System.Net.Sockets.Socket>
+;  V27 tmp23        [V27,T24] (  2,  2   )     ref  ->  rax         class-hnd single-def "dup spill" <System.__Canon>
+;  V28 tmp24        [V28,T08] (  8,  4   )     ref  ->  [rbp-0x88] 
+;* V29 tmp25        [V29    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Memory`1[ubyte]>
+;  V30 tmp26        [V30,T07] (  5,  5   )     ref  ->  [rbp-0x90]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs>
+;* V31 tmp27        [V31,T28] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V32 tmp28        [V32    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Threading.CancellationTokenSource>
+;* V33 tmp29        [V33    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
+;* V34 tmp30        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[int]>
+;  V35 tmp31        [V35,T11] (  3,  3   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[int]>
+;  V36 tmp32        [V36    ] (  5,  5   )  struct (16) [rbp-0x78]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]>
+;* V37 tmp33        [V37    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Object>
+;* V38 tmp34        [V38    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V39 tmp35        [V39    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;  V40 tmp36        [V40,T01] (  9,  5   )     ref  ->  r15         single-def "field V03._source (fldOffset=0x0)" P-INDEP
+;* V41 tmp37        [V41    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V09._source (fldOffset=0x0)" P-INDEP
+;* V42 tmp38        [V42    ] (  0,  0   )     ref  ->  zero-ref    "field V13._object (fldOffset=0x0)" P-INDEP
+;* V43 tmp39        [V43    ] (  0,  0   )     int  ->  zero-ref    "field V13._index (fldOffset=0x8)" P-INDEP
+;* V44 tmp40        [V44    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0xc)" P-INDEP
+;* V45 tmp41        [V45    ] (  0,  0   )     ref  ->  zero-ref    "field V17._source (fldOffset=0x0)" P-INDEP
+;  V46 tmp42        [V46,T25] (  2,  1   )     ref  ->  rax         single-def "field V18._obj (fldOffset=0x0)" P-INDEP
+;* V47 tmp43        [V47,T29] (  0,  0   )     int  ->  zero-ref    "field V18._result (fldOffset=0x8)" P-INDEP
+;* V48 tmp44        [V48,T30] (  0,  0   )   short  ->  zero-ref    "field V18._token (fldOffset=0xc)" P-INDEP
+;* V49 tmp45        [V49,T31] (  0,  0   )   ubyte  ->  zero-ref    "field V18._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
+;  V50 tmp46        [V50,T14] (  3,  2.50)     ref  ->  [rbp-0x58]  do-not-enreg[] "field V20._object (fldOffset=0x0)" P-DEP
+;  V51 tmp47        [V51,T16] (  3,  2.50)     int  ->  [rbp-0x50]  do-not-enreg[] "field V20._index (fldOffset=0x8)" P-DEP
+;  V52 tmp48        [V52,T17] (  3,  2.50)     int  ->  [rbp-0x4C]  do-not-enreg[] "field V20._length (fldOffset=0xc)" P-DEP
+;* V53 tmp49        [V53    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V25._source (fldOffset=0x0)" P-INDEP
+;* V54 tmp50        [V54    ] (  0,  0   )     ref  ->  zero-ref    "field V29._object (fldOffset=0x0)" P-INDEP
+;* V55 tmp51        [V55    ] (  0,  0   )     int  ->  zero-ref    "field V29._index (fldOffset=0x8)" P-INDEP
+;* V56 tmp52        [V56    ] (  0,  0   )     int  ->  zero-ref    "field V29._length (fldOffset=0xc)" P-INDEP
+;* V57 tmp53        [V57    ] (  0,  0   )     ref  ->  zero-ref    "field V33._source (fldOffset=0x0)" P-INDEP
+;  V58 tmp54        [V58,T26] (  2,  1   )     ref  ->  rax         single-def "field V34._obj (fldOffset=0x0)" P-INDEP
+;* V59 tmp55        [V59,T32] (  0,  0   )     int  ->  zero-ref    "field V34._result (fldOffset=0x8)" P-INDEP
+;* V60 tmp56        [V60,T33] (  0,  0   )   short  ->  zero-ref    "field V34._token (fldOffset=0xc)" P-INDEP
+;* V61 tmp57        [V61,T34] (  0,  0   )   ubyte  ->  zero-ref    "field V34._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
+;  V62 tmp58        [V62,T15] (  3,  2.50)     ref  ->  [rbp-0x78]  do-not-enreg[] "field V36._object (fldOffset=0x0)" P-DEP
+;  V63 tmp59        [V63,T18] (  3,  2.50)     int  ->  [rbp-0x70]  do-not-enreg[] "field V36._index (fldOffset=0x8)" P-DEP
+;  V64 tmp60        [V64,T19] (  3,  2.50)     int  ->  [rbp-0x6C]  do-not-enreg[] "field V36._length (fldOffset=0xc)" P-DEP
+;  V65 tmp61        [V65,T20] (  3,  2   )     ref  ->  r13         single-def "V01.[000..008)"
+;  V66 tmp62        [V66,T21] (  3,  2   )     int  ->  r12         "V01.[008..012)"
+;  V67 tmp63        [V67,T22] (  3,  2   )     int  ->  [rbp-0x7C]  spill-single-def "V01.[012..016)"
+;  V68 tmp64        [V68,T36] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
 ;
-; Lcl frame size = 48
+; Lcl frame size = 104
 
 G_M28989_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
+       push     r12
        push     rbx
-       sub      rsp, 48
-       lea      rbp, [rsp+0x50]
+       sub      rsp, 104
+       lea      rbp, [rsp+0x90]
+       xor      eax, eax
+       mov      qword ptr [rbp-0x78], rax
        vxorps   xmm8, xmm8, xmm8
-       vmovdqu  ymmword ptr [rbp-0x50], ymm8
-       mov      gword ptr [rbp-0x30], rsi
-       mov      qword ptr [rbp-0x28], rdx
+       vmovdqu  ymmword ptr [rbp-0x70], ymm8
+       vmovdqa  xmmword ptr [rbp-0x50], xmm8
+       mov      qword ptr [rbp-0x40], rax
+       mov      gword ptr [rbp-0x38], rsi
+       mov      qword ptr [rbp-0x30], rdx
        mov      rbx, rdi
        mov      r14, rcx
        mov      r15, r8
-						;; size=44 bbWeight=1 PerfScore 10.83
+						;; size=64 bbWeight=1 PerfScore 16.08
 G_M28989_IG02:
        movzx    rdi, byte  ptr [rbx+0x1D]
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.ObjectDisposedException:ThrowIf(ubyte,System.Object)
        call     [rax]System.ObjectDisposedException:ThrowIf(ubyte,System.Object)
+       mov      r13, gword ptr [rbp-0x38]
+       mov      r12d, dword ptr [rbp-0x30]
+       mov      eax, dword ptr [rbp-0x2C]
+       mov      dword ptr [rbp-0x7C], eax
        test     r14, r14
        je       G_M28989_IG09
-						;; size=29 bbWeight=1 PerfScore 6.75
+						;; size=43 bbWeight=1 PerfScore 10.75
 G_M28989_IG03:
        cmp      byte  ptr [rbx+0x1C], 0
        jne      G_M28989_IG16
        mov      rsi, gword ptr [r14+0x08]
        mov      rdi, rbx
-       mov      rax, 0xD1FFAB1E      ; code for System.Net.Sockets.UdpClient:CheckForBroadcast(System.Net.IPAddress):this
-       call     [rax]System.Net.Sockets.UdpClient:CheckForBroadcast(System.Net.IPAddress):this
+       mov      rcx, 0xD1FFAB1E      ; code for System.Net.Sockets.UdpClient:CheckForBroadcast(System.Net.IPAddress):this
+       call     [rcx]System.Net.Sockets.UdpClient:CheckForBroadcast(System.Net.IPAddress):this
        mov      rbx, gword ptr [rbx+0x08]
        cmp      byte  ptr [rbx], bl
        test     r15, r15
        je       SHORT G_M28989_IG04
        cmp      dword ptr [r15+0x20], 0
        jne      G_M28989_IG07
 						;; size=51 bbWeight=0.50 PerfScore 9.88
 G_M28989_IG04:
        lea      rdi, bword ptr [rbx+0x38]
        xor      rax, rax
-       mov      r13, rax
-       xchg     gword ptr [rdi], r13
-       test     r13, r13
+       xchg     gword ptr [rdi], rax
+       test     rax, rax
        jne      SHORT G_M28989_IG05
        mov      rdi, 0xD1FFAB1E      ; System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs
        call     CORINFO_HELP_NEWFAST
-       mov      r13, rax
-       mov      byte  ptr [r13+0xBA], 0
-       lea      rdi, bword ptr [r13+0xE0]
+       mov      gword ptr [rbp-0x90], rax
+       mov      byte  ptr [rax+0xBA], 0
+       lea      rdi, bword ptr [rax+0xE0]
        mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
-       mov      byte  ptr [r13+0xE8], 0
-						;; size=66 bbWeight=0.50 PerfScore 13.75
+       mov      rax, gword ptr [rbp-0x90]
+       mov      byte  ptr [rax+0xE8], 0
+						;; size=72 bbWeight=0.50 PerfScore 14.50
 G_M28989_IG05:
-       mov      rsi, gword ptr [rbp-0x30]
-       mov      rdx, qword ptr [rbp-0x28]
-       mov      rdi, r13
-       mov      rax, 0xD1FFAB1E      ; code for System.Net.Sockets.SocketAsyncEventArgs:SetBuffer(System.Memory`1[ubyte]):this
+       mov      gword ptr [rbp-0x78], r13
+       mov      dword ptr [rbp-0x70], r12d
+       mov      r12d, dword ptr [rbp-0x7C]
+       mov      dword ptr [rbp-0x6C], r12d
+       mov      rsi, gword ptr [rbp-0x78]
+       mov      rdx, qword ptr [rbp-0x70]
+       mov      gword ptr [rbp-0x88], rax
+       mov      rdi, rax
+       mov      rcx, 0xD1FFAB1E      ; code for System.Net.Sockets.SocketAsyncEventArgs:SetBuffer(System.Memory`1[ubyte]):this
        cmp      dword ptr [rdi], edi
-       call     [rax]System.Net.Sockets.SocketAsyncEventArgs:SetBuffer(System.Memory`1[ubyte]):this
+       call     [rcx]System.Net.Sockets.SocketAsyncEventArgs:SetBuffer(System.Memory`1[ubyte]):this
        xor      edi, edi
+       mov      r13, gword ptr [rbp-0x88]
        mov      dword ptr [r13+0xA4], edi
        lea      rdi, bword ptr [r13+0x28]
        mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
        mov      byte  ptr [r13+0xE9], 0
        mov      rdi, r13
        mov      rsi, rbx
        mov      rdx, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs:SendToAsync(System.Net.Sockets.Socket,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this
-						;; size=73 bbWeight=0.50 PerfScore 6.75
+						;; size=103 bbWeight=0.50 PerfScore 9.75
 G_M28989_IG06:
-       add      rsp, 48
+       add      rsp, 104
        pop      rbx
+       pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax]System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs:SendToAsync(System.Net.Sockets.Socket,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this
-						;; size=15 bbWeight=0.50 PerfScore 2.38
+						;; size=17 bbWeight=0.50 PerfScore 2.62
 G_M28989_IG07:
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:FromCanceled[int](System.Threading.CancellationToken):System.Threading.Tasks.Task`1[int]
        call     [rax]System.Threading.Tasks.Task:FromCanceled[int](System.Threading.CancellationToken):System.Threading.Tasks.Task`1[int]
        test     rax, rax
        je       G_M28989_IG15
-       mov      gword ptr [rbp-0x50], rax
+       mov      gword ptr [rbp-0x68], rax
        xor      eax, eax
-       mov      dword ptr [rbp-0x48], eax
-       mov      word  ptr [rbp-0x44], 0
-       mov      byte  ptr [rbp-0x42], 1
-       mov      rax, gword ptr [rbp-0x50]
-       mov      rdx, qword ptr [rbp-0x48]
+       mov      dword ptr [rbp-0x60], eax
+       mov      word  ptr [rbp-0x5C], 0
+       mov      byte  ptr [rbp-0x5A], 1
+       mov      rax, gword ptr [rbp-0x68]
+       mov      rdx, qword ptr [rbp-0x60]
 						;; size=51 bbWeight=0.50 PerfScore 5.50
 G_M28989_IG08:
-       add      rsp, 48
+       add      rsp, 104
        pop      rbx
+       pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=13 bbWeight=0.50 PerfScore 1.88
+						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M28989_IG09:
        mov      rbx, gword ptr [rbx+0x08]
        cmp      byte  ptr [rbx], bl
        test     r15, r15
        je       SHORT G_M28989_IG10
        cmp      dword ptr [r15+0x20], 0
        jne      G_M28989_IG13
 						;; size=22 bbWeight=0.50 PerfScore 5.12
 G_M28989_IG10:
        lea      rdi, bword ptr [rbx+0x38]
-       xor      rax, rax
-       mov      r14, rax
+       xor      rcx, rcx
+       mov      r14, rcx
        xchg     gword ptr [rdi], r14
        test     r14, r14
        jne      SHORT G_M28989_IG11
        mov      rdi, 0xD1FFAB1E      ; System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs
        call     CORINFO_HELP_NEWFAST
        mov      r14, rax
        mov      byte  ptr [r14+0xBA], 0
        lea      rdi, bword ptr [r14+0xE0]
        mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
        mov      byte  ptr [r14+0xE8], 0
 						;; size=66 bbWeight=0.50 PerfScore 13.75
 G_M28989_IG11:
-       mov      rsi, gword ptr [rbp-0x30]
-       mov      rdx, qword ptr [rbp-0x28]
+       mov      gword ptr [rbp-0x58], r13
+       mov      dword ptr [rbp-0x50], r12d
+       mov      r12d, dword ptr [rbp-0x7C]
+       mov      dword ptr [rbp-0x4C], r12d
+       mov      rsi, gword ptr [rbp-0x58]
+       mov      rdx, qword ptr [rbp-0x50]
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.Net.Sockets.SocketAsyncEventArgs:SetBuffer(System.Memory`1[ubyte]):this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Net.Sockets.SocketAsyncEventArgs:SetBuffer(System.Memory`1[ubyte]):this
        xor      edi, edi
        mov      dword ptr [r14+0xA4], edi
        mov      byte  ptr [r14+0xE9], 0
        mov      rdi, r14
        mov      rsi, rbx
        mov      rdx, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs:SendAsync(System.Net.Sockets.Socket,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this
-						;; size=61 bbWeight=0.50 PerfScore 5.88
+						;; size=77 bbWeight=0.50 PerfScore 7.88
 G_M28989_IG12:
-       add      rsp, 48
+       add      rsp, 104
        pop      rbx
+       pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax]System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs:SendAsync(System.Net.Sockets.Socket,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this
-						;; size=15 bbWeight=0.50 PerfScore 2.38
+						;; size=17 bbWeight=0.50 PerfScore 2.62
 G_M28989_IG13:
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:FromCanceled[int](System.Threading.CancellationToken):System.Threading.Tasks.Task`1[int]
        call     [rax]System.Threading.Tasks.Task:FromCanceled[int](System.Threading.CancellationToken):System.Threading.Tasks.Task`1[int]
        test     rax, rax
        je       SHORT G_M28989_IG15
-       mov      gword ptr [rbp-0x40], rax
+       mov      gword ptr [rbp-0x48], rax
        xor      eax, eax
-       mov      dword ptr [rbp-0x38], eax
-       mov      word  ptr [rbp-0x34], 0
-       mov      byte  ptr [rbp-0x32], 1
-       mov      rax, gword ptr [rbp-0x40]
-       mov      rdx, qword ptr [rbp-0x38]
+       mov      dword ptr [rbp-0x40], eax
+       mov      word  ptr [rbp-0x3C], 0
+       mov      byte  ptr [rbp-0x3A], 1
+       mov      rax, gword ptr [rbp-0x48]
+       mov      rdx, qword ptr [rbp-0x40]
 						;; size=47 bbWeight=0.50 PerfScore 5.50
 G_M28989_IG14:
-       add      rsp, 48
+       add      rsp, 104
        pop      rbx
+       pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=13 bbWeight=0.50 PerfScore 1.88
+						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M28989_IG15:
        mov      edi, 9
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentNullException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentNullException(int)
        int3     
 						;; size=18 bbWeight=0.50 PerfScore 1.88
 G_M28989_IG16:
        mov      rdi, 0xD1FFAB1E      ; System.InvalidOperationException
        call     CORINFO_HELP_NEWSFAST
        mov      r15, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_net_udpconnected():System.String
        call     [rax]System.SR:get_net_udpconnected():System.String
        mov      rsi, rax
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.InvalidOperationException:.ctor(System.String):this
        call     [rax]System.InvalidOperationException:.ctor(System.String):this
        mov      rdi, r15
        call     CORINFO_HELP_THROW
        int3     
 						;; size=57 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 641, prolog size 27, PerfScore 94.08, instruction count 163, allocated bytes for code 641 (MethodHash=db728ec2) for method System.Net.Sockets.UdpClient:SendAsync(System.ReadOnlyMemory`1[ubyte],System.Net.IPEndPoint,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
+; Total bytes of code 735, prolog size 47, PerfScore 110.08, instruction count 186, allocated bytes for code 735 (MethodHash=db728ec2) for method System.Net.Sockets.UdpClient:SendAsync(System.ReadOnlyMemory`1[ubyte],System.Net.IPEndPoint,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts)
 ; ============================================================

Note: some changes were skipped as they were too large to fit into a comment.

Larger list of diffs: https://gist.github.com/MihuBot/810d0315d0981d5dda4f4e4e7a5a9181

@MihuBot
Copy link
Owner Author

MihuBot commented Jan 28, 2025

Top method improvements

-161 (-10.76 % of base) - System.IO.File+d__100:MoveNext():this
 ; Assembly listing for method System.IO.File+<InternalReadAllBytesAsync>d__100:MoveNext():this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 28 single block inlinees; 17 inlinees without PGO data
+; 0 inlinees with PGO data; 29 single block inlinees; 13 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 30, 68   )   byref  ->  [rbp-0x50]  this EH-live single-def
-;  V01 loc0         [V01,T29] (  7,  7   )     int  ->  [rbp-0x2C]  do-not-enreg[Z] EH-live
-;  V02 loc1         [V02,T31] (  4,  4   )     ref  ->  rbx         class-hnd single-def <ubyte[]>
+;  V00 this         [V00,T00] ( 30, 68   )   byref  ->  [rbp-0x48]  this EH-live single-def
+;  V01 loc0         [V01,T28] (  7,  7   )     int  ->  [rbp-0x2C]  do-not-enreg[Z] EH-live
+;  V02 loc1         [V02,T30] (  4,  4   )     ref  ->  rbx         class-hnd single-def <ubyte[]>
 ;* V03 loc2         [V03    ] (  0,  0   )     int  ->  zero-ref   
 ;  V04 loc3         [V04    ] ( 12, 43   )  struct (16) [rbp-0x40]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]>
 ;* V05 loc4         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Threading.Tasks.ValueTask`1[int]>
 ;* V06 loc5         [V06    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1[int]>
 ;* V07 loc6         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Exception>
 ;  V08 OutArgs      [V08    ] (  1,  1   )  struct ( 8) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V09 tmp1         [V09    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
-;  V10 tmp2         [V10,T07] (  3, 24   )     ref  ->  rbx         class-hnd exact "impAppendStmt" <Microsoft.Win32.SafeHandles.SafeFileHandle>
+;  V10 tmp2         [V10,T06] (  3, 24   )     ref  ->  rbx         class-hnd exact "impAppendStmt" <Microsoft.Win32.SafeHandles.SafeFileHandle>
 ;* V11 tmp3         [V11    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Memory`1[ubyte]>
-;  V12 tmp4         [V12,T32] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "NewArr temp" <ubyte[]>
-;  V13 tmp5         [V13,T47] (  2,  0   )     ref  ->  rdx         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
-;  V14 tmp6         [V14,T03] (  4, 32   )     ref  ->  r15         class-hnd "Inlining Arg" <ubyte[]>
-;  V15 tmp7         [V15,T04] (  4, 32   )     int  ->  r14         "Inlining Arg"
+;  V12 tmp4         [V12,T31] (  2,  4   )     ref  ->  rax         class-hnd exact single-def "NewArr temp" <ubyte[]>
+;  V13 tmp5         [V13,T41] (  2,  0   )     ref  ->  rdx         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
+;  V14 tmp6         [V14,T02] (  4, 32   )     ref  ->  r15         class-hnd "Inlining Arg" <ubyte[]>
+;  V15 tmp7         [V15,T03] (  4, 32   )     int  ->  r14         "Inlining Arg"
 ;* V16 tmp8         [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]>
-;  V17 tmp9         [V17,T15] (  2, 16   )    long  ->  r12         "Inlining Arg"
+;  V17 tmp9         [V17,T12] (  2, 16   )    long  ->  r12         "Inlining Arg"
 ;* V18 tmp10        [V18    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.CancellationToken>
-;  V19 tmp11        [V19,T14] (  2, 16   )     ref  ->  rcx         class-hnd "dup spill" <System.__Canon>
-;  V20 tmp12        [V20,T01] ( 15, 60   )     ref  ->  [rbp-0x58] 
-;  V21 tmp13        [V21,T08] (  3, 24   )     ref  ->  [rbp-0x60]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.Win32.SafeHandles.SafeFileHandle+ThreadPoolValueTaskSource>
+;  V19 tmp11        [V19,T11] (  2, 16   )     ref  ->  rcx         class-hnd "dup spill" <System.__Canon>
+;  V20 tmp12        [V20,T01] ( 15, 60   )     ref  ->  [rbp-0x50] 
+;  V21 tmp13        [V21,T07] (  3, 24   )     ref  ->  [rbp-0x58]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.Win32.SafeHandles.SafeFileHandle+ThreadPoolValueTaskSource>
 ;* V22 tmp14        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[int]>
-;* V23 tmp15        [V23    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Memory`1[ubyte]>
-;* V24 tmp16        [V24    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V25 tmp17        [V25,T16] (  2, 16   )   short  ->  rsi         "Inlining Arg"
-;* V26 tmp18        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[int]>
-;* V27 tmp19        [V27    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op "Inline stloc first use temp" <System.Threading.Tasks.ValueTask`1[int]>
-;* V28 tmp20        [V28    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1[int]>
-;* V29 tmp21        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Object>
-;* V30 tmp22        [V30    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;* V31 tmp23        [V31    ] (  0,  0   )   short  ->  zero-ref    "Inlining Arg"
-;* V32 tmp24        [V32    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]>
-;* V33 tmp25        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V34 tmp26        [V34,T12] (  4, 16   )     ref  ->  rbx         class-hnd "Inline stloc first use temp" <System.Object>
-;  V35 tmp27        [V35,T18] (  3, 12   )     ref  ->  rax         class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]>
-;* V36 tmp28        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[int]>
-;* V37 tmp29        [V37    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;* V38 tmp30        [V38    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V39 tmp31        [V39    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;* V40 tmp32        [V40    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Runtime.CompilerServices.IAsyncStateMachineBox>
-;  V41 tmp33        [V41,T05] (  5, 28   )     int  ->  rax         "Inline return value spill temp"
-;  V42 tmp34        [V42,T06] (  4, 24   )     ref  ->  rbx         class-hnd "Inline stloc first use temp" <System.Object>
-;  V43 tmp35        [V43,T11] (  5, 20   )     ref  ->  r15         class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]>
-;* V44 tmp36        [V44    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[int]>
-;  V45 tmp37        [V45,T24] (  4,  8   )   byref  ->  r15         single-def "Inlining Arg"
-;  V46 tmp38        [V46,T37] (  3,  3   )     ref  ->  r14         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[ubyte[]]>
-;* V47 tmp39        [V47    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd single-def "Inlining Arg" <ubyte[]>
-;  V48 tmp40        [V48,T25] (  4,  8   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task`1[ubyte[]]>
-;* V49 tmp41        [V49    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
-;* V50 tmp42        [V50    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <ubyte[]>
-;* V51 tmp43        [V51    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V52 tmp44        [V52,T10] ( 10, 20   )     ref  ->  r15         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[System.__Canon]>
-;* V53 tmp45        [V53    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Threading.Tasks.TplEventSource>
-;  V54 tmp46        [V54,T17] (  6, 12   )     ref  ->  r14         class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.TplEventSource>
-;  V55 tmp47        [V55,T34] (  2,  4   )     int  ->  r13         "Inlining Arg"
-;* V56 tmp48        [V56    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V57 tmp49        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;* V58 tmp50        [V58,T46] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;  V59 tmp51        [V59,T38] (  3,  3   )     ref  ->  rbx         class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task+ContingentProperties>
-;  V60 tmp52        [V60,T45] (  2,  2   )   ubyte  ->  rdi         "Inline return value spill temp"
-;  V61 tmp53        [V61,T30] (  5,  5   )     int  ->  [rbp-0x44]  spill-single-def "Inline stloc first use temp"
-;  V62 tmp54        [V62,T43] (  3,  3   )   ubyte  ->  rdi         "Inline return value spill temp"
-;  V63 tmp55        [V63,T02] (  6, 41   )     int  ->  [rbp-0x48]  "Inline stloc first use temp"
-;  V64 tmp56        [V64,T09] (  3, 24   )     int  ->  rax         "Inline stloc first use temp"
-;  V65 tmp57        [V65,T39] (  3,  3   )     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp" <System.Threading.ManualResetEventSlim>
-;* V66 tmp58        [V66    ] (  0,  0   )     ref  ->  zero-ref    "field V05._obj (fldOffset=0x0)" P-INDEP
-;* V67 tmp59        [V67    ] (  0,  0   )     int  ->  zero-ref    "field V05._result (fldOffset=0x8)" P-INDEP
-;* V68 tmp60        [V68    ] (  0,  0   )   short  ->  zero-ref    "field V05._token (fldOffset=0xc)" P-INDEP
-;* V69 tmp61        [V69    ] (  0,  0   )   ubyte  ->  zero-ref    "field V05._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
-;* V70 tmp62        [V70    ] (  0,  0   )     ref  ->  zero-ref    "field V11._object (fldOffset=0x0)" P-INDEP
-;* V71 tmp63        [V71    ] (  0,  0   )     int  ->  zero-ref    "field V11._index (fldOffset=0x8)" P-INDEP
-;* V72 tmp64        [V72    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0xc)" P-INDEP
-;  V73 tmp65        [V73,T19] (  3, 12   )     ref  ->  r15         "field V16._object (fldOffset=0x0)" P-INDEP
-;  V74 tmp66        [V74,T13] (  4, 16   )     int  ->  r14         "field V16._index (fldOffset=0x8)" P-INDEP
-;  V75 tmp67        [V75,T20] (  3, 12   )     int  ->  r13         "field V16._length (fldOffset=0xc)" P-INDEP
-;  V76 tmp68        [V76,T26] (  2,  8   )     ref  ->  [rbp-0x68]  spill-single-def "field V18._source (fldOffset=0x0)" P-INDEP
-;* V77 tmp69        [V77    ] (  0,  0   )     ref  ->  zero-ref    "field V22._obj (fldOffset=0x0)" P-INDEP
-;* V78 tmp70        [V78    ] (  0,  0   )     int  ->  zero-ref    "field V22._result (fldOffset=0x8)" P-INDEP
-;* V79 tmp71        [V79    ] (  0,  0   )   short  ->  zero-ref    "field V22._token (fldOffset=0xc)" P-INDEP
-;* V80 tmp72        [V80    ] (  0,  0   )   ubyte  ->  zero-ref    "field V22._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
-;* V81 tmp73        [V81    ] (  0,  0   )     ref  ->  zero-ref    "field V23._object (fldOffset=0x0)" P-INDEP
-;* V82 tmp74        [V82    ] (  0,  0   )     int  ->  zero-ref    "field V23._index (fldOffset=0x8)" P-INDEP
-;* V83 tmp75        [V83    ] (  0,  0   )     int  ->  zero-ref    "field V23._length (fldOffset=0xc)" P-INDEP
-;  V84 tmp76        [V84,T27] (  2,  8   )     ref  ->  rbx         "field V26._obj (fldOffset=0x0)" P-INDEP
-;* V85 tmp77        [V85,T35] (  0,  0   )     int  ->  zero-ref    "field V26._result (fldOffset=0x8)" P-INDEP
-;  V86 tmp78        [V86,T28] (  2,  8   )   short  ->  rsi         "field V26._token (fldOffset=0xc)" P-INDEP
-;* V87 tmp79        [V87,T36] (  0,  0   )   ubyte  ->  zero-ref    "field V26._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
-;* V88 tmp80        [V88    ] (  0,  0   )     ref  ->  zero-ref    "field V49._source (fldOffset=0x0)" P-INDEP
-;  V89 tmp81        [V89,T33] (  2,  4   )     ref  ->  rdx         "argument with side effect"
-;  V90 cse0         [V90,T40] (  3,  3   )     ref  ->  r14         "CSE #09: conservative"
-;  V91 cse1         [V91,T44] (  3,  3   )     int  ->  rsi         "CSE #10: conservative"
-;  V92 cse2         [V92,T21] (  3, 12   )     int  ->  rdi         "CSE #02: moderate"
-;  V93 cse3         [V93,T41] (  3,  3   )     ref  ->  rdi         "CSE #04: conservative"
-;  V94 cse4         [V94,T42] (  3,  3   )     ref  ->  rdi         "CSE #05: conservative"
-;  V95 cse5         [V95,T23] (  4, 11   )   byref  ->  r14         "CSE #11: moderate"
-;  V96 cse6         [V96,T22] (  3, 12   )     int  ->  r13         "CSE #01: moderate"
-;  V97 rat0         [V97    ] (  1,  1   )    long  ->  [rbp-0x78]  do-not-enreg[V] "PSPSym"
+;* V23 tmp15        [V23    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
+;* V24 tmp16        [V24    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Object>
+;* V25 tmp17        [V25    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V26 tmp18        [V26    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V27 tmp19        [V27    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;  V28 tmp20        [V28,T13] (  2, 16   )   short  ->  rsi         "Inlining Arg"
+;* V29 tmp21        [V29    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[int]>
+;* V30 tmp22        [V30    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op "Inline stloc first use temp" <System.Threading.Tasks.ValueTask`1[int]>
+;* V31 tmp23        [V31    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1[int]>
+;* V32 tmp24        [V32    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Object>
+;* V33 tmp25        [V33    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V34 tmp26        [V34    ] (  0,  0   )   short  ->  zero-ref    "Inlining Arg"
+;* V35 tmp27        [V35    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]>
+;* V36 tmp28        [V36    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V37 tmp29        [V37,T09] (  4, 16   )     ref  ->  rbx         class-hnd "Inline stloc first use temp" <System.Object>
+;  V38 tmp30        [V38,T15] (  3, 12   )     ref  ->  rax         class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]>
+;* V39 tmp31        [V39    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[int]>
+;* V40 tmp32        [V40    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V41 tmp33        [V41    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V42 tmp34        [V42    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V43 tmp35        [V43    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Runtime.CompilerServices.IAsyncStateMachineBox>
+;  V44 tmp36        [V44,T04] (  5, 28   )     int  ->  rax         "Inline return value spill temp"
+;  V45 tmp37        [V45,T05] (  4, 24   )     ref  ->  rbx         class-hnd "Inline stloc first use temp" <System.Object>
+;  V46 tmp38        [V46,T08] (  5, 20   )     ref  ->  r15         class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]>
+;* V47 tmp39        [V47    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[int]>
+;  V48 tmp40        [V48,T20] (  4,  8   )   byref  ->  r15         single-def "Inlining Arg"
+;  V49 tmp41        [V49,T36] (  3,  3   )     ref  ->  r14         class-hnd "Inline return value spill temp" <System.Threading.Tasks.Task`1[ubyte[]]>
+;* V50 tmp42        [V50    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd single-def "Inlining Arg" <ubyte[]>
+;  V51 tmp43        [V51,T21] (  4,  8   )     ref  ->  r14         class-hnd exact single-def "NewObj constructor temp" <System.Threading.Tasks.Task`1[ubyte[]]>
+;* V52 tmp44        [V52    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.CancellationToken>
+;* V53 tmp45        [V53    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <ubyte[]>
+;* V54 tmp46        [V54    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;  V55 tmp47        [V55,T29] (  3,  6   )     ref  ->  r15         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task`1[System.__Canon]>
+;* V56 tmp48        [V56    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Threading.Tasks.TplEventSource>
+;  V57 tmp49        [V57,T14] (  6, 12   )     ref  ->  r14         class-hnd exact single-def "Inlining Arg" <System.Threading.Tasks.TplEventSource>
+;  V58 tmp50        [V58,T33] (  2,  4   )     int  ->  r13         "Inlining Arg"
+;* V59 tmp51        [V59    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V60 tmp52        [V60    ] (  0,  0   )     ref  ->  zero-ref    "field V05._obj (fldOffset=0x0)" P-INDEP
+;* V61 tmp53        [V61    ] (  0,  0   )     int  ->  zero-ref    "field V05._result (fldOffset=0x8)" P-INDEP
+;* V62 tmp54        [V62    ] (  0,  0   )   short  ->  zero-ref    "field V05._token (fldOffset=0xc)" P-INDEP
+;* V63 tmp55        [V63    ] (  0,  0   )   ubyte  ->  zero-ref    "field V05._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
+;* V64 tmp56        [V64    ] (  0,  0   )     ref  ->  zero-ref    "field V11._object (fldOffset=0x0)" P-INDEP
+;* V65 tmp57        [V65    ] (  0,  0   )     int  ->  zero-ref    "field V11._index (fldOffset=0x8)" P-INDEP
+;* V66 tmp58        [V66    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0xc)" P-INDEP
+;  V67 tmp59        [V67,T16] (  3, 12   )     ref  ->  r15         "field V16._object (fldOffset=0x0)" P-INDEP
+;  V68 tmp60        [V68,T10] (  4, 16   )     int  ->  r14         "field V16._index (fldOffset=0x8)" P-INDEP
+;  V69 tmp61        [V69,T17] (  3, 12   )     int  ->  r13         "field V16._length (fldOffset=0xc)" P-INDEP
+;  V70 tmp62        [V70,T22] (  2,  8   )     ref  ->  [rbp-0x60]  spill-single-def "field V18._source (fldOffset=0x0)" P-INDEP
+;* V71 tmp63        [V71    ] (  0,  0   )     ref  ->  zero-ref    "field V22._obj (fldOffset=0x0)" P-INDEP
+;* V72 tmp64        [V72    ] (  0,  0   )     int  ->  zero-ref    "field V22._result (fldOffset=0x8)" P-INDEP
+;* V73 tmp65        [V73    ] (  0,  0   )   short  ->  zero-ref    "field V22._token (fldOffset=0xc)" P-INDEP
+;* V74 tmp66        [V74    ] (  0,  0   )   ubyte  ->  zero-ref    "field V22._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
+;  V75 tmp67        [V75,T23] (  2,  8   )     ref  ->  rsi         "field V23._object (fldOffset=0x0)" P-INDEP
+;  V76 tmp68        [V76,T25] (  2,  8   )     int  ->  r14         "field V23._index (fldOffset=0x8)" P-INDEP
+;  V77 tmp69        [V77,T26] (  2,  8   )     int  ->  r13         "field V23._length (fldOffset=0xc)" P-INDEP
+;  V78 tmp70        [V78,T24] (  2,  8   )     ref  ->  rbx         "field V29._obj (fldOffset=0x0)" P-INDEP
+;* V79 tmp71        [V79,T34] (  0,  0   )     int  ->  zero-ref    "field V29._result (fldOffset=0x8)" P-INDEP
+;  V80 tmp72        [V80,T27] (  2,  8   )   short  ->  rsi         "field V29._token (fldOffset=0xc)" P-INDEP
+;* V81 tmp73        [V81,T35] (  0,  0   )   ubyte  ->  zero-ref    "field V29._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
+;* V82 tmp74        [V82    ] (  0,  0   )     ref  ->  zero-ref    "field V52._source (fldOffset=0x0)" P-INDEP
+;  V83 tmp75        [V83,T32] (  2,  4   )     ref  ->  rdx         "argument with side effect"
+;  V84 cse0         [V84,T37] (  3,  3   )     ref  ->  r14         "CSE #09: conservative"
+;  V85 cse1         [V85,T40] (  3,  3   )     int  ->  rsi         "CSE #10: conservative"
+;  V86 cse2         [V86,T18] (  3, 12   )     int  ->  rdi         "CSE #02: moderate"
+;  V87 cse3         [V87,T38] (  3,  3   )     ref  ->  rdi         "CSE #04: conservative"
+;  V88 cse4         [V88,T39] (  3,  3   )     ref  ->  rdi         "CSE #05: conservative"
+;  V89 cse5         [V89,T19] (  3, 12   )     int  ->  r13         "CSE #01: moderate"
+;  V90 rat0         [V90    ] (  1,  1   )    long  ->  [rbp-0x68]  do-not-enreg[V] "PSPSym"
 ;
-; Lcl frame size = 88
+; Lcl frame size = 72
 
 G_M43673_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 88
-       lea      rbp, [rsp+0x80]
+       sub      rsp, 72
+       lea      rbp, [rsp+0x70]
        xor      eax, eax
        mov      qword ptr [rbp-0x40], rax
-       mov      qword ptr [rbp-0x78], rsp
-       mov      bword ptr [rbp-0x50], rdi
+       mov      qword ptr [rbp-0x68], rsp
+       mov      bword ptr [rbp-0x48], rdi
        mov      rdx, rdi
-						;; size=39 bbWeight=1 PerfScore 10.25
+						;; size=36 bbWeight=1 PerfScore 10.25
 G_M43673_IG02:
        mov      edi, dword ptr [rdx+0x18]
        mov      dword ptr [rbp-0x2C], edi
 						;; size=6 bbWeight=1 PerfScore 3.00
 G_M43673_IG03:
        cmp      dword ptr [rbp-0x2C], 0
        je       SHORT G_M43673_IG04
        mov      rsi, gword ptr [rdx]
        lea      rdi, bword ptr [rdx+0x08]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       mov      rdx, bword ptr [rbp-0x50]
+       mov      rdx, bword ptr [rbp-0x48]
 						;; size=22 bbWeight=1 PerfScore 7.50
 G_M43673_IG04:
        cmp      dword ptr [rbp-0x2C], 0
        jne      SHORT G_M43673_IG07
 						;; size=6 bbWeight=1 PerfScore 3.00
 G_M43673_IG05:
        vmovdqu  xmm0, xmmword ptr [rdx+0x38]
        vmovdqu  xmmword ptr [rbp-0x40], xmm0
 						;; size=10 bbWeight=1 PerfScore 5.00
 G_M43673_IG06:
        xor      esi, esi
        mov      qword ptr [rdx+0x38], rsi
        mov      qword ptr [rdx+0x40], rsi
        mov      dword ptr [rbp-0x2C], -1
        mov      dword ptr [rdx+0x18], -1
        jmp      G_M43673_IG16
-       align    [0 bytes for IG31]
 						;; size=29 bbWeight=1 PerfScore 6.25
 G_M43673_IG07:
        xor      esi, esi
        mov      dword ptr [rdx+0x20], esi
        movsxd   rsi, dword ptr [rdx+0x1C]
        mov      rdi, 0xD1FFAB1E      ; ubyte[]
        call     CORINFO_HELP_NEWARR_1_VC
-       mov      rdx, bword ptr [rbp-0x50]
+       mov      rdx, bword ptr [rbp-0x48]
        lea      rdi, bword ptr [rdx+0x10]
        mov      rsi, rax
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
 						;; size=40 bbWeight=1 PerfScore 9.25
 G_M43673_IG08:
-       mov      rdx, bword ptr [rbp-0x50]
+       mov      rdx, bword ptr [rbp-0x48]
        mov      rbx, gword ptr [rdx]
        mov      r15, gword ptr [rdx+0x10]
        mov      edi, dword ptr [rdx+0x20]
        mov      r14d, edi
        test     r15, r15
        je       SHORT G_M43673_IG09
        mov      r13d, dword ptr [r15+0x08]
        cmp      r13d, r14d
        jb       G_M43673_IG24
        sub      r13d, r14d
        jmp      SHORT G_M43673_IG10
 						;; size=40 bbWeight=4 PerfScore 56.00
 G_M43673_IG09:
        test     r14d, r14d
        jne      G_M43673_IG24
        xor      r15, r15
        xor      r14d, r14d
        xor      r13d, r13d
 						;; size=18 bbWeight=4 PerfScore 8.00
 G_M43673_IG10:
        movsxd   r12, edi
        mov      rax, gword ptr [rdx+0x30]
-       mov      gword ptr [rbp-0x68], rax
+       mov      gword ptr [rbp-0x60], rax
        lea      rdi, bword ptr [rbx+0x20]
        xor      rcx, rcx
        xchg     gword ptr [rdi], rcx
        test     rcx, rcx
        jne      SHORT G_M43673_IG11
        mov      rdi, 0xD1FFAB1E      ; Microsoft.Win32.SafeHandles.SafeFileHandle+ThreadPoolValueTaskSource
        call     CORINFO_HELP_NEWSFAST
        mov      rcx, rax
-       mov      gword ptr [rbp-0x60], rcx
+       mov      gword ptr [rbp-0x58], rcx
        lea      rdi, bword ptr [rcx+0x08]
        mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
-       mov      rbx, gword ptr [rbp-0x60]
+       mov      rbx, gword ptr [rbp-0x58]
        mov      rcx, rbx
 						;; size=66 bbWeight=4 PerfScore 123.00
 G_M43673_IG11:
        mov      byte  ptr [rcx+0x38], 1
-       mov      gword ptr [rbp-0x58], rcx
-       lea      rdi, bword ptr [rcx+0x78]
        mov      rsi, r15
+       mov      gword ptr [rbp-0x50], rcx
+       lea      rdi, bword ptr [rcx+0x78]
        call     CORINFO_HELP_ASSIGN_REF
-       mov      rbx, gword ptr [rbp-0x58]
+       mov      rbx, gword ptr [rbp-0x50]
        mov      dword ptr [rbx+0x80], r14d
        mov      dword ptr [rbx+0x84], r13d
        mov      qword ptr [rbx+0x30], r12
        lea      rdi, bword ptr [rbx+0x70]
-       mov      rsi, gword ptr [rbp-0x68]
+       mov      rsi, gword ptr [rbp-0x60]
        call     CORINFO_HELP_ASSIGN_REF
        xor      rax, rax
        mov      gword ptr [rbx+0x18], rax
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
        call     [rax]System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext
        lea      rdi, bword ptr [rbx+0x10]
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
        mov      rsi, rbx
        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        test     rax, rax
        jne      G_M43673_IG23
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      rdi, gword ptr [rdi]
        mov      rsi, rbx
        xor      edx, edx
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this
        call     [rax]System.Threading.ThreadPoolWorkQueue:Enqueue(System.Object,ubyte):this
        movsx    rsi, word  ptr [rbx+0x68]
        mov      gword ptr [rbp-0x40], rbx
        xor      edi, edi
        mov      dword ptr [rbp-0x38], edi
        mov      word  ptr [rbp-0x34], si
        mov      byte  ptr [rbp-0x32], 0
        mov      rbx, gword ptr [rbp-0x40]
        test     rbx, rbx
        je       G_M43673_IG16
        mov      rsi, rbx
        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[int]
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        test     rax, rax
 						;; size=212 bbWeight=4 PerfScore 168.00
 G_M43673_IG12:
        jne      SHORT G_M43673_IG15
        mov      rdi, rbx
        movsx    rsi, word  ptr [rbp-0x34]
        mov      r11, 0xD1FFAB1E      ; code for System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetStatus(short):int:this
        call     [r11]System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetStatus(short):int:this
        test     eax, eax
        jne      SHORT G_M43673_IG16
 						;; size=27 bbWeight=4 PerfScore 35.00
 G_M43673_IG13:
        xor      edi, edi
        mov      dword ptr [rbp-0x2C], edi
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M43673_IG14:
-       mov      rdx, bword ptr [rbp-0x50]
+       mov      rdx, bword ptr [rbp-0x48]
        mov      dword ptr [rdx+0x18], edi
        lea      rdi, bword ptr [rdx+0x38]
        lea      rsi, bword ptr [rbp-0x40]
        call     CORINFO_HELP_ASSIGN_BYREF
        movsq    
        add      rdx, 40
-       mov      rsi, bword ptr [rbp-0x50]
+       mov      rsi, bword ptr [rbp-0x48]
        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[ubyte[]]:GetStateMachineBox[System.IO.File+<InternalReadAllBytesAsync>d__100](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.__Canon]:GetStateMachineBox[System.IO.File+<InternalReadAllBytesAsync>d__100](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox
        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.__Canon]:GetStateMachineBox[System.IO.File+<InternalReadAllBytesAsync>d__100](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox
        mov      rdx, rax
        lea      rsi, [rbp-0x40]
        mov      rdi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[ubyte[]]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)
        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.__Canon]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)
        jmp      G_M43673_IG27
 						;; size=86 bbWeight=1 PerfScore 16.00
 G_M43673_IG15:
        test     dword ptr [rax+0x34], 0xD1FFAB1E
        je       SHORT G_M43673_IG13
 						;; size=9 bbWeight=4 PerfScore 16.00
 G_M43673_IG16:
        mov      rbx, gword ptr [rbp-0x40]
        test     rbx, rbx
        je       SHORT G_M43673_IG20
 						;; size=9 bbWeight=8 PerfScore 18.00
 G_M43673_IG17:
        mov      rsi, rbx
        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[int]
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        mov      r15, rax
        test     r15, r15
        jne      SHORT G_M43673_IG18
        mov      rdi, rbx
        movsx    rsi, word  ptr [rbp-0x34]
        mov      r11, 0xD1FFAB1E      ; code for System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetResult(short):int:this
        call     [r11]System.Threading.Tasks.Sources.IValueTaskSource`1[int]:GetResult(short):int:this
        jmp      SHORT G_M43673_IG21
 						;; size=56 bbWeight=4 PerfScore 55.00
 G_M43673_IG18:
        mov      edi, dword ptr [r15+0x34]
        and      edi, 0xD1FFAB1E
        cmp      edi, 0xD1FFAB1E
        je       SHORT G_M43673_IG19
        mov      rdi, r15
        xor      esi, esi
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)
        call     [rax]System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int)
 						;; size=35 bbWeight=4 PerfScore 29.00
 G_M43673_IG19:
        mov      eax, dword ptr [r15+0x38]
        jmp      SHORT G_M43673_IG21
 						;; size=6 bbWeight=4 PerfScore 16.00
 G_M43673_IG20:
        mov      eax, dword ptr [rbp-0x38]
 						;; size=3 bbWeight=4 PerfScore 4.00
 G_M43673_IG21:
        test     eax, eax
        je       SHORT G_M43673_IG25
-       mov      rdx, bword ptr [rbp-0x50]
+       mov      rdx, bword ptr [rbp-0x48]
        add      dword ptr [rdx+0x20], eax
        mov      edi, dword ptr [rdx+0x20]
        cmp      edi, dword ptr [rdx+0x1C]
        jl       G_M43673_IG08
 						;; size=23 bbWeight=8 PerfScore 90.00
 G_M43673_IG22:
-       mov      rdx, bword ptr [rbp-0x50]
+       mov      rdx, bword ptr [rbp-0x48]
        mov      rbx, gword ptr [rdx+0x10]
        jmp      SHORT G_M43673_IG26
 						;; size=10 bbWeight=1 PerfScore 5.00
 G_M43673_IG23:
        mov      edi, 44
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
        int3     
 						;; size=18 bbWeight=1 PerfScore 3.75
 G_M43673_IG24:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=1 PerfScore 3.50
 G_M43673_IG25:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowEndOfFileException()
        call     [rax]System.ThrowHelper:ThrowEndOfFileException()
        int3     
 						;; size=13 bbWeight=1 PerfScore 3.50
 G_M43673_IG26:
        cmp      dword ptr [rbp-0x2C], 0
        jge      SHORT G_M43673_IG29
        mov      rdi, gword ptr [rdx+0x08]
        test     rdi, rdi
        je       SHORT G_M43673_IG29
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.SafeHandle:Dispose():this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Runtime.InteropServices.SafeHandle:Dispose():this
        jmp      SHORT G_M43673_IG29
 						;; size=31 bbWeight=1 PerfScore 14.50
 G_M43673_IG27:
        mov      rdi, rsp
 						;; size=3 bbWeight=1 PerfScore 0.25
 G_M43673_IG28:
-       call     G_M43673_IG46
-       jmp      G_M43673_IG43
+       call     G_M43673_IG38
+       jmp      G_M43673_IG35
 						;; size=10 bbWeight=1 PerfScore 3.00
 G_M43673_IG29:
-       mov      rdx, bword ptr [rbp-0x50]
+       mov      rdx, bword ptr [rbp-0x48]
        mov      dword ptr [rdx+0x18], -2
        lea      r15, bword ptr [rdx+0x28]
        cmp      gword ptr [r15], 0
-       je       G_M43673_IG39
+       je       G_M43673_IG31
        mov      r15, gword ptr [r15]
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      r14, gword ptr [rdi]
        cmp      byte  ptr [r14+0x9D], 0
        je       SHORT G_M43673_IG30
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:get_Id():int:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Threading.Tasks.Task:get_Id():int:this
        mov      r13d, eax
        movzx    rsi, byte  ptr [r14+0x9D]
        test     esi, esi
        je       SHORT G_M43673_IG30
        xor      ecx, ecx
        mov      dword ptr [rsp], ecx
        mov      rcx, qword ptr [r14+0x80]
        mov      edx, dword ptr [r14+0x98]
        mov      rdi, r14
        mov      r8d, 4
        mov      r9d, 8
        mov      rax, 0xD1FFAB1E      ; code for System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this
        call     [rax]System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this
        test     eax, eax
        je       SHORT G_M43673_IG30
        mov      rdi, r14
        mov      edx, r13d
        mov      esi, 15
        mov      ecx, 1
        mov      rax, 0xD1FFAB1E      ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int):this
        call     [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int):this
 						;; size=161 bbWeight=1 PerfScore 39.50
 G_M43673_IG30:
-       mov      eax, dword ptr [r15+0x34]
-       mov      dword ptr [rbp-0x44], eax
-       test     eax, 0xD1FFAB1E
-       jne      SHORT G_M43673_IG36
-       lea      r14, bword ptr [r15+0x34]
-       mov      edi, eax
-       or       edi, 0xD1FFAB1E
-       lock     
-       cmpxchg  dword ptr [r14], edi
-       cmp      eax, dword ptr [rbp-0x44]
-       je       SHORT G_M43673_IG37
-       mov      eax, dword ptr [r15+0x34]
-       jmp      SHORT G_M43673_IG32
-						;; size=42 bbWeight=1 PerfScore 30.25
-G_M43673_IG31:
-       mov      edi, eax
-       mov      eax, edi
-						;; size=4 bbWeight=8 PerfScore 4.00
-G_M43673_IG32:
-       test     eax, 0xD1FFAB1E
-       jne      SHORT G_M43673_IG34
-       mov      edi, eax
-       or       edi, 0xD1FFAB1E
-       mov      dword ptr [rbp-0x48], eax
-       lock     
-       cmpxchg  dword ptr [r14], edi
-       mov      edi, dword ptr [rbp-0x48]
-       cmp      eax, edi
-       jne      SHORT G_M43673_IG31
-						;; size=30 bbWeight=8 PerfScore 184.00
-G_M43673_IG33:
-       mov      edi, 1
-       jmp      SHORT G_M43673_IG35
-						;; size=7 bbWeight=1 PerfScore 2.25
-G_M43673_IG34:
-       xor      edi, edi
-						;; size=2 bbWeight=1 PerfScore 0.25
-G_M43673_IG35:
-       test     edi, edi
-       jne      SHORT G_M43673_IG37
-						;; size=4 bbWeight=1 PerfScore 1.25
-G_M43673_IG36:
+       mov      rdi, r15
+       mov      rsi, rbx
+       mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task`1[System.__Canon]:TrySetResult(System.__Canon):ubyte:this
+       cmp      dword ptr [rdi], edi
+       call     [rax]System.Threading.Tasks.Task`1[System.__Canon]:TrySetResult(System.__Canon):ubyte:this
+       test     eax, eax
+       jne      SHORT G_M43673_IG35
        mov      edi, 24
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException(int)
        call     [rax]System.ThrowHelper:ThrowInvalidOperationException(int)
        int3     
-						;; size=18 bbWeight=1 PerfScore 3.75
-G_M43673_IG37:
-       lea      rdi, bword ptr [r15+0x38]
-       mov      rsi, rbx
-       call     CORINFO_HELP_ASSIGN_REF
-       mov      edi, dword ptr [r15+0x34]
-       or       edi, 0xD1FFAB1E
-       xchg     dword ptr [r14], edi
-       mov      rbx, gword ptr [r15+0x28]
+						;; size=42 bbWeight=1 PerfScore 11.75
+G_M43673_IG31:
        test     rbx, rbx
-       je       SHORT G_M43673_IG38
-       mov      rdi, r15
-       mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:NotifyParentIfPotentiallyAttachedTask():this
-       call     [rax]System.Threading.Tasks.Task:NotifyParentIfPotentiallyAttachedTask():this
-       mov      rdi, gword ptr [rbx+0x10]
-       test     rdi, rdi
-       je       SHORT G_M43673_IG38
-       mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task+ContingentProperties:SetEvent(System.Threading.ManualResetEventSlim)
-       call     [rax]System.Threading.Tasks.Task+ContingentProperties:SetEvent(System.Threading.ManualResetEventSlim)
-						;; size=70 bbWeight=1 PerfScore 37.25
-G_M43673_IG38:
-       mov      rdi, r15
-       mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:FinishContinuations():this
-       call     [rax]System.Threading.Tasks.Task:FinishContinuations():this
-       jmp      SHORT G_M43673_IG43
-						;; size=17 bbWeight=1 PerfScore 5.50
-G_M43673_IG39:
-       test     rbx, rbx
-       je       SHORT G_M43673_IG40
+       je       SHORT G_M43673_IG32
        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[ubyte[]]
        call     CORINFO_HELP_NEWSFAST
        mov      r14, rax
        mov      dword ptr [r14+0x34], 0xD1FFAB1E
        lea      rdi, bword ptr [r14+0x38]
        mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
-       jmp      SHORT G_M43673_IG42
+       jmp      SHORT G_M43673_IG34
 						;; size=45 bbWeight=1 PerfScore 7.50
-G_M43673_IG40:
+G_M43673_IG32:
        mov      rdi, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rdi], 1
-       je       SHORT G_M43673_IG45
+       je       SHORT G_M43673_IG37
 						;; size=15 bbWeight=1 PerfScore 4.25
-G_M43673_IG41:
+G_M43673_IG33:
        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.Task`1[ubyte[]]:s_defaultResultTask
        mov      r14, gword ptr [rdi]
 						;; size=13 bbWeight=1 PerfScore 2.25
-G_M43673_IG42:
+G_M43673_IG34:
        mov      rdi, r15
        mov      rsi, r14
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
 						;; size=11 bbWeight=1 PerfScore 1.50
-G_M43673_IG43:
+G_M43673_IG35:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
-G_M43673_IG44:
-       add      rsp, 88
+G_M43673_IG36:
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
-G_M43673_IG45:
+G_M43673_IG37:
        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[ubyte[]]
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
-       jmp      SHORT G_M43673_IG41
+       jmp      SHORT G_M43673_IG33
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M43673_IG46:
+G_M43673_IG38:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 24
        mov      rbp, qword ptr [rdi+0x08]
        mov      qword ptr [rsp+0x08], rbp
-       lea      rbp, [rbp+0x80]
-						;; size=30 bbWeight=1 PerfScore 9.75
-G_M43673_IG47:
+       lea      rbp, [rbp+0x70]
+						;; size=27 bbWeight=1 PerfScore 9.75
+G_M43673_IG39:
        cmp      dword ptr [rbp-0x2C], 0
-       jge      SHORT G_M43673_IG48
-       mov      r15, bword ptr [rbp-0x50]
+       jge      SHORT G_M43673_IG40
+       mov      r15, bword ptr [rbp-0x48]
        mov      rdi, gword ptr [r15+0x08]
        test     rdi, rdi
-       je       SHORT G_M43673_IG48
+       je       SHORT G_M43673_IG40
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.SafeHandle:Dispose():this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Runtime.InteropServices.SafeHandle:Dispose():this
        nop      
 						;; size=34 bbWeight=1 PerfScore 13.75
-G_M43673_IG48:
+G_M43673_IG40:
        add      rsp, 24
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
-G_M43673_IG49:
+G_M43673_IG41:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 24
        mov      rbp, qword ptr [rdi+0x08]
        mov      qword ptr [rsp+0x08], rbp
-       lea      rbp, [rbp+0x80]
-						;; size=30 bbWeight=0 PerfScore 0.00
-G_M43673_IG50:
+       lea      rbp, [rbp+0x70]
+						;; size=27 bbWeight=0 PerfScore 0.00
+G_M43673_IG42:
        mov      rdx, rsi
-       mov      r15, bword ptr [rbp-0x50]
+       mov      r15, bword ptr [rbp-0x48]
        mov      dword ptr [r15+0x18], -2
        lea      rdi, bword ptr [r15+0x28]
        mov      rsi, 0xD1FFAB1E      ; System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[ubyte[]]
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.__Canon]:SetException(System.Exception):this
        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.__Canon]:SetException(System.Exception):this
-       lea      rax, G_M43673_IG43
+       lea      rax, G_M43673_IG35
 						;; size=48 bbWeight=0 PerfScore 0.00
-G_M43673_IG51:
+G_M43673_IG43:
        add      rsp, 24
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1496, prolog size 39, PerfScore 1068.75, instruction count 381, allocated bytes for code 1496 (MethodHash=66205566) for method System.IO.File+<InternalReadAllBytesAsync>d__100:MoveNext():this (FullOpts)
+; Total bytes of code 1335, prolog size 36, PerfScore 812.00, instruction count 336, allocated bytes for code 1335 (MethodHash=66205566) for method System.IO.File+<InternalReadAllBytesAsync>d__100:MoveNext():this (FullOpts)
 ; ============================================================

Note: some changes were skipped as they were too large to fit into a comment.

Larger list of diffs: https://gist.github.com/MihuBot/3a103260e8cba00fde2c81b39c4a4b3c

@MihuBot
Copy link
Owner Author

MihuBot commented Jan 28, 2025

@xtqqczze

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant