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] Remove unsafe modifier from Memory<T>.Span #744

Open
MihuBot opened this issue Oct 22, 2024 · 3 comments
Open

[JitDiff X64] [xtqqczze] Remove unsafe modifier from Memory<T>.Span #744

MihuBot opened this issue Oct 22, 2024 · 3 comments

Comments

@MihuBot
Copy link
Owner

MihuBot commented Oct 22, 2024

Job completed in 18 minutes 44 seconds.
dotnet/runtime#106085

Diffs

Diffs
Found 286 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 39524734
Total bytes of diff: 39525609
Total bytes of delta: 875 (0.00 % of base)
Total relative delta: 0.77
    diff is a regression.
    relative diff is a regression.


Top file regressions (bytes):
         157 : System.Security.Cryptography.Pkcs.dasm (0.04 % of base)
         147 : System.Security.Cryptography.dasm (0.01 % of base)
         144 : System.Net.WebSockets.dasm (0.10 % of base)
         138 : System.Private.CoreLib.dasm (0.00 % of base)
          98 : System.Memory.dasm (0.03 % of base)
          42 : System.Net.Quic.dasm (0.03 % of base)
          34 : System.Net.Http.dasm (0.00 % of base)
          27 : System.Text.Json.dasm (0.00 % of base)
          20 : System.Formats.Tar.dasm (0.02 % of base)
          16 : System.IO.Pipelines.dasm (0.02 % of base)
          15 : System.IO.Compression.dasm (0.02 % of base)
          14 : System.Security.Cryptography.Cose.dasm (0.02 % of base)
           6 : Microsoft.Extensions.DependencyModel.dasm (0.01 % of base)
           5 : System.IO.Compression.Brotli.dasm (0.02 % of base)
           5 : System.Text.RegularExpressions.dasm (0.00 % of base)
           3 : System.Formats.Asn1.dasm (0.00 % of base)
           2 : System.Net.Sockets.dasm (0.00 % of base)
           2 : System.Net.Security.dasm (0.00 % of base)

18 total files with Code Size differences (0 improved, 18 regressed), 241 unchanged.

