MihuBot / runtime-utils

0 stars 0 forks source link

[JitDiff X64] [EgorBo] JIT: Improve codegen around unsigned comparisons #559

Open MihuBot opened 1 month ago

MihuBot commented 1 month ago

Job completed in 15 minutes. https://github.com/dotnet/runtime/pull/105593

Diffs

Diffs ``` Found 336 files with textual diffs. Summary of Code Size diffs: (Lower is better) Total bytes of base: 39661353 Total bytes of diff: 39656811 Total bytes of delta: -4542 (-0.01 % of base) Total relative delta: -16.40 diff is an improvement. relative diff is an improvement. Top file regressions (bytes): 33 : System.Data.Odbc.dasm (0.01 % of base) 16 : System.Text.RegularExpressions.dasm (0.00 % of base) 1 : System.ComponentModel.TypeConverter.dasm (0.00 % of base) Top file improvements (bytes): -945 : System.Private.CoreLib.dasm (-0.01 % of base) -860 : System.Private.Xml.dasm (-0.02 % of base) -368 : System.Text.Json.dasm (-0.03 % of base) -357 : System.IO.Hashing.dasm (-1.41 % of base) -261 : System.Formats.Asn1.dasm (-0.31 % of base) -227 : System.Memory.dasm (-0.08 % of base) -213 : System.Security.Cryptography.dasm (-0.02 % of base) -197 : System.Net.Security.dasm (-0.09 % of base) -130 : System.Data.Common.dasm (-0.01 % of base) -92 : System.Net.Http.dasm (-0.01 % of base) -90 : System.Numerics.Tensors.dasm (-0.01 % of base) -75 : System.Runtime.Numerics.dasm (-0.06 % of base) -73 : System.Runtime.Serialization.Schema.dasm (-0.13 % of base) -69 : System.Drawing.Primitives.dasm (-0.18 % of base) -63 : System.Security.Cryptography.Pkcs.dasm (-0.02 % of base) -57 : System.Transactions.Local.dasm (-0.04 % of base) -57 : System.Private.DataContractSerialization.dasm (-0.01 % of base) -41 : runincontext.dasm (-0.26 % of base) -37 : System.Resources.Writer.dasm (-0.41 % of base) -37 : System.Resources.Extensions.dasm (-0.08 % of base) -34 : System.Reflection.Metadata.dasm (-0.01 % of base) -32 : System.Formats.Cbor.dasm (-0.07 % of base) -31 : System.Text.Encodings.Web.dasm (-0.13 % of base) -30 : Microsoft.VisualBasic.Core.dasm (-0.01 % of base) -30 : System.ComponentModel.Composition.dasm (-0.01 % of base) -30 : System.Configuration.ConfigurationManager.dasm (-0.01 % of base) -29 : System.Net.Mail.dasm (-0.02 % of base) -23 : System.Collections.dasm (-0.01 % of base) -23 : System.Net.Primitives.dasm (-0.03 % of base) -18 : System.IO.Pipelines.dasm (-0.02 % of base) -18 : System.Formats.Nrbf.dasm (-0.04 % of base) -17 : ILCompiler.Reflection.ReadyToRun.dasm (-0.01 % of base) -14 : System.Net.Quic.dasm (-0.01 % of base) -8 : System.Collections.Specialized.dasm (-0.06 % of base) -4 : System.Private.Uri.dasm (-0.00 % of base) -2 : System.Runtime.Caching.dasm (-0.00 % of base) 39 total files with Code Size differences (36 improved, 3 regressed), 220 unchanged. Top method regressions (bytes): 22 (3.08 % of base) : System.Private.CoreLib.dasm - System.Globalization.TextInfo:ChangeCaseCommon[double](System.String):System.String:this (FullOpts) 22 (3.08 % of base) : System.Private.CoreLib.dasm - System.Globalization.TextInfo:ChangeCaseCommon[int](System.String):System.String:this (FullOpts) 22 (3.08 % of base) : System.Private.CoreLib.dasm - System.Globalization.TextInfo:ChangeCaseCommon[long](System.String):System.String:this (FullOpts) 22 (3.08 % of base) : System.Private.CoreLib.dasm - System.Globalization.TextInfo:ChangeCaseCommon[short](System.String):System.String:this (FullOpts) 22 (3.08 % of base) : System.Private.CoreLib.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToLowerConversion](System.String):System.String:this (FullOpts) 22 (3.05 % of base) : System.Private.CoreLib.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (FullOpts) 22 (3.08 % of base) : System.Private.CoreLib.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Numerics.Vector`1[float]](System.String):System.String:this (FullOpts) 22 (3.08 % of base) : System.Private.CoreLib.dasm - System.Globalization.TextInfo:ChangeCaseCommon[ubyte](System.String):System.String:this (FullOpts) 21 (10.00 % of base) : System.Private.Xml.dasm - System.Xml.XmlEntityReference+<>c:b__27_0(System.Span`1[ushort],System.ValueTuple`2[System.String,System.String]):this (FullOpts) 20 (8.93 % of base) : System.Data.Odbc.dasm - System.Data.Common.DbConnectionOptions:GetKeyValue(System.Text.StringBuilder,ubyte):System.String (FullOpts) 20 (8.93 % of base) : System.Data.Common.dasm - System.Data.Common.DbConnectionOptions:GetKeyValue(System.Text.StringBuilder,ubyte):System.String (FullOpts) 16 (2.45 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexReplacement+<>c:b__17_1(System.Span`1[ushort],System.ValueTuple`3[long,System.String,System.String]):this (FullOpts) (2 methods) 14 (4.76 % of base) : System.Private.CoreLib.dasm - System.Buffers.AhoCorasickNode:OptimizeChildren():this (FullOpts) 13 (6.37 % of base) : System.Data.Odbc.dasm - System.Data.Common.DbConnectionOptions:GetKeyName(System.Text.StringBuilder):System.String (FullOpts) 13 (7.83 % of base) : System.Data.Common.dasm - System.Data.Common.DbConnectionOptions:GetKeyName(System.Text.StringBuilder):System.String (FullOpts) 9 (1.08 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatFlagNames[double](System.Enum+EnumInfo`1[double],double,System.Span`1[ushort],byref,byref):ubyte (FullOpts) 9 (1.20 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatFlagNames[int](System.Enum+EnumInfo`1[int],int,System.Span`1[ushort],byref,byref):ubyte (FullOpts) 9 (1.20 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatFlagNames[long](System.Enum+EnumInfo`1[long],long,System.Span`1[ushort],byref,byref):ubyte (FullOpts) 9 (1.18 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatFlagNames[short](System.Enum+EnumInfo`1[short],short,System.Span`1[ushort],byref,byref):ubyte (FullOpts) 9 (1.18 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatFlagNames[ubyte](System.Enum+EnumInfo`1[ubyte],ubyte,System.Span`1[ushort],byref,byref):ubyte (FullOpts) 8 (1.13 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[double](System.Enum+EnumInfo`1[double],double):System.String (FullOpts) 8 (1.29 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[int](System.Enum+EnumInfo`1[int],int):System.String (FullOpts) 8 (1.26 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[long](System.Enum+EnumInfo`1[long],long):System.String (FullOpts) 8 (1.25 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[short](System.Enum+EnumInfo`1[short],short):System.String (FullOpts) 8 (1.26 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[ubyte](System.Enum+EnumInfo`1[ubyte],ubyte):System.String (FullOpts) 3 (1.08 % of base) : System.Private.CoreLib.dasm - System.Enum:WriteMultipleFoundFlagsNames(System.String[],System.ReadOnlySpan`1[int],System.Span`1[ushort]) (FullOpts) 1 (0.12 % of base) : System.Drawing.Primitives.dasm - System.Drawing.ColorConverterCommon:IntFromString(System.ReadOnlySpan`1[ushort],System.Globalization.CultureInfo):int (FullOpts) 1 (0.12 % of base) : System.ComponentModel.TypeConverter.dasm - System.Drawing.ColorConverterCommon:IntFromString(System.ReadOnlySpan`1[ushort],System.Globalization.CultureInfo):int (FullOpts) Top method improvements (bytes): -280 (-4.18 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.QilGenerator:PrecompileProtoTemplatesHeaders():this (FullOpts) -196 (-5.57 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventPipePayloadDecoder:DecodePayload(byref,System.ReadOnlySpan`1[ubyte]):System.Object[] (FullOpts) -111 (-14.02 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.QilGenerator:AddCurrentPositionLast(System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilNode:this (FullOpts) -73 (-1.88 % of base) : System.Formats.Asn1.dasm - System.Formats.Asn1.AsnDecoder:ParseGeneralizedTime(int,System.ReadOnlySpan`1[ubyte]):System.DateTimeOffset (FullOpts) -70 (-4.19 % of base) : System.Drawing.Primitives.dasm - System.Drawing.ColorTranslator:FromHtml(System.String):System.Drawing.Color (FullOpts) -68 (-2.72 % of base) : System.Data.Common.dasm - System.Data.XmlTreeGen:HandleColumn(System.Data.DataColumn,System.Xml.XmlDocument,System.Xml.XmlElement,ubyte):System.Xml.XmlElement:this (FullOpts) -66 (-14.54 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonWriter:WriteBase64Minimized(System.ReadOnlySpan`1[ubyte]):this (FullOpts) -62 (-2.95 % of base) : System.Formats.Asn1.dasm - System.Formats.Asn1.AsnWriter:WriteGeneralizedTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset,ubyte):this (FullOpts) -61 (-2.42 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonReaderOptions,byref,byref) (FullOpts) -59 (-3.27 % of base) : System.Formats.Asn1.dasm - System.Formats.Asn1.AsnWriter:WriteUtcTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset):this (FullOpts) -55 (-10.58 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Utf8Parser:TryParseGuidN(System.ReadOnlySpan`1[ubyte],byref,byref):ubyte (FullOpts) -50 (-32.89 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDecimal:op_Explicit(System.Data.SqlTypes.SqlBoolean):System.Data.SqlTypes.SqlDecimal (FullOpts) -47 (-2.57 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.QilGenerator:CompileApplyTemplates(System.Xml.Xsl.Xslt.XslNodeEx):System.Xml.Xsl.Qil.QilNode:this (FullOpts) -45 (-6.20 % of base) : System.Data.Common.dasm - System.Data.XSDSchema:SetExtProperties(System.Object,System.Xml.XmlAttribute[]) (FullOpts) -45 (-6.88 % of base) : System.Private.Xml.dasm - System.Xml.XmlSqlBinaryReader:AddQName():this (FullOpts) -43 (-31.16 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.Crc64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts) -43 (-39.81 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.XxHash32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,int):ubyte (FullOpts) -43 (-39.45 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.XxHash64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,long):ubyte (FullOpts) -43 (-6.24 % of base) : System.Runtime.Serialization.Schema.dasm - System.Runtime.Serialization.CodeExporter:GetClrNamespace(System.String):System.String (FullOpts) -42 (-14.05 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.ManifestBuilder:GetLocalizedMessage(System.String,System.Globalization.CultureInfo,ubyte):System.String:this (FullOpts) -42 (-18.92 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.XxHash32+State:Complete(int,System.ReadOnlySpan`1[ubyte]):uint:this (FullOpts) -41 (-1.27 % of base) : runincontext.dasm - ArgInput:.ctor(System.String[]):this (FullOpts) -41 (-36.61 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigIntegerCalculator:Reduce(System.Span`1[uint],System.ReadOnlySpan`1[uint]):int (FullOpts) -41 (-1.81 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteSourceEnd(System.String,System.Type,System.Type):this (FullOpts) -40 (-15.21 % of base) : System.Private.CoreLib.dasm - System.Reflection.AssemblyNameHelpers:IsValidPublicKey(ubyte[]):ubyte (FullOpts) -38 (-12.22 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[System.__Canon](System.ReadOnlySpan`1[System.__Canon],System.ReadOnlySpan`1[System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):int (FullOpts) -38 (-7.10 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationILGen:ILGenLoad(System.String,System.Type):this (FullOpts) -37 (-17.70 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.Crc32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts) -37 (-3.59 % of base) : System.Resources.Extensions.dasm - System.Resources.Extensions.PreserializedResourceWriter:FindTypeCode(System.Object,System.Collections.Generic.List`1[System.String]):int (FullOpts) -37 (-3.61 % of base) : System.Resources.Writer.dasm - System.Resources.ResourceWriter:FindTypeCode(System.Object,System.Collections.Generic.List`1[System.String]):int (FullOpts) -37 (-14.51 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.QilGenerator:AddDebugVariable(System.Xml.Xsl.Qil.QilName,System.Xml.Xsl.Qil.QilNode,System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilNode:this (FullOpts) -37 (-9.02 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.QilGenerator:CreateGlobalVarPar(System.Xml.Xsl.Xslt.VarPar):this (FullOpts) -37 (-6.94 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.QilGenerator:SetDebugNs(System.Xml.Xsl.Qil.QilNode,System.Xml.Xsl.Qil.QilList):System.Xml.Xsl.Qil.QilNode:this (FullOpts) -36 (-12.77 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:FromManaged(System.ReadOnlySpan`1[System.__Canon],System.Span`1[long]):this (FullOpts) (2 methods) -36 (-25.71 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Pkcs.Pkcs12Kdf:CircularCopy(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]) (FullOpts) -36 (-25.71 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Pkcs12Kdf:CircularCopy(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]) (FullOpts) -35 (-11.08 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[System.Numerics.Vector`1[float]](System.ReadOnlySpan`1[System.Numerics.Vector`1[float]],System.ReadOnlySpan`1[System.Numerics.Vector`1[float]],System.Collections.Generic.IEqualityComparer`1[System.Numerics.Vector`1[float]]):int (FullOpts) -34 (-12.10 % of base) : System.Private.CoreLib.dasm - System.Environment:get_CpuUsage():System.Environment+ProcessCpuUsage (FullOpts) -34 (-12.23 % of base) : System.Transactions.Local.dasm - System.Transactions.TransactionsEtwProvider:SetActivityId(System.String) (FullOpts) -34 (-1.25 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteArray(System.String,System.String,System.Xml.Serialization.ArrayMapping,ubyte,ubyte,int):this (FullOpts) -33 (-25.78 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Qil.QilReference:set_DebugName(System.String):this (FullOpts) -33 (-14.04 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.QilGenerator:CreateXslParam(System.Xml.Xsl.Qil.QilName,System.Xml.Xsl.XmlQueryType):System.Xml.Xsl.Qil.QilParameter:this (FullOpts) -31 (-16.67 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.Crc32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts) -31 (-8.56 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.XxHash64+State:Complete(long,System.ReadOnlySpan`1[ubyte]):ulong:this (FullOpts) -31 (-13.72 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[System.__Canon](System.ReadOnlySpan`1[System.__Canon],System.ReadOnlySpan`1[System.__Canon]):int (FullOpts) -31 (-0.97 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.QilGenerator:CompileInstructions(System.Collections.Generic.IList`1[System.Xml.Xsl.Xslt.XslNode],int,System.Xml.Xsl.Qil.QilList):System.Xml.Xsl.Qil.QilNode:this (FullOpts) -31 (-1.40 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.QilGenerator:CompileKeys():this (FullOpts) -30 (-3.27 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.FileIO.FileSystem:CopyOrMoveDirectory(int,System.String,System.String,ubyte,int,int) (FullOpts) -30 (-14.63 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ReflectionProperty:get_Name():System.String:this (FullOpts) -30 (-12.35 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ClientConfigPaths:Validate(System.String,ubyte):System.String (FullOpts) -30 (-14.49 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.DataContracts.DataContract:GetDataContractNamespaceFromUri(System.String):System.String (FullOpts) -30 (-14.49 % of base) : System.Runtime.Serialization.Schema.dasm - System.Runtime.Serialization.SchemaImportHelper:GetDataContractNamespaceFromUri(System.String):System.String (FullOpts) -29 (-6.16 % of base) : System.Net.Mail.dasm - System.Net.Mime.SmtpDateTime:ValidateAndGetTimeZoneOffsetValues(System.String,byref,byref,byref) (FullOpts) -27 (-9.93 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[double](System.ReadOnlySpan`1[double],System.ReadOnlySpan`1[double],System.Collections.Generic.IEqualityComparer`1[double]):int (FullOpts) -27 (-10.00 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[short](System.ReadOnlySpan`1[short],System.ReadOnlySpan`1[short],System.Collections.Generic.IEqualityComparer`1[short]):int (FullOpts) -27 (-12.86 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson:TruncateDefaultDataContractNamespace(System.String):System.String (FullOpts) -27 (-1.48 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Pkcs.Pkcs12Kdf:Derive(System.ReadOnlySpan`1[ushort],System.Security.Cryptography.HashAlgorithmName,int,ubyte,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]) (FullOpts) -27 (-1.46 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Pkcs12Kdf:Derive(System.ReadOnlySpan`1[ushort],System.Security.Cryptography.HashAlgorithmName,int,ubyte,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]) (FullOpts) -27 (-2.36 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:TryParseDateTimeOffset(System.ReadOnlySpan`1[ubyte],byref):ubyte (FullOpts) -27 (-4.58 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationWriter:ListUsedPrefixes(System.Xml.Serialization.XmlSerializerNamespaces,System.String):System.Collections.Generic.HashSet`1[int] (FullOpts) -26 (-4.04 % of base) : System.Net.Security.dasm - System.Net.Security.TlsFrameHelper:TryParseHelloExtensions(System.ReadOnlySpan`1[ubyte],byref,int,System.Net.Security.TlsFrameHelper+HelloExtensionCallback):ubyte (FullOpts) -25 (-29.41 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.XxHash32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int):int (FullOpts) -24 (-20.87 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.Crc64:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts) -24 (-27.91 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.XxHash64:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],long):int (FullOpts) -23 (-7.85 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:Write[System.__Canon](System.Buffers.IBufferWriter`1[System.__Canon],System.ReadOnlySpan`1[System.__Canon]) (FullOpts) -23 (-2.83 % of base) : System.Collections.dasm - System.Collections.BitArray:.ctor(ubyte[]):this (FullOpts) (2 methods) -23 (-8.71 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[int](System.ReadOnlySpan`1[int],System.ReadOnlySpan`1[int],System.Collections.Generic.IEqualityComparer`1[int]):int (FullOpts) -23 (-8.71 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[long](System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long],System.Collections.Generic.IEqualityComparer`1[long]):int (FullOpts) -23 (-8.71 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[System.Nullable`1[int]](System.ReadOnlySpan`1[System.Nullable`1[int]],System.ReadOnlySpan`1[System.Nullable`1[int]],System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]):int (FullOpts) -23 (-8.68 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[ubyte](System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Collections.Generic.IEqualityComparer`1[ubyte]):int (FullOpts) -23 (-1.12 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionPool:.ctor(System.Net.Http.HttpConnectionPoolManager,ubyte,System.String,int,System.String,System.Uri):this (FullOpts) -23 (-20.72 % of base) : System.Net.Primitives.dasm - System.Net.IPAddress:TryWriteBytes(System.Span`1[ubyte],byref):ubyte:this (FullOpts) -23 (-6.67 % of base) : System.Net.Security.dasm - System.Net.Security.TlsFrameHelper:TryGetFrameInfo(System.ReadOnlySpan`1[ubyte],byref,int,System.Net.Security.TlsFrameHelper+HelloExtensionCallback):ubyte (FullOpts) -23 (-17.29 % of base) : System.Text.Encodings.Web.dasm - System.Text.Encodings.Web.AllowedBmpCodePointsBitmap:ForbidUndefinedCharacters():this (FullOpts) -23 (-6.41 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:StableSortByKey[double,long](System.Collections.Generic.List`1[double],System.Func`2[double,long]) (FullOpts) -23 (-6.44 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:StableSortByKey[int,long](System.Collections.Generic.List`1[int],System.Func`2[int,long]) (FullOpts) -23 (-6.44 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:StableSortByKey[long,long](System.Collections.Generic.List`1[long],System.Func`2[long,long]) (FullOpts) -23 (-6.42 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:StableSortByKey[short,long](System.Collections.Generic.List`1[short],System.Func`2[short,long]) (FullOpts) -23 (-4.77 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:StableSortByKey[System.__Canon,long](System.Collections.Generic.List`1[System.__Canon],System.Func`2[System.__Canon,long]) (FullOpts) -23 (-6.44 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:StableSortByKey[System.Nullable`1[int],long](System.Collections.Generic.List`1[System.Nullable`1[int]],System.Func`2[System.Nullable`1[int],long]) (FullOpts) -23 (-6.18 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:StableSortByKey[System.Numerics.Vector`1[float],long](System.Collections.Generic.List`1[System.Numerics.Vector`1[float]],System.Func`2[System.Numerics.Vector`1[float],long]) (FullOpts) -23 (-6.42 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:StableSortByKey[ubyte,long](System.Collections.Generic.List`1[ubyte],System.Func`2[ubyte,long]) (FullOpts) -23 (-3.36 % of base) : System.Transactions.Local.dasm - System.Transactions.TransactionInterop:GetTransactionFromTransmitterPropagationToken(ubyte[]):System.Transactions.Transaction (FullOpts) -22 (-2.63 % of base) : System.Formats.Asn1.dasm - System.Formats.Asn1.AsnDecoder:TryReadBitString(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref,byref,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):ubyte (FullOpts) -22 (-9.05 % of base) : System.Private.CoreLib.dasm - System.Guid:TryParseHex(System.ReadOnlySpan`1[ushort],byref,byref):ubyte (FullOpts) (2 methods) -22 (-6.47 % of base) : System.Net.Security.dasm - System.Net.NegotiateAuthenticationPal+ManagedNtlmNegotiateAuthenticationPal:Unwrap(System.ReadOnlySpan`1[ubyte],System.Buffers.IBufferWriter`1[ubyte],byref):int:this (FullOpts) -22 (-3.79 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RSA:TryHashData(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],System.Security.Cryptography.HashAlgorithmName,byref):ubyte:this (FullOpts) -21 (-32.81 % of base) : System.Private.CoreLib.dasm - System.Boolean:System.IConvertible.ToDecimal(System.IFormatProvider):System.Decimal:this (FullOpts) -21 (-20.19 % of base) : System.Private.CoreLib.dasm - System.Convert:ToDecimal(ubyte):System.Decimal (FullOpts) (2 methods) -21 (-20.19 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[double](System.ReadOnlySpan`1[double],System.ReadOnlySpan`1[double]):int (FullOpts) -21 (-17.21 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[System.Nullable`1[int]](System.ReadOnlySpan`1[System.Nullable`1[int]],System.ReadOnlySpan`1[System.Nullable`1[int]]):int (FullOpts) -21 (-15.67 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[System.Numerics.Vector`1[float]](System.ReadOnlySpan`1[System.Numerics.Vector`1[float]],System.ReadOnlySpan`1[System.Numerics.Vector`1[float]]):int (FullOpts) -21 (-5.12 % of base) : System.Net.Security.dasm - System.Net.NegotiateAuthenticationPal+UnixNegotiateAuthenticationPal:GetMIC(System.ReadOnlySpan`1[ubyte],System.Buffers.IBufferWriter`1[ubyte]):this (FullOpts) -21 (-1.60 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PasswordDeriveBytes:ComputeBytes(int):ubyte[]:this (FullOpts) -20 (-12.35 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:ConvertChecked[long,long](System.ReadOnlySpan`1[long],System.Span`1[long]) (FullOpts) -20 (-12.35 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:ConvertSaturating[long,long](System.ReadOnlySpan`1[long],System.Span`1[long]) (FullOpts) -20 (-12.35 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:ConvertTruncating[long,long](System.ReadOnlySpan`1[long],System.Span`1[long]) (FullOpts) -20 (-12.05 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:TryConvertUniversal[long,long](System.ReadOnlySpan`1[long],System.Span`1[long]):ubyte (FullOpts) -19 (-4.52 % of base) : System.Formats.Asn1.dasm - System.Formats.Asn1.AsnDecoder:TryReadCharacterStringBytesCore(System.ReadOnlySpan`1[ubyte],int,System.Formats.Asn1.Asn1Tag,int,System.Span`1[ubyte],byref,byref):ubyte (FullOpts) -19 (-10.38 % of base) : System.Net.Security.dasm - System.Net.Security.TlsFrameHelper:TryParseServerHello(System.ReadOnlySpan`1[ubyte],byref,int,System.Net.Security.TlsFrameHelper+HelloExtensionCallback):ubyte (FullOpts) Top method regressions (percentages): 21 (10.00 % of base) : System.Private.Xml.dasm - System.Xml.XmlEntityReference+<>c:b__27_0(System.Span`1[ushort],System.ValueTuple`2[System.String,System.String]):this (FullOpts) 20 (8.93 % of base) : System.Data.Odbc.dasm - System.Data.Common.DbConnectionOptions:GetKeyValue(System.Text.StringBuilder,ubyte):System.String (FullOpts) 20 (8.93 % of base) : System.Data.Common.dasm - System.Data.Common.DbConnectionOptions:GetKeyValue(System.Text.StringBuilder,ubyte):System.String (FullOpts) 13 (7.83 % of base) : System.Data.Common.dasm - System.Data.Common.DbConnectionOptions:GetKeyName(System.Text.StringBuilder):System.String (FullOpts) 13 (6.37 % of base) : System.Data.Odbc.dasm - System.Data.Common.DbConnectionOptions:GetKeyName(System.Text.StringBuilder):System.String (FullOpts) 14 (4.76 % of base) : System.Private.CoreLib.dasm - System.Buffers.AhoCorasickNode:OptimizeChildren():this (FullOpts) 22 (3.08 % of base) : System.Private.CoreLib.dasm - System.Globalization.TextInfo:ChangeCaseCommon[double](System.String):System.String:this (FullOpts) 22 (3.08 % of base) : System.Private.CoreLib.dasm - System.Globalization.TextInfo:ChangeCaseCommon[int](System.String):System.String:this (FullOpts) 22 (3.08 % of base) : System.Private.CoreLib.dasm - System.Globalization.TextInfo:ChangeCaseCommon[long](System.String):System.String:this (FullOpts) 22 (3.08 % of base) : System.Private.CoreLib.dasm - System.Globalization.TextInfo:ChangeCaseCommon[short](System.String):System.String:this (FullOpts) 22 (3.08 % of base) : System.Private.CoreLib.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToLowerConversion](System.String):System.String:this (FullOpts) 22 (3.08 % of base) : System.Private.CoreLib.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Numerics.Vector`1[float]](System.String):System.String:this (FullOpts) 22 (3.08 % of base) : System.Private.CoreLib.dasm - System.Globalization.TextInfo:ChangeCaseCommon[ubyte](System.String):System.String:this (FullOpts) 22 (3.05 % of base) : System.Private.CoreLib.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (FullOpts) 16 (2.45 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexReplacement+<>c:b__17_1(System.Span`1[ushort],System.ValueTuple`3[long,System.String,System.String]):this (FullOpts) (2 methods) 8 (1.29 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[int](System.Enum+EnumInfo`1[int],int):System.String (FullOpts) 8 (1.26 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[long](System.Enum+EnumInfo`1[long],long):System.String (FullOpts) 8 (1.26 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[ubyte](System.Enum+EnumInfo`1[ubyte],ubyte):System.String (FullOpts) 8 (1.25 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[short](System.Enum+EnumInfo`1[short],short):System.String (FullOpts) 9 (1.20 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatFlagNames[int](System.Enum+EnumInfo`1[int],int,System.Span`1[ushort],byref,byref):ubyte (FullOpts) 9 (1.20 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatFlagNames[long](System.Enum+EnumInfo`1[long],long,System.Span`1[ushort],byref,byref):ubyte (FullOpts) 9 (1.18 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatFlagNames[ubyte](System.Enum+EnumInfo`1[ubyte],ubyte,System.Span`1[ushort],byref,byref):ubyte (FullOpts) 9 (1.18 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatFlagNames[short](System.Enum+EnumInfo`1[short],short,System.Span`1[ushort],byref,byref):ubyte (FullOpts) 8 (1.13 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[double](System.Enum+EnumInfo`1[double],double):System.String (FullOpts) 9 (1.08 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatFlagNames[double](System.Enum+EnumInfo`1[double],double,System.Span`1[ushort],byref,byref):ubyte (FullOpts) 3 (1.08 % of base) : System.Private.CoreLib.dasm - System.Enum:WriteMultipleFoundFlagsNames(System.String[],System.ReadOnlySpan`1[int],System.Span`1[ushort]) (FullOpts) 1 (0.12 % of base) : System.Drawing.Primitives.dasm - System.Drawing.ColorConverterCommon:IntFromString(System.ReadOnlySpan`1[ushort],System.Globalization.CultureInfo):int (FullOpts) 1 (0.12 % of base) : System.ComponentModel.TypeConverter.dasm - System.Drawing.ColorConverterCommon:IntFromString(System.ReadOnlySpan`1[ushort],System.Globalization.CultureInfo):int (FullOpts) Top method improvements (percentages): -43 (-39.81 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.XxHash32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,int):ubyte (FullOpts) -43 (-39.45 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.XxHash64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,long):ubyte (FullOpts) -41 (-36.61 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigIntegerCalculator:Reduce(System.Span`1[uint],System.ReadOnlySpan`1[uint]):int (FullOpts) -11 (-33.33 % of base) : System.Private.CoreLib.dasm - System.Guid:TryWriteBytes(System.Span`1[ubyte]):ubyte:this (FullOpts) -50 (-32.89 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDecimal:op_Explicit(System.Data.SqlTypes.SqlBoolean):System.Data.SqlTypes.SqlDecimal (FullOpts) -21 (-32.81 % of base) : System.Private.CoreLib.dasm - System.Boolean:System.IConvertible.ToDecimal(System.IFormatProvider):System.Decimal:this (FullOpts) -43 (-31.16 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.Crc64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts) -25 (-29.41 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.XxHash32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int):int (FullOpts) -18 (-28.12 % of base) : System.Formats.Nrbf.dasm - System.Formats.Nrbf.NrbfDecoder:StartsWithPayloadHeader(System.ReadOnlySpan`1[ubyte]):ubyte (FullOpts) -24 (-27.91 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.XxHash64:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],long):int (FullOpts) -33 (-25.78 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Qil.QilReference:set_DebugName(System.String):this (FullOpts) -36 (-25.71 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Pkcs.Pkcs12Kdf:CircularCopy(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]) (FullOpts) -36 (-25.71 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Pkcs12Kdf:CircularCopy(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]) (FullOpts) -24 (-20.87 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.Crc64:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts) -23 (-20.72 % of base) : System.Net.Primitives.dasm - System.Net.IPAddress:TryWriteBytes(System.Span`1[ubyte],byref):ubyte:this (FullOpts) -18 (-20.22 % of base) : System.Net.Security.dasm - System.Net.Security.TlsFrameHelper:GetSniFromHostNameStruct(System.ReadOnlySpan`1[ubyte],byref):System.String (FullOpts) -21 (-20.19 % of base) : System.Private.CoreLib.dasm - System.Convert:ToDecimal(ubyte):System.Decimal (FullOpts) (2 methods) -21 (-20.19 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[double](System.ReadOnlySpan`1[double],System.ReadOnlySpan`1[double]):int (FullOpts) -42 (-18.92 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.XxHash32+State:Complete(int,System.ReadOnlySpan`1[ubyte]):uint:this (FullOpts) -17 (-18.68 % of base) : System.Net.Http.dasm - System.Net.Http.HPack.HPackEncoder:EncodeLiteralHeaderFieldWithoutIndexingNewName(System.String,System.Span`1[ubyte],byref):ubyte (FullOpts) -37 (-17.70 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.Crc32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts) -23 (-17.29 % of base) : System.Text.Encodings.Web.dasm - System.Text.Encodings.Web.AllowedBmpCodePointsBitmap:ForbidUndefinedCharacters():this (FullOpts) -21 (-17.21 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[System.Nullable`1[int]](System.ReadOnlySpan`1[System.Nullable`1[int]],System.ReadOnlySpan`1[System.Nullable`1[int]]):int (FullOpts) -31 (-16.67 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.Crc32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts) -18 (-16.22 % of base) : System.Formats.Cbor.dasm - System.Formats.Cbor.CborWriter:TryEncode(System.Span`1[ubyte],byref):ubyte:this (FullOpts) -21 (-15.67 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[System.Numerics.Vector`1[float]](System.ReadOnlySpan`1[System.Numerics.Vector`1[float]],System.ReadOnlySpan`1[System.Numerics.Vector`1[float]]):int (FullOpts) -40 (-15.21 % of base) : System.Private.CoreLib.dasm - System.Reflection.AssemblyNameHelpers:IsValidPublicKey(ubyte[]):ubyte (FullOpts) -30 (-14.63 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ReflectionProperty:get_Name():System.String:this (FullOpts) -66 (-14.54 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonWriter:WriteBase64Minimized(System.ReadOnlySpan`1[ubyte]):this (FullOpts) -37 (-14.51 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.QilGenerator:AddDebugVariable(System.Xml.Xsl.Qil.QilName,System.Xml.Xsl.Qil.QilNode,System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilNode:this (FullOpts) -30 (-14.49 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.DataContracts.DataContract:GetDataContractNamespaceFromUri(System.String):System.String (FullOpts) -30 (-14.49 % of base) : System.Runtime.Serialization.Schema.dasm - System.Runtime.Serialization.SchemaImportHelper:GetDataContractNamespaceFromUri(System.String):System.String (FullOpts) -42 (-14.05 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.ManifestBuilder:GetLocalizedMessage(System.String,System.Globalization.CultureInfo,ubyte):System.String:this (FullOpts) -33 (-14.04 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.QilGenerator:CreateXslParam(System.Xml.Xsl.Qil.QilName,System.Xml.Xsl.XmlQueryType):System.Xml.Xsl.Qil.QilParameter:this (FullOpts) -111 (-14.02 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.QilGenerator:AddCurrentPositionLast(System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilNode:this (FullOpts) -31 (-13.72 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[System.__Canon](System.ReadOnlySpan`1[System.__Canon],System.ReadOnlySpan`1[System.__Canon]):int (FullOpts) -27 (-12.86 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson:TruncateDefaultDataContractNamespace(System.String):System.String (FullOpts) -18 (-12.77 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[double,long]:FromManaged(System.ReadOnlySpan`1[double],System.Span`1[long]):this (FullOpts) -18 (-12.77 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[int,long]:FromManaged(System.ReadOnlySpan`1[int],System.Span`1[long]):this (FullOpts) -18 (-12.77 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[long,long]:FromManaged(System.ReadOnlySpan`1[long],System.Span`1[long]):this (FullOpts) -18 (-12.77 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[short,long]:FromManaged(System.ReadOnlySpan`1[short],System.Span`1[long]):this (FullOpts) -36 (-12.77 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:FromManaged(System.ReadOnlySpan`1[System.__Canon],System.Span`1[long]):this (FullOpts) (2 methods) -18 (-12.77 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.Nullable`1[int],long]:FromManaged(System.ReadOnlySpan`1[System.Nullable`1[int]],System.Span`1[long]):this (FullOpts) -18 (-12.77 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.Numerics.Vector`1[float],long]:FromManaged(System.ReadOnlySpan`1[System.Numerics.Vector`1[float]],System.Span`1[long]):this (FullOpts) -18 (-12.77 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[ubyte,long]:FromManaged(System.ReadOnlySpan`1[ubyte],System.Span`1[long]):this (FullOpts) -18 (-12.77 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshalling.SpanMarshaller`2+ManagedToUnmanagedIn[double,long]:FromManaged(System.Span`1[double],System.Span`1[long]):this (FullOpts) -18 (-12.77 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshalling.SpanMarshaller`2+ManagedToUnmanagedIn[int,long]:FromManaged(System.Span`1[int],System.Span`1[long]):this (FullOpts) -18 (-12.77 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshalling.SpanMarshaller`2+ManagedToUnmanagedIn[long,long]:FromManaged(System.Span`1[long],System.Span`1[long]):this (FullOpts) -18 (-12.77 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshalling.SpanMarshaller`2+ManagedToUnmanagedIn[short,long]:FromManaged(System.Span`1[short],System.Span`1[long]):this (FullOpts) -18 (-12.77 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshalling.SpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:FromManaged(System.Span`1[System.__Canon],System.Span`1[long]):this (FullOpts) -18 (-12.77 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshalling.SpanMarshaller`2+ManagedToUnmanagedIn[System.Nullable`1[int],long]:FromManaged(System.Span`1[System.Nullable`1[int]],System.Span`1[long]):this (FullOpts) -18 (-12.77 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshalling.SpanMarshaller`2+ManagedToUnmanagedIn[System.Numerics.Vector`1[float],long]:FromManaged(System.Span`1[System.Numerics.Vector`1[float]],System.Span`1[long]):this (FullOpts) -18 (-12.77 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshalling.SpanMarshaller`2+ManagedToUnmanagedIn[ubyte,long]:FromManaged(System.Span`1[ubyte],System.Span`1[long]):this (FullOpts) -18 (-12.50 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:Write[ubyte](System.Buffers.IBufferWriter`1[ubyte],System.ReadOnlySpan`1[ubyte]) (FullOpts) -30 (-12.35 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ClientConfigPaths:Validate(System.String,ubyte):System.String (FullOpts) -20 (-12.35 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:ConvertChecked[long,long](System.ReadOnlySpan`1[long],System.Span`1[long]) (FullOpts) -20 (-12.35 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:ConvertSaturating[long,long](System.ReadOnlySpan`1[long],System.Span`1[long]) (FullOpts) -20 (-12.35 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:ConvertTruncating[long,long](System.ReadOnlySpan`1[long],System.Span`1[long]) (FullOpts) -18 (-12.24 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:Write[short](System.Buffers.IBufferWriter`1[short],System.ReadOnlySpan`1[short]) (FullOpts) -18 (-12.24 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:g__ParseOffset|32_0(byref,System.ReadOnlySpan`1[ubyte]):ubyte (FullOpts) -34 (-12.23 % of base) : System.Transactions.Local.dasm - System.Transactions.TransactionsEtwProvider:SetActivityId(System.String) (FullOpts) -38 (-12.22 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[System.__Canon](System.ReadOnlySpan`1[System.__Canon],System.ReadOnlySpan`1[System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):int (FullOpts) -16 (-12.21 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigIntegerCalculator:Overwrite(System.Span`1[uint],ulong):int (FullOpts) -18 (-12.16 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:Write[double](System.Buffers.IBufferWriter`1[double],System.ReadOnlySpan`1[double]) (FullOpts) -18 (-12.16 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:Write[int](System.Buffers.IBufferWriter`1[int],System.ReadOnlySpan`1[int]) (FullOpts) -18 (-12.16 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:Write[long](System.Buffers.IBufferWriter`1[long],System.ReadOnlySpan`1[long]) (FullOpts) -18 (-12.16 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:Write[System.Nullable`1[int]](System.Buffers.IBufferWriter`1[System.Nullable`1[int]],System.ReadOnlySpan`1[System.Nullable`1[int]]) (FullOpts) -18 (-12.16 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:Write[System.Numerics.Vector`1[float]](System.Buffers.IBufferWriter`1[System.Numerics.Vector`1[float]],System.ReadOnlySpan`1[System.Numerics.Vector`1[float]]) (FullOpts) -34 (-12.10 % of base) : System.Private.CoreLib.dasm - System.Environment:get_CpuUsage():System.Environment+ProcessCpuUsage (FullOpts) -20 (-12.05 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:TryConvertUniversal[long,long](System.ReadOnlySpan`1[long],System.Span`1[long]):ubyte (FullOpts) -12 (-11.43 % of base) : System.Private.CoreLib.dasm - System.Guid:TryWriteBytes(System.Span`1[ubyte],ubyte,byref):ubyte:this (FullOpts) -35 (-11.08 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[System.Numerics.Vector`1[float]](System.ReadOnlySpan`1[System.Numerics.Vector`1[float]],System.ReadOnlySpan`1[System.Numerics.Vector`1[float]],System.Collections.Generic.IEqualityComparer`1[System.Numerics.Vector`1[float]]):int (FullOpts) -55 (-10.58 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Utf8Parser:TryParseGuidN(System.ReadOnlySpan`1[ubyte],byref,byref):ubyte (FullOpts) -19 (-10.38 % of base) : System.Net.Security.dasm - System.Net.Security.TlsFrameHelper:TryParseServerHello(System.ReadOnlySpan`1[ubyte],byref,int,System.Net.Security.TlsFrameHelper+HelloExtensionCallback):ubyte (FullOpts) -27 (-10.00 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[short](System.ReadOnlySpan`1[short],System.ReadOnlySpan`1[short],System.Collections.Generic.IEqualityComparer`1[short]):int (FullOpts) -19 (-10.00 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X500NameEncoder:ParseOid(System.ReadOnlySpan`1[ushort]):System.ReadOnlySpan`1[ushort] (FullOpts) -27 (-9.93 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[double](System.ReadOnlySpan`1[double],System.ReadOnlySpan`1[double],System.Collections.Generic.IEqualityComparer`1[double]):int (FullOpts) -22 (-9.05 % of base) : System.Private.CoreLib.dasm - System.Guid:TryParseHex(System.ReadOnlySpan`1[ushort],byref,byref):ubyte (FullOpts) (2 methods) -37 (-9.02 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.QilGenerator:CreateGlobalVarPar(System.Xml.Xsl.Xslt.VarPar):this (FullOpts) -23 (-8.71 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[int](System.ReadOnlySpan`1[int],System.ReadOnlySpan`1[int],System.Collections.Generic.IEqualityComparer`1[int]):int (FullOpts) -23 (-8.71 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[long](System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long],System.Collections.Generic.IEqualityComparer`1[long]):int (FullOpts) -23 (-8.71 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[System.Nullable`1[int]](System.ReadOnlySpan`1[System.Nullable`1[int]],System.ReadOnlySpan`1[System.Nullable`1[int]],System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]):int (FullOpts) -23 (-8.68 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:CommonPrefixLength[ubyte](System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Collections.Generic.IEqualityComparer`1[ubyte]):int (FullOpts) -31 (-8.56 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.XxHash64+State:Complete(long,System.ReadOnlySpan`1[ubyte]):ulong:this (FullOpts) -14 (-8.24 % of base) : System.Formats.Cbor.dasm - System.Formats.Cbor.CborWriter:Encode(System.Span`1[ubyte]):int:this (FullOpts) -23 (-7.85 % of base) : System.Memory.dasm - System.Buffers.BuffersExtensions:Write[System.__Canon](System.Buffers.IBufferWriter`1[System.__Canon],System.ReadOnlySpan`1[System.__Canon]) (FullOpts) -17 (-7.83 % of base) : System.Private.CoreLib.dasm - System.AppDomain:get_MonitoringTotalProcessorTime():System.TimeSpan:this (FullOpts) -18 (-7.14 % of base) : System.Net.Security.dasm - System.Net.NegotiateAuthenticationPal+ManagedNtlmNegotiateAuthenticationPal:UnwrapInPlace(System.Span`1[ubyte],byref,byref,byref):int:this (FullOpts) -18 (-7.14 % of base) : System.Net.Security.dasm - System.Net.Security.TlsFrameHelper:TryParseClientHello(System.ReadOnlySpan`1[ubyte],byref,int,System.Net.Security.TlsFrameHelper+HelloExtensionCallback):ubyte (FullOpts) -38 (-7.10 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationILGen:ILGenLoad(System.String,System.Type):this (FullOpts) -37 (-6.94 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.QilGenerator:SetDebugNs(System.Xml.Xsl.Qil.QilNode,System.Xml.Xsl.Qil.QilList):System.Xml.Xsl.Qil.QilNode:this (FullOpts) -45 (-6.88 % of base) : System.Private.Xml.dasm - System.Xml.XmlSqlBinaryReader:AddQName():this (FullOpts) -23 (-6.67 % of base) : System.Net.Security.dasm - System.Net.Security.TlsFrameHelper:TryGetFrameInfo(System.ReadOnlySpan`1[ubyte],byref,int,System.Net.Security.TlsFrameHelper+HelloExtensionCallback):ubyte (FullOpts) -22 (-6.47 % of base) : System.Net.Security.dasm - System.Net.NegotiateAuthenticationPal+ManagedNtlmNegotiateAuthenticationPal:Unwrap(System.ReadOnlySpan`1[ubyte],System.Buffers.IBufferWriter`1[ubyte],byref):int:this (FullOpts) -23 (-6.44 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:StableSortByKey[int,long](System.Collections.Generic.List`1[int],System.Func`2[int,long]) (FullOpts) -23 (-6.44 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:StableSortByKey[long,long](System.Collections.Generic.List`1[long],System.Func`2[long,long]) (FullOpts) -23 (-6.44 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:StableSortByKey[System.Nullable`1[int],long](System.Collections.Generic.List`1[System.Nullable`1[int]],System.Func`2[System.Nullable`1[int],long]) (FullOpts) -23 (-6.42 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:StableSortByKey[short,long](System.Collections.Generic.List`1[short],System.Func`2[short,long]) (FullOpts) -23 (-6.42 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:StableSortByKey[ubyte,long](System.Collections.Generic.List`1[ubyte],System.Func`2[ubyte,long]) (FullOpts) -23 (-6.41 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:StableSortByKey[double,long](System.Collections.Generic.List`1[double],System.Func`2[double,long]) (FullOpts) 228 total methods with Code Size differences (200 improved, 28 regressed), 231211 unchanged. -------------------------------------------------------------------------------- ```

Artifacts:

MihuBot commented 1 month ago

Top method regressions

22 (3.08 % of base) - System.Globalization.TextInfo:ChangeCaseCommon[double](System.String):System.String:this ```diff ; Assembly listing for method System.Globalization.TextInfo:ChangeCaseCommon[double](System.String):System.String:this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 27 single block inlinees; 17 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T02] ( 10, 6 ) ref -> rbx this class-hnd single-def ; V01 arg1 [V01,T03] ( 8, 5.50) ref -> r15 class-hnd single-def ;* V02 loc0 [V02,T60] ( 0, 0 ) ubyte -> zero-ref ; V03 loc1 [V03,T05] ( 4, 5.50) long -> r13 ; V04 loc2 [V04 ] ( 2, 1 ) byref -> [rbp-0x30] must-init pinned single-def ; V05 loc3 [V05,T00] ( 15, 21.50) long -> r12 ; V06 loc4 [V06,T06] ( 2, 4.50) long -> rdi ; V07 loc5 [V07,T01] ( 4, 12 ) int -> rax -; V08 loc6 [V08,T34] ( 3, 1.50) int -> rax -; V09 loc7 [V09,T14] ( 4, 2 ) ref -> r13 class-hnd exact single-def +; V08 loc6 [V08,T35] ( 3, 1.50) int -> rax +; V09 loc7 [V09,T15] ( 4, 2 ) ref -> r13 class-hnd exact single-def ;* V10 loc8 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op ;* V11 loc9 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op ; V12 loc10 [V12,T07] ( 7, 3.50) ref -> [rbp-0x68] class-hnd exact spill-single-def ;* V13 loc11 [V13 ] ( 0, 0 ) struct (16) zero-ref ;* V14 loc12 [V14 ] ( 0, 0 ) long -> zero-ref ; V15 loc13 [V15 ] ( 3, 1.50) byref -> [rbp-0x38] must-init pinned ;# V16 OutArgs [V16 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V17 tmp1 [V17,T50] ( 2, 1 ) long -> r13 -; V18 tmp2 [V18,T35] ( 3, 1.50) long -> rcx +; V18 tmp2 [V18,T36] ( 3, 1.50) long -> rcx ;* V19 tmp3 [V19 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V20 tmp4 [V20 ] ( 0, 0 ) int -> zero-ref ;* V21 tmp5 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V22 tmp6 [V22 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" ;* V23 tmp7 [V23 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V24 tmp8 [V24 ] ( 0, 0 ) int -> zero-ref ;* V25 tmp9 [V25 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V26 tmp10 [V26 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -; V27 tmp11 [V27,T16] ( 2, 2 ) byref -> rax single-def "Inlining Arg" -; V28 tmp12 [V28,T20] ( 2, 2 ) int -> rcx "Inlining Arg" +; V27 tmp11 [V27,T18] ( 2, 2 ) byref -> rax single-def "Inlining Arg" +; V28 tmp12 [V28,T22] ( 2, 2 ) int -> rcx "Inlining Arg" ;* V29 tmp13 [V29 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" ; V30 tmp14 [V30,T12] ( 3, 3 ) int -> rdx "Inlining Arg" ;* V31 tmp15 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V32 tmp16 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" ;* V33 tmp17 [V33 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V34 tmp18 [V34 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V35 tmp19 [V35 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V36 tmp20 [V36 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V37 tmp21 [V37 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -; V38 tmp22 [V38,T21] ( 2, 2 ) int -> rdi "Inlining Arg" +; V38 tmp22 [V38,T23] ( 2, 2 ) int -> rdi "Inlining Arg" ;* V39 tmp23 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V40 tmp24 [V40 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" -; V41 tmp25 [V41,T17] ( 2, 2 ) byref -> r15 single-def "Inlining Arg" -; V42 tmp26 [V42,T22] ( 2, 2 ) int -> r14 "Inlining Arg" -; V43 tmp27 [V43,T23] ( 2, 2 ) int -> rdi "Inlining Arg" +; V41 tmp25 [V41,T19] ( 2, 2 ) byref -> r15 single-def "Inlining Arg" +; V42 tmp26 [V42,T24] ( 2, 2 ) int -> r14 "Inlining Arg" +; V43 tmp27 [V43,T13] ( 3, 3 ) int -> rdi "Inlining Arg" ;* V44 tmp28 [V44 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V45 tmp29 [V45,T18] ( 2, 2 ) byref -> rax single-def "Inlining Arg" -; V46 tmp30 [V46,T24] ( 2, 2 ) int -> r12 "Inlining Arg" +; V45 tmp29 [V45,T20] ( 2, 2 ) byref -> rax single-def "Inlining Arg" +; V46 tmp30 [V46,T25] ( 2, 2 ) int -> r12 "Inlining Arg" ;* V47 tmp31 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V48 tmp32 [V48,T67] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" ; V49 tmp33 [V49 ] ( 5, 2.50) int -> [rbp-0x40] do-not-enreg[X] addr-exposed ld-addr-op "Inline stloc first use temp" ; V50 tmp34 [V50 ] ( 3, 1.50) byref -> [rbp-0x48] must-init pinned "Inline stloc first use temp" ;* V51 tmp35 [V51 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V52 tmp36 [V52 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V53 tmp37 [V53 ] ( 3, 1.50) byref -> [rbp-0x50] must-init pinned "Inline stloc first use temp" ;* V54 tmp38 [V54 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V55 tmp39 [V55,T51] ( 2, 1 ) int -> rax ;* V56 tmp40 [V56 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V57 tmp41 [V57 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V58 tmp42 [V58 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" ;* V59 tmp43 [V59 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V60 tmp44 [V60 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V61 tmp45 [V61 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V62 tmp46 [V62 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V63 tmp47 [V63 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V64 tmp48 [V64,T68] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V65 tmp49 [V65 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V66 tmp50 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V67 tmp51 [V67 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V68 tmp52 [V68 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V69 tmp53 [V69 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V70 tmp54 [V70 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V71 tmp55 [V71 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V72 tmp56 [V72,T69] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V73 tmp57 [V73 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" ;* V74 tmp58 [V74 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V75 tmp59 [V75 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V76 tmp60 [V76 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V77 tmp61 [V77 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" ;* V78 tmp62 [V78 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V79 tmp63 [V79 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V80 tmp64 [V80 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V81 tmp65 [V81 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V82 tmp66 [V82 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V83 tmp67 [V83 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V84 tmp68 [V84 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V85 tmp69 [V85 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V86 tmp70 [V86 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V87 tmp71 [V87 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V88 tmp72 [V88 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V89 tmp73 [V89 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V90 tmp74 [V90 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V91 tmp75 [V91 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V92 tmp76 [V92 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" ;* V93 tmp77 [V93 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V94 tmp78 [V94 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V95 tmp79 [V95 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V96 tmp80 [V96 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V97 tmp81 [V97 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V98 tmp82 [V98 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V99 tmp83 [V99 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" -; V100 tmp84 [V100,T19] ( 2, 2 ) byref -> rdi single-def "Inlining Arg" -; V101 tmp85 [V101,T25] ( 2, 2 ) int -> rdx "Inlining Arg" +; V100 tmp84 [V100,T21] ( 2, 2 ) byref -> rdi single-def "Inlining Arg" +; V101 tmp85 [V101,T26] ( 2, 2 ) int -> rdx "Inlining Arg" ;* V102 tmp86 [V102 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" -; V103 tmp87 [V103,T13] ( 3, 3 ) int -> rsi "Inlining Arg" +; V103 tmp87 [V103,T14] ( 3, 3 ) int -> rsi "Inlining Arg" ;* V104 tmp88 [V104 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V105 tmp89 [V105 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" ;* V106 tmp90 [V106 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V107 tmp91 [V107 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V108 tmp92 [V108 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V109 tmp93 [V109 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V110 tmp94 [V110 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V111 tmp95 [V111 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V112 tmp96 [V112 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V113 tmp97 [V113 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V114 tmp98 [V114 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" -; V115 tmp99 [V115,T33] ( 3, 1.50) byref -> [rbp-0x70] spill-single-def "field V10._reference (fldOffset=0x0)" P-INDEP -; V116 tmp100 [V116,T36] ( 3, 1.50) int -> [rbp-0x54] spill-single-def "field V10._length (fldOffset=0x8)" P-INDEP +; V115 tmp99 [V115,T34] ( 3, 1.50) byref -> [rbp-0x70] spill-single-def "field V10._reference (fldOffset=0x0)" P-INDEP +; V116 tmp100 [V116,T16] ( 4, 2 ) int -> [rbp-0x54] spill-single-def "field V10._length (fldOffset=0x8)" P-INDEP ;* V117 tmp101 [V117 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP ;* V118 tmp102 [V118 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP ; V119 tmp103 [V119,T40] ( 2, 1 ) byref -> rdi single-def "field V13._reference (fldOffset=0x0)" P-INDEP ; V120 tmp104 [V120,T52] ( 2, 1 ) int -> rdx "field V13._length (fldOffset=0x8)" P-INDEP ; V121 tmp105 [V121,T41] ( 2, 1 ) byref -> rdi single-def "field V19._reference (fldOffset=0x0)" P-INDEP ; V122 tmp106 [V122,T53] ( 2, 1 ) int -> rdx "field V19._length (fldOffset=0x8)" P-INDEP ; V123 tmp107 [V123,T42] ( 2, 1 ) byref -> rax single-def "field V21._reference (fldOffset=0x0)" P-INDEP ; V124 tmp108 [V124,T54] ( 2, 1 ) int -> rcx "field V21._length (fldOffset=0x8)" P-INDEP ; V125 tmp109 [V125,T43] ( 2, 1 ) byref -> r15 "field V22._reference (fldOffset=0x0)" P-INDEP ; V126 tmp110 [V126,T55] ( 2, 1 ) int -> r14 "field V22._length (fldOffset=0x8)" P-INDEP ;* V127 tmp111 [V127 ] ( 0, 0 ) byref -> zero-ref single-def "field V23._reference (fldOffset=0x0)" P-INDEP ;* V128 tmp112 [V128 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP ; V129 tmp113 [V129,T44] ( 2, 1 ) byref -> rsi single-def "field V29._reference (fldOffset=0x0)" P-INDEP ; V130 tmp114 [V130,T37] ( 3, 1.50) int -> rdx "field V29._length (fldOffset=0x8)" P-INDEP ; V131 tmp115 [V131,T45] ( 2, 1 ) byref -> rsi single-def "field V31._reference (fldOffset=0x0)" P-INDEP ; V132 tmp116 [V132,T56] ( 2, 1 ) int -> rdx "field V31._length (fldOffset=0x8)" P-INDEP ;* V133 tmp117 [V133 ] ( 0, 0 ) byref -> zero-ref "field V32._reference (fldOffset=0x0)" P-INDEP ;* V134 tmp118 [V134 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP ;* V135 tmp119 [V135 ] ( 0, 0 ) byref -> zero-ref single-def "field V34._reference (fldOffset=0x0)" P-INDEP ;* V136 tmp120 [V136 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP ; V137 tmp121 [V137,T46] ( 2, 1 ) byref -> r15 single-def "field V39._reference (fldOffset=0x0)" P-INDEP ; V138 tmp122 [V138,T57] ( 2, 1 ) int -> r14 "field V39._length (fldOffset=0x8)" P-INDEP ;* V139 tmp123 [V139 ] ( 0, 0 ) byref -> zero-ref single-def "field V40._reference (fldOffset=0x0)" P-INDEP ;* V140 tmp124 [V140 ] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP ; V141 tmp125 [V141,T47] ( 2, 1 ) byref -> rax single-def "field V44._reference (fldOffset=0x0)" P-INDEP ; V142 tmp126 [V142,T58] ( 2, 1 ) int -> r12 "field V44._length (fldOffset=0x8)" P-INDEP ; V143 tmp127 [V143,T08] ( 4, 2 ) byref -> r15 single-def "field V47._reference (fldOffset=0x0)" P-INDEP ; V144 tmp128 [V144,T10] ( 4, 2 ) int -> r14 "field V47._length (fldOffset=0x8)" P-INDEP ; V145 tmp129 [V145,T09] ( 4, 2 ) byref -> [rbp-0x78] spill-single-def "field V52._reference (fldOffset=0x0)" P-INDEP ; V146 tmp130 [V146,T11] ( 3, 1.50) int -> r12 "field V52._length (fldOffset=0x8)" P-INDEP ;* V147 tmp131 [V147 ] ( 0, 0 ) byref -> zero-ref single-def "field V56._reference (fldOffset=0x0)" P-INDEP ;* V148 tmp132 [V148 ] ( 0, 0 ) int -> zero-ref "field V56._length (fldOffset=0x8)" P-INDEP ;* V149 tmp133 [V149,T61] ( 0, 0 ) byref -> zero-ref single-def "field V57._reference (fldOffset=0x0)" P-INDEP ;* V150 tmp134 [V150,T70] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP ;* V151 tmp135 [V151,T62] ( 0, 0 ) byref -> zero-ref single-def "field V58._reference (fldOffset=0x0)" P-INDEP ;* V152 tmp136 [V152,T71] ( 0, 0 ) int -> zero-ref "field V58._length (fldOffset=0x8)" P-INDEP ;* V153 tmp137 [V153 ] ( 0, 0 ) byref -> zero-ref "field V59._reference (fldOffset=0x0)" P-INDEP ;* V154 tmp138 [V154 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP ;* V155 tmp139 [V155,T63] ( 0, 0 ) byref -> zero-ref single-def "field V62._reference (fldOffset=0x0)" P-INDEP ;* V156 tmp140 [V156 ] ( 0, 0 ) int -> zero-ref "field V62._length (fldOffset=0x8)" P-INDEP ;* V157 tmp141 [V157,T64] ( 0, 0 ) byref -> zero-ref single-def "field V65._reference (fldOffset=0x0)" P-INDEP ;* V158 tmp142 [V158,T72] ( 0, 0 ) int -> zero-ref "field V65._length (fldOffset=0x8)" P-INDEP ;* V159 tmp143 [V159 ] ( 0, 0 ) byref -> zero-ref single-def "field V66._reference (fldOffset=0x0)" P-INDEP ;* V160 tmp144 [V160 ] ( 0, 0 ) int -> zero-ref "field V66._length (fldOffset=0x8)" P-INDEP ;* V161 tmp145 [V161,T65] ( 0, 0 ) byref -> zero-ref single-def "field V70._reference (fldOffset=0x0)" P-INDEP ;* V162 tmp146 [V162 ] ( 0, 0 ) int -> zero-ref "field V70._length (fldOffset=0x8)" P-INDEP ;* V163 tmp147 [V163,T66] ( 0, 0 ) byref -> zero-ref single-def "field V73._reference (fldOffset=0x0)" P-INDEP ;* V164 tmp148 [V164,T73] ( 0, 0 ) int -> zero-ref "field V73._length (fldOffset=0x8)" P-INDEP ;* V165 tmp149 [V165 ] ( 0, 0 ) byref -> zero-ref "field V75._reference (fldOffset=0x0)" P-INDEP ;* V166 tmp150 [V166 ] ( 0, 0 ) int -> zero-ref "field V75._length (fldOffset=0x8)" P-INDEP ;* V167 tmp151 [V167 ] ( 0, 0 ) byref -> zero-ref "field V76._reference (fldOffset=0x0)" P-INDEP ;* V168 tmp152 [V168 ] ( 0, 0 ) int -> zero-ref "field V76._length (fldOffset=0x8)" P-INDEP ;* V169 tmp153 [V169 ] ( 0, 0 ) byref -> zero-ref "field V77._reference (fldOffset=0x0)" P-INDEP ;* V170 tmp154 [V170 ] ( 0, 0 ) int -> zero-ref "field V77._length (fldOffset=0x8)" P-INDEP ;* V171 tmp155 [V171 ] ( 0, 0 ) byref -> zero-ref "field V78._reference (fldOffset=0x0)" P-INDEP ;* V172 tmp156 [V172 ] ( 0, 0 ) int -> zero-ref "field V78._length (fldOffset=0x8)" P-INDEP ;* V173 tmp157 [V173 ] ( 0, 0 ) byref -> zero-ref "field V81._reference (fldOffset=0x0)" P-INDEP ;* V174 tmp158 [V174 ] ( 0, 0 ) int -> zero-ref "field V81._length (fldOffset=0x8)" P-INDEP ;* V175 tmp159 [V175 ] ( 0, 0 ) byref -> zero-ref "field V84._reference (fldOffset=0x0)" P-INDEP ;* V176 tmp160 [V176 ] ( 0, 0 ) int -> zero-ref "field V84._length (fldOffset=0x8)" P-INDEP ;* V177 tmp161 [V177 ] ( 0, 0 ) byref -> zero-ref "field V85._reference (fldOffset=0x0)" P-INDEP ;* V178 tmp162 [V178 ] ( 0, 0 ) int -> zero-ref "field V85._length (fldOffset=0x8)" P-INDEP ;* V179 tmp163 [V179 ] ( 0, 0 ) byref -> zero-ref "field V89._reference (fldOffset=0x0)" P-INDEP ;* V180 tmp164 [V180 ] ( 0, 0 ) int -> zero-ref "field V89._length (fldOffset=0x8)" P-INDEP ;* V181 tmp165 [V181 ] ( 0, 0 ) byref -> zero-ref "field V92._reference (fldOffset=0x0)" P-INDEP ;* V182 tmp166 [V182 ] ( 0, 0 ) int -> zero-ref "field V92._length (fldOffset=0x8)" P-INDEP ;* V183 tmp167 [V183 ] ( 0, 0 ) byref -> zero-ref single-def "field V94._reference (fldOffset=0x0)" P-INDEP ;* V184 tmp168 [V184 ] ( 0, 0 ) int -> zero-ref "field V94._length (fldOffset=0x8)" P-INDEP ;* V185 tmp169 [V185 ] ( 0, 0 ) byref -> zero-ref single-def "field V95._reference (fldOffset=0x0)" P-INDEP ;* V186 tmp170 [V186 ] ( 0, 0 ) int -> zero-ref "field V95._length (fldOffset=0x8)" P-INDEP ; V187 tmp171 [V187,T48] ( 2, 1 ) byref -> r15 single-def "field V102._reference (fldOffset=0x0)" P-INDEP ; V188 tmp172 [V188,T38] ( 3, 1.50) int -> rsi "field V102._length (fldOffset=0x8)" P-INDEP ; V189 tmp173 [V189,T49] ( 2, 1 ) byref -> r15 single-def "field V104._reference (fldOffset=0x0)" P-INDEP ; V190 tmp174 [V190,T59] ( 2, 1 ) int -> rsi "field V104._length (fldOffset=0x8)" P-INDEP ;* V191 tmp175 [V191 ] ( 0, 0 ) byref -> zero-ref "field V105._reference (fldOffset=0x0)" P-INDEP ;* V192 tmp176 [V192 ] ( 0, 0 ) int -> zero-ref "field V105._length (fldOffset=0x8)" P-INDEP ;* V193 tmp177 [V193 ] ( 0, 0 ) byref -> zero-ref single-def "field V107._reference (fldOffset=0x0)" P-INDEP ;* V194 tmp178 [V194 ] ( 0, 0 ) int -> zero-ref "field V107._length (fldOffset=0x8)" P-INDEP -; V195 tmp179 [V195,T26] ( 2, 2 ) long -> r13 "Cast away GC" -; V196 tmp180 [V196,T27] ( 2, 2 ) long -> r15 "Cast away GC" -; V197 tmp181 [V197,T28] ( 2, 2 ) long -> rcx "Cast away GC" -; V198 tmp182 [V198,T29] ( 2, 2 ) long -> r15 "argument with side effect" -; V199 tmp183 [V199,T30] ( 2, 2 ) int -> rdx "argument with side effect" -; V200 tmp184 [V200,T31] ( 2, 2 ) long -> rcx "argument with side effect" -; V201 tmp185 [V201,T32] ( 2, 2 ) long -> rcx "Cast away GC" -; V202 cse0 [V202,T15] ( 4, 2 ) long -> [rbp-0x60] spill-single-def "CSE #04: conservative" +; V195 tmp179 [V195,T27] ( 2, 2 ) long -> r13 "Cast away GC" +; V196 tmp180 [V196,T28] ( 2, 2 ) long -> r15 "Cast away GC" +; V197 tmp181 [V197,T29] ( 2, 2 ) long -> rcx "Cast away GC" +; V198 tmp182 [V198,T30] ( 2, 2 ) long -> r15 "argument with side effect" +; V199 tmp183 [V199,T31] ( 2, 2 ) int -> rdx "argument with side effect" +; V200 tmp184 [V200,T32] ( 2, 2 ) long -> rcx "argument with side effect" +; V201 tmp185 [V201,T33] ( 2, 2 ) long -> rcx "Cast away GC" +; V202 cse0 [V202,T17] ( 4, 2 ) long -> [rbp-0x60] spill-single-def "CSE #04: conservative" ; V203 cse1 [V203,T39] ( 3, 1.50) long -> rsi "CSE #06: conservative" ; V204 cse2 [V204,T04] ( 11, 6.50) int -> r14 "CSE #01: aggressive" ; ; Lcl frame size = 88 G_M28728_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 88 lea rbp, [rsp+0x80] vxorps xmm8, xmm8, xmm8 vmovdqu ymmword ptr [rbp-0x50], ymm8 xor eax, eax mov qword ptr [rbp-0x30], rax mov rbx, rdi mov r15, rsi ;; size=44 bbWeight=1 PerfScore 10.83 G_M28728_IG02: mov r14d, dword ptr [r15+0x08] test r14d, r14d je G_M28728_IG24 ;; size=13 bbWeight=1 PerfScore 3.25 G_M28728_IG03: lea rdi, bword ptr [r15+0x0C] mov bword ptr [rbp-0x30], rdi mov r13, bword ptr [rbp-0x30] xor r12d, r12d cmp byte ptr [rbx+0x29], 0 jne SHORT G_M28728_IG04 mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this call [rax]System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this ;; size=36 bbWeight=0.50 PerfScore 5.12 G_M28728_IG04: cmp byte ptr [rbx+0x29], 2 jne SHORT G_M28728_IG09 cmp r14d, 2 jl SHORT G_M28728_IG08 lea edi, [r14-0x02] align [0 bytes for IG05] ;; size=16 bbWeight=0.50 PerfScore 2.88 G_M28728_IG05: mov eax, dword ptr [r13+2*r12] test eax, 0xD1FFAB1E jne SHORT G_M28728_IG09 ;; size=12 bbWeight=4 PerfScore 13.00 G_M28728_IG06: lea ecx, [rax+D1FFAB1EH] add eax, 0xD1FFAB1E xor eax, ecx test eax, 0xD1FFAB1E jne G_M28728_IG15 ;; size=24 bbWeight=2 PerfScore 4.50 G_M28728_IG07: add r12, 2 cmp r12, rdi jbe SHORT G_M28728_IG05 ;; size=9 bbWeight=4 PerfScore 6.00 G_M28728_IG08: test r14b, 1 je G_M28728_IG22 movzx rax, word ptr [r13+2*r12] cmp eax, 127 jbe G_M28728_IG14 ;; size=25 bbWeight=0.50 PerfScore 2.25 G_M28728_IG09: mov edi, r14d call System.String:FastAllocateString(int):System.String mov gword ptr [rbp-0x68], rax test r12, r12 je SHORT G_M28728_IG10 lea rdi, bword ptr [rax+0x0C] mov edx, dword ptr [rax+0x08] mov esi, r12d cmp r14d, esi - jb G_M28728_IG27 + jb G_M28728_IG28 add r15, 12 cmp esi, edx - ja G_M28728_IG26 + jg G_M28728_IG26 mov edx, esi add rdx, rdx mov rsi, r15 mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong) call [rcx]System.SpanHelpers:Memmove(byref,byref,ulong) mov rax, gword ptr [rbp-0x68] ;; size=72 bbWeight=0.50 PerfScore 7.00 G_M28728_IG10: test rax, rax je SHORT G_M28728_IG11 lea r8, bword ptr [rax+0x0C] mov bword ptr [rbp-0x38], r8 mov rcx, bword ptr [rbp-0x38] jmp SHORT G_M28728_IG12 ;; size=19 bbWeight=0.50 PerfScore 2.88 G_M28728_IG11: xor ecx, ecx ;; size=2 bbWeight=0.50 PerfScore 0.12 G_M28728_IG12: mov r8d, dword ptr [rax+0x08] sub r8d, r12d lea rsi, [r13+2*r12] mov edx, r14d sub edx, r12d lea rcx, [rcx+2*r12] mov rdi, rbx xor r9d, r9d mov r10, 0xD1FFAB1E ; code for System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this call [r10]System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this xor eax, eax mov bword ptr [rbp-0x38], rax mov rax, gword ptr [rbp-0x68] ;; size=51 bbWeight=0.50 PerfScore 5.62 G_M28728_IG13: add rsp, 88 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0.50 PerfScore 2.12 G_M28728_IG14: add eax, -65 cmp eax, 25 ja G_M28728_IG22 ;; size=12 bbWeight=0.50 PerfScore 0.75 G_M28728_IG15: mov edi, r14d call System.String:FastAllocateString(int):System.String mov r13, rax lea rax, bword ptr [r13+0x0C] mov ecx, dword ptr [r13+0x08] mov bword ptr [rbp-0x70], rax mov dword ptr [rbp-0x54], ecx mov edx, r12d cmp r14d, edx - jb G_M28728_IG27 + jb G_M28728_IG28 lea rsi, bword ptr [r15+0x0C] cmp edx, ecx - ja G_M28728_IG26 + jg G_M28728_IG26 mov r8d, edx add r8, r8 mov qword ptr [rbp-0x60], r8 mov rdx, r8 mov rdi, rax mov r9, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong) call [r9]System.SpanHelpers:Memmove(byref,byref,ulong) mov edi, r12d mov rax, qword ptr [rbp-0x60] lea r15, bword ptr [r15+rax+0x0C] sub r14d, edi mov edi, r12d - add rax, bword ptr [rbp-0x70] mov r12d, dword ptr [rbp-0x54] + cmp edi, r12d + ja G_M28728_IG27 + add rax, bword ptr [rbp-0x70] sub r12d, edi mov bword ptr [rbp-0x78], rax test r14d, r14d je G_M28728_IG19 mov rcx, bword ptr [rbp-0x78] xor edi, edi mov dword ptr [rbp-0x40], edi cmp byte ptr [rbx+0x29], 0 jne SHORT G_M28728_IG16 mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this call [rax]System.Globalization.TextInfo:PopulateIsAsciiCasingSameAsInvariant():this mov rcx, bword ptr [rbp-0x78] - ;; size=155 bbWeight=0.50 PerfScore 16.75 + ;; size=164 bbWeight=0.50 PerfScore 17.38 G_M28728_IG16: cmp byte ptr [rbx+0x29], 2 jne SHORT G_M28728_IG17 mov rdi, r15 mov esi, r14d mov rdx, rcx mov ecx, r12d lea r8, [rbp-0x40] mov rax, 0xD1FFAB1E ; code for System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToLowerConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):int call [rax]System.Text.Ascii:ChangeCase[ushort,ushort,System.Text.Ascii+ToLowerConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):int cmp eax, 3 mov rcx, bword ptr [rbp-0x78] jne SHORT G_M28728_IG19 ;; size=43 bbWeight=0.50 PerfScore 5.50 G_M28728_IG17: mov bword ptr [rbp-0x48], r15 mov bword ptr [rbp-0x50], rcx movsxd rsi, dword ptr [rbp-0x40] add rsi, rsi add r15, rsi mov edx, r14d sub edx, dword ptr [rbp-0x40] add rcx, rsi mov rsi, r15 mov r8d, r12d sub r8d, dword ptr [rbp-0x40] mov rdi, rbx xor r9d, r9d mov rax, 0xD1FFAB1E ; code for System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this call [rax]System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this xor eax, eax mov bword ptr [rbp-0x50], rax ;; size=61 bbWeight=0.50 PerfScore 7.75 G_M28728_IG18: mov bword ptr [rbp-0x48], rax ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M28728_IG19: xor rax, rax mov bword ptr [rbp-0x48], rax ;; size=6 bbWeight=0.50 PerfScore 0.62 G_M28728_IG20: mov bword ptr [rbp-0x50], rax mov rax, r13 ;; size=7 bbWeight=0.50 PerfScore 0.62 G_M28728_IG21: add rsp, 88 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0.50 PerfScore 2.12 G_M28728_IG22: mov rax, r15 ;; size=3 bbWeight=0.50 PerfScore 0.12 G_M28728_IG23: add rsp, 88 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0.50 PerfScore 2.12 G_M28728_IG24: mov rax, 0xD1FFAB1E ; '' ;; size=10 bbWeight=0.50 PerfScore 0.12 G_M28728_IG25: add rsp, 88 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0.50 PerfScore 2.12 G_M28728_IG26: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort() call [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort() int3 ;; size=13 bbWeight=0 PerfScore 0.00 G_M28728_IG27: + mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException() + call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException() + int3 + ;; size=13 bbWeight=0 PerfScore 0.00 +G_M28728_IG28: mov edi, 33 mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int) call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int) int3 ;; size=18 bbWeight=0 PerfScore 0.00 -; Total bytes of code 715, prolog size 44, PerfScore 104.71, instruction count 205, allocated bytes for code 715 (MethodHash=5db18fc7) for method System.Globalization.TextInfo:ChangeCaseCommon[double](System.String):System.String:this (FullOpts) +; Total bytes of code 737, prolog size 44, PerfScore 105.33, instruction count 210, allocated bytes for code 737 (MethodHash=5db18fc7) for method System.Globalization.TextInfo:ChangeCaseCommon[double](System.String):System.String:this (FullOpts) ```

Larger list of diffs: https://gist.github.com/MihuBot/10bee916393566a1d58940d669d5e5c1

MihuBot commented 1 month ago

Top method improvements

-196 (-5.57 % of base) - System.Diagnostics.Tracing.EventPipePayloadDecoder:DecodePayload(byref,System.ReadOnlySpan`1[ubyte]):System.Object[] ```diff ; Assembly listing for method System.Diagnostics.Tracing.EventPipePayloadDecoder:DecodePayload(byref,System.ReadOnlySpan`1[ubyte]):System.Object[] (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 47 single block inlinees; 34 inlinees without PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T61] ( 3, 3 ) byref -> rdi single-def ;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def ; V02 loc0 [V02,T26] ( 8, 11.25) ref -> r14 class-hnd single-def ; V03 loc1 [V03,T06] ( 47, 32.53) ref -> r13 class-hnd exact single-def ; V04 loc2 [V04,T09] ( 39, 19.56) int -> r12 ; V05 loc3 [V05,T03] ( 42, 50 ) ref -> [rbp-0x48] class-hnd ;* V06 loc4 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd ; V07 loc5 [V07,T10] ( 14, 14 ) int -> rdx ;* V08 loc6 [V08 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ; V09 loc7 [V09,T02] ( 17, 84.16) int -> rdi ;# V10 OutArgs [V10 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V11 tmp1 [V11,T08] ( 20, 20 ) ref -> rax ; V12 tmp2 [V12,T11] ( 6, 12 ) ref -> rax class-hnd exact "Single-def Box Helper" ; V13 tmp3 [V13,T12] ( 6, 12 ) ref -> rax class-hnd exact "Single-def Box Helper" ; V14 tmp4 [V14,T13] ( 6, 12 ) ref -> rax class-hnd exact "Single-def Box Helper" ; V15 tmp5 [V15,T14] ( 6, 12 ) ref -> rax class-hnd exact "Single-def Box Helper" ; V16 tmp6 [V16,T15] ( 6, 12 ) ref -> rax class-hnd exact "Single-def Box Helper" ; V17 tmp7 [V17,T16] ( 6, 12 ) ref -> rax class-hnd exact "Single-def Box Helper" ; V18 tmp8 [V18,T17] ( 6, 12 ) ref -> rax class-hnd exact "Single-def Box Helper" ; V19 tmp9 [V19,T18] ( 6, 12 ) ref -> rax class-hnd exact "Single-def Box Helper" ;* V20 tmp10 [V20 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V21 tmp11 [V21 ] ( 0, 0 ) ref -> zero-ref ;* V22 tmp12 [V22 ] ( 0, 0 ) int -> zero-ref ; V23 tmp13 [V23,T19] ( 6, 12 ) ref -> rax class-hnd exact "Single-def Box Helper" ; V24 tmp14 [V24,T44] ( 4, 8 ) struct (16) [rbp-0x38] ld-addr-op "NewObj constructor temp" ;* V25 tmp15 [V25 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V26 tmp16 [V26,T20] ( 6, 12 ) ref -> rax class-hnd exact "Single-def Box Helper" ; V27 tmp17 [V27,T21] ( 6, 12 ) ref -> rax class-hnd exact "Single-def Box Helper" ; V28 tmp18 [V28,T22] ( 6, 12 ) ref -> rax class-hnd exact "Single-def Box Helper" ; V29 tmp19 [V29,T23] ( 6, 12 ) ref -> rax class-hnd exact "Single-def Box Helper" ; V30 tmp20 [V30,T24] ( 6, 12 ) ref -> rax class-hnd exact "Single-def Box Helper" ;* V31 tmp21 [V31 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V32 tmp22 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V33 tmp23 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V34 tmp24 [V34 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V35 tmp25 [V35,T28] ( 4, 8 ) byref -> r15 "Inlining Arg" ; V36 tmp26 [V36,T45] ( 4, 8 ) int -> rbx "Inlining Arg" ;* V37 tmp27 [V37 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V38 tmp28 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V39 tmp29 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V40 tmp30 [V40 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V41 tmp31 [V41,T29] ( 4, 8 ) byref -> r15 "Inlining Arg" ; V42 tmp32 [V42,T46] ( 4, 8 ) int -> rbx "Inlining Arg" ;* V43 tmp33 [V43 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V44 tmp34 [V44 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V45 tmp35 [V45 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V46 tmp36 [V46 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V47 tmp37 [V47,T30] ( 4, 8 ) byref -> r15 "Inlining Arg" ; V48 tmp38 [V48,T47] ( 4, 8 ) int -> rbx "Inlining Arg" ;* V49 tmp39 [V49 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V50 tmp40 [V50 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V51 tmp41 [V51 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V52 tmp42 [V52 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V53 tmp43 [V53,T31] ( 4, 8 ) byref -> r15 "Inlining Arg" ; V54 tmp44 [V54,T48] ( 4, 8 ) int -> rbx "Inlining Arg" ;* V55 tmp45 [V55 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V56 tmp46 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V57 tmp47 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V58 tmp48 [V58 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V59 tmp49 [V59,T32] ( 4, 8 ) byref -> r15 "Inlining Arg" ; V60 tmp50 [V60,T49] ( 4, 8 ) int -> rbx "Inlining Arg" ;* V61 tmp51 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V62 tmp52 [V62 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V63 tmp53 [V63 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V64 tmp54 [V64,T33] ( 4, 8 ) byref -> r15 "Inlining Arg" ; V65 tmp55 [V65,T50] ( 4, 8 ) int -> rbx "Inlining Arg" ;* V66 tmp56 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V67 tmp57 [V67 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V68 tmp58 [V68 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V69 tmp59 [V69,T34] ( 4, 8 ) byref -> r15 "Inlining Arg" ; V70 tmp60 [V70,T51] ( 4, 8 ) int -> rbx "Inlining Arg" ;* V71 tmp61 [V71 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V72 tmp62 [V72 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V73 tmp63 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V74 tmp64 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V75 tmp65 [V75,T35] ( 4, 8 ) byref -> r15 "Inlining Arg" ; V76 tmp66 [V76,T52] ( 4, 8 ) int -> rbx "Inlining Arg" ;* V77 tmp67 [V77 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V78 tmp68 [V78 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V79 tmp69 [V79 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V80 tmp70 [V80 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V81 tmp71 [V81,T36] ( 4, 8 ) byref -> r15 "Inlining Arg" ; V82 tmp72 [V82,T53] ( 4, 8 ) int -> rbx "Inlining Arg" ;* V83 tmp73 [V83 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V84 tmp74 [V84 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V85 tmp75 [V85 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V86 tmp76 [V86 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V87 tmp77 [V87,T37] ( 4, 8 ) byref -> r15 "Inlining Arg" ; V88 tmp78 [V88,T54] ( 4, 8 ) int -> rbx "Inlining Arg" ;* V89 tmp79 [V89 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V90 tmp80 [V90 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V91 tmp81 [V91 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V92 tmp82 [V92 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V93 tmp83 [V93,T38] ( 4, 8 ) byref -> r15 "Inlining Arg" ; V94 tmp84 [V94,T55] ( 4, 8 ) int -> rbx "Inlining Arg" ;* V95 tmp85 [V95 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V96 tmp86 [V96 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V97 tmp87 [V97 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V98 tmp88 [V98 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V99 tmp89 [V99,T39] ( 4, 8 ) byref -> r15 "Inlining Arg" ; V100 tmp90 [V100,T56] ( 4, 8 ) int -> rbx "Inlining Arg" ;* V101 tmp91 [V101 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V102 tmp92 [V102 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V103 tmp93 [V103 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V104 tmp94 [V104 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V105 tmp95 [V105 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V106 tmp96 [V106 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V107 tmp97 [V107,T40] ( 4, 8 ) byref -> r15 "Inlining Arg" ; V108 tmp98 [V108,T57] ( 4, 8 ) int -> rbx "Inlining Arg" ;* V109 tmp99 [V109 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V110 tmp100 [V110 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V111 tmp101 [V111 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V112 tmp102 [V112 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V113 tmp103 [V113,T41] ( 4, 8 ) byref -> r15 "Inlining Arg" ; V114 tmp104 [V114,T58] ( 4, 8 ) int -> rbx "Inlining Arg" ;* V115 tmp105 [V115 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V116 tmp106 [V116 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V117 tmp107 [V117 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V118 tmp108 [V118 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V119 tmp109 [V119,T79] ( 4, 4 ) int -> rbx "Inline stloc first use temp" ;* V120 tmp110 [V120 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V121 tmp111 [V121 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V122 tmp112 [V122 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ; V123 tmp113 [V123,T25] ( 6, 12 ) int -> rsi "Inlining Arg" ;* V124 tmp114 [V124 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V125 tmp115 [V125 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V126 tmp116 [V126 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V127 tmp117 [V127 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V128 tmp118 [V128 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V129 tmp119 [V129 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V130 tmp120 [V130,T80] ( 4, 4 ) int -> rsi "Inline stloc first use temp" ;* V131 tmp121 [V131 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V132 tmp122 [V132 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V133 tmp123 [V133 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V134 tmp124 [V134 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V135 tmp125 [V135,T42] ( 4, 8 ) byref -> r15 "Inlining Arg" ; V136 tmp126 [V136,T59] ( 4, 8 ) int -> rbx "Inlining Arg" ; V137 tmp127 [V137,T01] ( 97,117 ) byref -> r15 "field V01._reference (fldOffset=0x0)" P-INDEP -; V138 tmp128 [V138,T00] (125,161 ) int -> rbx "field V01._length (fldOffset=0x8)" P-INDEP +; V138 tmp128 [V138,T00] (103,139 ) int -> rbx "field V01._length (fldOffset=0x8)" P-INDEP ; V139 tmp129 [V139,T27] ( 8, 8 ) byref -> rdi "field V08._reference (fldOffset=0x0)" P-INDEP ; V140 tmp130 [V140,T60] ( 6, 6 ) int -> rsi "field V08._length (fldOffset=0x8)" P-INDEP ;* V141 tmp131 [V141 ] ( 0, 0 ) byref -> zero-ref "field V20._reference (fldOffset=0x0)" P-INDEP ;* V142 tmp132 [V142 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0x8)" P-INDEP ;* V143 tmp133 [V143 ] ( 0, 0 ) byref -> zero-ref "field V25._reference (fldOffset=0x0)" P-INDEP ;* V144 tmp134 [V144 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP ;* V145 tmp135 [V145 ] ( 0, 0 ) byref -> zero-ref "field V31._reference (fldOffset=0x0)" P-INDEP ;* V146 tmp136 [V146 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP ;* V147 tmp137 [V147 ] ( 0, 0 ) byref -> zero-ref "field V32._reference (fldOffset=0x0)" P-INDEP ;* V148 tmp138 [V148 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP ;* V149 tmp139 [V149 ] ( 0, 0 ) byref -> zero-ref "field V33._reference (fldOffset=0x0)" P-INDEP ;* V150 tmp140 [V150 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP ; V151 tmp141 [V151,T62] ( 4, 4 ) byref -> r15 "field V34._reference (fldOffset=0x0)" P-INDEP ; V152 tmp142 [V152,T81] ( 4, 4 ) int -> rbx "field V34._length (fldOffset=0x8)" P-INDEP ;* V153 tmp143 [V153 ] ( 0, 0 ) byref -> zero-ref "field V37._reference (fldOffset=0x0)" P-INDEP ;* V154 tmp144 [V154 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP ;* V155 tmp145 [V155 ] ( 0, 0 ) byref -> zero-ref "field V38._reference (fldOffset=0x0)" P-INDEP ;* V156 tmp146 [V156 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP ;* V157 tmp147 [V157 ] ( 0, 0 ) byref -> zero-ref "field V39._reference (fldOffset=0x0)" P-INDEP ;* V158 tmp148 [V158 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP ; V159 tmp149 [V159,T63] ( 4, 4 ) byref -> r15 "field V40._reference (fldOffset=0x0)" P-INDEP ; V160 tmp150 [V160,T82] ( 4, 4 ) int -> rbx "field V40._length (fldOffset=0x8)" P-INDEP ;* V161 tmp151 [V161 ] ( 0, 0 ) byref -> zero-ref "field V43._reference (fldOffset=0x0)" P-INDEP ;* V162 tmp152 [V162 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP ;* V163 tmp153 [V163 ] ( 0, 0 ) byref -> zero-ref "field V44._reference (fldOffset=0x0)" P-INDEP ;* V164 tmp154 [V164 ] ( 0, 0 ) int -> zero-ref "field V44._length (fldOffset=0x8)" P-INDEP ;* V165 tmp155 [V165 ] ( 0, 0 ) byref -> zero-ref "field V45._reference (fldOffset=0x0)" P-INDEP ;* V166 tmp156 [V166 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x8)" P-INDEP ; V167 tmp157 [V167,T64] ( 4, 4 ) byref -> r15 "field V46._reference (fldOffset=0x0)" P-INDEP ; V168 tmp158 [V168,T83] ( 4, 4 ) int -> rbx "field V46._length (fldOffset=0x8)" P-INDEP ;* V169 tmp159 [V169 ] ( 0, 0 ) byref -> zero-ref "field V49._reference (fldOffset=0x0)" P-INDEP ;* V170 tmp160 [V170 ] ( 0, 0 ) int -> zero-ref "field V49._length (fldOffset=0x8)" P-INDEP ;* V171 tmp161 [V171 ] ( 0, 0 ) byref -> zero-ref "field V50._reference (fldOffset=0x0)" P-INDEP ;* V172 tmp162 [V172 ] ( 0, 0 ) int -> zero-ref "field V50._length (fldOffset=0x8)" P-INDEP ;* V173 tmp163 [V173 ] ( 0, 0 ) byref -> zero-ref "field V51._reference (fldOffset=0x0)" P-INDEP ;* V174 tmp164 [V174 ] ( 0, 0 ) int -> zero-ref "field V51._length (fldOffset=0x8)" P-INDEP ; V175 tmp165 [V175,T65] ( 4, 4 ) byref -> r15 "field V52._reference (fldOffset=0x0)" P-INDEP ; V176 tmp166 [V176,T84] ( 4, 4 ) int -> rbx "field V52._length (fldOffset=0x8)" P-INDEP ;* V177 tmp167 [V177 ] ( 0, 0 ) byref -> zero-ref "field V55._reference (fldOffset=0x0)" P-INDEP ;* V178 tmp168 [V178 ] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP ;* V179 tmp169 [V179 ] ( 0, 0 ) byref -> zero-ref "field V56._reference (fldOffset=0x0)" P-INDEP ;* V180 tmp170 [V180 ] ( 0, 0 ) int -> zero-ref "field V56._length (fldOffset=0x8)" P-INDEP ;* V181 tmp171 [V181 ] ( 0, 0 ) byref -> zero-ref "field V57._reference (fldOffset=0x0)" P-INDEP ;* V182 tmp172 [V182 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP ; V183 tmp173 [V183,T66] ( 4, 4 ) byref -> r15 "field V58._reference (fldOffset=0x0)" P-INDEP ; V184 tmp174 [V184,T85] ( 4, 4 ) int -> rbx "field V58._length (fldOffset=0x8)" P-INDEP ;* V185 tmp175 [V185 ] ( 0, 0 ) byref -> zero-ref "field V61._reference (fldOffset=0x0)" P-INDEP ;* V186 tmp176 [V186 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP ;* V187 tmp177 [V187 ] ( 0, 0 ) byref -> zero-ref "field V62._reference (fldOffset=0x0)" P-INDEP ;* V188 tmp178 [V188 ] ( 0, 0 ) int -> zero-ref "field V62._length (fldOffset=0x8)" P-INDEP ; V189 tmp179 [V189,T67] ( 4, 4 ) byref -> r15 "field V63._reference (fldOffset=0x0)" P-INDEP ; V190 tmp180 [V190,T86] ( 4, 4 ) int -> rbx "field V63._length (fldOffset=0x8)" P-INDEP ;* V191 tmp181 [V191 ] ( 0, 0 ) byref -> zero-ref "field V66._reference (fldOffset=0x0)" P-INDEP ;* V192 tmp182 [V192 ] ( 0, 0 ) int -> zero-ref "field V66._length (fldOffset=0x8)" P-INDEP ;* V193 tmp183 [V193 ] ( 0, 0 ) byref -> zero-ref "field V67._reference (fldOffset=0x0)" P-INDEP ;* V194 tmp184 [V194 ] ( 0, 0 ) int -> zero-ref "field V67._length (fldOffset=0x8)" P-INDEP ; V195 tmp185 [V195,T68] ( 4, 4 ) byref -> r15 "field V68._reference (fldOffset=0x0)" P-INDEP ; V196 tmp186 [V196,T87] ( 4, 4 ) int -> rbx "field V68._length (fldOffset=0x8)" P-INDEP ;* V197 tmp187 [V197 ] ( 0, 0 ) byref -> zero-ref "field V71._reference (fldOffset=0x0)" P-INDEP ;* V198 tmp188 [V198 ] ( 0, 0 ) int -> zero-ref "field V71._length (fldOffset=0x8)" P-INDEP ;* V199 tmp189 [V199 ] ( 0, 0 ) byref -> zero-ref "field V72._reference (fldOffset=0x0)" P-INDEP ;* V200 tmp190 [V200 ] ( 0, 0 ) int -> zero-ref "field V72._length (fldOffset=0x8)" P-INDEP ;* V201 tmp191 [V201 ] ( 0, 0 ) byref -> zero-ref "field V73._reference (fldOffset=0x0)" P-INDEP ;* V202 tmp192 [V202 ] ( 0, 0 ) int -> zero-ref "field V73._length (fldOffset=0x8)" P-INDEP ; V203 tmp193 [V203,T69] ( 4, 4 ) byref -> r15 "field V74._reference (fldOffset=0x0)" P-INDEP ; V204 tmp194 [V204,T88] ( 4, 4 ) int -> rbx "field V74._length (fldOffset=0x8)" P-INDEP ;* V205 tmp195 [V205 ] ( 0, 0 ) byref -> zero-ref "field V77._reference (fldOffset=0x0)" P-INDEP ;* V206 tmp196 [V206 ] ( 0, 0 ) int -> zero-ref "field V77._length (fldOffset=0x8)" P-INDEP ;* V207 tmp197 [V207 ] ( 0, 0 ) byref -> zero-ref "field V78._reference (fldOffset=0x0)" P-INDEP ;* V208 tmp198 [V208 ] ( 0, 0 ) int -> zero-ref "field V78._length (fldOffset=0x8)" P-INDEP ;* V209 tmp199 [V209 ] ( 0, 0 ) byref -> zero-ref "field V79._reference (fldOffset=0x0)" P-INDEP ;* V210 tmp200 [V210 ] ( 0, 0 ) int -> zero-ref "field V79._length (fldOffset=0x8)" P-INDEP ; V211 tmp201 [V211,T70] ( 4, 4 ) byref -> r15 "field V80._reference (fldOffset=0x0)" P-INDEP ; V212 tmp202 [V212,T89] ( 4, 4 ) int -> rbx "field V80._length (fldOffset=0x8)" P-INDEP ;* V213 tmp203 [V213 ] ( 0, 0 ) byref -> zero-ref "field V83._reference (fldOffset=0x0)" P-INDEP ;* V214 tmp204 [V214 ] ( 0, 0 ) int -> zero-ref "field V83._length (fldOffset=0x8)" P-INDEP ;* V215 tmp205 [V215 ] ( 0, 0 ) byref -> zero-ref "field V84._reference (fldOffset=0x0)" P-INDEP ;* V216 tmp206 [V216 ] ( 0, 0 ) int -> zero-ref "field V84._length (fldOffset=0x8)" P-INDEP ;* V217 tmp207 [V217 ] ( 0, 0 ) byref -> zero-ref "field V85._reference (fldOffset=0x0)" P-INDEP ;* V218 tmp208 [V218 ] ( 0, 0 ) int -> zero-ref "field V85._length (fldOffset=0x8)" P-INDEP ; V219 tmp209 [V219,T71] ( 4, 4 ) byref -> r15 "field V86._reference (fldOffset=0x0)" P-INDEP ; V220 tmp210 [V220,T90] ( 4, 4 ) int -> rbx "field V86._length (fldOffset=0x8)" P-INDEP ;* V221 tmp211 [V221 ] ( 0, 0 ) byref -> zero-ref "field V89._reference (fldOffset=0x0)" P-INDEP ;* V222 tmp212 [V222 ] ( 0, 0 ) int -> zero-ref "field V89._length (fldOffset=0x8)" P-INDEP ;* V223 tmp213 [V223 ] ( 0, 0 ) byref -> zero-ref "field V90._reference (fldOffset=0x0)" P-INDEP ;* V224 tmp214 [V224 ] ( 0, 0 ) int -> zero-ref "field V90._length (fldOffset=0x8)" P-INDEP ;* V225 tmp215 [V225 ] ( 0, 0 ) byref -> zero-ref "field V91._reference (fldOffset=0x0)" P-INDEP ;* V226 tmp216 [V226 ] ( 0, 0 ) int -> zero-ref "field V91._length (fldOffset=0x8)" P-INDEP ; V227 tmp217 [V227,T72] ( 4, 4 ) byref -> r15 "field V92._reference (fldOffset=0x0)" P-INDEP ; V228 tmp218 [V228,T91] ( 4, 4 ) int -> rbx "field V92._length (fldOffset=0x8)" P-INDEP ;* V229 tmp219 [V229 ] ( 0, 0 ) byref -> zero-ref "field V95._reference (fldOffset=0x0)" P-INDEP ;* V230 tmp220 [V230 ] ( 0, 0 ) int -> zero-ref "field V95._length (fldOffset=0x8)" P-INDEP ;* V231 tmp221 [V231 ] ( 0, 0 ) byref -> zero-ref "field V96._reference (fldOffset=0x0)" P-INDEP ;* V232 tmp222 [V232 ] ( 0, 0 ) int -> zero-ref "field V96._length (fldOffset=0x8)" P-INDEP ;* V233 tmp223 [V233 ] ( 0, 0 ) byref -> zero-ref "field V97._reference (fldOffset=0x0)" P-INDEP ;* V234 tmp224 [V234 ] ( 0, 0 ) int -> zero-ref "field V97._length (fldOffset=0x8)" P-INDEP ; V235 tmp225 [V235,T73] ( 4, 4 ) byref -> r15 "field V98._reference (fldOffset=0x0)" P-INDEP ; V236 tmp226 [V236,T92] ( 4, 4 ) int -> rbx "field V98._length (fldOffset=0x8)" P-INDEP ;* V237 tmp227 [V237 ] ( 0, 0 ) byref -> zero-ref "field V101._reference (fldOffset=0x0)" P-INDEP ;* V238 tmp228 [V238 ] ( 0, 0 ) int -> zero-ref "field V101._length (fldOffset=0x8)" P-INDEP ;* V239 tmp229 [V239 ] ( 0, 0 ) byref -> zero-ref "field V103._reference (fldOffset=0x0)" P-INDEP ;* V240 tmp230 [V240 ] ( 0, 0 ) int -> zero-ref "field V103._length (fldOffset=0x8)" P-INDEP ;* V241 tmp231 [V241 ] ( 0, 0 ) byref -> zero-ref "field V104._reference (fldOffset=0x0)" P-INDEP ;* V242 tmp232 [V242 ] ( 0, 0 ) int -> zero-ref "field V104._length (fldOffset=0x8)" P-INDEP ;* V243 tmp233 [V243 ] ( 0, 0 ) byref -> zero-ref "field V105._reference (fldOffset=0x0)" P-INDEP ;* V244 tmp234 [V244 ] ( 0, 0 ) int -> zero-ref "field V105._length (fldOffset=0x8)" P-INDEP ; V245 tmp235 [V245,T74] ( 4, 4 ) byref -> r15 "field V106._reference (fldOffset=0x0)" P-INDEP ; V246 tmp236 [V246,T93] ( 4, 4 ) int -> rbx "field V106._length (fldOffset=0x8)" P-INDEP ;* V247 tmp237 [V247 ] ( 0, 0 ) byref -> zero-ref "field V109._reference (fldOffset=0x0)" P-INDEP ;* V248 tmp238 [V248 ] ( 0, 0 ) int -> zero-ref "field V109._length (fldOffset=0x8)" P-INDEP ;* V249 tmp239 [V249 ] ( 0, 0 ) byref -> zero-ref "field V110._reference (fldOffset=0x0)" P-INDEP ;* V250 tmp240 [V250 ] ( 0, 0 ) int -> zero-ref "field V110._length (fldOffset=0x8)" P-INDEP ;* V251 tmp241 [V251 ] ( 0, 0 ) byref -> zero-ref "field V111._reference (fldOffset=0x0)" P-INDEP ;* V252 tmp242 [V252 ] ( 0, 0 ) int -> zero-ref "field V111._length (fldOffset=0x8)" P-INDEP ; V253 tmp243 [V253,T75] ( 4, 4 ) byref -> r15 "field V112._reference (fldOffset=0x0)" P-INDEP ; V254 tmp244 [V254,T94] ( 4, 4 ) int -> rbx "field V112._length (fldOffset=0x8)" P-INDEP ; V255 tmp245 [V255,T76] ( 4, 4 ) byref -> r15 "field V117._reference (fldOffset=0x0)" P-INDEP ;* V256 tmp246 [V256 ] ( 0, 0 ) int -> zero-ref "field V117._length (fldOffset=0x8)" P-INDEP ; V257 tmp247 [V257,T77] ( 4, 4 ) byref -> rdi "field V120._reference (fldOffset=0x0)" P-INDEP ; V258 tmp248 [V258,T95] ( 4, 4 ) int -> rsi "field V120._length (fldOffset=0x8)" P-INDEP ;* V259 tmp249 [V259 ] ( 0, 0 ) byref -> zero-ref "field V121._reference (fldOffset=0x0)" P-INDEP ;* V260 tmp250 [V260 ] ( 0, 0 ) int -> zero-ref "field V121._length (fldOffset=0x8)" P-INDEP ;* V261 tmp251 [V261,T98] ( 0, 0 ) byref -> zero-ref "field V124._reference (fldOffset=0x0)" P-INDEP ;* V262 tmp252 [V262 ] ( 0, 0 ) int -> zero-ref "field V124._length (fldOffset=0x8)" P-INDEP ;* V263 tmp253 [V263,T99] ( 0, 0 ) byref -> zero-ref "field V128._reference (fldOffset=0x0)" P-INDEP ;* V264 tmp254 [V264 ] ( 0, 0 ) int -> zero-ref "field V128._length (fldOffset=0x8)" P-INDEP ;* V265 tmp255 [V265,T100] ( 0, 0 ) byref -> zero-ref "field V131._reference (fldOffset=0x0)" P-INDEP ; V266 tmp256 [V266,T96] ( 4, 4 ) int -> rsi "field V131._length (fldOffset=0x8)" P-INDEP ;* V267 tmp257 [V267 ] ( 0, 0 ) byref -> zero-ref "field V132._reference (fldOffset=0x0)" P-INDEP ;* V268 tmp258 [V268 ] ( 0, 0 ) int -> zero-ref "field V132._length (fldOffset=0x8)" P-INDEP ; V269 tmp259 [V269,T78] ( 4, 4 ) byref -> r15 "field V134._reference (fldOffset=0x0)" P-INDEP ; V270 tmp260 [V270,T97] ( 4, 4 ) int -> rbx "field V134._length (fldOffset=0x8)" P-INDEP ; V271 tmp261 [V271,T07] ( 6, 24 ) ref -> rdi "argument with side effect" ; V272 tmp262 [V272,T43] ( 4, 8 ) ref -> rax "argument with side effect" ; V273 cse0 [V273,T04] ( 3, 47.52) int -> rsi "CSE #23: aggressive" ; V274 cse1 [V274,T05] ( 16, 35.64) long -> [rbp-0x40] spill-single-def "CSE #03: aggressive" ; ; Lcl frame size = 40 G_M41445_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 40 lea rbp, [rsp+0x50] mov r15, rsi mov ebx, edx ;; size=24 bbWeight=1 PerfScore 7.25 G_M41445_IG02: mov r14, gword ptr [rdi+0x10] mov esi, dword ptr [r14+0x08] mov rdi, 0xD1FFAB1E ; System.Object[] call CORINFO_HELP_NEWARR_1_OBJ mov r13, rax xor r12d, r12d cmp dword ptr [r14+0x08], 0 jle G_M41445_IG32 ;; size=40 bbWeight=1 PerfScore 9.75 G_M41445_IG03: mov edi, dword ptr [r14+0x08] cmp edi, dword ptr [r13+0x08] jg G_M41445_IG34 ;; size=14 bbWeight=0.25 PerfScore 1.50 G_M41445_IG04: test ebx, ebx jle G_M41445_IG32 mov eax, r12d mov qword ptr [rbp-0x40], rax mov rdi, gword ptr [r14+8*rax+0x10] mov rcx, qword ptr [rdi] mov rcx, qword ptr [rcx+0x40] call [rcx+0x38]System.Reflection.ParameterInfo:get_ParameterType():System.Type:this mov rdi, rax mov gword ptr [rbp-0x48], rax mov rcx, qword ptr [rax] mov rcx, qword ptr [rcx+0x70] call [rcx+0x30]System.Type:get_IsEnum():ubyte:this test eax, eax je SHORT G_M41445_IG06 ;; size=51 bbWeight=3.96 PerfScore 83.16 G_M41445_IG05: mov rdi, gword ptr [rbp-0x48] 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, gword ptr [rbp-0x48] mov gword ptr [rbp-0x48], rdi mov rax, qword ptr [rdi] mov rax, qword ptr [rax+0xA0] call [rax+0x18]System.Type:GetEnumUnderlyingType():System.Type:this jmp SHORT G_M41445_IG07 align [4 bytes for IG10] ;; size=53 bbWeight=1.98 PerfScore 30.69 G_M41445_IG06: xor rax, rax ;; size=2 bbWeight=1.98 PerfScore 0.49 G_M41445_IG07: mov rdi, 0xD1FFAB1E ; 'System.IntPtr' mov rcx, gword ptr [rbp-0x48] cmp rcx, rdi je G_M41445_IG30 ;; size=23 bbWeight=3.96 PerfScore 9.90 G_M41445_IG08: mov rdi, 0xD1FFAB1E ; 'System.Int32' cmp rcx, rdi je G_M41445_IG29 mov rdi, 0xD1FFAB1E ; 'System.Int32' cmp rax, rdi je G_M41445_IG29 mov rdi, 0xD1FFAB1E ; 'System.UInt32' cmp rcx, rdi je G_M41445_IG28 mov rdi, 0xD1FFAB1E ; 'System.UInt32' cmp rax, rdi je G_M41445_IG28 mov rdi, 0xD1FFAB1E ; 'System.Int64' cmp rcx, rdi je G_M41445_IG27 mov rdi, 0xD1FFAB1E ; 'System.Int64' cmp rax, rdi je G_M41445_IG27 mov rdi, 0xD1FFAB1E ; 'System.UInt64' cmp rcx, rdi je G_M41445_IG26 mov rdi, 0xD1FFAB1E ; 'System.UInt64' cmp rax, rdi je G_M41445_IG26 mov rdi, 0xD1FFAB1E ; 'System.Byte' cmp rcx, rdi je G_M41445_IG25 mov rdi, 0xD1FFAB1E ; 'System.Byte' cmp rax, rdi je G_M41445_IG25 mov rdi, 0xD1FFAB1E ; 'System.SByte' cmp rcx, rdi je G_M41445_IG24 mov rdi, 0xD1FFAB1E ; 'System.SByte' cmp rax, rdi je G_M41445_IG24 mov rdi, 0xD1FFAB1E ; 'System.Int16' cmp rcx, rdi je G_M41445_IG23 mov rdi, 0xD1FFAB1E ; 'System.Int16' cmp rax, rdi ;; size=260 bbWeight=1.98 PerfScore 39.60 G_M41445_IG09: je G_M41445_IG23 mov rdi, 0xD1FFAB1E ; 'System.UInt16' cmp rcx, rdi je G_M41445_IG22 mov rdi, 0xD1FFAB1E ; 'System.UInt16' cmp rax, rdi je G_M41445_IG22 mov rdi, 0xD1FFAB1E ; 'System.Single' cmp rcx, rdi je G_M41445_IG21 mov rdi, 0xD1FFAB1E ; 'System.Double' cmp rcx, rdi je G_M41445_IG20 mov rdi, 0xD1FFAB1E ; 'System.Boolean' cmp rcx, rdi je G_M41445_IG19 mov rdi, 0xD1FFAB1E ; 'System.Guid' cmp rcx, rdi je G_M41445_IG18 mov rdi, 0xD1FFAB1E ; 'System.Char' cmp rcx, rdi je G_M41445_IG17 mov rdi, 0xD1FFAB1E ; 'System.String' cmp rcx, rdi jne G_M41445_IG31 mov edx, -1 mov edi, 1 cmp ebx, 1 jle SHORT G_M41445_IG13 ;; size=173 bbWeight=1.98 PerfScore 29.21 G_M41445_IG10: lea esi, [rdi-0x01] cmp esi, ebx jae G_M41445_IG64 cmp byte ptr [r15+rsi], 0 jne SHORT G_M41445_IG12 ;; size=18 bbWeight=15.84 PerfScore 91.08 G_M41445_IG11: cmp edi, ebx jae G_M41445_IG64 mov esi, edi cmp byte ptr [r15+rsi], 0 je SHORT G_M41445_IG14 ;; size=17 bbWeight=7.92 PerfScore 43.56 G_M41445_IG12: add edi, 2 cmp edi, ebx jl SHORT G_M41445_IG10 ;; size=7 bbWeight=15.84 PerfScore 23.76 G_M41445_IG13: test edx, edx jge SHORT G_M41445_IG15 shr ebx, 1 mov rdi, r15 mov esi, ebx xor r15, r15 xor ebx, ebx jmp SHORT G_M41445_IG16 ;; size=18 bbWeight=1.98 PerfScore 9.41 G_M41445_IG14: lea edx, [rdi+0x01] jmp SHORT G_M41445_IG13 ;; size=5 bbWeight=1.98 PerfScore 4.95 G_M41445_IG15: lea esi, [rdx-0x02] cmp esi, ebx ja G_M41445_IG62 shr esi, 1 mov rdi, r15 cmp edx, ebx ja G_M41445_IG62 mov r15d, edx add r15, rdi sub ebx, edx ;; size=32 bbWeight=1.98 PerfScore 8.91 G_M41445_IG16: call System.String:.ctor(System.ReadOnlySpan`1[ushort]):this mov rdx, rax movsxd rsi, r12d mov rdi, r13 mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST call [rax]CORINFO_HELP_ARRADDR_ST jmp G_M41445_IG31 ;; size=31 bbWeight=1.98 PerfScore 13.86 G_M41445_IG17: cmp ebx, 2 jl G_M41445_IG63 mov rdi, 0xD1FFAB1E ; System.Char call CORINFO_HELP_NEWSFAST movzx rdi, word ptr [r15] mov word ptr [rax+0x08], di mov rcx, qword ptr [rbp-0x40] lea rdi, bword ptr [r13+8*rcx+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - cmp ebx, 2 - jb G_M41445_IG62 add r15, 2 add ebx, -2 jmp G_M41445_IG31 - ;; size=70 bbWeight=1.98 PerfScore 26.73 + ;; size=61 bbWeight=1.98 PerfScore 24.26 G_M41445_IG18: cmp ebx, 16 - jb G_M41445_IG62 + jl G_M41445_IG62 vmovups xmm0, xmmword ptr [r15] vmovups xmmword ptr [rbp-0x38], xmm0 mov rdi, 0xD1FFAB1E ; System.Guid call CORINFO_HELP_NEWSFAST vmovups xmm0, xmmword ptr [rbp-0x38] vmovups xmmword ptr [rax+0x08], xmm0 mov rcx, qword ptr [rbp-0x40] lea rdi, bword ptr [r13+8*rcx+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF add r15, 16 add ebx, -16 jmp G_M41445_IG31 ;; size=73 bbWeight=1.98 PerfScore 38.11 G_M41445_IG19: cmp ebx, 4 jl G_M41445_IG63 mov rdi, 0xD1FFAB1E ; System.Boolean call CORINFO_HELP_NEWSFAST cmp dword ptr [r15], 1 sete dil mov byte ptr [rax+0x08], dil mov rcx, qword ptr [rbp-0x40] lea rdi, bword ptr [r13+8*rcx+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - cmp ebx, 4 - jb G_M41445_IG62 add r15, 4 add ebx, -4 jmp G_M41445_IG31 - ;; size=74 bbWeight=1.98 PerfScore 30.69 + ;; size=65 bbWeight=1.98 PerfScore 28.22 G_M41445_IG20: cmp ebx, 8 jl G_M41445_IG63 mov rdi, 0xD1FFAB1E ; System.Double call CORINFO_HELP_NEWSFAST vmovsd xmm0, qword ptr [r15] vmovsd qword ptr [rax+0x08], xmm0 mov rcx, qword ptr [rbp-0x40] lea rdi, bword ptr [r13+8*rcx+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - cmp ebx, 8 - jb G_M41445_IG62 add r15, 8 add ebx, -8 jmp G_M41445_IG31 - ;; size=72 bbWeight=1.98 PerfScore 32.67 + ;; size=63 bbWeight=1.98 PerfScore 30.20 G_M41445_IG21: cmp ebx, 4 jl G_M41445_IG63 mov rdi, 0xD1FFAB1E ; System.Single call CORINFO_HELP_NEWSFAST vmovss xmm0, dword ptr [r15] vmovss dword ptr [rax+0x08], xmm0 mov rcx, qword ptr [rbp-0x40] lea rdi, bword ptr [r13+8*rcx+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - cmp ebx, 4 - jb G_M41445_IG62 add r15, 4 add ebx, -4 jmp G_M41445_IG31 - ;; size=72 bbWeight=1.98 PerfScore 32.67 + ;; size=63 bbWeight=1.98 PerfScore 30.20 G_M41445_IG22: cmp ebx, 2 jl G_M41445_IG63 mov rdi, 0xD1FFAB1E ; System.UInt16 call CORINFO_HELP_NEWSFAST movzx rdi, word ptr [r15] mov word ptr [rax+0x08], di mov rcx, qword ptr [rbp-0x40] lea rdi, bword ptr [r13+8*rcx+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - cmp ebx, 2 - jb G_M41445_IG62 add r15, 2 add ebx, -2 jmp G_M41445_IG31 - ;; size=70 bbWeight=1.98 PerfScore 26.73 + ;; size=61 bbWeight=1.98 PerfScore 24.26 G_M41445_IG23: cmp ebx, 2 jl G_M41445_IG63 mov rdi, 0xD1FFAB1E ; System.Int16 call CORINFO_HELP_NEWSFAST movsx rdi, word ptr [r15] mov word ptr [rax+0x08], di mov rcx, qword ptr [rbp-0x40] lea rdi, bword ptr [r13+8*rcx+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - cmp ebx, 2 - jb G_M41445_IG62 add r15, 2 add ebx, -2 jmp G_M41445_IG31 - ;; size=70 bbWeight=1.98 PerfScore 30.69 + ;; size=61 bbWeight=1.98 PerfScore 28.22 G_M41445_IG24: mov rdi, 0xD1FFAB1E ; System.SByte call CORINFO_HELP_NEWSFAST movsx rdi, byte ptr [r15] mov byte ptr [rax+0x08], dil mov rcx, qword ptr [rbp-0x40] lea rdi, bword ptr [r13+8*rcx+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF inc r15 dec ebx jmp G_M41445_IG31 ;; size=50 bbWeight=1.98 PerfScore 25.74 G_M41445_IG25: mov rdi, 0xD1FFAB1E ; System.Byte call CORINFO_HELP_NEWSFAST movzx rdi, byte ptr [r15] mov byte ptr [rax+0x08], dil mov rcx, qword ptr [rbp-0x40] lea rdi, bword ptr [r13+8*rcx+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF inc r15 dec ebx jmp G_M41445_IG31 ;; size=50 bbWeight=1.98 PerfScore 21.78 G_M41445_IG26: cmp ebx, 8 jl G_M41445_IG63 mov rdi, 0xD1FFAB1E ; System.UInt64 call CORINFO_HELP_NEWSFAST mov rdi, qword ptr [r15] mov qword ptr [rax+0x08], rdi mov rcx, qword ptr [rbp-0x40] lea rdi, bword ptr [r13+8*rcx+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - cmp ebx, 8 - jb G_M41445_IG62 add r15, 8 add ebx, -8 jmp G_M41445_IG31 - ;; size=69 bbWeight=1.98 PerfScore 26.73 + ;; size=60 bbWeight=1.98 PerfScore 24.26 G_M41445_IG27: cmp ebx, 8 jl G_M41445_IG63 mov rdi, 0xD1FFAB1E ; System.Int64 call CORINFO_HELP_NEWSFAST mov rdi, qword ptr [r15] mov qword ptr [rax+0x08], rdi mov rcx, qword ptr [rbp-0x40] lea rdi, bword ptr [r13+8*rcx+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - cmp ebx, 8 - jb G_M41445_IG62 add r15, 8 add ebx, -8 jmp G_M41445_IG31 - ;; size=69 bbWeight=1.98 PerfScore 26.73 + ;; size=60 bbWeight=1.98 PerfScore 24.26 G_M41445_IG28: cmp ebx, 4 jl G_M41445_IG63 mov rdi, 0xD1FFAB1E ; System.UInt32 call CORINFO_HELP_NEWSFAST mov edi, dword ptr [r15] mov dword ptr [rax+0x08], edi mov rcx, qword ptr [rbp-0x40] lea rdi, bword ptr [r13+8*rcx+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - cmp ebx, 4 - jb G_M41445_IG62 add r15, 4 add ebx, -4 - jmp G_M41445_IG31 - ;; size=68 bbWeight=1.98 PerfScore 26.73 + jmp SHORT G_M41445_IG31 + ;; size=56 bbWeight=1.98 PerfScore 24.26 G_M41445_IG29: cmp ebx, 4 jl G_M41445_IG63 mov rdi, 0xD1FFAB1E ; System.Int32 call CORINFO_HELP_NEWSFAST mov edi, dword ptr [r15] mov dword ptr [rax+0x08], edi mov rcx, qword ptr [rbp-0x40] lea rdi, bword ptr [r13+8*rcx+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - cmp ebx, 4 - jb G_M41445_IG62 add r15, 4 add ebx, -4 jmp SHORT G_M41445_IG31 - ;; size=65 bbWeight=1.98 PerfScore 26.73 + ;; size=56 bbWeight=1.98 PerfScore 24.26 G_M41445_IG30: cmp ebx, 8 jl G_M41445_IG63 mov rdi, 0xD1FFAB1E ; System.IntPtr call CORINFO_HELP_NEWSFAST mov rdi, qword ptr [r15] mov qword ptr [rax+0x08], rdi mov rdi, qword ptr [rbp-0x40] lea rdi, bword ptr [r13+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - cmp ebx, 8 - jb G_M41445_IG62 add r15, 8 add ebx, -8 - ;; size=64 bbWeight=1.98 PerfScore 22.77 + ;; size=55 bbWeight=1.98 PerfScore 20.30 G_M41445_IG31: inc r12d cmp dword ptr [r14+0x08], r12d jg G_M41445_IG04 ;; size=13 bbWeight=3.96 PerfScore 16.83 G_M41445_IG32: mov rax, r13 ;; size=3 bbWeight=1 PerfScore 0.25 G_M41445_IG33: add rsp, 40 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.25 G_M41445_IG34: test ebx, ebx jle SHORT G_M41445_IG32 mov edi, r12d mov rdi, gword ptr [r14+8*rdi+0x10] mov rax, qword ptr [rdi] mov rax, qword ptr [rax+0x40] call [rax+0x38]System.Reflection.ParameterInfo:get_ParameterType():System.Type:this mov rdi, rax mov gword ptr [rbp-0x48], rax mov rcx, qword ptr [rax] mov rcx, qword ptr [rcx+0x70] call [rcx+0x30]System.Type:get_IsEnum():ubyte:this test eax, eax je SHORT G_M41445_IG36 ;; size=43 bbWeight=0.04 PerfScore 0.80 G_M41445_IG35: mov rdi, gword ptr [rbp-0x48] 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, gword ptr [rbp-0x48] mov gword ptr [rbp-0x48], rdi mov rax, qword ptr [rdi] mov rax, qword ptr [rax+0xA0] call [rax+0x18]System.Type:GetEnumUnderlyingType():System.Type:this jmp SHORT G_M41445_IG37 ;; size=49 bbWeight=0.02 PerfScore 0.31 G_M41445_IG36: xor rax, rax ;; size=2 bbWeight=0.02 PerfScore 0.01 G_M41445_IG37: mov rdi, 0xD1FFAB1E ; 'System.IntPtr' mov rsi, gword ptr [rbp-0x48] cmp rsi, rdi je G_M41445_IG60 ;; size=23 bbWeight=0.04 PerfScore 0.10 G_M41445_IG38: mov rdi, 0xD1FFAB1E ; 'System.Int32' cmp rsi, rdi je G_M41445_IG59 mov rdi, 0xD1FFAB1E ; 'System.Int32' cmp rax, rdi je G_M41445_IG59 mov rdi, 0xD1FFAB1E ; 'System.UInt32' cmp rsi, rdi je G_M41445_IG58 mov rdi, 0xD1FFAB1E ; 'System.UInt32' cmp rax, rdi je G_M41445_IG58 mov rdi, 0xD1FFAB1E ; 'System.Int64' cmp rsi, rdi je G_M41445_IG57 mov rdi, 0xD1FFAB1E ; 'System.Int64' cmp rax, rdi je G_M41445_IG57 mov rdi, 0xD1FFAB1E ; 'System.UInt64' cmp rsi, rdi je G_M41445_IG56 mov rdi, 0xD1FFAB1E ; 'System.UInt64' cmp rax, rdi je G_M41445_IG56 mov rdi, 0xD1FFAB1E ; 'System.Byte' cmp rsi, rdi je G_M41445_IG55 mov rdi, 0xD1FFAB1E ; 'System.Byte' cmp rax, rdi je G_M41445_IG55 mov rdi, 0xD1FFAB1E ; 'System.SByte' cmp rsi, rdi je G_M41445_IG54 mov rdi, 0xD1FFAB1E ; 'System.SByte' cmp rax, rdi je G_M41445_IG54 mov rdi, 0xD1FFAB1E ; 'System.Int16' cmp rsi, rdi je G_M41445_IG53 mov rdi, 0xD1FFAB1E ; 'System.Int16' cmp rax, rdi ;; size=260 bbWeight=0.02 PerfScore 0.40 G_M41445_IG39: je G_M41445_IG53 mov rdi, 0xD1FFAB1E ; 'System.UInt16' cmp rsi, rdi je G_M41445_IG52 mov rdi, 0xD1FFAB1E ; 'System.UInt16' cmp rax, rdi je G_M41445_IG52 mov rdi, 0xD1FFAB1E ; 'System.Single' cmp rsi, rdi je G_M41445_IG51 mov rdi, 0xD1FFAB1E ; 'System.Double' cmp rsi, rdi je G_M41445_IG50 mov rdi, 0xD1FFAB1E ; 'System.Boolean' cmp rsi, rdi je G_M41445_IG49 mov rdi, 0xD1FFAB1E ; 'System.Guid' cmp rsi, rdi je G_M41445_IG48 mov rdi, 0xD1FFAB1E ; 'System.Char' cmp rsi, rdi je G_M41445_IG47 mov rdi, 0xD1FFAB1E ; 'System.String' cmp rsi, rdi jne G_M41445_IG61 mov edx, -1 mov edi, 1 cmp ebx, 1 jle SHORT G_M41445_IG43 ;; size=173 bbWeight=0.02 PerfScore 0.30 G_M41445_IG40: lea esi, [rdi-0x01] cmp esi, ebx jae G_M41445_IG64 lea esi, [rdi-0x01] cmp byte ptr [r15+rsi], 0 jne SHORT G_M41445_IG42 ;; size=21 bbWeight=0.16 PerfScore 1.00 G_M41445_IG41: cmp edi, ebx jae G_M41445_IG64 mov esi, edi cmp byte ptr [r15+rsi], 0 je SHORT G_M41445_IG44 ;; size=17 bbWeight=0.08 PerfScore 0.44 G_M41445_IG42: add edi, 2 cmp edi, ebx jl SHORT G_M41445_IG40 ;; size=7 bbWeight=0.16 PerfScore 0.24 G_M41445_IG43: test edx, edx jge SHORT G_M41445_IG45 shr ebx, 1 mov rdi, r15 mov esi, ebx xor r15, r15 xor ebx, ebx jmp SHORT G_M41445_IG46 ;; size=18 bbWeight=0.02 PerfScore 0.10 G_M41445_IG44: lea edx, [rdi+0x01] jmp SHORT G_M41445_IG43 ;; size=5 bbWeight=0.02 PerfScore 0.05 G_M41445_IG45: lea esi, [rdx-0x02] cmp esi, ebx ja G_M41445_IG62 shr esi, 1 mov rdi, r15 cmp edx, ebx ja G_M41445_IG62 mov r15d, edx add r15, rdi sub ebx, edx ;; size=32 bbWeight=0.02 PerfScore 0.09 G_M41445_IG46: call System.String:.ctor(System.ReadOnlySpan`1[ushort]):this mov rdx, rax movsxd rsi, r12d mov rdi, r13 mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST call [rax]CORINFO_HELP_ARRADDR_ST jmp G_M41445_IG61 ;; size=31 bbWeight=0.02 PerfScore 0.14 G_M41445_IG47: cmp ebx, 2 jl G_M41445_IG63 mov rdi, 0xD1FFAB1E ; System.Char call CORINFO_HELP_NEWSFAST movzx rdi, word ptr [r15] mov word ptr [rax+0x08], di cmp r12d, dword ptr [r13+0x08] jae G_M41445_IG64 mov edi, r12d lea rdi, bword ptr [r13+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - cmp ebx, 2 - jb G_M41445_IG62 add r15, 2 add ebx, -2 jmp G_M41445_IG61 - ;; size=79 bbWeight=0.02 PerfScore 0.34 + ;; size=70 bbWeight=0.02 PerfScore 0.31 G_M41445_IG48: cmp ebx, 16 - jb G_M41445_IG62 + jl G_M41445_IG62 vmovups xmm0, xmmword ptr [r15] vmovups xmmword ptr [rbp-0x38], xmm0 mov rdi, 0xD1FFAB1E ; System.Guid call CORINFO_HELP_NEWSFAST vmovups xmm0, xmmword ptr [rbp-0x38] vmovups xmmword ptr [rax+0x08], xmm0 cmp r12d, dword ptr [r13+0x08] jae G_M41445_IG64 mov edi, r12d lea rdi, bword ptr [r13+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF add r15, 16 add ebx, -16 jmp G_M41445_IG61 ;; size=82 bbWeight=0.02 PerfScore 0.45 G_M41445_IG49: cmp ebx, 4 jl G_M41445_IG63 mov rdi, 0xD1FFAB1E ; System.Boolean call CORINFO_HELP_NEWSFAST cmp dword ptr [r15], 1 sete dil mov byte ptr [rax+0x08], dil cmp r12d, dword ptr [r13+0x08] jae G_M41445_IG64 mov edi, r12d lea rdi, bword ptr [r13+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - cmp ebx, 4 - jb G_M41445_IG62 add r15, 4 add ebx, -4 jmp G_M41445_IG61 - ;; size=83 bbWeight=0.02 PerfScore 0.38 + ;; size=74 bbWeight=0.02 PerfScore 0.35 G_M41445_IG50: cmp ebx, 8 jl G_M41445_IG63 mov rdi, 0xD1FFAB1E ; System.Double call CORINFO_HELP_NEWSFAST vmovsd xmm0, qword ptr [r15] vmovsd qword ptr [rax+0x08], xmm0 cmp r12d, dword ptr [r13+0x08] jae G_M41445_IG64 mov edi, r12d lea rdi, bword ptr [r13+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - cmp ebx, 8 - jb G_M41445_IG62 add r15, 8 add ebx, -8 jmp G_M41445_IG61 - ;; size=81 bbWeight=0.02 PerfScore 0.40 + ;; size=72 bbWeight=0.02 PerfScore 0.37 G_M41445_IG51: cmp ebx, 4 jl G_M41445_IG63 mov rdi, 0xD1FFAB1E ; System.Single call CORINFO_HELP_NEWSFAST vmovss xmm0, dword ptr [r15] vmovss dword ptr [rax+0x08], xmm0 cmp r12d, dword ptr [r13+0x08] jae G_M41445_IG64 mov edi, r12d lea rdi, bword ptr [r13+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - cmp ebx, 4 - jb G_M41445_IG62 add r15, 4 add ebx, -4 jmp G_M41445_IG61 - ;; size=81 bbWeight=0.02 PerfScore 0.40 + ;; size=72 bbWeight=0.02 PerfScore 0.37 G_M41445_IG52: cmp ebx, 2 jl G_M41445_IG63 mov rdi, 0xD1FFAB1E ; System.UInt16 call CORINFO_HELP_NEWSFAST movzx rdi, word ptr [r15] mov word ptr [rax+0x08], di cmp r12d, dword ptr [r13+0x08] jae G_M41445_IG64 mov edi, r12d lea rdi, bword ptr [r13+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - cmp ebx, 2 - jb G_M41445_IG62 add r15, 2 add ebx, -2 jmp G_M41445_IG61 - ;; size=79 bbWeight=0.02 PerfScore 0.34 + ;; size=70 bbWeight=0.02 PerfScore 0.31 G_M41445_IG53: cmp ebx, 2 jl G_M41445_IG63 mov rdi, 0xD1FFAB1E ; System.Int16 call CORINFO_HELP_NEWSFAST movsx rdi, word ptr [r15] mov word ptr [rax+0x08], di cmp r12d, dword ptr [r13+0x08] jae G_M41445_IG64 mov edi, r12d lea rdi, bword ptr [r13+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - cmp ebx, 2 - jb G_M41445_IG62 add r15, 2 add ebx, -2 jmp G_M41445_IG61 - ;; size=79 bbWeight=0.02 PerfScore 0.38 + ;; size=70 bbWeight=0.02 PerfScore 0.35 G_M41445_IG54: mov rdi, 0xD1FFAB1E ; System.SByte call CORINFO_HELP_NEWSFAST movsx rdi, byte ptr [r15] mov byte ptr [rax+0x08], dil cmp r12d, dword ptr [r13+0x08] jae G_M41445_IG64 mov edi, r12d lea rdi, bword ptr [r13+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF inc r15 dec ebx jmp G_M41445_IG61 ;; size=59 bbWeight=0.02 PerfScore 0.33 G_M41445_IG55: mov rdi, 0xD1FFAB1E ; System.Byte call CORINFO_HELP_NEWSFAST movzx rdi, byte ptr [r15] mov byte ptr [rax+0x08], dil cmp r12d, dword ptr [r13+0x08] jae G_M41445_IG64 mov edi, r12d lea rdi, bword ptr [r13+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF inc r15 dec ebx jmp G_M41445_IG61 ;; size=59 bbWeight=0.02 PerfScore 0.29 G_M41445_IG56: cmp ebx, 8 jl G_M41445_IG63 mov rdi, 0xD1FFAB1E ; System.UInt64 call CORINFO_HELP_NEWSFAST mov rdi, qword ptr [r15] mov qword ptr [rax+0x08], rdi cmp r12d, dword ptr [r13+0x08] jae G_M41445_IG64 mov edi, r12d lea rdi, bword ptr [r13+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - cmp ebx, 8 - jb G_M41445_IG62 add r15, 8 add ebx, -8 jmp G_M41445_IG61 - ;; size=78 bbWeight=0.02 PerfScore 0.34 + ;; size=69 bbWeight=0.02 PerfScore 0.31 G_M41445_IG57: cmp ebx, 8 jl G_M41445_IG63 mov rdi, 0xD1FFAB1E ; System.Int64 call CORINFO_HELP_NEWSFAST mov rdi, qword ptr [r15] mov qword ptr [rax+0x08], rdi cmp r12d, dword ptr [r13+0x08] jae G_M41445_IG64 mov edi, r12d lea rdi, bword ptr [r13+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - cmp ebx, 8 - jb G_M41445_IG62 add r15, 8 add ebx, -8 jmp G_M41445_IG61 - ;; size=78 bbWeight=0.02 PerfScore 0.34 + ;; size=69 bbWeight=0.02 PerfScore 0.31 G_M41445_IG58: cmp ebx, 4 jl G_M41445_IG63 mov rdi, 0xD1FFAB1E ; System.UInt32 call CORINFO_HELP_NEWSFAST mov edi, dword ptr [r15] mov dword ptr [rax+0x08], edi cmp r12d, dword ptr [r13+0x08] jae G_M41445_IG64 mov edi, r12d lea rdi, bword ptr [r13+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - cmp ebx, 4 - jb G_M41445_IG62 add r15, 4 add ebx, -4 - jmp G_M41445_IG61 - ;; size=77 bbWeight=0.02 PerfScore 0.34 + jmp SHORT G_M41445_IG61 + ;; size=65 bbWeight=0.02 PerfScore 0.31 G_M41445_IG59: cmp ebx, 4 jl G_M41445_IG63 mov rdi, 0xD1FFAB1E ; System.Int32 call CORINFO_HELP_NEWSFAST mov edi, dword ptr [r15] mov dword ptr [rax+0x08], edi cmp r12d, dword ptr [r13+0x08] jae G_M41445_IG64 mov edi, r12d lea rdi, bword ptr [r13+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - cmp ebx, 4 - jb SHORT G_M41445_IG62 add r15, 4 add ebx, -4 jmp SHORT G_M41445_IG61 - ;; size=70 bbWeight=0.02 PerfScore 0.34 + ;; size=65 bbWeight=0.02 PerfScore 0.31 G_M41445_IG60: cmp ebx, 8 jl SHORT G_M41445_IG63 mov rdi, 0xD1FFAB1E ; System.IntPtr call CORINFO_HELP_NEWSFAST mov rdi, qword ptr [r15] mov qword ptr [rax+0x08], rdi cmp r12d, dword ptr [r13+0x08] jae SHORT G_M41445_IG64 mov edi, r12d lea rdi, bword ptr [r13+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - cmp ebx, 8 - jb SHORT G_M41445_IG62 add r15, 8 add ebx, -8 - ;; size=61 bbWeight=0.02 PerfScore 0.30 + ;; size=56 bbWeight=0.02 PerfScore 0.27 G_M41445_IG61: inc r12d cmp dword ptr [r14+0x08], r12d jg G_M41445_IG34 jmp G_M41445_IG32 ;; size=18 bbWeight=0.04 PerfScore 0.25 G_M41445_IG62: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException() call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 G_M41445_IG63: mov edi, 40 mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException(int) call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException(int) int3 ;; size=18 bbWeight=0 PerfScore 0.00 G_M41445_IG64: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 -; Total bytes of code 3517, prolog size 24, PerfScore 833.03, instruction count 759, allocated bytes for code 3517 (MethodHash=31e95e1a) for method System.Diagnostics.Tracing.EventPipePayloadDecoder:DecodePayload(byref,System.ReadOnlySpan`1[ubyte]):System.Object[] (FullOpts) +; Total bytes of code 3321, prolog size 24, PerfScore 805.53, instruction count 715, allocated bytes for code 3321 (MethodHash=31e95e1a) for method System.Diagnostics.Tracing.EventPipePayloadDecoder:DecodePayload(byref,System.ReadOnlySpan`1[ubyte]):System.Object[] (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/6962c5e806c70a4d7de090e79170cc3e

MihuBot commented 1 month ago

@xtqqczze