MihuBot / runtime-utils

0 stars 0 forks source link

[X64] [EgorBo] JIT: Bulk copy of byrefs #363

Open MihuBot opened 2 months ago

MihuBot commented 2 months ago

Build completed in 31 minutes. https://github.com/dotnet/runtime/pull/101761

Diffs

Diffs ``` Found 276 files with textual diffs. Summary of Code Size diffs: (Lower is better) Total bytes of base: 38860923 Total bytes of diff: 38834106 Total bytes of delta: -26817 (-0.07 % of base) Total relative delta: Infinity diff is an improvement. relative diff is a regression. Total byte diff includes -1100 bytes from reconciling methods Base had 14 unique methods, 1100 unique bytes Diff had 0 unique methods, 0 unique bytes Top file regressions (bytes): 332 : Microsoft.Extensions.Logging.EventSource.dasm (1.43 % of base) 59 : System.Net.Sockets.dasm (0.02 % of base) Top file improvements (bytes): -13709 : System.Collections.Immutable.dasm (-0.65 % of base) -4669 : System.Text.Json.dasm (-0.37 % of base) -3001 : System.Security.Cryptography.Pkcs.dasm (-0.77 % of base) -2628 : System.Security.Cryptography.dasm (-0.24 % of base) -1237 : Microsoft.Extensions.Http.dasm (-1.89 % of base) -1102 : System.Memory.dasm (-0.37 % of base) -241 : System.Private.Xml.dasm (-0.01 % of base) -225 : System.Diagnostics.DiagnosticSource.dasm (-0.10 % of base) -162 : System.Net.Http.dasm (-0.02 % of base) -78 : System.IO.Pipelines.dasm (-0.10 % of base) -66 : Microsoft.Extensions.DependencyModel.dasm (-0.08 % of base) -28 : System.Private.CoreLib.dasm (-0.00 % of base) -21 : System.Linq.Expressions.dasm (-0.00 % of base) -19 : Microsoft.Extensions.Logging.dasm (-0.05 % of base) -11 : ILCompiler.Reflection.ReadyToRun.dasm (-0.00 % of base) -8 : System.DirectoryServices.Protocols.dasm (-0.01 % of base) -3 : System.Text.Encodings.Web.dasm (-0.01 % of base) 19 total files with Code Size differences (17 improved, 2 regressed), 237 unchanged. Top method regressions (bytes): 180 (32.20 % of base) : Microsoft.Extensions.Logging.EventSource.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:MessageJson(int,int,System.String,int,System.String,System.String,System.String,System.String):this (FullOpts) 125 (31.81 % of base) : Microsoft.Extensions.Logging.EventSource.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:FormattedMessage(int,int,System.String,int,System.String,System.String):this (FullOpts) 94 (32.87 % of base) : Microsoft.Extensions.Logging.EventSource.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:ActivityJsonStart(int,int,System.String,System.String):this (FullOpts) 60 (27.78 % of base) : Microsoft.Extensions.Logging.EventSource.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:ActivityJsonStop(int,int,System.String):this (FullOpts) 60 (27.78 % of base) : Microsoft.Extensions.Logging.EventSource.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:ActivityStop(int,int,System.String):this (FullOpts) 59 (Infinity of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketAsyncEngine+<>c:<.ctor>b__14_0(System.Object):this (FullOpts) 1 (0.10 % of base) : System.Private.Xml.dasm - System.Xml.Schema.SequenceNode:ConstructPos(System.Xml.Schema.BitSet,System.Xml.Schema.BitSet,System.Xml.Schema.BitSet[]):this (FullOpts) Top method improvements (bytes): -373 (-100.00 % of base) : Microsoft.Extensions.Http.dasm - Microsoft.Extensions.Http.Logging.HttpClientLoggerHandler:Send(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken):System.Net.Http.HttpResponseMessage:this (FullOpts) (1 base, 0 diff methods) -330 (-8.35 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:TryParseValue(byref,byref,ubyte,ubyte):ubyte (FullOpts) -232 (-31.48 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__6:MoveNext():ubyte:this (FullOpts) -229 (-24.49 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__8:MoveNext():ubyte:this (FullOpts) -181 (-6.27 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:GetReaderScopedToNextValue(byref,byref):System.Text.Json.Utf8JsonReader (FullOpts) -169 (-38.94 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo:TryDecode(System.ReadOnlyMemory`1[ubyte],byref,byref):ubyte (FullOpts) -166 (-21.87 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.Rfc3161TstInfo:Decode(System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Pkcs.Asn1.Rfc3161TstInfo (FullOpts) -161 (-79.70 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo:.ctor(ubyte[],System.Security.Cryptography.Pkcs.Asn1.Rfc3161TstInfo):this (FullOpts) -161 (-13.05 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo:TryDecode(System.ReadOnlyMemory`1[ubyte],ubyte,byref,byref,byref):ubyte (FullOpts) -152 (-16.68 % of base) : System.Text.Json.dasm - System.Text.Json.ReadStack:Push():this (FullOpts) -144 (-5.20 % of base) : Microsoft.Extensions.Http.dasm - Microsoft.Extensions.Http.Logging.HttpClientLoggerHandler+d__3:MoveNext():this (FullOpts) -138 (-1.64 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[int]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -138 (-1.63 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[long]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -138 (-1.63 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[short]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -138 (-1.63 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.Numerics.Vector`1[float]]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -138 (-1.63 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[ubyte]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -135 (-6.26 % 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) -127 (-24.95 % of base) : System.Text.Json.dasm - System.Text.Json.ReadStack:Pop(ubyte):this (FullOpts) -124 (-5.55 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.EnvelopedDataAsn:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -118 (-17.13 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.RecipientInfoAsn:Decode(System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Pkcs.Asn1.RecipientInfoAsn (FullOpts) -118 (-17.23 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.RecipientInfoAsn:DecodeCore(byref,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -117 (-7.74 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.CadesIssuerSerial:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -117 (-5.32 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.Asn1.DistributionPointAsn:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -117 (-7.03 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.Asn1.DistributionPointNameAsn:DecodeCore(byref,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -117 (-9.47 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension:Decode(System.ReadOnlySpan`1[ubyte]):System.Collections.Generic.List`1[System.Security.Cryptography.Asn1.GeneralNameAsn] (FullOpts) -114 (-3.74 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.Rfc3161TstInfo:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -114 (-1.38 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.Nullable`1[int]]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -113 (-1.34 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[double]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -113 (-1.28 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -111 (-16.09 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Asn1.GeneralNameAsn:Decode(System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Asn1.GeneralNameAsn (FullOpts) -110 (-100.00 % of base) : Microsoft.Extensions.Logging.EventSource.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.__Canon](byref,byref,ulong) (FullOpts) (1 base, 0 diff methods) -108 (-100.00 % of base) : Microsoft.Extensions.Http.dasm - Microsoft.Extensions.Http.Logging.HttpClientLoggerHandler:<>n__0(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Net.Http.HttpResponseMessage]:this (FullOpts) (1 base, 0 diff methods) -108 (-100.00 % of base) : Microsoft.Extensions.Http.dasm - Microsoft.Extensions.Http.Logging.LoggingHttpMessageHandler:<>n__0(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Net.Http.HttpResponseMessage]:this (FullOpts) (1 base, 0 diff methods) -108 (-100.00 % of base) : Microsoft.Extensions.Http.dasm - Microsoft.Extensions.Http.Logging.LoggingHttpMessageHandler:<>n__1(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken):System.Net.Http.HttpResponseMessage:this (FullOpts) (1 base, 0 diff methods) -108 (-100.00 % of base) : Microsoft.Extensions.Http.dasm - Microsoft.Extensions.Http.Logging.LoggingScopeHttpMessageHandler:<>n__0(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Net.Http.HttpResponseMessage]:this (FullOpts) (1 base, 0 diff methods) -108 (-100.00 % of base) : Microsoft.Extensions.Http.dasm - Microsoft.Extensions.Http.Logging.LoggingScopeHttpMessageHandler:<>n__1(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken):System.Net.Http.HttpResponseMessage:this (FullOpts) (1 base, 0 diff methods) -106 (-3.32 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.SignedDataAsn:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -96 (-13.93 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.Asn1.CertificateAsn:Decode(System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.X509Certificates.Asn1.CertificateAsn (FullOpts) -90 (-9.24 % of base) : Microsoft.Extensions.Http.dasm - Microsoft.Extensions.Http.Logging.LoggingHttpMessageHandler+<g__Core|5_0>d:MoveNext():this (FullOpts) -90 (-7.78 % of base) : Microsoft.Extensions.Http.dasm - Microsoft.Extensions.Http.Logging.LoggingScopeHttpMessageHandler+<g__Core|5_0>d:MoveNext():this (FullOpts) -89 (-6.58 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.SignedCms:ComputeSignature(System.Security.Cryptography.Pkcs.CmsSigner,ubyte):this (FullOpts) -84 (-6.31 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__25[System.Numerics.Vector`1[float],System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -84 (-6.33 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__27[System.Numerics.Vector`1[float],System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -80 (-6.48 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__25[double,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -80 (-6.51 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__25[int,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -80 (-6.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__25[long,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -80 (-6.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__25[short,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -80 (-6.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__25[System.Nullable`1[int],System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -80 (-6.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__25[ubyte,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -80 (-6.49 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__27[double,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -80 (-6.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__27[int,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -80 (-6.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__27[long,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -80 (-6.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__27[short,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -80 (-6.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__27[System.Nullable`1[int],System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -80 (-6.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__27[ubyte,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -80 (-11.75 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Asn1.ECPrivateKey:Decode(System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Asn1.ECPrivateKey (FullOpts) -75 (-36.95 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.TagList:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]:this (FullOpts) -75 (-36.95 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.TagList:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -75 (-17.65 % of base) : System.Net.Http.dasm - System.Net.Http.Metrics.MetricsHandler:InitializeCommonTags(System.Net.Http.HttpRequestMessage):System.Diagnostics.TagList (FullOpts) -74 (-21.20 % of base) : System.Net.Http.dasm - System.Net.Http.Metrics.ConnectionMetrics:GetTags():System.Diagnostics.TagList:this (FullOpts) -70 (-18.47 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECOpenSsl:ExportNamedCurveParameters(Microsoft.Win32.SafeHandles.SafeEcKeyHandle,ubyte):System.Security.Cryptography.ECParameters (FullOpts) -66 (-66.67 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.TagList+Enumerator:.ctor(byref):this (FullOpts) -66 (-21.09 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECDiffieHellmanOpenSslPublicKey:ExportExplicitParameters():System.Security.Cryptography.ECParameters:this (FullOpts) -66 (-10.02 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.KeyAgreeRecipientInfoAsn:Decode(System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Pkcs.Asn1.KeyAgreeRecipientInfoAsn (FullOpts) -65 (-9.92 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Asn1.ECDomainParameters:DecodeCore(byref,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -65 (-1.56 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[double]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -65 (-3.98 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[double]:PopulatePropertiesFastPath(System.Object,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions,byref,byref) (FullOpts) -65 (-13.43 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[double]:ReadPropertyValue(System.Object,byref,byref,System.Text.Json.Serialization.Metadata.JsonPropertyInfo,ubyte) (FullOpts) -65 (-1.60 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[int]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -65 (-3.98 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[int]:PopulatePropertiesFastPath(System.Object,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions,byref,byref) (FullOpts) -65 (-13.43 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[int]:ReadPropertyValue(System.Object,byref,byref,System.Text.Json.Serialization.Metadata.JsonPropertyInfo,ubyte) (FullOpts) -65 (-1.60 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[long]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -65 (-3.98 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[long]:PopulatePropertiesFastPath(System.Object,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions,byref,byref) (FullOpts) -65 (-13.43 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[long]:ReadPropertyValue(System.Object,byref,byref,System.Text.Json.Serialization.Metadata.JsonPropertyInfo,ubyte) (FullOpts) -65 (-1.60 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[short]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -65 (-3.98 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[short]:PopulatePropertiesFastPath(System.Object,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions,byref,byref) (FullOpts) -65 (-13.43 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[short]:ReadPropertyValue(System.Object,byref,byref,System.Text.Json.Serialization.Metadata.JsonPropertyInfo,ubyte) (FullOpts) -65 (-1.52 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -65 (-3.98 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.__Canon]:PopulatePropertiesFastPath(System.Object,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions,byref,byref) (FullOpts) -65 (-13.43 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.__Canon]:ReadPropertyValue(System.Object,byref,byref,System.Text.Json.Serialization.Metadata.JsonPropertyInfo,ubyte) (FullOpts) -65 (-1.66 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.Nullable`1[int]]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -65 (-3.98 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.Nullable`1[int]]:PopulatePropertiesFastPath(System.Object,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions,byref,byref) (FullOpts) -65 (-13.43 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.Nullable`1[int]]:ReadPropertyValue(System.Object,byref,byref,System.Text.Json.Serialization.Metadata.JsonPropertyInfo,ubyte) (FullOpts) -65 (-1.59 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.Numerics.Vector`1[float]]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -65 (-3.98 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.Numerics.Vector`1[float]]:PopulatePropertiesFastPath(System.Object,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions,byref,byref) (FullOpts) -65 (-13.43 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.Numerics.Vector`1[float]]:ReadPropertyValue(System.Object,byref,byref,System.Text.Json.Serialization.Metadata.JsonPropertyInfo,ubyte) (FullOpts) -65 (-1.60 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[ubyte]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -65 (-3.98 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[ubyte]:PopulatePropertiesFastPath(System.Object,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions,byref,byref) (FullOpts) -65 (-13.43 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[ubyte]:ReadPropertyValue(System.Object,byref,byref,System.Text.Json.Serialization.Metadata.JsonPropertyInfo,ubyte) (FullOpts) -64 (-9.86 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.SignerInfoAsn:Decode(System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Pkcs.Asn1.SignerInfoAsn (FullOpts) -64 (-1.49 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.CmsSigner:Sign(System.ReadOnlyMemory`1[ubyte],System.String,ubyte,byref):System.Security.Cryptography.Pkcs.Asn1.SignerInfoAsn:this (FullOpts) -63 (-4.02 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder+d__22[System.__Canon,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -63 (-12.99 % of base) : System.Text.Json.dasm - System.Text.Json.WriteStack:Pop(ubyte):this (FullOpts) -62 (-1.86 % of base) : System.Security.Cryptography.dasm - Interop+Crypto:GetECCurveParameters(Microsoft.Win32.SafeHandles.SafeEcKeyHandle,ubyte):System.Security.Cryptography.ECParameters (FullOpts) -62 (-5.71 % of base) : System.Security.Cryptography.dasm - Interop+Crypto:GetECKeyParameters(Microsoft.Win32.SafeHandles.SafeEcKeyHandle,ubyte):System.Security.Cryptography.ECParameters (FullOpts) -62 (-3.78 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.EccKeyFormatHelper:FromECPrivateKey(System.Security.Cryptography.Asn1.ECPrivateKey,byref,byref) (FullOpts) -62 (-20.67 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECDiffieHellmanOpenSsl:ExportParameters(ubyte):System.Security.Cryptography.ECParameters:this (FullOpts) -62 (-10.51 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECDiffieHellmanOpenSslPublicKey:ExportParameters():System.Security.Cryptography.ECParameters:this (FullOpts) -62 (-20.67 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECDsaOpenSsl:ExportParameters(ubyte):System.Security.Cryptography.ECParameters:this (FullOpts) -62 (-21.09 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECOpenSsl:ExportExplicitCurveParameters(Microsoft.Win32.SafeHandles.SafeEcKeyHandle,ubyte):System.Security.Cryptography.ECParameters (FullOpts) Top method regressions (percentages): 59 (Infinity of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketAsyncEngine+<>c:<.ctor>b__14_0(System.Object):this (FullOpts) 94 (32.87 % of base) : Microsoft.Extensions.Logging.EventSource.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:ActivityJsonStart(int,int,System.String,System.String):this (FullOpts) 180 (32.20 % of base) : Microsoft.Extensions.Logging.EventSource.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:MessageJson(int,int,System.String,int,System.String,System.String,System.String,System.String):this (FullOpts) 125 (31.81 % of base) : Microsoft.Extensions.Logging.EventSource.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:FormattedMessage(int,int,System.String,int,System.String,System.String):this (FullOpts) 60 (27.78 % of base) : Microsoft.Extensions.Logging.EventSource.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:ActivityJsonStop(int,int,System.String):this (FullOpts) 60 (27.78 % of base) : Microsoft.Extensions.Logging.EventSource.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:ActivityStop(int,int,System.String):this (FullOpts) 1 (0.10 % of base) : System.Private.Xml.dasm - System.Xml.Schema.SequenceNode:ConstructPos(System.Xml.Schema.BitSet,System.Xml.Schema.BitSet,System.Xml.Schema.BitSet[]):this (FullOpts) Top method improvements (percentages): -108 (-100.00 % of base) : Microsoft.Extensions.Http.dasm - Microsoft.Extensions.Http.Logging.HttpClientLoggerHandler:<>n__0(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Net.Http.HttpResponseMessage]:this (FullOpts) (1 base, 0 diff methods) -373 (-100.00 % of base) : Microsoft.Extensions.Http.dasm - Microsoft.Extensions.Http.Logging.HttpClientLoggerHandler:Send(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken):System.Net.Http.HttpResponseMessage:this (FullOpts) (1 base, 0 diff methods) -108 (-100.00 % of base) : Microsoft.Extensions.Http.dasm - Microsoft.Extensions.Http.Logging.LoggingHttpMessageHandler:<>n__0(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Net.Http.HttpResponseMessage]:this (FullOpts) (1 base, 0 diff methods) -108 (-100.00 % of base) : Microsoft.Extensions.Http.dasm - Microsoft.Extensions.Http.Logging.LoggingHttpMessageHandler:<>n__1(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken):System.Net.Http.HttpResponseMessage:this (FullOpts) (1 base, 0 diff methods) -108 (-100.00 % of base) : Microsoft.Extensions.Http.dasm - Microsoft.Extensions.Http.Logging.LoggingScopeHttpMessageHandler:<>n__0(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Net.Http.HttpResponseMessage]:this (FullOpts) (1 base, 0 diff methods) -108 (-100.00 % of base) : Microsoft.Extensions.Http.dasm - Microsoft.Extensions.Http.Logging.LoggingScopeHttpMessageHandler:<>n__1(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken):System.Net.Http.HttpResponseMessage:this (FullOpts) (1 base, 0 diff methods) -11 (-100.00 % of base) : Microsoft.Extensions.Logging.EventSource.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[double](byref,byref,ulong) (FullOpts) (1 base, 0 diff methods) -11 (-100.00 % of base) : Microsoft.Extensions.Logging.EventSource.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[int](byref,byref,ulong) (FullOpts) (1 base, 0 diff methods) -11 (-100.00 % of base) : Microsoft.Extensions.Logging.EventSource.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[long](byref,byref,ulong) (FullOpts) (1 base, 0 diff methods) -11 (-100.00 % of base) : Microsoft.Extensions.Logging.EventSource.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[short](byref,byref,ulong) (FullOpts) (1 base, 0 diff methods) -110 (-100.00 % of base) : Microsoft.Extensions.Logging.EventSource.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.__Canon](byref,byref,ulong) (FullOpts) (1 base, 0 diff methods) -11 (-100.00 % of base) : Microsoft.Extensions.Logging.EventSource.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.Nullable`1[int]](byref,byref,ulong) (FullOpts) (1 base, 0 diff methods) -11 (-100.00 % of base) : Microsoft.Extensions.Logging.EventSource.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.Numerics.Vector`1[float]](byref,byref,ulong) (FullOpts) (1 base, 0 diff methods) -11 (-100.00 % of base) : Microsoft.Extensions.Logging.EventSource.dasm - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[ubyte](byref,byref,ulong) (FullOpts) (1 base, 0 diff methods) -161 (-79.70 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo:.ctor(ubyte[],System.Security.Cryptography.Pkcs.Asn1.Rfc3161TstInfo):this (FullOpts) -66 (-66.67 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.TagList+Enumerator:.ctor(byref):this (FullOpts) -54 (-55.10 % of base) : System.Security.Cryptography.Pkcs.dasm - Internal.Cryptography.Pal.AnyOS.ManagedPkcsPal+ManagedKeyAgreePal:.ctor(System.Security.Cryptography.Pkcs.Asn1.KeyAgreeRecipientInfoAsn,int):this (FullOpts) -29 (-50.00 % of base) : System.Security.Cryptography.Pkcs.dasm - Internal.Cryptography.Pal.AnyOS.ManagedPkcsPal+ManagedKeyTransPal:.ctor(System.Security.Cryptography.Pkcs.Asn1.KeyTransRecipientInfoAsn):this (FullOpts) -169 (-38.94 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo:TryDecode(System.ReadOnlyMemory`1[ubyte],byref,byref):ubyte (FullOpts) -75 (-36.95 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.TagList:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]:this (FullOpts) -75 (-36.95 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.TagList:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -47 (-33.81 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECCurve:CreateFromOid(System.Security.Cryptography.Oid):System.Security.Cryptography.ECCurve (FullOpts) -232 (-31.48 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__6:MoveNext():ubyte:this (FullOpts) -30 (-30.61 % of base) : System.Security.Cryptography.Pkcs.dasm - Internal.Cryptography.Pal.AnyOS.ManagedPkcsPal+ManagedDecryptorPal:.ctor(ubyte[],System.Security.Cryptography.Pkcs.Asn1.EnvelopedDataAsn,System.Security.Cryptography.Pkcs.RecipientInfoCollection):this (FullOpts) -32 (-27.83 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]:GetEnumerator():System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.__Canon]:this (FullOpts) -62 (-25.31 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECOpenSsl:ExportParameters(Microsoft.Win32.SafeHandles.SafeEcKeyHandle,ubyte):System.Security.Cryptography.ECParameters (FullOpts) -127 (-24.95 % of base) : System.Text.Json.dasm - System.Text.Json.ReadStack:Pop(ubyte):this (FullOpts) -61 (-24.80 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:g__TryAdvanceWithReadAhead|4_0(byref):ubyte (FullOpts) -229 (-24.49 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__8:MoveNext():ubyte:this (FullOpts) -35 (-24.48 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.Numerics.Vector`1[float],System.Nullable`1[int]]:GetEnumerator():System.Collections.Immutable.ImmutableDictionary`2+HashBucket+Enumerator[System.Numerics.Vector`1[float],System.Nullable`1[int]]:this (FullOpts) -28 (-22.05 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RSAOpenSsl+<>c:b__29_0(System.ReadOnlyMemory`1[ubyte],System.ReadOnlyMemory`1[ubyte]):System.Security.Cryptography.RSAParameters:this (FullOpts) -166 (-21.87 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.Rfc3161TstInfo:Decode(System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Pkcs.Asn1.Rfc3161TstInfo (FullOpts) -29 (-21.80 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.Nullable`1[int]]:GetEnumerator():System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.Nullable`1[int]]:this (FullOpts) -42 (-21.65 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl:PopParsingState():this (FullOpts) -74 (-21.20 % of base) : System.Net.Http.dasm - System.Net.Http.Metrics.ConnectionMetrics:GetTags():System.Diagnostics.TagList:this (FullOpts) -62 (-21.09 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECOpenSsl:ExportExplicitCurveParameters(Microsoft.Win32.SafeHandles.SafeEcKeyHandle,ubyte):System.Security.Cryptography.ECParameters (FullOpts) -66 (-21.09 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECDiffieHellmanOpenSslPublicKey:ExportExplicitParameters():System.Security.Cryptography.ECParameters:this (FullOpts) -62 (-20.67 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECDiffieHellmanOpenSsl:ExportParameters(ubyte):System.Security.Cryptography.ECParameters:this (FullOpts) -62 (-20.67 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECDsaOpenSsl:ExportParameters(ubyte):System.Security.Cryptography.ECParameters:this (FullOpts) -32 (-18.71 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.Numerics.Vector`1[float]]:GetEnumerator():System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.Numerics.Vector`1[float]]:this (FullOpts) -70 (-18.47 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECOpenSsl:ExportNamedCurveParameters(Microsoft.Win32.SafeHandles.SafeEcKeyHandle,ubyte):System.Security.Cryptography.ECParameters (FullOpts) -24 (-18.46 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]:GetEnumerator():System.Collections.Immutable.ImmutableDictionary`2+HashBucket+Enumerator[System.__Canon,System.Nullable`1[int]]:this (FullOpts) -75 (-17.65 % of base) : System.Net.Http.dasm - System.Net.Http.Metrics.MetricsHandler:InitializeCommonTags(System.Net.Http.HttpRequestMessage):System.Diagnostics.TagList (FullOpts) -118 (-17.23 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.RecipientInfoAsn:DecodeCore(byref,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -118 (-17.13 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.RecipientInfoAsn:Decode(System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Pkcs.Asn1.RecipientInfoAsn (FullOpts) -58 (-16.91 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TrySkip():ubyte:this (FullOpts) -152 (-16.68 % of base) : System.Text.Json.dasm - System.Text.Json.ReadStack:Push():this (FullOpts) -21 (-16.54 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[double,System.Nullable`1[int]]:GetEnumerator():System.Collections.Immutable.ImmutableDictionary`2+HashBucket+Enumerator[double,System.Nullable`1[int]]:this (FullOpts) -21 (-16.54 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[int,System.Nullable`1[int]]:GetEnumerator():System.Collections.Immutable.ImmutableDictionary`2+HashBucket+Enumerator[int,System.Nullable`1[int]]:this (FullOpts) -21 (-16.54 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[long,System.Nullable`1[int]]:GetEnumerator():System.Collections.Immutable.ImmutableDictionary`2+HashBucket+Enumerator[long,System.Nullable`1[int]]:this (FullOpts) -21 (-16.54 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[short,System.Nullable`1[int]]:GetEnumerator():System.Collections.Immutable.ImmutableDictionary`2+HashBucket+Enumerator[short,System.Nullable`1[int]]:this (FullOpts) -21 (-16.54 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.Nullable`1[int],System.Nullable`1[int]]:GetEnumerator():System.Collections.Immutable.ImmutableDictionary`2+HashBucket+Enumerator[System.Nullable`1[int],System.Nullable`1[int]]:this (FullOpts) -21 (-16.54 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[ubyte,System.Nullable`1[int]]:GetEnumerator():System.Collections.Immutable.ImmutableDictionary`2+HashBucket+Enumerator[ubyte,System.Nullable`1[int]]:this (FullOpts) -43 (-16.41 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl:PopEntity():this (FullOpts) -111 (-16.09 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Asn1.GeneralNameAsn:Decode(System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Asn1.GeneralNameAsn (FullOpts) -18 (-15.93 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[double]:Reverse():System.Collections.Generic.IEnumerator`1[double]:this (FullOpts) -18 (-15.93 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[int]:Reverse():System.Collections.Generic.IEnumerator`1[int]:this (FullOpts) -18 (-15.93 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[long]:Reverse():System.Collections.Generic.IEnumerator`1[long]:this (FullOpts) -18 (-15.93 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[short]:Reverse():System.Collections.Generic.IEnumerator`1[short]:this (FullOpts) -18 (-15.93 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.Nullable`1[int]]:Reverse():System.Collections.Generic.IEnumerator`1[System.Nullable`1[int]]:this (FullOpts) -18 (-15.93 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.Numerics.Vector`1[float]]:Reverse():System.Collections.Generic.IEnumerator`1[System.Numerics.Vector`1[float]]:this (FullOpts) -18 (-15.93 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[ubyte]:Reverse():System.Collections.Generic.IEnumerator`1[ubyte]:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[double]:GetEnumerator():System.Collections.Generic.IEnumerator`1[double]:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[double]:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[int]:GetEnumerator():System.Collections.Generic.IEnumerator`1[int]:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[int]:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[long]:GetEnumerator():System.Collections.Generic.IEnumerator`1[long]:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[long]:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[short]:GetEnumerator():System.Collections.Generic.IEnumerator`1[short]:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[short]:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[System.Nullable`1[int]]:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Nullable`1[int]]:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[System.Nullable`1[int]]:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[System.Numerics.Vector`1[float]]:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Numerics.Vector`1[float]]:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[System.Numerics.Vector`1[float]]:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[ubyte]:GetEnumerator():System.Collections.Generic.IEnumerator`1[ubyte]:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[ubyte]:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -17 (-15.32 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucket[int]:GetEnumerator():System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[int]:this (FullOpts) -17 (-15.32 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucket[long]:GetEnumerator():System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[long]:this (FullOpts) -17 (-15.18 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucket[ubyte]:GetEnumerator():System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[ubyte]:this (FullOpts) -17 (-15.04 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucket[short]:GetEnumerator():System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[short]:this (FullOpts) -7 (-14.58 % of base) : Microsoft.Extensions.Logging.dasm - Microsoft.Extensions.Logging.Logger+LoggerProviderDebugView:.ctor(System.String,System.Nullable`1[Microsoft.Extensions.Logging.MessageLogger]):this (FullOpts) -61 (-14.45 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:ReadAsObject(byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo):System.Object (FullOpts) -12 (-14.12 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[double]:GetEnumerator(System.Collections.Immutable.ImmutableSortedSet`1+Builder[double]):System.Collections.Immutable.ImmutableSortedSet`1+Enumerator[double]:this (FullOpts) -12 (-14.12 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[int]:GetEnumerator(System.Collections.Immutable.ImmutableSortedSet`1+Builder[int]):System.Collections.Immutable.ImmutableSortedSet`1+Enumerator[int]:this (FullOpts) -12 (-14.12 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[long]:GetEnumerator(System.Collections.Immutable.ImmutableSortedSet`1+Builder[long]):System.Collections.Immutable.ImmutableSortedSet`1+Enumerator[long]:this (FullOpts) -12 (-14.12 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[short]:GetEnumerator(System.Collections.Immutable.ImmutableSortedSet`1+Builder[short]):System.Collections.Immutable.ImmutableSortedSet`1+Enumerator[short]:this (FullOpts) -12 (-14.12 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.Nullable`1[int]]:GetEnumerator(System.Collections.Immutable.ImmutableSortedSet`1+Builder[System.Nullable`1[int]]):System.Collections.Immutable.ImmutableSortedSet`1+Enumerator[System.Nullable`1[int]]:this (FullOpts) -12 (-14.12 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.Numerics.Vector`1[float]]:GetEnumerator(System.Collections.Immutable.ImmutableSortedSet`1+Builder[System.Numerics.Vector`1[float]]):System.Collections.Immutable.ImmutableSortedSet`1+Enumerator[System.Numerics.Vector`1[float]]:this (FullOpts) -12 (-14.12 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[ubyte]:GetEnumerator(System.Collections.Immutable.ImmutableSortedSet`1+Builder[ubyte]):System.Collections.Immutable.ImmutableSortedSet`1+Enumerator[ubyte]:this (FullOpts) -61 (-13.96 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:Read[double](byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[double]):double (FullOpts) -61 (-13.96 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:Read[int](byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[int]):int (FullOpts) -61 (-13.96 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:Read[long](byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[long]):long (FullOpts) -61 (-13.96 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:Read[short](byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[short]):short (FullOpts) -61 (-13.96 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:Read[System.__Canon](byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[System.__Canon]):System.__Canon (FullOpts) -61 (-13.96 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:Read[ubyte](byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[ubyte]):ubyte (FullOpts) -96 (-13.93 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.Asn1.CertificateAsn:Decode(System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.X509Certificates.Asn1.CertificateAsn (FullOpts) -21 (-13.91 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[double,System.Nullable`1[int]]:System.Collections.Generic.IEnumerable>.GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:this (FullOpts) -21 (-13.91 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[double,System.Nullable`1[int]]:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -21 (-13.91 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[int,System.Nullable`1[int]]:System.Collections.Generic.IEnumerable>.GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[int,System.Nullable`1[int]]]:this (FullOpts) -21 (-13.91 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[int,System.Nullable`1[int]]:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) 766 total methods with Code Size differences (759 improved, 7 regressed), 239758 unchanged. -------------------------------------------------------------------------------- ```

Artifacts:

MihuBot commented 2 months ago

Top method regressions

180 (32.20 % of base) - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:MessageJson(int,int,System.String,int,System.String,System.String,System.String,System.String):this ```diff ; Assembly listing for method Microsoft.Extensions.Logging.EventSource.LoggingEventSource:MessageJson(int,int,System.String,int,System.String,System.String,System.String,System.String):this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data -; 0 inlinees with PGO data; 23 single block inlinees; 8 inlinees without PGO data +; 0 inlinees with PGO data; 7 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T03] ( 4, 3.50) ref -> rdi this class-hnd single-def +; V00 this [V00,T00] ( 4, 3.50) ref -> rbx this class-hnd single-def ; V01 arg1 [V01 ] ( 3, 2.50) int -> [rbp-0x2C] do-not-enreg[X] addr-exposed ld-addr-op single-def ; V02 arg2 [V02 ] ( 3, 2.50) int -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op single-def -; V03 arg3 [V03,T00] ( 8, 5 ) ref -> rcx ld-addr-op class-hnd -; V04 arg4 [V04 ] ( 3, 2.50) int -> [rbp-0x34] do-not-enreg[X] addr-exposed ld-addr-op single-def -; V05 arg5 [V05,T01] ( 8, 5 ) ref -> r9 ld-addr-op class-hnd -; V06 arg6 [V06,T04] ( 6, 3 ) ref -> r8 ld-addr-op class-hnd -; V07 arg7 [V07,T05] ( 6, 3 ) ref -> rsi ld-addr-op class-hnd -; V08 arg8 [V08,T06] ( 6, 3 ) ref -> rdx ld-addr-op class-hnd +; V03 arg3 [V03 ] ( 8, 5 ) ref -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op class-hnd +; V04 arg4 [V04 ] ( 3, 2.50) int -> [rbp-0x3C] do-not-enreg[X] addr-exposed ld-addr-op single-def +; V05 arg5 [V05 ] ( 8, 5 ) ref -> [rbp-0x48] do-not-enreg[X] addr-exposed ld-addr-op class-hnd +; V06 arg6 [V06 ] ( 6, 3 ) ref -> [rbp+0x10] do-not-enreg[X] addr-exposed ld-addr-op class-hnd +; V07 arg7 [V07 ] ( 6, 3 ) ref -> [rbp+0x18] do-not-enreg[X] addr-exposed ld-addr-op class-hnd +; V08 arg8 [V08 ] ( 6, 3 ) ref -> [rbp+0x20] do-not-enreg[X] addr-exposed ld-addr-op class-hnd ;* V09 loc0 [V09 ] ( 0, 0 ) long -> zero-ref single-def -; V10 loc1 [V10 ] ( 3, 1.50) byref -> [rbp-0x40] must-init pinned +; V10 loc1 [V10 ] ( 3, 1.50) byref -> [rbp-0x50] must-init pinned ;* V11 loc2 [V11 ] ( 0, 0 ) long -> zero-ref single-def -; V12 loc3 [V12 ] ( 3, 1.50) byref -> [rbp-0x48] must-init pinned +; V12 loc3 [V12 ] ( 3, 1.50) byref -> [rbp-0x58] must-init pinned ;* V13 loc4 [V13 ] ( 0, 0 ) long -> zero-ref single-def -; V14 loc5 [V14 ] ( 3, 1.50) byref -> [rbp-0x50] must-init pinned +; V14 loc5 [V14 ] ( 3, 1.50) byref -> [rbp-0x60] must-init pinned ;* V15 loc6 [V15 ] ( 0, 0 ) long -> zero-ref single-def -; V16 loc7 [V16 ] ( 3, 1.50) byref -> [rbp-0x58] must-init pinned +; V16 loc7 [V16 ] ( 3, 1.50) byref -> [rbp-0x68] must-init pinned ;* V17 loc8 [V17 ] ( 0, 0 ) long -> zero-ref single-def -; V18 loc9 [V18 ] ( 3, 1.50) byref -> [rbp-0x60] must-init pinned -; V19 loc10 [V19,T02] ( 11, 5.50) long -> r14 single-def +; V18 loc9 [V18 ] ( 3, 1.50) byref -> [rbp-0x70] must-init pinned +; V19 loc10 [V19,T01] ( 10, 5 ) long -> [rbp-0x78] spill-single-def ;# V20 OutArgs [V20 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V21 tmp1 [V21,T25] ( 3, 1.50) long -> rax -; V22 tmp2 [V22,T26] ( 3, 1.50) long -> r10 -; V23 tmp3 [V23,T27] ( 3, 1.50) long -> r11 -; V24 tmp4 [V24,T28] ( 3, 1.50) long -> rbx -; V25 tmp5 [V25,T29] ( 3, 1.50) long -> r15 -;* V26 tmp6 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -;* V27 tmp7 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -;* V28 tmp8 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -;* V29 tmp9 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -;* V30 tmp10 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -;* V31 tmp11 [V31 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -; V32 tmp12 [V32,T07] ( 3, 3 ) byref -> r13 single-def "Inlining Arg" -;* V33 tmp13 [V33 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V34 tmp14 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" -; V35 tmp15 [V35,T08] ( 3, 3 ) byref -> r13 single-def "Inlining Arg" -; V36 tmp16 [V36,T15] ( 2, 2 ) int -> rcx "Inlining Arg" -; V37 tmp17 [V37,T09] ( 3, 3 ) byref -> rcx single-def "Inlining Arg" -;* V38 tmp18 [V38 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V39 tmp19 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" -; V40 tmp20 [V40,T10] ( 3, 3 ) byref -> rcx single-def "Inlining Arg" -; V41 tmp21 [V41,T16] ( 2, 2 ) int -> rax "Inlining Arg" -;* V42 tmp22 [V42 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" -; V43 tmp23 [V43,T11] ( 3, 3 ) byref -> rcx single-def "Inlining Arg" -; V44 tmp24 [V44,T17] ( 2, 2 ) int -> r8 "Inlining Arg" -;* V45 tmp25 [V45 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" -; V46 tmp26 [V46,T12] ( 3, 3 ) byref -> r8 single-def "Inlining Arg" -; V47 tmp27 [V47,T18] ( 2, 2 ) int -> rsi "Inlining Arg" -;* V48 tmp28 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" -; V49 tmp29 [V49,T13] ( 3, 3 ) byref -> r8 single-def "Inlining Arg" -; V50 tmp30 [V50,T19] ( 2, 2 ) int -> rsi "Inlining Arg" -; V51 tmp31 [V51,T20] ( 2, 2 ) long -> rax "Cast away GC" -; V52 tmp32 [V52,T21] ( 2, 2 ) long -> r10 "Cast away GC" -; V53 tmp33 [V53,T22] ( 2, 2 ) long -> r11 "Cast away GC" -; V54 tmp34 [V54,T23] ( 2, 2 ) long -> rbx "Cast away GC" -; V55 tmp35 [V55,T24] ( 2, 2 ) long -> r15 "Cast away GC" -; V56 GsCookie [V56 ] ( 1, 1 ) long -> [rbp-0x68] do-not-enreg[X] addr-exposed "GSSecurityCookie" -; V57 rat0 [V57,T14] ( 3, 3 ) long -> r14 "ReplaceWithLclVar is creating a new local variable" +; V21 tmp1 [V21,T13] ( 3, 1.50) long -> r15 +; V22 tmp2 [V22,T14] ( 3, 1.50) long -> r14 +; V23 tmp3 [V23,T15] ( 3, 1.50) long -> r13 +; V24 tmp4 [V24,T16] ( 3, 1.50) long -> r12 +; V25 tmp5 [V25,T17] ( 3, 1.50) long -> [rbp-0x80] +; V26 tmp6 [V26,T02] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" +; V27 tmp7 [V27,T03] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" +; V28 tmp8 [V28,T04] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" +; V29 tmp9 [V29,T05] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" +; V30 tmp10 [V30,T06] ( 3, 3 ) ref -> rax class-hnd exact single-def "Inlining Arg" +; V31 tmp11 [V31,T08] ( 2, 2 ) long -> r15 "Cast away GC" +; V32 tmp12 [V32,T09] ( 2, 2 ) long -> r14 "Cast away GC" +; V33 tmp13 [V33,T10] ( 2, 2 ) long -> r13 "Cast away GC" +; V34 tmp14 [V34,T11] ( 2, 2 ) long -> r12 "Cast away GC" +; V35 tmp15 [V35,T12] ( 2, 2 ) long -> rax "Cast away GC" +; V36 GsCookie [V36 ] ( 1, 1 ) long -> [rbp-0x88] do-not-enreg[X] addr-exposed "GSSecurityCookie" +; V37 rat0 [V37,T07] ( 3, 3 ) long -> rsi "ReplaceWithLclVar is creating a new local variable" ; -; Lcl frame size = 72 +; Lcl frame size = 104 G_M44913_IG01: push rbp push r15 push r14 push r13 push r12 push rbx - sub rsp, 72 - lea rbp, [rsp+0x70] + sub rsp, 104 + lea rbp, [rsp+0x90] vxorps xmm8, xmm8, xmm8 - vmovdqu ymmword ptr [rbp-0x60], ymm8 + vmovdqu ymmword ptr [rbp-0x70], ymm8 xor eax, eax - mov qword ptr [rbp-0x40], rax - mov qword ptr [rbp-0x68], 0xD1FFAB1E + mov qword ptr [rbp-0x50], rax + mov qword ptr [rbp-0x88], 0xD1FFAB1E mov dword ptr [rbp-0x2C], esi mov dword ptr [rbp-0x30], edx - mov dword ptr [rbp-0x34], r8d - mov r8, gword ptr [rbp+0x10] - mov rsi, gword ptr [rbp+0x18] - mov rdx, gword ptr [rbp+0x20] - ;; size=65 bbWeight=1 PerfScore 17.33 + mov gword ptr [rbp-0x38], rcx + mov dword ptr [rbp-0x3C], r8d + mov gword ptr [rbp-0x48], r9 + mov rbx, rdi + ;; size=70 bbWeight=1 PerfScore 16.58 G_M44913_IG02: - cmp byte ptr [rdi+0x9D], 0 + cmp byte ptr [rbx+0x9D], 0 je G_M44913_IG19 ;; size=13 bbWeight=1 PerfScore 4.00 G_M44913_IG03: - mov rax, 0xD1FFAB1E ; '' - test rcx, rcx - cmove rcx, rax - test r9, r9 - cmove r9, rax - test r8, r8 - cmove r8, rax - test rsi, rsi - cmove rsi, rax - test rdx, rdx - cmove rdx, rax - test rcx, rcx + mov rsi, 0xD1FFAB1E ; '' + cmp gword ptr [rbp-0x38], 0 + cmovne rsi, gword ptr [rbp-0x38] + mov gword ptr [rbp-0x38], rsi + mov rsi, 0xD1FFAB1E ; '' + cmp gword ptr [rbp-0x48], 0 + cmovne rsi, gword ptr [rbp-0x48] + mov gword ptr [rbp-0x48], rsi + mov rsi, 0xD1FFAB1E ; '' + cmp gword ptr [rbp+0x10], 0 + cmovne rsi, gword ptr [rbp+0x10] + mov gword ptr [rbp+0x10], rsi + mov rsi, 0xD1FFAB1E ; '' + cmp gword ptr [rbp+0x18], 0 + cmovne rsi, gword ptr [rbp+0x18] + mov gword ptr [rbp+0x18], rsi + mov rsi, 0xD1FFAB1E ; '' + cmp gword ptr [rbp+0x20], 0 + cmovne rsi, gword ptr [rbp+0x20] + mov gword ptr [rbp+0x20], rsi + cmp gword ptr [rbp-0x38], 0 jne SHORT G_M44913_IG04 - xor eax, eax + xor r15d, r15d jmp SHORT G_M44913_IG05 - ;; size=54 bbWeight=0.50 PerfScore 3.12 + ;; size=132 bbWeight=0.50 PerfScore 15.75 G_M44913_IG04: - lea rax, bword ptr [rcx+0x0C] - mov bword ptr [rbp-0x40], rax - mov rax, bword ptr [rbp-0x40] - ;; size=12 bbWeight=0.50 PerfScore 1.25 + mov rsi, gword ptr [rbp-0x38] + cmp byte ptr [rsi], sil + add rsi, 12 + mov bword ptr [rbp-0x50], rsi + mov r15, bword ptr [rbp-0x50] + ;; size=19 bbWeight=0.50 PerfScore 3.12 G_M44913_IG05: - test r9, r9 + cmp gword ptr [rbp-0x48], 0 jne SHORT G_M44913_IG06 - xor r10d, r10d + xor r14d, r14d jmp SHORT G_M44913_IG07 - ;; size=10 bbWeight=0.50 PerfScore 1.75 + ;; size=12 bbWeight=0.50 PerfScore 2.62 G_M44913_IG06: - lea r10, bword ptr [r9+0x0C] - mov bword ptr [rbp-0x48], r10 - mov r10, bword ptr [rbp-0x48] - ;; size=12 bbWeight=0.50 PerfScore 1.25 + mov rsi, gword ptr [rbp-0x48] + cmp byte ptr [rsi], sil + add rsi, 12 + mov bword ptr [rbp-0x58], rsi + mov r14, bword ptr [rbp-0x58] + ;; size=19 bbWeight=0.50 PerfScore 3.12 G_M44913_IG07: - test r8, r8 + cmp gword ptr [rbp+0x10], 0 jne SHORT G_M44913_IG08 - xor r11d, r11d + xor r13d, r13d jmp SHORT G_M44913_IG09 - ;; size=10 bbWeight=0.50 PerfScore 1.75 + ;; size=12 bbWeight=0.50 PerfScore 2.62 G_M44913_IG08: - lea r11, bword ptr [r8+0x0C] - mov bword ptr [rbp-0x50], r11 - mov r11, bword ptr [rbp-0x50] - ;; size=12 bbWeight=0.50 PerfScore 1.25 + mov rsi, gword ptr [rbp+0x10] + cmp byte ptr [rsi], sil + add rsi, 12 + mov bword ptr [rbp-0x60], rsi + mov r13, bword ptr [rbp-0x60] + ;; size=19 bbWeight=0.50 PerfScore 3.12 G_M44913_IG09: - test rsi, rsi + cmp gword ptr [rbp+0x18], 0 jne SHORT G_M44913_IG10 - xor ebx, ebx + xor r12d, r12d jmp SHORT G_M44913_IG11 - ;; size=9 bbWeight=0.50 PerfScore 1.75 + ;; size=12 bbWeight=0.50 PerfScore 2.62 G_M44913_IG10: - lea rbx, bword ptr [rsi+0x0C] - mov bword ptr [rbp-0x58], rbx - mov rbx, bword ptr [rbp-0x58] - ;; size=12 bbWeight=0.50 PerfScore 1.25 + mov rsi, gword ptr [rbp+0x18] + cmp byte ptr [rsi], sil + add rsi, 12 + mov bword ptr [rbp-0x68], rsi + mov r12, bword ptr [rbp-0x68] + ;; size=19 bbWeight=0.50 PerfScore 3.12 G_M44913_IG11: - test rdx, rdx + cmp gword ptr [rbp+0x20], 0 jne SHORT G_M44913_IG12 - xor r15d, r15d + xor eax, eax + mov qword ptr [rbp-0x80], rax jmp SHORT G_M44913_IG13 - ;; size=10 bbWeight=0.50 PerfScore 1.75 + ;; size=15 bbWeight=0.50 PerfScore 3.12 G_M44913_IG12: - lea r15, bword ptr [rdx+0x0C] - mov bword ptr [rbp-0x60], r15 - mov r15, bword ptr [rbp-0x60] - ;; size=12 bbWeight=0.50 PerfScore 1.25 + mov rax, gword ptr [rbp+0x20] + cmp byte ptr [rax], al + add rax, 12 + mov bword ptr [rbp-0x70], rax + mov rax, bword ptr [rbp-0x70] + mov qword ptr [rbp-0x80], rax + ;; size=22 bbWeight=0.50 PerfScore 3.62 G_M44913_IG13: test dword ptr [rsp], esp sub rsp, 128 - lea r14, [rsp] + lea rsi, [rsp] vxorps ymm0, ymm0, ymm0 - vmovdqu ymmword ptr [r14], ymm0 - vmovdqu ymmword ptr [r14+0x20], ymm0 - vmovdqu ymmword ptr [r14+0x40], ymm0 - vmovdqu ymmword ptr [r14+0x60], ymm0 - lea r13, [rbp-0x2C] - mov qword ptr [r14], r13 - mov dword ptr [r14+0x08], 4 - lea r13, [r14+0x10] - lea r12, [rbp-0x30] - mov qword ptr [r13], r12 - mov dword ptr [r13+0x08], 4 - lea r13, [r14+0x20] - mov qword ptr [r13], rax - mov ecx, dword ptr [rcx+0x08] - add ecx, 1 - jo G_M44913_IG22 - imul ecx, ecx, 2 - jo G_M44913_IG22 - mov dword ptr [r13+0x08], ecx - lea rcx, [r14+0x30] - lea rax, [rbp-0x34] - mov qword ptr [rcx], rax - mov dword ptr [rcx+0x08], 4 - lea rcx, [r14+0x40] - mov qword ptr [rcx], r10 - mov eax, dword ptr [r9+0x08] - add eax, 1 - jo G_M44913_IG22 - imul eax, eax, 2 - jo G_M44913_IG22 - mov dword ptr [rcx+0x08], eax - lea rcx, [r14+0x50] - mov qword ptr [rcx], r11 - mov r8d, dword ptr [r8+0x08] - add r8d, 1 - jo G_M44913_IG22 - imul r8d, r8d, 2 - jo G_M44913_IG22 - mov dword ptr [rcx+0x08], r8d - lea r8, [r14+0x60] - mov qword ptr [r8], rbx - mov esi, dword ptr [rsi+0x08] - add esi, 1 - jo SHORT G_M44913_IG22 - imul esi, esi, 2 - jo SHORT G_M44913_IG22 - mov dword ptr [r8+0x08], esi - ;; size=218 bbWeight=0.50 PerfScore 27.79 + vmovdqu ymmword ptr [rsi], ymm0 + vmovdqu ymmword ptr [rsi+0x20], ymm0 + vmovdqu ymmword ptr [rsi+0x40], ymm0 + vmovdqu ymmword ptr [rsi+0x60], ymm0 + mov rcx, rsi + mov qword ptr [rbp-0x78], rcx + lea rsi, [rbp-0x2C] + mov rdi, rcx + xor edx, edx + mov r8, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[int](byref,byref,ulong) + call [r8]Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[int](byref,byref,ulong) + mov rax, qword ptr [rbp-0x78] + lea rdi, [rax+0x10] + lea rsi, [rbp-0x30] + xor edx, edx + mov rcx, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[int](byref,byref,ulong) + call [rcx]Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[int](byref,byref,ulong) + mov rax, qword ptr [rbp-0x78] + lea rsi, [rax+0x20] + lea rdx, [rbp-0x38] + mov rcx, r15 + mov rdi, 0xD1FFAB1E ; Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.String](byref,byref,ulong) + mov r8, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.__Canon](byref,byref,ulong) + call [r8]Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.__Canon](byref,byref,ulong) + mov r15, qword ptr [rbp-0x78] + lea rdi, [r15+0x30] + lea rsi, [rbp-0x3C] + xor edx, edx + mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[int](byref,byref,ulong) + call [rax]Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[int](byref,byref,ulong) + lea rsi, [r15+0x40] + lea rdx, [rbp-0x48] + mov rcx, r14 + mov rdi, 0xD1FFAB1E ; Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.String](byref,byref,ulong) + mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.__Canon](byref,byref,ulong) + call [rax]Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.__Canon](byref,byref,ulong) + lea rsi, [r15+0x50] + lea rdx, [rbp+0x10] + mov rcx, r13 + mov rdi, 0xD1FFAB1E ; Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.String](byref,byref,ulong) + mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.__Canon](byref,byref,ulong) + call [rax]Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.__Canon](byref,byref,ulong) + lea rsi, [r15+0x60] + lea rdx, [rbp+0x18] + mov rcx, r12 + mov rdi, 0xD1FFAB1E ; Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.String](byref,byref,ulong) + mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.__Canon](byref,byref,ulong) + call [rax]Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.__Canon](byref,byref,ulong) + lea rsi, [r15+0x70] + lea rdx, [rbp+0x20] + mov rcx, qword ptr [rbp-0x80] + mov rdi, 0xD1FFAB1E ; Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.String](byref,byref,ulong) + mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.__Canon](byref,byref,ulong) + call [rax]Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.__Canon](byref,byref,ulong) + ;; size=289 bbWeight=0.50 PerfScore 27.04 G_M44913_IG14: - lea r8, [r14+0x70] - mov qword ptr [r8], r15 - mov esi, dword ptr [rdx+0x08] - add esi, 1 - jo SHORT G_M44913_IG22 - imul esi, esi, 2 - jo SHORT G_M44913_IG22 - mov dword ptr [r8+0x08], esi - mov r8, r14 + mov rdi, rbx + mov r8, r15 mov esi, 5 xor edx, edx mov ecx, 8 mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEventWithRelatedActivityIdCore(int,ulong,int,ulong):this call [rax]System.Diagnostics.Tracing.EventSource:WriteEventWithRelatedActivityIdCore(int,ulong,int,ulong):this xor eax, eax - mov bword ptr [rbp-0x60], rax - ;; size=57 bbWeight=0.50 PerfScore 7.12 + mov bword ptr [rbp-0x70], rax + ;; size=36 bbWeight=0.50 PerfScore 2.88 G_M44913_IG15: - mov bword ptr [rbp-0x58], rax + mov bword ptr [rbp-0x68], rax ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M44913_IG16: - mov bword ptr [rbp-0x50], rax + mov bword ptr [rbp-0x60], rax ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M44913_IG17: - mov bword ptr [rbp-0x48], rax + mov bword ptr [rbp-0x58], rax ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M44913_IG18: - mov bword ptr [rbp-0x40], rax + mov bword ptr [rbp-0x50], rax ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M44913_IG19: - cmp qword ptr [rbp-0x68], 0xD1FFAB1E + cmp qword ptr [rbp-0x88], 0xD1FFAB1E je SHORT G_M44913_IG20 call CORINFO_HELP_FAIL_FAST - ;; size=15 bbWeight=1 PerfScore 4.00 + ;; size=18 bbWeight=1 PerfScore 4.00 G_M44913_IG20: nop ;; size=1 bbWeight=1 PerfScore 0.25 G_M44913_IG21: lea rsp, [rbp-0x28] pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.50 -G_M44913_IG22: - call CORINFO_HELP_OVERFLOW - int3 - ;; size=6 bbWeight=0 PerfScore 0.00 -; Total bytes of code 559, prolog size 43, PerfScore 83.38, instruction count 152, allocated bytes for code 559 (MethodHash=9824508e) for method Microsoft.Extensions.Logging.EventSource.LoggingEventSource:MessageJson(int,int,System.String,int,System.String,System.String,System.String,System.String):this (FullOpts) +; Total bytes of code 739, prolog size 49, PerfScore 104.13, instruction count 171, allocated bytes for code 739 (MethodHash=9824508e) for method Microsoft.Extensions.Logging.EventSource.LoggingEventSource:MessageJson(int,int,System.String,int,System.String,System.String,System.String,System.String):this (FullOpts) ```
125 (31.81 % of base) - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:FormattedMessage(int,int,System.String,int,System.String,System.String):this ```diff ; Assembly listing for method Microsoft.Extensions.Logging.EventSource.LoggingEventSource:FormattedMessage(int,int,System.String,int,System.String,System.String):this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data -; 0 inlinees with PGO data; 17 single block inlinees; 6 inlinees without PGO data +; 0 inlinees with PGO data; 5 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T02] ( 4, 3.50) ref -> rdi this class-hnd single-def -; V01 arg1 [V01 ] ( 3, 2.50) int -> [rbp-0x0C] do-not-enreg[X] addr-exposed ld-addr-op single-def -; V02 arg2 [V02 ] ( 3, 2.50) int -> [rbp-0x10] do-not-enreg[X] addr-exposed ld-addr-op single-def -; V03 arg3 [V03,T00] ( 8, 5 ) ref -> rcx ld-addr-op class-hnd -; V04 arg4 [V04 ] ( 3, 2.50) int -> [rbp-0x14] do-not-enreg[X] addr-exposed ld-addr-op single-def -; V05 arg5 [V05,T01] ( 8, 5 ) ref -> r9 ld-addr-op class-hnd -; V06 arg6 [V06,T04] ( 6, 3 ) ref -> r8 ld-addr-op class-hnd +; V00 this [V00,T00] ( 4, 3.50) ref -> rbx this class-hnd single-def +; V01 arg1 [V01 ] ( 3, 2.50) int -> [rbp-0x2C] do-not-enreg[X] addr-exposed ld-addr-op single-def +; V02 arg2 [V02 ] ( 3, 2.50) int -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op single-def +; V03 arg3 [V03 ] ( 8, 5 ) ref -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op class-hnd +; V04 arg4 [V04 ] ( 3, 2.50) int -> [rbp-0x3C] do-not-enreg[X] addr-exposed ld-addr-op single-def +; V05 arg5 [V05 ] ( 8, 5 ) ref -> [rbp-0x48] do-not-enreg[X] addr-exposed ld-addr-op class-hnd +; V06 arg6 [V06 ] ( 6, 3 ) ref -> [rbp+0x10] do-not-enreg[X] addr-exposed ld-addr-op class-hnd ;* V07 loc0 [V07 ] ( 0, 0 ) long -> zero-ref single-def -; V08 loc1 [V08 ] ( 3, 1.50) byref -> [rbp-0x20] must-init pinned +; V08 loc1 [V08 ] ( 3, 1.50) byref -> [rbp-0x50] must-init pinned ;* V09 loc2 [V09 ] ( 0, 0 ) long -> zero-ref single-def -; V10 loc3 [V10 ] ( 3, 1.50) byref -> [rbp-0x28] must-init pinned +; V10 loc3 [V10 ] ( 3, 1.50) byref -> [rbp-0x58] must-init pinned ;* V11 loc4 [V11 ] ( 0, 0 ) long -> zero-ref single-def -; V12 loc5 [V12 ] ( 3, 1.50) byref -> [rbp-0x30] must-init pinned -; V13 loc6 [V13,T03] ( 9, 4.50) long -> r10 single-def +; V12 loc5 [V12 ] ( 3, 1.50) byref -> [rbp-0x60] must-init pinned +; V13 loc6 [V13,T01] ( 8, 4 ) long -> r12 single-def ;# V14 OutArgs [V14 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V15 tmp1 [V15,T17] ( 3, 1.50) long -> rsi -; V16 tmp2 [V16,T18] ( 3, 1.50) long -> rdx -; V17 tmp3 [V17,T19] ( 3, 1.50) long -> rax -;* V18 tmp4 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -;* V19 tmp5 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -;* V20 tmp6 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -;* V21 tmp7 [V21 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -; V22 tmp8 [V22,T05] ( 3, 3 ) byref -> r11 single-def "Inlining Arg" -;* V23 tmp9 [V23 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V24 tmp10 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" -; V25 tmp11 [V25,T06] ( 3, 3 ) byref -> r11 single-def "Inlining Arg" -; V26 tmp12 [V26,T11] ( 2, 2 ) int -> rsi "Inlining Arg" -; V27 tmp13 [V27,T07] ( 3, 3 ) byref -> rsi single-def "Inlining Arg" -;* V28 tmp14 [V28 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V29 tmp15 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" -; V30 tmp16 [V30,T08] ( 3, 3 ) byref -> rsi single-def "Inlining Arg" -; V31 tmp17 [V31,T12] ( 2, 2 ) int -> rdx "Inlining Arg" -;* V32 tmp18 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" -; V33 tmp19 [V33,T09] ( 3, 3 ) byref -> rsi single-def "Inlining Arg" -; V34 tmp20 [V34,T13] ( 2, 2 ) int -> r8 "Inlining Arg" -; V35 tmp21 [V35,T14] ( 2, 2 ) long -> rsi "Cast away GC" -; V36 tmp22 [V36,T15] ( 2, 2 ) long -> rdx "Cast away GC" -; V37 tmp23 [V37,T16] ( 2, 2 ) long -> rax "Cast away GC" -; V38 GsCookie [V38 ] ( 1, 1 ) long -> [rbp-0x38] do-not-enreg[X] addr-exposed "GSSecurityCookie" -; V39 rat0 [V39,T10] ( 3, 3 ) long -> r10 "ReplaceWithLclVar is creating a new local variable" +; V15 tmp1 [V15,T09] ( 3, 1.50) long -> r15 +; V16 tmp2 [V16,T10] ( 3, 1.50) long -> r14 +; V17 tmp3 [V17,T11] ( 3, 1.50) long -> r13 +; V18 tmp4 [V18,T02] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" +; V19 tmp5 [V19,T03] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" +; V20 tmp6 [V20,T04] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" +; V21 tmp7 [V21,T06] ( 2, 2 ) long -> r15 "Cast away GC" +; V22 tmp8 [V22,T07] ( 2, 2 ) long -> r14 "Cast away GC" +; V23 tmp9 [V23,T08] ( 2, 2 ) long -> r13 "Cast away GC" +; V24 GsCookie [V24 ] ( 1, 1 ) long -> [rbp-0x68] do-not-enreg[X] addr-exposed "GSSecurityCookie" +; V25 rat0 [V25,T05] ( 3, 3 ) long -> rsi "ReplaceWithLclVar is creating a new local variable" ; -; Lcl frame size = 56 +; Lcl frame size = 72 G_M49279_IG01: push rbp + push r15 + push r14 + push r13 + push r12 push rbx - sub rsp, 56 - lea rbp, [rsp+0x40] + sub rsp, 72 + lea rbp, [rsp+0x70] vxorps xmm8, xmm8, xmm8 - vmovdqa xmmword ptr [rbp-0x30], xmm8 + vmovdqa xmmword ptr [rbp-0x60], xmm8 xor eax, eax - mov qword ptr [rbp-0x20], rax - mov qword ptr [rbp-0x38], 0xD1FFAB1E - mov dword ptr [rbp-0x0C], esi - mov dword ptr [rbp-0x10], edx - mov dword ptr [rbp-0x14], r8d - mov r8, gword ptr [rbp+0x10] - ;; size=49 bbWeight=1 PerfScore 11.33 + mov qword ptr [rbp-0x50], rax + mov qword ptr [rbp-0x68], 0xD1FFAB1E + mov dword ptr [rbp-0x2C], esi + mov dword ptr [rbp-0x30], edx + mov gword ptr [rbp-0x38], rcx + mov dword ptr [rbp-0x3C], r8d + mov gword ptr [rbp-0x48], r9 + mov rbx, rdi + ;; size=64 bbWeight=1 PerfScore 16.58 G_M49279_IG02: - cmp byte ptr [rdi+0x9D], 0 + cmp byte ptr [rbx+0x9D], 0 je G_M49279_IG12 ;; size=13 bbWeight=1 PerfScore 4.00 G_M49279_IG03: mov rsi, 0xD1FFAB1E ; '' - test rcx, rcx - cmove rcx, rsi - test r9, r9 - cmove r9, rsi - test r8, r8 - cmove r8, rsi - test rcx, rcx + cmp gword ptr [rbp-0x38], 0 + cmovne rsi, gword ptr [rbp-0x38] + mov gword ptr [rbp-0x38], rsi + mov rsi, 0xD1FFAB1E ; '' + cmp gword ptr [rbp-0x48], 0 + cmovne rsi, gword ptr [rbp-0x48] + mov gword ptr [rbp-0x48], rsi + mov rsi, 0xD1FFAB1E ; '' + cmp gword ptr [rbp+0x10], 0 + cmovne rsi, gword ptr [rbp+0x10] + mov gword ptr [rbp+0x10], rsi + cmp gword ptr [rbp-0x38], 0 jne SHORT G_M49279_IG04 - xor esi, esi + xor r15d, r15d jmp SHORT G_M49279_IG05 - ;; size=40 bbWeight=0.50 PerfScore 2.62 + ;; size=84 bbWeight=0.50 PerfScore 10.50 G_M49279_IG04: - lea rsi, bword ptr [rcx+0x0C] - mov bword ptr [rbp-0x20], rsi - mov rsi, bword ptr [rbp-0x20] - ;; size=12 bbWeight=0.50 PerfScore 1.25 + mov rsi, gword ptr [rbp-0x38] + cmp byte ptr [rsi], sil + add rsi, 12 + mov bword ptr [rbp-0x50], rsi + mov r15, bword ptr [rbp-0x50] + ;; size=19 bbWeight=0.50 PerfScore 3.12 G_M49279_IG05: - test r9, r9 + cmp gword ptr [rbp-0x48], 0 jne SHORT G_M49279_IG06 - xor edx, edx + xor r14d, r14d jmp SHORT G_M49279_IG07 - ;; size=9 bbWeight=0.50 PerfScore 1.75 + ;; size=12 bbWeight=0.50 PerfScore 2.62 G_M49279_IG06: - lea rdx, bword ptr [r9+0x0C] - mov bword ptr [rbp-0x28], rdx - mov rdx, bword ptr [rbp-0x28] - ;; size=12 bbWeight=0.50 PerfScore 1.25 + mov rsi, gword ptr [rbp-0x48] + cmp byte ptr [rsi], sil + add rsi, 12 + mov bword ptr [rbp-0x58], rsi + mov r14, bword ptr [rbp-0x58] + ;; size=19 bbWeight=0.50 PerfScore 3.12 G_M49279_IG07: - test r8, r8 + cmp gword ptr [rbp+0x10], 0 jne SHORT G_M49279_IG08 - xor eax, eax + xor r13d, r13d jmp SHORT G_M49279_IG09 - ;; size=9 bbWeight=0.50 PerfScore 1.75 + ;; size=12 bbWeight=0.50 PerfScore 2.62 G_M49279_IG08: - lea rax, bword ptr [r8+0x0C] - mov bword ptr [rbp-0x30], rax - mov rax, bword ptr [rbp-0x30] - ;; size=12 bbWeight=0.50 PerfScore 1.25 + mov rsi, gword ptr [rbp+0x10] + cmp byte ptr [rsi], sil + add rsi, 12 + mov bword ptr [rbp-0x60], rsi + mov r13, bword ptr [rbp-0x60] + ;; size=19 bbWeight=0.50 PerfScore 3.12 G_M49279_IG09: test dword ptr [rsp], esp sub rsp, 96 - lea r10, [rsp] + lea rsi, [rsp] vxorps ymm0, ymm0, ymm0 - vmovdqu ymmword ptr [r10], ymm0 - vmovdqu ymmword ptr [r10+0x20], ymm0 - vmovdqu ymmword ptr [r10+0x40], ymm0 - lea r11, [rbp-0x0C] - mov qword ptr [r10], r11 - mov dword ptr [r10+0x08], 4 - lea r11, [r10+0x10] - lea rbx, [rbp-0x10] - mov qword ptr [r11], rbx - mov dword ptr [r11+0x08], 4 - lea r11, [r10+0x20] - mov qword ptr [r11], rsi - mov esi, dword ptr [rcx+0x08] - add esi, 1 - jo G_M49279_IG15 - imul esi, esi, 2 - jo G_M49279_IG15 - mov dword ptr [r11+0x08], esi - lea rsi, [r10+0x30] - lea rcx, [rbp-0x14] - mov qword ptr [rsi], rcx - mov dword ptr [rsi+0x08], 4 - lea rsi, [r10+0x40] - mov qword ptr [rsi], rdx - mov edx, dword ptr [r9+0x08] - add edx, 1 - jo SHORT G_M49279_IG15 - imul edx, edx, 2 - jo SHORT G_M49279_IG15 - mov dword ptr [rsi+0x08], edx - lea rsi, [r10+0x50] - mov qword ptr [rsi], rax - mov r8d, dword ptr [r8+0x08] - add r8d, 1 - jo SHORT G_M49279_IG15 - imul r8d, r8d, 2 - jo SHORT G_M49279_IG15 - mov dword ptr [rsi+0x08], r8d - mov r8, r10 + vmovdqu ymmword ptr [rsi], ymm0 + vmovdqu ymmword ptr [rsi+0x20], ymm0 + vmovdqu ymmword ptr [rsi+0x40], ymm0 + mov r12, rsi + lea rsi, [rbp-0x2C] + mov rdi, r12 + xor edx, edx + mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[int](byref,byref,ulong) + call [rax]Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[int](byref,byref,ulong) + lea rdi, [r12+0x10] + lea rsi, [rbp-0x30] + xor edx, edx + mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[int](byref,byref,ulong) + call [rax]Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[int](byref,byref,ulong) + lea rsi, [r12+0x20] + lea rdx, [rbp-0x38] + mov rcx, r15 + mov rdi, 0xD1FFAB1E ; Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.String](byref,byref,ulong) + mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.__Canon](byref,byref,ulong) + call [rax]Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.__Canon](byref,byref,ulong) + lea rdi, [r12+0x30] + lea rsi, [rbp-0x3C] + xor edx, edx + mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[int](byref,byref,ulong) + call [rax]Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[int](byref,byref,ulong) + lea rsi, [r12+0x40] + lea rdx, [rbp-0x48] + mov rcx, r14 + mov rdi, 0xD1FFAB1E ; Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.String](byref,byref,ulong) + mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.__Canon](byref,byref,ulong) + call [rax]Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.__Canon](byref,byref,ulong) + lea rsi, [r12+0x50] + lea rdx, [rbp+0x10] + mov rcx, r13 + mov rdi, 0xD1FFAB1E ; Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.String](byref,byref,ulong) + mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.__Canon](byref,byref,ulong) + call [rax]Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.__Canon](byref,byref,ulong) + mov rdi, rbx + mov r8, r12 mov esi, 1 xor edx, edx mov ecx, 6 mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEventWithRelatedActivityIdCore(int,ulong,int,ulong):this call [rax]System.Diagnostics.Tracing.EventSource:WriteEventWithRelatedActivityIdCore(int,ulong,int,ulong):this xor eax, eax - mov bword ptr [rbp-0x30], rax - ;; size=200 bbWeight=0.50 PerfScore 25.17 + mov bword ptr [rbp-0x60], rax + ;; size=237 bbWeight=0.50 PerfScore 21.79 G_M49279_IG10: - mov bword ptr [rbp-0x28], rax + mov bword ptr [rbp-0x58], rax ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M49279_IG11: - mov bword ptr [rbp-0x20], rax + mov bword ptr [rbp-0x50], rax ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M49279_IG12: - cmp qword ptr [rbp-0x38], 0xD1FFAB1E + cmp qword ptr [rbp-0x68], 0xD1FFAB1E je SHORT G_M49279_IG13 call CORINFO_HELP_FAIL_FAST ;; size=15 bbWeight=1 PerfScore 4.00 G_M49279_IG13: nop ;; size=1 bbWeight=1 PerfScore 0.25 G_M49279_IG14: - lea rsp, [rbp-0x08] + lea rsp, [rbp-0x28] pop rbx + pop r12 + pop r13 + pop r14 + pop r15 pop rbp ret - ;; size=7 bbWeight=1 PerfScore 2.50 -G_M49279_IG15: - call CORINFO_HELP_OVERFLOW - int3 - ;; size=6 bbWeight=0 PerfScore 0.00 + ;; size=15 bbWeight=1 PerfScore 4.50 -; Total bytes of code 393, prolog size 35, PerfScore 58.13, instruction count 105, allocated bytes for code 393 (MethodHash=a6ab3f80) for method Microsoft.Extensions.Logging.EventSource.LoggingEventSource:FormattedMessage(int,int,System.String,int,System.String,System.String):this (FullOpts) +; Total bytes of code 518, prolog size 43, PerfScore 77.25, instruction count 124, allocated bytes for code 518 (MethodHash=a6ab3f80) for method Microsoft.Extensions.Logging.EventSource.LoggingEventSource:FormattedMessage(int,int,System.String,int,System.String,System.String):this (FullOpts) ```
94 (32.87 % of base) - Microsoft.Extensions.Logging.EventSource.LoggingEventSource:ActivityJsonStart(int,int,System.String,System.String):this ```diff ; Assembly listing for method Microsoft.Extensions.Logging.EventSource.LoggingEventSource:ActivityJsonStart(int,int,System.String,System.String):this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data -; 0 inlinees with PGO data; 12 single block inlinees; 4 inlinees without PGO data +; 0 inlinees with PGO data; 4 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T02] ( 4, 3.50) ref -> rdi this class-hnd single-def -; V01 arg1 [V01 ] ( 3, 2.50) int -> [rbp-0x04] do-not-enreg[X] addr-exposed ld-addr-op single-def -; V02 arg2 [V02 ] ( 3, 2.50) int -> [rbp-0x08] do-not-enreg[X] addr-exposed ld-addr-op single-def -; V03 arg3 [V03,T00] ( 8, 5 ) ref -> rcx ld-addr-op class-hnd -; V04 arg4 [V04,T01] ( 8, 5 ) ref -> r8 ld-addr-op class-hnd +; V00 this [V00,T00] ( 4, 3.50) ref -> rbx this class-hnd single-def +; V01 arg1 [V01 ] ( 3, 2.50) int -> [rbp-0x24] do-not-enreg[X] addr-exposed ld-addr-op single-def +; V02 arg2 [V02 ] ( 3, 2.50) int -> [rbp-0x28] do-not-enreg[X] addr-exposed ld-addr-op single-def +; V03 arg3 [V03 ] ( 8, 5 ) ref -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op class-hnd +; V04 arg4 [V04 ] ( 8, 5 ) ref -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op class-hnd ;* V05 loc0 [V05 ] ( 0, 0 ) long -> zero-ref single-def -; V06 loc1 [V06 ] ( 3, 1.50) byref -> [rbp-0x10] must-init pinned +; V06 loc1 [V06 ] ( 3, 1.50) byref -> [rbp-0x40] must-init pinned ;* V07 loc2 [V07 ] ( 0, 0 ) long -> zero-ref single-def -; V08 loc3 [V08 ] ( 3, 1.50) byref -> [rbp-0x18] must-init pinned -; V09 loc4 [V09,T03] ( 7, 3.50) long -> rax single-def +; V08 loc3 [V08 ] ( 3, 1.50) byref -> [rbp-0x48] must-init pinned +; V09 loc4 [V09,T01] ( 6, 3 ) long -> r13 single-def ;# V10 OutArgs [V10 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V11 tmp1 [V11,T12] ( 3, 1.50) long -> rsi -; V12 tmp2 [V12,T13] ( 3, 1.50) long -> rdx -;* V13 tmp3 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -;* V14 tmp4 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -;* V15 tmp5 [V15 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -; V16 tmp6 [V16,T04] ( 3, 3 ) byref -> r9 single-def "Inlining Arg" -;* V17 tmp7 [V17 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V18 tmp8 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" -; V19 tmp9 [V19,T05] ( 3, 3 ) byref -> r9 single-def "Inlining Arg" -; V20 tmp10 [V20,T08] ( 2, 2 ) int -> rsi "Inlining Arg" -;* V21 tmp11 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" -; V22 tmp12 [V22,T06] ( 3, 3 ) byref -> rsi single-def "Inlining Arg" -; V23 tmp13 [V23,T09] ( 2, 2 ) int -> r8 "Inlining Arg" -; V24 tmp14 [V24,T10] ( 2, 2 ) long -> rsi "Cast away GC" -; V25 tmp15 [V25,T11] ( 2, 2 ) long -> rdx "Cast away GC" -; V26 GsCookie [V26 ] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[X] addr-exposed "GSSecurityCookie" -; V27 rat0 [V27,T07] ( 3, 3 ) long -> rax "ReplaceWithLclVar is creating a new local variable" +; V11 tmp1 [V11,T07] ( 3, 1.50) long -> r15 +; V12 tmp2 [V12,T08] ( 3, 1.50) long -> r14 +; V13 tmp3 [V13,T02] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" +; V14 tmp4 [V14,T03] ( 3, 3 ) ref -> rsi class-hnd exact single-def "Inlining Arg" +; V15 tmp5 [V15,T05] ( 2, 2 ) long -> r15 "Cast away GC" +; V16 tmp6 [V16,T06] ( 2, 2 ) long -> r14 "Cast away GC" +; V17 GsCookie [V17 ] ( 1, 1 ) long -> [rbp-0x50] do-not-enreg[X] addr-exposed "GSSecurityCookie" +; V18 rat0 [V18,T04] ( 3, 3 ) long -> rsi "ReplaceWithLclVar is creating a new local variable" ; -; Lcl frame size = 32 +; Lcl frame size = 48 G_M19674_IG01: push rbp - sub rsp, 32 - lea rbp, [rsp+0x20] + push r15 + push r14 + push r13 + push rbx + sub rsp, 48 + lea rbp, [rsp+0x50] xor eax, eax - mov qword ptr [rbp-0x10], rax - mov qword ptr [rbp-0x18], rax - mov qword ptr [rbp-0x20], 0xD1FFAB1E - mov dword ptr [rbp-0x04], esi - mov dword ptr [rbp-0x08], edx - ;; size=34 bbWeight=1 PerfScore 7.00 + mov qword ptr [rbp-0x40], rax + mov qword ptr [rbp-0x48], rax + mov qword ptr [rbp-0x50], 0xD1FFAB1E + mov dword ptr [rbp-0x24], esi + mov dword ptr [rbp-0x28], edx + mov gword ptr [rbp-0x30], rcx + mov gword ptr [rbp-0x38], r8 + mov rbx, rdi + ;; size=52 bbWeight=1 PerfScore 13.25 G_M19674_IG02: - cmp byte ptr [rdi+0x9D], 0 + cmp byte ptr [rbx+0x9D], 0 je G_M19674_IG09 ;; size=13 bbWeight=1 PerfScore 4.00 G_M19674_IG03: mov rsi, 0xD1FFAB1E ; '' - test rcx, rcx - cmove rcx, rsi - test r8, r8 - cmove r8, rsi - test rcx, rcx + cmp gword ptr [rbp-0x30], 0 + cmovne rsi, gword ptr [rbp-0x30] + mov gword ptr [rbp-0x30], rsi + mov rsi, 0xD1FFAB1E ; '' + cmp gword ptr [rbp-0x38], 0 + cmovne rsi, gword ptr [rbp-0x38] + mov gword ptr [rbp-0x38], rsi + cmp gword ptr [rbp-0x30], 0 jne SHORT G_M19674_IG04 - xor esi, esi + xor r15d, r15d jmp SHORT G_M19674_IG05 - ;; size=33 bbWeight=0.50 PerfScore 2.38 + ;; size=60 bbWeight=0.50 PerfScore 7.88 G_M19674_IG04: - lea rsi, bword ptr [rcx+0x0C] - mov bword ptr [rbp-0x10], rsi - mov rsi, bword ptr [rbp-0x10] - ;; size=12 bbWeight=0.50 PerfScore 1.25 + mov rsi, gword ptr [rbp-0x30] + cmp byte ptr [rsi], sil + add rsi, 12 + mov bword ptr [rbp-0x40], rsi + mov r15, bword ptr [rbp-0x40] + ;; size=19 bbWeight=0.50 PerfScore 3.12 G_M19674_IG05: - test r8, r8 + cmp gword ptr [rbp-0x38], 0 jne SHORT G_M19674_IG06 - xor edx, edx + xor r14d, r14d jmp SHORT G_M19674_IG07 - ;; size=9 bbWeight=0.50 PerfScore 1.75 + ;; size=12 bbWeight=0.50 PerfScore 2.62 G_M19674_IG06: - lea rdx, bword ptr [r8+0x0C] - mov bword ptr [rbp-0x18], rdx - mov rdx, bword ptr [rbp-0x18] - ;; size=12 bbWeight=0.50 PerfScore 1.25 + mov rsi, gword ptr [rbp-0x38] + cmp byte ptr [rsi], sil + add rsi, 12 + mov bword ptr [rbp-0x48], rsi + mov r14, bword ptr [rbp-0x48] + ;; size=19 bbWeight=0.50 PerfScore 3.12 G_M19674_IG07: test dword ptr [rsp], esp sub rsp, 64 - lea rax, [rsp] + lea rsi, [rsp] vxorps ymm0, ymm0, ymm0 - vmovdqu ymmword ptr [rax], ymm0 - vmovdqu ymmword ptr [rax+0x20], ymm0 - lea r9, [rbp-0x04] - mov qword ptr [rax], r9 - mov dword ptr [rax+0x08], 4 - lea r9, [rax+0x10] - lea r10, [rbp-0x08] - mov qword ptr [r9], r10 - mov dword ptr [r9+0x08], 4 - lea r9, [rax+0x20] - mov qword ptr [r9], rsi - mov esi, dword ptr [rcx+0x08] - add esi, 1 - jo SHORT G_M19674_IG12 - imul esi, esi, 2 - jo SHORT G_M19674_IG12 - mov dword ptr [r9+0x08], esi - lea rsi, [rax+0x30] - mov qword ptr [rsi], rdx - mov r8d, dword ptr [r8+0x08] - add r8d, 1 - jo SHORT G_M19674_IG12 - imul r8d, r8d, 2 - jo SHORT G_M19674_IG12 - mov dword ptr [rsi+0x08], r8d - mov r8, rax + vmovdqu ymmword ptr [rsi], ymm0 + vmovdqu ymmword ptr [rsi+0x20], ymm0 + mov r13, rsi + lea rsi, [rbp-0x24] + mov rdi, r13 + xor edx, edx + mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[int](byref,byref,ulong) + call [rax]Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[int](byref,byref,ulong) + lea rdi, [r13+0x10] + lea rsi, [rbp-0x28] + xor edx, edx + mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[int](byref,byref,ulong) + call [rax]Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[int](byref,byref,ulong) + lea rsi, [r13+0x20] + lea rdx, [rbp-0x30] + mov rcx, r15 + mov rdi, 0xD1FFAB1E ; Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.String](byref,byref,ulong) + mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.__Canon](byref,byref,ulong) + call [rax]Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.__Canon](byref,byref,ulong) + lea rsi, [r13+0x30] + lea rdx, [rbp-0x38] + mov rcx, r14 + mov rdi, 0xD1FFAB1E ; Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.String](byref,byref,ulong) + mov rax, 0xD1FFAB1E ; code for Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.__Canon](byref,byref,ulong) + call [rax]Microsoft.Extensions.Logging.EventSource.LoggingEventSource:SetEventData[System.__Canon](byref,byref,ulong) + mov rdi, rbx + mov r8, r13 mov esi, 6 xor edx, edx mov ecx, 4 mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEventWithRelatedActivityIdCore(int,ulong,int,ulong):this call [rax]System.Diagnostics.Tracing.EventSource:WriteEventWithRelatedActivityIdCore(int,ulong,int,ulong):this xor eax, eax - mov bword ptr [rbp-0x18], rax - ;; size=141 bbWeight=0.50 PerfScore 18.29 + mov bword ptr [rbp-0x48], rax + ;; size=172 bbWeight=0.50 PerfScore 16.17 G_M19674_IG08: - mov bword ptr [rbp-0x10], rax + mov bword ptr [rbp-0x40], rax ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M19674_IG09: - cmp qword ptr [rbp-0x20], 0xD1FFAB1E + cmp qword ptr [rbp-0x50], 0xD1FFAB1E je SHORT G_M19674_IG10 call CORINFO_HELP_FAIL_FAST ;; size=15 bbWeight=1 PerfScore 4.00 G_M19674_IG10: nop ;; size=1 bbWeight=1 PerfScore 0.25 G_M19674_IG11: - lea rsp, [rbp] + lea rsp, [rbp-0x20] + pop rbx + pop r13 + pop r14 + pop r15 pop rbp ret - ;; size=6 bbWeight=1 PerfScore 2.00 -G_M19674_IG12: - call CORINFO_HELP_OVERFLOW - int3 - ;; size=6 bbWeight=0 PerfScore 0.00 + ;; size=13 bbWeight=1 PerfScore 4.00 -; Total bytes of code 286, prolog size 28, PerfScore 42.67, instruction count 77, allocated bytes for code 286 (MethodHash=7502b325) for method Microsoft.Extensions.Logging.EventSource.LoggingEventSource:ActivityJsonStart(int,int,System.String,System.String):this (FullOpts) +; Total bytes of code 380, prolog size 35, PerfScore 58.92, instruction count 94, allocated bytes for code 380 (MethodHash=7502b325) for method Microsoft.Extensions.Logging.EventSource.LoggingEventSource:ActivityJsonStart(int,int,System.String,System.String):this (FullOpts) ```

Larger list of diffs: https://gist.github.com/MihuBot/583c20577f2d0c568326f7b04601004c

MihuBot commented 2 months ago

Top method improvements

-232 (-31.48 % of base) - System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__6:MoveNext():ubyte:this ```diff ; Assembly listing for method System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__6:MoveNext():ubyte: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; 5 single block inlinees; 2 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T03] ( 14, 20 ) ref -> [rbp-0x130] this class-hnd EH-live single-def d__6> -; V01 loc0 [V01,T09] ( 4, 6 ) ubyte -> rax -; V02 loc1 [V02,T14] ( 3, 2.50) int -> rdi +; V00 this [V00,T04] ( 14, 20 ) ref -> [rbp-0x130] this class-hnd EH-live single-def d__6> +; V01 loc0 [V01,T12] ( 4, 6 ) ubyte -> rax +; V02 loc1 [V02,T17] ( 3, 2.50) int -> rsi ;* V03 loc2 [V03 ] ( 0, 0 ) struct (264) zero-ref do-not-enreg[SF] ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V05 tmp1 [V05,T12] ( 3, 3 ) ref -> rbx class-hnd single-def "Inlining Arg" -; V06 tmp2 [V06,T13] ( 3, 3 ) struct (280) [rbp-0x128] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" +; V05 tmp1 [V05,T15] ( 3, 3 ) ref -> rbx class-hnd single-def "Inlining Arg" +; V06 tmp2 [V06,T16] ( 3, 3 ) struct (280) [rbp-0x128] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" ;* V07 tmp3 [V07 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" -;* V08 tmp4 [V08,T07] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" -; V09 tmp5 [V09,T00] ( 9, 72 ) byref -> r8 "Inlining Arg" -; V10 tmp6 [V10,T04] ( 4, 16 ) ref -> rdi class-hnd "Inline stloc first use temp" -; V11 tmp7 [V11,T10] ( 3, 4.50) ref -> rsi "V03.[008..016)" +;* V08 tmp4 [V08,T10] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" +; V09 tmp5 [V09,T00] ( 9, 72 ) byref -> rbx "Inlining Arg" +; V10 tmp6 [V10,T05] ( 4, 16 ) ref -> rsi class-hnd "Inline stloc first use temp" +; V11 tmp7 [V11,T13] ( 3, 4.50) ref -> rsi "V03.[008..016)" ;* V12 tmp8 [V12 ] ( 0, 0 ) ref -> zero-ref single-def "V06.[000..008)" ;* V13 tmp9 [V13 ] ( 0, 0 ) int -> zero-ref "V06.[008..012)" -; V14 tmp10 [V14,T15] ( 2, 1 ) int -> r15 "V06.[012..016)" -; V15 tmp11 [V15,T11] ( 4, 4 ) byref -> r8 single-def "Spilling address for field-by-field copy" -; V16 tmp12 [V16,T01] ( 3, 24 ) ref -> rdi "arr expr" -; V17 tmp13 [V17,T02] ( 3, 24 ) int -> rsi "index expr" -; V18 PSPSym [V18,T16] ( 1, 1 ) long -> [rbp-0x140] do-not-enreg[V] "PSPSym" -; V19 cse0 [V19,T06] ( 3, 12 ) int -> rsi "CSE #02: aggressive" -; V20 cse1 [V20,T08] ( 2, 8 ) int -> rsi "CSE #03: aggressive" -; V21 cse2 [V21,T05] ( 3, 12 ) ref -> r9 "CSE #04: aggressive" +; V14 tmp10 [V14,T18] ( 2, 1 ) int -> r15 "V06.[012..016)" +; V15 tmp11 [V15,T14] ( 4, 4 ) byref -> rbx single-def "Spilling address for field-by-field copy" +; V16 tmp12 [V16,T01] ( 3, 24 ) ref -> rsi "arr expr" +; V17 tmp13 [V17,T03] ( 3, 24 ) int -> rdx "index expr" +; V18 PSPSym [V18,T19] ( 1, 1 ) long -> [rbp-0x140] do-not-enreg[V] "PSPSym" +; V19 cse0 [V19,T09] ( 3, 12 ) int -> rdx "CSE #02: aggressive" +; V20 cse1 [V20,T11] ( 2, 8 ) int -> rdx "CSE #03: aggressive" +; V21 cse2 [V21,T08] ( 3, 12 ) ref -> r15 "CSE #04: aggressive" +; V22 rat0 [V22,T02] ( 3, 24 ) byref -> rdx "fgMakeTemp is creating a new local variable" +; V23 rat1 [V23,T06] ( 2, 16 ) byref -> rsi "fgMakeTemp is creating a new local variable" +; V24 rat2 [V24,T07] ( 2, 16 ) byref -> rdx "argument with side effect" ; ; Lcl frame size = 304 G_M24674_IG01: push rbp push r15 push rbx sub rsp, 304 lea rbp, [rsp+0x140] xor eax, eax mov qword ptr [rbp-0x128], rax vxorps xmm8, xmm8, xmm8 vmovdqa xmmword ptr [rbp-0x120], xmm8 vmovdqa xmmword ptr [rbp-0x110], xmm8 mov rax, -240 vmovdqa xmmword ptr [rbp+rax-0x10], xmm8 vmovdqa xmmword ptr [rax+rbp], xmm8 vmovdqa xmmword ptr [rbp+rax+0x10], xmm8 add rax, 48 jne SHORT -5 instr mov qword ptr [rbp-0x140], rsp mov gword ptr [rbp-0x130], rdi - mov rdx, rdi - ;; size=99 bbWeight=1 PerfScore 19.08 + ;; size=96 bbWeight=1 PerfScore 18.83 G_M24674_IG02: - mov edi, dword ptr [rdx+0x20] - test edi, edi + mov esi, dword ptr [rdi+0x20] + test esi, esi je SHORT G_M24674_IG04 ;; size=7 bbWeight=1 PerfScore 3.25 G_M24674_IG03: - cmp edi, 1 - je G_M24674_IG16 + cmp esi, 1 + je G_M24674_IG14 xor eax, eax - jmp G_M24674_IG17 + jmp G_M24674_IG15 ;; size=16 bbWeight=0.50 PerfScore 1.75 G_M24674_IG04: - mov dword ptr [rdx+0x20], -1 - mov rbx, gword ptr [rdx+0x10] + mov dword ptr [rdi+0x20], -1 + mov rbx, gword ptr [rdi+0x10] mov r15d, dword ptr [rbx+0x14] mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_MEMZERO lea rdi, bword ptr [rbp-0x118] mov esi, 264 call [rax]CORINFO_HELP_MEMZERO mov gword ptr [rbp-0x128], rbx - mov rdx, gword ptr [rbp-0x130] - lea r8, bword ptr [rdx+0x28] - mov rdi, r8 - lea rsi, bword ptr [rbp-0x128] - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - ;; size=152 bbWeight=0.50 PerfScore 17.62 -G_M24674_IG05: - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq + mov rdi, gword ptr [rbp-0x130] + lea rbx, bword ptr [rdi+0x28] + mov rdi, rbx + lea rsi, [rbp-0x128] + mov edx, 160 + call CORINFO_HELP_ASSIGN_STRUCT xor edi, edi - mov dword ptr [r8+0x08], edi - mov dword ptr [r8+0x0C], r15d - jmp G_M24674_IG16 - ;; size=60 bbWeight=0.50 PerfScore 8.12 -G_M24674_IG06: - mov rsi, gword ptr [rdx+0x40] + mov dword ptr [rbx+0x08], edi + mov dword ptr [rbx+0x0C], r15d + mov rdi, gword ptr [rbp-0x130] + jmp G_M24674_IG14 + ;; size=98 bbWeight=0.50 PerfScore 9.38 +G_M24674_IG05: + mov rdi, gword ptr [rbp-0x130] + mov rsi, gword ptr [rdi+0x40] test rsi, rsi - jne G_M24674_IG15 - ;; size=13 bbWeight=2 PerfScore 6.50 + jne G_M24674_IG13 + ;; size=20 bbWeight=2 PerfScore 8.50 +G_M24674_IG06: + lea rbx, bword ptr [rdi+0x28] + mov r15, gword ptr [rbx] + mov rsi, r15 + mov edx, dword ptr [rbx+0x0C] + cmp edx, dword ptr [rsi+0x14] + jne SHORT G_M24674_IG07 + mov edx, dword ptr [rbx+0x08] + cmp edx, dword ptr [rsi+0x10] + jae SHORT G_M24674_IG09 + mov rsi, gword ptr [rsi+0x08] + cmp edx, dword ptr [rsi+0x08] + jae SHORT G_M24674_IG08 + imul rdx, rdx, 264 + lea rsi, bword ptr [rsi+rdx+0x10] + lea rdx, bword ptr [rbx+0x10] + cmp byte ptr [rdx], dl + mov rdi, rdx + mov edx, 152 + call CORINFO_HELP_ASSIGN_STRUCT + inc dword ptr [rbx+0x08] + jmp SHORT G_M24674_IG05 + ;; size=71 bbWeight=4 PerfScore 135.00 G_M24674_IG07: - lea r8, bword ptr [rdx+0x28] - mov r9, gword ptr [r8] - mov rdi, r9 - mov esi, dword ptr [r8+0x0C] - cmp esi, dword ptr [rdi+0x14] - jne G_M24674_IG09 - mov esi, dword ptr [r8+0x08] - cmp esi, dword ptr [rdi+0x10] - jae G_M24674_IG11 - mov rdi, gword ptr [rdi+0x08] - cmp esi, dword ptr [rdi+0x08] - jae G_M24674_IG10 - imul rsi, rsi, 264 - lea rsi, bword ptr [rdi+rsi+0x10] - lea rdi, bword ptr [r8+0x10] - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - ;; size=141 bbWeight=4 PerfScore 177.00 -G_M24674_IG08: - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - inc dword ptr [r8+0x08] - jmp G_M24674_IG06 - ;; size=56 bbWeight=4 PerfScore 72.00 -G_M24674_IG09: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion() call [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -G_M24674_IG10: +G_M24674_IG08: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 -G_M24674_IG11: - mov esi, dword ptr [r9+0x10] +G_M24674_IG09: + mov esi, dword ptr [r15+0x10] inc esi - mov dword ptr [r8+0x08], esi - add r8, 16 - xor edi, edi - mov qword ptr [r8], rdi - mov esi, 256 - ;; size=24 bbWeight=4 PerfScore 20.00 -G_M24674_IG12: - mov qword ptr [r8+rsi], rdi - sub rsi, 8 - jne SHORT G_M24674_IG12 - mov dword ptr [rdx+0x20], -1 - lea rdi, bword ptr [rdx+0x28] + mov dword ptr [rbx+0x08], esi + add rbx, 16 xor esi, esi - mov qword ptr [rdi], rsi - mov eax, 272 - ;; size=31 bbWeight=4 PerfScore 21.00 -G_M24674_IG13: - mov qword ptr [rdi+rax], rsi + mov qword ptr [rbx], rsi + mov eax, 256 + ;; size=23 bbWeight=4 PerfScore 20.00 +G_M24674_IG10: + mov qword ptr [rbx+rax], rsi sub rax, 8 - jne SHORT G_M24674_IG13 - ;; size=10 bbWeight=4 PerfScore 9.00 -G_M24674_IG14: + jne SHORT G_M24674_IG10 + mov rdi, gword ptr [rbp-0x130] + mov dword ptr [rdi+0x20], -1 + lea rsi, bword ptr [rdi+0x28] xor eax, eax - jmp SHORT G_M24674_IG17 - ;; size=4 bbWeight=4 PerfScore 9.00 -G_M24674_IG15: - lea rdi, bword ptr [rdx+0x08] + mov qword ptr [rsi], rax + mov ecx, 272 + ;; size=38 bbWeight=4 PerfScore 25.00 +G_M24674_IG11: + mov qword ptr [rsi+rcx], rax + sub rcx, 8 + jne SHORT G_M24674_IG11 + ;; size=10 bbWeight=4 PerfScore 9.00 +G_M24674_IG12: + jmp SHORT G_M24674_IG15 + ;; size=2 bbWeight=4 PerfScore 8.00 +G_M24674_IG13: + lea rdi, bword ptr [rdi+0x08] call CORINFO_HELP_ASSIGN_REF - mov rdx, gword ptr [rbp-0x130] - mov dword ptr [rdx+0x20], 1 + mov rdi, gword ptr [rbp-0x130] + mov dword ptr [rdi+0x20], 1 mov eax, 1 - jmp SHORT G_M24674_IG17 + jmp SHORT G_M24674_IG15 ;; size=30 bbWeight=0.50 PerfScore 2.88 -G_M24674_IG16: - mov dword ptr [rdx+0x20], -3 - jmp G_M24674_IG07 +G_M24674_IG14: + mov dword ptr [rdi+0x20], -3 + jmp G_M24674_IG06 ;; size=12 bbWeight=0.50 PerfScore 1.50 -G_M24674_IG17: +G_M24674_IG15: add rsp, 304 pop rbx pop r15 pop rbp ret ;; size=12 bbWeight=1 PerfScore 2.75 -G_M24674_IG18: +G_M24674_IG16: push rbp push r15 push rbx sub rsp, 16 mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x140] ;; size=22 bbWeight=0 PerfScore 0.00 -G_M24674_IG19: +G_M24674_IG17: mov rdi, gword ptr [rbp-0x130] mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__6:System.IDisposable.Dispose():this call [rax]System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__6:System.IDisposable.Dispose():this nop ;; size=20 bbWeight=0 PerfScore 0.00 -G_M24674_IG20: +G_M24674_IG18: add rsp, 16 pop rbx pop r15 pop rbp ret ;; size=9 bbWeight=0 PerfScore 0.00 -; Total bytes of code 737, prolog size 99, PerfScore 371.46, instruction count 184, allocated bytes for code 737 (MethodHash=50d49f9d) for method System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__6:MoveNext():ubyte:this (FullOpts) +; Total bytes of code 505, prolog size 96, PerfScore 245.83, instruction count 123, allocated bytes for code 505 (MethodHash=50d49f9d) for method System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__6:MoveNext():ubyte:this (FullOpts) ```
-229 (-24.49 % of base) - System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__8:MoveNext():ubyte:this ```diff ; Assembly listing for method System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__8:MoveNext():ubyte: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; 12 single block inlinees; 3 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T03] ( 14, 20 ) ref -> [rbp-0x140] this class-hnd EH-live single-def d__8> -; V01 loc0 [V01,T10] ( 4, 6 ) ubyte -> rax -; V02 loc1 [V02,T20] ( 3, 2.50) int -> rdi +; V00 this [V00,T04] ( 14, 20 ) ref -> [rbp-0x140] this class-hnd EH-live single-def d__8> +; V01 loc0 [V01,T13] ( 4, 6 ) ubyte -> rax +; V02 loc1 [V02,T23] ( 3, 2.50) int -> rsi ;* V03 loc2 [V03 ] ( 0, 0 ) struct (264) zero-ref do-not-enreg[SF] ld-addr-op ;* V04 loc3 [V04 ] ( 0, 0 ) struct (16) zero-ref ;* V05 loc4 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op ;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V07 tmp1 [V07,T16] ( 3, 3 ) ref -> r15 class-hnd exact "NewObj constructor temp" -; V08 tmp2 [V08,T17] ( 3, 3 ) ref -> rbx class-hnd single-def "Inlining Arg" -; V09 tmp3 [V09,T18] ( 3, 3 ) struct (280) [rbp-0x138] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" +; V07 tmp1 [V07,T19] ( 3, 3 ) ref -> r14 class-hnd exact "NewObj constructor temp" +; V08 tmp2 [V08,T20] ( 3, 3 ) ref -> rbx class-hnd single-def "Inlining Arg" +; V09 tmp3 [V09,T21] ( 3, 3 ) struct (280) [rbp-0x138] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" ;* V10 tmp4 [V10 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V11 tmp5 [V11 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" -; V12 tmp6 [V12,T14] ( 6, 3 ) byref -> r14 "Inline stloc first use temp" -; V13 tmp7 [V13,T15] ( 6, 3 ) int -> r13 "Inline stloc first use temp" +; V12 tmp6 [V12,T17] ( 6, 3 ) byref -> rbx "Inline stloc first use temp" +; V13 tmp7 [V13,T18] ( 6, 3 ) int -> r15 "Inline stloc first use temp" ;* V14 tmp8 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" ;* V15 tmp9 [V15 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" ;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" ;* V17 tmp11 [V17 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" ;* V18 tmp12 [V18 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "Inline stloc first use temp" -; V19 tmp13 [V19,T23] ( 3, 1.50) long -> rdi "Inline stloc first use temp" +; V19 tmp13 [V19,T26] ( 3, 1.50) long -> rax "Inline stloc first use temp" ;* V20 tmp14 [V20 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" ;* V22 tmp16 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" -; V23 tmp17 [V23,T22] ( 2, 2 ) byref -> rax "Inlining Arg" +; V23 tmp17 [V23,T25] ( 2, 2 ) byref -> rax "Inlining Arg" ;* V24 tmp18 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" -;* V25 tmp19 [V25,T08] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" -; V26 tmp20 [V26,T00] ( 9, 72 ) byref -> r8 "Inlining Arg" -; V27 tmp21 [V27,T05] ( 4, 16 ) ref -> rdi class-hnd "Inline stloc first use temp" +;* V25 tmp19 [V25,T11] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" +; V26 tmp20 [V26,T00] ( 9, 72 ) byref -> rbx "Inlining Arg" +; V27 tmp21 [V27,T06] ( 4, 16 ) ref -> rsi class-hnd "Inline stloc first use temp" ;* V28 tmp22 [V28 ] ( 0, 0 ) byref -> zero-ref "field V04._reference (fldOffset=0x0)" P-INDEP ;* V29 tmp23 [V29 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP ;* V30 tmp24 [V30 ] ( 0, 0 ) ref -> zero-ref "field V05._object (fldOffset=0x0)" P-INDEP ;* V31 tmp25 [V31 ] ( 0, 0 ) int -> zero-ref "field V05._index (fldOffset=0x8)" P-INDEP ;* V32 tmp26 [V32 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0xc)" P-INDEP ;* V33 tmp27 [V33 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP ;* V34 tmp28 [V34 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP -; V35 tmp29 [V35,T24] ( 2, 1 ) byref -> rbx "field V15._reference (fldOffset=0x0)" P-INDEP -; V36 tmp30 [V36,T26] ( 2, 1 ) int -> r13 "field V15._length (fldOffset=0x8)" P-INDEP +; V35 tmp29 [V35,T27] ( 2, 1 ) byref -> rbx "field V15._reference (fldOffset=0x0)" P-INDEP +; V36 tmp30 [V36,T29] ( 2, 1 ) int -> r15 "field V15._length (fldOffset=0x8)" P-INDEP ;* V37 tmp31 [V37 ] ( 0, 0 ) byref -> zero-ref "field V17._reference (fldOffset=0x0)" P-DEP ;* V38 tmp32 [V38 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-DEP -; V39 tmp33 [V39,T25] ( 2, 1 ) byref -> r14 "field V18._reference (fldOffset=0x0)" P-INDEP -; V40 tmp34 [V40,T27] ( 2, 1 ) int -> r13 "field V18._length (fldOffset=0x8)" P-INDEP +; V39 tmp33 [V39,T28] ( 2, 1 ) byref -> rbx "field V18._reference (fldOffset=0x0)" P-INDEP +; V40 tmp34 [V40,T30] ( 2, 1 ) int -> r15 "field V18._length (fldOffset=0x8)" P-INDEP ;* V41 tmp35 [V41 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP ;* V42 tmp36 [V42 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP -; V43 tmp37 [V43,T13] ( 2, 4 ) ubyte -> r8 "V03.[240..241)" -; V44 tmp38 [V44,T11] ( 7, 5 ) ref -> rdi "V03.[248..256)" -; V45 tmp39 [V45,T21] ( 2, 2.50) int -> rbx "V03.[256..260)" -; V46 tmp40 [V46,T19] ( 3, 3 ) int -> r15 "V03.[260..264)" +; V43 tmp37 [V43,T16] ( 2, 4 ) ubyte -> rcx "V03.[240..241)" +; V44 tmp38 [V44,T14] ( 7, 5 ) ref -> rdx "V03.[248..256)" +; V45 tmp39 [V45,T24] ( 2, 2.50) int -> r14 "V03.[256..260)" +; V46 tmp40 [V46,T22] ( 3, 3 ) int -> r13 "V03.[260..264)" ;* V47 tmp41 [V47 ] ( 0, 0 ) ref -> zero-ref single-def "V09.[000..008)" ;* V48 tmp42 [V48 ] ( 0, 0 ) int -> zero-ref "V09.[008..012)" -; V49 tmp43 [V49,T28] ( 2, 1 ) int -> r15 "V09.[012..016)" -; V50 tmp44 [V50,T12] ( 4, 4 ) byref -> r8 single-def "Spilling address for field-by-field copy" -; V51 tmp45 [V51,T04] ( 5, 20 ) byref -> r9 "Spilling address for field-by-field copy" -; V52 tmp46 [V52,T01] ( 3, 24 ) ref -> rdi "arr expr" -; V53 tmp47 [V53,T02] ( 3, 24 ) int -> rsi "index expr" -; V54 PSPSym [V54,T29] ( 1, 1 ) long -> [rbp-0x150] do-not-enreg[V] "PSPSym" -; V55 cse0 [V55,T07] ( 3, 12 ) int -> rsi "CSE #02: aggressive" -; V56 cse1 [V56,T09] ( 2, 8 ) int -> rsi "CSE #03: aggressive" -; V57 cse2 [V57,T06] ( 3, 12 ) ref -> r9 "CSE #04: aggressive" +; V49 tmp43 [V49,T31] ( 2, 1 ) int -> r15 "V09.[012..016)" +; V50 tmp44 [V50,T15] ( 4, 4 ) byref -> rbx single-def "Spilling address for field-by-field copy" +; V51 tmp45 [V51,T05] ( 5, 20 ) byref -> rax "Spilling address for field-by-field copy" +; V52 tmp46 [V52,T01] ( 3, 24 ) ref -> rsi "arr expr" +; V53 tmp47 [V53,T03] ( 3, 24 ) int -> rdx "index expr" +; V54 PSPSym [V54,T32] ( 1, 1 ) long -> [rbp-0x150] do-not-enreg[V] "PSPSym" +; V55 cse0 [V55,T10] ( 3, 12 ) int -> rdx "CSE #02: aggressive" +; V56 cse1 [V56,T12] ( 2, 8 ) int -> rdx "CSE #03: aggressive" +; V57 cse2 [V57,T09] ( 3, 12 ) ref -> r15 "CSE #04: aggressive" +; V58 rat0 [V58,T02] ( 3, 24 ) byref -> rdx "fgMakeTemp is creating a new local variable" +; V59 rat1 [V59,T07] ( 2, 16 ) byref -> rsi "fgMakeTemp is creating a new local variable" +; V60 rat2 [V60,T08] ( 2, 16 ) byref -> rdx "argument with side effect" ; ; Lcl frame size = 304 G_M43288_IG01: push rbp push r15 push r14 push r13 push rbx sub rsp, 304 lea rbp, [rsp+0x150] xor eax, eax mov qword ptr [rbp-0x138], rax vxorps xmm8, xmm8, xmm8 vmovdqa xmmword ptr [rbp-0x130], xmm8 vmovdqa xmmword ptr [rbp-0x120], xmm8 mov rax, -240 vmovdqa xmmword ptr [rbp+rax-0x20], xmm8 vmovdqa xmmword ptr [rbp+rax-0x10], xmm8 vmovdqa xmmword ptr [rax+rbp], xmm8 add rax, 48 jne SHORT -5 instr mov qword ptr [rbp-0x150], rsp mov gword ptr [rbp-0x140], rdi - mov rdx, rdi - ;; size=103 bbWeight=1 PerfScore 21.08 + ;; size=100 bbWeight=1 PerfScore 20.83 G_M43288_IG02: - mov edi, dword ptr [rdx+0x20] - test edi, edi + mov esi, dword ptr [rdi+0x20] + test esi, esi je SHORT G_M43288_IG04 ;; size=7 bbWeight=1 PerfScore 3.25 G_M43288_IG03: - cmp edi, 1 - je G_M43288_IG20 + cmp esi, 1 + je G_M43288_IG18 xor eax, eax - jmp G_M43288_IG21 + jmp G_M43288_IG19 ;; size=16 bbWeight=0.50 PerfScore 1.75 G_M43288_IG04: - mov dword ptr [rdx+0x20], -1 - mov rbx, gword ptr [rdx+0x10] + mov dword ptr [rdi+0x20], -1 + mov rbx, gword ptr [rdi+0x10] mov r15d, dword ptr [rbx+0x14] mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_MEMZERO lea rdi, bword ptr [rbp-0x128] mov esi, 264 call [rax]CORINFO_HELP_MEMZERO mov gword ptr [rbp-0x138], rbx - mov rdx, gword ptr [rbp-0x140] - lea r8, bword ptr [rdx+0x28] - mov rdi, r8 - lea rsi, bword ptr [rbp-0x138] - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - ;; size=152 bbWeight=0.50 PerfScore 17.62 -G_M43288_IG05: - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq + mov rdi, gword ptr [rbp-0x140] + lea rbx, bword ptr [rdi+0x28] + mov rdi, rbx + lea rsi, [rbp-0x138] + mov edx, 160 + call CORINFO_HELP_ASSIGN_STRUCT xor edi, edi - mov dword ptr [r8+0x08], edi - mov dword ptr [r8+0x0C], r15d - jmp G_M43288_IG20 - ;; size=60 bbWeight=0.50 PerfScore 8.12 + mov dword ptr [rbx+0x08], edi + mov dword ptr [rbx+0x0C], r15d + mov rdi, gword ptr [rbp-0x140] + jmp G_M43288_IG18 + ;; size=98 bbWeight=0.50 PerfScore 9.38 +G_M43288_IG05: + mov rdi, gword ptr [rbp-0x140] + lea rax, bword ptr [rdi+0x38] + movzx rcx, byte ptr [rax+0xF0] + mov rdx, gword ptr [rax+0xF8] + mov r14d, dword ptr [rax+0x100] + mov r13d, dword ptr [rax+0x104] + test ecx, ecx + jne G_M43288_IG14 + ;; size=47 bbWeight=2 PerfScore 21.50 G_M43288_IG06: - lea r9, bword ptr [rdx+0x38] - movzx r8, byte ptr [r9+0xF0] - mov rdi, gword ptr [r9+0xF8] - mov ebx, dword ptr [r9+0x100] - mov r15d, dword ptr [r9+0x104] - test r8d, r8d - jne G_M43288_IG16 - ;; size=42 bbWeight=2 PerfScore 19.50 + lea rbx, bword ptr [rdi+0x28] + mov r15, gword ptr [rbx] + mov rsi, r15 + mov edx, dword ptr [rbx+0x0C] + cmp edx, dword ptr [rsi+0x14] + jne SHORT G_M43288_IG07 + mov edx, dword ptr [rbx+0x08] + cmp edx, dword ptr [rsi+0x10] + jae SHORT G_M43288_IG10 + mov rsi, gword ptr [rsi+0x08] + cmp edx, dword ptr [rsi+0x08] + jae SHORT G_M43288_IG09 + imul rdx, rdx, 264 + lea rsi, bword ptr [rsi+rdx+0x10] + lea rdx, bword ptr [rbx+0x10] + cmp byte ptr [rdx], dl + mov rdi, rdx + mov edx, 152 + call CORINFO_HELP_ASSIGN_STRUCT + inc dword ptr [rbx+0x08] + jmp SHORT G_M43288_IG05 + ;; size=71 bbWeight=4 PerfScore 135.00 G_M43288_IG07: - lea r8, bword ptr [rdx+0x28] - mov r9, gword ptr [r8] - mov rdi, r9 - mov esi, dword ptr [r8+0x0C] - cmp esi, dword ptr [rdi+0x14] - jne G_M43288_IG09 - mov esi, dword ptr [r8+0x08] - cmp esi, dword ptr [rdi+0x10] - jae G_M43288_IG12 - mov rdi, gword ptr [rdi+0x08] - cmp esi, dword ptr [rdi+0x08] - jae G_M43288_IG11 - imul rsi, rsi, 264 - lea rsi, bword ptr [rdi+rsi+0x10] - lea rdi, bword ptr [r8+0x10] - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - ;; size=141 bbWeight=4 PerfScore 177.00 -G_M43288_IG08: - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - inc dword ptr [r8+0x08] - jmp G_M43288_IG06 - ;; size=56 bbWeight=4 PerfScore 72.00 -G_M43288_IG09: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion() call [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -G_M43288_IG10: +G_M43288_IG08: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException() call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -G_M43288_IG11: +G_M43288_IG09: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 +G_M43288_IG10: + mov edx, dword ptr [r15+0x10] + inc edx + mov dword ptr [rbx+0x08], edx + add rbx, 16 + xor eax, eax + mov qword ptr [rbx], rax + mov ecx, 256 + ;; size=23 bbWeight=4 PerfScore 20.00 +G_M43288_IG11: + mov qword ptr [rbx+rcx], rax + sub rcx, 8 + jne SHORT G_M43288_IG11 + mov rdi, gword ptr [rbp-0x140] + mov dword ptr [rdi+0x20], -1 + lea rax, bword ptr [rdi+0x28] + xor ecx, ecx + mov qword ptr [rax], rcx + mov edx, 272 + ;; size=38 bbWeight=4 PerfScore 25.00 G_M43288_IG12: - mov edi, dword ptr [r9+0x10] - inc edi - mov dword ptr [r8+0x08], edi - add r8, 16 - xor edi, edi - mov qword ptr [r8], rdi - mov eax, 256 - ;; size=24 bbWeight=4 PerfScore 20.00 + mov qword ptr [rax+rdx], rcx + sub rdx, 8 + jne SHORT G_M43288_IG12 + ;; size=10 bbWeight=4 PerfScore 9.00 G_M43288_IG13: - mov qword ptr [r8+rax], rdi - sub rax, 8 - jne SHORT G_M43288_IG13 - mov dword ptr [rdx+0x20], -1 - lea rdi, bword ptr [rdx+0x28] xor eax, eax - mov qword ptr [rdi], rax - mov ecx, 272 - ;; size=31 bbWeight=4 PerfScore 21.00 + jmp G_M43288_IG19 + ;; size=7 bbWeight=4 PerfScore 9.00 G_M43288_IG14: - mov qword ptr [rdi+rcx], rax - sub rcx, 8 - jne SHORT G_M43288_IG14 - ;; size=10 bbWeight=4 PerfScore 9.00 -G_M43288_IG15: - jmp G_M43288_IG21 - ;; size=5 bbWeight=4 PerfScore 8.00 -G_M43288_IG16: - xor r14, r14 - xor r13d, r13d - test rdi, rdi - je SHORT G_M43288_IG19 - mov rax, qword ptr [rdi] - test dword ptr [rax], 0xD1FFAB1E + xor rbx, rbx + xor r15d, r15d + test rdx, rdx je SHORT G_M43288_IG17 - lea r14, bword ptr [rdi+0x10] - mov r13d, dword ptr [rdi+0x08] - jmp SHORT G_M43288_IG18 - ;; size=32 bbWeight=0.50 PerfScore 6.12 -G_M43288_IG17: - mov rax, qword ptr [rdi] + mov rax, qword ptr [rdx] + test dword ptr [rax], 0xD1FFAB1E + je SHORT G_M43288_IG15 + lea rbx, bword ptr [rdx+0x10] + mov r15d, dword ptr [rdx+0x08] + jmp SHORT G_M43288_IG16 + ;; size=31 bbWeight=0.50 PerfScore 6.12 +G_M43288_IG15: + mov rdi, rdx + mov rax, qword ptr [rdx] mov rax, qword ptr [rax+0x40] call [rax+0x28]System.Buffers.MemoryManager`1[ubyte]:GetSpan():System.Span`1[ubyte]:this - mov r14, rax - mov r13d, edx - mov rdx, gword ptr [rbp-0x140] - ;; size=23 bbWeight=0.50 PerfScore 4.25 -G_M43288_IG18: - and ebx, 0xD1FFAB1E - mov edi, ebx - mov eax, r15d - add rax, rdi + mov rbx, rax + mov r15d, edx + mov rdi, gword ptr [rbp-0x140] + ;; size=26 bbWeight=0.50 PerfScore 4.38 +G_M43288_IG16: + and r14d, 0xD1FFAB1E + mov eax, r14d mov ecx, r13d - cmp rax, rcx - ja G_M43288_IG10 - add r14, rdi - mov r13d, r15d - ;; size=32 bbWeight=0.50 PerfScore 1.50 -G_M43288_IG19: - mov rbx, r14 + add rcx, rax + mov edx, r15d + cmp rcx, rdx + ja G_M43288_IG08 + add rbx, rax + mov r15d, r13d + ;; size=34 bbWeight=0.50 PerfScore 1.50 +G_M43288_IG17: mov rdi, 0xD1FFAB1E ; System.Net.IPAddress call CORINFO_HELP_NEWSFAST - mov r15, rax + mov r14, rax mov rsi, rbx - mov edx, r13d - mov rdi, r15 + mov edx, r15d + mov rdi, r14 mov rax, 0xD1FFAB1E ; code for System.Net.IPAddress:.ctor(System.ReadOnlySpan`1[ubyte]):this call [rax]System.Net.IPAddress:.ctor(System.ReadOnlySpan`1[ubyte]):this - mov rdx, gword ptr [rbp-0x140] - lea rdi, bword ptr [rdx+0x08] - mov rsi, r15 + mov rdi, gword ptr [rbp-0x140] + lea rdi, bword ptr [rdi+0x08] + mov rsi, r14 call CORINFO_HELP_ASSIGN_REF - mov rdx, gword ptr [rbp-0x140] - mov dword ptr [rdx+0x20], 1 + mov rdi, gword ptr [rbp-0x140] + mov dword ptr [rdi+0x20], 1 mov eax, 1 - jmp SHORT G_M43288_IG21 - ;; size=82 bbWeight=0.50 PerfScore 6.38 -G_M43288_IG20: - mov dword ptr [rdx+0x20], -3 - jmp G_M43288_IG07 + jmp SHORT G_M43288_IG19 + ;; size=79 bbWeight=0.50 PerfScore 6.25 +G_M43288_IG18: + mov dword ptr [rdi+0x20], -3 + jmp G_M43288_IG06 ;; size=12 bbWeight=0.50 PerfScore 1.50 -G_M43288_IG21: +G_M43288_IG19: add rsp, 304 pop rbx pop r13 pop r14 pop r15 pop rbp ret ;; size=16 bbWeight=1 PerfScore 3.75 -G_M43288_IG22: +G_M43288_IG20: push rbp push r15 push r14 push r13 push rbx sub rsp, 16 mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x150] ;; size=26 bbWeight=0 PerfScore 0.00 -G_M43288_IG23: +G_M43288_IG21: mov rdi, gword ptr [rbp-0x140] mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__8:System.IDisposable.Dispose():this call [rax]System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__8:System.IDisposable.Dispose():this nop ;; size=20 bbWeight=0 PerfScore 0.00 -G_M43288_IG24: +G_M43288_IG22: 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 935, prolog size 103, PerfScore 401.83, instruction count 234, allocated bytes for code 935 (MethodHash=572a56e7) for method System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__8:MoveNext():ubyte:this (FullOpts) +; Total bytes of code 706, prolog size 100, PerfScore 278.21, instruction count 175, allocated bytes for code 706 (MethodHash=572a56e7) for method System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__8:MoveNext():ubyte: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/8b732ffb9c3fbc7ecf4e963c642c1f61

MihuBot commented 2 months ago

@EgorBo