Skip to content

[JitDiff X64] [AndyAyersMS] JIT: boost inlining for methods that may return ... #1073

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

Open
MihuBot opened this issue Apr 17, 2025 · 3 comments

Comments

@MihuBot
Copy link
Owner

MihuBot commented Apr 17, 2025

Job completed in 15 minutes 10 seconds (remote runner delay: 42 seconds).
dotnet/runtime#114806

Diffs

Diffs
Found 101 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 42116646
Total bytes of diff: 42150887
Total bytes of delta: 34241 (0.08 % of base)
Total relative delta: 80.54
    diff is a regression.
    relative diff is a regression.


Top file regressions (bytes):
       28891 : System.Text.Json.dasm (2.18 % of base)
        1209 : System.Private.Xml.dasm (0.03 % of base)
        1107 : System.Security.Cryptography.dasm (0.09 % of base)
         982 : Microsoft.CSharp.dasm (0.29 % of base)
         872 : System.Private.CoreLib.dasm (0.01 % of base)
         360 : System.Net.Security.dasm (0.16 % of base)
         204 : System.IO.Hashing.dasm (0.78 % of base)
         199 : System.Data.Common.dasm (0.01 % of base)
         183 : System.Runtime.Serialization.Schema.dasm (0.31 % of base)
         146 : Microsoft.Extensions.Primitives.dasm (0.53 % of base)
         125 : System.Data.Odbc.dasm (0.05 % of base)
          75 : System.Net.Http.dasm (0.01 % of base)
          60 : System.Private.DataContractSerialization.dasm (0.01 % of base)
          28 : System.ComponentModel.TypeConverter.dasm (0.01 % of base)
          13 : System.Linq.Expressions.dasm (0.00 % of base)

Top file improvements (bytes):
        -108 : Microsoft.VisualBasic.Core.dasm (-0.02 % of base)
        -105 : ILCompiler.Reflection.ReadyToRun.dasm (-0.05 % of base)

17 total files with Code Size differences (2 improved, 15 regressed), 243 unchanged.