Top method regressions (bytes):
          18 (0.75 % of base) : System.Net.Quic.dasm - System.Net.Quic.QuicConnection+SslConnectionOptions+<StartAsyncCertificateValidation>d__12:MoveNext():this (FullOpts)
          17 (0.65 % of base) : System.Private.CoreLib.dasm - System.IO.StreamReader+<ReadAsyncInternal>d__69:MoveNext():this (FullOpts)
          16 (0.18 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__61`1[System.Nullable`1[int]]:MoveNext():this (FullOpts)
          15 (0.17 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__61`1[double]:MoveNext():this (FullOpts)
          15 (0.17 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__61`1[int]:MoveNext():this (FullOpts)
          15 (0.17 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__61`1[long]:MoveNext():this (FullOpts)
          15 (0.17 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__61`1[short]:MoveNext():this (FullOpts)
          15 (0.16 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__61`1[System.Numerics.Vector`1[float]]:MoveNext():this (FullOpts)
          15 (0.17 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__61`1[ubyte]:MoveNext():this (FullOpts)
          15 (0.44 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.CryptoStream+<WriteAsyncCore>d__53:MoveNext():this (FullOpts)
          11 (0.65 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseMessage+<AppendToBeSignedAsync>d__38:MoveNext():this (FullOpts)
          10 (0.10 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__61`1[System.__Canon]:MoveNext():this (FullOpts)
          10 (0.27 % of base) : System.Text.Json.dasm - System.Text.Json.JsonElement:DeepEquals(System.Text.Json.JsonElement,System.Text.Json.JsonElement):ubyte (FullOpts)
           9 (0.28 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader+<WriteAsPaxAsync>d__97:MoveNext():this (FullOpts)
           9 (0.42 % of base) : System.Private.CoreLib.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<WriteAsyncSlowPath>d__48:MoveNext():this (FullOpts)
           8 (0.27 % of base) : System.Private.CoreLib.dasm - System.IO.BufferedStream+<WriteToUnderlyingStreamAsync>d__59:MoveNext():this (FullOpts)
           8 (0.27 % of base) : System.Private.CoreLib.dasm - System.IO.File+<WriteToFileAsync>d__122:MoveNext():this (FullOpts)
           8 (0.31 % of base) : System.Private.CoreLib.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<ReadAsyncSlowPath>d__37:MoveNext():this (FullOpts)
           8 (0.25 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.CryptoStream+<ReadAsyncCore>d__44:MoveNext():this (FullOpts)
           8 (0.65 % 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)
           8 (0.63 % 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)
           8 (0.65 % 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)
           8 (0.63 % 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)
           8 (0.65 % 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)
           8 (0.63 % 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)
           8 (0.65 % 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)
           8 (0.63 % 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)
           8 (0.63 % 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)
           8 (0.61 % 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)
           8 (0.65 % 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)
           8 (0.63 % 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)
           8 (0.65 % 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)
           8 (0.63 % 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)
           8 (0.65 % 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)
           8 (0.63 % 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 (0.40 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PasswordBasedEncryption:OpenPbkdf2(System.ReadOnlySpan`1[ubyte],System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],byref):System.Security.Cryptography.Rfc2898DeriveBytes (FullOpts)
           8 (0.40 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.PasswordBasedEncryption:OpenPbkdf2(System.ReadOnlySpan`1[ubyte],System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],byref):System.Security.Cryptography.Rfc2898DeriveBytes (FullOpts)
           8 (0.20 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.CertificateRequest:LoadSigningRequest(System.ReadOnlySpan`1[ubyte],ubyte,System.Security.Cryptography.HashAlgorithmName,byref,int,System.Security.Cryptography.RSASignaturePadding):System.Security.Cryptography.X509Certificates.CertificateRequest (FullOpts)
           8 (0.29 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X500NameEncoder:X500DistinguishedNameDecode(ubyte[],ubyte,ubyte,ubyte,System.String,System.String,ubyte):System.String (FullOpts)
           7 (1.22 % of base) : System.IO.Compression.dasm - System.IO.Compression.InputBuffer:CopyTo(System.Memory`1[ubyte]):int:this (FullOpts)
           7 (1.66 % of base) : System.IO.Pipelines.dasm - System.IO.Pipelines.StreamPipeWriter:FlushInternal(ubyte):this (FullOpts)
           7 (0.92 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.OriginatorInfoAsn:Encode(System.Formats.Asn1.AsnWriter,System.Formats.Asn1.Asn1Tag):this (FullOpts)
           7 (1.85 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.SignedCms:get_Certificates():System.Security.Cryptography.X509Certificates.X509Certificate2Collection:this (FullOpts)
           6 (0.26 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader+<WriteAsGnuAsync>d__99:MoveNext():this (FullOpts)
           6 (0.16 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+<HandleReceivedCloseAsync>d__63:MoveNext():this (FullOpts)
           6 (0.48 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:WriteComplexElement(int,System.Text.Json.Utf8JsonWriter):this (FullOpts)
           5 (0.57 % of base) : System.Private.CoreLib.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle+ThreadPoolValueTaskSource:ExecuteInternal():this (FullOpts)
           5 (0.25 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader+<WriteWithUnseekableDataStreamAsync>d__86:MoveNext():this (FullOpts)
           5 (0.87 % of base) : System.IO.Pipelines.dasm - System.IO.Pipelines.Pipe:WriteMultiSegment(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
           5 (0.41 % of base) : System.Private.CoreLib.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<ReadFromNonSeekableAsync>d__36:MoveNext():this (FullOpts)
           5 (0.26 % of base) : System.Net.Http.dasm - System.Net.Http.Http3RequestStream+<ReadResponseContentAsync>d__56:MoveNext():this (FullOpts)
           5 (1.01 % of base) : System.Net.Quic.dasm - System.Net.MultiMemory:CopyFrom(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
           5 (1.01 % of base) : System.Net.Http.dasm - System.Net.MultiMemory:CopyFrom(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
           5 (0.34 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+<EnsureBufferContainsAsync>d__72:MoveNext():this (FullOpts)
           5 (0.22 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+<HandleReceivedPingPongAsync>d__65:MoveNext():this (FullOpts)
           5 (0.70 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Asn1.AttributeAsn:Encode(System.Formats.Asn1.AsnWriter,System.Formats.Asn1.Asn1Tag):this (FullOpts)
           5 (0.70 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Asn1.AttributeAsn:Encode(System.Formats.Asn1.AsnWriter,System.Formats.Asn1.Asn1Tag):this (FullOpts)
           5 (0.43 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.SignedDataAsn:Encode(System.Formats.Asn1.AsnWriter,System.Formats.Asn1.Asn1Tag):this (FullOpts)
           5 (0.12 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Pkcs12SafeContents:ReadBags(System.ReadOnlyMemory`1[ubyte]):System.Collections.Generic.List`1[System.Security.Cryptography.Pkcs.Pkcs12SafeBag] (FullOpts)
           5 (0.28 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampToken:TryDecode(System.ReadOnlyMemory`1[ubyte],byref,byref):ubyte (FullOpts)
           5 (0.41 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.SignedCms:GetContent(System.ReadOnlyMemory`1[ubyte],System.String):System.ReadOnlyMemory`1[ubyte] (FullOpts)
           5 (1.89 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.SignerInfo:FindAttributeValueIndexByEncodedData(System.ReadOnlyMemory`1[ubyte][],System.ReadOnlySpan`1[ubyte],byref):int (FullOpts)
           5 (0.23 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509CertificateLoader:ReadCertsAndKeys(byref,System.ReadOnlyMemory`1[ubyte],byref,System.Security.Cryptography.X509Certificates.Pkcs12LoaderLimits) (FullOpts)
           5 (0.34 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509CertificateLoader+CertKeyMatcher:MatchCertAndKeys(byref,ubyte):System.Security.Cryptography.X509Certificates.X509CertificateLoader+CertAndKey[]:this (FullOpts)
           5 (0.48 % of base) : System.Memory.dasm - System.Text.EncodingExtensions:GetBytes(System.Text.Encoding,byref,System.Span`1[ubyte]):int (FullOpts)
           5 (1.91 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Regex+<>c:<SegmentsToStringAndDispose>b__100_0(System.Span`1[ushort],System.Span`1[System.ReadOnlyMemory`1[ushort]]):this (FullOpts)
           5 (0.38 % of base) : System.Private.CoreLib.dasm - System.Text.TranscodingStream+<<ReadAsync>g__ReadAsyncCore|41_0>d:MoveNext():this (FullOpts)
           4 (0.25 % of base) : Microsoft.Extensions.DependencyModel.dasm - Microsoft.Extensions.DependencyModel.DependencyContextWriter:WriteAssetList(System.String,System.Collections.Generic.IEnumerable`1[System.String],System.Text.Json.Utf8JsonWriter) (FullOpts)
           4 (0.17 % of base) : System.Private.CoreLib.dasm - System.IO.BufferedStream+<ReadFromUnderlyingStreamAsync>d__48:MoveNext():this (FullOpts)
           4 (0.25 % of base) : System.Private.CoreLib.dasm - System.IO.StreamWriter+<WriteAsyncInternal>d__71:MoveNext():this (FullOpts)
           4 (0.94 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:TrimStart[int](System.Memory`1[int],System.ReadOnlySpan`1[int]):System.Memory`1[int] (FullOpts)
           4 (0.94 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:TrimStart[int](System.ReadOnlyMemory`1[int],System.ReadOnlySpan`1[int]):System.ReadOnlyMemory`1[int] (FullOpts)
           4 (0.94 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:TrimStart[long](System.Memory`1[long],System.ReadOnlySpan`1[long]):System.Memory`1[long] (FullOpts)
           4 (0.94 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:TrimStart[long](System.ReadOnlyMemory`1[long],System.ReadOnlySpan`1[long]):System.ReadOnlyMemory`1[long] (FullOpts)
           4 (0.94 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:TrimStart[short](System.Memory`1[short],System.ReadOnlySpan`1[short]):System.Memory`1[short] (FullOpts)
           4 (0.94 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:TrimStart[short](System.ReadOnlyMemory`1[short],System.ReadOnlySpan`1[short]):System.ReadOnlyMemory`1[short] (FullOpts)
           4 (0.40 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+Http2Stream+<ReadDataAsync>d__77:MoveNext():this (FullOpts)
           4 (0.57 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.CmsSignature:DsaDerToIeee(System.ReadOnlyMemory`1[ubyte],System.Span`1[ubyte]):ubyte (FullOpts)
           4 (0.26 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampToken:CertMatchesIds(System.Security.Cryptography.X509Certificates.X509Certificate2,byref,byref):ubyte (FullOpts)
           3 (0.15 % of base) : System.Security.Cryptography.Pkcs.dasm - Internal.Cryptography.Pal.AnyOS.ManagedPkcsPal:Decode(System.ReadOnlySpan`1[ubyte],byref,byref,byref,byref,byref):Internal.Cryptography.DecryptorPal:this (FullOpts)
           3 (0.18 % of base) : System.Security.Cryptography.Pkcs.dasm - Internal.Cryptography.PkcsHelpers:TryGetRsaOaepEncryptionPadding(System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],byref,byref):ubyte (FullOpts)
           3 (0.35 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:CopyToMultiSegment[double](byref,System.Span`1[double]) (FullOpts)
           3 (0.35 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:CopyToMultiSegment[int](byref,System.Span`1[int]) (FullOpts)
           3 (0.35 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:CopyToMultiSegment[long](byref,System.Span`1[long]) (FullOpts)
           3 (0.35 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:CopyToMultiSegment[short](byref,System.Span`1[short]) (FullOpts)
           3 (0.23 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:CopyToMultiSegment[System.__Canon](byref,System.Span`1[System.__Canon]) (FullOpts)
           3 (0.35 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:CopyToMultiSegment[System.Nullable`1[int]](byref,System.Span`1[System.Nullable`1[int]]) (FullOpts)
           3 (0.34 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:CopyToMultiSegment[System.Numerics.Vector`1[float]](byref,System.Span`1[System.Numerics.Vector`1[float]]) (FullOpts)
           3 (0.35 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:CopyToMultiSegment[ubyte](byref,System.Span`1[ubyte]) (FullOpts)
           3 (0.33 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:PositionOfMultiSegment[double](byref,double):System.Nullable`1[System.SequencePosition] (FullOpts)
           3 (0.32 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:PositionOfMultiSegment[int](byref,int):System.Nullable`1[System.SequencePosition] (FullOpts)
           3 (0.32 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:PositionOfMultiSegment[long](byref,long):System.Nullable`1[System.SequencePosition] (FullOpts)
           3 (0.31 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:PositionOfMultiSegment[short](byref,short):System.Nullable`1[System.SequencePosition] (FullOpts)
           3 (0.33 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:PositionOfMultiSegment[System.Numerics.Vector`1[float]](byref,System.Numerics.Vector`1[float]):System.Nullable`1[System.SequencePosition] (FullOpts)
           3 (0.32 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:PositionOfMultiSegment[ubyte](byref,ubyte):System.Nullable`1[System.SequencePosition] (FullOpts)
           3 (0.34 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[double]:IsNextSlow(System.ReadOnlySpan`1[double],ubyte):ubyte:this (FullOpts)
           3 (0.30 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[double]:TryCopyMultisegment(System.Span`1[double]):ubyte:this (FullOpts)
           3 (0.34 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[int]:IsNextSlow(System.ReadOnlySpan`1[int],ubyte):ubyte:this (FullOpts)
           3 (0.30 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[int]:TryCopyMultisegment(System.Span`1[int]):ubyte:this (FullOpts)
           3 (0.34 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[long]:IsNextSlow(System.ReadOnlySpan`1[long],ubyte):ubyte:this (FullOpts)

Top method improvements (bytes):
          -2 (-0.15 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader+<WriteWithSeekableDataStreamAsync>d__84:MoveNext():this (FullOpts)

Top method regressions (percentages):
           5 (1.91 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Regex+<>c:<SegmentsToStringAndDispose>b__100_0(System.Span`1[ushort],System.Span`1[System.ReadOnlyMemory`1[ushort]]):this (FullOpts)
           5 (1.89 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.SignerInfo:FindAttributeValueIndexByEncodedData(System.ReadOnlyMemory`1[ubyte][],System.ReadOnlySpan`1[ubyte],byref):int (FullOpts)
           7 (1.85 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.SignedCms:get_Certificates():System.Security.Cryptography.X509Certificates.X509Certificate2Collection:this (FullOpts)
           7 (1.66 % of base) : System.IO.Pipelines.dasm - System.IO.Pipelines.StreamPipeWriter:FlushInternal(ubyte):this (FullOpts)
           7 (1.22 % of base) : System.IO.Compression.dasm - System.IO.Compression.InputBuffer:CopyTo(System.Memory`1[ubyte]):int:this (FullOpts)
           5 (1.01 % of base) : System.Net.Quic.dasm - System.Net.MultiMemory:CopyFrom(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
           5 (1.01 % of base) : System.Net.Http.dasm - System.Net.MultiMemory:CopyFrom(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
           3 (1.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+ChunkedEncodingReadStream:ReadChunksFromConnectionBuffer(System.Span`1[ubyte],System.Threading.CancellationTokenRegistration):int:this (FullOpts)
           4 (0.94 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:TrimStart[int](System.Memory`1[int],System.ReadOnlySpan`1[int]):System.Memory`1[int] (FullOpts)
           4 (0.94 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:TrimStart[int](System.ReadOnlyMemory`1[int],System.ReadOnlySpan`1[int]):System.ReadOnlyMemory`1[int] (FullOpts)
           4 (0.94 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:TrimStart[long](System.Memory`1[long],System.ReadOnlySpan`1[long]):System.Memory`1[long] (FullOpts)
           4 (0.94 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:TrimStart[long](System.ReadOnlyMemory`1[long],System.ReadOnlySpan`1[long]):System.ReadOnlyMemory`1[long] (FullOpts)
           4 (0.94 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:TrimStart[short](System.Memory`1[short],System.ReadOnlySpan`1[short]):System.Memory`1[short] (FullOpts)
           4 (0.94 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:TrimStart[short](System.ReadOnlyMemory`1[short],System.ReadOnlySpan`1[short]):System.ReadOnlyMemory`1[short] (FullOpts)
           7 (0.92 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.OriginatorInfoAsn:Encode(System.Formats.Asn1.AsnWriter,System.Formats.Asn1.Asn1Tag):this (FullOpts)
           3 (0.88 % of base) : System.Net.Quic.dasm - System.Net.MultiMemory:CopyTo(System.Span`1[ubyte]):this (FullOpts)
           3 (0.88 % of base) : System.Net.Http.dasm - System.Net.MultiMemory:CopyTo(System.Span`1[ubyte]):this (FullOpts)
           5 (0.87 % of base) : System.IO.Pipelines.dasm - System.IO.Pipelines.Pipe:WriteMultiSegment(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
          18 (0.75 % of base) : System.Net.Quic.dasm - System.Net.Quic.QuicConnection+SslConnectionOptions+<StartAsyncCertificateValidation>d__12:MoveNext():this (FullOpts)
           5 (0.70 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Asn1.AttributeAsn:Encode(System.Formats.Asn1.AsnWriter,System.Formats.Asn1.Asn1Tag):this (FullOpts)
           5 (0.70 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Asn1.AttributeAsn:Encode(System.Formats.Asn1.AsnWriter,System.Formats.Asn1.Asn1Tag):this (FullOpts)
           8 (0.65 % 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)
           8 (0.65 % 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)
           8 (0.65 % 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)
           8 (0.65 % 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)
           8 (0.65 % 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)
           8 (0.65 % 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)
          11 (0.65 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseMessage+<AppendToBeSignedAsync>d__38:MoveNext():this (FullOpts)
          17 (0.65 % of base) : System.Private.CoreLib.dasm - System.IO.StreamReader+<ReadAsyncInternal>d__69:MoveNext():this (FullOpts)
           8 (0.65 % 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)
           8 (0.63 % 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 (0.63 % 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)
           8 (0.63 % 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)
           8 (0.63 % 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)
           8 (0.63 % 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)
           8 (0.63 % 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)
           8 (0.63 % 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)
           8 (0.63 % 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)
           8 (0.61 % 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)
           2 (0.60 % of base) : System.Net.Security.dasm - System.Net.Security.SslStreamPal:EncryptMessage(System.Net.Security.SafeDeleteSslContext,System.ReadOnlyMemory`1[ubyte],int,int):System.Net.Security.ProtocolToken (FullOpts)
           5 (0.57 % of base) : System.Private.CoreLib.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle+ThreadPoolValueTaskSource:ExecuteInternal():this (FullOpts)
           4 (0.57 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.CmsSignature:DsaDerToIeee(System.ReadOnlyMemory`1[ubyte],System.Span`1[ubyte]):ubyte (FullOpts)
           2 (0.54 % of base) : System.Private.CoreLib.dasm - System.IO.UnmanagedMemoryStream:WriteAsync(System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
           2 (0.52 % 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)
           3 (0.50 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.SignedCms:RemoveCertificate(System.Security.Cryptography.X509Certificates.X509Certificate2):this (FullOpts)
           2 (0.49 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketPal:TryCompleteAccept(System.Net.Sockets.SafeSocketHandle,System.Memory`1[ubyte],byref,byref,byref):ubyte (FullOpts)
           6 (0.48 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:WriteComplexElement(int,System.Text.Json.Utf8JsonWriter):this (FullOpts)
           5 (0.48 % of base) : System.Memory.dasm - System.Text.EncodingExtensions:GetBytes(System.Text.Encoding,byref,System.Span`1[ubyte]):int (FullOpts)
           3 (0.47 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.SignerInfo:MakeAttribute(System.Security.Cryptography.Asn1.AttributeAsn):System.Security.Cryptography.CryptographicAttributeObject (FullOpts)
           2 (0.47 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:TrimStart[double](System.Memory`1[double],System.ReadOnlySpan`1[double]):System.Memory`1[double] (FullOpts)
           2 (0.47 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:TrimStart[double](System.ReadOnlyMemory`1[double],System.ReadOnlySpan`1[double]):System.ReadOnlyMemory`1[double] (FullOpts)
           3 (0.46 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509EnhancedKeyUsageExtension:DecodeX509EnhancedKeyUsageExtension(ubyte[],byref) (FullOpts)
          15 (0.44 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.CryptoStream+<WriteAsyncCore>d__53:MoveNext():this (FullOpts)
           2 (0.44 % of base) : System.Private.CoreLib.dasm - System.IO.MemoryStream:WriteAsync(System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
           5 (0.43 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.SignedDataAsn:Encode(System.Formats.Asn1.AsnWriter,System.Formats.Asn1.Asn1Tag):this (FullOpts)
           2 (0.43 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509CertificateLoader+CertKeyMatcher:FindMatchingKey(System.ReadOnlySpan`1[System.Security.Cryptography.Asn1.Pkcs12.SafeBagAsn],System.ReadOnlySpan`1[ubyte]):int (FullOpts)
           2 (0.43 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:TrimEnd[int](System.Memory`1[int],System.ReadOnlySpan`1[int]):System.Memory`1[int] (FullOpts)
           2 (0.43 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:TrimEnd[long](System.Memory`1[long],System.ReadOnlySpan`1[long]):System.Memory`1[long] (FullOpts)
           9 (0.42 % of base) : System.Private.CoreLib.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<WriteAsyncSlowPath>d__48:MoveNext():this (FullOpts)
           2 (0.42 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:TrimEnd[double](System.Memory`1[double],System.ReadOnlySpan`1[double]):System.Memory`1[double] (FullOpts)
           5 (0.41 % of base) : System.Private.CoreLib.dasm - System.IO.Strategies.BufferedFileStreamStrategy+<ReadFromNonSeekableAsync>d__36:MoveNext():this (FullOpts)
           5 (0.41 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.SignedCms:GetContent(System.ReadOnlyMemory`1[ubyte],System.String):System.ReadOnlyMemory`1[ubyte] (FullOpts)
           2 (0.41 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:TrimEnd[int](System.ReadOnlyMemory`1[int],System.ReadOnlySpan`1[int]):System.ReadOnlyMemory`1[int] (FullOpts)
           2 (0.41 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:TrimEnd[long](System.ReadOnlyMemory`1[long],System.ReadOnlySpan`1[long]):System.ReadOnlyMemory`1[long] (FullOpts)
           2 (0.40 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:TrimEnd[double](System.ReadOnlyMemory`1[double],System.ReadOnlySpan`1[double]):System.ReadOnlyMemory`1[double] (FullOpts)
           4 (0.40 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+Http2Stream+<ReadDataAsync>d__77:MoveNext():this (FullOpts)
           2 (0.40 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:TrimEnd[short](System.Memory`1[short],System.ReadOnlySpan`1[short]):System.Memory`1[short] (FullOpts)
           8 (0.40 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PasswordBasedEncryption:OpenPbkdf2(System.ReadOnlySpan`1[ubyte],System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],byref):System.Security.Cryptography.Rfc2898DeriveBytes (FullOpts)
           8 (0.40 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.PasswordBasedEncryption:OpenPbkdf2(System.ReadOnlySpan`1[ubyte],System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],byref):System.Security.Cryptography.Rfc2898DeriveBytes (FullOpts)
           2 (0.39 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Pkcs12SafeBag:.ctor(System.String,System.ReadOnlyMemory`1[ubyte],ubyte):this (FullOpts)
           2 (0.38 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:TrimEnd[short](System.ReadOnlyMemory`1[short],System.ReadOnlySpan`1[short]):System.ReadOnlyMemory`1[short] (FullOpts)
           5 (0.38 % of base) : System.Private.CoreLib.dasm - System.Text.TranscodingStream+<<ReadAsync>g__ReadAsyncCore|41_0>d:MoveNext():this (FullOpts)
           2 (0.37 % 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)
           3 (0.35 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.SignedCms:AddCertificate(System.Security.Cryptography.X509Certificates.X509Certificate2):this (FullOpts)
           3 (0.35 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:CopyToMultiSegment[ubyte](byref,System.Span`1[ubyte]) (FullOpts)
           3 (0.35 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:CopyToMultiSegment[short](byref,System.Span`1[short]) (FullOpts)
           3 (0.35 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:CopyToMultiSegment[double](byref,System.Span`1[double]) (FullOpts)
           3 (0.35 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:CopyToMultiSegment[int](byref,System.Span`1[int]) (FullOpts)
           3 (0.35 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:CopyToMultiSegment[long](byref,System.Span`1[long]) (FullOpts)
           3 (0.35 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:CopyToMultiSegment[System.Nullable`1[int]](byref,System.Span`1[System.Nullable`1[int]]) (FullOpts)
           3 (0.34 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:CopyToMultiSegment[System.Numerics.Vector`1[float]](byref,System.Span`1[System.Numerics.Vector`1[float]]) (FullOpts)
           3 (0.34 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[double]:IsNextSlow(System.ReadOnlySpan`1[double],ubyte):ubyte:this (FullOpts)
           3 (0.34 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[short]:IsNextSlow(System.ReadOnlySpan`1[short],ubyte):ubyte:this (FullOpts)
           3 (0.34 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[int]:IsNextSlow(System.ReadOnlySpan`1[int],ubyte):ubyte:this (FullOpts)
           3 (0.34 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[long]:IsNextSlow(System.ReadOnlySpan`1[long],ubyte):ubyte:this (FullOpts)
           3 (0.34 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[ubyte]:IsNextSlow(System.ReadOnlySpan`1[ubyte],ubyte):ubyte:this (FullOpts)
           5 (0.34 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+<EnsureBufferContainsAsync>d__72:MoveNext():this (FullOpts)
           2 (0.34 % of base) : System.Security.Cryptography.Pkcs.dasm - Internal.Cryptography.Pal.AnyOS.ManagedPkcsPal+ManagedDecryptorPal:DecryptContent(System.ReadOnlyMemory`1[ubyte],ubyte[],System.Security.Cryptography.Asn1.AlgorithmIdentifierAsn,byref):ubyte[] (FullOpts)
           3 (0.34 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[System.Numerics.Vector`1[float]]:IsNextSlow(System.ReadOnlySpan`1[System.Numerics.Vector`1[float]],ubyte):ubyte:this (FullOpts)
           2 (0.34 % of base) : System.Private.CoreLib.dasm - System.IO.BufferedStream:WriteAsync(System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
           5 (0.34 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509CertificateLoader+CertKeyMatcher:MatchCertAndKeys(byref,ubyte):System.Security.Cryptography.X509Certificates.X509CertificateLoader+CertAndKey[]:this (FullOpts)
           3 (0.33 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:PositionOfMultiSegment[double](byref,double):System.Nullable`1[System.SequencePosition] (FullOpts)
           3 (0.33 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:PositionOfMultiSegment[System.Numerics.Vector`1[float]](byref,System.Numerics.Vector`1[float]):System.Nullable`1[System.SequencePosition] (FullOpts)
           3 (0.32 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:PositionOfMultiSegment[int](byref,int):System.Nullable`1[System.SequencePosition] (FullOpts)
           3 (0.32 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:PositionOfMultiSegment[long](byref,long):System.Nullable`1[System.SequencePosition] (FullOpts)
           3 (0.32 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:PositionOfMultiSegment[ubyte](byref,ubyte):System.Nullable`1[System.SequencePosition] (FullOpts)
           3 (0.32 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:CompareToSequence(System.ReadOnlySpan`1[ubyte]):ubyte:this (FullOpts)
           3 (0.32 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseMessage:DecodeBucket(System.Formats.Cbor.CborReader,System.Security.Cryptography.Cose.CoseHeaderMap) (FullOpts)
           2 (0.31 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampRequest:TryDecode(System.ReadOnlyMemory`1[ubyte],byref,byref):ubyte (FullOpts)
           3 (0.31 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:PositionOfMultiSegment[short](byref,short):System.Nullable`1[System.SequencePosition] (FullOpts)

Top method improvements (percentages):
          -2 (-0.15 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader+<WriteWithSeekableDataStreamAsync>d__84:MoveNext():this (FullOpts)

190 total methods with Code Size differences (1 improved, 189 regressed), 232364 unchanged.

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

Artifacts:

@MihuBot
Copy link
Owner Author

MihuBot commented Oct 22, 2024

Top method regressions

11 (0.65 % of base) - System.Security.Cryptography.Cose.CoseMessage+d__38:MoveNext():this
 ; Assembly listing for method System.Security.Cryptography.Cose.CoseMessage+<AppendToBeSignedAsync>d__38:MoveNext():this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 34 single block inlinees; 16 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] ( 33, 45   )   byref  ->  [rbp-0x70]  this EH-live single-def
 ;  V01 loc0         [V01,T73] (  2,  2   )     int  ->  rdi         single-def
 ;  V02 loc1         [V02,T74] (  2,  2   )     int  ->  rcx         single-def
 ;* V03 loc2         [V03    ] (  0,  0   )     int  ->  zero-ref   
 ;  V04 loc3         [V04    ] ( 12, 43   )  struct (16) [rbp-0x38]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]>
 ;  V05 loc4         [V05    ] (  4, 16   )  struct (16) [rbp-0x48]  do-not-enreg[SBR] multireg-ret must-init 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 (48) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V09 tmp1         [V09    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
 ;* V10 tmp2         [V10    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
 ;  V11 tmp3         [V11,T08] (  3, 24   )     ref  ->  rdi         class-hnd "impAppendStmt" <System.IO.Stream>
 ;* V12 tmp4         [V12    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Memory`1[ubyte]>
 ;* V13 tmp5         [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 tmp6         [V14    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Span`1[ubyte]>
 ;  V15 tmp7         [V15,T47] (  2,  4   )     int  ->  r14         "impAppendStmt"
 ;* V16 tmp8         [V16    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ubyte]>
 ;* V17 tmp9         [V17    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ubyte]>
 ;* V18 tmp10        [V18    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ubyte]>
 ;* V19 tmp11        [V19    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V20 tmp12        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "non-inline candidate call" <System.Security.Cryptography.IncrementalHash>
 ;* V21 tmp13        [V21    ] (  0,  0   )    long  ->  zero-ref    "non-inline candidate call"
 ;  V22 tmp14        [V22,T85] (  2,  0   )     ref  ->  rsi         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
 ;  V23 tmp15        [V23,T17] (  4,  8   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <ubyte[]>
 ;* V24 tmp16        [V24    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;  V25 tmp17        [V25,T31] (  6,  6   )   byref  ->  r12         "Inline stloc first use temp"
 ;  V26 tmp18        [V26,T34] (  6,  6   )     int  ->  rax         "Inline stloc first use temp"
 ;  V27 tmp19        [V27,T18] (  4,  8   )   byref  ->  r13         single-def "Inlining Arg"
 ;  V28 tmp20        [V28,T28] (  7,  7   )     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp" <System.Object>
 ;* V29 tmp21        [V29    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V30 tmp22        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Buffers.MemoryManager`1[ubyte]>
 ;* V31 tmp23        [V31    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
 ;* V32 tmp24        [V32    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op single-def "Inline stloc first use temp" <System.Span`1[ubyte]>
-;  V33 tmp25        [V33,T57] (  3,  3   )    long  ->  rdi         single-def "Inline stloc first use temp"
+;  V33 tmp25        [V33,T57] (  3,  3   )     int  ->  rdi         single-def "Inline stloc first use temp"
 ;  V34 tmp26        [V34,T58] (  3,  3   )     int  ->  rcx         single-def "Inline stloc first use temp"
 ;* V35 tmp27        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "updating class info" <ubyte[]>
 ;* V36 tmp28        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <ubyte[]>
 ;  V37 tmp29        [V37,T40] (  2,  4   )   byref  ->  rax         single-def "Inlining Arg"
 ;* V38 tmp30        [V38    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;  V39 tmp31        [V39,T32] (  6,  6   )   byref  ->  rcx         "Inline stloc first use temp"
 ;  V40 tmp32        [V40,T35] (  6,  6   )     int  ->  registers   "Inline stloc first use temp"
 ;  V41 tmp33        [V41,T19] (  4,  8   )   byref  ->  [rbp-0x78]  spill-single-def "Inlining Arg"
 ;  V42 tmp34        [V42,T29] (  7,  7   )     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp" <System.Object>
 ;* V43 tmp35        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V44 tmp36        [V44    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Buffers.MemoryManager`1[ubyte]>
 ;* V45 tmp37        [V45    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
 ;* V46 tmp38        [V46    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op single-def "Inline stloc first use temp" <System.Span`1[ubyte]>
-;  V47 tmp39        [V47,T59] (  3,  3   )    long  ->  rdi         single-def "Inline stloc first use temp"
+;  V47 tmp39        [V47,T59] (  3,  3   )     int  ->  rdi         single-def "Inline stloc first use temp"
 ;  V48 tmp40        [V48,T60] (  3,  3   )     int  ->  rax         single-def "Inline stloc first use temp"
 ;* V49 tmp41        [V49    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "updating class info" <ubyte[]>
 ;* V50 tmp42        [V50    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <ubyte[]>
 ;  V51 tmp43        [V51,T41] (  2,  4   )   byref  ->  rcx         single-def "Inlining Arg"
 ;* V52 tmp44        [V52    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;  V53 tmp45        [V53,T33] (  6,  6   )   byref  ->   r8         "Inline stloc first use temp"
 ;  V54 tmp46        [V54,T36] (  6,  6   )     int  ->   r9         "Inline stloc first use temp"
 ;  V55 tmp47        [V55,T20] (  4,  8   )   byref  ->  [rbp-0x80]  spill-single-def "Inlining Arg"
 ;  V56 tmp48        [V56,T30] (  7,  7   )     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp" <System.Object>
 ;* V57 tmp49        [V57    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V58 tmp50        [V58    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Buffers.MemoryManager`1[ubyte]>
 ;* V59 tmp51        [V59    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
 ;* V60 tmp52        [V60    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op single-def "Inline stloc first use temp" <System.Span`1[ubyte]>
-;  V61 tmp53        [V61,T61] (  3,  3   )    long  ->  rdi         single-def "Inline stloc first use temp"
+;  V61 tmp53        [V61,T61] (  3,  3   )     int  ->  rdi         single-def "Inline stloc first use temp"
 ;  V62 tmp54        [V62,T62] (  3,  3   )     int  ->  rsi         single-def "Inline stloc first use temp"
 ;* V63 tmp55        [V63    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "updating class info" <ubyte[]>
 ;* V64 tmp56        [V64    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <ubyte[]>
 ;  V65 tmp57        [V65,T42] (  2,  4   )   byref  ->   r8         single-def "Inlining Arg"
 ;* V66 tmp58        [V66    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V67 tmp59        [V67    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ubyte]>
 ;  V68 tmp60        [V68,T02] (  4, 32   )     ref  ->  rsi         class-hnd "Inlining Arg" <ubyte[]>
 ;  V69 tmp61        [V69    ] (  8, 64   )  struct (16) [rbp-0x58]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]>
 ;* V70 tmp62        [V70    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask`1[int]>
 ;* V71 tmp63        [V71    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op "Inline stloc first use temp" <System.Threading.Tasks.ValueTask`1[int]>
 ;* V72 tmp64        [V72    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1[int]>
 ;* V73 tmp65        [V73    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Object>
 ;* V74 tmp66        [V74    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V75 tmp67        [V75,T13] (  2, 16   )   short  ->  rsi         "Inlining Arg"
 ;* V76 tmp68        [V76    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]>
 ;* V77 tmp69        [V77    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V78 tmp70        [V78,T12] (  4, 16   )     ref  ->  r15         class-hnd "Inline stloc first use temp" <System.Object>
 ;  V79 tmp71        [V79,T15] (  3, 12   )     ref  ->  rax         class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]>
 ;* V80 tmp72        [V80    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[int]>
 ;* V81 tmp73        [V81    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V82 tmp74        [V82    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V83 tmp75        [V83    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V84 tmp76        [V84    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Runtime.CompilerServices.IAsyncStateMachineBox>
 ;  V85 tmp77        [V85,T03] (  5, 24   )     int  ->  rax         "Inline return value spill temp"
 ;  V86 tmp78        [V86,T04] (  4, 24   )     ref  ->  r15         class-hnd "Inline stloc first use temp" <System.Object>
 ;  V87 tmp79        [V87,T11] (  5, 20   )     ref  ->  r14         class-hnd "Inline stloc first use temp" <System.Threading.Tasks.Task`1[int]>
 ;* V88 tmp80        [V88    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource`1[int]>
 ;  V89 tmp81        [V89,T21] (  4,  8   )   byref  ->  rdi         single-def "Inlining Arg"
 ;* V90 tmp82        [V90    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op single-def "Inline ldloca(s) first use temp" <System.Threading.Tasks.VoidTaskResult>
 ;  V91 tmp83        [V91,T10] ( 10, 20   )     ref  ->  rbx         class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
 ;  V92 tmp84        [V92,T48] (  2,  4   )  struct ( 8) r15         "Inlining Arg" <System.Threading.Tasks.VoidTaskResult>
 ;  V93 tmp85        [V93,T14] (  6, 12   )     ref  ->  r14         class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TplEventSource>
 ;* V94 tmp86        [V94    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Threading.Tasks.TplEventSource>
 ;  V95 tmp87        [V95,T49] (  2,  4   )     int  ->  r13         "Inlining Arg"
 ;* V96 tmp88        [V96    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V97 tmp89        [V97    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V98 tmp90        [V98,T82] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;  V99 tmp91        [V99,T53] (  3,  3   )     ref  ->  r15         class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task+ContingentProperties>
 ;  V100 tmp92       [V100,T75] (  2,  2   )   ubyte  ->  rdi         "Inline return value spill temp"
 ;  V101 tmp93       [V101,T39] (  5,  5   )     int  ->  [rbp-0x5C]  spill-single-def "Inline stloc first use temp"
 ;  V102 tmp94       [V102,T63] (  3,  3   )   ubyte  ->  rdi         "Inline return value spill temp"
 ;  V103 tmp95       [V103,T01] (  6, 41   )     int  ->  [rbp-0x60]  "Inline stloc first use temp"
 ;  V104 tmp96       [V104,T09] (  3, 24   )     int  ->  rax         "Inline stloc first use temp"
 ;  V105 tmp97       [V105,T54] (  3,  3   )     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp" <System.Threading.ManualResetEventSlim>
 ;  V106 tmp98       [V106,T22] (  2,  8   )     ref  ->  [rbp-0x48]  do-not-enreg[] "field V05._obj (fldOffset=0x0)" P-DEP
 ;  V107 tmp99       [V107,T24] (  2,  8   )     int  ->  [rbp-0x40]  do-not-enreg[] "field V05._result (fldOffset=0x8)" P-DEP
 ;  V108 tmp100      [V108,T25] (  2,  8   )   short  ->  [rbp-0x3C]  do-not-enreg[] "field V05._token (fldOffset=0xc)" P-DEP
 ;  V109 tmp101      [V109,T51] (  1,  4   )   ubyte  ->  [rbp-0x3A]  do-not-enreg[] "field V05._continueOnCapturedContext (fldOffset=0xe)" P-DEP
 ;* V110 tmp102      [V110    ] (  0,  0   )     ref  ->  zero-ref    "field V12._object (fldOffset=0x0)" P-INDEP
 ;* V111 tmp103      [V111    ] (  0,  0   )     int  ->  zero-ref    "field V12._index (fldOffset=0x8)" P-INDEP
 ;* V112 tmp104      [V112    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0xc)" P-INDEP
 ;* V113 tmp105      [V113    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V114 tmp106      [V114    ] (  0,  0   )     int  ->  zero-ref    single-def "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V115 tmp107      [V115    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V16._reference (fldOffset=0x0)" P-INDEP
 ;* V116 tmp108      [V116    ] (  0,  0   )     int  ->  zero-ref    single-def "field V16._length (fldOffset=0x8)" P-INDEP
 ;* V117 tmp109      [V117    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V17._reference (fldOffset=0x0)" P-INDEP
 ;* V118 tmp110      [V118    ] (  0,  0   )     int  ->  zero-ref    single-def "field V17._length (fldOffset=0x8)" P-INDEP
 ;* V119 tmp111      [V119    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V18._reference (fldOffset=0x0)" P-INDEP
 ;* V120 tmp112      [V120    ] (  0,  0   )     int  ->  zero-ref    single-def "field V18._length (fldOffset=0x8)" P-INDEP
 ;* V121 tmp113      [V121    ] (  0,  0   )   byref  ->  zero-ref    "field V19._reference (fldOffset=0x0)" P-INDEP
 ;* V122 tmp114      [V122    ] (  0,  0   )     int  ->  zero-ref    "field V19._length (fldOffset=0x8)" P-INDEP
 ;  V123 tmp115      [V123,T55] (  3,  3   )   byref  ->  rbx         "field V24._reference (fldOffset=0x0)" P-INDEP
 ;  V124 tmp116      [V124,T64] (  3,  3   )     int  ->  r15         "field V24._length (fldOffset=0x8)" P-INDEP
 ;  V125 tmp117      [V125,T66] (  2,  2   )   byref  ->  r13         single-def "field V29._reference (fldOffset=0x0)" P-INDEP
 ;  V126 tmp118      [V126,T76] (  2,  2   )     int  ->  r12         single-def "field V29._length (fldOffset=0x8)" P-INDEP
 ;* V127 tmp119      [V127    ] (  0,  0   )   byref  ->  zero-ref    "field V31._reference (fldOffset=0x0)" P-DEP
 ;* V128 tmp120      [V128    ] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0x8)" P-DEP
 ;  V129 tmp121      [V129,T67] (  2,  2   )   byref  ->  r12         "field V32._reference (fldOffset=0x0)" P-INDEP
 ;  V130 tmp122      [V130,T77] (  2,  2   )     int  ->  rax         "field V32._length (fldOffset=0x8)" P-INDEP
 ;* V131 tmp123      [V131    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V38._reference (fldOffset=0x0)" P-INDEP
 ;* V132 tmp124      [V132    ] (  0,  0   )     int  ->  zero-ref    "field V38._length (fldOffset=0x8)" P-INDEP
 ;  V133 tmp125      [V133,T68] (  2,  2   )   byref  ->  [rbp-0x88]  spill-single-def "field V43._reference (fldOffset=0x0)" P-INDEP
 ;  V134 tmp126      [V134,T78] (  2,  2   )     int  ->  [rbp-0x64]  spill-single-def "field V43._length (fldOffset=0x8)" P-INDEP
 ;* V135 tmp127      [V135    ] (  0,  0   )   byref  ->  zero-ref    "field V45._reference (fldOffset=0x0)" P-DEP
 ;* V136 tmp128      [V136    ] (  0,  0   )     int  ->  zero-ref    "field V45._length (fldOffset=0x8)" P-DEP
 ;  V137 tmp129      [V137,T69] (  2,  2   )   byref  ->  rcx         "field V46._reference (fldOffset=0x0)" P-INDEP
 ;  V138 tmp130      [V138,T79] (  2,  2   )     int  ->  rsi         "field V46._length (fldOffset=0x8)" P-INDEP
 ;* V139 tmp131      [V139    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V52._reference (fldOffset=0x0)" P-INDEP
 ;* V140 tmp132      [V140    ] (  0,  0   )     int  ->  zero-ref    "field V52._length (fldOffset=0x8)" P-INDEP
 ;  V141 tmp133      [V141,T70] (  2,  2   )   byref  ->  rdi         single-def "field V57._reference (fldOffset=0x0)" P-INDEP
 ;  V142 tmp134      [V142,T80] (  2,  2   )     int  ->   r9         single-def "field V57._length (fldOffset=0x8)" P-INDEP
 ;* V143 tmp135      [V143    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-DEP
 ;* V144 tmp136      [V144    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-DEP
 ;  V145 tmp137      [V145,T71] (  2,  2   )   byref  ->   r8         "field V60._reference (fldOffset=0x0)" P-INDEP
 ;  V146 tmp138      [V146,T81] (  2,  2   )     int  ->   r9         "field V60._length (fldOffset=0x8)" P-INDEP
 ;* V147 tmp139      [V147    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V66._reference (fldOffset=0x0)" P-INDEP
 ;* V148 tmp140      [V148    ] (  0,  0   )     int  ->  zero-ref    "field V66._length (fldOffset=0x8)" P-INDEP
 ;  V149 tmp141      [V149,T72] (  2,  2   )   byref  ->  rsi         single-def "field V67._reference (fldOffset=0x0)" P-INDEP
 ;* V150 tmp142      [V150,T83] (  0,  0   )     int  ->  zero-ref    single-def "field V67._length (fldOffset=0x8)" P-INDEP
 ;  V151 tmp143      [V151,T05] (  4, 24   )     ref  ->  [rbp-0x58]  do-not-enreg[] "field V69._object (fldOffset=0x0)" P-DEP
 ;  V152 tmp144      [V152,T06] (  4, 24   )     int  ->  [rbp-0x50]  do-not-enreg[] "field V69._index (fldOffset=0x8)" P-DEP
 ;  V153 tmp145      [V153,T07] (  4, 24   )     int  ->  [rbp-0x4C]  do-not-enreg[] "field V69._length (fldOffset=0xc)" P-DEP
 ;  V154 tmp146      [V154,T23] (  2,  8   )     ref  ->  rdi         "field V70._obj (fldOffset=0x0)" P-INDEP
 ;  V155 tmp147      [V155,T26] (  2,  8   )     int  ->  rax         "field V70._result (fldOffset=0x8)" P-INDEP
 ;  V156 tmp148      [V156,T27] (  2,  8   )   short  ->  rsi         "field V70._token (fldOffset=0xc)" P-INDEP
 ;* V157 tmp149      [V157,T52] (  0,  0   )   ubyte  ->  zero-ref    "field V70._continueOnCapturedContext (fldOffset=0xe)" P-INDEP
 ;  V158 tmp150      [V158,T37] (  3,  6   )     ref  ->  rdi         single-def "argument with side effect"
 ;  V159 tmp151      [V159,T38] (  3,  6   )     ref  ->  rdi         single-def "argument with side effect"
 ;  V160 tmp152      [V160,T50] (  2,  4   )    long  ->  rsi         "argument with side effect"
 ;  V161 tmp153      [V161,T43] (  2,  4   )     ref  ->  rbx         single-def "argument with side effect"
 ;  V162 tmp154      [V162,T44] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
 ;  V163 tmp155      [V163,T45] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
 ;  V164 tmp156      [V164,T46] (  2,  4   )     ref  ->  rsi         "argument with side effect"
 ;  V165 PSPSym      [V165,T84] (  1,  1   )    long  ->  [rbp-0x90]  do-not-enreg[V] "PSPSym"
-;  V166 cse0        [V166,T56] (  3,  3   )     ref  ->  r14         "CSE #15: conservative"
-;  V167 cse1        [V167,T65] (  3,  3   )     int  ->  rsi         "CSE #16: conservative"
-;  V168 cse2        [V168,T16] (  4, 11   )   byref  ->  r14         "CSE #17: moderate"
+;  V166 cse0        [V166,T56] (  3,  3   )     ref  ->  r14         "CSE #18: conservative"
+;  V167 cse1        [V167,T65] (  3,  3   )     int  ->  rsi         "CSE #19: conservative"
+;  V168 cse2        [V168,T16] (  4, 11   )   byref  ->  r14         "CSE #20: moderate"
 ;
 ; Lcl frame size = 152
 
 G_M15205_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 152
        lea      rbp, [rsp+0xC0]
        xor      eax, eax
        mov      qword ptr [rbp-0x58], rax
        vxorps   xmm8, xmm8, xmm8
        vmovdqu  ymmword ptr [rbp-0x50], ymm8
        mov      qword ptr [rbp-0x30], rax
        mov      qword ptr [rbp-0x90], rsp
        mov      bword ptr [rbp-0x70], rdi
        mov      rdx, rdi
 						;; size=59 bbWeight=1 PerfScore 13.58
 G_M15205_IG02:
        mov      edi, dword ptr [rdx+0x20]
 						;; size=3 bbWeight=1 PerfScore 2.00
 G_M15205_IG03:
        test     edi, edi
        jne      SHORT G_M15205_IG06
 						;; size=4 bbWeight=1 PerfScore 1.25
 G_M15205_IG04:
        vmovdqu  xmm0, xmmword ptr [rdx+0x68]
        vmovdqu  xmmword ptr [rbp-0x38], xmm0
 						;; size=10 bbWeight=1 PerfScore 5.00
 G_M15205_IG05:
        xor      edi, edi
        mov      qword ptr [rdx+0x68], rdi
        mov      qword ptr [rdx+0x70], rdi
        mov      dword ptr [rdx+0x20], -1
        mov      rbx, rdx
        jmp      G_M15205_IG27
 						;; size=25 bbWeight=1 PerfScore 5.50
 G_M15205_IG06:
        mov      rdi, gword ptr [rdx]
        test     rdi, rdi
        je       SHORT G_M15205_IG07
        lea      rbx, bword ptr [rdi+0x10]
        mov      r15d, dword ptr [rdi+0x08]
        jmp      SHORT G_M15205_IG08
 						;; size=18 bbWeight=1 PerfScore 7.75
 G_M15205_IG07:
        xor      rbx, rbx
        xor      r15d, r15d
 						;; size=5 bbWeight=1 PerfScore 0.50
 G_M15205_IG08:
        mov      r14d, dword ptr [rdx+0x24]
        lea      r13, bword ptr [rdx+0x30]
        xor      r12, r12
        xor      eax, eax
        mov      rdi, gword ptr [r13]
        test     rdi, rdi
        je       SHORT G_M15205_IG11
        mov      rax, qword ptr [rdi]
        test     dword ptr [rax], 0xD1FFAB1E
        jne      SHORT G_M15205_IG09
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x28]System.Buffers.MemoryManager`1[ubyte]:GetSpan():System.Span`1[ubyte]:this
        mov      r12, rax
        mov      eax, edx
        jmp      SHORT G_M15205_IG10
 						;; size=50 bbWeight=1 PerfScore 21.75
 G_M15205_IG09:
        lea      r12, bword ptr [rdi+0x10]
        mov      eax, dword ptr [rdi+0x08]
 						;; size=7 bbWeight=1 PerfScore 2.50
 G_M15205_IG10:
        mov      edi, dword ptr [r13+0x08]
        and      edi, 0xD1FFAB1E
        mov      ecx, dword ptr [r13+0x0C]
-       mov      esi, ecx
-       add      rsi, rdi
+       mov      esi, edi
+       mov      r8d, ecx
+       add      rsi, r8
        mov      eax, eax
        cmp      rsi, rax
        ja       G_M15205_IG37
        add      r12, rdi
        mov      eax, ecx
-						;; size=35 bbWeight=1 PerfScore 6.75
+						;; size=38 bbWeight=1 PerfScore 7.00
 G_M15205_IG11:
        mov      r13, r12
        mov      r12d, eax
        mov      rdx, bword ptr [rbp-0x70]
        lea      rax, bword ptr [rdx+0x40]
        mov      bword ptr [rbp-0x78], rax
        xor      rcx, rcx
        xor      esi, esi
        mov      rdi, gword ptr [rax]
        test     rdi, rdi
        je       SHORT G_M15205_IG14
        mov      rcx, qword ptr [rdi]
        test     dword ptr [rcx], 0xD1FFAB1E
        jne      SHORT G_M15205_IG12
        mov      rcx, qword ptr [rdi]
        mov      rcx, qword ptr [rcx+0x40]
        call     [rcx+0x28]System.Buffers.MemoryManager`1[ubyte]:GetSpan():System.Span`1[ubyte]:this
        mov      rcx, rax
        mov      esi, edx
        mov      eax, esi
        mov      esi, eax
        jmp      SHORT G_M15205_IG13
 						;; size=62 bbWeight=1 PerfScore 22.75
 G_M15205_IG12:
        lea      rcx, bword ptr [rdi+0x10]
        mov      edi, dword ptr [rdi+0x08]
        mov      esi, edi
 						;; size=9 bbWeight=1 PerfScore 2.75
 G_M15205_IG13:
        mov      rax, bword ptr [rbp-0x78]
        mov      edi, dword ptr [rax+0x08]
        and      edi, 0xD1FFAB1E
        mov      eax, dword ptr [rax+0x0C]
-       mov      r8d, eax
-       add      r8, rdi
+       mov      r8d, edi
+       mov      r9d, eax
+       add      r8, r9
        mov      esi, esi
        cmp      r8, rsi
        ja       G_M15205_IG37
        add      rcx, rdi
        mov      esi, eax
-						;; size=38 bbWeight=1 PerfScore 7.75
+						;; size=41 bbWeight=1 PerfScore 8.00
 G_M15205_IG14:
        mov      bword ptr [rbp-0x88], rcx
        mov      dword ptr [rbp-0x64], esi
        mov      rdx, bword ptr [rbp-0x70]
        lea      rsi, bword ptr [rdx+0x50]
        mov      bword ptr [rbp-0x80], rsi
        xor      r8, r8
        xor      r9d, r9d
        mov      rdi, gword ptr [rsi]
        test     rdi, rdi
        je       SHORT G_M15205_IG17
        mov      r8, qword ptr [rdi]
        test     dword ptr [r8], 0xD1FFAB1E
        jne      SHORT G_M15205_IG15
        mov      r8, qword ptr [rdi]
        mov      r8, qword ptr [r8+0x40]
        call     [r8+0x28]System.Buffers.MemoryManager`1[ubyte]:GetSpan():System.Span`1[ubyte]:this
        mov      r8, rax
        mov      r9d, edx
        jmp      SHORT G_M15205_IG16
 						;; size=67 bbWeight=1 PerfScore 23.75
 G_M15205_IG15:
        lea      r8, bword ptr [rdi+0x10]
        mov      r9d, dword ptr [rdi+0x08]
 						;; size=8 bbWeight=1 PerfScore 2.50
 G_M15205_IG16:
        mov      rsi, bword ptr [rbp-0x80]
        mov      edi, dword ptr [rsi+0x08]
        and      edi, 0xD1FFAB1E
        mov      esi, dword ptr [rsi+0x0C]
-       mov      r10d, esi
-       add      r10, rdi
+       mov      r10d, edi
+       mov      r11d, esi
+       add      r10, r11
        mov      r9d, r9d
        cmp      r10, r9
        ja       G_M15205_IG37
        add      r8, rdi
        mov      r9d, esi
-						;; size=40 bbWeight=1 PerfScore 7.75
+						;; size=43 bbWeight=1 PerfScore 8.00
 G_M15205_IG17:
        mov      rdi, r8
        xor      rsi, rsi
        mov      rax, bword ptr [rbp-0x88]
        mov      bword ptr [rsp], rax
        mov      ecx, dword ptr [rbp-0x64]
        mov      dword ptr [rsp+0x08], ecx
        mov      bword ptr [rsp+0x10], rdi
        mov      dword ptr [rsp+0x18], r9d
        xor      edi, edi
        mov      bword ptr [rsp+0x20], rsi
        mov      dword ptr [rsp+0x28], edi
        mov      rdi, rbx
        mov      esi, r15d
        mov      rcx, r13
        mov      r8d, r12d
        mov      edx, r14d
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.Cose.CoseMessage:CreateToBeSigned(System.Span`1[ubyte],int,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):int
        call     [rax]System.Security.Cryptography.Cose.CoseMessage:CreateToBeSigned(System.Span`1[ubyte],int,System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):int
        lea      ecx, [rax-0x01]
        mov      rdx, bword ptr [rbp-0x70]
        mov      rdi, gword ptr [rdx+0x08]
        mov      rsi, gword ptr [rdx]
        xor      edx, edx
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.IncrementalHash:AppendData(ubyte[],int,int):this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Security.Cryptography.IncrementalHash:AppendData(ubyte[],int,int):this
        mov      rdx, bword ptr [rbp-0x70]
        mov      rbx, gword ptr [rdx+0x08]
        mov      rdi, gword ptr [rdx+0x10]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x08]System.IO.Stream:get_Length():long:this
        mov      r15, rax
        mov      rdx, bword ptr [rbp-0x70]
        mov      rdi, gword ptr [rdx+0x10]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x10]System.IO.Stream:get_Position():long:this
        mov      rsi, r15
        sub      rsi, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.Cose.CoseHelpers:WriteByteStringLength(System.Security.Cryptography.IncrementalHash,ulong)
        call     [rax]System.Security.Cryptography.Cose.CoseHelpers:WriteByteStringLength(System.Security.Cryptography.IncrementalHash,ulong)
        mov      rdi, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rdi], 1
        je       G_M15205_IG35
 						;; size=184 bbWeight=1 PerfScore 55.75
 G_M15205_IG18:
        mov      rdi, 0xD1FFAB1E      ; data for System.Buffers.ArrayPool`1[ubyte]:s_shared
        mov      rdi, gword ptr [rdi]
        mov      esi, 0x1000
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this
        mov      rdx, bword ptr [rbp-0x70]
        lea      rdi, bword ptr [rdx+0x18]
        mov      rsi, rax
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        jmp      SHORT G_M15205_IG20
 						;; size=50 bbWeight=1 PerfScore 13.50
 G_M15205_IG19:
        mov      rdi, gword ptr [rbx+0x08]
        mov      rsi, gword ptr [rbx+0x18]
        mov      ecx, eax
        xor      edx, edx
        mov      rax, 0xD1FFAB1E      ; code for System.Security.Cryptography.IncrementalHash:AppendData(ubyte[],int,int):this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Security.Cryptography.IncrementalHash:AppendData(ubyte[],int,int):this
        nop      
 						;; size=27 bbWeight=4 PerfScore 44.00
 G_M15205_IG20:
        mov      rdx, bword ptr [rbp-0x70]
        mov      rdi, gword ptr [rdx+0x10]
        mov      rsi, gword ptr [rdx+0x18]
        test     rsi, rsi
        jne      SHORT G_M15205_IG23
        xor      rsi, rsi
        mov      gword ptr [rbp-0x58], rsi
 						;; size=23 bbWeight=4 PerfScore 30.00
 G_M15205_IG21:
        mov      dword ptr [rbp-0x50], esi
 						;; size=3 bbWeight=4 PerfScore 4.00
 G_M15205_IG22:
        mov      dword ptr [rbp-0x4C], esi
        jmp      SHORT G_M15205_IG24
 						;; size=5 bbWeight=4 PerfScore 12.00
 G_M15205_IG23:
        mov      gword ptr [rbp-0x58], rsi
        xor      ecx, ecx
        mov      dword ptr [rbp-0x50], ecx
        mov      esi, dword ptr [rsi+0x08]
        mov      dword ptr [rbp-0x4C], esi
 						;; size=15 bbWeight=4 PerfScore 21.00
 G_M15205_IG24:
        mov      rsi, gword ptr [rbp-0x58]
        mov      rdx, qword ptr [rbp-0x50]
        mov      rbx, bword ptr [rbp-0x70]
        mov      rcx, gword ptr [rbx+0x60]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x58]
        call     [rax+0x20]System.IO.Stream:ReadAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this
        mov      gword ptr [rbp-0x48], rax
        mov      qword ptr [rbp-0x40], rdx
        movsx    rsi, word  ptr [rbp-0x3C]
        mov      rdi, gword ptr [rbp-0x48]
        mov      eax, dword ptr [rbp-0x40]
        mov      gword ptr [rbp-0x38], rdi
        mov      dword ptr [rbp-0x30], eax
        mov      word  ptr [rbp-0x2C], si
        mov      byte  ptr [rbp-0x2A], 0
        mov      r15, gword ptr [rbp-0x38]
        test     r15, r15
        je       G_M15205_IG27
        mov      rsi, r15
        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
        jne      SHORT G_M15205_IG26
        mov      rdi, r15
        movsx    rsi, word  ptr [rbp-0x2C]
        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_M15205_IG27
 						;; size=129 bbWeight=4 PerfScore 152.00
 G_M15205_IG25:
        xor      edi, edi
        mov      dword ptr [rbx+0x20], edi
        lea      rdi, bword ptr [rbx+0x68]
        lea      rsi, bword ptr [rbp-0x38]
        call     CORINFO_HELP_ASSIGN_BYREF
        movsq    
        lea      rsi, bword ptr [rbx+0x28]
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:GetStateMachineBox[System.Security.Cryptography.Cose.CoseMessage+<AppendToBeSignedAsync>d__38](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox
        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:GetStateMachineBox[System.Security.Cryptography.Cose.CoseMessage+<AppendToBeSignedAsync>d__38](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox
        mov      rsi, rax
        lea      rdi, [rbp-0x38]
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)
        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1+ConfiguredValueTaskAwaiter[int]](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)
        jmp      G_M15205_IG50
 						;; size=63 bbWeight=1 PerfScore 14.25
 G_M15205_IG26:
        test     dword ptr [rax+0x34], 0xD1FFAB1E
        je       SHORT G_M15205_IG25
 						;; size=9 bbWeight=4 PerfScore 16.00
 G_M15205_IG27:
        mov      r15, gword ptr [rbp-0x38]
        test     r15, r15
        je       SHORT G_M15205_IG31
 						;; size=9 bbWeight=8 PerfScore 18.00
 G_M15205_IG28:
        mov      rsi, r15
        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task`1[int]
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        mov      r14, rax
        test     r14, r14
        jne      SHORT G_M15205_IG29
        mov      rdi, r15
        movsx    rsi, word  ptr [rbp-0x2C]
        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_M15205_IG32
 						;; size=56 bbWeight=4 PerfScore 55.00
 G_M15205_IG29:
        mov      edi, dword ptr [r14+0x34]
        and      edi, 0xD1FFAB1E
        cmp      edi, 0xD1FFAB1E
        je       SHORT G_M15205_IG30
        mov      rdi, r14
        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_M15205_IG30:
        mov      eax, dword ptr [r14+0x38]
        jmp      SHORT G_M15205_IG32
 						;; size=6 bbWeight=4 PerfScore 16.00
 G_M15205_IG31:
        mov      eax, dword ptr [rbp-0x30]
 						;; size=3 bbWeight=4 PerfScore 4.00
 G_M15205_IG32:
        test     eax, eax
        jg       G_M15205_IG19
 						;; size=8 bbWeight=8 PerfScore 10.00
 G_M15205_IG33:
        mov      rdi, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rdi], 1
        je       SHORT G_M15205_IG36
 						;; size=15 bbWeight=1 PerfScore 4.25
 G_M15205_IG34:
        mov      rdi, 0xD1FFAB1E      ; data for System.Buffers.ArrayPool`1[ubyte]:s_shared
        mov      rdi, gword ptr [rdi]
        mov      rsi, gword ptr [rbx+0x18]
        mov      edx, 1
        mov      rax, 0xD1FFAB1E      ; code for System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this
        jmp      SHORT G_M15205_IG38
 						;; size=38 bbWeight=1 PerfScore 12.75
 G_M15205_IG35:
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.ArrayPool`1[ubyte]
        call     CORINFO_HELP_GET_GCSTATIC_BASE
        jmp      G_M15205_IG18
-       align    [0 bytes for IG41]
-						;; size=20 bbWeight=0 PerfScore 0.00
+       align    [2 bytes for IG41]
+						;; size=22 bbWeight=0 PerfScore 0.00
 G_M15205_IG36:
        mov      rdi, 0xD1FFAB1E      ; System.Buffers.ArrayPool`1[ubyte]
        call     CORINFO_HELP_GET_GCSTATIC_BASE
        jmp      SHORT G_M15205_IG34
 						;; size=17 bbWeight=0 PerfScore 0.00
 G_M15205_IG37:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M15205_IG38:
        mov      dword ptr [rbx+0x20], -2
        xor      rdi, rdi
        mov      gword ptr [rbx+0x18], rdi
        lea      rdi, bword ptr [rbx+0x28]
        cmp      gword ptr [rdi], 0
        je       G_M15205_IG49
        mov      rbx, gword ptr [rdi]
        xor      r15d, r15d
        mov      rdi, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rdi], 1
        je       G_M15205_IG52
 						;; size=52 bbWeight=1 PerfScore 13.25
 G_M15205_IG39:
        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.TplEventSource:Log
        mov      r14, gword ptr [rdi]
        cmp      byte  ptr [r14+0x9D], 0
        je       SHORT G_M15205_IG40
        mov      rdi, rbx
        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_M15205_IG40
        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_M15205_IG40
        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=133 bbWeight=1 PerfScore 31.00
 G_M15205_IG40:
        mov      eax, dword ptr [rbx+0x34]
        mov      dword ptr [rbp-0x5C], eax
        test     eax, 0xD1FFAB1E
        jne      G_M15205_IG53
        lea      r14, bword ptr [rbx+0x34]
        mov      edi, eax
        or       edi, 0xD1FFAB1E
        lock     
        cmpxchg  dword ptr [r14], edi
        cmp      eax, dword ptr [rbp-0x5C]
        je       SHORT G_M15205_IG47
        mov      eax, dword ptr [rbx+0x34]
        jmp      SHORT G_M15205_IG42
 						;; size=44 bbWeight=1 PerfScore 30.25
 G_M15205_IG41:
        mov      edi, eax
        mov      eax, edi
 						;; size=4 bbWeight=8 PerfScore 4.00
 G_M15205_IG42:
        test     eax, 0xD1FFAB1E
        je       SHORT G_M15205_IG44
 						;; size=7 bbWeight=8 PerfScore 10.00
 G_M15205_IG43:
        xor      edi, edi
        jmp      SHORT G_M15205_IG46
 						;; size=4 bbWeight=1 PerfScore 2.25
 G_M15205_IG44:
        mov      edi, eax
        or       edi, 0xD1FFAB1E
        mov      dword ptr [rbp-0x60], eax
        lock     
        cmpxchg  dword ptr [r14], edi
        mov      edi, dword ptr [rbp-0x60]
        cmp      eax, edi
        jne      SHORT G_M15205_IG41
 						;; size=23 bbWeight=8 PerfScore 174.00
 G_M15205_IG45:
        mov      edi, 1
 						;; size=5 bbWeight=1 PerfScore 0.25
 G_M15205_IG46:
        test     edi, edi
        je       G_M15205_IG53
 						;; size=8 bbWeight=1 PerfScore 1.25
 G_M15205_IG47:
        mov      byte  ptr [rbx+0x38], r15b
        mov      edi, dword ptr [rbx+0x34]
        or       edi, 0xD1FFAB1E
        xchg     dword ptr [r14], edi
        mov      r15, gword ptr [rbx+0x28]
        test     r15, r15
        je       SHORT G_M15205_IG48
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:NotifyParentIfPotentiallyAttachedTask():this
        call     [rax]System.Threading.Tasks.Task:NotifyParentIfPotentiallyAttachedTask():this
        mov      rdi, gword ptr [r15+0x10]
        test     rdi, rdi
        je       SHORT G_M15205_IG48
        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=61 bbWeight=1 PerfScore 36.50
 G_M15205_IG48:
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:FinishContinuations():this
        call     [rax]System.Threading.Tasks.Task:FinishContinuations():this
        jmp      SHORT G_M15205_IG50
 						;; size=17 bbWeight=1 PerfScore 5.50
 G_M15205_IG49:
        mov      rsi, 0xD1FFAB1E      ; const ptr
        mov      rsi, gword ptr [rsi]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
 						;; size=18 bbWeight=1 PerfScore 3.25
 G_M15205_IG50:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M15205_IG51:
        add      rsp, 152
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=18 bbWeight=1 PerfScore 4.25
 G_M15205_IG52:
        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.TplEventSource
        call     CORINFO_HELP_GET_GCSTATIC_BASE
        jmp      G_M15205_IG39
 						;; size=20 bbWeight=0 PerfScore 0.00
 G_M15205_IG53:
        mov      edi, 24
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException(int)
        call     [rax]System.ThrowHelper:ThrowInvalidOperationException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 G_M15205_IG54:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 56
        mov      rbp, qword ptr [rdi+0x30]
        mov      qword ptr [rsp+0x30], rbp
        lea      rbp, [rbp+0xC0]
 						;; size=30 bbWeight=0 PerfScore 0.00
 G_M15205_IG55:
        mov      rbx, bword ptr [rbp-0x70]
        mov      dword ptr [rbx+0x20], -2
        xor      rdi, rdi
        mov      gword ptr [rbx+0x18], rdi
        lea      rdi, bword ptr [rbx+0x28]
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException(System.Exception):this
        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException(System.Exception):this
        lea      rax, G_M15205_IG50
 						;; size=40 bbWeight=0 PerfScore 0.00
 G_M15205_IG56:
        add      rsp, 56
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1686, prolog size 59, PerfScore 961.33, instruction count 441, allocated bytes for code 1686 (MethodHash=4294c49a) for method System.Security.Cryptography.Cose.CoseMessage+<AppendToBeSignedAsync>d__38:MoveNext():this (FullOpts)
+; Total bytes of code 1697, prolog size 59, PerfScore 962.08, instruction count 444, allocated bytes for code 1697 (MethodHash=4294c49a) for method System.Security.Cryptography.Cose.CoseMessage+<AppendToBeSignedAsync>d__38: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/f02a73b02d56c5490c4e8589522c3f86

@MihuBot
Copy link
Owner Author

MihuBot commented Oct 22, 2024

Top method improvements

-2 (-0.15 % of base) - System.Formats.Tar.TarHeader+d__84:MoveNext():this
 ; Assembly listing for method System.Formats.Tar.TarHeader+<WriteWithSeekableDataStreamAsync>d__84:MoveNext():this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 30 single block inlinees; 15 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] ( 31, 29   )   byref  ->  [rbp-0x60]  this EH-live single-def
 ;  V01 loc0         [V01,T33] (  3,  3   )     int  ->  rdi        
 ;  V02 loc1         [V02,T09] (  6,  6   )     ref  ->  rbx         class-hnd exact single-def <System.Formats.Tar.TarHeader>
 ;  V03 loc2         [V03    ] ( 10, 10   )  struct (16) [rbp-0x30]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable+ConfiguredValueTaskAwaiter>
 ;  V04 loc3         [V04    ] (  3,  3   )  struct (16) [rbp-0x40]  do-not-enreg[SBR] multireg-ret must-init ld-addr-op <System.Threading.Tasks.ValueTask>
 ;* V05 loc4         [V05    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable>
 ;  V06 loc5         [V06    ] ( 10, 10   )  struct (16) [rbp-0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter>
 ;* V07 loc6         [V07    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op <System.Runtime.CompilerServices.ConfiguredTaskAwaitable>
 ;* V08 loc7         [V08    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Exception>
 ;  V09 OutArgs      [V09    ] (  1,  1   )  struct ( 8) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
 ;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
 ;* V12 tmp3         [V12    ] (  0,  0   )     int  ->  zero-ref    "dup spill"
 ;  V13 tmp4         [V13,T23] (  2,  4   )     int  ->  r15         "impAppendStmt"
 ;* V14 tmp5         [V14    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V15 tmp6         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.IO.Stream>
 ;* V16 tmp7         [V16    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlyMemory`1[ubyte]>
 ;* V17 tmp8         [V17    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Threading.Tasks.ValueTask>
 ;  V18 tmp9         [V18,T54] (  2,  0   )     ref  ->  rsi         class-hnd single-def "impSpillSpecialSideEff" <System.Exception>
 ;* V19 tmp10        [V19    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.Span`1[ubyte]>
 ;  V20 tmp11        [V20,T10] (  6,  6   )   byref  ->  r13         "Inline stloc first use temp"
 ;  V21 tmp12        [V21,T11] (  6,  6   )     int  ->  rcx         "Inline stloc first use temp"
 ;  V22 tmp13        [V22,T06] (  4,  8   )   byref  ->  r14         single-def "Inlining Arg"
 ;  V23 tmp14        [V23,T08] (  7,  7   )     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp" <System.Object>
 ;* V24 tmp15        [V24    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V25 tmp16        [V25    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Buffers.MemoryManager`1[ubyte]>
 ;* V26 tmp17        [V26    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
 ;* V27 tmp18        [V27    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
-;  V28 tmp19        [V28,T34] (  3,  3   )    long  ->  rdi         "Inline stloc first use temp"
+;  V28 tmp19        [V28,T34] (  3,  3   )     int  ->  rdi         "Inline stloc first use temp"
 ;  V29 tmp20        [V29,T35] (  3,  3   )     int  ->  rsi         "Inline stloc first use temp"
 ;* V30 tmp21        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "updating class info" <ubyte[]>
 ;* V31 tmp22        [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <ubyte[]>
 ;  V32 tmp23        [V32,T19] (  2,  4   )   byref  ->  rax         single-def "Inlining Arg"
 ;* V33 tmp24        [V33    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V34 tmp25        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Memory`1[ubyte]>
 ;* V35 tmp26        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.Tasks.ValueTask>
 ;* V36 tmp27        [V36    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Threading.Tasks.ValueTask>
 ;* V37 tmp28        [V37    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable>
 ;* V38 tmp29        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.Object>
 ;  V39 tmp30        [V39,T24] (  2,  4   )   short  ->  rsi         "Inlining Arg"
 ;* V40 tmp31        [V40    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable+ConfiguredValueTaskAwaiter>
 ;* V41 tmp32        [V41    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V42 tmp33        [V42,T16] (  4,  4   )     ref  ->  r14         class-hnd single-def "Inline stloc first use temp" <System.Object>
 ;  V43 tmp34        [V43,T28] (  3,  3   )     ref  ->  rax         class-hnd single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
 ;* V44 tmp35        [V44    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource>
 ;* V45 tmp36        [V45    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp37        [V46    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp38        [V47    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V48 tmp39        [V48    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Runtime.CompilerServices.IAsyncStateMachineBox>
 ;  V49 tmp40        [V49,T17] (  4,  4   )     ref  ->  r15         class-hnd single-def "Inline stloc first use temp" <System.Object>
 ;  V50 tmp41        [V50,T18] (  4,  4   )     ref  ->  rax         class-hnd single-def "Inline stloc first use temp" <System.Threading.Tasks.Task>
 ;* V51 tmp42        [V51    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Threading.Tasks.Sources.IValueTaskSource>
 ;  V52 tmp43        [V52,T12] (  3,  6   )     ref  ->  rax         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V53 tmp44        [V53    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V54 tmp45        [V54    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V55 tmp46        [V55    ] (  0,  0   )     int  ->  zero-ref   
 ;* V56 tmp47        [V56    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable>
 ;* V57 tmp48        [V57    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter>
 ;* V58 tmp49        [V58,T48] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V59 tmp50        [V59,T20] (  2,  4   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
 ;* V60 tmp51        [V60    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V61 tmp52        [V61    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V62 tmp53        [V62    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V63 tmp54        [V63    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.Runtime.CompilerServices.IAsyncStateMachineBox>
 ;  V64 tmp55        [V64,T13] (  3,  6   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <System.Threading.Tasks.Task>
 ;  V65 tmp56        [V65,T25] (  2,  4   )     int  ->  rsi         "Inlining Arg"
 ;  V66 tmp57        [V66,T07] (  4,  8   )   byref  ->  rdi         single-def "Inlining Arg"
 ;* V67 tmp58        [V67    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Threading.Tasks.VoidTaskResult>
 ;  V68 tmp59        [V68,T03] ( 10, 20   )     ref  ->  rbx         class-hnd single-def "impAppendStmt" <System.Threading.Tasks.Task`1[System.Threading.Tasks.VoidTaskResult]>
 ;  V69 tmp60        [V69,T26] (  2,  4   )  struct ( 8) r15         "Inlining Arg" <System.Threading.Tasks.VoidTaskResult>
 ;  V70 tmp61        [V70,T04] (  6, 12   )     ref  ->  r14         class-hnd exact single-def "impAppendStmt" <System.Threading.Tasks.TplEventSource>
 ;* V71 tmp62        [V71    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Threading.Tasks.TplEventSource>
 ;  V72 tmp63        [V72,T27] (  2,  4   )     int  ->  r13         "Inlining Arg"
 ;* V73 tmp64        [V73    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V74 tmp65        [V74    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V75 tmp66        [V75,T49] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;  V76 tmp67        [V76,T29] (  3,  3   )     ref  ->  r15         class-hnd exact single-def "Inline stloc first use temp" <System.Threading.Tasks.Task+ContingentProperties>
 ;  V77 tmp68        [V77,T43] (  2,  2   )   ubyte  ->  rdi         "Inline return value spill temp"
 ;  V78 tmp69        [V78,T15] (  5,  5   )     int  ->  [rbp-0x54]  spill-single-def "Inline stloc first use temp"
 ;  V79 tmp70        [V79,T36] (  3,  3   )   ubyte  ->  rdi         "Inline return value spill temp"
 ;  V80 tmp71        [V80,T00] (  6, 41   )     int  ->  [rbp-0x58]  "Inline stloc first use temp"
 ;  V81 tmp72        [V81,T02] (  3, 24   )     int  ->  rax         "Inline stloc first use temp"
 ;  V82 tmp73        [V82,T30] (  3,  3   )     ref  ->  rdi         class-hnd single-def "Inline stloc first use temp" <System.Threading.ManualResetEventSlim>
 ;  V83 tmp74        [V83,T38] (  2,  2   )     ref  ->  [rbp-0x40]  do-not-enreg[] "field V04._obj (fldOffset=0x0)" P-DEP
 ;  V84 tmp75        [V84,T44] (  2,  2   )   short  ->  [rbp-0x38]  do-not-enreg[] "field V04._token (fldOffset=0x8)" P-DEP
 ;  V85 tmp76        [V85,T50] (  1,  1   )   ubyte  ->  [rbp-0x36]  do-not-enreg[] "field V04._continueOnCapturedContext (fldOffset=0xa)" P-DEP
 ;  V86 tmp77        [V86    ] (  6,  6   )     ref  ->  [rbp-0x50]  do-not-enreg[X] addr-exposed "field V06.m_task (fldOffset=0x0)" P-DEP
 ;  V87 tmp78        [V87    ] (  6,  6   )     int  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V06.m_options (fldOffset=0x8)" P-DEP
 ;* V88 tmp79        [V88    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V89 tmp80        [V89    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V90 tmp81        [V90    ] (  0,  0   )     ref  ->  zero-ref    "field V16._object (fldOffset=0x0)" P-INDEP
 ;* V91 tmp82        [V91    ] (  0,  0   )     int  ->  zero-ref    "field V16._index (fldOffset=0x8)" P-INDEP
 ;* V92 tmp83        [V92    ] (  0,  0   )     int  ->  zero-ref    "field V16._length (fldOffset=0xc)" P-INDEP
 ;* V93 tmp84        [V93    ] (  0,  0   )   byref  ->  zero-ref    "field V19._reference (fldOffset=0x0)" P-INDEP
 ;* V94 tmp85        [V94    ] (  0,  0   )     int  ->  zero-ref    "field V19._length (fldOffset=0x8)" P-INDEP
 ;  V95 tmp86        [V95,T39] (  2,  2   )   byref  ->  rdi         single-def "field V24._reference (fldOffset=0x0)" P-INDEP
 ;  V96 tmp87        [V96,T45] (  2,  2   )     int  ->  rcx         "field V24._length (fldOffset=0x8)" P-INDEP
 ;* V97 tmp88        [V97    ] (  0,  0   )   byref  ->  zero-ref    "field V26._reference (fldOffset=0x0)" P-DEP
 ;* V98 tmp89        [V98    ] (  0,  0   )     int  ->  zero-ref    "field V26._length (fldOffset=0x8)" P-DEP
 ;  V99 tmp90        [V99,T40] (  2,  2   )   byref  ->  r13         "field V27._reference (fldOffset=0x0)" P-INDEP
 ;  V100 tmp91       [V100,T46] (  2,  2   )     int  ->  rcx         "field V27._length (fldOffset=0x8)" P-INDEP
 ;* V101 tmp92       [V101    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V33._reference (fldOffset=0x0)" P-INDEP
 ;* V102 tmp93       [V102    ] (  0,  0   )     int  ->  zero-ref    "field V33._length (fldOffset=0x8)" P-INDEP
 ;* V103 tmp94       [V103    ] (  0,  0   )     ref  ->  zero-ref    "field V34._object (fldOffset=0x0)" P-INDEP
 ;* V104 tmp95       [V104    ] (  0,  0   )     int  ->  zero-ref    "field V34._index (fldOffset=0x8)" P-INDEP
 ;* V105 tmp96       [V105    ] (  0,  0   )     int  ->  zero-ref    "field V34._length (fldOffset=0xc)" P-INDEP
 ;  V106 tmp97       [V106,T41] (  2,  2   )     ref  ->  rdi         single-def "field V35._obj (fldOffset=0x0)" P-INDEP
 ;  V107 tmp98       [V107,T47] (  2,  2   )   short  ->  rsi         "field V35._token (fldOffset=0x8)" P-INDEP
 ;* V108 tmp99       [V108,T51] (  0,  0   )   ubyte  ->  zero-ref    "field V35._continueOnCapturedContext (fldOffset=0xa)" P-INDEP
 ;* V109 tmp100      [V109    ] (  0,  0   )     ref  ->  zero-ref    "field V36._obj (fldOffset=0x0)" P-INDEP
 ;* V110 tmp101      [V110    ] (  0,  0   )   short  ->  zero-ref    "field V36._token (fldOffset=0x8)" P-INDEP
 ;* V111 tmp102      [V111    ] (  0,  0   )   ubyte  ->  zero-ref    "field V36._continueOnCapturedContext (fldOffset=0xa)" P-INDEP
 ;  V112 tmp103      [V112,T42] (  2,  2   )     ref  ->  rax         single-def "field V57.m_task (fldOffset=0x0)" P-INDEP
 ;* V113 tmp104      [V113,T52] (  0,  0   )     int  ->  zero-ref    "field V57.m_options (fldOffset=0x8)" P-INDEP
 ;  V114 tmp105      [V114,T14] (  3,  6   )     ref  ->  rdi         single-def "argument with side effect"
 ;  V115 tmp106      [V115,T21] (  2,  4   )     ref  ->  rsi         single-def "argument with side effect"
 ;  V116 tmp107      [V116,T22] (  2,  4   )     ref  ->  rsi         single-def "argument with side effect"
 ;  V117 PSPSym      [V117,T53] (  1,  1   )    long  ->  [rbp-0x68]  do-not-enreg[V] "PSPSym"
-;  V118 cse0        [V118,T31] (  3,  3   )     ref  ->  r14         "CSE #11: conservative"
-;  V119 cse1        [V119,T37] (  3,  3   )     int  ->  rsi         "CSE #12: conservative"
-;  V120 cse2        [V120,T32] (  3,  3   )     ref  ->  rdi         "CSE #03: conservative"
-;  V121 cse3        [V121,T05] (  4, 11   )   byref  ->  r14         "CSE #13: aggressive"
+;  V118 cse0        [V118,T31] (  3,  3   )     ref  ->  r14         "CSE #12: conservative"
+;  V119 cse1        [V119,T37] (  3,  3   )     int  ->  rsi         "CSE #13: conservative"
+;  V120 cse2        [V120,T32] (  3,  3   )     ref  ->  rdi         "CSE #04: conservative"
+;  V121 cse3        [V121,T05] (  4, 11   )   byref  ->  r14         "CSE #14: aggressive"
 ;
 ; Lcl frame size = 80
 
 G_M48137_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     rbx
        sub      rsp, 80
        lea      rbp, [rsp+0x70]
        vxorps   xmm8, xmm8, xmm8
        vmovdqu  ymmword ptr [rbp-0x50], ymm8
        vmovdqa  xmmword ptr [rbp-0x30], xmm8
        mov      qword ptr [rbp-0x68], rsp
        mov      bword ptr [rbp-0x60], rdi
        mov      rdx, rdi
 						;; size=43 bbWeight=1 PerfScore 12.33
 G_M48137_IG02:
        mov      edi, dword ptr [rdx+0x10]
        mov      rbx, gword ptr [rdx]
 						;; size=6 bbWeight=1 PerfScore 4.00
 G_M48137_IG03:
        test     edi, edi
-       jne      G_M48137_IG07
-						;; size=8 bbWeight=1 PerfScore 1.25
+       jne      SHORT G_M48137_IG07
+						;; size=4 bbWeight=1 PerfScore 1.25
 G_M48137_IG04:
        vmovdqu  xmm0, xmmword ptr [rdx+0x38]
        vmovdqu  xmmword ptr [rbp-0x30], xmm0
 						;; size=10 bbWeight=1 PerfScore 5.00
 G_M48137_IG05:
        xor      edi, edi
        mov      qword ptr [rdx+0x38], rdi
        mov      qword ptr [rdx+0x40], rdi
        mov      dword ptr [rdx+0x10], -1
 						;; size=17 bbWeight=1 PerfScore 3.25
 G_M48137_IG06:
        mov      rdx, bword ptr [rbp-0x60]
        mov      r15, gword ptr [rbp-0x30]
        test     r15, r15
        je       G_M48137_IG18
        mov      rsi, r15
        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        test     rax, rax
        je       G_M48137_IG17
        mov      edi, dword ptr [rax+0x34]
        and      edi, 0xD1FFAB1E
        cmp      edi, 0xD1FFAB1E
        je       G_M48137_IG18
        mov      rdi, rax
        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)
        jmp      G_M48137_IG18
-       align    [3 bytes for IG24]
-						;; size=97 bbWeight=1 PerfScore 17.50
+       align    [0 bytes for IG24]
+						;; size=94 bbWeight=1 PerfScore 17.50
 G_M48137_IG07:
        cmp      edi, 1
        jne      SHORT G_M48137_IG11
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M48137_IG08:
        vmovdqu  xmm0, xmmword ptr [rdx+0x48]
        vmovdqu  xmmword ptr [rbp-0x50], xmm0
 						;; size=10 bbWeight=1 PerfScore 5.00
 G_M48137_IG09:
        xor      edi, edi
        mov      qword ptr [rdx+0x48], rdi
        mov      qword ptr [rdx+0x50], rdi
        mov      dword ptr [rdx+0x10], -1
 						;; size=17 bbWeight=1 PerfScore 3.25
 G_M48137_IG10:
        mov      rdi, gword ptr [rbp-0x50]
        mov      esi, dword ptr [rbp-0x48]
        mov      eax, dword ptr [rdi+0x34]
        and      eax, 0xD1FFAB1E
        cmp      eax, 0xD1FFAB1E
        je       G_M48137_IG21
        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)
        jmp      G_M48137_IG21
 						;; size=43 bbWeight=1 PerfScore 10.75
 G_M48137_IG11:
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Formats.Tar.TarHeader:GetTotalDataBytesToWrite():long:this
        call     [rax]System.Formats.Tar.TarHeader:GetTotalDataBytesToWrite():long:this
        mov      qword ptr [rbx+0x68], rax
        mov      rdx, bword ptr [rbp-0x60]
        mov      r15d, dword ptr [rdx+0x14]
        lea      r14, bword ptr [rdx+0x20]
        xor      r13, r13
        xor      ecx, ecx
        mov      rdi, gword ptr [r14]
        test     rdi, rdi
        je       SHORT G_M48137_IG14
        mov      rax, qword ptr [rdi]
        test     dword ptr [rax], 0xD1FFAB1E
        jne      SHORT G_M48137_IG12
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x28]System.Buffers.MemoryManager`1[ubyte]:GetSpan():System.Span`1[ubyte]:this
        mov      r13, rax
        mov      ecx, edx
        jmp      SHORT G_M48137_IG13
 						;; size=72 bbWeight=1 PerfScore 27.25
 G_M48137_IG12:
        lea      r13, bword ptr [rdi+0x10]
        mov      ecx, dword ptr [rdi+0x08]
 						;; size=7 bbWeight=1 PerfScore 2.50
 G_M48137_IG13:
        mov      edi, dword ptr [r14+0x08]
        and      edi, 0xD1FFAB1E
        mov      esi, dword ptr [r14+0x0C]
-       mov      eax, esi
-       add      rax, rdi
+       mov      eax, edi
+       mov      r8d, esi
+       add      rax, r8
        mov      ecx, ecx
        cmp      rax, rcx
        ja       G_M48137_IG20
-       add      r13, rdi
+       mov      ecx, edi
+       add      r13, rcx
        mov      ecx, esi
-						;; size=35 bbWeight=1 PerfScore 6.75
+						;; size=40 bbWeight=1 PerfScore 7.25
 G_M48137_IG14:
        mov      rdi, r13
        mov      rdx, rdi
        mov      rdi, rbx
        mov      esi, r15d
        mov      rax, 0xD1FFAB1E      ; code for System.Formats.Tar.TarHeader:WriteFieldsToBuffer(int,System.Span`1[ubyte]):this
        call     [rax]System.Formats.Tar.TarHeader:WriteFieldsToBuffer(int,System.Span`1[ubyte]):this
        mov      rdx, bword ptr [rbp-0x60]
        mov      rdi, gword ptr [rdx+0x08]
        mov      rsi, gword ptr [rdx+0x20]
        mov      rdx, qword ptr [rdx+0x28]
        mov      r15, bword ptr [rbp-0x60]
        mov      rcx, gword ptr [r15+0x30]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x60]
        call     [rax]System.IO.Stream:WriteAsync(System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this
        mov      gword ptr [rbp-0x40], rax
        mov      qword ptr [rbp-0x38], rdx
        movsx    rsi, word  ptr [rbp-0x38]
        mov      rdi, gword ptr [rbp-0x40]
        mov      gword ptr [rbp-0x30], rdi
        mov      word  ptr [rbp-0x28], si
        mov      byte  ptr [rbp-0x26], 0
        mov      r14, gword ptr [rbp-0x30]
        test     r14, r14
        je       G_M48137_IG06
        mov      rsi, r14
        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.Task
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        test     rax, rax
        jne      SHORT G_M48137_IG16
        mov      rdi, r14
        movsx    rsi, word  ptr [rbp-0x28]
        mov      r11, 0xD1FFAB1E      ; code for System.Threading.Tasks.Sources.IValueTaskSource:GetStatus(short):int:this
        call     [r11]System.Threading.Tasks.Sources.IValueTaskSource:GetStatus(short):int:this
        test     eax, eax
        jne      G_M48137_IG06
 						;; size=158 bbWeight=1 PerfScore 45.25
 G_M48137_IG15:
        xor      edi, edi
        mov      r15, bword ptr [rbp-0x60]
        mov      dword ptr [r15+0x10], edi
        lea      rdi, bword ptr [r15+0x38]
        lea      rsi, bword ptr [rbp-0x30]
        call     CORINFO_HELP_ASSIGN_BYREF
        movsq    
        lea      rsi, bword ptr [r15+0x18]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:GetStateMachineBox[System.Formats.Tar.TarHeader+<WriteWithSeekableDataStreamAsync>d__84](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox
        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:GetStateMachineBox[System.Formats.Tar.TarHeader+<WriteWithSeekableDataStreamAsync>d__84](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox
        mov      rsi, rax
        lea      rdi, [rbp-0x30]
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable+ConfiguredValueTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)
        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable+ConfiguredValueTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)
        jmp      G_M48137_IG33
 						;; size=68 bbWeight=1 PerfScore 15.25
 G_M48137_IG16:
        test     dword ptr [rax+0x34], 0xD1FFAB1E
        jne      G_M48137_IG06
        jmp      SHORT G_M48137_IG15
 						;; size=15 bbWeight=1 PerfScore 6.00
 G_M48137_IG17:
        mov      rdi, r15
        movsx    rsi, word  ptr [rbp-0x28]
        mov      r11, 0xD1FFAB1E      ; code for System.Threading.Tasks.Sources.IValueTaskSource:GetResult(short):this
        call     [r11]System.Threading.Tasks.Sources.IValueTaskSource:GetResult(short):this
 						;; size=21 bbWeight=1 PerfScore 6.50
 G_M48137_IG18:
        mov      rdx, bword ptr [rbp-0x60]
        mov      rdi, gword ptr [rbx+0x08]
        test     rdi, rdi
        je       G_M48137_IG21
        mov      rcx, gword ptr [rdx+0x30]
        mov      rsi, gword ptr [rdx+0x08]
        mov      rdx, rdi
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Formats.Tar.TarHeader:WriteDataAsync(System.IO.Stream,System.IO.Stream,System.Threading.CancellationToken):System.Threading.Tasks.Task:this
        call     [rax]System.Formats.Tar.TarHeader:WriteDataAsync(System.IO.Stream,System.IO.Stream,System.Threading.CancellationToken):System.Threading.Tasks.Task:this
        cmp      byte  ptr [rax], al
        mov      gword ptr [rbp-0x50], rax
        xor      edi, edi
        mov      dword ptr [rbp-0x48], edi
        test     byte  ptr [rbp-0x48], 4
        jne      SHORT G_M48137_IG19
        mov      rdi, gword ptr [rbp-0x50]
        test     dword ptr [rdi+0x34], 0xD1FFAB1E
        jne      G_M48137_IG10
 						;; size=77 bbWeight=1 PerfScore 25.25
 G_M48137_IG19:
        mov      r15, bword ptr [rbp-0x60]
        mov      dword ptr [r15+0x10], 1
        lea      rdi, bword ptr [r15+0x48]
        mov      rsi, gword ptr [rbp-0x50]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        mov      esi, dword ptr [rbp-0x48]
        mov      dword ptr [r15+0x50], esi
        lea      rsi, bword ptr [r15+0x18]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:GetStateMachineBox[System.Formats.Tar.TarHeader+<WriteWithSeekableDataStreamAsync>d__84](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox
        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:GetStateMachineBox[System.Formats.Tar.TarHeader+<WriteWithSeekableDataStreamAsync>d__84](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox
        mov      rsi, rax
        lea      rdi, [rbp-0x50]
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)
        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox)
        jmp      G_M48137_IG33
 						;; size=75 bbWeight=1 PerfScore 16.50
 G_M48137_IG20:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M48137_IG21:
        mov      rdx, bword ptr [rbp-0x60]
        mov      dword ptr [rdx+0x10], -2
        lea      rdi, bword ptr [rdx+0x18]
        cmp      gword ptr [rdi], 0
        je       G_M48137_IG32
        mov      rbx, gword ptr [rdi]
        xor      r15d, r15d
        mov      rdi, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rdi], 1
        je       G_M48137_IG35
 						;; size=50 bbWeight=1 PerfScore 13.00
 G_M48137_IG22:
        mov      rdi, 0xD1FFAB1E      ; data for System.Threading.Tasks.TplEventSource:Log
        mov      r14, gword ptr [rdi]
        cmp      byte  ptr [r14+0x9D], 0
        je       SHORT G_M48137_IG23
        mov      rdi, rbx
        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_M48137_IG23
        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_M48137_IG23
        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=133 bbWeight=1 PerfScore 31.00
 G_M48137_IG23:
        mov      eax, dword ptr [rbx+0x34]
        mov      dword ptr [rbp-0x54], eax
        test     eax, 0xD1FFAB1E
        jne      G_M48137_IG36
        lea      r14, bword ptr [rbx+0x34]
        mov      edi, eax
        or       edi, 0xD1FFAB1E
        lock     
        cmpxchg  dword ptr [r14], edi
        cmp      eax, dword ptr [rbp-0x54]
        je       SHORT G_M48137_IG30
        mov      eax, dword ptr [rbx+0x34]
        jmp      SHORT G_M48137_IG25
 						;; size=44 bbWeight=1 PerfScore 30.25
 G_M48137_IG24:
        mov      edi, eax
        mov      eax, edi
 						;; size=4 bbWeight=8 PerfScore 4.00
 G_M48137_IG25:
        test     eax, 0xD1FFAB1E
        je       SHORT G_M48137_IG27
 						;; size=7 bbWeight=8 PerfScore 10.00
 G_M48137_IG26:
        xor      edi, edi
        jmp      SHORT G_M48137_IG29
 						;; size=4 bbWeight=1 PerfScore 2.25
 G_M48137_IG27:
        mov      edi, eax
        or       edi, 0xD1FFAB1E
        mov      dword ptr [rbp-0x58], eax
        lock     
        cmpxchg  dword ptr [r14], edi
        mov      edi, dword ptr [rbp-0x58]
        cmp      eax, edi
        jne      SHORT G_M48137_IG24
 						;; size=23 bbWeight=8 PerfScore 174.00
 G_M48137_IG28:
        mov      edi, 1
 						;; size=5 bbWeight=1 PerfScore 0.25
 G_M48137_IG29:
        test     edi, edi
        je       G_M48137_IG36
 						;; size=8 bbWeight=1 PerfScore 1.25
 G_M48137_IG30:
        mov      byte  ptr [rbx+0x38], r15b
        mov      edi, dword ptr [rbx+0x34]
        or       edi, 0xD1FFAB1E
        xchg     dword ptr [r14], edi
        mov      r15, gword ptr [rbx+0x28]
        test     r15, r15
        je       SHORT G_M48137_IG31
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:NotifyParentIfPotentiallyAttachedTask():this
        call     [rax]System.Threading.Tasks.Task:NotifyParentIfPotentiallyAttachedTask():this
        mov      rdi, gword ptr [r15+0x10]
        test     rdi, rdi
        je       SHORT G_M48137_IG31
        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=61 bbWeight=1 PerfScore 36.50
 G_M48137_IG31:
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Threading.Tasks.Task:FinishContinuations():this
        call     [rax]System.Threading.Tasks.Task:FinishContinuations():this
        jmp      SHORT G_M48137_IG33
 						;; size=17 bbWeight=1 PerfScore 5.50
 G_M48137_IG32:
        mov      rsi, 0xD1FFAB1E      ; const ptr
        mov      rsi, gword ptr [rsi]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
 						;; size=18 bbWeight=1 PerfScore 3.25
 G_M48137_IG33:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M48137_IG34:
        add      rsp, 80
        pop      rbx
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=13 bbWeight=1 PerfScore 3.75
 G_M48137_IG35:
        mov      rdi, 0xD1FFAB1E      ; System.Threading.Tasks.TplEventSource
        call     CORINFO_HELP_GET_GCSTATIC_BASE
        jmp      G_M48137_IG22
 						;; size=20 bbWeight=0 PerfScore 0.00
 G_M48137_IG36:
        mov      edi, 24
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowInvalidOperationException(int)
        call     [rax]System.ThrowHelper:ThrowInvalidOperationException(int)
        int3     
 						;; size=18 bbWeight=0 PerfScore 0.00
 G_M48137_IG37:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     rbx
        sub      rsp, 16
        mov      rbp, qword ptr [rdi+0x08]
        mov      qword ptr [rsp+0x08], rbp
        lea      rbp, [rbp+0x70]
 						;; size=25 bbWeight=0 PerfScore 0.00
 G_M48137_IG38:
        mov      r15, bword ptr [rbp-0x60]
        mov      dword ptr [r15+0x10], -2
        lea      rdi, bword ptr [r15+0x18]
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException(System.Exception):this
        call     [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder:SetException(System.Exception):this
        lea      rax, G_M48137_IG33
 						;; size=35 bbWeight=0 PerfScore 0.00
 G_M48137_IG39:
        add      rsp, 16
        pop      rbx
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1296, prolog size 43, PerfScore 530.08, instruction count 319, allocated bytes for code 1296 (MethodHash=956e43f6) for method System.Formats.Tar.TarHeader+<WriteWithSeekableDataStreamAsync>d__84:MoveNext():this (FullOpts)
+; Total bytes of code 1294, prolog size 43, PerfScore 530.58, instruction count 321, allocated bytes for code 1298 (MethodHash=956e43f6) for method System.Formats.Tar.TarHeader+<WriteWithSeekableDataStreamAsync>d__84:MoveNext():this (FullOpts)
 ; ============================================================

@MihuBot
Copy link
Owner Author

MihuBot commented Oct 22, 2024

@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