MihuBot / runtime-utils

0 stars 0 forks source link

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

Open MihuBot opened 6 days ago

MihuBot commented 6 days ago

Job completed in 18 minutes 44 seconds. https://github.com/dotnet/runtime/pull/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+d__12:MoveNext():this (FullOpts) 17 (0.65 % of base) : System.Private.CoreLib.dasm - System.IO.StreamReader+d__69:MoveNext():this (FullOpts) 16 (0.18 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+d__61`1[System.Nullable`1[int]]:MoveNext():this (FullOpts) 15 (0.17 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+d__61`1[double]:MoveNext():this (FullOpts) 15 (0.17 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+d__61`1[int]:MoveNext():this (FullOpts) 15 (0.17 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+d__61`1[long]:MoveNext():this (FullOpts) 15 (0.17 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+d__61`1[short]:MoveNext():this (FullOpts) 15 (0.16 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+d__61`1[System.Numerics.Vector`1[float]]:MoveNext():this (FullOpts) 15 (0.17 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+d__61`1[ubyte]:MoveNext():this (FullOpts) 15 (0.44 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.CryptoStream+d__53:MoveNext():this (FullOpts) 11 (0.65 % of base) : System.Security.Cryptography.Cose.dasm - System.Security.Cryptography.Cose.CoseMessage+d__38:MoveNext():this (FullOpts) 10 (0.10 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+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+d__97:MoveNext():this (FullOpts) 9 (0.42 % of base) : System.Private.CoreLib.dasm - System.IO.Strategies.BufferedFileStreamStrategy+d__48:MoveNext():this (FullOpts) 8 (0.27 % of base) : System.Private.CoreLib.dasm - System.IO.BufferedStream+d__59:MoveNext():this (FullOpts) 8 (0.27 % of base) : System.Private.CoreLib.dasm - System.IO.File+d__122:MoveNext():this (FullOpts) 8 (0.31 % of base) : System.Private.CoreLib.dasm - System.IO.Strategies.BufferedFileStreamStrategy+d__37:MoveNext():this (FullOpts) 8 (0.25 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.CryptoStream+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+d__99:MoveNext():this (FullOpts) 6 (0.16 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+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+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+d__36:MoveNext():this (FullOpts) 5 (0.26 % of base) : System.Net.Http.dasm - System.Net.Http.Http3RequestStream+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+d__72:MoveNext():this (FullOpts) 5 (0.22 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+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: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+<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+d__48:MoveNext():this (FullOpts) 4 (0.25 % of base) : System.Private.CoreLib.dasm - System.IO.StreamWriter+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+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+d__84:MoveNext():this (FullOpts) Top method regressions (percentages): 5 (1.91 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Regex+<>c: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+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+d__38:MoveNext():this (FullOpts) 17 (0.65 % of base) : System.Private.CoreLib.dasm - System.IO.StreamReader+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+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+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+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+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+<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+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+d__84:MoveNext():this (FullOpts) 190 total methods with Code Size differences (1 improved, 189 regressed), 232364 unchanged. -------------------------------------------------------------------------------- ```

Artifacts:

MihuBot commented 6 days ago

Top method regressions

