MihuBot / runtime-utils

0 stars 0 forks source link

[JitDiff X64] xtqqczze/dotnet-runtime/UIntCastLengthCheck #552

Open MihuBot opened 1 month ago

MihuBot commented 1 month ago

Job completed in 15 minutes.

Diffs

Diffs ``` Found 344 files with textual diffs. Summary of Code Size diffs: (Lower is better) Total bytes of base: 39660084 Total bytes of diff: 39658305 Total bytes of delta: -1779 (-0.00 % of base) Total relative delta: -5.28 diff is an improvement. relative diff is an improvement. Top file regressions (bytes): 113 : System.Private.Xml.dasm (0.00 % of base) 71 : System.Text.RegularExpressions.dasm (0.01 % of base) 50 : System.Console.dasm (0.06 % of base) 22 : System.Numerics.Tensors.dasm (0.00 % of base) 18 : System.Formats.Tar.dasm (0.01 % of base) 17 : System.IO.MemoryMappedFiles.dasm (0.08 % of base) 14 : System.Runtime.Numerics.dasm (0.01 % of base) 10 : Microsoft.Extensions.Diagnostics.dasm (0.07 % of base) 8 : System.Net.Mail.dasm (0.00 % of base) 7 : System.Security.Cryptography.dasm (0.00 % of base) 7 : System.Net.NameResolution.dasm (0.02 % of base) 6 : System.Memory.dasm (0.00 % of base) 6 : Microsoft.Extensions.Options.DataAnnotations.dasm (0.14 % of base) 4 : System.Net.Requests.dasm (0.00 % of base) 4 : System.Private.Uri.dasm (0.00 % of base) 4 : Microsoft.CSharp.dasm (0.00 % of base) 4 : System.Runtime.InteropServices.dasm (0.02 % of base) 4 : System.Net.Security.dasm (0.00 % of base) 4 : System.Net.WebProxy.dasm (0.07 % of base) 4 : System.Net.HttpListener.dasm (0.00 % of base) 3 : System.Private.DataContractSerialization.dasm (0.00 % of base) 2 : System.Collections.Specialized.dasm (0.02 % of base) 2 : System.Net.WebSockets.Client.dasm (0.01 % of base) 2 : System.Transactions.Local.dasm (0.00 % of base) 2 : System.DirectoryServices.Protocols.dasm (0.00 % of base) 2 : System.Net.WebSockets.dasm (0.00 % of base) 1 : System.Configuration.ConfigurationManager.dasm (0.00 % of base) 1 : System.Formats.Asn1.dasm (0.00 % of base) 1 : System.CodeDom.dasm (0.00 % of base) 1 : System.Security.Cryptography.Xml.dasm (0.00 % of base) Top file improvements (bytes): -622 : System.Threading.Tasks.Dataflow.dasm (-0.05 % of base) -312 : System.Net.Http.dasm (-0.04 % of base) -270 : System.IO.Hashing.dasm (-1.06 % of base) -214 : System.Text.Json.dasm (-0.02 % of base) -137 : System.Private.CoreLib.dasm (-0.00 % of base) -121 : System.Net.Quic.dasm (-0.08 % of base) -64 : System.Collections.Immutable.dasm (-0.00 % of base) -48 : System.Reflection.Metadata.dasm (-0.01 % of base) -45 : System.Drawing.Primitives.dasm (-0.12 % of base) -39 : Microsoft.Extensions.Logging.Console.dasm (-0.07 % of base) -33 : Microsoft.Extensions.Logging.dasm (-0.09 % of base) -29 : Microsoft.Extensions.Configuration.dasm (-0.18 % of base) -28 : System.Security.Claims.dasm (-0.21 % of base) -24 : System.Linq.Expressions.dasm (-0.00 % of base) -21 : Microsoft.Extensions.DependencyInjection.Abstractions.dasm (-0.03 % of base) -19 : System.Net.Primitives.dasm (-0.02 % of base) -18 : System.ComponentModel.TypeConverter.dasm (-0.01 % of base) -14 : System.Diagnostics.DiagnosticSource.dasm (-0.01 % of base) -13 : runincontext.dasm (-0.08 % of base) -12 : System.ServiceModel.Syndication.dasm (-0.01 % of base) -11 : Microsoft.Extensions.Configuration.FileExtensions.dasm (-0.22 % of base) -9 : Microsoft.Extensions.DependencyInjection.dasm (-0.01 % of base) -7 : Microsoft.Extensions.Logging.Debug.dasm (-0.12 % of base) -7 : System.Data.Common.dasm (-0.00 % of base) -6 : System.Reflection.DispatchProxy.dasm (-0.03 % of base) -5 : tieringtest.dasm (-0.07 % of base) -5 : System.IO.Ports.dasm (-0.01 % of base) -4 : System.Diagnostics.TraceSource.dasm (-0.01 % of base) -4 : Microsoft.Extensions.Logging.Configuration.dasm (-0.05 % of base) -4 : System.Reflection.MetadataLoadContext.dasm (-0.00 % of base) -3 : Microsoft.Extensions.Http.dasm (-0.00 % of base) -3 : System.Composition.Runtime.dasm (-0.02 % of base) -3 : Microsoft.Extensions.Caching.Memory.dasm (-0.02 % of base) -3 : System.Security.Cryptography.Cose.dasm (-0.00 % of base) -3 : Microsoft.Extensions.DependencyModel.dasm (-0.00 % of base) -2 : System.Net.NetworkInformation.dasm (-0.00 % of base) -2 : Microsoft.Extensions.Logging.Abstractions.dasm (-0.00 % of base) -2 : System.Net.Sockets.dasm (-0.00 % of base) -2 : Microsoft.Extensions.Caching.Abstractions.dasm (-0.01 % of base) -1 : System.Diagnostics.Process.dasm (-0.00 % of base) -1 : System.IO.Pipes.dasm (-0.00 % of base) -1 : System.ComponentModel.Composition.dasm (-0.00 % of base) -1 : Microsoft.Extensions.FileSystemGlobbing.dasm (-0.00 % of base) -1 : System.IO.Pipelines.dasm (-0.00 % of base) 74 total files with Code Size differences (44 improved, 30 regressed), 185 unchanged. Top method regressions (bytes): 59 (2.98 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (FullOpts) 54 (1.08 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:GenerateEncodedMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts) 35 (2.22 % of base) : System.Console.dasm - System.TermInfo+DatabaseFactory:ReadDatabase(System.String,System.String):System.TermInfo+Database (FullOpts) 32 (9.01 % of base) : System.Private.Xml.dasm - System.Xml.XmlSqlBinaryReader:CheckText(ubyte):int:this (FullOpts) 21 (0.29 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:WriteStructMethod(System.Xml.Serialization.StructMapping):this (FullOpts) 18 (6.41 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader:FormatNumeric(long,System.Span`1[ubyte]):int:this (FullOpts) 18 (27.69 % of base) : System.Private.CoreLib.dasm - System.Globalization.CompareInfo:InvariantCreateSortKeyOrdinal(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]) (FullOpts) 17 (8.42 % of base) : System.IO.MemoryMappedFiles.dasm - System.IO.MemoryMappedFiles.MemoryMappedFile+<>c:b__43_1(System.Span`1[ushort],int):this (FullOpts) 17 (8.10 % 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) 16 (0.33 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.CustomAttributeBuilder:.ctor(System.Reflection.ConstructorInfo,System.Object[],System.Reflection.PropertyInfo[],System.Object[],System.Reflection.FieldInfo[],System.Object[]):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) 15 (0.31 % of base) : System.Console.dasm - System.TermInfo+ParameterizedStrings:EvaluateInternal(System.String,byref,System.TermInfo+ParameterizedStrings+FormatParam[],System.Collections.Generic.Stack`1[System.TermInfo+ParameterizedStrings+FormatParam],byref,byref):System.String (FullOpts) 12 (0.34 % of base) : System.Runtime.Numerics.dasm - System.Number:FormatBigInteger(ubyte,System.Numerics.BigInteger,System.String,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo,System.Span`1[ushort],byref,byref):System.String (FullOpts) 10 (1.41 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[double](System.Enum+EnumInfo`1[double],double):System.String (FullOpts) 10 (1.62 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[int](System.Enum+EnumInfo`1[int],int):System.String (FullOpts) 10 (1.58 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[long](System.Enum+EnumInfo`1[long],long):System.String (FullOpts) 10 (1.56 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[short](System.Enum+EnumInfo`1[short],short):System.String (FullOpts) 10 (1.58 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[ubyte](System.Enum+EnumInfo`1[ubyte],ubyte):System.String (FullOpts) 10 (0.40 % of base) : System.Private.CoreLib.dasm - System.Reflection.CustomAttributeTypedArgument:ToString(ubyte):System.String:this (FullOpts) 10 (0.20 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:GenerateLiteralMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts) 10 (0.14 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:GenerateLiteralMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (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 (0.44 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) 8 (0.57 % of base) : System.Net.Primitives.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) 8 (0.44 % of base) : System.Net.Requests.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) 8 (0.44 % of base) : System.Net.Mail.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) 8 (0.57 % of base) : System.Net.NameResolution.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) 8 (0.44 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) 8 (0.56 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) 8 (0.44 % of base) : System.Net.HttpListener.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) 8 (0.43 % of base) : System.Net.Quic.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) 8 (4.15 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float],System.String):this (FullOpts) 8 (0.24 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.ReflectionAwareCodeGen:WriteTypeInfo(System.Xml.Serialization.TypeScope,System.Xml.Serialization.TypeDesc,System.Type):System.String:this (FullOpts) 8 (0.75 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.SoapReflectionImporter:XsdTypeName(System.Type,System.Xml.Serialization.SoapAttributes,System.String):System.String:this (FullOpts) 8 (0.75 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlReflectionImporter:XsdTypeName(System.Type,System.Xml.Serialization.XmlAttributes,System.String):System.String:this (FullOpts) 6 (0.15 % of base) : Microsoft.Extensions.Options.DataAnnotations.dasm - Microsoft.Extensions.Options.DataAnnotationValidateOptions`1[System.__Canon]:TryValidateOptions(System.Object,System.String,System.Collections.Generic.List`1[System.ComponentModel.DataAnnotations.ValidationResult],byref,byref):ubyte (FullOpts) 6 (1.54 % of base) : System.Private.CoreLib.dasm - System.Globalization.CompareInfo:InvariantCreateSortKeyOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]) (FullOpts) 6 (2.42 % of base) : System.Net.Primitives.dasm - System.Net.IPNetwork:TryFormat(System.Span`1[ushort],byref):ubyte:this (FullOpts) 5 (4.35 % of base) : System.Private.CoreLib.dasm - System.Decimal:GetBytes(byref,System.Span`1[ubyte]) (FullOpts) 5 (0.67 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.Nullable`1[int]](System.Nullable`1[int],System.String):this (FullOpts) 5 (2.59 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemEncoding:g__WritePostEB|5_0(System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):System.ReadOnlySpan`1[ushort] (FullOpts) 4 (0.61 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.BinderHelper:ValidateBindArgument(System.Dynamic.DynamicMetaObject[],System.String) (FullOpts) 4 (0.76 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.GenericServices:GetGenericName(System.String,int[],int):System.String (FullOpts) 4 (0.30 % of base) : System.Data.Common.dasm - System.Data.Merger:MergeRows(System.Data.DataRow[]):this (FullOpts) 4 (0.58 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Activity:.cctor() (FullOpts) 4 (0.78 % of base) : System.Linq.Expressions.dasm - System.Dynamic.Utils.ContractUtils:GetParamName(System.String,int):System.String (FullOpts) 4 (0.79 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Error:GetParamName(System.String,int):System.String (FullOpts) 4 (0.38 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Interpreter.DebugInfo:ToString():System.String:this (FullOpts) 4 (0.43 % of base) : System.Net.Http.dasm - System.Net.Http.Headers.RangeItemHeaderValue:ToString():System.String:this (FullOpts) 4 (0.35 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:ReadGoAwayFrame(System.Net.Http.Http2Connection+FrameHeader):System.ValueTuple`2[int,int]:this (FullOpts) 4 (0.28 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteLiteralHeader(System.String,System.ReadOnlySpan`1[System.String],System.Text.Encoding,byref):this (FullOpts) 4 (0.88 % of base) : System.Net.HttpListener.dasm - System.Net.HttpListener+<>c:b__32_1(System.Span`1[ushort],System.ValueTuple`3[System.String,int,int]):this (FullOpts) 4 (0.07 % of base) : System.Net.Quic.dasm - System.Net.Quic.MsQuicApi:.cctor() (FullOpts) 4 (0.29 % of base) : System.Net.WebProxy.dasm - System.Net.WebProxy:IsMatchInBypassList(System.Uri):ubyte:this (FullOpts) 4 (0.15 % of base) : System.Reflection.Metadata.dasm - System.Reflection.AssemblyNameFormatter:ComputeDisplayName(System.String,System.Version,System.String,ubyte[],int,int):System.String (FullOpts) 4 (0.14 % of base) : System.Private.CoreLib.dasm - System.Reflection.AssemblyNameFormatter:ComputeDisplayName(System.String,System.Version,System.String,ubyte[],int,int):System.String (FullOpts) 4 (1.63 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendCustomFormatter[double](double,System.String):this (FullOpts) 4 (1.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendCustomFormatter[int](int,System.String):this (FullOpts) 4 (1.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendCustomFormatter[long](long,System.String):this (FullOpts) 4 (1.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendCustomFormatter[short](short,System.String):this (FullOpts) 4 (1.90 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendCustomFormatter[System.__Canon](System.__Canon,System.String):this (FullOpts) 4 (1.68 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendCustomFormatter[System.Nullable`1[int]](System.Nullable`1[int],System.String):this (FullOpts) 4 (1.65 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendCustomFormatter[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float],System.String):this (FullOpts) 4 (1.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendCustomFormatter[ubyte](ubyte,System.String):this (FullOpts) 4 (0.74 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.__Canon](System.__Canon,System.String):this (FullOpts) 4 (0.77 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.__Canon](System.__Canon):this (FullOpts) 4 (0.59 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.Nullable`1[int]](System.Nullable`1[int]):this (FullOpts) 4 (1.99 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float]):this (FullOpts) 4 (0.58 % of base) : System.Text.Json.dasm - System.Text.Json.Nodes.JsonArray+DebugView+DebugViewItem:get_Display():System.String:this (FullOpts) 4 (0.87 % of base) : System.Text.Json.dasm - System.Text.Json.ThrowHelper:ThrowInvalidOperationException_SerializationDuplicateAttribute(System.Type,System.Reflection.MemberInfo) (FullOpts) 4 (0.13 % of base) : System.Private.Uri.dasm - System.Uri:CombineUri(System.Uri,System.String,int):System.String (FullOpts) 4 (0.71 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.ReflectionAwareCodeGen:GetStringForCreateInstance(System.String,ubyte,ubyte,ubyte,System.String):System.String:this (FullOpts) 4 (0.85 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlMapping:GenerateKey(System.Type,System.Xml.Serialization.XmlRootAttribute,System.String):System.String (FullOpts) 4 (0.12 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteAttributes(System.Xml.Serialization.XmlSerializationReaderCodeGen+Member[],System.Xml.Serialization.XmlSerializationReaderCodeGen+Member,System.String,System.String):this (FullOpts) 4 (0.13 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteDerivedSerializable(System.Xml.Serialization.SerializableMapping,System.Xml.Serialization.SerializableMapping,System.String,ubyte):this (FullOpts) 4 (0.15 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteEnumAndArrayTypes():this (FullOpts) 4 (0.16 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:WriteMemberBegin(System.Xml.Serialization.XmlSerializationReaderCodeGen+Member[]):this (FullOpts) 4 (0.05 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:WriteElement(System.String,System.Xml.Serialization.ElementAccessor,System.String,ubyte):this (FullOpts) 4 (0.07 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:GenerateMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts) 4 (0.44 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.XmlQueryType:NameAndType(ubyte):System.String:this (FullOpts) 3 (0.40 % of base) : Microsoft.Extensions.Diagnostics.dasm - Microsoft.Extensions.Diagnostics.Metrics.DebugConsoleMetricListener:MeasurementHandler[double](System.Diagnostics.Metrics.Instrument,double,System.ReadOnlySpan`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]],System.Object):this (FullOpts) 3 (0.40 % of base) : Microsoft.Extensions.Diagnostics.dasm - Microsoft.Extensions.Diagnostics.Metrics.DebugConsoleMetricListener:MeasurementHandler[System.Numerics.Vector`1[float]](System.Diagnostics.Metrics.Instrument,System.Numerics.Vector`1[float],System.ReadOnlySpan`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]],System.Object):this (FullOpts) 3 (0.20 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.MetricsEventSource+CommandHandler:SetMaxValue(System.Collections.Generic.IDictionary`2[System.String,System.String],System.String,System.String,int,byref):ubyte:this (FullOpts) 3 (0.42 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.DebugViewWriter:VisitBlock(System.Linq.Expressions.BlockExpression):System.Linq.Expressions.Expression:this (FullOpts) 3 (0.61 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:ToString():System.String:this (FullOpts) 3 (0.61 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:ToString():System.String:this (FullOpts) 3 (0.34 % of base) : System.Net.Mail.dasm - System.Net.Mime.SmtpDateTime:ToString():System.String:this (FullOpts) 3 (2.70 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendLiteral(System.String):this (FullOpts) 3 (6.12 % of base) : System.Private.CoreLib.dasm - System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this (FullOpts) 3 (0.39 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Qil.QilName:ToString():System.String:this (FullOpts) 2 (0.39 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.BitVector32+Section:ToString(System.Collections.Specialized.BitVector32+Section):System.String (FullOpts) 2 (0.21 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.DsesFilterAndTransform+TransformSpec+PropertySpec+PropertyFetch+EnumeratePropertyFetch:Fetch(System.Object):System.Object:this (FullOpts) 2 (0.28 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceListener:Fail(System.String,System.String):this (FullOpts) 2 (0.32 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceListener:WriteHeader(System.String,int,int):this (FullOpts) 2 (0.29 % of base) : System.Net.Http.dasm - System.Net.Http.CreditManager:.ctor(System.Net.Http.IHttpTrace,System.String,int):this (FullOpts) 2 (0.12 % of base) : System.Net.Http.dasm - System.Net.Http.Headers.HttpHeaders:ToString():System.String:this (FullOpts) Top method improvements (bytes): -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) -53 (-0.99 % of base) : System.Net.Quic.dasm - Microsoft.Quic.QUIC_STREAM_EVENT:ToString():System.String:this (FullOpts) -45 (-0.62 % of base) : System.Net.Quic.dasm - Microsoft.Quic.QUIC_CONNECTION_EVENT:ToString():System.String: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) -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) -31 (-16.67 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.Crc32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (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) -25 (-0.62 % of base) : System.Net.Http.dasm - System.Net.Http.RedirectHandler+d__4:MoveNext():this (FullOpts) -25 (-3.00 % of base) : System.Security.Claims.dasm - System.Security.Claims.ClaimsPrincipal:DebuggerToString():System.String:this (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 (-20.72 % of base) : System.Net.Primitives.dasm - System.Net.IPAddress:TryWriteBytes(System.Span`1[ubyte],byref):ubyte:this (FullOpts) -22 (-0.85 % of base) : System.Private.CoreLib.dasm - System.Reflection.RuntimeExceptionHandlingClause:ToString():System.String:this (FullOpts) -19 (-0.79 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionBase:TraceConnection(System.IO.Stream):this (FullOpts) -18 (-1.32 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:GetArraySource(System.Xml.Serialization.TypeDesc,System.String,ubyte):System.String (FullOpts) -16 (-1.75 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.ExpressionStringBuilder:VisitDebugInfo(System.Linq.Expressions.DebugInfoExpression):System.Linq.Expressions.Expression:this (FullOpts) -14 (-0.82 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionPool:CheckForHttp11ConnectionInjection():this (FullOpts) -14 (-0.84 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionPool:CheckForHttp2ConnectionInjection():this (FullOpts) -14 (-0.84 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionPool:CheckForHttp3ConnectionInjection():this (FullOpts) -13 (-1.43 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.DebugViewWriter:VisitDebugInfo(System.Linq.Expressions.DebugInfoExpression):System.Linq.Expressions.Expression:this (FullOpts) -12 (-0.58 % of base) : Microsoft.Extensions.DependencyInjection.Abstractions.dasm - Microsoft.Extensions.DependencyInjection.ServiceDescriptor:DebuggerToString():System.String:this (FullOpts) -12 (-0.81 % of base) : Microsoft.Extensions.Logging.dasm - Microsoft.Extensions.Logging.LoggerFilterRule:ToString():System.String:this (FullOpts) -12 (-1.78 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.MaskedTextProvider+CharDescriptor:ToString():System.String:this (FullOpts) -12 (-11.43 % of base) : System.Private.CoreLib.dasm - System.Guid:TryWriteBytes(System.Span`1[ubyte],ubyte,byref):ubyte:this (FullOpts) -12 (-1.50 % of base) : System.Private.CoreLib.dasm - System.IO.Path:Join(System.ReadOnlySpan`1[System.String]):System.String (FullOpts) -12 (-1.44 % of base) : System.Private.CoreLib.dasm - System.Reflection.ExceptionHandlingClause:ToString():System.String:this (FullOpts) -12 (-2.77 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonWriter:get_DebuggerDisplay():System.String:this (FullOpts) -11 (-1.44 % of base) : Microsoft.Extensions.Configuration.FileExtensions.dasm - Microsoft.Extensions.Configuration.FileConfigurationProvider:ToString():System.String:this (FullOpts) -11 (-33.33 % of base) : System.Private.CoreLib.dasm - System.Guid:TryWriteBytes(System.Span`1[ubyte]):ubyte:this (FullOpts) -11 (-0.80 % of base) : System.Net.Http.dasm - System.Net.Http.DiagnosticsHandler+ResponseData:ToString():System.String:this (FullOpts) -10 (-1.23 % of base) : Microsoft.Extensions.Configuration.dasm - Microsoft.Extensions.Configuration.ConfigurationSection:DebuggerToString():System.String:this (FullOpts) -10 (-0.95 % of base) : System.Drawing.Primitives.dasm - System.Drawing.Color:get_NameAndARGBValue():System.String:this (FullOpts) -10 (-0.10 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+d__56:MoveNext():this (FullOpts) -10 (-1.62 % of base) : System.Private.CoreLib.dasm - System.Numerics.Quaternion:ToString():System.String:this (FullOpts) -10 (-2.12 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:get_DebuggerDisplay():System.String:this (FullOpts) -10 (-0.88 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILConstructInfo:ToString():System.String:this (FullOpts) -9 (-1.36 % of base) : Microsoft.Extensions.Logging.dasm - Microsoft.Extensions.Logging.LoggerFilterOptions:DebuggerToString():System.String:this (FullOpts) -9 (-0.52 % of base) : System.Net.Quic.dasm - Microsoft.Quic.QUIC_LISTENER_EVENT:ToString():System.String:this (FullOpts) -9 (-0.77 % of base) : System.Net.Quic.dasm - Microsoft.Quic.QUIC_NEW_CONNECTION_INFO:ToString():System.String:this (FullOpts) -9 (-0.54 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.DsesFilterAndTransform+TransformSpec+PropertySpec+PropertyFetch:FetcherForProperty(System.Diagnostics.DiagnosticSourceEventSource,System.Type,System.String):System.Diagnostics.DsesFilterAndTransform+TransformSpec+PropertySpec+PropertyFetch (FullOpts) -9 (-1.74 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventCounter:ToString():System.String:this (FullOpts) -9 (-0.82 % of base) : System.Net.Http.dasm - System.Net.Http.DiagnosticsHandler+ActivityStopData:ToString():System.String:this (FullOpts) -9 (-0.82 % of base) : System.Net.Http.dasm - System.Net.Http.DiagnosticsHandler+RequestData:ToString():System.String:this (FullOpts) -9 (-0.96 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:SignalAvailableStreamsWaiter(ubyte):this (FullOpts) -9 (-1.70 % of base) : System.Net.Http.dasm - System.Net.Http.HttpRuleParser:IsValidHostName(System.ReadOnlySpan`1[ushort]):ubyte (FullOpts) -9 (-0.90 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SafeSocketHandle:CloseHandle(long):int:this (FullOpts) -9 (-2.17 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.PortablePdbBuilder:Serialize(System.Reflection.Metadata.BlobBuilder):System.Reflection.Metadata.BlobContentId:this (FullOpts) -8 (-0.25 % of base) : Microsoft.Extensions.DependencyInjection.Abstractions.dasm - Microsoft.Extensions.DependencyInjection.ServiceDescriptor:ToString():System.String:this (FullOpts) -8 (-2.35 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1[double]:get_DebuggerDisplay():System.String:this (FullOpts) -8 (-2.35 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1[int]:get_DebuggerDisplay():System.String:this (FullOpts) -8 (-2.35 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1[long]:get_DebuggerDisplay():System.String:this (FullOpts) -8 (-2.35 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1[short]:get_DebuggerDisplay():System.String:this (FullOpts) -8 (-2.35 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1[System.__Canon]:get_DebuggerDisplay():System.String:this (FullOpts) -8 (-2.35 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1[System.Nullable`1[int]]:get_DebuggerDisplay():System.String:this (FullOpts) -8 (-2.35 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1[System.Numerics.Vector`1[float]]:get_DebuggerDisplay():System.String:this (FullOpts) -8 (-2.35 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1[ubyte]:get_DebuggerDisplay():System.String:this (FullOpts) -8 (-2.40 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.IncrementingEventCounter:ToString():System.String:this (FullOpts) -8 (-2.40 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.IncrementingPollingCounter:ToString():System.String:this (FullOpts) -8 (-1.85 % of base) : System.Private.CoreLib.dasm - System.Globalization.SortKey:ToString():System.String:this (FullOpts) -8 (-1.44 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions+TryWriteInterpolatedStringHandler:AppendFormatted[System.__Canon](System.__Canon,System.String):ubyte:this (FullOpts) -8 (-1.49 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions+TryWriteInterpolatedStringHandler:AppendFormatted[System.__Canon](System.__Canon):ubyte:this (FullOpts) -8 (-1.32 % of base) : System.Net.Http.dasm - System.Net.CredentialCacheKey:ToString():System.String:this (FullOpts) -8 (-0.93 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:ProcessPingFrame(System.Net.Http.Http2Connection+FrameHeader):this (FullOpts) -8 (-1.25 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+FrameHeader:ToString():System.String:this (FullOpts) -8 (-1.25 % of base) : System.Private.CoreLib.dasm - System.OperatingSystem:get_VersionString():System.String:this (FullOpts) -8 (-1.24 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.SequencePoint:GetDebuggerDisplay():System.String:this (FullOpts) -8 (-2.13 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializerOptions:get_DebuggerDisplay():System.String:this (FullOpts) -8 (-0.13 % of base) : runincontext.dasm - TestRunner:DoWorkStress():int:this (FullOpts) -7 (-1.52 % of base) : Microsoft.Extensions.Configuration.dasm - Microsoft.Extensions.Configuration.ConfigurationSectionDebugView:ToString():System.String:this (FullOpts) -7 (-1.36 % of base) : Microsoft.Extensions.Logging.dasm - Microsoft.Extensions.Logging.LoggerFactory:DebuggerToString():System.String:this (FullOpts) -7 (-0.42 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.MetricsEventSource+CommandHandler:GetRefreshIntervalSecs(System.Collections.Generic.IDictionary`2[System.String,System.String],System.String,double,byref):ubyte:this (FullOpts) -7 (-2.10 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.PollingCounter:ToString():System.String:this (FullOpts) -7 (-0.99 % of base) : System.Drawing.Primitives.dasm - System.Drawing.Rectangle:ToString():System.String:this (FullOpts) -7 (-0.98 % of base) : System.Drawing.Primitives.dasm - System.Drawing.RectangleF:ToString():System.String:this (FullOpts) -7 (-0.31 % of base) : System.Net.Http.dasm - System.Net.Http.DiagnosticsHelper:GetRedactedUriString(System.Uri):System.String (FullOpts) -7 (-0.62 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+Http2Stream:OnReset(System.Exception,System.Nullable`1[int],ubyte):this (FullOpts) -7 (-1.09 % of base) : System.Net.Quic.dasm - System.Net.Quic.MsQuicHelpers:GetMsQuicParameter(System.Net.Quic.MsQuicSafeHandle,uint,uint,ulong) (FullOpts) -7 (-0.72 % of base) : System.Reflection.DispatchProxy.dasm - System.Reflection.DispatchProxyGenerator+ProxyAssembly:.ctor(System.Runtime.Loader.AssemblyLoadContext):this (FullOpts) -7 (-1.36 % of base) : System.Text.Json.dasm - System.Text.Json.ReadStack:get_DebuggerDisplay():System.String:this (FullOpts) -7 (-1.81 % of base) : System.Text.Json.dasm - System.Text.Json.ReadStackFrame:get_DebuggerDisplay():System.String:this (FullOpts) -7 (-2.08 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.ConfigurationList`1[double]:get_DebuggerDisplay():System.String:this (FullOpts) -7 (-2.08 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.ConfigurationList`1[int]:get_DebuggerDisplay():System.String:this (FullOpts) -7 (-2.08 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.ConfigurationList`1[long]:get_DebuggerDisplay():System.String:this (FullOpts) -7 (-2.08 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.ConfigurationList`1[short]:get_DebuggerDisplay():System.String:this (FullOpts) -7 (-2.08 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.ConfigurationList`1[System.__Canon]:get_DebuggerDisplay():System.String:this (FullOpts) -7 (-2.08 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.ConfigurationList`1[System.Nullable`1[int]]:get_DebuggerDisplay():System.String:this (FullOpts) -7 (-2.08 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.ConfigurationList`1[System.Numerics.Vector`1[float]]:get_DebuggerDisplay():System.String:this (FullOpts) -7 (-2.08 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.ConfigurationList`1[ubyte]:get_DebuggerDisplay():System.String:this (FullOpts) -7 (-1.37 % of base) : System.Text.Json.dasm - System.Text.Json.WriteStack:get_DebuggerDisplay():System.String:this (FullOpts) -7 (-1.81 % of base) : System.Text.Json.dasm - System.Text.Json.WriteStackFrame:get_DebuggerDisplay():System.String:this (FullOpts) -7 (-1.14 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1[System.__Canon]:get_DebuggerDisplayContent():System.Object:this (FullOpts) -7 (-0.78 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:WriteAttribute(System.String,System.Xml.Serialization.AttributeAccessor,System.String):this (FullOpts) -6 (-1.82 % of base) : Microsoft.Extensions.Configuration.dasm - Microsoft.Extensions.Configuration.ConfigurationManager:DebuggerToString():System.String:this (FullOpts) -6 (-1.82 % of base) : Microsoft.Extensions.Configuration.dasm - Microsoft.Extensions.Configuration.ConfigurationRoot:DebuggerToString():System.String:this (FullOpts) -6 (-1.67 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.Design.CommandID:ToString():System.String:this (FullOpts) -6 (-1.81 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlBinary:ToString():System.String:this (FullOpts) -6 (-1.22 % of base) : System.Drawing.Primitives.dasm - System.Drawing.Point:ToString():System.String:this (FullOpts) -6 (-0.71 % of base) : System.Net.Http.dasm - System.Net.Http.CreditManager:RequestCreditAsync(int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) Top method regressions (percentages): 18 (27.69 % of base) : System.Private.CoreLib.dasm - System.Globalization.CompareInfo:InvariantCreateSortKeyOrdinal(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]) (FullOpts) 32 (9.01 % of base) : System.Private.Xml.dasm - System.Xml.XmlSqlBinaryReader:CheckText(ubyte):int:this (FullOpts) 17 (8.42 % of base) : System.IO.MemoryMappedFiles.dasm - System.IO.MemoryMappedFiles.MemoryMappedFile+<>c:b__43_1(System.Span`1[ushort],int):this (FullOpts) 17 (8.10 % 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) 18 (6.41 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader:FormatNumeric(long,System.Span`1[ubyte]):int:this (FullOpts) 3 (6.12 % of base) : System.Private.CoreLib.dasm - System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this (FullOpts) 5 (4.35 % of base) : System.Private.CoreLib.dasm - System.Decimal:GetBytes(byref,System.Span`1[ubyte]) (FullOpts) 8 (4.15 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float],System.String):this (FullOpts) 59 (2.98 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (FullOpts) 3 (2.70 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendLiteral(System.String):this (FullOpts) 5 (2.59 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemEncoding:g__WritePostEB|5_0(System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):System.ReadOnlySpan`1[ushort] (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) 6 (2.42 % of base) : System.Net.Primitives.dasm - System.Net.IPNetwork:TryFormat(System.Span`1[ushort],byref):ubyte:this (FullOpts) 35 (2.22 % of base) : System.Console.dasm - System.TermInfo+DatabaseFactory:ReadDatabase(System.String,System.String):System.TermInfo+Database (FullOpts) 4 (1.99 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float]):this (FullOpts) 4 (1.90 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendCustomFormatter[System.__Canon](System.__Canon,System.String):this (FullOpts) 4 (1.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendCustomFormatter[int](int,System.String):this (FullOpts) 4 (1.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendCustomFormatter[long](long,System.String):this (FullOpts) 4 (1.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendCustomFormatter[ubyte](ubyte,System.String):this (FullOpts) 4 (1.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendCustomFormatter[short](short,System.String):this (FullOpts) 4 (1.68 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendCustomFormatter[System.Nullable`1[int]](System.Nullable`1[int],System.String):this (FullOpts) 4 (1.65 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendCustomFormatter[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float],System.String):this (FullOpts) 4 (1.63 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendCustomFormatter[double](double,System.String):this (FullOpts) 10 (1.62 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[int](System.Enum+EnumInfo`1[int],int):System.String (FullOpts) 10 (1.58 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[long](System.Enum+EnumInfo`1[long],long):System.String (FullOpts) 10 (1.58 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[ubyte](System.Enum+EnumInfo`1[ubyte],ubyte):System.String (FullOpts) 10 (1.56 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[short](System.Enum+EnumInfo`1[short],short):System.String (FullOpts) 6 (1.54 % of base) : System.Private.CoreLib.dasm - System.Globalization.CompareInfo:InvariantCreateSortKeyOrdinalIgnoreCase(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]) (FullOpts) 10 (1.41 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[double](System.Enum+EnumInfo`1[double],double):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) 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) 54 (1.08 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:GenerateEncodedMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts) 4 (0.88 % of base) : System.Net.HttpListener.dasm - System.Net.HttpListener+<>c:b__32_1(System.Span`1[ushort],System.ValueTuple`3[System.String,int,int]):this (FullOpts) 4 (0.87 % of base) : System.Text.Json.dasm - System.Text.Json.ThrowHelper:ThrowInvalidOperationException_SerializationDuplicateAttribute(System.Type,System.Reflection.MemberInfo) (FullOpts) 4 (0.85 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlMapping:GenerateKey(System.Type,System.Xml.Serialization.XmlRootAttribute,System.String):System.String (FullOpts) 4 (0.79 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Error:GetParamName(System.String,int):System.String (FullOpts) 4 (0.78 % of base) : System.Linq.Expressions.dasm - System.Dynamic.Utils.ContractUtils:GetParamName(System.String,int):System.String (FullOpts) 4 (0.77 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.__Canon](System.__Canon):this (FullOpts) 4 (0.76 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.GenericServices:GetGenericName(System.String,int[],int):System.String (FullOpts) 8 (0.75 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.SoapReflectionImporter:XsdTypeName(System.Type,System.Xml.Serialization.SoapAttributes,System.String):System.String:this (FullOpts) 8 (0.75 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlReflectionImporter:XsdTypeName(System.Type,System.Xml.Serialization.XmlAttributes,System.String):System.String:this (FullOpts) 4 (0.74 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.__Canon](System.__Canon,System.String):this (FullOpts) 4 (0.71 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.ReflectionAwareCodeGen:GetStringForCreateInstance(System.String,ubyte,ubyte,ubyte,System.String):System.String:this (FullOpts) 2 (0.69 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.ReflectionAwareCodeGen:GenerateVariableName(System.String,System.String):System.String:this (FullOpts) 5 (0.67 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.Nullable`1[int]](System.Nullable`1[int],System.String):this (FullOpts) 2 (0.64 % of base) : System.Transactions.Local.dasm - System.Transactions.InternalTransaction+<>c:b__52_0():System.String:this (FullOpts) 3 (0.61 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:ToString():System.String:this (FullOpts) 3 (0.61 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:ToString():System.String:this (FullOpts) 4 (0.61 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.BinderHelper:ValidateBindArgument(System.Dynamic.DynamicMetaObject[],System.String) (FullOpts) 2 (0.60 % of base) : System.Runtime.InteropServices.dasm - System.Runtime.InteropServices.RuntimeEnvironment:GetSystemVersion():System.String (FullOpts) 4 (0.59 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.Nullable`1[int]](System.Nullable`1[int]):this (FullOpts) 4 (0.58 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Activity:.cctor() (FullOpts) 4 (0.58 % of base) : System.Text.Json.dasm - System.Text.Json.Nodes.JsonArray+DebugView+DebugViewItem:get_Display():System.String:this (FullOpts) 8 (0.57 % of base) : System.Net.Primitives.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) 8 (0.57 % of base) : System.Net.NameResolution.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) 8 (0.56 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) 4 (0.44 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.XmlQueryType:NameAndType(ubyte):System.String:this (FullOpts) 8 (0.44 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) 8 (0.44 % of base) : System.Net.Requests.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) 8 (0.44 % of base) : System.Net.Mail.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) 8 (0.44 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) 8 (0.44 % of base) : System.Net.HttpListener.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) 4 (0.43 % of base) : System.Net.Http.dasm - System.Net.Http.Headers.RangeItemHeaderValue:ToString():System.String:this (FullOpts) 8 (0.43 % of base) : System.Net.Quic.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) 3 (0.42 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.DebugViewWriter:VisitBlock(System.Linq.Expressions.BlockExpression):System.Linq.Expressions.Expression:this (FullOpts) 3 (0.40 % of base) : Microsoft.Extensions.Diagnostics.dasm - Microsoft.Extensions.Diagnostics.Metrics.DebugConsoleMetricListener:MeasurementHandler[double](System.Diagnostics.Metrics.Instrument,double,System.ReadOnlySpan`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]],System.Object):this (FullOpts) 3 (0.40 % of base) : Microsoft.Extensions.Diagnostics.dasm - Microsoft.Extensions.Diagnostics.Metrics.DebugConsoleMetricListener:MeasurementHandler[System.Numerics.Vector`1[float]](System.Diagnostics.Metrics.Instrument,System.Numerics.Vector`1[float],System.ReadOnlySpan`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]],System.Object):this (FullOpts) 10 (0.40 % of base) : System.Private.CoreLib.dasm - System.Reflection.CustomAttributeTypedArgument:ToString(ubyte):System.String:this (FullOpts) 2 (0.39 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.BitVector32+Section:ToString(System.Collections.Specialized.BitVector32+Section):System.String (FullOpts) 3 (0.39 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Qil.QilName:ToString():System.String:this (FullOpts) 4 (0.38 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Interpreter.DebugInfo:ToString():System.String:this (FullOpts) 2 (0.37 % of base) : System.Net.Http.dasm - System.Net.Http.HttpTelemetry:RequestStart(System.String,System.String,int,System.String,ubyte,ubyte,int):this (FullOpts) 2 (0.36 % of base) : System.Runtime.Numerics.dasm - System.Numerics.Complex:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts) 4 (0.35 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:ReadGoAwayFrame(System.Net.Http.Http2Connection+FrameHeader):System.ValueTuple`2[int,int]:this (FullOpts) 2 (0.34 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.XmlWriterDelegator:WriteXmlnsAttribute(System.String):this (FullOpts) 12 (0.34 % of base) : System.Runtime.Numerics.dasm - System.Number:FormatBigInteger(ubyte,System.Numerics.BigInteger,System.String,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo,System.Span`1[ushort],byref,byref):System.String (FullOpts) 3 (0.34 % of base) : System.Net.Mail.dasm - System.Net.Mime.SmtpDateTime:ToString():System.String:this (FullOpts) 16 (0.33 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.CustomAttributeBuilder:.ctor(System.Reflection.ConstructorInfo,System.Object[],System.Reflection.PropertyInfo[],System.Object[],System.Reflection.FieldInfo[],System.Object[]):this (FullOpts) 2 (0.32 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.ReflectionAwareCodeGen:GetStringForArrayMember(System.String,System.String,System.Xml.Serialization.TypeDesc):System.String:this (FullOpts) 2 (0.32 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceListener:WriteHeader(System.String,int,int):this (FullOpts) 2 (0.31 % of base) : System.Net.Quic.dasm - System.Net.Quic.MsQuicSafeHandle:ToString():System.String:this (FullOpts) 15 (0.31 % of base) : System.Console.dasm - System.TermInfo+ParameterizedStrings:EvaluateInternal(System.String,byref,System.TermInfo+ParameterizedStrings+FormatParam[],System.Collections.Generic.Stack`1[System.TermInfo+ParameterizedStrings+FormatParam],byref,byref):System.String (FullOpts) 2 (0.31 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteBytes(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts) 2 (0.30 % of base) : System.Net.WebSockets.Client.dasm - System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts) 2 (0.30 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts) 2 (0.30 % of base) : System.Net.HttpListener.dasm - System.Net.WebSockets.WebSocketValidate:ValidateSubprotocol(System.String) (FullOpts) 2 (0.30 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[double]:ToString():System.String:this (FullOpts) 2 (0.30 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[int]:ToString():System.String:this (FullOpts) 2 (0.30 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[long]:ToString():System.String:this (FullOpts) 2 (0.30 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[short]:ToString():System.String:this (FullOpts) 2 (0.30 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Nullable`1[int]]:ToString():System.String:this (FullOpts) 2 (0.30 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Numerics.Vector`1[float]]:ToString():System.String:this (FullOpts) 2 (0.30 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[ubyte]:ToString():System.String:this (FullOpts) 2 (0.30 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[double]:ToString():System.String:this (FullOpts) 2 (0.30 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[int]:ToString():System.String:this (FullOpts) 2 (0.30 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[long]:ToString():System.String:this (FullOpts) 2 (0.30 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[short]:ToString():System.String:this (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) -11 (-33.33 % of base) : System.Private.CoreLib.dasm - System.Guid:TryWriteBytes(System.Span`1[ubyte]):ubyte: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) -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) -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) -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) -31 (-16.67 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.Crc32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts) -12 (-11.43 % of base) : System.Private.CoreLib.dasm - System.Guid:TryWriteBytes(System.Span`1[ubyte],ubyte,byref):ubyte:this (FullOpts) -6 (-6.38 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument+MetadataDb:SetHasComplexChildren(int):this (FullOpts) -6 (-6.25 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument+MetadataDb:SetNumberOfRows(int,int):this (FullOpts) -5 (-5.75 % of base) : System.Reflection.Metadata.dasm - System.Reflection.BlobUtilities:WriteGuid(ubyte[],int,System.Guid) (FullOpts) -5 (-4.10 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.BlobWriter:WriteGuid(System.Guid):this (FullOpts) -5 (-3.14 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.BlobBuilder:WriteGuid(System.Guid):this (FullOpts) -25 (-3.00 % of base) : System.Security.Claims.dasm - System.Security.Claims.ClaimsPrincipal:DebuggerToString():System.String:this (FullOpts) -12 (-2.77 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonWriter:get_DebuggerDisplay():System.String: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) -8 (-2.40 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.IncrementingEventCounter:ToString():System.String:this (FullOpts) -8 (-2.40 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.IncrementingPollingCounter:ToString():System.String:this (FullOpts) -8 (-2.35 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1[double]:get_DebuggerDisplay():System.String:this (FullOpts) -8 (-2.35 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1[int]:get_DebuggerDisplay():System.String:this (FullOpts) -8 (-2.35 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1[long]:get_DebuggerDisplay():System.String:this (FullOpts) -8 (-2.35 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1[short]:get_DebuggerDisplay():System.String:this (FullOpts) -8 (-2.35 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1[System.__Canon]:get_DebuggerDisplay():System.String:this (FullOpts) -8 (-2.35 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1[System.Nullable`1[int]]:get_DebuggerDisplay():System.String:this (FullOpts) -8 (-2.35 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1[System.Numerics.Vector`1[float]]:get_DebuggerDisplay():System.String:this (FullOpts) -8 (-2.35 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1[ubyte]:get_DebuggerDisplay():System.String:this (FullOpts) -9 (-2.17 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.PortablePdbBuilder:Serialize(System.Reflection.Metadata.BlobBuilder):System.Reflection.Metadata.BlobContentId:this (FullOpts) -8 (-2.13 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializerOptions:get_DebuggerDisplay():System.String:this (FullOpts) -10 (-2.12 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:get_DebuggerDisplay():System.String:this (FullOpts) -7 (-2.10 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.PollingCounter:ToString():System.String:this (FullOpts) -7 (-2.08 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.ConfigurationList`1[double]:get_DebuggerDisplay():System.String:this (FullOpts) -7 (-2.08 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.ConfigurationList`1[int]:get_DebuggerDisplay():System.String:this (FullOpts) -7 (-2.08 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.ConfigurationList`1[long]:get_DebuggerDisplay():System.String:this (FullOpts) -7 (-2.08 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.ConfigurationList`1[short]:get_DebuggerDisplay():System.String:this (FullOpts) -7 (-2.08 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.ConfigurationList`1[System.__Canon]:get_DebuggerDisplay():System.String:this (FullOpts) -7 (-2.08 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.ConfigurationList`1[System.Nullable`1[int]]:get_DebuggerDisplay():System.String:this (FullOpts) -7 (-2.08 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.ConfigurationList`1[System.Numerics.Vector`1[float]]:get_DebuggerDisplay():System.String:this (FullOpts) -7 (-2.08 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.ConfigurationList`1[ubyte]:get_DebuggerDisplay():System.String:this (FullOpts) -5 (-1.92 % of base) : System.Private.CoreLib.dasm - System.Reflection.MetadataToken:ToString():System.String:this (FullOpts) -5 (-1.92 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.ActivityTracker+ActivityInfo:Path(System.Diagnostics.Tracing.ActivityTracker+ActivityInfo):System.String (FullOpts) -6 (-1.85 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.MetadataAggregator+RowCounts:ToString():System.String:this (FullOpts) -6 (-1.85 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.Compiler:CreatePhantomNamespace():System.String:this (FullOpts) -8 (-1.85 % of base) : System.Private.CoreLib.dasm - System.Globalization.SortKey:ToString():System.String:this (FullOpts) -6 (-1.82 % of base) : Microsoft.Extensions.Configuration.dasm - Microsoft.Extensions.Configuration.ConfigurationManager:DebuggerToString():System.String:this (FullOpts) -6 (-1.82 % of base) : Microsoft.Extensions.Configuration.dasm - Microsoft.Extensions.Configuration.ConfigurationRoot:DebuggerToString():System.String:this (FullOpts) -6 (-1.81 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlBinary:ToString():System.String:this (FullOpts) -7 (-1.81 % of base) : System.Text.Json.dasm - System.Text.Json.ReadStackFrame:get_DebuggerDisplay():System.String:this (FullOpts) -7 (-1.81 % of base) : System.Text.Json.dasm - System.Text.Json.WriteStackFrame:get_DebuggerDisplay():System.String:this (FullOpts) -6 (-1.78 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo:get_DebuggerDisplay():System.String:this (FullOpts) -12 (-1.78 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.MaskedTextProvider+CharDescriptor:ToString():System.String:this (FullOpts) -16 (-1.75 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.ExpressionStringBuilder:VisitDebugInfo(System.Linq.Expressions.DebugInfoExpression):System.Linq.Expressions.Expression:this (FullOpts) -6 (-1.74 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo:get_DebuggerDisplay():System.String:this (FullOpts) -9 (-1.74 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventCounter:ToString():System.String:this (FullOpts) -9 (-1.70 % of base) : System.Net.Http.dasm - System.Net.Http.HttpRuleParser:IsValidHostName(System.ReadOnlySpan`1[ushort]):ubyte (FullOpts) -6 (-1.67 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.Design.CommandID:ToString():System.String:this (FullOpts) -10 (-1.62 % of base) : System.Private.CoreLib.dasm - System.Numerics.Quaternion:ToString():System.String:this (FullOpts) -5 (-1.61 % of base) : System.Net.Http.dasm - System.Net.Http.HttpRequestOptions:DebuggerToString():System.String:this (FullOpts) -5 (-1.54 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:GetOrAddGuid(System.Guid):System.Reflection.Metadata.GuidHandle:this (FullOpts) -7 (-1.52 % of base) : Microsoft.Extensions.Configuration.dasm - Microsoft.Extensions.Configuration.ConfigurationSectionDebugView:ToString():System.String:this (FullOpts) -12 (-1.50 % of base) : System.Private.CoreLib.dasm - System.IO.Path:Join(System.ReadOnlySpan`1[System.String]):System.String (FullOpts) -8 (-1.49 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions+TryWriteInterpolatedStringHandler:AppendFormatted[System.__Canon](System.__Canon):ubyte:this (FullOpts) -4 (-1.49 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.TypeNameParserHelpers:ThrowArgumentException_InvalidTypeName(int) (FullOpts) -4 (-1.49 % of base) : System.Private.CoreLib.dasm - System.Reflection.Metadata.TypeNameParserHelpers:ThrowArgumentException_InvalidTypeName(int) (FullOpts) -6 (-1.49 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionBase:g__LogFaulted|29_1(System.Net.Http.HttpConnectionBase,System.Threading.Tasks.Task) (FullOpts) -5 (-1.44 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSchemaExporter:ExportAnonymousPrimitiveMapping(System.Xml.Serialization.PrimitiveMapping):System.Xml.Schema.XmlSchemaSimpleType:this (FullOpts) -8 (-1.44 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions+TryWriteInterpolatedStringHandler:AppendFormatted[System.__Canon](System.__Canon,System.String):ubyte:this (FullOpts) -11 (-1.44 % of base) : Microsoft.Extensions.Configuration.FileExtensions.dasm - Microsoft.Extensions.Configuration.FileConfigurationProvider:ToString():System.String:this (FullOpts) -12 (-1.44 % of base) : System.Private.CoreLib.dasm - System.Reflection.ExceptionHandlingClause:ToString():System.String:this (FullOpts) -13 (-1.43 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.DebugViewWriter:VisitDebugInfo(System.Linq.Expressions.DebugInfoExpression):System.Linq.Expressions.Expression:this (FullOpts) -7 (-1.37 % of base) : System.Text.Json.dasm - System.Text.Json.WriteStack:get_DebuggerDisplay():System.String:this (FullOpts) -6 (-1.37 % of base) : System.ServiceModel.Syndication.dasm - System.ServiceModel.Syndication.SyndicationFeedFormatter:ToString():System.String:this (FullOpts) -6 (-1.37 % of base) : System.ServiceModel.Syndication.dasm - System.ServiceModel.Syndication.SyndicationItemFormatter:ToString():System.String:this (FullOpts) -7 (-1.36 % of base) : Microsoft.Extensions.Logging.dasm - Microsoft.Extensions.Logging.LoggerFactory:DebuggerToString():System.String:this (FullOpts) -7 (-1.36 % of base) : System.Text.Json.dasm - System.Text.Json.ReadStack:get_DebuggerDisplay():System.String:this (FullOpts) -9 (-1.36 % of base) : Microsoft.Extensions.Logging.dasm - Microsoft.Extensions.Logging.LoggerFilterOptions:DebuggerToString():System.String:this (FullOpts) -18 (-1.32 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:GetArraySource(System.Xml.Serialization.TypeDesc,System.String,ubyte):System.String (FullOpts) -8 (-1.32 % of base) : System.Net.Http.dasm - System.Net.CredentialCacheKey:ToString():System.String:this (FullOpts) -8 (-1.25 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+FrameHeader:ToString():System.String:this (FullOpts) -8 (-1.25 % of base) : System.Private.CoreLib.dasm - System.OperatingSystem:get_VersionString():System.String:this (FullOpts) -8 (-1.24 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.SequencePoint:GetDebuggerDisplay():System.String:this (FullOpts) -10 (-1.23 % of base) : Microsoft.Extensions.Configuration.dasm - Microsoft.Extensions.Configuration.ConfigurationSection:DebuggerToString():System.String:this (FullOpts) -5 (-1.22 % of base) : System.Data.Common.dasm - System.Data.ExceptionBuilder:ProblematicChars(ushort):System.Exception (FullOpts) -6 (-1.22 % of base) : System.Drawing.Primitives.dasm - System.Drawing.Point:ToString():System.String:this (FullOpts) -5 (-1.21 % of base) : System.Private.CoreLib.dasm - System.Numerics.Plane:ToString():System.String:this (FullOpts) -5 (-1.20 % of base) : System.Private.CoreLib.dasm - System.Memory`1[double]:ToString():System.String:this (FullOpts) -5 (-1.20 % of base) : System.Private.CoreLib.dasm - System.Memory`1[int]:ToString():System.String:this (FullOpts) -5 (-1.20 % of base) : System.Private.CoreLib.dasm - System.Memory`1[long]:ToString():System.String:this (FullOpts) -5 (-1.20 % of base) : System.Private.CoreLib.dasm - System.Memory`1[short]:ToString():System.String:this (FullOpts) -5 (-1.20 % of base) : System.Private.CoreLib.dasm - System.Memory`1[System.Nullable`1[int]]:ToString():System.String:this (FullOpts) -5 (-1.20 % of base) : System.Private.CoreLib.dasm - System.Memory`1[System.Numerics.Vector`1[float]]:ToString():System.String:this (FullOpts) -5 (-1.20 % of base) : System.Private.CoreLib.dasm - System.Memory`1[ubyte]:ToString():System.String:this (FullOpts) -5 (-1.20 % of base) : System.Private.CoreLib.dasm - System.ReadOnlyMemory`1[double]:ToString():System.String:this (FullOpts) -5 (-1.20 % of base) : System.Private.CoreLib.dasm - System.ReadOnlyMemory`1[int]:ToString():System.String:this (FullOpts) -5 (-1.20 % of base) : System.Private.CoreLib.dasm - System.ReadOnlyMemory`1[long]:ToString():System.String:this (FullOpts) -5 (-1.20 % of base) : System.Private.CoreLib.dasm - System.ReadOnlyMemory`1[short]:ToString():System.String:this (FullOpts) -5 (-1.20 % of base) : System.Private.CoreLib.dasm - System.ReadOnlyMemory`1[System.Nullable`1[int]]:ToString():System.String:this (FullOpts) -5 (-1.20 % of base) : System.Private.CoreLib.dasm - System.ReadOnlyMemory`1[System.Numerics.Vector`1[float]]:ToString():System.String:this (FullOpts) 752 total methods with Code Size differences (548 improved, 204 regressed), 230679 unchanged. -------------------------------------------------------------------------------- ```

Artifacts:

xtqqczze commented 1 month ago

https://github.com/xtqqczze/dotnet-runtime/commit/152074163ad1f19ec93ad3de4bbd5350d271901e

MihuBot commented 1 month ago

Top method regressions

59 (2.98 % of base) - System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this ```diff ; Assembly listing for method System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 47 single block inlinees; 45 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T00] ( 12, 7 ) ref -> rbx this class-hnd single-def ;* V01 arg1 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def ; V02 arg2 [V02,T01] ( 5, 4 ) ref -> r15 class-hnd single-def ; V03 arg3 [V03,T06] ( 4, 3 ) int -> r14 single-def ; V04 arg4 [V04,T07] ( 3, 2.50) ubyte -> r13 single-def ; V05 loc0 [V05,T25] ( 4, 2 ) int -> r13 ;* V06 loc1 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def ;* V07 loc2 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def ;* V08 loc3 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def ; V09 loc4 [V09 ] ( 1, 1 ) ref -> [rbp-0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd -; V10 loc5 [V10 ] ( 87, 43.50) struct (40) [rbp-0x58] do-not-enreg[XSF] must-init addr-exposed ld-addr-op +; V10 loc5 [V10 ] ( 90, 45 ) struct (40) [rbp-0x58] do-not-enreg[XSF] must-init addr-exposed ld-addr-op ; V11 OutArgs [V11 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V12 tmp1 [V12,T10] ( 4, 4 ) ref -> r12 class-hnd exact single-def "dup spill" ; V13 tmp2 [V13,T26] ( 2, 2 ) ref -> r13 class-hnd exact single-def "impAppendStmt" ;* V14 tmp3 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" ;* V15 tmp4 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Strict ordering of exceptions for Array store" ;* V16 tmp5 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Strict ordering of exceptions for Array store" ;* V17 tmp6 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "impAppendStmt" ; V18 tmp7 [V18,T23] ( 3, 3 ) ref -> rdi class-hnd single-def "dup spill" ;* V19 tmp8 [V19 ] ( 0, 0 ) ref -> zero-ref single-def ;* V20 tmp9 [V20 ] ( 0, 0 ) ref -> zero-ref single-def ;* V21 tmp10 [V21 ] ( 0, 0 ) ref -> zero-ref single-def -; V22 tmp11 [V22,T47] ( 3, 1.50) ref -> rbx +; V22 tmp11 [V22,T50] ( 3, 1.50) ref -> rbx ; V23 tmp12 [V23,T02] ( 5, 5 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" ;* V24 tmp13 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" ; V25 tmp14 [V25,T03] ( 5, 5 ) ref -> rax class-hnd single-def "dup spill" ;* V26 tmp15 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" ;* V27 tmp16 [V27 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" ;* V28 tmp17 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V29 tmp18 [V29 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V30 tmp19 [V30,T14] ( 4, 4 ) int -> rdi "Inlining Arg" ;* V31 tmp20 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V32 tmp21 [V32,T27] ( 2, 2 ) byref -> rax single-def "Inlining Arg" -; V33 tmp22 [V33,T41] ( 2, 2 ) int -> rsi "Inlining Arg" -;* V34 tmp23 [V34,T58] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +; V32 tmp21 [V32,T27] ( 2, 2 ) byref -> rsi single-def "Inlining Arg" +; V33 tmp22 [V33,T41] ( 2, 2 ) int -> rax "Inlining Arg" +;* V34 tmp23 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V35 tmp24 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V36 tmp25 [V36 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V37 tmp26 [V37 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V38 tmp27 [V38 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V39 tmp28 [V39,T15] ( 4, 4 ) int -> rdi "Inlining Arg" ;* V40 tmp29 [V40 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V41 tmp30 [V41,T28] ( 2, 2 ) byref -> rax single-def "Inlining Arg" -; V42 tmp31 [V42,T42] ( 2, 2 ) int -> rsi "Inlining Arg" -;* V43 tmp32 [V43,T59] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +; V41 tmp30 [V41,T28] ( 2, 2 ) byref -> rsi single-def "Inlining Arg" +; V42 tmp31 [V42,T42] ( 2, 2 ) int -> rax "Inlining Arg" +;* V43 tmp32 [V43 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V44 tmp33 [V44 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V45 tmp34 [V45 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V46 tmp35 [V46 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V47 tmp36 [V47 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" -; V48 tmp37 [V48,T16] ( 3, 3 ) int -> rdx "Inlining Arg" +; V48 tmp37 [V48,T16] ( 4, 4 ) int -> rdi "Inlining Arg" ;* V49 tmp38 [V49 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V50 tmp39 [V50,T29] ( 2, 2 ) byref -> rdi single-def "Inlining Arg" -;* V51 tmp40 [V51,T55] ( 0, 0 ) int -> zero-ref "Inlining Arg" -;* V52 tmp41 [V52,T60] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +; V50 tmp39 [V50,T29] ( 2, 2 ) byref -> rax single-def "Inlining Arg" +; V51 tmp40 [V51,T43] ( 2, 2 ) int -> rsi "Inlining Arg" +;* V52 tmp41 [V52 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V53 tmp42 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V54 tmp43 [V54 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V55 tmp44 [V55 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V56 tmp45 [V56 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V57 tmp46 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" ; V58 tmp47 [V58,T30] ( 2, 2 ) ref -> [rbp-0x60] class-hnd exact spill-single-def "Inlining Arg" ; V59 tmp48 [V59,T31] ( 2, 2 ) ref -> [rbp-0x68] class-hnd exact spill-single-def "Inlining Arg" ; V60 tmp49 [V60,T11] ( 4, 4 ) ref -> [rbp-0x70] class-hnd exact spill-single-def "NewObj constructor temp" ;* V61 tmp50 [V61 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" ;* V62 tmp51 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" ; V63 tmp52 [V63,T04] ( 5, 5 ) ref -> rax class-hnd single-def "dup spill" ;* V64 tmp53 [V64 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" ;* V65 tmp54 [V65 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" ;* V66 tmp55 [V66 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V67 tmp56 [V67 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V68 tmp57 [V68,T17] ( 4, 4 ) int -> rdi "Inlining Arg" ;* V69 tmp58 [V69 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V70 tmp59 [V70,T32] ( 2, 2 ) byref -> rax single-def "Inlining Arg" -; V71 tmp60 [V71,T43] ( 2, 2 ) int -> rsi "Inlining Arg" -;* V72 tmp61 [V72,T61] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +; V70 tmp59 [V70,T32] ( 2, 2 ) byref -> rsi single-def "Inlining Arg" +; V71 tmp60 [V71,T44] ( 2, 2 ) int -> rax "Inlining Arg" +;* V72 tmp61 [V72 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V73 tmp62 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V74 tmp63 [V74 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V75 tmp64 [V75 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V76 tmp65 [V76 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V77 tmp66 [V77,T18] ( 4, 4 ) int -> rdi "Inlining Arg" ;* V78 tmp67 [V78 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V79 tmp68 [V79,T33] ( 2, 2 ) byref -> rax single-def "Inlining Arg" -; V80 tmp69 [V80,T44] ( 2, 2 ) int -> rsi "Inlining Arg" -;* V81 tmp70 [V81,T62] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +; V79 tmp68 [V79,T33] ( 2, 2 ) byref -> rsi single-def "Inlining Arg" +; V80 tmp69 [V80,T45] ( 2, 2 ) int -> rax "Inlining Arg" +;* V81 tmp70 [V81 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V82 tmp71 [V82 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V83 tmp72 [V83 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V84 tmp73 [V84 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V85 tmp74 [V85 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" -; V86 tmp75 [V86,T19] ( 3, 3 ) int -> rdx "Inlining Arg" +; V86 tmp75 [V86,T19] ( 4, 4 ) int -> rdi "Inlining Arg" ;* V87 tmp76 [V87 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V88 tmp77 [V88,T34] ( 2, 2 ) byref -> rdi single-def "Inlining Arg" -;* V89 tmp78 [V89,T56] ( 0, 0 ) int -> zero-ref "Inlining Arg" -;* V90 tmp79 [V90,T63] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +; V88 tmp77 [V88,T34] ( 2, 2 ) byref -> rax single-def "Inlining Arg" +; V89 tmp78 [V89,T46] ( 2, 2 ) int -> rsi "Inlining Arg" +;* V90 tmp79 [V90 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V91 tmp80 [V91 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V92 tmp81 [V92 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V93 tmp82 [V93 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V94 tmp83 [V94 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V95 tmp84 [V95 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" ; V96 tmp85 [V96,T35] ( 2, 2 ) ref -> [rbp-0x78] class-hnd exact spill-single-def "Inlining Arg" ; V97 tmp86 [V97,T36] ( 2, 2 ) ref -> [rbp-0x80] class-hnd exact spill-single-def "Inlining Arg" ; V98 tmp87 [V98,T12] ( 4, 4 ) ref -> [rbp-0x88] class-hnd exact spill-single-def "NewObj constructor temp" ;* V99 tmp88 [V99 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" ;* V100 tmp89 [V100 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" ; V101 tmp90 [V101,T05] ( 5, 5 ) ref -> rax class-hnd single-def "dup spill" ;* V102 tmp91 [V102 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" ;* V103 tmp92 [V103 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" ;* V104 tmp93 [V104 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V105 tmp94 [V105 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V106 tmp95 [V106,T20] ( 4, 4 ) int -> rdi "Inlining Arg" ;* V107 tmp96 [V107 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V108 tmp97 [V108,T37] ( 2, 2 ) byref -> r12 single-def "Inlining Arg" -; V109 tmp98 [V109,T45] ( 2, 2 ) int -> rsi "Inlining Arg" -;* V110 tmp99 [V110,T64] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +; V108 tmp97 [V108,T37] ( 2, 2 ) byref -> rsi single-def "Inlining Arg" +; V109 tmp98 [V109,T47] ( 2, 2 ) int -> rax "Inlining Arg" +;* V110 tmp99 [V110 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V111 tmp100 [V111 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V112 tmp101 [V112 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V113 tmp102 [V113 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V114 tmp103 [V114 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V115 tmp104 [V115,T21] ( 4, 4 ) int -> rdi "Inlining Arg" ;* V116 tmp105 [V116 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V117 tmp106 [V117,T38] ( 2, 2 ) byref -> r13 single-def "Inlining Arg" -; V118 tmp107 [V118,T46] ( 2, 2 ) int -> rsi "Inlining Arg" -;* V119 tmp108 [V119,T65] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +; V117 tmp106 [V117,T38] ( 2, 2 ) byref -> rsi single-def "Inlining Arg" +; V118 tmp107 [V118,T48] ( 2, 2 ) int -> rax "Inlining Arg" +;* V119 tmp108 [V119 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V120 tmp109 [V120 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V121 tmp110 [V121 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V122 tmp111 [V122 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V123 tmp112 [V123 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" -; V124 tmp113 [V124,T22] ( 3, 3 ) int -> rdx "Inlining Arg" +; V124 tmp113 [V124,T22] ( 4, 4 ) int -> rdi "Inlining Arg" ;* V125 tmp114 [V125 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V126 tmp115 [V126,T39] ( 2, 2 ) byref -> rdi single-def "Inlining Arg" -;* V127 tmp116 [V127,T57] ( 0, 0 ) int -> zero-ref "Inlining Arg" -;* V128 tmp117 [V128,T66] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +; V126 tmp115 [V126,T39] ( 2, 2 ) byref -> rax single-def "Inlining Arg" +; V127 tmp116 [V127,T49] ( 2, 2 ) int -> rsi "Inlining Arg" +;* V128 tmp117 [V128 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V129 tmp118 [V129 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V130 tmp119 [V130 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V131 tmp120 [V131 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V132 tmp121 [V132 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ; V133 tmp122 [V133,T13] ( 4, 4 ) ref -> [rbp-0x90] class-hnd exact spill-single-def "NewObj constructor temp" ;* V134 tmp123 [V134 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" ; V135 tmp124 [V135,T40] ( 2, 2 ) ref -> r15 class-hnd single-def "Inlining Arg" -; V136 tmp125 [V136,T48] ( 3, 1.50) byref -> rdi "field V28._reference (fldOffset=0x0)" P-INDEP -; V137 tmp126 [V137,T52] ( 3, 1.50) int -> rsi "field V28._length (fldOffset=0x8)" P-INDEP +; V136 tmp125 [V136,T51] ( 3, 1.50) byref -> rdi "field V28._reference (fldOffset=0x0)" P-INDEP +; V137 tmp126 [V137,T55] ( 3, 1.50) int -> rsi "field V28._length (fldOffset=0x8)" P-INDEP ;* V138 tmp127 [V138 ] ( 0, 0 ) byref -> zero-ref "field V29._reference (fldOffset=0x0)" P-INDEP ;* V139 tmp128 [V139 ] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x8)" P-INDEP ;* V140 tmp129 [V140 ] ( 0, 0 ) byref -> zero-ref single-def "field V31._reference (fldOffset=0x0)" P-INDEP ;* V141 tmp130 [V141 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP ;* V142 tmp131 [V142 ] ( 0, 0 ) byref -> zero-ref single-def "field V35._reference (fldOffset=0x0)" P-INDEP ;* V143 tmp132 [V143 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP ;* V144 tmp133 [V144 ] ( 0, 0 ) byref -> zero-ref "field V38._reference (fldOffset=0x0)" P-INDEP ;* V145 tmp134 [V145 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP ;* V146 tmp135 [V146 ] ( 0, 0 ) byref -> zero-ref single-def "field V40._reference (fldOffset=0x0)" P-INDEP ;* V147 tmp136 [V147 ] ( 0, 0 ) int -> zero-ref "field V40._length (fldOffset=0x8)" P-INDEP ;* V148 tmp137 [V148 ] ( 0, 0 ) byref -> zero-ref single-def "field V44._reference (fldOffset=0x0)" P-INDEP ;* V149 tmp138 [V149 ] ( 0, 0 ) int -> zero-ref "field V44._length (fldOffset=0x8)" P-INDEP ;* V150 tmp139 [V150 ] ( 0, 0 ) byref -> zero-ref "field V47._reference (fldOffset=0x0)" P-INDEP ;* V151 tmp140 [V151 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP ;* V152 tmp141 [V152 ] ( 0, 0 ) byref -> zero-ref single-def "field V49._reference (fldOffset=0x0)" P-INDEP ;* V153 tmp142 [V153 ] ( 0, 0 ) int -> zero-ref "field V49._length (fldOffset=0x8)" P-INDEP ;* V154 tmp143 [V154 ] ( 0, 0 ) byref -> zero-ref single-def "field V53._reference (fldOffset=0x0)" P-INDEP ;* V155 tmp144 [V155 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP -; V156 tmp145 [V156,T49] ( 3, 1.50) byref -> rdi "field V66._reference (fldOffset=0x0)" P-INDEP -; V157 tmp146 [V157,T53] ( 3, 1.50) int -> rsi "field V66._length (fldOffset=0x8)" P-INDEP +; V156 tmp145 [V156,T52] ( 3, 1.50) byref -> rdi "field V66._reference (fldOffset=0x0)" P-INDEP +; V157 tmp146 [V157,T56] ( 3, 1.50) int -> rsi "field V66._length (fldOffset=0x8)" P-INDEP ;* V158 tmp147 [V158 ] ( 0, 0 ) byref -> zero-ref "field V67._reference (fldOffset=0x0)" P-INDEP ;* V159 tmp148 [V159 ] ( 0, 0 ) int -> zero-ref "field V67._length (fldOffset=0x8)" P-INDEP ;* V160 tmp149 [V160 ] ( 0, 0 ) byref -> zero-ref single-def "field V69._reference (fldOffset=0x0)" P-INDEP ;* V161 tmp150 [V161 ] ( 0, 0 ) int -> zero-ref "field V69._length (fldOffset=0x8)" P-INDEP ;* V162 tmp151 [V162 ] ( 0, 0 ) byref -> zero-ref single-def "field V73._reference (fldOffset=0x0)" P-INDEP ;* V163 tmp152 [V163 ] ( 0, 0 ) int -> zero-ref "field V73._length (fldOffset=0x8)" P-INDEP ;* V164 tmp153 [V164 ] ( 0, 0 ) byref -> zero-ref "field V76._reference (fldOffset=0x0)" P-INDEP ;* V165 tmp154 [V165 ] ( 0, 0 ) int -> zero-ref "field V76._length (fldOffset=0x8)" P-INDEP ;* V166 tmp155 [V166 ] ( 0, 0 ) byref -> zero-ref single-def "field V78._reference (fldOffset=0x0)" P-INDEP ;* V167 tmp156 [V167 ] ( 0, 0 ) int -> zero-ref "field V78._length (fldOffset=0x8)" P-INDEP ;* V168 tmp157 [V168 ] ( 0, 0 ) byref -> zero-ref single-def "field V82._reference (fldOffset=0x0)" P-INDEP ;* V169 tmp158 [V169 ] ( 0, 0 ) int -> zero-ref "field V82._length (fldOffset=0x8)" P-INDEP ;* V170 tmp159 [V170 ] ( 0, 0 ) byref -> zero-ref "field V85._reference (fldOffset=0x0)" P-INDEP ;* V171 tmp160 [V171 ] ( 0, 0 ) int -> zero-ref "field V85._length (fldOffset=0x8)" P-INDEP ;* V172 tmp161 [V172 ] ( 0, 0 ) byref -> zero-ref single-def "field V87._reference (fldOffset=0x0)" P-INDEP ;* V173 tmp162 [V173 ] ( 0, 0 ) int -> zero-ref "field V87._length (fldOffset=0x8)" P-INDEP ;* V174 tmp163 [V174 ] ( 0, 0 ) byref -> zero-ref single-def "field V91._reference (fldOffset=0x0)" P-INDEP ;* V175 tmp164 [V175 ] ( 0, 0 ) int -> zero-ref "field V91._length (fldOffset=0x8)" P-INDEP -; V176 tmp165 [V176,T50] ( 3, 1.50) byref -> rdi "field V104._reference (fldOffset=0x0)" P-INDEP -; V177 tmp166 [V177,T54] ( 3, 1.50) int -> rsi "field V104._length (fldOffset=0x8)" P-INDEP +; V176 tmp165 [V176,T53] ( 3, 1.50) byref -> rdi "field V104._reference (fldOffset=0x0)" P-INDEP +; V177 tmp166 [V177,T57] ( 3, 1.50) int -> rsi "field V104._length (fldOffset=0x8)" P-INDEP ;* V178 tmp167 [V178 ] ( 0, 0 ) byref -> zero-ref "field V105._reference (fldOffset=0x0)" P-INDEP ;* V179 tmp168 [V179 ] ( 0, 0 ) int -> zero-ref "field V105._length (fldOffset=0x8)" P-INDEP ;* V180 tmp169 [V180 ] ( 0, 0 ) byref -> zero-ref single-def "field V107._reference (fldOffset=0x0)" P-INDEP ;* V181 tmp170 [V181 ] ( 0, 0 ) int -> zero-ref "field V107._length (fldOffset=0x8)" P-INDEP ;* V182 tmp171 [V182 ] ( 0, 0 ) byref -> zero-ref single-def "field V111._reference (fldOffset=0x0)" P-INDEP ;* V183 tmp172 [V183 ] ( 0, 0 ) int -> zero-ref "field V111._length (fldOffset=0x8)" P-INDEP ;* V184 tmp173 [V184 ] ( 0, 0 ) byref -> zero-ref "field V114._reference (fldOffset=0x0)" P-INDEP ;* V185 tmp174 [V185 ] ( 0, 0 ) int -> zero-ref "field V114._length (fldOffset=0x8)" P-INDEP ;* V186 tmp175 [V186 ] ( 0, 0 ) byref -> zero-ref single-def "field V116._reference (fldOffset=0x0)" P-INDEP ;* V187 tmp176 [V187 ] ( 0, 0 ) int -> zero-ref "field V116._length (fldOffset=0x8)" P-INDEP ;* V188 tmp177 [V188 ] ( 0, 0 ) byref -> zero-ref single-def "field V120._reference (fldOffset=0x0)" P-INDEP ;* V189 tmp178 [V189 ] ( 0, 0 ) int -> zero-ref "field V120._length (fldOffset=0x8)" P-INDEP ;* V190 tmp179 [V190 ] ( 0, 0 ) byref -> zero-ref "field V123._reference (fldOffset=0x0)" P-INDEP ;* V191 tmp180 [V191 ] ( 0, 0 ) int -> zero-ref "field V123._length (fldOffset=0x8)" P-INDEP ;* V192 tmp181 [V192 ] ( 0, 0 ) byref -> zero-ref single-def "field V125._reference (fldOffset=0x0)" P-INDEP ;* V193 tmp182 [V193 ] ( 0, 0 ) int -> zero-ref "field V125._length (fldOffset=0x8)" P-INDEP ;* V194 tmp183 [V194 ] ( 0, 0 ) byref -> zero-ref single-def "field V129._reference (fldOffset=0x0)" P-INDEP ;* V195 tmp184 [V195 ] ( 0, 0 ) int -> zero-ref "field V129._length (fldOffset=0x8)" P-INDEP ; V196 cse0 [V196,T24] ( 4, 2 ) ref -> r12 "CSE #08: conservative" -; V197 cse1 [V197,T51] ( 3, 1.50) ref -> [rbp-0x98] spill-single-def "CSE #16: conservative" +; V197 cse1 [V197,T54] ( 3, 1.50) ref -> [rbp-0x98] spill-single-def "CSE #16: conservative" ; V198 cse2 [V198,T08] ( 8, 4 ) ref -> [rbp-0xA0] multi-def "CSE #06: aggressive" ; V199 cse3 [V199,T09] ( 8, 4 ) ref -> [rbp-0xA8] multi-def "CSE #02: moderate" ; ; Lcl frame size = 168 G_M15201_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 168 lea rbp, [rsp+0xD0] xor eax, eax mov qword ptr [rbp-0x58], rax vxorps xmm8, xmm8, xmm8 vmovdqu ymmword ptr [rbp-0x50], ymm8 mov qword ptr [rbp-0x30], rax mov rbx, rdi mov r15, rdx mov r14d, ecx mov r13d, r8d ;; size=57 bbWeight=1 PerfScore 12.33 G_M15201_IG02: mov rdi, gword ptr [r15+0x08] lea rsi, [rbp-0x30] mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexNode:SupportsCompilation(byref):ubyte:this cmp dword ptr [rdi], edi call [rax]System.Text.RegularExpressions.RegexNode:SupportsCompilation(byref):ubyte:this test eax, eax - je G_M15201_IG37 + je G_M15201_IG40 ;; size=30 bbWeight=1 PerfScore 10.00 G_M15201_IG03: lea rdi, bword ptr [rbx+0x10] mov rsi, r15 call CORINFO_HELP_ASSIGN_REF mov dword ptr [rbx+0x30], r14d mov byte ptr [rbx+0x34], r13b mov rdi, 0xD1FFAB1E ; static handle mov esi, 1 mov r13d, esi lock xadd dword ptr [rdi], r13d inc r13d xor rdi, rdi mov gword ptr [rbp-0x58], rdi mov rdi, 0xD1FFAB1E ; const ptr mov r12, gword ptr [rdi] mov rdi, r12 mov esi, 256 mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this call [rax]System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this mov gword ptr [rbp-0x50], rax test rax, rax je SHORT G_M15201_IG04 lea rdi, bword ptr [rax+0x10] mov esi, dword ptr [rax+0x08] jmp SHORT G_M15201_IG05 ;; size=103 bbWeight=0.50 PerfScore 17.88 G_M15201_IG04: xor rdi, rdi xor esi, esi ;; size=4 bbWeight=0.50 PerfScore 0.25 G_M15201_IG05: mov bword ptr [rbp-0x40], rdi mov dword ptr [rbp-0x38], esi xor edi, edi mov dword ptr [rbp-0x48], edi mov byte ptr [rbp-0x44], 0 mov edi, dword ptr [rbp-0x48] cmp edi, dword ptr [rbp-0x38] - ja G_M15201_IG39 + ja G_M15201_IG42 mov rsi, bword ptr [rbp-0x40] mov eax, edi - lea rax, bword ptr [rsi+2*rax] - mov esi, dword ptr [rbp-0x38] - sub esi, edi - cmp esi, 5 - jae SHORT G_M15201_IG06 - lea rdi, [rbp-0x58] - mov rcx, 0xD1FFAB1E ; 'Regex' - mov gword ptr [rbp-0xA8], rcx - mov rsi, rcx - mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this - call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this - jmp SHORT G_M15201_IG07 - ;; size=86 bbWeight=0.50 PerfScore 9.88 -G_M15201_IG06: - mov rcx, 0xD1FFAB1E ; 'Regex' - mov gword ptr [rbp-0xA8], rcx - lea rdi, bword ptr [rcx+0x0C] - mov rdx, qword ptr [rdi] - mov rsi, qword ptr [rdi+0x02] - mov qword ptr [rax], rdx - mov qword ptr [rax+0x02], rsi + lea rsi, bword ptr [rsi+2*rax] + mov eax, dword ptr [rbp-0x38] + sub eax, edi + cmp eax, 5 + jl SHORT G_M15201_IG06 + mov rax, 0xD1FFAB1E ; 'Regex' + lea rdi, bword ptr [rax+0x0C] + mov rcx, qword ptr [rdi] + mov rdx, qword ptr [rdi+0x02] + mov qword ptr [rsi], rcx + mov qword ptr [rsi+0x02], rdx mov edi, dword ptr [rbp-0x48] add edi, 5 mov dword ptr [rbp-0x48], edi - ;; size=44 bbWeight=0.50 PerfScore 5.00 + mov gword ptr [rbp-0xA8], rax + jmp SHORT G_M15201_IG07 + ;; size=94 bbWeight=0.50 PerfScore 12.25 +G_M15201_IG06: + lea rdi, [rbp-0x58] + mov rax, 0xD1FFAB1E ; 'Regex' + mov gword ptr [rbp-0xA8], rax + mov rsi, rax + mov rcx, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this + call [rcx]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this + ;; size=36 bbWeight=0.50 PerfScore 2.62 G_M15201_IG07: lea rdi, [rbp-0x58] mov esi, r13d - mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[uint](uint):this - call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[uint](uint):this + mov rcx, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[uint](uint):this + call [rcx]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[uint](uint):this mov edi, dword ptr [rbp-0x48] cmp edi, dword ptr [rbp-0x38] - ja G_M15201_IG39 + ja G_M15201_IG42 mov rsi, bword ptr [rbp-0x40] mov eax, edi - lea rax, bword ptr [rsi+2*rax] - mov esi, dword ptr [rbp-0x38] - sub esi, edi - cmp esi, 36 - jae SHORT G_M15201_IG08 - lea rdi, [rbp-0x58] - mov rsi, 0xD1FFAB1E ; '_TryFindNextPossibleStartingPosition' - mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this - call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this - jmp SHORT G_M15201_IG09 - ;; size=79 bbWeight=0.50 PerfScore 9.12 -G_M15201_IG08: + lea rsi, bword ptr [rsi+2*rax] + mov eax, dword ptr [rbp-0x38] + sub eax, edi + cmp eax, 36 + jl SHORT G_M15201_IG08 mov rdi, 0xD1FFAB1E vmovdqu32 zmm0, zmmword ptr [rdi] vmovdqu xmm1, xmmword ptr [rdi+0x38] - vmovdqu32 zmmword ptr [rax], zmm0 - vmovdqu xmmword ptr [rax+0x38], xmm1 + vmovdqu32 zmmword ptr [rsi], zmm0 + vmovdqu xmmword ptr [rsi+0x38], xmm1 mov edi, dword ptr [rbp-0x48] add edi, 36 mov dword ptr [rbp-0x48], edi - ;; size=41 bbWeight=0.50 PerfScore 7.25 + jmp SHORT G_M15201_IG09 + ;; size=94 bbWeight=0.50 PerfScore 14.38 +G_M15201_IG08: + lea rdi, [rbp-0x58] + mov rsi, 0xD1FFAB1E ; '_TryFindNextPossibleStartingPosition' + mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this + call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this + ;; size=26 bbWeight=0.50 PerfScore 2.00 G_M15201_IG09: cmp byte ptr [rbp-0x44], 0 - je SHORT G_M15201_IG10 + jne SHORT G_M15201_IG10 + mov edi, dword ptr [rbp-0x48] + cmp edi, dword ptr [rbp-0x38] + ja G_M15201_IG42 + mov rsi, bword ptr [rbp-0x40] + mov eax, edi + lea rax, bword ptr [rsi+2*rax] + mov esi, dword ptr [rbp-0x38] + sub esi, edi + mov rcx, 0xD1FFAB1E ; '' + xor edi, edi + cmp edi, esi + jle SHORT G_M15201_IG11 + ;; size=49 bbWeight=0.50 PerfScore 5.88 +G_M15201_IG10: lea rdi, [rbp-0x58] - mov rax, 0xD1FFAB1E ; '' - mov rsi, rax + mov rcx, 0xD1FFAB1E ; '' + mov rsi, rcx mov gword ptr [rbp-0xA0], rsi mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this - jmp SHORT G_M15201_IG11 - ;; size=44 bbWeight=0.50 PerfScore 5.12 -G_M15201_IG10: - mov edx, dword ptr [rbp-0x48] - cmp edx, dword ptr [rbp-0x38] - ja G_M15201_IG39 - mov rsi, bword ptr [rbp-0x40] - lea rdi, bword ptr [rsi+2*rdx] - mov rsi, 0xD1FFAB1E ; '' + jmp SHORT G_M15201_IG12 + ;; size=38 bbWeight=0.50 PerfScore 3.62 +G_M15201_IG11: + mov rsi, rcx xor edx, edx mov gword ptr [rbp-0xA0], rsi add rsi, 12 + mov rdi, rax mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong) call [rax]System.SpanHelpers:Memmove(byref,byref,ulong) mov edi, dword ptr [rbp-0x48] mov dword ptr [rbp-0x48], edi - ;; size=61 bbWeight=0.50 PerfScore 6.25 -G_M15201_IG11: + ;; size=37 bbWeight=0.50 PerfScore 3.62 +G_M15201_IG12: lea rdi, [rbp-0x58] mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this mov gword ptr [rbp-0x60], rax mov rdi, 0xD1FFAB1E ; const ptr mov rcx, gword ptr [rdi] mov gword ptr [rbp-0x98], rcx mov gword ptr [rbp-0x68], rcx mov rdi, 0xD1FFAB1E ; System.Reflection.Emit.DynamicMethod call CORINFO_HELP_NEWSFAST mov gword ptr [rbp-0x70], rax mov rdi, 0xD1FFAB1E ; 'System.Text.RegularExpressions.CompiledRegexRunner' mov gword ptr [rsp], rdi xor rdi, rdi mov gword ptr [rsp+0x08], rdi ;; size=84 bbWeight=0.50 PerfScore 6.88 -G_M15201_IG12: +G_M15201_IG13: mov dword ptr [rsp+0x10], edi ;; size=4 bbWeight=0.50 PerfScore 0.50 -G_M15201_IG13: +G_M15201_IG14: mov dword ptr [rsp+0x18], edi mov rdi, rax mov rsi, gword ptr [rbp-0x60] mov r9, gword ptr [rbp-0x68] mov edx, 22 mov ecx, 1 mov r8, 0xD1FFAB1E ; 'System.Boolean' mov r10, 0xD1FFAB1E ; code for System.Reflection.Emit.DynamicMethod:Init(System.String,int,int,System.Type,System.Type[],System.Type,System.Reflection.Module,ubyte,ubyte):this call [r10]System.Reflection.Emit.DynamicMethod:Init(System.String,int,int,System.Type,System.Type[],System.Type,System.Reflection.Module,ubyte,ubyte):this mov rdi, gword ptr [rbp-0x70] mov esi, 64 mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.DynamicMethod:GetILGenerator(int):System.Reflection.Emit.ILGenerator:this call [rax]System.Reflection.Emit.DynamicMethod:GetILGenerator(int):System.Reflection.Emit.ILGenerator:this lea rdi, bword ptr [rbx+0x08] mov rsi, rax call CORINFO_HELP_ASSIGN_REF mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCompiler:EmitTryFindNextPossibleStartingPosition():this call [rax]System.Text.RegularExpressions.RegexCompiler:EmitTryFindNextPossibleStartingPosition():this xor rdi, rdi mov gword ptr [rbp-0x58], rdi mov rdi, r12 mov esi, 256 mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this call [rax]System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this mov gword ptr [rbp-0x50], rax test rax, rax - je SHORT G_M15201_IG14 + je SHORT G_M15201_IG15 lea rdi, bword ptr [rax+0x10] mov esi, dword ptr [rax+0x08] - jmp SHORT G_M15201_IG15 + jmp SHORT G_M15201_IG16 ;; size=140 bbWeight=0.50 PerfScore 14.38 -G_M15201_IG14: +G_M15201_IG15: xor rdi, rdi xor esi, esi ;; size=4 bbWeight=0.50 PerfScore 0.25 -G_M15201_IG15: +G_M15201_IG16: mov bword ptr [rbp-0x40], rdi mov dword ptr [rbp-0x38], esi xor edi, edi mov dword ptr [rbp-0x48], edi mov byte ptr [rbp-0x44], 0 mov edi, dword ptr [rbp-0x48] cmp edi, dword ptr [rbp-0x38] - ja G_M15201_IG39 + ja G_M15201_IG42 mov rsi, bword ptr [rbp-0x40] mov eax, edi - lea rax, bword ptr [rsi+2*rax] - mov esi, dword ptr [rbp-0x38] - sub esi, edi - cmp esi, 5 - jae SHORT G_M15201_IG16 - lea rdi, [rbp-0x58] - mov rsi, gword ptr [rbp-0xA8] - mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this - call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this - jmp SHORT G_M15201_IG17 - ;; size=73 bbWeight=0.50 PerfScore 9.62 -G_M15201_IG16: - mov rcx, gword ptr [rbp-0xA8] - lea rdi, bword ptr [rcx+0x0C] - mov rdx, qword ptr [rdi] - mov rsi, qword ptr [rdi+0x02] - mov qword ptr [rax], rdx - mov qword ptr [rax+0x02], rsi + lea rsi, bword ptr [rsi+2*rax] + mov eax, dword ptr [rbp-0x38] + sub eax, edi + cmp eax, 5 + jl SHORT G_M15201_IG17 + mov rax, gword ptr [rbp-0xA8] + lea rdi, bword ptr [rax+0x0C] + mov rcx, qword ptr [rdi] + mov rdx, qword ptr [rdi+0x02] + mov qword ptr [rsi], rcx + mov qword ptr [rsi+0x02], rdx mov edi, dword ptr [rbp-0x48] add edi, 5 mov dword ptr [rbp-0x48], edi - ;; size=34 bbWeight=0.50 PerfScore 4.88 + mov gword ptr [rbp-0xA8], rax + jmp SHORT G_M15201_IG18 + ;; size=91 bbWeight=0.50 PerfScore 12.62 G_M15201_IG17: + mov rax, gword ptr [rbp-0xA8] + lea rdi, [rbp-0x58] + mov gword ptr [rbp-0xA8], rax + mov rsi, rax + mov rcx, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this + call [rcx]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this + ;; size=33 bbWeight=0.50 PerfScore 3.00 +G_M15201_IG18: lea rdi, [rbp-0x58] mov esi, r13d - mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[uint](uint):this - call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[uint](uint):this + mov rcx, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[uint](uint):this + call [rcx]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[uint](uint):this mov edi, dword ptr [rbp-0x48] cmp edi, dword ptr [rbp-0x38] - ja G_M15201_IG39 + ja G_M15201_IG42 mov rsi, bword ptr [rbp-0x40] mov eax, edi - lea rax, bword ptr [rsi+2*rax] - mov esi, dword ptr [rbp-0x38] - sub esi, edi - cmp esi, 26 - jae SHORT G_M15201_IG18 - lea rdi, [rbp-0x58] - mov rsi, 0xD1FFAB1E ; '_TryMatchAtCurrentPosition' - mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this - call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this - jmp SHORT G_M15201_IG19 - ;; size=79 bbWeight=0.50 PerfScore 9.12 -G_M15201_IG18: + lea rsi, bword ptr [rsi+2*rax] + mov eax, dword ptr [rbp-0x38] + sub eax, edi + cmp eax, 26 + jl SHORT G_M15201_IG19 mov rdi, 0xD1FFAB1E vmovdqu ymm0, ymmword ptr [rdi] vmovdqu ymm1, ymmword ptr [rdi+0x14] - vmovdqu ymmword ptr [rax], ymm0 - vmovdqu ymmword ptr [rax+0x14], ymm1 + vmovdqu ymmword ptr [rsi], ymm0 + vmovdqu ymmword ptr [rsi+0x14], ymm1 mov edi, dword ptr [rbp-0x48] add edi, 26 mov dword ptr [rbp-0x48], edi - ;; size=37 bbWeight=0.50 PerfScore 8.25 + jmp SHORT G_M15201_IG20 + ;; size=90 bbWeight=0.50 PerfScore 15.38 G_M15201_IG19: + lea rdi, [rbp-0x58] + mov rsi, 0xD1FFAB1E ; '_TryMatchAtCurrentPosition' + mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this + call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this + ;; size=26 bbWeight=0.50 PerfScore 2.00 +G_M15201_IG20: cmp byte ptr [rbp-0x44], 0 - je SHORT G_M15201_IG20 + jne SHORT G_M15201_IG21 + mov edi, dword ptr [rbp-0x48] + cmp edi, dword ptr [rbp-0x38] + ja G_M15201_IG42 + mov rsi, bword ptr [rbp-0x40] + mov eax, edi + lea rax, bword ptr [rsi+2*rax] + mov esi, dword ptr [rbp-0x38] + sub esi, edi + jns SHORT G_M15201_IG22 + ;; size=35 bbWeight=0.50 PerfScore 5.50 +G_M15201_IG21: lea rdi, [rbp-0x58] mov rsi, gword ptr [rbp-0xA0] mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this - jmp SHORT G_M15201_IG21 - ;; size=31 bbWeight=0.50 PerfScore 4.88 -G_M15201_IG20: - mov edx, dword ptr [rbp-0x48] - cmp edx, dword ptr [rbp-0x38] - ja G_M15201_IG39 - mov rsi, bword ptr [rbp-0x40] - lea rdi, bword ptr [rsi+2*rdx] + jmp SHORT G_M15201_IG23 + ;; size=25 bbWeight=0.50 PerfScore 3.38 +G_M15201_IG22: xor edx, edx mov rsi, gword ptr [rbp-0xA0] add rsi, 12 + mov rdi, rax mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong) call [rax]System.SpanHelpers:Memmove(byref,byref,ulong) mov edi, dword ptr [rbp-0x48] mov dword ptr [rbp-0x48], edi - ;; size=51 bbWeight=0.50 PerfScore 6.12 -G_M15201_IG21: + ;; size=34 bbWeight=0.50 PerfScore 3.50 +G_M15201_IG23: lea rdi, [rbp-0x58] mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this mov gword ptr [rbp-0x78], rax mov rcx, gword ptr [rbp-0x98] mov gword ptr [rbp-0x80], rcx mov rdi, 0xD1FFAB1E ; System.Reflection.Emit.DynamicMethod call CORINFO_HELP_NEWSFAST mov gword ptr [rbp-0x88], rax mov rdi, 0xD1FFAB1E ; 'System.Text.RegularExpressions.CompiledRegexRunner' mov gword ptr [rsp], rdi xor rdi, rdi mov gword ptr [rsp+0x08], rdi ;; size=74 bbWeight=0.50 PerfScore 5.75 -G_M15201_IG22: +G_M15201_IG24: mov dword ptr [rsp+0x10], edi ;; size=4 bbWeight=0.50 PerfScore 0.50 -G_M15201_IG23: +G_M15201_IG25: mov dword ptr [rsp+0x18], edi mov rdi, rax mov rsi, gword ptr [rbp-0x78] mov r9, gword ptr [rbp-0x80] mov edx, 22 mov ecx, 1 mov r8, 0xD1FFAB1E ; 'System.Boolean' mov r10, 0xD1FFAB1E ; code for System.Reflection.Emit.DynamicMethod:Init(System.String,int,int,System.Type,System.Type[],System.Type,System.Reflection.Module,ubyte,ubyte):this call [r10]System.Reflection.Emit.DynamicMethod:Init(System.String,int,int,System.Type,System.Type[],System.Type,System.Reflection.Module,ubyte,ubyte):this mov rdi, gword ptr [rbp-0x88] mov esi, 64 mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.DynamicMethod:GetILGenerator(int):System.Reflection.Emit.ILGenerator:this call [rax]System.Reflection.Emit.DynamicMethod:GetILGenerator(int):System.Reflection.Emit.ILGenerator:this lea rdi, bword ptr [rbx+0x08] mov rsi, rax call CORINFO_HELP_ASSIGN_REF mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCompiler:EmitTryMatchAtCurrentPosition():this call [rax]System.Text.RegularExpressions.RegexCompiler:EmitTryMatchAtCurrentPosition():this xor rdi, rdi mov gword ptr [rbp-0x58], rdi mov rdi, r12 mov esi, 256 mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this call [rax]System.Buffers.SharedArrayPool`1[ushort]:Rent(int):ushort[]:this mov gword ptr [rbp-0x50], rax test rax, rax - je SHORT G_M15201_IG24 + je SHORT G_M15201_IG26 lea rdi, bword ptr [rax+0x10] mov esi, dword ptr [rax+0x08] - jmp SHORT G_M15201_IG25 + jmp SHORT G_M15201_IG27 ;; size=143 bbWeight=0.50 PerfScore 14.38 -G_M15201_IG24: +G_M15201_IG26: xor rdi, rdi xor esi, esi ;; size=4 bbWeight=0.50 PerfScore 0.25 -G_M15201_IG25: +G_M15201_IG27: mov bword ptr [rbp-0x40], rdi mov dword ptr [rbp-0x38], esi xor edi, edi mov dword ptr [rbp-0x48], edi mov byte ptr [rbp-0x44], 0 mov edi, dword ptr [rbp-0x48] cmp edi, dword ptr [rbp-0x38] - ja G_M15201_IG39 + ja G_M15201_IG42 mov rsi, bword ptr [rbp-0x40] mov eax, edi - lea r12, bword ptr [rsi+2*rax] - mov esi, dword ptr [rbp-0x38] - sub esi, edi - cmp esi, 5 - jae SHORT G_M15201_IG26 + lea rsi, bword ptr [rsi+2*rax] + mov eax, dword ptr [rbp-0x38] + sub eax, edi + cmp eax, 5 + jl SHORT G_M15201_IG28 + mov r12, gword ptr [rbp-0xA8] + add r12, 12 + mov rax, qword ptr [r12] + mov rdi, qword ptr [r12+0x02] + mov qword ptr [rsi], rax + mov qword ptr [rsi+0x02], rdi + mov edi, dword ptr [rbp-0x48] + add edi, 5 + mov dword ptr [rbp-0x48], edi + jmp SHORT G_M15201_IG29 + ;; size=86 bbWeight=0.50 PerfScore 12.00 +G_M15201_IG28: lea rdi, [rbp-0x58] mov rsi, gword ptr [rbp-0xA8] mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this - jmp SHORT G_M15201_IG27 - ;; size=73 bbWeight=0.50 PerfScore 9.62 -G_M15201_IG26: - mov rsi, gword ptr [rbp-0xA8] - add rsi, 12 - mov rax, qword ptr [rsi] - mov rdi, qword ptr [rsi+0x02] - mov qword ptr [r12], rax - mov qword ptr [r12+0x02], rdi - mov edi, dword ptr [rbp-0x48] - add edi, 5 - mov dword ptr [rbp-0x48], edi - ;; size=36 bbWeight=0.50 PerfScore 4.75 -G_M15201_IG27: + ;; size=23 bbWeight=0.50 PerfScore 2.38 +G_M15201_IG29: lea rdi, [rbp-0x58] mov esi, r13d mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[uint](uint):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[uint](uint):this mov edi, dword ptr [rbp-0x48] cmp edi, dword ptr [rbp-0x38] - ja G_M15201_IG39 + ja G_M15201_IG42 mov rsi, bword ptr [rbp-0x40] mov eax, edi - lea r13, bword ptr [rsi+2*rax] - mov esi, dword ptr [rbp-0x38] - sub esi, edi - cmp esi, 5 - jae SHORT G_M15201_IG28 - lea rdi, [rbp-0x58] - mov rsi, 0xD1FFAB1E ; '_Scan' - mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this - call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this - jmp SHORT G_M15201_IG29 - ;; size=79 bbWeight=0.50 PerfScore 9.12 -G_M15201_IG28: + lea rsi, bword ptr [rsi+2*rax] + mov eax, dword ptr [rbp-0x38] + sub eax, edi + cmp eax, 5 + jl SHORT G_M15201_IG30 mov rdi, 0xD1FFAB1E mov rax, qword ptr [rdi] - mov rsi, qword ptr [rdi+0x02] - mov qword ptr [r13], rax - mov qword ptr [r13+0x02], rsi + mov rcx, qword ptr [rdi+0x02] + mov qword ptr [rsi], rax + mov qword ptr [rsi+0x02], rcx mov edi, dword ptr [rbp-0x48] add edi, 5 mov dword ptr [rbp-0x48], edi - ;; size=34 bbWeight=0.50 PerfScore 4.25 -G_M15201_IG29: + jmp SHORT G_M15201_IG31 + ;; size=86 bbWeight=0.50 PerfScore 11.38 +G_M15201_IG30: + lea rdi, [rbp-0x58] + mov rsi, 0xD1FFAB1E ; '_Scan' + mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this + call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this + ;; size=26 bbWeight=0.50 PerfScore 2.00 +G_M15201_IG31: cmp byte ptr [rbp-0x44], 0 - je SHORT G_M15201_IG30 + jne SHORT G_M15201_IG32 + mov edi, dword ptr [rbp-0x48] + cmp edi, dword ptr [rbp-0x38] + ja G_M15201_IG42 + mov rsi, bword ptr [rbp-0x40] + mov eax, edi + lea rax, bword ptr [rsi+2*rax] + mov esi, dword ptr [rbp-0x38] + sub esi, edi + jns SHORT G_M15201_IG33 + ;; size=35 bbWeight=0.50 PerfScore 5.50 +G_M15201_IG32: lea rdi, [rbp-0x58] mov rsi, gword ptr [rbp-0xA0] mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this - jmp SHORT G_M15201_IG31 - ;; size=31 bbWeight=0.50 PerfScore 4.88 -G_M15201_IG30: - mov edx, dword ptr [rbp-0x48] - cmp edx, dword ptr [rbp-0x38] - ja G_M15201_IG39 - mov rsi, bword ptr [rbp-0x40] - lea rdi, bword ptr [rsi+2*rdx] + jmp SHORT G_M15201_IG34 + ;; size=25 bbWeight=0.50 PerfScore 3.38 +G_M15201_IG33: xor edx, edx mov r13, gword ptr [rbp-0xA0] lea rsi, bword ptr [r13+0x0C] + mov rdi, rax mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong) call [rax]System.SpanHelpers:Memmove(byref,byref,ulong) mov edi, dword ptr [rbp-0x48] mov dword ptr [rbp-0x48], edi - ;; size=51 bbWeight=0.50 PerfScore 6.25 -G_M15201_IG31: + ;; size=34 bbWeight=0.50 PerfScore 3.62 +G_M15201_IG34: lea rdi, [rbp-0x58] mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this mov r13, rax mov rdi, 0xD1FFAB1E ; System.Type[] mov esi, 2 call CORINFO_HELP_NEWARR_1_OBJ mov r12, rax mov rdi, 0xD1FFAB1E ; 'System.Text.RegularExpressions.RegexRunner' mov gword ptr [r12+0x10], rdi mov rdi, 0xD1FFAB1E ; 'System.ReadOnlySpan`1[System.Char]' mov gword ptr [r12+0x18], rdi mov rdi, 0xD1FFAB1E ; System.Reflection.Emit.DynamicMethod call CORINFO_HELP_NEWSFAST mov gword ptr [rbp-0x90], rax mov rdi, 0xD1FFAB1E ; 'System.Text.RegularExpressions.CompiledRegexRunner' mov gword ptr [rsp], rdi xor rdi, rdi mov gword ptr [rsp+0x08], rdi ;; size=115 bbWeight=0.50 PerfScore 6.50 -G_M15201_IG32: +G_M15201_IG35: mov dword ptr [rsp+0x10], edi ;; size=4 bbWeight=0.50 PerfScore 0.50 -G_M15201_IG33: +G_M15201_IG36: mov dword ptr [rsp+0x18], edi mov rdi, rax mov rsi, r13 mov r9, r12 mov edx, 22 mov ecx, 1 xor r8, r8 mov r10, 0xD1FFAB1E ; code for System.Reflection.Emit.DynamicMethod:Init(System.String,int,int,System.Type,System.Type[],System.Type,System.Reflection.Module,ubyte,ubyte):this call [r10]System.Reflection.Emit.DynamicMethod:Init(System.String,int,int,System.Type,System.Type[],System.Type,System.Reflection.Module,ubyte,ubyte):this mov rdi, gword ptr [rbp-0x90] mov esi, 64 mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.DynamicMethod:GetILGenerator(int):System.Reflection.Emit.ILGenerator:this call [rax]System.Reflection.Emit.DynamicMethod:GetILGenerator(int):System.Reflection.Emit.ILGenerator:this lea rdi, bword ptr [rbx+0x08] mov rsi, rax call CORINFO_HELP_ASSIGN_REF mov rdi, rbx mov esi, r14d mov rdx, gword ptr [rbp-0x70] mov rcx, gword ptr [rbp-0x88] mov rax, 0xD1FFAB1E ; code for System.Text.RegularExpressions.RegexCompiler:EmitScan(int,System.Reflection.MethodInfo,System.Reflection.MethodInfo):this call [rax]System.Text.RegularExpressions.RegexCompiler:EmitScan(int,System.Reflection.MethodInfo,System.Reflection.MethodInfo):this mov rdi, gword ptr [rbx+0x18] test rdi, rdi - je SHORT G_M15201_IG34 + je SHORT G_M15201_IG37 mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:ToArray():System.__Canon[]:this call [rax]System.Collections.Generic.List`1[System.__Canon]:ToArray():System.__Canon[]:this mov rbx, rax - jmp SHORT G_M15201_IG35 + jmp SHORT G_M15201_IG38 ;; size=130 bbWeight=0.50 PerfScore 13.25 -G_M15201_IG34: +G_M15201_IG37: xor rbx, rbx ;; size=2 bbWeight=0.50 PerfScore 0.12 -G_M15201_IG35: +G_M15201_IG38: mov rdi, 0xD1FFAB1E ; System.Text.RegularExpressions.CompiledRegexRunnerFactory call CORINFO_HELP_NEWSFAST mov r14, rax mov r15, gword ptr [r15+0x18] lea rdi, bword ptr [r14+0x08] mov rsi, gword ptr [rbp-0x90] call CORINFO_HELP_ASSIGN_REF lea rdi, bword ptr [r14+0x10] mov rsi, rbx call CORINFO_HELP_ASSIGN_REF lea rdi, bword ptr [r14+0x18] mov rsi, r15 call CORINFO_HELP_ASSIGN_REF mov rax, r14 ;; size=65 bbWeight=0.50 PerfScore 4.88 -G_M15201_IG36: +G_M15201_IG39: add rsp, 168 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=18 bbWeight=0.50 PerfScore 2.12 -G_M15201_IG37: +G_M15201_IG40: xor rax, rax ;; size=2 bbWeight=0.50 PerfScore 0.12 -G_M15201_IG38: +G_M15201_IG41: add rsp, 168 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=18 bbWeight=0.50 PerfScore 2.12 -G_M15201_IG39: +G_M15201_IG42: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException() call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -; Total bytes of code 1982, prolog size 45, PerfScore 237.33, instruction count 462, allocated bytes for code 1982 (MethodHash=819ac49e) for method System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (FullOpts) +; Total bytes of code 2041, prolog size 45, PerfScore 242.96, instruction count 483, allocated bytes for code 2041 (MethodHash=819ac49e) for method System.Text.RegularExpressions.RegexLWCGCompiler:FactoryInstanceFromCode(System.String,System.Text.RegularExpressions.RegexTree,int,ubyte):System.Text.RegularExpressions.RegexRunnerFactory:this (FullOpts) ```

Note: some changes were skipped as they were too large to fit into a comment.

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

MihuBot commented 1 month ago

Top method improvements

-43 (-31.16 % of base) - System.IO.Hashing.Crc64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte ```diff ; Assembly listing for method System.IO.Hashing.Crc64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 3 single block inlinees; 4 inlinees without PGO data ; Final local variable assignments ; ;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def ;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def ; V02 arg2 [V02,T00] ( 4, 3 ) byref -> rbx single-def ;* V03 loc0 [V03 ] ( 0, 0 ) long -> zero-ref single-def ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V05 tmp1 [V05,T05] ( 3, 1.50) long -> rax "Inline return value spill temp" ;* V06 tmp2 [V06 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp" ;* V07 tmp3 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V08 tmp4 [V08 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ; V09 tmp5 [V09,T06] ( 2, 1 ) long -> rax ld-addr-op single-def "Inline stloc first use temp" ;* V10 tmp6 [V10 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V11 tmp7 [V11 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V12 tmp8 [V12 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" -; V13 tmp9 [V13,T03] ( 3, 2 ) byref -> rsi single-def "field V00._reference (fldOffset=0x0)" P-INDEP +; V13 tmp9 [V13,T02] ( 3, 2 ) byref -> rsi single-def "field V00._reference (fldOffset=0x0)" P-INDEP ; V14 tmp10 [V14,T01] ( 4, 2.50) int -> rax single-def "field V00._length (fldOffset=0x8)" P-INDEP -; V15 tmp11 [V15,T04] ( 2, 1.50) byref -> r14 single-def "field V01._reference (fldOffset=0x0)" P-INDEP -; V16 tmp12 [V16,T02] ( 3, 2.50) int -> r15 single-def "field V01._length (fldOffset=0x8)" P-INDEP +; V15 tmp11 [V15,T04] ( 2, 1.50) byref -> r15 single-def "field V01._reference (fldOffset=0x0)" P-INDEP +; V16 tmp12 [V16,T03] ( 2, 2 ) int -> rcx single-def "field V01._length (fldOffset=0x8)" P-INDEP ;* V17 tmp13 [V17 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP ;* V18 tmp14 [V18 ] ( 0, 0 ) int -> zero-ref single-def "field V07._length (fldOffset=0x8)" P-INDEP ;* V19 tmp15 [V19 ] ( 0, 0 ) byref -> zero-ref single-def "field V10._reference (fldOffset=0x0)" P-INDEP ;* V20 tmp16 [V20 ] ( 0, 0 ) int -> zero-ref single-def "field V10._length (fldOffset=0x8)" P-INDEP ;* V21 tmp17 [V21 ] ( 0, 0 ) byref -> zero-ref single-def "field V11._reference (fldOffset=0x0)" P-INDEP ;* V22 tmp18 [V22 ] ( 0, 0 ) int -> zero-ref single-def "field V11._length (fldOffset=0x8)" P-INDEP ;* V23 tmp19 [V23 ] ( 0, 0 ) byref -> zero-ref single-def "field V12._reference (fldOffset=0x0)" P-INDEP ;* V24 tmp20 [V24 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP ; -; Lcl frame size = 8 +; Lcl frame size = 0 G_M55114_IG01: push rbp push r15 - push r14 push rbx - push rax - lea rbp, [rsp+0x20] + lea rbp, [rsp+0x10] mov eax, esi mov rsi, rdi - mov r14, rdx - mov r15d, ecx + mov r15, rdx mov rbx, r8 - ;; size=26 bbWeight=1 PerfScore 6.75 + ;; size=20 bbWeight=1 PerfScore 4.50 G_M55114_IG02: - cmp r15d, 8 + cmp ecx, 8 jl SHORT G_M55114_IG07 - ;; size=6 bbWeight=1 PerfScore 1.25 + ;; size=5 bbWeight=1 PerfScore 1.25 G_M55114_IG03: cmp eax, 16 jge SHORT G_M55114_IG04 mov edx, eax xor edi, edi mov rax, 0xD1FFAB1E ; code for System.IO.Hashing.Crc64:UpdateScalar(ulong,System.ReadOnlySpan`1[ubyte]):ulong call [rax]System.IO.Hashing.Crc64:UpdateScalar(ulong,System.ReadOnlySpan`1[ubyte]):ulong jmp SHORT G_M55114_IG05 ;; size=23 bbWeight=0.50 PerfScore 3.50 G_M55114_IG04: mov edx, eax xor edi, edi mov rax, 0xD1FFAB1E ; code for System.IO.Hashing.Crc64:UpdateVectorized(ulong,System.ReadOnlySpan`1[ubyte]):ulong call [rax]System.IO.Hashing.Crc64:UpdateVectorized(ulong,System.ReadOnlySpan`1[ubyte]):ulong ;; size=16 bbWeight=0.50 PerfScore 1.88 G_M55114_IG05: bswap rax - cmp r15d, 8 - jb SHORT G_M55114_IG09 - mov qword ptr [r14], rax + mov qword ptr [r15], rax mov dword ptr [rbx], 8 mov eax, 1 - ;; size=23 bbWeight=0.50 PerfScore 2.25 + ;; size=17 bbWeight=0.50 PerfScore 1.62 G_M55114_IG06: - add rsp, 8 pop rbx - pop r14 pop r15 pop rbp ret - ;; size=11 bbWeight=0.50 PerfScore 1.62 + ;; size=5 bbWeight=0.50 PerfScore 1.25 G_M55114_IG07: xor eax, eax mov dword ptr [rbx], eax ;; size=4 bbWeight=0.50 PerfScore 0.62 G_M55114_IG08: - add rsp, 8 pop rbx - pop r14 pop r15 pop rbp ret - ;; size=11 bbWeight=0.50 PerfScore 1.62 -G_M55114_IG09: - 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 + ;; size=5 bbWeight=0.50 PerfScore 1.25 -; Total bytes of code 138, prolog size 12, PerfScore 19.50, instruction count 48, allocated bytes for code 138 (MethodHash=5ef028b5) for method System.IO.Hashing.Crc64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts) +; Total bytes of code 95, prolog size 9, PerfScore 15.88, instruction count 35, allocated bytes for code 95 (MethodHash=5ef028b5) for method System.IO.Hashing.Crc64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts) ```
-43 (-39.81 % of base) - System.IO.Hashing.XxHash32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,int):ubyte ```diff ; Assembly listing for method System.IO.Hashing.XxHash32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,int):ubyte (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ; ;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def ;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def ; V02 arg2 [V02,T00] ( 4, 3 ) byref -> rbx single-def ; V03 arg3 [V03,T01] ( 3, 2.50) int -> r9 single-def ; V04 loc0 [V04,T06] ( 2, 1 ) int -> rax single-def ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V06 tmp1 [V06,T07] ( 2, 1 ) int -> rax ld-addr-op single-def "Inline stloc first use temp" ;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V09 tmp4 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V10 tmp5 [V10,T03] ( 2, 1.50) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP ; V11 tmp6 [V11,T05] ( 2, 1.50) int -> rsi single-def "field V00._length (fldOffset=0x8)" P-INDEP -; V12 tmp7 [V12,T04] ( 2, 1.50) byref -> r14 single-def "field V01._reference (fldOffset=0x0)" P-INDEP -; V13 tmp8 [V13,T02] ( 3, 2.50) int -> r15 single-def "field V01._length (fldOffset=0x8)" P-INDEP +; V12 tmp7 [V12,T04] ( 2, 1.50) byref -> r15 single-def "field V01._reference (fldOffset=0x0)" P-INDEP +; V13 tmp8 [V13,T02] ( 2, 2 ) int -> rcx single-def "field V01._length (fldOffset=0x8)" P-INDEP ;* V14 tmp9 [V14 ] ( 0, 0 ) byref -> zero-ref single-def "field V07._reference (fldOffset=0x0)" P-INDEP ;* V15 tmp10 [V15 ] ( 0, 0 ) int -> zero-ref single-def "field V07._length (fldOffset=0x8)" P-INDEP ;* V16 tmp11 [V16 ] ( 0, 0 ) byref -> zero-ref single-def "field V08._reference (fldOffset=0x0)" P-INDEP ;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref single-def "field V08._length (fldOffset=0x8)" P-INDEP ;* V18 tmp13 [V18 ] ( 0, 0 ) byref -> zero-ref single-def "field V09._reference (fldOffset=0x0)" P-INDEP ;* V19 tmp14 [V19 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP ; -; Lcl frame size = 8 +; Lcl frame size = 0 G_M36118_IG01: push rbp push r15 - push r14 push rbx - push rax - lea rbp, [rsp+0x20] - mov r14, rdx - mov r15d, ecx + lea rbp, [rsp+0x10] + mov r15, rdx mov rbx, r8 - ;; size=21 bbWeight=1 PerfScore 6.25 + ;; size=15 bbWeight=1 PerfScore 4.00 G_M36118_IG02: - cmp r15d, 4 + cmp ecx, 4 jl SHORT G_M36118_IG05 - ;; size=6 bbWeight=1 PerfScore 1.25 + ;; size=5 bbWeight=1 PerfScore 1.25 G_M36118_IG03: mov edx, r9d mov rax, 0xD1FFAB1E ; code for System.IO.Hashing.XxHash32:HashToUInt32(System.ReadOnlySpan`1[ubyte],int):uint call [rax]System.IO.Hashing.XxHash32:HashToUInt32(System.ReadOnlySpan`1[ubyte],int):uint bswap eax - cmp r15d, 4 - jb SHORT G_M36118_IG07 - mov dword ptr [r14], eax + mov dword ptr [r15], eax mov dword ptr [rbx], 4 mov eax, 1 - ;; size=37 bbWeight=0.50 PerfScore 3.75 + ;; size=31 bbWeight=0.50 PerfScore 3.12 G_M36118_IG04: - add rsp, 8 pop rbx - pop r14 pop r15 pop rbp ret - ;; size=11 bbWeight=0.50 PerfScore 1.62 + ;; size=5 bbWeight=0.50 PerfScore 1.25 G_M36118_IG05: xor eax, eax mov dword ptr [rbx], eax ;; size=4 bbWeight=0.50 PerfScore 0.62 G_M36118_IG06: - add rsp, 8 pop rbx - pop r14 pop r15 pop rbp ret - ;; size=11 bbWeight=0.50 PerfScore 1.62 -G_M36118_IG07: - 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 + ;; size=5 bbWeight=0.50 PerfScore 1.25 -; Total bytes of code 108, prolog size 12, PerfScore 15.12, instruction count 38, allocated bytes for code 108 (MethodHash=c50672e9) for method System.IO.Hashing.XxHash32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,int):ubyte (FullOpts) +; Total bytes of code 65, prolog size 9, PerfScore 11.50, instruction count 25, allocated bytes for code 65 (MethodHash=c50672e9) for method 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.XxHash64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,long):ubyte ```diff ; Assembly listing for method System.IO.Hashing.XxHash64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,long):ubyte (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ; ;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def ;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def ; V02 arg2 [V02,T00] ( 4, 3 ) byref -> rbx single-def ; V03 arg3 [V03,T01] ( 3, 2.50) long -> r9 single-def ; V04 loc0 [V04,T06] ( 2, 1 ) long -> rax single-def ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V06 tmp1 [V06,T07] ( 2, 1 ) long -> rax ld-addr-op single-def "Inline stloc first use temp" ;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V09 tmp4 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V10 tmp5 [V10,T03] ( 2, 1.50) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP ; V11 tmp6 [V11,T05] ( 2, 1.50) int -> rsi single-def "field V00._length (fldOffset=0x8)" P-INDEP -; V12 tmp7 [V12,T04] ( 2, 1.50) byref -> r14 single-def "field V01._reference (fldOffset=0x0)" P-INDEP -; V13 tmp8 [V13,T02] ( 3, 2.50) int -> r15 single-def "field V01._length (fldOffset=0x8)" P-INDEP +; V12 tmp7 [V12,T04] ( 2, 1.50) byref -> r15 single-def "field V01._reference (fldOffset=0x0)" P-INDEP +; V13 tmp8 [V13,T02] ( 2, 2 ) int -> rcx single-def "field V01._length (fldOffset=0x8)" P-INDEP ;* V14 tmp9 [V14 ] ( 0, 0 ) byref -> zero-ref single-def "field V07._reference (fldOffset=0x0)" P-INDEP ;* V15 tmp10 [V15 ] ( 0, 0 ) int -> zero-ref single-def "field V07._length (fldOffset=0x8)" P-INDEP ;* V16 tmp11 [V16 ] ( 0, 0 ) byref -> zero-ref single-def "field V08._reference (fldOffset=0x0)" P-INDEP ;* V17 tmp12 [V17 ] ( 0, 0 ) int -> zero-ref single-def "field V08._length (fldOffset=0x8)" P-INDEP ;* V18 tmp13 [V18 ] ( 0, 0 ) byref -> zero-ref single-def "field V09._reference (fldOffset=0x0)" P-INDEP ;* V19 tmp14 [V19 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP ; -; Lcl frame size = 8 +; Lcl frame size = 0 G_M59884_IG01: push rbp push r15 - push r14 push rbx - push rax - lea rbp, [rsp+0x20] - mov r14, rdx - mov r15d, ecx + lea rbp, [rsp+0x10] + mov r15, rdx mov rbx, r8 - ;; size=21 bbWeight=1 PerfScore 6.25 + ;; size=15 bbWeight=1 PerfScore 4.00 G_M59884_IG02: - cmp r15d, 8 + cmp ecx, 8 jl SHORT G_M59884_IG05 - ;; size=6 bbWeight=1 PerfScore 1.25 + ;; size=5 bbWeight=1 PerfScore 1.25 G_M59884_IG03: mov rdx, r9 mov rax, 0xD1FFAB1E ; code for System.IO.Hashing.XxHash64:HashToUInt64(System.ReadOnlySpan`1[ubyte],long):ulong call [rax]System.IO.Hashing.XxHash64:HashToUInt64(System.ReadOnlySpan`1[ubyte],long):ulong bswap rax - cmp r15d, 8 - jb SHORT G_M59884_IG07 - mov qword ptr [r14], rax + mov qword ptr [r15], rax mov dword ptr [rbx], 8 mov eax, 1 - ;; size=38 bbWeight=0.50 PerfScore 4.00 + ;; size=32 bbWeight=0.50 PerfScore 3.38 G_M59884_IG04: - add rsp, 8 pop rbx - pop r14 pop r15 pop rbp ret - ;; size=11 bbWeight=0.50 PerfScore 1.62 + ;; size=5 bbWeight=0.50 PerfScore 1.25 G_M59884_IG05: xor eax, eax mov dword ptr [rbx], eax ;; size=4 bbWeight=0.50 PerfScore 0.62 G_M59884_IG06: - add rsp, 8 pop rbx - pop r14 pop r15 pop rbp ret - ;; size=11 bbWeight=0.50 PerfScore 1.62 -G_M59884_IG07: - 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 + ;; size=5 bbWeight=0.50 PerfScore 1.25 -; Total bytes of code 109, prolog size 12, PerfScore 15.38, instruction count 38, allocated bytes for code 109 (MethodHash=83591613) for method System.IO.Hashing.XxHash64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,long):ubyte (FullOpts) +; Total bytes of code 66, prolog size 9, PerfScore 11.75, instruction count 25, allocated bytes for code 66 (MethodHash=83591613) for method System.IO.Hashing.XxHash64:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref,long):ubyte (FullOpts) ```
-37 (-17.70 % of base) - System.IO.Hashing.Crc32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte ```diff ; Assembly listing for method System.IO.Hashing.Crc32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (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; 3 single block inlinees; 6 inlinees without PGO data ; Final local variable assignments ; ;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def ;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def ; V02 arg2 [V02,T03] ( 4, 3 ) byref -> rbx single-def ; V03 loc0 [V03,T13] ( 2, 1 ) int -> rax single-def ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V05 tmp1 [V05,T11] ( 3, 1.50) int -> r13 "Inline return value spill temp" +; V05 tmp1 [V05,T11] ( 3, 1.50) int -> r14 "Inline return value spill temp" ;* V06 tmp2 [V06 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp" ;* V07 tmp3 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V08 tmp4 [V08 ] ( 0, 0 ) int -> zero-ref ;* V09 tmp5 [V09 ] ( 0, 0 ) int -> zero-ref ;* V10 tmp6 [V10 ] ( 0, 0 ) int -> zero-ref ;* V11 tmp7 [V11 ] ( 0, 0 ) int -> zero-ref ;* V12 tmp8 [V12 ] ( 0, 0 ) int -> zero-ref ;* V13 tmp9 [V13 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V14 tmp10 [V14 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" ;* V15 tmp11 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" ;* V16 tmp12 [V16,T14] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V17 tmp13 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V18 tmp14 [V18,T00] ( 5, 26 ) int -> rdx "Inlining Arg" ; V19 tmp15 [V19,T02] ( 3, 12 ) ubyte -> r8 "Inline stloc first use temp" ;* V20 tmp16 [V20 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan for CreateSpan" ;* V21 tmp17 [V21 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V22 tmp18 [V22 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg" ;* V23 tmp19 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V24 tmp20 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" -; V25 tmp21 [V25,T09] ( 3, 2 ) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP -; V26 tmp22 [V26,T05] ( 4, 2.50) int -> [rbp-0x24] single-def "field V00._length (fldOffset=0x8)" P-INDEP -; V27 tmp23 [V27,T10] ( 2, 1.50) byref -> r14 single-def "field V01._reference (fldOffset=0x0)" P-INDEP -; V28 tmp24 [V28,T06] ( 3, 2.50) int -> r15 single-def "field V01._length (fldOffset=0x8)" P-INDEP +; V25 tmp21 [V25,T08] ( 3, 2 ) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP +; V26 tmp22 [V26,T05] ( 4, 2.50) int -> [rbp-0x1C] single-def "field V00._length (fldOffset=0x8)" P-INDEP +; V27 tmp23 [V27,T10] ( 2, 1.50) byref -> r15 single-def "field V01._reference (fldOffset=0x0)" P-INDEP +; V28 tmp24 [V28,T09] ( 2, 2 ) int -> rcx single-def "field V01._length (fldOffset=0x8)" P-INDEP ;* V29 tmp25 [V29 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP ;* V30 tmp26 [V30 ] ( 0, 0 ) int -> zero-ref single-def "field V07._length (fldOffset=0x8)" P-INDEP -; V31 tmp27 [V31,T07] ( 2, 4.50) byref -> rax single-def "field V15._reference (fldOffset=0x0)" P-INDEP +; V31 tmp27 [V31,T06] ( 2, 4.50) byref -> rax single-def "field V15._reference (fldOffset=0x0)" P-INDEP ;* V32 tmp28 [V32,T15] ( 0, 0 ) int -> zero-ref single-def "field V15._length (fldOffset=0x8)" P-INDEP -; V33 tmp29 [V33,T08] ( 2, 4.50) byref -> rdi single-def "field V17._reference (fldOffset=0x0)" P-INDEP +; V33 tmp29 [V33,T07] ( 2, 4.50) byref -> rdi single-def "field V17._reference (fldOffset=0x0)" P-INDEP ; V34 tmp30 [V34,T04] ( 3, 5 ) int -> rsi single-def "field V17._length (fldOffset=0x8)" P-INDEP ; V35 tmp31 [V35,T12] ( 2, 1 ) byref -> rax single-def "field V20._reference (fldOffset=0x0)" P-INDEP ;* V36 tmp32 [V36,T16] ( 0, 0 ) int -> zero-ref single-def "field V20._length (fldOffset=0x8)" P-INDEP ;* V37 tmp33 [V37 ] ( 0, 0 ) byref -> zero-ref single-def "field V21._reference (fldOffset=0x0)" P-INDEP ;* V38 tmp34 [V38 ] ( 0, 0 ) int -> zero-ref single-def "field V21._length (fldOffset=0x8)" P-INDEP ;* V39 tmp35 [V39 ] ( 0, 0 ) byref -> zero-ref single-def "field V23._reference (fldOffset=0x0)" P-INDEP ;* V40 tmp36 [V40 ] ( 0, 0 ) int -> zero-ref single-def "field V23._length (fldOffset=0x8)" P-INDEP ;* V41 tmp37 [V41 ] ( 0, 0 ) byref -> zero-ref single-def "field V24._reference (fldOffset=0x0)" P-INDEP ;* V42 tmp38 [V42 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP ; V43 rat0 [V43,T01] ( 5, 16.50) long -> rcx "Widened IV V16" ; -; Lcl frame size = 16 +; Lcl frame size = 8 G_M17033_IG01: push rbp push r15 push r14 - push r13 push rbx - sub rsp, 16 - lea rbp, [rsp+0x30] - mov r14, rdx - mov r15d, ecx + push rax + lea rbp, [rsp+0x20] + mov r15, rdx mov rbx, r8 - ;; size=26 bbWeight=1 PerfScore 6.50 + ;; size=18 bbWeight=1 PerfScore 6.00 G_M17033_IG02: - cmp r15d, 4 + cmp ecx, 4 jl G_M17033_IG09 - ;; size=10 bbWeight=1 PerfScore 1.25 + ;; size=9 bbWeight=1 PerfScore 1.25 G_M17033_IG03: cmp esi, 16 jge SHORT G_M17033_IG06 mov edx, -1 mov rax, 0xD1FFAB1E ; static handle xor ecx, ecx test esi, esi jle SHORT G_M17033_IG05 align [0 bytes for IG04] ;; size=26 bbWeight=0.50 PerfScore 1.62 G_M17033_IG04: movzx r8, byte ptr [rdi+rcx] xor r8d, edx movzx r8, r8b cmp r8d, 256 - jae SHORT G_M17033_IG12 + jae SHORT G_M17033_IG11 shr edx, 8 xor edx, dword ptr [rax+4*r8] inc ecx cmp ecx, esi jl SHORT G_M17033_IG04 ;; size=34 bbWeight=4 PerfScore 35.00 G_M17033_IG05: - mov r13d, edx + mov r14d, edx jmp SHORT G_M17033_IG07 ;; size=5 bbWeight=0.50 PerfScore 1.12 G_M17033_IG06: - mov dword ptr [rbp-0x24], esi + mov dword ptr [rbp-0x1C], esi mov rsi, rdi - mov edx, dword ptr [rbp-0x24] + mov edx, dword ptr [rbp-0x1C] mov edi, -1 mov rax, 0xD1FFAB1E ; code for System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint call [rax]System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint - mov r13d, eax + mov r14d, eax ;; size=29 bbWeight=0.50 PerfScore 3.00 G_M17033_IG07: - mov eax, r13d + mov eax, r14d not eax - cmp r15d, 4 - jb SHORT G_M17033_IG11 - mov dword ptr [r14], eax + mov dword ptr [r15], eax mov dword ptr [rbx], 4 mov eax, 1 - ;; size=25 bbWeight=0.50 PerfScore 2.00 + ;; size=19 bbWeight=0.50 PerfScore 1.38 G_M17033_IG08: - add rsp, 16 + add rsp, 8 pop rbx - pop r13 pop r14 pop r15 pop rbp ret - ;; size=13 bbWeight=0.50 PerfScore 1.88 + ;; size=11 bbWeight=0.50 PerfScore 1.62 G_M17033_IG09: xor eax, eax mov dword ptr [rbx], eax ;; size=4 bbWeight=0.50 PerfScore 0.62 G_M17033_IG10: - add rsp, 16 + add rsp, 8 pop rbx - pop r13 pop r14 pop r15 pop rbp ret - ;; size=13 bbWeight=0.50 PerfScore 1.88 + ;; size=11 bbWeight=0.50 PerfScore 1.62 G_M17033_IG11: - 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_M17033_IG12: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 -; Total bytes of code 209, prolog size 26, PerfScore 54.88, instruction count 68, allocated bytes for code 209 (MethodHash=6cb4bd76) for method System.IO.Hashing.Crc32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts) +; Total bytes of code 172, prolog size 18, PerfScore 53.25, instruction count 58, allocated bytes for code 172 (MethodHash=6cb4bd76) for method System.IO.Hashing.Crc32:TryHash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts) ```
-31 (-16.67 % of base) - System.IO.Hashing.Crc32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int ```diff ; Assembly listing for method System.IO.Hashing.Crc32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (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; 3 single block inlinees; 6 inlinees without PGO data ; Final local variable assignments ; ;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def ;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def ; V02 loc0 [V02,T11] ( 2, 2 ) int -> rax single-def ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V04 tmp1 [V04,T10] ( 3, 2 ) int -> r14 "Inline return value spill temp" +; V04 tmp1 [V04,T10] ( 3, 2 ) int -> r15 "Inline return value spill temp" ;* V05 tmp2 [V05 ] ( 0, 0 ) ubyte -> zero-ref single-def "Inline return value spill temp" ;* V06 tmp3 [V06 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V07 tmp4 [V07 ] ( 0, 0 ) int -> zero-ref ;* V08 tmp5 [V08 ] ( 0, 0 ) int -> zero-ref ;* V09 tmp6 [V09 ] ( 0, 0 ) int -> zero-ref ;* V10 tmp7 [V10 ] ( 0, 0 ) int -> zero-ref ;* V11 tmp8 [V11 ] ( 0, 0 ) int -> zero-ref ;* V12 tmp9 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V13 tmp10 [V13 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" ;* V14 tmp11 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" ;* V15 tmp12 [V15,T13] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V16 tmp13 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V17 tmp14 [V17,T00] ( 5, 26 ) int -> rdx "Inlining Arg" ; V18 tmp15 [V18,T02] ( 3, 12 ) ubyte -> r8 "Inline stloc first use temp" ;* V19 tmp16 [V19 ] ( 0, 0 ) struct (16) zero-ref "ReadOnlySpan for CreateSpan" ;* V20 tmp17 [V20 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V21 tmp18 [V21 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg" ;* V22 tmp19 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V23 tmp20 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" -; V24 tmp21 [V24,T08] ( 3, 2 ) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP -; V25 tmp22 [V25,T03] ( 4, 3 ) int -> [rbp-0x1C] single-def "field V00._length (fldOffset=0x8)" P-INDEP -; V26 tmp23 [V26,T09] ( 2, 2 ) byref -> r15 single-def "field V01._reference (fldOffset=0x0)" P-INDEP -; V27 tmp24 [V27,T04] ( 3, 3 ) int -> rbx single-def "field V01._length (fldOffset=0x8)" P-INDEP +; V24 tmp21 [V24,T07] ( 3, 2 ) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP +; V25 tmp22 [V25,T03] ( 4, 3 ) int -> [rbp-0x14] single-def "field V00._length (fldOffset=0x8)" P-INDEP +; V26 tmp23 [V26,T08] ( 2, 2 ) byref -> rbx single-def "field V01._reference (fldOffset=0x0)" P-INDEP +; V27 tmp24 [V27,T09] ( 2, 2 ) int -> rcx single-def "field V01._length (fldOffset=0x8)" P-INDEP ;* V28 tmp25 [V28 ] ( 0, 0 ) byref -> zero-ref "field V06._reference (fldOffset=0x0)" P-INDEP ;* V29 tmp26 [V29 ] ( 0, 0 ) int -> zero-ref single-def "field V06._length (fldOffset=0x8)" P-INDEP -; V30 tmp27 [V30,T06] ( 2, 4.50) byref -> rax single-def "field V14._reference (fldOffset=0x0)" P-INDEP +; V30 tmp27 [V30,T05] ( 2, 4.50) byref -> rax single-def "field V14._reference (fldOffset=0x0)" P-INDEP ;* V31 tmp28 [V31,T14] ( 0, 0 ) int -> zero-ref single-def "field V14._length (fldOffset=0x8)" P-INDEP -; V32 tmp29 [V32,T07] ( 2, 4.50) byref -> rdi single-def "field V16._reference (fldOffset=0x0)" P-INDEP -; V33 tmp30 [V33,T05] ( 3, 5 ) int -> rsi single-def "field V16._length (fldOffset=0x8)" P-INDEP +; V32 tmp29 [V32,T06] ( 2, 4.50) byref -> rdi single-def "field V16._reference (fldOffset=0x0)" P-INDEP +; V33 tmp30 [V33,T04] ( 3, 5 ) int -> rsi single-def "field V16._length (fldOffset=0x8)" P-INDEP ; V34 tmp31 [V34,T12] ( 2, 1 ) byref -> rax single-def "field V19._reference (fldOffset=0x0)" P-INDEP ;* V35 tmp32 [V35,T15] ( 0, 0 ) int -> zero-ref single-def "field V19._length (fldOffset=0x8)" P-INDEP ;* V36 tmp33 [V36 ] ( 0, 0 ) byref -> zero-ref single-def "field V20._reference (fldOffset=0x0)" P-INDEP ;* V37 tmp34 [V37 ] ( 0, 0 ) int -> zero-ref single-def "field V20._length (fldOffset=0x8)" P-INDEP ;* V38 tmp35 [V38 ] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP ;* V39 tmp36 [V39 ] ( 0, 0 ) int -> zero-ref single-def "field V22._length (fldOffset=0x8)" P-INDEP ;* V40 tmp37 [V40 ] ( 0, 0 ) byref -> zero-ref single-def "field V23._reference (fldOffset=0x0)" P-INDEP ;* V41 tmp38 [V41 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP ; V42 rat0 [V42,T01] ( 5, 16.50) long -> rcx "Widened IV V15" ; -; Lcl frame size = 8 +; Lcl frame size = 16 G_M38940_IG01: push rbp push r15 - push r14 push rbx - push rax + sub rsp, 16 lea rbp, [rsp+0x20] - mov r15, rdx - mov ebx, ecx - ;; size=17 bbWeight=1 PerfScore 6.00 + mov rbx, rdx + ;; size=16 bbWeight=1 PerfScore 4.00 G_M38940_IG02: - cmp ebx, 4 - jl G_M38940_IG10 + cmp ecx, 4 + jl SHORT G_M38940_IG09 cmp esi, 16 jge SHORT G_M38940_IG06 - ;; size=14 bbWeight=1 PerfScore 2.50 + ;; size=10 bbWeight=1 PerfScore 2.50 G_M38940_IG03: mov edx, -1 mov rax, 0xD1FFAB1E ; static handle xor ecx, ecx test esi, esi jle SHORT G_M38940_IG05 align [0 bytes for IG04] ;; size=21 bbWeight=0.50 PerfScore 1.00 G_M38940_IG04: movzx r8, byte ptr [rdi+rcx] xor r8d, edx movzx r8, r8b cmp r8d, 256 - jae SHORT G_M38940_IG11 + jae SHORT G_M38940_IG10 shr edx, 8 xor edx, dword ptr [rax+4*r8] inc ecx cmp ecx, esi jl SHORT G_M38940_IG04 ;; size=34 bbWeight=4 PerfScore 35.00 G_M38940_IG05: - mov r14d, edx + mov r15d, edx jmp SHORT G_M38940_IG07 ;; size=5 bbWeight=0.50 PerfScore 1.12 G_M38940_IG06: - mov dword ptr [rbp-0x1C], esi + mov dword ptr [rbp-0x14], esi mov rsi, rdi - mov edx, dword ptr [rbp-0x1C] + mov edx, dword ptr [rbp-0x14] mov edi, -1 mov rax, 0xD1FFAB1E ; code for System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint call [rax]System.IO.Hashing.Crc32:UpdateVectorized(uint,System.ReadOnlySpan`1[ubyte]):uint - mov r14d, eax + mov r15d, eax ;; size=29 bbWeight=0.50 PerfScore 3.00 G_M38940_IG07: - mov eax, r14d + mov eax, r15d not eax - cmp ebx, 4 - jb SHORT G_M38940_IG09 - mov dword ptr [r15], eax + mov dword ptr [rbx], eax mov eax, 4 - ;; size=18 bbWeight=1 PerfScore 3.00 + ;; size=12 bbWeight=1 PerfScore 1.75 G_M38940_IG08: - add rsp, 8 + add rsp, 16 pop rbx - pop r14 pop r15 pop rbp ret - ;; size=11 bbWeight=1 PerfScore 3.25 + ;; size=9 bbWeight=1 PerfScore 2.75 G_M38940_IG09: - 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_M38940_IG10: mov rax, 0xD1FFAB1E ; code for System.IO.Hashing.NonCryptographicHashAlgorithm:ThrowDestinationTooShort() call [rax]System.IO.Hashing.NonCryptographicHashAlgorithm:ThrowDestinationTooShort() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -G_M38940_IG11: +G_M38940_IG10: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 -; Total bytes of code 186, prolog size 17, PerfScore 54.88, instruction count 58, allocated bytes for code 186 (MethodHash=b30467e3) for method System.IO.Hashing.Crc32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts) +; Total bytes of code 155, prolog size 16, PerfScore 51.12, instruction count 49, allocated bytes for code 159 (MethodHash=b30467e3) for method System.IO.Hashing.Crc32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts) ```
-25 (-29.41 % of base) - System.IO.Hashing.XxHash32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int):int ```diff ; Assembly listing for method System.IO.Hashing.XxHash32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int):int (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 2 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ; ;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def ;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def ; V02 arg2 [V02,T00] ( 3, 3 ) int -> r8 single-def ; V03 loc0 [V03,T05] ( 2, 2 ) int -> rax single-def ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V05 tmp1 [V05,T06] ( 2, 2 ) int -> rax ld-addr-op single-def "Inline stloc first use temp" ;* V06 tmp2 [V06 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V07 tmp3 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V08 tmp4 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" -; V09 tmp5 [V09,T02] ( 2, 2 ) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP -; V10 tmp6 [V10,T04] ( 2, 2 ) int -> rsi single-def "field V00._length (fldOffset=0x8)" P-INDEP -; V11 tmp7 [V11,T03] ( 2, 2 ) byref -> r15 single-def "field V01._reference (fldOffset=0x0)" P-INDEP -; V12 tmp8 [V12,T01] ( 3, 3 ) int -> rbx single-def "field V01._length (fldOffset=0x8)" P-INDEP +; V09 tmp5 [V09,T01] ( 2, 2 ) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP +; V10 tmp6 [V10,T03] ( 2, 2 ) int -> rsi single-def "field V00._length (fldOffset=0x8)" P-INDEP +; V11 tmp7 [V11,T02] ( 2, 2 ) byref -> rbx single-def "field V01._reference (fldOffset=0x0)" P-INDEP +; V12 tmp8 [V12,T04] ( 2, 2 ) int -> rcx single-def "field V01._length (fldOffset=0x8)" P-INDEP ;* V13 tmp9 [V13 ] ( 0, 0 ) byref -> zero-ref single-def "field V06._reference (fldOffset=0x0)" P-INDEP ;* V14 tmp10 [V14 ] ( 0, 0 ) int -> zero-ref single-def "field V06._length (fldOffset=0x8)" P-INDEP ;* V15 tmp11 [V15 ] ( 0, 0 ) byref -> zero-ref single-def "field V07._reference (fldOffset=0x0)" P-INDEP ;* V16 tmp12 [V16 ] ( 0, 0 ) int -> zero-ref single-def "field V07._length (fldOffset=0x8)" P-INDEP ;* V17 tmp13 [V17 ] ( 0, 0 ) byref -> zero-ref single-def "field V08._reference (fldOffset=0x0)" P-INDEP ;* V18 tmp14 [V18 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP ; -; Lcl frame size = 0 +; Lcl frame size = 8 G_M27075_IG01: push rbp - push r15 push rbx + push rax lea rbp, [rsp+0x10] - mov r15, rdx - mov ebx, ecx - ;; size=14 bbWeight=1 PerfScore 4.00 + mov rbx, rdx + ;; size=11 bbWeight=1 PerfScore 3.75 G_M27075_IG02: - cmp ebx, 4 - jl SHORT G_M27075_IG05 + cmp ecx, 4 + jl SHORT G_M27075_IG04 mov edx, r8d mov rax, 0xD1FFAB1E ; code for System.IO.Hashing.XxHash32:HashToUInt32(System.ReadOnlySpan`1[ubyte],int):uint call [rax]System.IO.Hashing.XxHash32:HashToUInt32(System.ReadOnlySpan`1[ubyte],int):uint bswap eax - cmp ebx, 4 - jb SHORT G_M27075_IG04 - mov dword ptr [r15], eax + mov dword ptr [rbx], eax mov eax, 4 - ;; size=35 bbWeight=1 PerfScore 7.75 + ;; size=29 bbWeight=1 PerfScore 6.50 G_M27075_IG03: + add rsp, 8 pop rbx - pop r15 pop rbp ret - ;; size=5 bbWeight=1 PerfScore 2.50 + ;; size=7 bbWeight=1 PerfScore 2.25 G_M27075_IG04: - 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_M27075_IG05: mov rax, 0xD1FFAB1E ; code for System.IO.Hashing.NonCryptographicHashAlgorithm:ThrowDestinationTooShort() call [rax]System.IO.Hashing.NonCryptographicHashAlgorithm:ThrowDestinationTooShort() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -; Total bytes of code 85, prolog size 9, PerfScore 14.25, instruction count 27, allocated bytes for code 85 (MethodHash=fb2a963c) for method System.IO.Hashing.XxHash32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int):int (FullOpts) +; Total bytes of code 60, prolog size 8, PerfScore 12.50, instruction count 20, allocated bytes for code 60 (MethodHash=fb2a963c) for method System.IO.Hashing.XxHash32:Hash(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int):int (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/3b21172dfefcb3f4661372a9fb820118

MihuBot commented 1 month ago

@xtqqczze