Top method regressions (bytes):
         875 (17.68 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:TryReadMetadata(System.Text.Json.Serialization.JsonConverter,System.Text.Json.Serialization.Metadata.JsonTypeInfo,byref,byref):ubyte (FullOpts)
         713 (27.72 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.CapiHelper:ToDSAParameters(ubyte[],ubyte,ubyte[]):System.Security.Cryptography.DSAParameters (FullOpts)
         703 (15.43 % 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)
         663 (24.91 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[double]:ReadConstructorArguments(byref,byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
         663 (24.91 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[int]:ReadConstructorArguments(byref,byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
         663 (24.91 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[long]:ReadConstructorArguments(byref,byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
         663 (24.91 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[short]:ReadConstructorArguments(byref,byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
         663 (24.91 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:ReadConstructorArguments(byref,byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
         663 (24.91 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.Nullable`1[int]]:ReadConstructorArguments(byref,byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
         663 (24.91 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.Numerics.Vector`1[float]]:ReadConstructorArguments(byref,byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
         663 (24.91 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[ubyte]:ReadConstructorArguments(byref,byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
         651 (14.23 % 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)
         621 (121.76 % of base) : System.Text.Json.dasm - System.Text.Json.ThrowHelper:ThrowJsonException_MetadataInvalidPropertyInArrayMetadata(byref,System.Type,byref) (FullOpts)
         591 (23.58 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[double]:ReadConstructorArgumentsWithContinuation(byref,byref,System.Text.Json.JsonSerializerOptions):ubyte:this (FullOpts)
         591 (23.58 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[int]:ReadConstructorArgumentsWithContinuation(byref,byref,System.Text.Json.JsonSerializerOptions):ubyte:this (FullOpts)
         591 (23.58 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[long]:ReadConstructorArgumentsWithContinuation(byref,byref,System.Text.Json.JsonSerializerOptions):ubyte:this (FullOpts)
         591 (23.58 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[short]:ReadConstructorArgumentsWithContinuation(byref,byref,System.Text.Json.JsonSerializerOptions):ubyte:this (FullOpts)
         591 (23.58 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.Nullable`1[int]]:ReadConstructorArgumentsWithContinuation(byref,byref,System.Text.Json.JsonSerializerOptions):ubyte:this (FullOpts)
         591 (23.58 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.Numerics.Vector`1[float]]:ReadConstructorArgumentsWithContinuation(byref,byref,System.Text.Json.JsonSerializerOptions):ubyte:this (FullOpts)
         591 (23.58 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[ubyte]:ReadConstructorArgumentsWithContinuation(byref,byref,System.Text.Json.JsonSerializerOptions):ubyte:this (FullOpts)
         588 (33.93 % 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)
         588 (33.93 % 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)
         588 (33.93 % 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)
         588 (33.93 % 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)
         588 (33.93 % 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)
         588 (33.93 % 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)
         588 (33.93 % 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)
         588 (33.93 % 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)
         582 (23.02 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:ReadConstructorArgumentsWithContinuation(byref,byref,System.Text.Json.JsonSerializerOptions):ubyte:this (FullOpts)
         579 (12.94 % 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)
         579 (12.98 % 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)
         579 (12.98 % 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)
         579 (12.95 % 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)
         579 (12.96 % 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)
         515 (319.88 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:GetUnescapedSpan(byref):System.ReadOnlySpan`1[ubyte] (FullOpts)
         514 (250.73 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:GetString():System.String:this (FullOpts)
         501 (254.31 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetBytesFromBase64(byref):ubyte:this (FullOpts)
         499 (311.87 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:GetComment():System.String:this (FullOpts)
         498 (355.71 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:GetUnescapedSpan():System.ReadOnlySpan`1[ubyte]:this (FullOpts)
         498 (225.34 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetDouble(byref):ubyte:this (FullOpts)
         498 (226.36 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetSingle(byref):ubyte:this (FullOpts)
         494 (234.12 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.BooleanConverter:ReadAsPropertyNameCore(byref,System.Type,System.Text.Json.JsonSerializerOptions):ubyte:this (FullOpts)
         492 (234.29 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetByte(byref):ubyte:this (FullOpts)
         492 (224.66 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetDecimal(byref):ubyte:this (FullOpts)
         492 (230.99 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetInt16(byref):ubyte:this (FullOpts)
         492 (235.41 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetInt32(byref):ubyte:this (FullOpts)
         492 (232.08 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetInt64(byref):ubyte:this (FullOpts)
         492 (234.29 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetSByte(byref):ubyte:this (FullOpts)
         492 (230.99 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetUInt16(byref):ubyte:this (FullOpts)
         492 (235.41 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetUInt32(byref):ubyte:this (FullOpts)
         492 (232.08 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetUInt64(byref):ubyte:this (FullOpts)
         259 (380.88 % of base) : System.Private.CoreLib.dasm - System.Globalization.CultureData:get_CurrencyGroupSizes():int[]:this (FullOpts)
         259 (380.88 % of base) : System.Private.CoreLib.dasm - System.Globalization.CultureData:get_NumberGroupSizes():int[]:this (FullOpts)
         231 (48.94 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.CSharpSetIndexBinder:FallbackSetIndex(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[],System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject):System.Dynamic.DynamicMetaObject:this (FullOpts)
         208 (21.33 % of base) : System.Net.Security.dasm - System.Net.NegotiateAuthenticationPal+UnixNegotiateAuthenticationPal:AcceptSecurityContext(Microsoft.Win32.SafeHandles.SafeGssCredHandle,byref,System.ReadOnlySpan`1[ubyte],byref,byref,byref):int:this (FullOpts)
         189 (57.80 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.CSharpGetIndexBinder:FallbackGetIndex(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[],System.Dynamic.DynamicMetaObject):System.Dynamic.DynamicMetaObject:this (FullOpts)
         189 (57.80 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.CSharpInvokeBinder:FallbackInvoke(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[],System.Dynamic.DynamicMetaObject):System.Dynamic.DynamicMetaObject:this (FullOpts)
         189 (57.80 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.CSharpInvokeMemberBinder:FallbackInvokeMember(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[],System.Dynamic.DynamicMetaObject):System.Dynamic.DynamicMetaObject:this (FullOpts)
         184 (60.53 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.CSharpInvokeConstructorBinder:Bind(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[]):System.Dynamic.DynamicMetaObject:this (FullOpts)
         183 (28.42 % of base) : System.Private.CoreLib.dasm - System.String:SplitInternal(System.String,System.String[],int,int):System.String[]:this (FullOpts)
         157 (10.84 % of base) : System.Data.Common.dasm - System.Data.Common.ObjectStorage:Set(int,System.Object):this (FullOpts)
         152 (9.00 % of base) : System.Net.Security.dasm - System.Net.NegotiateAuthenticationPal+UnixNegotiateAuthenticationPal:InitializeSecurityContext(byref,byref,byref,System.String,uint,System.ReadOnlySpan`1[ubyte],System.Security.Authentication.ExtendedProtection.ChannelBinding,byref,byref,byref):int:this (FullOpts)
         128 (110.34 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.Crc32:Hash(ubyte[]):ubyte[] (FullOpts)
         118 (2.98 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:WriteEnumAndArrayTypes():this (FullOpts)
         116 (8.40 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteDerivedTypes(System.Xml.Serialization.StructMapping,ubyte,System.String):this (FullOpts)
         111 (4.40 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteEnumAndArrayTypes():this (FullOpts)
         108 (3.11 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteEnumAndArrayTypes():this (FullOpts)
         103 (61.68 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationCodeGen:ReferenceMapping(System.Xml.Serialization.TypeMapping):System.String:this (FullOpts)
         100 (1.93 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteEnumAndArrayTypes():this (FullOpts)
          99 (69.72 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationILGen:ReferenceMapping(System.Xml.Serialization.TypeMapping):System.String:this (FullOpts)
          96 (11.82 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteDerivedTypes(System.Xml.Serialization.StructMapping,ubyte,System.String):this (FullOpts)
          92 (7.76 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:WriteDerivedTypes(System.Xml.Serialization.StructMapping):this (FullOpts)
          92 (15.81 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteEnumValue(System.Xml.Serialization.EnumMapping,System.Xml.Serialization.SourceInfo,byref):this (FullOpts)
          83 (4.90 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteDerivedTypes(System.Xml.Serialization.StructMapping):this (FullOpts)
          79 (21.88 % of base) : System.Private.CoreLib.dasm - System.String:SplitInternal(System.String,int,int):System.String[]:this (FullOpts)
          76 (217.14 % of base) : Microsoft.Extensions.Primitives.dasm - Microsoft.Extensions.Primitives.StringValues:ToArray():System.String[]:this (FullOpts)
          76 (65.52 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.Crc64:Hash(ubyte[]):ubyte[] (FullOpts)
          75 (70.75 % of base) : System.Net.Http.dasm - System.Net.Http.Headers.HttpHeaders:TryGetValues(System.Net.Http.Headers.HeaderDescriptor,byref):ubyte:this (FullOpts)
          75 (15.76 % of base) : System.Private.CoreLib.dasm - System.String:SplitInternal(System.ReadOnlySpan`1[ushort],int,int):System.String[]:this (FullOpts)
          70 (166.67 % of base) : Microsoft.Extensions.Primitives.dasm - Microsoft.Extensions.Primitives.StringValues+StringValuesDebugView:get_Items():System.String[]:this (FullOpts)
          67 (14.69 % of base) : System.Private.Xml.dasm - System.Xml.Schema.NfaContentValidator:ValidateElement(System.Xml.XmlQualifiedName,System.Xml.Schema.ValidationState,byref):System.Object:this (FullOpts)
          61 (22.26 % of base) : System.Runtime.Serialization.Schema.dasm - System.Runtime.Serialization.XsdDataContractImporter:CanImport(System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.XmlSchemaElement):ubyte:this (FullOpts)
          61 (20.82 % of base) : System.Runtime.Serialization.Schema.dasm - System.Runtime.Serialization.XsdDataContractImporter:Import(System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.XmlSchemaElement):System.Xml.XmlQualifiedName:this (FullOpts)
          61 (23.11 % of base) : System.Runtime.Serialization.Schema.dasm - System.Runtime.Serialization.XsdDataContractImporter:Import(System.Xml.Schema.XmlSchemaSet,System.Xml.XmlQualifiedName):this (FullOpts)
          54 (69.23 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.SHA3_256:HashData(ubyte[]):ubyte[] (FullOpts)
          54 (69.23 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.SHA3_384:HashData(ubyte[]):ubyte[] (FullOpts)
          54 (69.23 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.SHA3_512:HashData(ubyte[]):ubyte[] (FullOpts)
          50 (24.63 % of base) : System.Private.Xml.dasm - System.Xml.Schema.NfaContentValidator:InitValidation(System.Xml.Schema.ValidationState):this (FullOpts)
          46 (21.70 % of base) : System.Data.Odbc.dasm - System.Data.ProviderBase.DbBuffer:WriteNumeric(int,System.Decimal,ubyte):this (FullOpts)
          43 (54.43 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcParameter:ValueScaleCore(System.Object):ubyte (FullOpts)
          40 (11.05 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.VB6File:PutDecimal(long,System.Decimal,ubyte):this (FullOpts)
          39 (46.99 % of base) : System.Private.Xml.dasm - System.Xml.Schema.NfaContentValidator:CompleteValidation(System.Xml.Schema.ValidationState):ubyte:this (FullOpts)
          36 (31.86 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcParameter:GetParameterScale(System.Object):ubyte:this (FullOpts)
          30 (7.16 % of base) : System.Private.Xml.dasm - System.Xml.Schema.NfaContentValidator:ExpectedElements(System.Xml.Schema.ValidationState,ubyte):System.Collections.ArrayList:this (FullOpts)
          30 (9.93 % of base) : System.Private.Xml.dasm - System.Xml.Schema.NfaContentValidator:ExpectedParticles(System.Xml.Schema.ValidationState,ubyte,System.Xml.Schema.XmlSchemaSet):System.Collections.ArrayList:this (FullOpts)
          28 (7.59 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.DecimalConverter:ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type):System.Object:this (FullOpts)
          28 (14.07 % of base) : System.Private.DataContractSerialization.dasm - System.Xml.XmlUTF8NodeWriter:WriteHexCharEntity(int):this (FullOpts)
          26 (49.06 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.HMACMD5:.ctor():this (FullOpts)
          26 (49.06 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.HMACSHA1:.ctor():this (FullOpts)
          26 (49.06 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.HMACSHA256:.ctor():this (FullOpts)

Top method improvements (bytes):
        -141 (-5.08 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.CodeGenerator:Ldc(System.Object):this (FullOpts)
         -64 (-5.35 % of base) : ILCompiler.Reflection.ReadyToRun.dasm - ILCompiler.Reflection.ReadyToRun.x86.GcInfo:GetTransitionsNoEbp(ubyte[],byref):this (FullOpts)
         -60 (-23.17 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
         -52 (-29.71 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.VBMath:Randomize(double) (FullOpts)
         -41 (-25.15 % of base) : ILCompiler.Reflection.ReadyToRun.dasm - ILCompiler.Reflection.ReadyToRun.x86.CallPattern:DecodeCallPattern(uint,byref,byref,byref,byref) (FullOpts)
         -36 (-21.82 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.VBMath:Randomize() (FullOpts)
         -26 (-2.81 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:GetPropertyName(byref,byref,System.Text.Json.JsonSerializerOptions,byref):System.ReadOnlySpan`1[ubyte] (FullOpts)

Top method regressions (percentages):
         259 (380.88 % of base) : System.Private.CoreLib.dasm - System.Globalization.CultureData:get_CurrencyGroupSizes():int[]:this (FullOpts)
         259 (380.88 % of base) : System.Private.CoreLib.dasm - System.Globalization.CultureData:get_NumberGroupSizes():int[]:this (FullOpts)
         498 (355.71 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:GetUnescapedSpan():System.ReadOnlySpan`1[ubyte]:this (FullOpts)
         515 (319.88 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:GetUnescapedSpan(byref):System.ReadOnlySpan`1[ubyte] (FullOpts)
         499 (311.87 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:GetComment():System.String:this (FullOpts)
         501 (254.31 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetBytesFromBase64(byref):ubyte:this (FullOpts)
         514 (250.73 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:GetString():System.String:this (FullOpts)
         492 (235.41 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetInt32(byref):ubyte:this (FullOpts)
         492 (235.41 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetUInt32(byref):ubyte:this (FullOpts)
         492 (234.29 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetByte(byref):ubyte:this (FullOpts)
         492 (234.29 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetSByte(byref):ubyte:this (FullOpts)
         494 (234.12 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.BooleanConverter:ReadAsPropertyNameCore(byref,System.Type,System.Text.Json.JsonSerializerOptions):ubyte:this (FullOpts)
         492 (232.08 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetInt64(byref):ubyte:this (FullOpts)
         492 (232.08 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetUInt64(byref):ubyte:this (FullOpts)
         492 (230.99 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetInt16(byref):ubyte:this (FullOpts)
         492 (230.99 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetUInt16(byref):ubyte:this (FullOpts)
         498 (226.36 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetSingle(byref):ubyte:this (FullOpts)
         498 (225.34 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetDouble(byref):ubyte:this (FullOpts)
         492 (224.66 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TryGetDecimal(byref):ubyte:this (FullOpts)
          76 (217.14 % of base) : Microsoft.Extensions.Primitives.dasm - Microsoft.Extensions.Primitives.StringValues:ToArray():System.String[]:this (FullOpts)
          70 (166.67 % of base) : Microsoft.Extensions.Primitives.dasm - Microsoft.Extensions.Primitives.StringValues+StringValuesDebugView:get_Items():System.String[]:this (FullOpts)
         621 (121.76 % of base) : System.Text.Json.dasm - System.Text.Json.ThrowHelper:ThrowJsonException_MetadataInvalidPropertyInArrayMetadata(byref,System.Type,byref) (FullOpts)
         128 (110.34 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.Crc32:Hash(ubyte[]):ubyte[] (FullOpts)
          75 (70.75 % of base) : System.Net.Http.dasm - System.Net.Http.Headers.HttpHeaders:TryGetValues(System.Net.Http.Headers.HeaderDescriptor,byref):ubyte:this (FullOpts)
          99 (69.72 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationILGen:ReferenceMapping(System.Xml.Serialization.TypeMapping):System.String:this (FullOpts)
          54 (69.23 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.SHA3_256:HashData(ubyte[]):ubyte[] (FullOpts)
          54 (69.23 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.SHA3_384:HashData(ubyte[]):ubyte[] (FullOpts)
          54 (69.23 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.SHA3_512:HashData(ubyte[]):ubyte[] (FullOpts)
          76 (65.52 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.Crc64:Hash(ubyte[]):ubyte[] (FullOpts)
         103 (61.68 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationCodeGen:ReferenceMapping(System.Xml.Serialization.TypeMapping):System.String:this (FullOpts)
         184 (60.53 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.CSharpInvokeConstructorBinder:Bind(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[]):System.Dynamic.DynamicMetaObject:this (FullOpts)
         189 (57.80 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.CSharpGetIndexBinder:FallbackGetIndex(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[],System.Dynamic.DynamicMetaObject):System.Dynamic.DynamicMetaObject:this (FullOpts)
         189 (57.80 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.CSharpInvokeBinder:FallbackInvoke(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[],System.Dynamic.DynamicMetaObject):System.Dynamic.DynamicMetaObject:this (FullOpts)
         189 (57.80 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.CSharpInvokeMemberBinder:FallbackInvokeMember(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[],System.Dynamic.DynamicMetaObject):System.Dynamic.DynamicMetaObject:this (FullOpts)
          43 (54.43 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcParameter:ValueScaleCore(System.Object):ubyte (FullOpts)
          26 (49.06 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.HMACMD5:.ctor():this (FullOpts)
          26 (49.06 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.HMACSHA1:.ctor():this (FullOpts)
          26 (49.06 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.HMACSHA256:.ctor():this (FullOpts)
          26 (49.06 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.HMACSHA3_256:.ctor():this (FullOpts)
          26 (49.06 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.HMACSHA3_384:.ctor():this (FullOpts)
          26 (49.06 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.HMACSHA3_512:.ctor():this (FullOpts)
          26 (49.06 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.HMACSHA384:.ctor():this (FullOpts)
          26 (49.06 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.HMACSHA512:.ctor():this (FullOpts)
         231 (48.94 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.CSharpSetIndexBinder:FallbackSetIndex(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject[],System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject):System.Dynamic.DynamicMetaObject:this (FullOpts)
          39 (46.99 % of base) : System.Private.Xml.dasm - System.Xml.Schema.NfaContentValidator:CompleteValidation(System.Xml.Schema.ValidationState):ubyte:this (FullOpts)
         588 (33.93 % 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)
         588 (33.93 % 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)
         588 (33.93 % 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)
         588 (33.93 % 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)
         588 (33.93 % 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)
         588 (33.93 % 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)
         588 (33.93 % 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)
         588 (33.93 % 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)
          16 (32.00 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlGuid:ToByteArray():ubyte[]:this (FullOpts)
          36 (31.86 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcParameter:GetParameterScale(System.Object):ubyte:this (FullOpts)
         183 (28.42 % of base) : System.Private.CoreLib.dasm - System.String:SplitInternal(System.String,System.String[],int,int):System.String[]:this (FullOpts)
         713 (27.72 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.CapiHelper:ToDSAParameters(ubyte[],ubyte,ubyte[]):System.Security.Cryptography.DSAParameters (FullOpts)
         663 (24.91 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[double]:ReadConstructorArguments(byref,byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
         663 (24.91 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[int]:ReadConstructorArguments(byref,byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
         663 (24.91 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[long]:ReadConstructorArguments(byref,byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
         663 (24.91 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[short]:ReadConstructorArguments(byref,byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
         663 (24.91 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:ReadConstructorArguments(byref,byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
         663 (24.91 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.Nullable`1[int]]:ReadConstructorArguments(byref,byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
         663 (24.91 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.Numerics.Vector`1[float]]:ReadConstructorArguments(byref,byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
         663 (24.91 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[ubyte]:ReadConstructorArguments(byref,byref,System.Text.Json.JsonSerializerOptions):this (FullOpts)
          50 (24.63 % of base) : System.Private.Xml.dasm - System.Xml.Schema.NfaContentValidator:InitValidation(System.Xml.Schema.ValidationState):this (FullOpts)
          16 (24.24 % of base) : System.Private.DataContractSerialization.dasm - System.Xml.UniqueId:.ctor(System.Guid):this (FullOpts)
         591 (23.58 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[double]:ReadConstructorArgumentsWithContinuation(byref,byref,System.Text.Json.JsonSerializerOptions):ubyte:this (FullOpts)
         591 (23.58 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[int]:ReadConstructorArgumentsWithContinuation(byref,byref,System.Text.Json.JsonSerializerOptions):ubyte:this (FullOpts)
         591 (23.58 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[long]:ReadConstructorArgumentsWithContinuation(byref,byref,System.Text.Json.JsonSerializerOptions):ubyte:this (FullOpts)
         591 (23.58 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[short]:ReadConstructorArgumentsWithContinuation(byref,byref,System.Text.Json.JsonSerializerOptions):ubyte:this (FullOpts)
         591 (23.58 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.Nullable`1[int]]:ReadConstructorArgumentsWithContinuation(byref,byref,System.Text.Json.JsonSerializerOptions):ubyte:this (FullOpts)
         591 (23.58 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.Numerics.Vector`1[float]]:ReadConstructorArgumentsWithContinuation(byref,byref,System.Text.Json.JsonSerializerOptions):ubyte:this (FullOpts)
         591 (23.58 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[ubyte]:ReadConstructorArgumentsWithContinuation(byref,byref,System.Text.Json.JsonSerializerOptions):ubyte:this (FullOpts)
          61 (23.11 % of base) : System.Runtime.Serialization.Schema.dasm - System.Runtime.Serialization.XsdDataContractImporter:Import(System.Xml.Schema.XmlSchemaSet,System.Xml.XmlQualifiedName):this (FullOpts)
         582 (23.02 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:ReadConstructorArgumentsWithContinuation(byref,byref,System.Text.Json.JsonSerializerOptions):ubyte:this (FullOpts)
          61 (22.26 % of base) : System.Runtime.Serialization.Schema.dasm - System.Runtime.Serialization.XsdDataContractImporter:CanImport(System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.XmlSchemaElement):ubyte:this (FullOpts)
          79 (21.88 % of base) : System.Private.CoreLib.dasm - System.String:SplitInternal(System.String,int,int):System.String[]:this (FullOpts)
          46 (21.70 % of base) : System.Data.Odbc.dasm - System.Data.ProviderBase.DbBuffer:WriteNumeric(int,System.Decimal,ubyte):this (FullOpts)
         208 (21.33 % of base) : System.Net.Security.dasm - System.Net.NegotiateAuthenticationPal+UnixNegotiateAuthenticationPal:AcceptSecurityContext(Microsoft.Win32.SafeHandles.SafeGssCredHandle,byref,System.ReadOnlySpan`1[ubyte],byref,byref,byref):int:this (FullOpts)
          61 (20.82 % of base) : System.Runtime.Serialization.Schema.dasm - System.Runtime.Serialization.XsdDataContractImporter:Import(System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.XmlSchemaElement):System.Xml.XmlQualifiedName:this (FullOpts)
          16 (20.51 % of base) : System.Private.DataContractSerialization.dasm - System.Xml.UniqueId:.ctor():this (FullOpts)
         875 (17.68 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:TryReadMetadata(System.Text.Json.Serialization.JsonConverter,System.Text.Json.Serialization.Metadata.JsonTypeInfo,byref,byref):ubyte (FullOpts)
          92 (15.81 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteEnumValue(System.Xml.Serialization.EnumMapping,System.Xml.Serialization.SourceInfo,byref):this (FullOpts)
          75 (15.76 % of base) : System.Private.CoreLib.dasm - System.String:SplitInternal(System.ReadOnlySpan`1[ushort],int,int):System.String[]:this (FullOpts)
         703 (15.43 % 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)
          67 (14.69 % of base) : System.Private.Xml.dasm - System.Xml.Schema.NfaContentValidator:ValidateElement(System.Xml.XmlQualifiedName,System.Xml.Schema.ValidationState,byref):System.Object:this (FullOpts)
         651 (14.23 % 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)
          28 (14.07 % of base) : System.Private.DataContractSerialization.dasm - System.Xml.XmlUTF8NodeWriter:WriteHexCharEntity(int):this (FullOpts)
         579 (12.98 % 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)
         579 (12.98 % 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)
         579 (12.96 % 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)
         579 (12.95 % 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)
         579 (12.94 % 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)
          96 (11.82 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteDerivedTypes(System.Xml.Serialization.StructMapping,ubyte,System.String):this (FullOpts)
          40 (11.05 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.VB6File:PutDecimal(long,System.Decimal,ubyte):this (FullOpts)
         157 (10.84 % of base) : System.Data.Common.dasm - System.Data.Common.ObjectStorage:Set(int,System.Object):this (FullOpts)
          30 (9.93 % of base) : System.Private.Xml.dasm - System.Xml.Schema.NfaContentValidator:ExpectedParticles(System.Xml.Schema.ValidationState,ubyte,System.Xml.Schema.XmlSchemaSet):System.Collections.ArrayList:this (FullOpts)
         152 (9.00 % of base) : System.Net.Security.dasm - System.Net.NegotiateAuthenticationPal+UnixNegotiateAuthenticationPal:InitializeSecurityContext(byref,byref,byref,System.String,uint,System.ReadOnlySpan`1[ubyte],System.Security.Authentication.ExtendedProtection.ChannelBinding,byref,byref,byref):int:this (FullOpts)
         116 (8.40 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteDerivedTypes(System.Xml.Serialization.StructMapping,ubyte,System.String):this (FullOpts)

Top method improvements (percentages):
         -52 (-29.71 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.VBMath:Randomize(double) (FullOpts)
         -41 (-25.15 % of base) : ILCompiler.Reflection.ReadyToRun.dasm - ILCompiler.Reflection.ReadyToRun.x86.CallPattern:DecodeCallPattern(uint,byref,byref,byref,byref) (FullOpts)
         -60 (-23.17 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.VBMath:Rnd(float):float (FullOpts)
         -36 (-21.82 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.VBMath:Randomize() (FullOpts)
         -64 (-5.35 % of base) : ILCompiler.Reflection.ReadyToRun.dasm - ILCompiler.Reflection.ReadyToRun.x86.GcInfo:GetTransitionsNoEbp(ubyte[],byref):this (FullOpts)
        -141 (-5.08 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.CodeGenerator:Ldc(System.Object):this (FullOpts)
         -26 (-2.81 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:GetPropertyName(byref,byref,System.Text.Json.JsonSerializerOptions,byref):System.ReadOnlySpan`1[ubyte] (FullOpts)

121 total methods with Code Size differences (7 improved, 114 regressed), 242483 unchanged.

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

Artifacts:

@MihuBot
Copy link
Owner Author

MihuBot commented Apr 17, 2025

Top method regressions

621 (121.76 % of base) - System.Text.Json.ThrowHelper:ThrowJsonException_MetadataInvalidPropertyInArrayMetadata(byref,System.Type,byref)
 ; Assembly listing for method System.Text.Json.ThrowHelper:ThrowJsonException_MetadataInvalidPropertyInArrayMetadata(byref,System.Type,byref) (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
+; 0 inlinees with PGO data; 22 single block inlinees; 11 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  4,  4   )   byref  ->  rdi         single-def
-;  V01 arg1         [V01,T03] (  3,  3   )     ref  ->  r15         class-hnd single-def <System.Type>
-;  V02 arg2         [V02,T00] (  7,  7   )   byref  ->  rbx         single-def
-;  V03 loc0         [V03,T12] (  2,  2   )     ref  ->  rbx         class-hnd exact single-def <System.String>
+;  V00 arg0         [V00,T05] (  4,  4   )   byref  ->  rdi         single-def
+;  V01 arg1         [V01,T11] (  3,  3   )     ref  ->  r15         class-hnd single-def <System.Type>
+;  V02 arg2         [V02,T01] (  7,  7   )   byref  ->  rbx         single-def
+;  V03 loc0         [V03,T35] (  2,  2   )     ref  ->  rbx         class-hnd exact single-def <System.String>
 ;* V04 loc1         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[ubyte]>
-;  V05 loc2         [V05    ] (  2,  2   )  struct (24) [rbp-0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Buffers.ReadOnlySequence`1[ubyte]>
+;  V05 loc2         [V05    ] ( 13, 13   )  struct (24) [rbp-0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Buffers.ReadOnlySequence`1[ubyte]>
 ;  V06 loc3         [V06    ] (  2,  2   )  struct (192) [rbp-0x100]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Text.Json.Utf8JsonReader>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
 ;* V08 tmp1         [V08    ] (  0,  0   )   byref  ->  zero-ref    "impAppendStmt"
-;  V09 tmp2         [V09,T13] (  2,  2   )   byref  ->  r14         single-def
+;  V09 tmp2         [V09,T36] (  2,  2   )   byref  ->  r14         single-def
 ;* V10 tmp3         [V10    ] (  0,  0   )   byref  ->  zero-ref   
-;  V11 tmp4         [V11,T10] (  3,  3   )     ref  ->  rax        
+;  V11 tmp4         [V11,T25] (  3,  3   )     ref  ->  r13        
 ;* V12 tmp5         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.String>
 ;* V13 tmp6         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "non-inline candidate call" <System.String>
-;  V14 tmp7         [V14,T11] (  3,  3   )     ref  ->  r13         class-hnd "Inline return value spill temp" <ubyte[]>
-;  V15 tmp8         [V15,T02] (  3,  6   )     ref  ->  [rbp-0x108]  class-hnd exact spill-single-def "NewArr temp" <ubyte[]>
+;  V14 tmp7         [V14,T26] (  3,  3   )     ref  ->  r13         class-hnd "Inline return value spill temp" <ubyte[]>
+;  V15 tmp8         [V15,T06] (  3,  6   )     ref  ->  [rbp-0x130]  class-hnd exact spill-single-def "NewArr temp" <ubyte[]>
 ;* V16 tmp9         [V16    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp10        [V17    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V18 tmp11        [V18    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V19 tmp12        [V19,T14] (  2,  2   )   byref  ->  r13         single-def "field V04._reference (fldOffset=0x0)" P-INDEP
-;  V20 tmp13        [V20,T04] (  4,  4   )     int  ->  r12         "field V04._length (fldOffset=0x8)" P-INDEP
-;  V21 tmp14        [V21,T05] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
-;  V22 tmp15        [V22,T06] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
-;  V23 tmp16        [V23,T07] (  2,  4   )     ref  ->  r14         single-def "argument with side effect"
-;  V24 tmp17        [V24,T08] (  2,  4   )     ref  ->  rbx         single-def "argument with side effect"
-;  V25 tmp18        [V25,T09] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
+;* V19 tmp12        [V19    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline return value spill temp" <ubyte[]>
+;* V20 tmp13        [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewArr temp" <ubyte[]>
+;  V21 tmp14        [V21,T12] (  4,  4   )     ref  ->  r13         class-hnd exact single-def "Inline stloc first use temp" <ubyte[]>
+;* V22 tmp15        [V22    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
+;  V23 tmp16        [V23,T30] (  3,  3   )    long  ->  rsi         "Inline return value spill temp"
+;  V24 tmp17        [V24,T27] (  3,  3   )     ref  ->  rsi         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;  V25 tmp18        [V25,T28] (  3,  3   )     ref  ->  r13         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;  V26 tmp19        [V26,T31] (  3,  3   )     int  ->  r12         "Inline stloc first use temp"
+;  V27 tmp20        [V27,T32] (  3,  3   )     int  ->  [rbp-0x104]  spill-single-def "Inline stloc first use temp"
+;  V28 tmp21        [V28,T37] (  2,  2   )     ref  ->  [rbp-0x138]  class-hnd spill-single-def "Inline stloc first use temp" <System.Buffers.ReadOnlySequenceSegment`1[ubyte]>
+;* V29 tmp22        [V29    ] (  0,  0   )    long  ->  zero-ref    "impAppendStmt"
+;  V30 tmp23        [V30,T22] (  2,  4   )     int  ->  r12         "Inlining Arg"
+;  V31 tmp24        [V31,T23] (  2,  4   )     int  ->  rdi         "Inlining Arg"
+;* V32 tmp25        [V32    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Buffers.ReadOnlySequenceSegment`1[ubyte]>
+;* V33 tmp26        [V33    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+;* V34 tmp27        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V35 tmp28        [V35    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlyMemory`1[ubyte]>
+;* V36 tmp29        [V36    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlySpan`1[ubyte]>
+;  V37 tmp30        [V37    ] ( 16, 16   )  struct (16) [rbp-0x118]  do-not-enreg[SBRM] multireg-ret multireg-dest must-init "Inline return value spill temp" <System.ReadOnlyMemory`1[ubyte]>
+;  V38 tmp31        [V38,T08] (  5,  5   )     ref  ->  rsi         class-hnd single-def "Inline stloc first use temp" <System.Object>
+;  V39 tmp32        [V39,T09] (  5,  5   )     int  ->  [rbp-0x11C]  spill-single-def "Inline stloc first use temp"
+;  V40 tmp33        [V40,T33] (  3,  3   )     int  ->  [rbp-0x120]  spill-single-def "Inline stloc first use temp"
+;  V41 tmp34        [V41,T42] (  2,  2   )   ubyte  ->  rdx         "Inline stloc first use temp"
+;* V42 tmp35        [V42    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SRM] multireg-ret multireg-dest "Return value temp for multireg return" <System.ReadOnlyMemory`1[ubyte]>
+;* V43 tmp36        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.ReadOnlyMemory`1[ubyte]>
+;* V44 tmp37        [V44    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlyMemory`1[ubyte]>
+;* V45 tmp38        [V45    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.Buffers.ReadOnlySequenceSegment`1[ubyte]>
+;* V46 tmp39        [V46    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
+;* V47 tmp40        [V47    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.Object>
+;* V48 tmp41        [V48    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V49 tmp42        [V49    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;  V50 tmp43        [V50,T07] (  3,  6   )     int  ->   r8         "Inlining Arg"
+;* V51 tmp44        [V51    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ubyte]>
+;* V52 tmp45        [V52    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <System.Object>
+;  V53 tmp46        [V53,T24] (  2,  4   )     int  ->  rcx         "Inlining Arg"
+;* V54 tmp47        [V54    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
+;  V55 tmp48        [V55,T04] (  6,  6   )   byref  ->  rsi         "Inline stloc first use temp"
+;  V56 tmp49        [V56,T02] (  8,  8   )     int  ->  rcx         "Inline stloc first use temp"
+;* V57 tmp50        [V57    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <System.Object>
+;* V58 tmp51        [V58    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
+;* V59 tmp52        [V59    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Buffers.MemoryManager`1[ubyte]>
+;* V60 tmp53        [V60    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBRM] multireg-ret multireg-dest "Return value temp for multireg return" <System.Span`1[ubyte]>
+;* V61 tmp54        [V61    ] (  0,  0   )  struct (16) zero-ref    multireg-ret multireg-dest ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
+;  V62 tmp55        [V62,T34] (  3,  3   )    long  ->  rdx         "Inline stloc first use temp"
+;* V63 tmp56        [V63    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V64 tmp57        [V64    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "updating class info" <ubyte[]>
+;* V65 tmp58        [V65    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <ubyte[]>
+;  V66 tmp59        [V66,T16] (  2,  4   )   byref  ->  rdi         single-def "Inlining Arg"
+;* V67 tmp60        [V67    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V68 tmp61        [V68    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
+;* V69 tmp62        [V69    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V70 tmp63        [V70    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
+;* V71 tmp64        [V71    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V72 tmp65        [V72,T38] (  2,  2   )   byref  ->  r13         single-def "field V04._reference (fldOffset=0x0)" P-INDEP
+;  V73 tmp66        [V73,T13] (  4,  4   )     int  ->  r12         "field V04._length (fldOffset=0x8)" P-INDEP
+;  V74 tmp67        [V74    ] (  6,  6   )     ref  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed "field V05._startObject (fldOffset=0x0)" P-DEP
+;  V75 tmp68        [V75    ] (  6,  6   )     ref  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed "field V05._endObject (fldOffset=0x8)" P-DEP
+;  V76 tmp69        [V76    ] (  5,  5   )     int  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed "field V05._startInteger (fldOffset=0x10)" P-DEP
+;  V77 tmp70        [V77    ] (  5,  5   )     int  ->  [rbp-0x2C]  do-not-enreg[X] addr-exposed "field V05._endInteger (fldOffset=0x14)" P-DEP
+;* V78 tmp71        [V78    ] (  0,  0   )   byref  ->  zero-ref    "field V22._reference (fldOffset=0x0)" P-INDEP
+;* V79 tmp72        [V79    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x8)" P-INDEP
+;  V80 tmp73        [V80,T29] (  3,  3   )   byref  ->  r12         single-def "field V33._reference (fldOffset=0x0)" P-INDEP
+;  V81 tmp74        [V81,T14] (  4,  4   )     int  ->  [rbp-0x124]  spill-single-def "field V33._length (fldOffset=0x8)" P-INDEP
+;* V82 tmp75        [V82    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V34._reference (fldOffset=0x0)" P-INDEP
+;* V83 tmp76        [V83    ] (  0,  0   )     int  ->  zero-ref    "field V34._length (fldOffset=0x8)" P-INDEP
+;* V84 tmp77        [V84    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V35._object (fldOffset=0x0)" P-INDEP
+;* V85 tmp78        [V85    ] (  0,  0   )     int  ->  zero-ref    "field V35._index (fldOffset=0x8)" P-INDEP
+;* V86 tmp79        [V86    ] (  0,  0   )     int  ->  zero-ref    "field V35._length (fldOffset=0xc)" P-INDEP
+;* V87 tmp80        [V87    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V36._reference (fldOffset=0x0)" P-INDEP
+;* V88 tmp81        [V88    ] (  0,  0   )     int  ->  zero-ref    "field V36._length (fldOffset=0x8)" P-INDEP
+;  V89 tmp82        [V89,T00] (  9,  9   )     ref  ->  [rbp-0x118]  do-not-enreg[] "field V37._object (fldOffset=0x0)" P-DEP
+;  V90 tmp83        [V90,T15] (  4,  4   )     int  ->  [rbp-0x110]  do-not-enreg[] "field V37._index (fldOffset=0x8)" P-DEP
+;  V91 tmp84        [V91,T10] (  5,  5   )     int  ->  [rbp-0x10C]  do-not-enreg[] "field V37._length (fldOffset=0xc)" P-DEP
+;  V92 tmp85        [V92,T39] (  2,  2   )     ref  ->  rdi         single-def "field V43._object (fldOffset=0x0)" P-INDEP
+;  V93 tmp86        [V93,T43] (  2,  2   )     int  ->  rcx         "field V43._index (fldOffset=0x8)" P-INDEP
+;  V94 tmp87        [V94,T44] (  2,  2   )     int  ->  rax         "field V43._length (fldOffset=0xc)" P-INDEP
+;* V95 tmp88        [V95    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V44._object (fldOffset=0x0)" P-INDEP
+;* V96 tmp89        [V96    ] (  0,  0   )     int  ->  zero-ref    "field V44._index (fldOffset=0x8)" P-INDEP
+;* V97 tmp90        [V97    ] (  0,  0   )     int  ->  zero-ref    "field V44._length (fldOffset=0xc)" P-INDEP
+;* V98 tmp91        [V98    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V46._object (fldOffset=0x0)" P-INDEP
+;* V99 tmp92        [V99    ] (  0,  0   )     int  ->  zero-ref    "field V46._index (fldOffset=0x8)" P-INDEP
+;* V100 tmp93       [V100    ] (  0,  0   )     int  ->  zero-ref    "field V46._length (fldOffset=0xc)" P-INDEP
+;  V101 tmp94       [V101,T40] (  2,  2   )     ref  ->  rdi         single-def "field V51._object (fldOffset=0x0)" P-INDEP
+;  V102 tmp95       [V102,T45] (  2,  2   )     int  ->  rcx         "field V51._index (fldOffset=0x8)" P-INDEP
+;  V103 tmp96       [V103,T46] (  2,  2   )     int  ->   r8         "field V51._length (fldOffset=0xc)" P-INDEP
+;* V104 tmp97       [V104    ] (  0,  0   )   byref  ->  zero-ref    "field V54._reference (fldOffset=0x0)" P-INDEP
+;* V105 tmp98       [V105    ] (  0,  0   )     int  ->  zero-ref    "field V54._length (fldOffset=0x8)" P-INDEP
+;* V106 tmp99       [V106    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V58._reference (fldOffset=0x0)" P-INDEP
+;* V107 tmp100      [V107    ] (  0,  0   )     int  ->  zero-ref    "field V58._length (fldOffset=0x8)" P-INDEP
+;* V108 tmp101      [V108    ] (  0,  0   )   byref  ->  zero-ref    "field V60._reference (fldOffset=0x0)" P-DEP
+;* V109 tmp102      [V109    ] (  0,  0   )     int  ->  zero-ref    "field V60._length (fldOffset=0x8)" P-DEP
+;  V110 tmp103      [V110,T41] (  2,  2   )   byref  ->  rsi         "field V61._reference (fldOffset=0x0)" P-INDEP
+;  V111 tmp104      [V111,T47] (  2,  2   )     int  ->  rcx         "field V61._length (fldOffset=0x8)" P-INDEP
+;* V112 tmp105      [V112    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V67._reference (fldOffset=0x0)" P-INDEP
+;* V113 tmp106      [V113    ] (  0,  0   )     int  ->  zero-ref    "field V67._length (fldOffset=0x8)" P-INDEP
+;* V114 tmp107      [V114    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V68._reference (fldOffset=0x0)" P-INDEP
+;* V115 tmp108      [V115    ] (  0,  0   )     int  ->  zero-ref    "field V68._length (fldOffset=0x8)" P-INDEP
+;  V116 tmp109      [V116,T03] (  4,  8   )     ref  ->  rax         single-def "BlockOp address local"
+;  V117 tmp110      [V117,T17] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
+;  V118 tmp111      [V118,T18] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
+;  V119 tmp112      [V119,T19] (  2,  4   )     ref  ->  r14         single-def "argument with side effect"
+;  V120 tmp113      [V120,T20] (  2,  4   )     ref  ->  rbx         single-def "argument with side effect"
+;  V121 tmp114      [V121,T21] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
 ;
-; Lcl frame size = 232
+; Lcl frame size = 280
 
 G_M24386_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 232
-       lea      rbp, [rsp+0x110]
-       vxorps   xmm8, xmm8, xmm8
-       vmovdqu32 zmmword ptr [rbp-0x100], zmm8
-       vmovdqu32 zmmword ptr [rbp-0xC0], zmm8
-       vmovdqu32 zmmword ptr [rbp-0x80], zmm8
-       vmovdqa  xmmword ptr [rbp-0x40], xmm8
+       sub      rsp, 280
+       lea      rbp, [rsp+0x140]
        xor      eax, eax
+       mov      qword ptr [rbp-0x118], rax
+       vxorps   xmm8, xmm8, xmm8
+       vmovdqu32 zmmword ptr [rbp-0x110], zmm8
+       vmovdqu32 zmmword ptr [rbp-0xD0], zmm8
+       vmovdqu32 zmmword ptr [rbp-0x90], zmm8
+       vmovdqa  xmmword ptr [rbp-0x50], xmm8
+       vmovdqa  xmmword ptr [rbp-0x40], xmm8
        mov      qword ptr [rbp-0x30], rax
        mov      r15, rsi
        mov      rbx, rdx
-						;; size=68 bbWeight=1 PerfScore 16.83
+						;; size=89 bbWeight=1 PerfScore 19.83
 G_M24386_IG02:
        cmp      byte  ptr [rdi], dil
        lea      r14, bword ptr [rdi+0x30]
        cmp      byte  ptr [rbx+0x2D], 0
-       je       SHORT G_M24386_IG05
-						;; size=13 bbWeight=1 PerfScore 7.50
+       je       G_M24386_IG21
+						;; size=17 bbWeight=1 PerfScore 7.50
 G_M24386_IG03:
        vmovdqu  xmm0, xmmword ptr [rbx+0xA8]
        vmovdqu  xmmword ptr [rbp-0x40], xmm0
-       mov      rdi, qword ptr [rbx+0xB8]
-       mov      qword ptr [rbp-0x30], rdi
+       mov      rsi, qword ptr [rbx+0xB8]
+       mov      qword ptr [rbp-0x30], rsi
 						;; size=24 bbWeight=1 PerfScore 8.00
 G_M24386_IG04:
-       lea      rdi, [rbp-0x40]
-       mov      rax, 0xD1FFAB1E      ; code for System.Buffers.BuffersExtensions:ToArray[ubyte](byref):ubyte[]
-       call     [rax]System.Buffers.BuffersExtensions:ToArray[ubyte](byref):ubyte[]
-       jmp      SHORT G_M24386_IG09
-						;; size=18 bbWeight=1 PerfScore 5.75
+       mov      rsi, gword ptr [rbp-0x40]
+       mov      r13, gword ptr [rbp-0x38]
+       mov      r12d, dword ptr [rbp-0x30]
+       and      r12d, 0xD1FFAB1E
+       mov      edi, dword ptr [rbp-0x2C]
+       and      edi, 0xD1FFAB1E
+       mov      dword ptr [rbp-0x104], edi
+       cmp      rsi, r13
+       jne      SHORT G_M24386_IG05
+       sub      edi, r12d
+       movsxd   rsi, edi
+       jmp      SHORT G_M24386_IG06
+						;; size=47 bbWeight=1 PerfScore 9.25
 G_M24386_IG05:
+       mov      rdi, 0xD1FFAB1E      ; System.Buffers.ReadOnlySequenceSegment`1[ubyte]
+       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS
+       call     [rax]CORINFO_HELP_CHKCASTCLASS
+       mov      gword ptr [rbp-0x138], rax
+       mov      rsi, r13
+       mov      rdi, 0xD1FFAB1E      ; System.Buffers.ReadOnlySequenceSegment`1[ubyte]
+       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS
+       call     [rcx]CORINFO_HELP_CHKCASTCLASS
+       movsxd   rsi, dword ptr [rbp-0x104]
+       add      rsi, qword ptr [rax+0x10]
+       movsxd   rdi, r12d
+       mov      r13, gword ptr [rbp-0x138]
+       add      rdi, qword ptr [r13+0x10]
+       sub      rsi, rdi
+						;; size=82 bbWeight=1 PerfScore 18.75
+G_M24386_IG06:
+       mov      rdi, 0xD1FFAB1E      ; ubyte[]
+       call     CORINFO_HELP_NEWARR_1_VC
+       mov      r13, rax
+       lea      r12, bword ptr [r13+0x10]
+       mov      eax, dword ptr [r13+0x08]
+       mov      dword ptr [rbp-0x124], eax
+       mov      rsi, gword ptr [rbp-0x40]
+       cmp      rsi, gword ptr [rbp-0x38]
+       je       SHORT G_M24386_IG07
+       mov      rsi, r12
+       mov      edx, eax
+       lea      rdi, [rbp-0x40]
+       mov      rax, 0xD1FFAB1E      ; code for System.Buffers.BuffersExtensions:CopyToMultiSegment[ubyte](byref,System.Span`1[ubyte])
+       call     [rax]System.Buffers.BuffersExtensions:CopyToMultiSegment[ubyte](byref,System.Span`1[ubyte])
+       jmp      G_M24386_IG18
+						;; size=68 bbWeight=1 PerfScore 15.25
+G_M24386_IG07:
+       mov      rsi, gword ptr [rbp-0x40]
+       test     rsi, rsi
+       je       G_M24386_IG10
+       mov      ecx, dword ptr [rbp-0x30]
+       mov      dword ptr [rbp-0x11C], ecx
+       mov      r8d, dword ptr [rbp-0x2C]
+       mov      dword ptr [rbp-0x120], r8d
+       cmp      rsi, gword ptr [rbp-0x38]
+       setne    dl
+       movzx    rdx, dl
+       mov      edi, ecx
+       or       edi, r8d
+       jge      SHORT G_M24386_IG08
+       lea      rdi, [rbp-0x40]
+       mov      rcx, 0xD1FFAB1E      ; code for System.Buffers.ReadOnlySequence`1[ubyte]:GetFirstBufferSlow(System.Object,ubyte):System.ReadOnlyMemory`1[ubyte]:this
+       call     [rcx]System.Buffers.ReadOnlySequence`1[ubyte]:GetFirstBufferSlow(System.Object,ubyte):System.ReadOnlyMemory`1[ubyte]:this
+       mov      gword ptr [rbp-0x118], rax
+       mov      qword ptr [rbp-0x110], rdx
+       mov      eax, dword ptr [rbp-0x124]
+       jmp      G_M24386_IG13
+						;; size=91 bbWeight=1 PerfScore 19.75
+G_M24386_IG08:
+       mov      rdi, 0xD1FFAB1E      ; System.Buffers.ReadOnlySequenceSegment`1[ubyte]
+       mov      rdx, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS
+       call     [rdx]CORINFO_HELP_CHKCASTCLASS
+       mov      rdi, gword ptr [rax+0x18]
+       mov      ecx, dword ptr [rax+0x20]
+       mov      eax, dword ptr [rax+0x24]
+       mov      r8d, dword ptr [rbp-0x120]
+       mov      edx, dword ptr [rbp-0x11C]
+       sub      r8d, edx
+       mov      esi, edx
+       mov      r9d, r8d
+       add      rsi, r9
+       cmp      rsi, rax
+       ja       SHORT G_M24386_IG09
+       add      ecx, edx
+       mov      gword ptr [rbp-0x118], rdi
+       mov      dword ptr [rbp-0x110], ecx
+       mov      dword ptr [rbp-0x10C], r8d
+       mov      eax, dword ptr [rbp-0x124]
+       jmp      SHORT G_M24386_IG13
+						;; size=91 bbWeight=1 PerfScore 20.00
+G_M24386_IG09:
+       mov      edi, 33
+       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
+       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
+       int3     
+						;; size=18 bbWeight=1 PerfScore 3.75
+G_M24386_IG10:
+       xor      rdi, rdi
+       mov      gword ptr [rbp-0x118], rdi
+						;; size=9 bbWeight=1 PerfScore 1.25
+G_M24386_IG11:
+       mov      dword ptr [rbp-0x110], edi
+						;; size=6 bbWeight=1 PerfScore 1.00
+G_M24386_IG12:
+       mov      dword ptr [rbp-0x10C], edi
+						;; size=6 bbWeight=1 PerfScore 1.00
+G_M24386_IG13:
+       xor      rsi, rsi
+       xor      ecx, ecx
+       cmp      gword ptr [rbp-0x118], 0
+       je       SHORT G_M24386_IG16
+       mov      rdi, gword ptr [rbp-0x118]
+       mov      rdi, qword ptr [rdi]
+       test     dword ptr [rdi], 0xD1FFAB1E
+       jne      SHORT G_M24386_IG14
+       mov      rdi, gword ptr [rbp-0x118]
+       mov      rcx, gword ptr [rbp-0x118]
+       mov      rcx, qword ptr [rcx]
+       mov      rcx, qword ptr [rcx+0x40]
+       call     [rcx+0x28]System.Buffers.MemoryManager`1[ubyte]:GetSpan():System.Span`1[ubyte]:this
+       mov      rsi, rax
+       mov      ecx, edx
+       mov      eax, dword ptr [rbp-0x124]
+       jmp      SHORT G_M24386_IG15
+						;; size=69 bbWeight=1 PerfScore 23.00
+G_M24386_IG14:
+       mov      rsi, gword ptr [rbp-0x118]
+       add      rsi, 16
+       mov      rcx, gword ptr [rbp-0x118]
+       mov      ecx, dword ptr [rcx+0x08]
+						;; size=21 bbWeight=1 PerfScore 4.25
+G_M24386_IG15:
+       mov      edx, dword ptr [rbp-0x110]
+       and      edx, 0xD1FFAB1E
+       mov      edi, dword ptr [rbp-0x10C]
+       add      rdi, rdx
+       mov      ecx, ecx
+       cmp      rdi, rcx
+       ja       SHORT G_M24386_IG20
+       add      rsi, rdx
+       mov      ecx, dword ptr [rbp-0x10C]
+						;; size=37 bbWeight=1 PerfScore 5.25
+G_M24386_IG16:
+       cmp      ecx, eax
+       jg       SHORT G_M24386_IG19
+       jbe      SHORT G_M24386_IG17
+       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
+       call     [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort()
+       int3     
+						;; size=19 bbWeight=1 PerfScore 5.75
+G_M24386_IG17:
+       mov      edx, ecx
+       mov      rdi, r12
+       mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
+       call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
+						;; size=17 bbWeight=1 PerfScore 3.75
+G_M24386_IG18:
+       jmp      G_M24386_IG24
+						;; size=5 bbWeight=1 PerfScore 2.00
+G_M24386_IG19:
+       mov      edi, 6
+       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
+       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int)
+       int3     
+						;; size=18 bbWeight=1 PerfScore 3.75
+G_M24386_IG20:
+       mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
+       int3     
+						;; size=13 bbWeight=1 PerfScore 3.50
+G_M24386_IG21:
        mov      r13, bword ptr [rbx+0x98]
        mov      r12d, dword ptr [rbx+0xA0]
        test     r12d, r12d
-       je       SHORT G_M24386_IG06
+       je       SHORT G_M24386_IG22
        mov      esi, r12d
        mov      rdi, 0xD1FFAB1E      ; ubyte[]
        call     CORINFO_HELP_NEWARR_1_VC
-       mov      gword ptr [rbp-0x108], rax
+       mov      gword ptr [rbp-0x130], rax
        mov      edx, r12d
        lea      rdi, bword ptr [rax+0x10]
        mov      rsi, r13
        mov      rcx, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rcx]System.SpanHelpers:Memmove(byref,byref,ulong)
-       mov      r13, gword ptr [rbp-0x108]
-       jmp      SHORT G_M24386_IG08
+       mov      r13, gword ptr [rbp-0x130]
+       jmp      SHORT G_M24386_IG24
 						;; size=75 bbWeight=1 PerfScore 15.00
-G_M24386_IG06:
+G_M24386_IG22:
        mov      rdi, 0xD1FFAB1E      ; global ptr
        test     byte  ptr [rdi], 1
-       je       G_M24386_IG12
+       je       G_M24386_IG27
 						;; size=19 bbWeight=1 PerfScore 4.25
-G_M24386_IG07:
+G_M24386_IG23:
        mov      rdi, 0xD1FFAB1E      ; data for System.Array+EmptyArray`1[ubyte]:Value
        mov      r13, gword ptr [rdi]
 						;; size=13 bbWeight=1 PerfScore 2.25
-G_M24386_IG08:
-       mov      rax, r13
-						;; size=3 bbWeight=1 PerfScore 0.25
-G_M24386_IG09:
+G_M24386_IG24:
        lea      rdi, bword ptr [r14+0x08]
-       mov      rsi, rax
+       mov      rsi, r13
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
 						;; size=12 bbWeight=1 PerfScore 1.75
-G_M24386_IG10:
+G_M24386_IG25:
        vmovdqu32 zmm0, zmmword ptr [rbx]
        vmovdqu32 zmmword ptr [rbp-0x100], zmm0
        vmovdqu32 zmm0, zmmword ptr [rbx+0x40]
        vmovdqu32 zmmword ptr [rbp-0xC0], zmm0
        vmovdqu32 zmm0, zmmword ptr [rbx+0x80]
        vmovdqu32 zmmword ptr [rbp-0x80], zmm0
 						;; size=41 bbWeight=1 PerfScore 15.00
-G_M24386_IG11:
+G_M24386_IG26:
        lea      rdi, [rbp-0x100]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:GetString():System.String:this
        call     [rax]System.Text.Json.Utf8JsonReader:GetString():System.String:this
        mov      rbx, rax
        mov      edi, 0x18F5
        mov      rsi, 0xD1FFAB1E
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_STRCNS
        call     [rax]CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:GetResourceString(System.String):System.String
        call     [rax]System.SR:GetResourceString(System.String):System.String
        mov      r14, rax
        mov      edi, 0x192F
        mov      rsi, 0xD1FFAB1E
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_STRCNS
        call     [rax]CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:GetResourceString(System.String):System.String
        call     [rax]System.SR:GetResourceString(System.String):System.String
        mov      rdi, rax
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.SR:Format(System.String,System.Object):System.String
        call     [rax]System.SR:Format(System.String,System.Object):System.String
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_DeserializeUnableToConvertValue():System.String
        call     [rax]System.SR:get_DeserializeUnableToConvertValue():System.String
        mov      rdi, rax
        mov      rsi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.SR:Format(System.String,System.Object):System.String
        call     [rax]System.SR:Format(System.String,System.Object):System.String
        mov      rdx, rax
        mov      rdi, r14
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.SR:Format(System.String,System.Object,System.Object):System.String
        call     [rax]System.SR:Format(System.String,System.Object,System.Object):System.String
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowJsonException(System.String)
        call     [rax]System.Text.Json.ThrowHelper:ThrowJsonException(System.String)
        int3     
 						;; size=197 bbWeight=1 PerfScore 37.50
-G_M24386_IG12:
+G_M24386_IG27:
        mov      rdi, 0xD1FFAB1E      ; System.Array+EmptyArray`1[ubyte]
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_GET_GCSTATIC_BASE
        call     [rax]CORINFO_HELP_GET_GCSTATIC_BASE
-       jmp      G_M24386_IG07
+       jmp      G_M24386_IG23
 						;; size=27 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 510, prolog size 62, PerfScore 114.08, instruction count 102, allocated bytes for code 519 (MethodHash=8e15a0bd) for method System.Text.Json.ThrowHelper:ThrowJsonException_MetadataInvalidPropertyInArrayMetadata(byref,System.Type,byref) (FullOpts)
+; Total bytes of code 1131, prolog size 83, PerfScore 252.33, instruction count 236, allocated bytes for code 1140 (MethodHash=8e15a0bd) for method System.Text.Json.ThrowHelper:ThrowJsonException_MetadataInvalidPropertyInArrayMetadata(byref,System.Type,byref) (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/e6c04f5b8dc69ba9ffbc77e3f6e8af4d

@MihuBot
Copy link
Owner Author

MihuBot commented Apr 17, 2025

Top method improvements

-141 (-5.08 % of base) - System.Xml.Serialization.CodeGenerator:Ldc(System.Object):this
 ; Assembly listing for method System.Xml.Serialization.CodeGenerator:Ldc(System.Object):this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
-; 0 inlinees with PGO data; 29 single block inlinees; 10 inlinees without PGO data
+; 0 inlinees with PGO data; 33 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T06] ( 29, 13.25)     ref  ->  r15         this class-hnd single-def <System.Xml.Serialization.CodeGenerator>
-;  V01 arg1         [V01,T00] ( 47, 42.75)     ref  ->  rbx         class-hnd <System.Object>
+;  V00 this         [V00,T06] ( 25, 13.25)     ref  ->  r15         this class-hnd single-def <System.Xml.Serialization.CodeGenerator>
+;  V01 arg1         [V01,T00] ( 48, 43.25)     ref  ->  rbx         class-hnd <System.Object>
 ;  V02 loc0         [V02,T01] ( 10, 29.50)     ref  ->  r14         class-hnd exact <System.RuntimeType>
-;  V03 loc1         [V03,T36] (  2,  1   )     ref  ->  r13         class-hnd single-def <System.Reflection.ConstructorInfo>
-;  V04 loc2         [V04,T20] ( 11,  3.50)     ref  ->  rbx         class-hnd single-def <int[]>
-;  V05 loc3         [V05,T37] (  2,  1   )     ref  ->  r13         class-hnd single-def <System.Reflection.ConstructorInfo>
+;  V03 loc1         [V03,T37] (  2,  1   )     ref  ->  r13         class-hnd single-def <System.Reflection.ConstructorInfo>
+;* V04 loc2         [V04    ] (  0,  0   )    long  ->  zero-ref    class-hnd exact <int[]>
+;  V05 loc3         [V05,T38] (  2,  1   )     ref  ->  r13         class-hnd single-def <System.Reflection.ConstructorInfo>
 ;* V06 loc4         [V06    ] (  0,  0   )     int  ->  zero-ref   
 ;* V07 loc5         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.DateTime>
-;  V08 loc6         [V08,T38] (  2,  1   )     ref  ->  r13         class-hnd single-def <System.Reflection.ConstructorInfo>
+;  V08 loc6         [V08,T39] (  2,  1   )     ref  ->  r13         class-hnd single-def <System.Reflection.ConstructorInfo>
 ;* V09 loc7         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.TimeSpan>
-;  V10 loc8         [V10,T39] (  2,  1   )     ref  ->  r13         class-hnd single-def <System.Reflection.ConstructorInfo>
+;  V10 loc8         [V10,T40] (  2,  1   )     ref  ->  r13         class-hnd single-def <System.Reflection.ConstructorInfo>
 ;* V11 loc9         [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.DateTimeOffset>
 ;  V12 OutArgs      [V12    ] (  1,  1   )  struct (16) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
 ;  V13 tmp1         [V13,T22] (  5,  3   )     ref  ->  r14         class-hnd exact single-def "NewArr temp" <System.Type[]>
-;* V14 tmp2         [V14,T47] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
+;* V14 tmp2         [V14,T50] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;* V15 tmp3         [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-;  V16 tmp4         [V16,T19] (  9,  5   )     ref  ->  r14         class-hnd exact single-def "NewArr temp" <System.Type[]>
-;* V17 tmp5         [V17,T48] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
+;  V16 tmp4         [V16,T20] (  9,  5   )     ref  ->  r14         class-hnd exact single-def "NewArr temp" <System.Type[]>
+;* V17 tmp5         [V17,T51] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;* V18 tmp6         [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
 ;* V19 tmp7         [V19    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
 ;* V20 tmp8         [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
 ;* V21 tmp9         [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
 ;* V22 tmp10        [V22    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-;  V23 tmp11        [V23,T57] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.NotSupportedException>
-;  V24 tmp12        [V24,T59] (  2,  0   )     ref  ->  r15         class-hnd exact single-def "non-inline candidate call" <System.String>
-;  V25 tmp13        [V25,T58] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.NotSupportedException>
+;  V23 tmp11        [V23,T60] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.NotSupportedException>
+;  V24 tmp12        [V24,T62] (  2,  0   )     ref  ->  r15         class-hnd exact single-def "non-inline candidate call" <System.String>
+;  V25 tmp13        [V25,T61] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.NotSupportedException>
 ;  V26 tmp14        [V26,T21] (  6,  3.50)     ref  ->  r14         class-hnd exact single-def "NewArr temp" <System.Type[]>
-;* V27 tmp15        [V27,T49] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
+;* V27 tmp15        [V27,T52] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;* V28 tmp16        [V28    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
 ;* V29 tmp17        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
 ;  V30 tmp18        [V30,T25] (  3,  3   )     ref  ->  rax         class-hnd exact single-def "Single-def Box Helper" <System.TimeSpan>
 ;  V31 tmp19        [V31,T23] (  5,  3   )     ref  ->  r14         class-hnd exact single-def "NewArr temp" <System.Type[]>
-;* V32 tmp20        [V32,T50] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
+;* V32 tmp20        [V32,T53] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;* V33 tmp21        [V33    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
 ;  V34 tmp22        [V34,T24] (  5,  3   )     ref  ->  rbx         class-hnd exact single-def "NewArr temp" <System.Type[]>
-;* V35 tmp23        [V35,T51] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
+;* V35 tmp23        [V35,T54] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;* V36 tmp24        [V36    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Strict ordering of exceptions for Array store" <System.RuntimeType>
-;* V37 tmp25        [V37,T52] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V37 tmp25        [V37,T55] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V38 tmp26        [V38    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
 ;  V39 tmp27        [V39,T04] (  2, 16   )     ref  ->  rsi         class-hnd exact single-def "impAppendStmt" <System.RuntimeType>
 ;* V40 tmp28        [V40    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
 ;* V41 tmp29        [V41    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V42 tmp30        [V42,T32] (  3,  1.48)     int  ->  rax         "Inline return value spill temp"
+;  V42 tmp30        [V42,T34] (  3,  1.48)     int  ->  rax         "Inline return value spill temp"
 ;* V43 tmp31        [V43    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V44 tmp32        [V44    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <System.RuntimeType>
 ;* V45 tmp33        [V45    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Runtime.CompilerServices.TypeHandle>
 ;* V46 tmp34        [V46    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.RuntimeType>
 ;* V47 tmp35        [V47    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Runtime.CompilerServices.TypeHandle>
 ;* V48 tmp36        [V48    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V49 tmp37        [V49,T41] (  2,  1   )     int  ->  rsi         "Inline return value spill temp"
+;  V49 tmp37        [V49,T42] (  2,  1   )     int  ->  rsi         "Inline return value spill temp"
 ;* V50 tmp38        [V50    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Globalization.CultureInfo>
-;* V51 tmp39        [V51,T53] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V52 tmp40        [V52,T54] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V53 tmp41        [V53,T55] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V54 tmp42        [V54,T56] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;* V55 tmp43        [V55    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline stloc first use temp" <System.DateTime>
-;* V56 tmp44        [V56    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;* V57 tmp45        [V57    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.DateTime>
-;* V58 tmp46        [V58    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.TimeSpan>
-;* V59 tmp47        [V59    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V60 tmp48        [V60,T42] (  2,  1   )    long  ->  rsi         "field V07._dateData (fldOffset=0x0)" P-INDEP
-;  V61 tmp49        [V61,T43] (  2,  1   )    long  ->  rsi         "field V09._ticks (fldOffset=0x0)" P-INDEP
-;  V62 tmp50        [V62,T26] (  4,  2   )     int  ->  r14         "field V11._offsetMinutes (fldOffset=0x0)" P-INDEP
-;  V63 tmp51        [V63,T44] (  2,  1   )    long  ->  rsi         "field V11._dateTime (fldOffset=0x8)" P-INDEP
-;* V64 tmp52        [V64    ] (  0,  0   )    long  ->  zero-ref    "field V38.m_asTAddr (fldOffset=0x0)" P-INDEP
-;  V65 tmp53        [V65,T18] (  2,  8   )    long  ->  rdi         "field V40.m_asTAddr (fldOffset=0x0)" P-INDEP
-;* V66 tmp54        [V66    ] (  0,  0   )    long  ->  zero-ref    "field V45.m_asTAddr (fldOffset=0x0)" P-INDEP
-;* V67 tmp55        [V67    ] (  0,  0   )    long  ->  zero-ref    "field V47.m_asTAddr (fldOffset=0x0)" P-INDEP
-;* V68 tmp56        [V68    ] (  0,  0   )    long  ->  zero-ref    "field V55._dateData (fldOffset=0x0)" P-INDEP
-;  V69 tmp57        [V69,T45] (  2,  1   )    long  ->  rsi         "field V57._dateData (fldOffset=0x0)" P-INDEP
-;  V70 tmp58        [V70,T46] (  2,  1   )    long  ->  rbx         "field V58._ticks (fldOffset=0x0)" P-INDEP
-;  V71 tmp59        [V71,T02] (  3, 24   )     int  ->  rax         "index expr"
-;  V72 tmp60        [V72,T05] (  2, 16   )     ref  ->  rbx         single-def "argument with side effect"
-;  V73 tmp61        [V73,T29] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
-;  V74 tmp62        [V74,T30] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;  V75 tmp63        [V75,T60] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V76 tmp64        [V76,T61] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V77 tmp65        [V77,T62] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V78 tmp66        [V78,T40] (  2,  1   )     ref  ->  rbx         single-def "argument with side effect"
-;  V79 tmp67        [V79,T31] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
-;  V80 cse0         [V80,T17] (  2,  8   )     ref  ->  rdi         "CSE #01: moderate"
-;  V81 cse1         [V81,T03] ( 15, 22.50)     ref  ->  r13         multi-def "CSE #02: aggressive"
-;  V82 cse2         [V82,T33] (  5,  1   )     int  ->  r14         "CSE #17: moderate"
-;  V83 cse3         [V83,T34] (  4,  1   )     ref  ->  rdi         "CSE #15: conservative"
-;  V84 rat0         [V84,T07] (  4, 12.25)   byref  ->  r12         "Strength reduced derived IV"
-;  V85 rat1         [V85,T12] (  4, 12.25)     int  ->  [rbp-0x2C]  "Trip count IV"
-;  V86 rat2         [V86,T08] (  4, 12.25)   byref  ->  r12         "Strength reduced derived IV"
-;  V87 rat3         [V87,T13] (  4, 12.25)     int  ->  [rbp-0x30]  "Trip count IV"
-;  V88 rat4         [V88,T09] (  4, 12.25)   byref  ->  r12         "Strength reduced derived IV"
-;  V89 rat5         [V89,T14] (  4, 12.25)     int  ->  [rbp-0x34]  "Trip count IV"
-;  V90 rat6         [V90,T10] (  4, 12.25)   byref  ->  r12         "Strength reduced derived IV"
-;  V91 rat7         [V91,T15] (  4, 12.25)     int  ->  [rbp-0x38]  "Trip count IV"
-;  V92 rat8         [V92,T11] (  4, 12.25)   byref  ->  r14         "Strength reduced derived IV"
-;  V93 rat9         [V93,T16] (  4, 12.25)     int  ->  r12         "Trip count IV"
-;  V94 rat10        [V94,T28] (  3,  2   )     int  ->  rax         "Spilling to split statement for tree"
-;  V95 rat11        [V95,T27] (  3,  2   )     ref  ->  rsi         "replacement local"
-;  V96 rat12        [V96,T35] (  3,  1   )    long  ->  rdi         "CSE for expectedClsNode"
+;* V51 tmp39        [V51,T56] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;  V52 tmp40        [V52,T17] ( 10, 10   )    long  ->  rbx         class-hnd exact "NewArr temp" <int[]>
+;* V53 tmp41        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Decimal>
+;* V54 tmp42        [V54    ] (  0,  0   )     int  ->  zero-ref    "Strict ordering of exceptions for Array store"
+;* V55 tmp43        [V55    ] (  0,  0   )     int  ->  zero-ref    "Strict ordering of exceptions for Array store"
+;* V56 tmp44        [V56    ] (  0,  0   )     int  ->  zero-ref    "Strict ordering of exceptions for Array store"
+;* V57 tmp45        [V57,T57] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V58 tmp46        [V58,T58] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V59 tmp47        [V59,T59] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V60 tmp48        [V60    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline stloc first use temp" <System.DateTime>
+;* V61 tmp49        [V61    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;* V62 tmp50        [V62    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.DateTime>
+;* V63 tmp51        [V63    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.TimeSpan>
+;* V64 tmp52        [V64    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
+;  V65 tmp53        [V65    ] (  4,  2   )  struct (32) [rbp-0x48]  do-not-enreg[XS] addr-exposed "stack allocated array temp" <int[]>
+;  V66 tmp54        [V66,T43] (  2,  1   )    long  ->  rsi         "field V07._dateData (fldOffset=0x0)" P-INDEP
+;  V67 tmp55        [V67,T44] (  2,  1   )    long  ->  rsi         "field V09._ticks (fldOffset=0x0)" P-INDEP
+;  V68 tmp56        [V68,T27] (  4,  2   )     int  ->  r12         "field V11._offsetMinutes (fldOffset=0x0)" P-INDEP
+;  V69 tmp57        [V69,T45] (  2,  1   )    long  ->  rsi         "field V11._dateTime (fldOffset=0x8)" P-INDEP
+;* V70 tmp58        [V70    ] (  0,  0   )    long  ->  zero-ref    "field V38.m_asTAddr (fldOffset=0x0)" P-INDEP
+;  V71 tmp59        [V71,T19] (  2,  8   )    long  ->  rdi         "field V40.m_asTAddr (fldOffset=0x0)" P-INDEP
+;* V72 tmp60        [V72    ] (  0,  0   )    long  ->  zero-ref    "field V45.m_asTAddr (fldOffset=0x0)" P-INDEP
+;* V73 tmp61        [V73    ] (  0,  0   )    long  ->  zero-ref    "field V47.m_asTAddr (fldOffset=0x0)" P-INDEP
+;  V74 tmp62        [V74,T46] (  2,  1   )     int  ->  rsi         "field V53._flags (fldOffset=0x0)" P-INDEP
+;  V75 tmp63        [V75,T47] (  2,  1   )     int  ->  rdi         "field V53._hi32 (fldOffset=0x4)" P-INDEP
+;  V76 tmp64        [V76,T33] (  3,  1.50)    long  ->  rax         "field V53._lo64 (fldOffset=0x8)" P-INDEP
+;* V77 tmp65        [V77    ] (  0,  0   )    long  ->  zero-ref    "field V60._dateData (fldOffset=0x0)" P-INDEP
+;  V78 tmp66        [V78,T48] (  2,  1   )    long  ->  rsi         "field V62._dateData (fldOffset=0x0)" P-INDEP
+;  V79 tmp67        [V79,T49] (  2,  1   )    long  ->  rbx         "field V63._ticks (fldOffset=0x0)" P-INDEP
+;  V80 tmp68        [V80,T02] (  3, 24   )     int  ->  rax         "index expr"
+;  V81 tmp69        [V81,T05] (  2, 16   )     ref  ->  rbx         single-def "argument with side effect"
+;  V82 tmp70        [V82,T29] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
+;  V83 tmp71        [V83,T30] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
+;  V84 tmp72        [V84,T63] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
+;  V85 tmp73        [V85,T64] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
+;  V86 tmp74        [V86,T65] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
+;  V87 tmp75        [V87,T41] (  2,  1   )     ref  ->  rbx         single-def "argument with side effect"
+;  V88 tmp76        [V88,T31] (  2,  2   )     ref  ->  rsi         single-def "argument with side effect"
+;  V89 cse0         [V89,T18] (  2,  8   )     ref  ->  rdi         "CSE #01: moderate"
+;  V90 cse1         [V90,T03] ( 15, 22.50)     ref  ->  r13         multi-def "CSE #02: aggressive"
+;  V91 cse2         [V91,T35] (  4,  1   )     ref  ->  rdi         "CSE #15: moderate"
+;  V92 cse3         [V92,T32] (  3,  1.25)     ref  ->  r13         "CSE #18: moderate"
+;  V93 cse4         [V93,T26] (  5,  2   )    long  ->  r14         "CSE #22: moderate"
+;  V94 rat0         [V94,T07] (  4, 12.25)   byref  ->  r12         "Strength reduced derived IV"
+;  V95 rat1         [V95,T12] (  4, 12.25)     int  ->  [rbp-0x4C]  "Trip count IV"
+;  V96 rat2         [V96,T08] (  4, 12.25)   byref  ->  r12         "Strength reduced derived IV"
+;  V97 rat3         [V97,T13] (  4, 12.25)     int  ->  [rbp-0x50]  "Trip count IV"
+;  V98 rat4         [V98,T09] (  4, 12.25)   byref  ->  r12         "Strength reduced derived IV"
+;  V99 rat5         [V99,T14] (  4, 12.25)     int  ->  [rbp-0x54]  "Trip count IV"
+;  V100 rat6        [V100,T10] (  4, 12.25)   byref  ->  r12         "Strength reduced derived IV"
+;  V101 rat7        [V101,T15] (  4, 12.25)     int  ->  [rbp-0x58]  "Trip count IV"
+;  V102 rat8        [V102,T11] (  4, 12.25)   byref  ->  r14         "Strength reduced derived IV"
+;  V103 rat9        [V103,T16] (  4, 12.25)     int  ->  r12         "Trip count IV"
+;  V104 rat10       [V104,T28] (  3,  2   )     ref  ->  rsi         "replacement local"
+;  V105 rat11       [V105,T36] (  3,  1   )    long  ->  rdi         "CSE for expectedClsNode"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 72
 
 G_M59274_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 40
-       lea      rbp, [rsp+0x50]
+       sub      rsp, 72
+       lea      rbp, [rsp+0x70]
        mov      r15, rdi
        mov      rbx, rsi
 						;; size=25 bbWeight=1 PerfScore 7.25
 G_M59274_IG02:
        jmp      SHORT G_M59274_IG04
 						;; size=2 bbWeight=1 PerfScore 2.00
 G_M59274_IG03:
        mov      rdi, qword ptr [r14+0x18]
        call     System.Runtime.CompilerServices.MethodTable:GetPrimitiveCorElementType():ubyte:this
        mov      rdi, 0xD1FFAB1E      ; const ptr
        mov      rdi, gword ptr [rdi]
        cmp      eax, 26
-       jae      G_M59274_IG75
+       jae      G_M59274_IG73
        mov      esi, eax
        mov      rsi, gword ptr [rdi+8*rsi+0x10]
        mov      rdi, rbx
        xor      rdx, rdx
        mov      rax, 0xD1FFAB1E      ; code for System.Convert:ChangeType(System.Object,System.Type,System.IFormatProvider):System.Object
        call     [rax]System.Convert:ChangeType(System.Object,System.Type,System.IFormatProvider):System.Object
        mov      rbx, rax
 						;; size=58 bbWeight=4 PerfScore 51.00
 G_M59274_IG04:
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Object:GetType():System.Type:this
        call     [rax]System.Object:GetType():System.Type:this
        mov      r14, rax
        mov      rsi, rbx
        mov      rdi, 0xD1FFAB1E      ; System.Type
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        test     rax, rax
        jne      SHORT G_M59274_IG07
 						;; size=48 bbWeight=8 PerfScore 70.00
 G_M59274_IG05:
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:get_IsEnum():ubyte:this
        call     [rax]System.RuntimeType:get_IsEnum():ubyte:this
        test     eax, eax
        je       G_M59274_IG11
        mov      rdi, r14
        mov      rsi, 0xD1FFAB1E      ; 'enumType'
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:get_IsActualEnum():ubyte:this
        call     [rax]System.RuntimeType:get_IsActualEnum():ubyte:this
        test     eax, eax
        jne      G_M59274_IG03
 						;; size=71 bbWeight=4 PerfScore 53.00
 G_M59274_IG06:
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:ThrowMustBeEnum()
        call     [rax]System.RuntimeType:ThrowMustBeEnum()
        int3     
 						;; size=13 bbWeight=0.50 PerfScore 1.75
 G_M59274_IG07:
        mov      rsi, rbx
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:Ldtoken(System.Type):this
        call     [rax]System.Xml.Serialization.CodeGenerator:Ldtoken(System.Type):this
        mov      rdi, 0xD1FFAB1E      ; System.Type[]
        mov      esi, 1
        call     CORINFO_HELP_NEWARR_1_OBJ
        mov      rbx, rax
        mov      rdi, 0xD1FFAB1E      ; 'System.RuntimeTypeHandle'
        mov      gword ptr [rbx+0x10], rdi
        mov      rdi, 0xD1FFAB1E      ; 'GetTypeFromHandle'
        mov      rsi, 0xD1FFAB1E      ; 'name'
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        mov      rdi, rbx
        mov      r13, 0xD1FFAB1E      ; 'types'
        mov      rsi, r13
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        lea      r14, bword ptr [rbx+0x10]
        mov      r12d, 1
 						;; size=125 bbWeight=0.25 PerfScore 3.81
 G_M59274_IG08:
        mov      rdi, gword ptr [r14]
        mov      rsi, r13
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        add      r14, 8
        dec      r12d
        jne      SHORT G_M59274_IG08
 						;; size=27 bbWeight=4 PerfScore 28.00
 G_M59274_IG09:
        mov      gword ptr [rsp], rbx
        xor      rdi, rdi
        mov      gword ptr [rsp+0x08], rdi
        mov      rdi, 0xD1FFAB1E      ; 'System.Type'
        mov      rsi, 0xD1FFAB1E      ; 'GetTypeFromHandle'
        mov      edx, -1
        mov      ecx, 24
        xor      r8, r8
        mov      r9d, 3
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this
        call     [rax]System.RuntimeType:GetMethodImplCommon(System.String,int,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this
        mov      rsi, rax
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:Call(System.Reflection.MethodInfo):this
 						;; size=78 bbWeight=0.50 PerfScore 3.88
 G_M59274_IG10:
-       add      rsp, 40
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax]System.Xml.Serialization.CodeGenerator:Call(System.Reflection.MethodInfo):this
 						;; size=17 bbWeight=0.50 PerfScore 2.62
 G_M59274_IG11:
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetTypeCodeImpl():int:this
        call     [rax]System.RuntimeType:GetTypeCodeImpl():int:this
        cmp      eax, 18
        ja       G_M59274_IG19
 						;; size=24 bbWeight=0.50 PerfScore 2.38
 G_M59274_IG12:
        mov      esi, eax
        lea      rdi, [reloc @RWD00]
        mov      edi, dword ptr [rdi+4*rsi]
        lea      rax, G_M59274_IG02
        add      rdi, rax
        jmp      rdi
 						;; size=24 bbWeight=0.47 PerfScore 2.85
 G_M59274_IG13:
        mov      rsi, rbx
        mov      rdi, 0xD1FFAB1E      ; System.IConvertible
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTINTERFACE
        call     [rax]CORINFO_HELP_CHKCASTINTERFACE
        mov      rdi, rax
        mov      rsi, 0xD1FFAB1E      ; const ptr
        mov      rsi, gword ptr [rsi]
        mov      r11, 0xD1FFAB1E      ; code for System.IConvertible:ToInt32(System.IFormatProvider):int:this
        call     [r11]System.IConvertible:ToInt32(System.IFormatProvider):int:this
        mov      esi, eax
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:Ldc(int):this
 						;; size=69 bbWeight=0.50 PerfScore 5.12
 G_M59274_IG14:
-       add      rsp, 40
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax]System.Xml.Serialization.CodeGenerator:Ldc(int):this
 						;; size=17 bbWeight=0.50 PerfScore 2.62
 G_M59274_IG15:
        mov      rsi, 0xD1FFAB1E      ; System.Boolean
        cmp      qword ptr [rbx], rsi
        je       SHORT G_M59274_IG17
 						;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M59274_IG16:
        mov      rsi, rbx
        mov      rdi, 0xD1FFAB1E      ; System.Boolean
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_UNBOX
        call     [rax]CORINFO_HELP_UNBOX
 						;; size=25 bbWeight=0.25 PerfScore 0.94
 G_M59274_IG17:
        movzx    rsi, byte  ptr [rbx+0x08]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:Ldc(ubyte):this
 						;; size=18 bbWeight=0.50 PerfScore 1.25
 G_M59274_IG18:
-       add      rsp, 40
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax]System.Xml.Serialization.CodeGenerator:Ldc(ubyte):this
 						;; size=17 bbWeight=0.50 PerfScore 2.62
 G_M59274_IG19:
-       mov      rdi, 0xD1FFAB1E      ; 'System.TimeSpan'
-       cmp      r14, rdi
+       mov      r13, 0xD1FFAB1E      ; 'System.TimeSpan'
+       cmp      r14, r13
        je       G_M59274_IG28
        mov      rdi, 0xD1FFAB1E      ; 'System.DateTimeOffset'
        cmp      r14, rdi
-       jne      G_M59274_IG74
+       jne      G_M59274_IG72
 						;; size=38 bbWeight=0.50 PerfScore 1.50
 G_M59274_IG20:
        mov      rdi, 0xD1FFAB1E      ; System.Type[]
        mov      esi, 2
        call     CORINFO_HELP_NEWARR_1_OBJ
        mov      r14, rax
        mov      rdi, 0xD1FFAB1E      ; 'System.Int64'
        mov      gword ptr [r14+0x10], rdi
-       mov      rdi, 0xD1FFAB1E      ; 'System.TimeSpan'
-       mov      gword ptr [r14+0x18], rdi
+       mov      gword ptr [r14+0x18], r13
        mov      rdi, r14
        mov      r13, 0xD1FFAB1E      ; 'types'
        mov      rsi, r13
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        lea      r12, bword ptr [r14+0x10]
-       mov      dword ptr [rbp-0x34], 2
-						;; size=90 bbWeight=0.25 PerfScore 2.44
+       mov      dword ptr [rbp-0x54], 2
+						;; size=80 bbWeight=0.25 PerfScore 2.38
 G_M59274_IG21:
        mov      rdi, gword ptr [r12]
        mov      rsi, r13
        mov      rcx, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        call     [rcx]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        add      r12, 8
-       mov      eax, dword ptr [rbp-0x34]
+       mov      eax, dword ptr [rbp-0x54]
        dec      eax
-       mov      dword ptr [rbp-0x34], eax
+       mov      dword ptr [rbp-0x54], eax
        jne      SHORT G_M59274_IG21
 						;; size=33 bbWeight=4 PerfScore 36.00
 G_M59274_IG22:
        mov      rdi, 0xD1FFAB1E      ; 'System.DateTimeOffset'
        mov      r8, r14
        mov      esi, 52
        xor      rdx, rdx
        mov      ecx, 3
        xor      r9, r9
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this
        call     [rax]System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this
        mov      r13, rax
-       mov      rsi, 0xD1FFAB1E      ; System.DateTimeOffset
-       cmp      qword ptr [rbx], rsi
+       mov      r14, 0xD1FFAB1E      ; System.DateTimeOffset
+       cmp      qword ptr [rbx], r14
        je       SHORT G_M59274_IG24
 						;; size=58 bbWeight=0.50 PerfScore 4.62
 G_M59274_IG23:
        mov      rsi, rbx
-       mov      rdi, 0xD1FFAB1E      ; System.DateTimeOffset
+       mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_UNBOX
        call     [rax]CORINFO_HELP_UNBOX
-						;; size=25 bbWeight=0.25 PerfScore 0.94
+						;; size=18 bbWeight=0.25 PerfScore 0.94
 G_M59274_IG24:
-       mov      r14d, dword ptr [rbx+0x08]
+       mov      r12d, dword ptr [rbx+0x08]
        mov      rsi, qword ptr [rbx+0x10]
-       movsxd   rdi, r14d
+       movsxd   rdi, r12d
        imul     rdi, rdi, 0xD1FFAB1E
        add      rsi, rdi
        mov      rdi, 0xD1FFAB1E
        and      rsi, rdi
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:Ldc(long):this
        call     [rax]System.Xml.Serialization.CodeGenerator:Ldc(long):this
-       mov      rsi, 0xD1FFAB1E      ; System.DateTimeOffset
-       cmp      qword ptr [rbx], rsi
+       cmp      qword ptr [rbx], r14
        je       SHORT G_M59274_IG26
-						;; size=64 bbWeight=0.50 PerfScore 7.38
+						;; size=54 bbWeight=0.50 PerfScore 7.25
 G_M59274_IG25:
        mov      rsi, rbx
-       mov      rdi, 0xD1FFAB1E      ; System.DateTimeOffset
+       mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_UNBOX
        call     [rax]CORINFO_HELP_UNBOX
-						;; size=25 bbWeight=0.25 PerfScore 0.94
+						;; size=18 bbWeight=0.25 PerfScore 0.94
 G_M59274_IG26:
-       mov      r14d, dword ptr [rbx+0x08]
-       movsxd   rdi, r14d
+       mov      r12d, dword ptr [rbx+0x08]
+       movsxd   rdi, r12d
        imul     rbx, rdi, 0xD1FFAB1E
        mov      rdi, 0xD1FFAB1E      ; System.TimeSpan
        call     CORINFO_HELP_NEWSFAST
        mov      qword ptr [rax+0x08], rbx
        mov      rsi, rax
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:Ldc(System.Object):this
        call     [rax]System.Xml.Serialization.CodeGenerator:Ldc(System.Object):this
        mov      rdi, r15
        mov      rsi, r13
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:New(System.Reflection.ConstructorInfo):this
 						;; size=67 bbWeight=0.50 PerfScore 5.50
 G_M59274_IG27:
-       add      rsp, 40
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax]System.Xml.Serialization.CodeGenerator:New(System.Reflection.ConstructorInfo):this
 						;; size=17 bbWeight=0.50 PerfScore 2.62
 G_M59274_IG28:
        mov      rdi, 0xD1FFAB1E      ; System.Type[]
        mov      esi, 1
        call     CORINFO_HELP_NEWARR_1_OBJ
        mov      r14, rax
        mov      rdi, 0xD1FFAB1E      ; 'System.Int64'
        mov      gword ptr [r14+0x10], rdi
        mov      rdi, r14
        mov      r13, 0xD1FFAB1E      ; 'types'
        mov      rsi, r13
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        lea      r12, bword ptr [r14+0x10]
-       mov      dword ptr [rbp-0x38], 1
+       mov      dword ptr [rbp-0x58], 1
 						;; size=76 bbWeight=0.25 PerfScore 2.12
 G_M59274_IG29:
        mov      rdi, gword ptr [r12]
        mov      rsi, r13
        mov      rcx, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        call     [rcx]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        add      r12, 8
-       mov      eax, dword ptr [rbp-0x38]
+       mov      eax, dword ptr [rbp-0x58]
        dec      eax
-       mov      dword ptr [rbp-0x38], eax
+       mov      dword ptr [rbp-0x58], eax
        jne      SHORT G_M59274_IG29
 						;; size=33 bbWeight=4 PerfScore 36.00
 G_M59274_IG30:
        mov      rdi, 0xD1FFAB1E      ; 'System.TimeSpan'
        mov      r8, r14
        mov      esi, 52
        xor      rdx, rdx
        mov      ecx, 3
        xor      r9, r9
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this
        call     [rax]System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this
        mov      r13, rax
        mov      rsi, 0xD1FFAB1E      ; System.TimeSpan
        cmp      qword ptr [rbx], rsi
        je       SHORT G_M59274_IG32
 						;; size=58 bbWeight=0.50 PerfScore 4.62
 G_M59274_IG31:
        mov      rsi, rbx
        mov      rdi, 0xD1FFAB1E      ; System.TimeSpan
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_UNBOX
        call     [rax]CORINFO_HELP_UNBOX
 						;; size=25 bbWeight=0.25 PerfScore 0.94
 G_M59274_IG32:
        mov      rsi, qword ptr [rbx+0x08]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:Ldc(long):this
        call     [rax]System.Xml.Serialization.CodeGenerator:Ldc(long):this
        mov      rdi, r15
        mov      rsi, r13
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:New(System.Reflection.ConstructorInfo):this
 						;; size=35 bbWeight=0.50 PerfScore 3.12
 G_M59274_IG33:
-       add      rsp, 40
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax]System.Xml.Serialization.CodeGenerator:New(System.Reflection.ConstructorInfo):this
 						;; size=17 bbWeight=0.50 PerfScore 2.62
 G_M59274_IG34:
        mov      rsi, rbx
        mov      rdi, 0xD1FFAB1E      ; System.String
        cmp      qword ptr [rsi], rdi
-       jne      G_M59274_IG72
+       jne      G_M59274_IG71
 						;; size=22 bbWeight=0.25 PerfScore 1.12
 G_M59274_IG35:
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:Ldstr(System.String):this
 						;; size=13 bbWeight=0.50 PerfScore 0.25
 G_M59274_IG36:
-       add      rsp, 40
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax]System.Xml.Serialization.CodeGenerator:Ldstr(System.String):this
 						;; size=17 bbWeight=0.50 PerfScore 2.62
 G_M59274_IG37:
        mov      rdi, 0xD1FFAB1E      ; System.Type[]
        mov      esi, 1
        call     CORINFO_HELP_NEWARR_1_OBJ
        mov      r14, rax
        mov      rdi, 0xD1FFAB1E      ; 'System.Int64'
        mov      gword ptr [r14+0x10], rdi
        mov      rdi, r14
        mov      r13, 0xD1FFAB1E      ; 'types'
        mov      rsi, r13
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        lea      r12, bword ptr [r14+0x10]
-       mov      dword ptr [rbp-0x2C], 1
+       mov      dword ptr [rbp-0x4C], 1
 						;; size=76 bbWeight=0.25 PerfScore 2.12
 G_M59274_IG38:
        mov      rdi, gword ptr [r12]
        mov      rsi, r13
        mov      rcx, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        call     [rcx]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        add      r12, 8
-       mov      eax, dword ptr [rbp-0x2C]
+       mov      eax, dword ptr [rbp-0x4C]
        dec      eax
-       mov      dword ptr [rbp-0x2C], eax
+       mov      dword ptr [rbp-0x4C], eax
        jne      SHORT G_M59274_IG38
 						;; size=33 bbWeight=4 PerfScore 36.00
 G_M59274_IG39:
        mov      rdi, 0xD1FFAB1E      ; 'System.DateTime'
        mov      r8, r14
        mov      esi, 52
        xor      rdx, rdx
        mov      ecx, 3
        xor      r9, r9
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this
        call     [rax]System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this
        mov      r13, rax
        mov      rsi, 0xD1FFAB1E      ; System.DateTime
        cmp      qword ptr [rbx], rsi
        je       SHORT G_M59274_IG41
 						;; size=58 bbWeight=0.50 PerfScore 4.62
 G_M59274_IG40:
        mov      rsi, rbx
        mov      rdi, 0xD1FFAB1E      ; System.DateTime
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_UNBOX
        call     [rax]CORINFO_HELP_UNBOX
 						;; size=25 bbWeight=0.25 PerfScore 0.94
 G_M59274_IG41:
        mov      rsi, qword ptr [rbx+0x08]
        mov      rdi, 0xD1FFAB1E
        and      rsi, rdi
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:Ldc(long):this
        call     [rax]System.Xml.Serialization.CodeGenerator:Ldc(long):this
        mov      rdi, r15
        mov      rsi, r13
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:New(System.Reflection.ConstructorInfo):this
 						;; size=48 bbWeight=0.50 PerfScore 3.38
 G_M59274_IG42:
-       add      rsp, 40
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax]System.Xml.Serialization.CodeGenerator:New(System.Reflection.ConstructorInfo):this
 						;; size=17 bbWeight=0.50 PerfScore 2.62
 G_M59274_IG43:
        mov      rdi, 0xD1FFAB1E      ; System.Type[]
        mov      esi, 5
        call     CORINFO_HELP_NEWARR_1_OBJ
        mov      r14, rax
        mov      rdi, 0xD1FFAB1E      ; 'System.Int32'
        mov      gword ptr [r14+0x10], rdi
        mov      gword ptr [r14+0x18], rdi
        mov      gword ptr [r14+0x20], rdi
        mov      rdi, 0xD1FFAB1E      ; 'System.Boolean'
        mov      gword ptr [r14+0x28], rdi
        mov      rdi, 0xD1FFAB1E      ; 'System.Byte'
        mov      gword ptr [r14+0x30], rdi
        mov      rdi, r14
        mov      r13, 0xD1FFAB1E      ; 'types'
        mov      rsi, r13
        mov      rax, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        call     [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        lea      r12, bword ptr [r14+0x10]
-       mov      dword ptr [rbp-0x30], 5
+       mov      dword ptr [rbp-0x50], 5
 						;; size=112 bbWeight=0.25 PerfScore 3.25
 G_M59274_IG44:
        mov      rdi, gword ptr [r12]
        mov      rsi, r13
        mov      rcx, 0xD1FFAB1E      ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        call     [rcx]System.ArgumentNullException:ThrowIfNull(System.Object,System.String)
        add      r12, 8
-       mov      eax, dword ptr [rbp-0x30]
+       mov      eax, dword ptr [rbp-0x50]
        dec      eax
-       mov      dword ptr [rbp-0x30], eax
+       mov      dword ptr [rbp-0x50], eax
        jne      SHORT G_M59274_IG44
 						;; size=33 bbWeight=4 PerfScore 36.00
 G_M59274_IG45:
        mov      rdi, 0xD1FFAB1E      ; 'System.Decimal'
        mov      r8, r14
        mov      esi, 52
        xor      rdx, rdx
        mov      ecx, 3
        xor      r9, r9
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this
        call     [rax]System.RuntimeType:GetConstructorImpl(int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.ConstructorInfo:this
        mov      r13, rax
        mov      rsi, 0xD1FFAB1E      ; System.Decimal
        cmp      qword ptr [rbx], rsi
        je       SHORT G_M59274_IG47
 						;; size=58 bbWeight=0.50 PerfScore 4.62
 G_M59274_IG46:
        mov      rsi, rbx
        mov      rdi, 0xD1FFAB1E      ; System.Decimal
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_UNBOX
        call     [rax]CORINFO_HELP_UNBOX
 						;; size=25 bbWeight=0.25 PerfScore 0.94
 G_M59274_IG47:
-       mov      rdi, qword ptr [rbx+0x08]
-       mov      rsi, qword ptr [rbx+0x10]
-       mov      rax, 0xD1FFAB1E      ; code for System.Decimal:GetBits(System.Decimal):int[]
-       call     [rax]System.Decimal:GetBits(System.Decimal):int[]
-       mov      rbx, rax
-       mov      r14d, dword ptr [rbx+0x08]
-       mov      eax, r14d
-       cmp      eax, 3
-       jle      G_M59274_IG73
+       mov      esi, dword ptr [rbx+0x08]
+       mov      edi, dword ptr [rbx+0x0C]
+       mov      rax, qword ptr [rbx+0x10]
+       vxorps   ymm0, ymm0, ymm0
+       vmovdqu  ymmword ptr [rbp-0x48], ymm0
+       mov      rcx, 0xD1FFAB1E      ; int[]
+       mov      qword ptr [rbp-0x48], rcx
+       lea      rcx, [rbp-0x48]
+       mov      dword ptr [rcx+0x08], 4
+       lea      rbx, [rbp-0x48]
+       mov      dword ptr [rbx+0x10], eax
+       shr      rax, 32
+       mov      dword ptr [rbx+0x14], eax
+       mov      dword ptr [rbx+0x18], edi
+       mov      dword ptr [rbx+0x1C], esi
        mov      esi, dword ptr [rbx+0x10]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:Ldc(int):this
        call     [rax]System.Xml.Serialization.CodeGenerator:Ldc(int):this
        mov      esi, dword ptr [rbx+0x14]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:Ldc(int):this
        call     [rax]System.Xml.Serialization.CodeGenerator:Ldc(int):this
        mov      esi, dword ptr [rbx+0x18]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:Ldc(int):this
        call     [rax]System.Xml.Serialization.CodeGenerator:Ldc(int):this
        movsxd   rsi, dword ptr [rbx+0x1C]
        mov      edi, 0xD1FFAB1E
        test     rsi, rdi
        setne    sil
        movzx    rsi, sil
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:Ldc(ubyte):this
        call     [rax]System.Xml.Serialization.CodeGenerator:Ldc(ubyte):this
-						;; size=128 bbWeight=0.50 PerfScore 18.38
-G_M59274_IG48:
        mov      esi, dword ptr [rbx+0x1C]
        sar      esi, 16
        movzx    rsi, sil
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:Ldc(int):this
        call     [rax]System.Xml.Serialization.CodeGenerator:Ldc(int):this
        mov      rdi, r15
        mov      rsi, r13
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:New(System.Reflection.ConstructorInfo):this
-						;; size=41 bbWeight=0.50 PerfScore 3.50
-G_M59274_IG49:
-       add      rsp, 40
+						;; size=194 bbWeight=0.50 PerfScore 23.92
+G_M59274_IG48:
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax]System.Xml.Serialization.CodeGenerator:New(System.Reflection.ConstructorInfo):this
 						;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M59274_IG50:
+G_M59274_IG49:
        mov      rsi, 0xD1FFAB1E      ; System.Double
        cmp      qword ptr [rbx], rsi
-       je       SHORT G_M59274_IG52
+       je       SHORT G_M59274_IG51
 						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M59274_IG51:
+G_M59274_IG50:
        mov      rsi, rbx
        mov      rdi, 0xD1FFAB1E      ; System.Double
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_UNBOX
        call     [rax]CORINFO_HELP_UNBOX
 						;; size=25 bbWeight=0.25 PerfScore 0.94
-G_M59274_IG52:
+G_M59274_IG51:
        vmovsd   xmm0, qword ptr [rbx+0x08]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:Ldc(double):this
 						;; size=18 bbWeight=0.50 PerfScore 2.25
-G_M59274_IG53:
-       add      rsp, 40
+G_M59274_IG52:
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax]System.Xml.Serialization.CodeGenerator:Ldc(double):this
 						;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M59274_IG54:
+G_M59274_IG53:
        mov      rsi, 0xD1FFAB1E      ; System.Single
        cmp      qword ptr [rbx], rsi
-       je       SHORT G_M59274_IG56
+       je       SHORT G_M59274_IG55
 						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M59274_IG55:
+G_M59274_IG54:
        mov      rsi, rbx
        mov      rdi, 0xD1FFAB1E      ; System.Single
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_UNBOX
        call     [rax]CORINFO_HELP_UNBOX
 						;; size=25 bbWeight=0.25 PerfScore 0.94
-G_M59274_IG56:
+G_M59274_IG55:
        vmovss   xmm0, dword ptr [rbx+0x08]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:Ldc(float):this
 						;; size=18 bbWeight=0.50 PerfScore 2.25
-G_M59274_IG57:
-       add      rsp, 40
+G_M59274_IG56:
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax]System.Xml.Serialization.CodeGenerator:Ldc(float):this
 						;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M59274_IG58:
+G_M59274_IG57:
        mov      rsi, 0xD1FFAB1E      ; System.UInt64
        cmp      qword ptr [rbx], rsi
-       je       SHORT G_M59274_IG61
+       je       SHORT G_M59274_IG60
 						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M59274_IG59:
+G_M59274_IG58:
        mov      rsi, rbx
        mov      rdi, 0xD1FFAB1E      ; System.UInt64
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_UNBOX
        call     [rax]CORINFO_HELP_UNBOX
-       jmp      SHORT G_M59274_IG61
+       jmp      SHORT G_M59274_IG60
 						;; size=27 bbWeight=0.25 PerfScore 1.44
-G_M59274_IG60:
+G_M59274_IG59:
        mov      rsi, 0xD1FFAB1E      ; System.Int64
        cmp      qword ptr [rbx], rsi
-       je       SHORT G_M59274_IG61
+       je       SHORT G_M59274_IG60
        mov      rsi, rbx
        mov      rdi, 0xD1FFAB1E      ; System.Int64
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_UNBOX
        call     [rax]CORINFO_HELP_UNBOX
 						;; size=40 bbWeight=0.50 PerfScore 4.00
-G_M59274_IG61:
+G_M59274_IG60:
        mov      rsi, qword ptr [rbx+0x08]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:Ldc(long):this
 						;; size=17 bbWeight=0.50 PerfScore 1.25
-G_M59274_IG62:
-       add      rsp, 40
+G_M59274_IG61:
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax]System.Xml.Serialization.CodeGenerator:Ldc(long):this
 						;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M59274_IG63:
+G_M59274_IG62:
        mov      rsi, 0xD1FFAB1E      ; System.UInt32
        cmp      qword ptr [rbx], rsi
-       je       SHORT G_M59274_IG65
+       je       SHORT G_M59274_IG64
 						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M59274_IG64:
+G_M59274_IG63:
        mov      rsi, rbx
        mov      rdi, 0xD1FFAB1E      ; System.UInt32
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_UNBOX
        call     [rax]CORINFO_HELP_UNBOX
 						;; size=25 bbWeight=0.25 PerfScore 0.94
-G_M59274_IG65:
+G_M59274_IG64:
        mov      esi, dword ptr [rbx+0x08]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:Ldc(int):this
 						;; size=16 bbWeight=0.50 PerfScore 1.25
-G_M59274_IG66:
-       add      rsp, 40
+G_M59274_IG65:
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax]System.Xml.Serialization.CodeGenerator:Ldc(int):this
 						;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M59274_IG67:
+G_M59274_IG66:
        mov      rsi, 0xD1FFAB1E      ; System.Int32
        cmp      qword ptr [rbx], rsi
-       je       SHORT G_M59274_IG69
+       je       SHORT G_M59274_IG68
 						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M59274_IG68:
+G_M59274_IG67:
        mov      rsi, rbx
        mov      rdi, 0xD1FFAB1E      ; System.Int32
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_UNBOX
        call     [rax]CORINFO_HELP_UNBOX
 						;; size=25 bbWeight=0.25 PerfScore 0.94
-G_M59274_IG69:
+G_M59274_IG68:
        mov      esi, dword ptr [rbx+0x08]
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:Ldc(int):this
 						;; size=16 bbWeight=0.50 PerfScore 1.25
-G_M59274_IG70:
-       add      rsp, 40
+G_M59274_IG69:
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        tail.jmp [rax]System.Xml.Serialization.CodeGenerator:Ldc(int):this
 						;; size=17 bbWeight=0.50 PerfScore 2.62
-G_M59274_IG71:
+G_M59274_IG70:
        mov      rdi, 0xD1FFAB1E      ; System.NotSupportedException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_XmlInvalidCharSchemaPrimitive():System.String
        call     [rax]System.SR:get_XmlInvalidCharSchemaPrimitive():System.String
        mov      rsi, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.NotSupportedException:.ctor(System.String):this
        call     [rax]System.NotSupportedException:.ctor(System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=57 bbWeight=0 PerfScore 0.00
-G_M59274_IG72:
+G_M59274_IG71:
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS
        call     [rax]CORINFO_HELP_CHKCASTCLASS
        int3     
 						;; size=16 bbWeight=0 PerfScore 0.00
-G_M59274_IG73:
-       test     eax, eax
-       je       G_M59274_IG75
-       mov      esi, dword ptr [rbx+0x10]
-       mov      rdi, r15
-       mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:Ldc(int):this
-       call     [rax]System.Xml.Serialization.CodeGenerator:Ldc(int):this
-       cmp      r14d, 1
-       jbe      G_M59274_IG75
-       mov      esi, dword ptr [rbx+0x14]
-       mov      rdi, r15
-       mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:Ldc(int):this
-       call     [rax]System.Xml.Serialization.CodeGenerator:Ldc(int):this
-       cmp      r14d, 2
-       jbe      G_M59274_IG75
-       mov      esi, dword ptr [rbx+0x18]
-       mov      rdi, r15
-       mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:Ldc(int):this
-       call     [rax]System.Xml.Serialization.CodeGenerator:Ldc(int):this
-       cmp      r14d, 3
-       jbe      G_M59274_IG75
-       movsxd   rsi, dword ptr [rbx+0x1C]
-       mov      edi, 0xD1FFAB1E
-       test     rsi, rdi
-       setne    sil
-       movzx    rsi, sil
-       mov      rdi, r15
-       mov      rax, 0xD1FFAB1E      ; code for System.Xml.Serialization.CodeGenerator:Ldc(ubyte):this
-       call     [rax]System.Xml.Serialization.CodeGenerator:Ldc(ubyte):this
-       jmp      G_M59274_IG48
-						;; size=132 bbWeight=0 PerfScore 0.00
-G_M59274_IG74:
+G_M59274_IG72:
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_UnknownConstantType():System.String
        call     [rax]System.SR:get_UnknownConstantType():System.String
        mov      r15, rax
        mov      rdi, 0xD1FFAB1E      ; System.NotSupportedException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; code for System.RuntimeType:get_AssemblyQualifiedName():System.String:this
        call     [rax]System.RuntimeType:get_AssemblyQualifiedName():System.String:this
        mov      rsi, rax
        mov      rdi, r15
        mov      rax, 0xD1FFAB1E      ; code for System.SR:Format(System.String,System.Object):System.String
        call     [rax]System.SR:Format(System.String,System.Object):System.String
        mov      rsi, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.NotSupportedException:.ctor(System.String):this
        call     [rax]System.NotSupportedException:.ctor(System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=93 bbWeight=0 PerfScore 0.00
-G_M59274_IG75:
+G_M59274_IG73:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 RWD00  	dd	G_M59274_IG19 - G_M59274_IG02
        	dd	G_M59274_IG19 - G_M59274_IG02
        	dd	G_M59274_IG19 - G_M59274_IG02
        	dd	G_M59274_IG15 - G_M59274_IG02
-       	dd	G_M59274_IG71 - G_M59274_IG02
+       	dd	G_M59274_IG70 - G_M59274_IG02
        	dd	G_M59274_IG13 - G_M59274_IG02
        	dd	G_M59274_IG13 - G_M59274_IG02
        	dd	G_M59274_IG13 - G_M59274_IG02
        	dd	G_M59274_IG13 - G_M59274_IG02
-       	dd	G_M59274_IG67 - G_M59274_IG02
-       	dd	G_M59274_IG63 - G_M59274_IG02
-       	dd	G_M59274_IG60 - G_M59274_IG02
-       	dd	G_M59274_IG58 - G_M59274_IG02
-       	dd	G_M59274_IG54 - G_M59274_IG02
-       	dd	G_M59274_IG50 - G_M59274_IG02
+       	dd	G_M59274_IG66 - G_M59274_IG02
+       	dd	G_M59274_IG62 - G_M59274_IG02
+       	dd	G_M59274_IG59 - G_M59274_IG02
+       	dd	G_M59274_IG57 - G_M59274_IG02
+       	dd	G_M59274_IG53 - G_M59274_IG02
+       	dd	G_M59274_IG49 - G_M59274_IG02
        	dd	G_M59274_IG43 - G_M59274_IG02
        	dd	G_M59274_IG37 - G_M59274_IG02
        	dd	G_M59274_IG19 - G_M59274_IG02
        	dd	G_M59274_IG34 - G_M59274_IG02
 
 
-; Total bytes of code 2773, prolog size 19, PerfScore 518.79, instruction count 611, allocated bytes for code 2773 (MethodHash=cb621875) for method System.Xml.Serialization.CodeGenerator:Ldc(System.Object):this (FullOpts)
+; Total bytes of code 2632, prolog size 19, PerfScore 520.64, instruction count 586, allocated bytes for code 2632 (MethodHash=cb621875) for method System.Xml.Serialization.CodeGenerator:Ldc(System.Object):this (FullOpts)
 ; ============================================================

Larger list of diffs: https://gist.github.com/MihuBot/89e2c435c5941ea11c00f1fd88094e0f

@MihuBot
Copy link
Owner Author

MihuBot commented Apr 17, 2025

@AndyAyersMS

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