Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

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

Open
MihuBot opened this issue May 1, 2024 · 3 comments
Open

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

MihuBot opened this issue May 1, 2024 · 3 comments

Comments

@MihuBot
Copy link
Owner

MihuBot commented May 1, 2024

Build completed in 31 minutes.
dotnet/runtime#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+<EnumerateDnsNames>d__6:MoveNext():ubyte:this (FullOpts)
        -229 (-24.49 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+<EnumerateIPAddresses>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+<SendAsync>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+<<SendCoreAsync>g__Core|5_0>d:MoveNext():this (FullOpts)
         -90 (-7.78 % of base) : Microsoft.Extensions.Http.dasm - Microsoft.Extensions.Http.Logging.LoggingScopeHttpMessageHandler+<<SendCoreAsync>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+<get_Keys>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+<get_Values>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+<get_Keys>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+<get_Keys>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+<get_Keys>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+<get_Keys>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+<get_Keys>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+<get_Keys>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+<get_Values>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+<get_Values>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+<get_Values>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+<get_Values>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+<get_Values>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+<get_Values>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+<get_Values>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+<EnumerateDnsNames>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:<TryAdvanceWithOptionalReadAhead>g__TryAdvanceWithReadAhead|4_0(byref):ubyte (FullOpts)
        -229 (-24.49 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+<EnumerateIPAddresses>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:<ExportParameters>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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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
Copy link
Owner Author

MihuBot commented May 1, 2024

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
 ; 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 <Microsoft.Extensions.Logging.EventSource.LoggingEventSource>
+;  V00 this         [V00,T00] (  4,  3.50)     ref  ->  rbx         this class-hnd single-def <Microsoft.Extensions.Logging.EventSource.LoggingEventSource>
 ;  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 <System.String>
-;  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 <System.String>
-;  V06 arg6         [V06,T04] (  6,  3   )     ref  ->   r8         ld-addr-op class-hnd <System.String>
-;  V07 arg7         [V07,T05] (  6,  3   )     ref  ->  rsi         ld-addr-op class-hnd <System.String>
-;  V08 arg8         [V08,T06] (  6,  3   )     ref  ->  rdx         ld-addr-op class-hnd <System.String>
+;  V03 arg3         [V03    ] (  8,  5   )     ref  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed ld-addr-op class-hnd <System.String>
+;  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 <System.String>
+;  V06 arg6         [V06    ] (  6,  3   )     ref  ->  [rbp+0x10]  do-not-enreg[X] addr-exposed ld-addr-op class-hnd <System.String>
+;  V07 arg7         [V07    ] (  6,  3   )     ref  ->  [rbp+0x18]  do-not-enreg[X] addr-exposed ld-addr-op class-hnd <System.String>
+;  V08 arg8         [V08    ] (  6,  3   )     ref  ->  [rbp+0x20]  do-not-enreg[X] addr-exposed ld-addr-op class-hnd <System.String>
 ;* 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" <System.String>
-;* V27 tmp7         [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;* V28 tmp8         [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;* V29 tmp9         [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;* V30 tmp10        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;* 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" <System.String>
-;  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" <System.String>
-;  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" <System.String>
-;  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" <System.String>
-;  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" <System.String>
-;  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" <System.String>
+;  V27 tmp7         [V27,T03] (  3,  3   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V28 tmp8         [V28,T04] (  3,  3   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V29 tmp9         [V29,T05] (  3,  3   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V30 tmp10        [V30,T06] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.String>
+;  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
 ; 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 <Microsoft.Extensions.Logging.EventSource.LoggingEventSource>
-;  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 <System.String>
-;  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 <System.String>
-;  V06 arg6         [V06,T04] (  6,  3   )     ref  ->   r8         ld-addr-op class-hnd <System.String>
+;  V00 this         [V00,T00] (  4,  3.50)     ref  ->  rbx         this class-hnd single-def <Microsoft.Extensions.Logging.EventSource.LoggingEventSource>
+;  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 <System.String>
+;  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 <System.String>
+;  V06 arg6         [V06    ] (  6,  3   )     ref  ->  [rbp+0x10]  do-not-enreg[X] addr-exposed ld-addr-op class-hnd <System.String>
 ;* 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" <System.String>
-;* V19 tmp5         [V19    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;* V20 tmp6         [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;* 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" <System.String>
-;  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" <System.String>
-;  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" <System.String>
-;  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" <System.String>
+;  V19 tmp5         [V19,T03] (  3,  3   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V20 tmp6         [V20,T04] (  3,  3   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
+;  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
 ; 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 <Microsoft.Extensions.Logging.EventSource.LoggingEventSource>
-;  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 <System.String>
-;  V04 arg4         [V04,T01] (  8,  5   )     ref  ->   r8         ld-addr-op class-hnd <System.String>
+;  V00 this         [V00,T00] (  4,  3.50)     ref  ->  rbx         this class-hnd single-def <Microsoft.Extensions.Logging.EventSource.LoggingEventSource>
+;  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 <System.String>
+;  V04 arg4         [V04    ] (  8,  5   )     ref  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed ld-addr-op class-hnd <System.String>
 ;* 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" <System.String>
-;* V14 tmp4         [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;* 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" <System.String>
-;  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" <System.String>
-;  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" <System.String>
+;  V14 tmp4         [V14,T03] (  3,  3   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
+;  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
Copy link
Owner Author

MihuBot commented May 1, 2024

Top method improvements

-232 (-31.48 % of base) - System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__6:MoveNext():ubyte:this
 ; Assembly listing for method System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+<EnumerateDnsNames>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 <System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+<EnumerateDnsNames>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 <System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+<EnumerateDnsNames>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] <System.Security.Cryptography.Asn1.GeneralNameAsn>
 ;# 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" <System.Collections.Generic.List`1[System.Security.Cryptography.Asn1.GeneralNameAsn]>
-;  V06 tmp2         [V06,T13] (  3,  3   )  struct (280) [rbp-0x128]  do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Security.Cryptography.Asn1.GeneralNameAsn]>
+;  V05 tmp1         [V05,T15] (  3,  3   )     ref  ->  rbx         class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.Asn1.GeneralNameAsn]>
+;  V06 tmp2         [V06,T16] (  3,  3   )  struct (280) [rbp-0x128]  do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Security.Cryptography.Asn1.GeneralNameAsn]>
 ;* 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" <System.Collections.Generic.List`1[System.Security.Cryptography.Asn1.GeneralNameAsn]>
-;  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" <System.Collections.Generic.List`1[System.Security.Cryptography.Asn1.GeneralNameAsn]>
+;  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+<EnumerateDnsNames>d__6:System.IDisposable.Dispose():this
        call     [rax]System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+<EnumerateDnsNames>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+<EnumerateDnsNames>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+<EnumerateDnsNames>d__6:MoveNext():ubyte:this (FullOpts)
-229 (-24.49 % of base) - System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__8:MoveNext():ubyte:this
 ; Assembly listing for method System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+<EnumerateIPAddresses>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 <System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+<EnumerateIPAddresses>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 <System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+<EnumerateIPAddresses>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 <System.Security.Cryptography.Asn1.GeneralNameAsn>
 ;* V04 loc3         [V04    ] (  0,  0   )  struct (16) zero-ref    <System.ReadOnlySpan`1[ubyte]>
 ;* V05 loc4         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlyMemory`1[ubyte]>
 ;# 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" <System.Net.IPAddress>
-;  V08 tmp2         [V08,T17] (  3,  3   )     ref  ->  rbx         class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.Asn1.GeneralNameAsn]>
-;  V09 tmp3         [V09,T18] (  3,  3   )  struct (280) [rbp-0x138]  do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Security.Cryptography.Asn1.GeneralNameAsn]>
+;  V07 tmp1         [V07,T19] (  3,  3   )     ref  ->  r14         class-hnd exact "NewObj constructor temp" <System.Net.IPAddress>
+;  V08 tmp2         [V08,T20] (  3,  3   )     ref  ->  rbx         class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.Asn1.GeneralNameAsn]>
+;  V09 tmp3         [V09,T21] (  3,  3   )  struct (280) [rbp-0x138]  do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Security.Cryptography.Asn1.GeneralNameAsn]>
 ;* V10 tmp4         [V10    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V11 tmp5         [V11    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
-;  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" <System.Object>
 ;* V15 tmp9         [V15    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V16 tmp10        [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Buffers.MemoryManager`1[ubyte]>
 ;* V17 tmp11        [V17    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
 ;* V18 tmp12        [V18    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
-;  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" <ubyte[]>
 ;* V22 tmp16        [V22    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <ubyte[]>
-;  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" <System.Span`1[ubyte]>
-;* 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" <System.Collections.Generic.List`1[System.Security.Cryptography.Asn1.GeneralNameAsn]>
+;* 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" <System.Collections.Generic.List`1[System.Security.Cryptography.Asn1.GeneralNameAsn]>
 ;* 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+<EnumerateIPAddresses>d__8:System.IDisposable.Dispose():this
        call     [rax]System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+<EnumerateIPAddresses>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+<EnumerateIPAddresses>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+<EnumerateIPAddresses>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
Copy link
Owner Author

MihuBot commented May 1, 2024

@EgorBo

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

No branches or pull requests

1 participant