11 (0.65 % of base) - System.Security.Cryptography.Cose.CoseMessage+d__38:MoveNext():this ```diff ; Assembly listing for method System.Security.Cryptography.Cose.CoseMessage+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 ; V05 loc4 [V05 ] ( 4, 16 ) struct (16) [rbp-0x48] do-not-enreg[SBR] multireg-ret must-init ld-addr-op ;* V06 loc5 [V06 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op ;* V07 loc6 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def ; 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" ;* V12 tmp4 [V12 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V13 tmp5 [V13 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret "Return value temp for multireg return" ;* V14 tmp6 [V14 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" ; V15 tmp7 [V15,T47] ( 2, 4 ) int -> r14 "impAppendStmt" ;* V16 tmp8 [V16 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" ;* V17 tmp9 [V17 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" ;* V18 tmp10 [V18 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" ;* V19 tmp11 [V19 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V20 tmp12 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" ;* 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" ; V23 tmp15 [V23,T17] ( 4, 8 ) ref -> rdi class-hnd single-def "Inlining Arg" ;* V24 tmp16 [V24 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" ; 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" ;* V29 tmp21 [V29 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" ;* V30 tmp22 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" ;* V31 tmp23 [V31 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" ;* V32 tmp24 [V32 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op single-def "Inline stloc first use temp" -; 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" ;* V36 tmp28 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" ; 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" ; 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" ;* V43 tmp35 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V44 tmp36 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" ;* V45 tmp37 [V45 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" ;* V46 tmp38 [V46 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op single-def "Inline stloc first use temp" -; 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" ;* V50 tmp42 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" ; 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" ; 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" ;* V57 tmp49 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V58 tmp50 [V58 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" ;* V59 tmp51 [V59 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" ;* V60 tmp52 [V60 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op single-def "Inline stloc first use temp" -; 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" ;* V64 tmp56 [V64 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" ; 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" ;* V67 tmp59 [V67 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" ; V68 tmp60 [V68,T02] ( 4, 32 ) ref -> rsi class-hnd "Inlining Arg" ; V69 tmp61 [V69 ] ( 8, 64 ) struct (16) [rbp-0x58] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" ;* V70 tmp62 [V70 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V71 tmp63 [V71 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "Inline stloc first use temp" ;* V72 tmp64 [V72 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" ;* V73 tmp65 [V73 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ;* 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" ;* 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" ; V79 tmp71 [V79,T15] ( 3, 12 ) ref -> rax class-hnd "Inline stloc first use temp" ;* V80 tmp72 [V80 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" ;* 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" ; 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" ; V87 tmp79 [V87,T11] ( 5, 20 ) ref -> r14 class-hnd "Inline stloc first use temp" ;* V88 tmp80 [V88 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" ; 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" ; V91 tmp83 [V91,T10] ( 10, 20 ) ref -> rbx class-hnd single-def "impAppendStmt" ; V92 tmp84 [V92,T48] ( 2, 4 ) struct ( 8) r15 "Inlining Arg" ; V93 tmp85 [V93,T14] ( 6, 12 ) ref -> r14 class-hnd exact single-def "impAppendStmt" ;* V94 tmp86 [V94 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" ; 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" ; 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" ; 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+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+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+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+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 commented 6 days ago

Top method improvements

-2 (-0.15 % of base) - System.Formats.Tar.TarHeader+d__84:MoveNext():this ```diff ; Assembly listing for method System.Formats.Tar.TarHeader+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 ; V03 loc2 [V03 ] ( 10, 10 ) struct (16) [rbp-0x30] do-not-enreg[XSF] must-init addr-exposed ld-addr-op ; V04 loc3 [V04 ] ( 3, 3 ) struct (16) [rbp-0x40] do-not-enreg[SBR] multireg-ret must-init ld-addr-op ;* V05 loc4 [V05 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op ; V06 loc5 [V06 ] ( 10, 10 ) struct (16) [rbp-0x50] do-not-enreg[XS] must-init addr-exposed ld-addr-op ;* V07 loc6 [V07 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op ;* V08 loc7 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def ; 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" ;* V15 tmp6 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" ;* V16 tmp7 [V16 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V17 tmp8 [V17 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret "Return value temp for multireg return" ; V18 tmp9 [V18,T54] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" ;* V19 tmp10 [V19 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" ; 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" ;* V24 tmp15 [V24 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" ;* V25 tmp16 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" ;* V26 tmp17 [V26 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" ;* V27 tmp18 [V27 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "Inline stloc first use temp" -; 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" ;* V31 tmp22 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" ; 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" ;* V34 tmp25 [V34 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V35 tmp26 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V36 tmp27 [V36 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" ;* V37 tmp28 [V37 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" ;* V38 tmp29 [V38 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" ; 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" ;* 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" ; V43 tmp34 [V43,T28] ( 3, 3 ) ref -> rax class-hnd single-def "Inline stloc first use temp" ;* V44 tmp35 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" ;* 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" ; V49 tmp40 [V49,T17] ( 4, 4 ) ref -> r15 class-hnd single-def "Inline stloc first use temp" ; V50 tmp41 [V50,T18] ( 4, 4 ) ref -> rax class-hnd single-def "Inline stloc first use temp" ;* V51 tmp42 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" ; V52 tmp43 [V52,T12] ( 3, 6 ) ref -> rax class-hnd single-def "Inlining Arg" ;* 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" ;* V57 tmp48 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* 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" ;* 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" ; V64 tmp55 [V64,T13] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" ; 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" ; V68 tmp59 [V68,T03] ( 10, 20 ) ref -> rbx class-hnd single-def "impAppendStmt" ; V69 tmp60 [V69,T26] ( 2, 4 ) struct ( 8) r15 "Inlining Arg" ; V70 tmp61 [V70,T04] ( 6, 12 ) ref -> r14 class-hnd exact single-def "impAppendStmt" ;* V71 tmp62 [V71 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" ; 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" ; 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" ; 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+d__84](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox call [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:GetStateMachineBox[System.Formats.Tar.TarHeader+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+d__84](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox call [rax]System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:GetStateMachineBox[System.Formats.Tar.TarHeader+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+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+d__84:MoveNext():this (FullOpts) ; ============================================================ ```
MihuBot commented 6 days ago

@xtqqczze