MihuBot / runtime-utils

0 stars 0 forks source link

[JitDiff X64] xtqqczze/dotnet-runtime/wip-UIntCastLengthCheck3 #705

Open MihuBot opened 1 month ago

MihuBot commented 1 month ago

Job completed in 18 minutes 38 seconds.

Diffs

Diffs ``` Found 342 files with textual diffs. Summary of Code Size diffs: (Lower is better) Total bytes of base: 39447434 Total bytes of diff: 39443765 Total bytes of delta: -3669 (-0.01 % of base) Total relative delta: -5.42 diff is an improvement. relative diff is an improvement. Top file regressions (bytes): 13 : System.Text.RegularExpressions.dasm (0.00 % of base) 5 : System.Console.dasm (0.01 % of base) Top file improvements (bytes): -816 : System.Threading.Tasks.Dataflow.dasm (-0.07 % of base) -642 : System.Net.Http.dasm (-0.08 % of base) -385 : System.Private.CoreLib.dasm (-0.01 % of base) -283 : System.Private.Xml.dasm (-0.01 % of base) -181 : System.Text.Json.dasm (-0.01 % of base) -146 : System.Net.WebSockets.dasm (-0.10 % of base) -141 : System.Net.Quic.dasm (-0.09 % of base) -100 : System.Linq.Expressions.dasm (-0.01 % of base) -66 : System.Drawing.Primitives.dasm (-0.17 % of base) -64 : System.Collections.Immutable.dasm (-0.00 % of base) -57 : Microsoft.Extensions.Logging.Console.dasm (-0.10 % of base) -49 : System.Diagnostics.DiagnosticSource.dasm (-0.02 % of base) -49 : System.Net.Security.dasm (-0.02 % of base) -48 : tieringtest.dasm (-0.68 % of base) -37 : System.Net.Primitives.dasm (-0.04 % of base) -35 : System.Private.DataContractSerialization.dasm (-0.00 % of base) -35 : Microsoft.Extensions.Logging.dasm (-0.10 % of base) -33 : Microsoft.Extensions.DependencyInjection.Abstractions.dasm (-0.05 % of base) -29 : Microsoft.Extensions.Configuration.dasm (-0.18 % of base) -28 : System.Security.Claims.dasm (-0.21 % of base) -27 : System.Memory.dasm (-0.01 % of base) -27 : runincontext.dasm (-0.17 % of base) -26 : System.Numerics.Tensors.dasm (-0.00 % of base) -26 : Microsoft.Extensions.Diagnostics.dasm (-0.17 % of base) -24 : System.Security.Cryptography.dasm (-0.00 % of base) -21 : System.Net.Sockets.dasm (-0.01 % of base) -20 : Microsoft.Extensions.Http.dasm (-0.03 % of base) -19 : System.Reflection.Metadata.dasm (-0.00 % of base) -18 : System.ComponentModel.TypeConverter.dasm (-0.01 % of base) -15 : Microsoft.Extensions.DependencyInjection.dasm (-0.02 % of base) -15 : System.Data.Common.dasm (-0.00 % of base) -13 : Microsoft.Extensions.Configuration.FileExtensions.dasm (-0.27 % of base) -12 : System.Net.Mail.dasm (-0.01 % of base) -12 : System.Net.Requests.dasm (-0.01 % of base) -12 : System.ServiceModel.Syndication.dasm (-0.01 % of base) -11 : System.Formats.Tar.dasm (-0.01 % of base) -10 : System.Diagnostics.TraceSource.dasm (-0.02 % of base) -9 : Microsoft.Extensions.Caching.Memory.dasm (-0.05 % of base) -9 : System.ComponentModel.Composition.dasm (-0.00 % of base) -8 : System.Net.HttpListener.dasm (-0.01 % of base) -7 : Microsoft.Extensions.FileSystemGlobbing.dasm (-0.03 % of base) -7 : Microsoft.Extensions.Logging.Debug.dasm (-0.12 % of base) -7 : System.Composition.Runtime.dasm (-0.04 % of base) -7 : Microsoft.Extensions.DependencyModel.dasm (-0.01 % of base) -7 : System.Net.NetworkInformation.dasm (-0.01 % of base) -6 : System.Reflection.DispatchProxy.dasm (-0.03 % of base) -6 : Microsoft.Extensions.Logging.Configuration.dasm (-0.08 % of base) -6 : System.Diagnostics.Process.dasm (-0.01 % of base) -6 : System.IO.Pipes.dasm (-0.02 % of base) -5 : System.IO.Ports.dasm (-0.01 % of base) -5 : System.IO.Compression.ZipFile.dasm (-0.04 % of base) -5 : System.IO.MemoryMappedFiles.dasm (-0.02 % of base) -5 : System.IO.FileSystem.DriveInfo.dasm (-0.02 % of base) -5 : System.Net.NameResolution.dasm (-0.01 % of base) -5 : System.IO.FileSystem.Watcher.dasm (-0.02 % of base) -4 : System.Reflection.MetadataLoadContext.dasm (-0.00 % of base) -4 : Microsoft.Extensions.Caching.Abstractions.dasm (-0.01 % of base) -4 : System.Security.Cryptography.ProtectedData.dasm (-0.07 % of base) -4 : System.DirectoryServices.Protocols.dasm (-0.00 % of base) -4 : System.Runtime.Numerics.dasm (-0.00 % of base) -3 : System.Runtime.InteropServices.dasm (-0.01 % of base) -3 : System.Security.Cryptography.Cose.dasm (-0.00 % of base) -3 : System.Configuration.ConfigurationManager.dasm (-0.00 % of base) -2 : Microsoft.Extensions.Logging.Abstractions.dasm (-0.00 % of base) -2 : System.Net.WebSockets.Client.dasm (-0.01 % of base) -2 : System.Web.HttpUtility.dasm (-0.01 % of base) -1 : System.Security.Cryptography.Xml.dasm (-0.00 % of base) -1 : System.Formats.Asn1.dasm (-0.00 % of base) -1 : System.CodeDom.dasm (-0.00 % of base) -1 : System.Net.WebProxy.dasm (-0.02 % of base) -1 : System.IO.Pipelines.dasm (-0.00 % of base) 73 total files with Code Size differences (71 improved, 2 regressed), 186 unchanged. Top method regressions (bytes): 34 (0.68 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:GenerateEncodedMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this (FullOpts) 23 (3.22 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[double](System.Enum+EnumInfo`1[double],double):System.String (FullOpts) 19 (3.01 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[long](System.Enum+EnumInfo`1[long],long):System.String (FullOpts) 16 (0.80 % 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) 15 (2.39 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[int](System.Enum+EnumInfo`1[int],int):System.String (FullOpts) 15 (2.34 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[short](System.Enum+EnumInfo`1[short],short):System.String (FullOpts) 15 (2.33 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[ubyte](System.Enum+EnumInfo`1[ubyte],ubyte):System.String (FullOpts) 10 (0.63 % of base) : System.Console.dasm - System.TermInfo+DatabaseFactory:ReadDatabase(System.String,System.String):System.TermInfo+Database (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) 6 (1.16 % of base) : System.Private.CoreLib.dasm - System.String:ReplaceHelper(int,System.String,System.ReadOnlySpan`1[int]):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) 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 (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) 3 (0.35 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatFlagNames[double](System.Enum+EnumInfo`1[double],double,System.Span`1[ushort],byref,byref):ubyte (FullOpts) 3 (0.40 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatFlagNames[int](System.Enum+EnumInfo`1[int],int,System.Span`1[ushort],byref,byref):ubyte (FullOpts) 3 (0.40 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatFlagNames[long](System.Enum+EnumInfo`1[long],long,System.Span`1[ushort],byref,byref):ubyte (FullOpts) 3 (0.39 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatFlagNames[short](System.Enum+EnumInfo`1[short],short,System.Span`1[ushort],byref,byref):ubyte (FullOpts) 3 (0.39 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatFlagNames[ubyte](System.Enum+EnumInfo`1[ubyte],ubyte,System.Span`1[ushort],byref,byref):ubyte (FullOpts) 3 (1.53 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this (FullOpts) 3 (2.70 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendLiteral(System.String):this (FullOpts) 3 (2.26 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this (FullOpts) 3 (0.30 % of base) : System.Private.CoreLib.dasm - System.String:JoinCore[System.Numerics.Vector`1[float]](System.ReadOnlySpan`1[ushort],System.Collections.Generic.IEnumerable`1[System.Numerics.Vector`1[float]]):System.String (FullOpts) 3 (6.12 % of base) : System.Private.CoreLib.dasm - System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this (FullOpts) 3 (0.25 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:TryGetOrdinalCaseInsensitiveString(int,int,byref,byref,ubyte):ubyte:this (FullOpts) 2 (0.07 % of base) : System.Private.CoreLib.dasm - System.Reflection.AssemblyNameFormatter:ComputeDisplayName(System.String,System.Version,System.String,ubyte[],int,int,ubyte[]):System.String (FullOpts) 2 (0.07 % of base) : System.Reflection.Metadata.dasm - System.Reflection.AssemblyNameFormatter:ComputeDisplayName(System.String,System.Version,System.String,ubyte[],int,int,ubyte[]):System.String (FullOpts) 2 (0.43 % of base) : System.Text.Json.dasm - System.Text.Json.ThrowHelper:ThrowInvalidOperationException_SerializationDuplicateAttribute(System.Type,System.Reflection.MemberInfo) (FullOpts) 2 (0.14 % of base) : System.Web.HttpUtility.dasm - System.Web.Util.HttpEncoder:g__EncodeCore|12_0(System.ReadOnlySpan`1[ushort],int,ubyte):System.String (FullOpts) Top method improvements (bytes): -73 (-0.85 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:WriteElements(System.String,System.String,System.Xml.Serialization.ElementAccessor[],System.Xml.Serialization.TextAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,ubyte,ubyte):this (FullOpts) -48 (-0.68 % of base) : tieringtest.dasm - Program:Main(System.String[]):int (FullOpts) -47 (-0.88 % of base) : System.Net.Quic.dasm - Microsoft.Quic.QUIC_STREAM_EVENT:ToString():System.String:this (FullOpts) -44 (-0.60 % of base) : System.Net.Quic.dasm - Microsoft.Quic.QUIC_CONNECTION_EVENT:ToString():System.String:this (FullOpts) -28 (-0.69 % 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 (-1.16 % of base) : System.Net.Security.dasm - System.Net.Security.TlsFrameHelper+TlsFrameInfo:ToString():System.String:this (FullOpts) -23 (-2.39 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector4:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts) -23 (-0.37 % of base) : runincontext.dasm - TestRunner:DoWorkStress():int:this (FullOpts) -22 (-0.91 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionBase:TraceConnection(System.IO.Stream):this (FullOpts) -22 (-1.28 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionPool:CheckForHttp2ConnectionInjection():this (FullOpts) -22 (-1.28 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionPool:CheckForHttp3ConnectionInjection():this (FullOpts) -22 (-0.85 % of base) : System.Private.CoreLib.dasm - System.Reflection.RuntimeExceptionHandlingClause:ToString():System.String:this (FullOpts) -21 (-1.02 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+HttpContentReadStream+d__16:MoveNext():this (FullOpts) -21 (-0.29 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:WriteStructMethod(System.Xml.Serialization.StructMapping):this (FullOpts) -20 (-1.14 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionPool:CheckForHttp11ConnectionInjection():this (FullOpts) -18 (-0.88 % of base) : Microsoft.Extensions.DependencyInjection.Abstractions.dasm - Microsoft.Extensions.DependencyInjection.ServiceDescriptor: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) -16 (-1.75 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.ExpressionStringBuilder:VisitDebugInfo(System.Linq.Expressions.DebugInfoExpression):System.Linq.Expressions.Expression:this (FullOpts) -16 (-0.16 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+d__56:MoveNext():this (FullOpts) -15 (-1.65 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.DebugViewWriter:VisitDebugInfo(System.Linq.Expressions.DebugInfoExpression):System.Linq.Expressions.Expression:this (FullOpts) -15 (-0.67 % of base) : System.Net.Http.dasm - System.Net.Http.DiagnosticsHelper:GetRedactedUriString(System.Uri):System.String (FullOpts) -15 (-0.62 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+Http2Stream:OnStatus(int):this (FullOpts) -15 (-0.63 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket:.ctor(System.IO.Stream,ubyte,System.String,System.TimeSpan,System.TimeSpan):this (FullOpts) -14 (-0.44 % of base) : Microsoft.Extensions.DependencyInjection.Abstractions.dasm - Microsoft.Extensions.DependencyInjection.ServiceDescriptor:ToString():System.String:this (FullOpts) -14 (-0.94 % of base) : Microsoft.Extensions.Logging.dasm - Microsoft.Extensions.Logging.LoggerFilterRule:ToString():System.String:this (FullOpts) -14 (-0.53 % of base) : System.Net.Http.dasm - System.Net.Http.Http3RequestStream+d__45:MoveNext():this (FullOpts) -13 (-1.69 % of base) : Microsoft.Extensions.Configuration.FileExtensions.dasm - Microsoft.Extensions.Configuration.FileConfigurationProvider:ToString():System.String:this (FullOpts) -13 (-0.82 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.DebugViewWriter:VisitConstant(System.Linq.Expressions.ConstantExpression):System.Linq.Expressions.Expression:this (FullOpts) -13 (-1.90 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.__Canon]:ToString():System.String:this (FullOpts) -13 (-1.90 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.__Canon]:ToString():System.String:this (FullOpts) -13 (-13.68 % of base) : System.Text.Json.dasm - System.Text.Json.JsonCamelCaseNamingPolicy+<>c:b__0_0(System.Span`1[ushort],System.String):this (FullOpts) -12 (-1.78 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.MaskedTextProvider+CharDescriptor:ToString():System.String:this (FullOpts) -12 (-0.71 % 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) -12 (-1.97 % of base) : System.Net.Http.dasm - System.Net.CredentialCacheKey:ToString():System.String:this (FullOpts) -12 (-0.61 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+Http2Stream+d__74:MoveNext():this (FullOpts) -12 (-0.79 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionBase:IsUsable(long,System.TimeSpan,System.TimeSpan):ubyte:this (FullOpts) -12 (-1.95 % of base) : System.Private.CoreLib.dasm - System.Numerics.Quaternion:ToString():System.String:this (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) -12 (-0.40 % of base) : System.Private.CoreLib.dasm - System.TimeZoneInfo+StringSerializer:GetSerializedString(System.TimeZoneInfo):System.String (FullOpts) -11 (-0.75 % of base) : Microsoft.Extensions.Http.dasm - Microsoft.Extensions.Http.Logging.LogHelper:GetRedactedUriString(System.Uri):System.String (FullOpts) -11 (-0.66 % 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) -11 (-0.80 % of base) : System.Net.Http.dasm - System.Net.Http.DiagnosticsHandler+ResponseData:ToString():System.String:this (FullOpts) -11 (-1.14 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:SignalAvailableStreamsWaiter(ubyte):this (FullOpts) -11 (-0.95 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+Http2Stream:OnReset(System.Exception,System.Nullable`1[int],ubyte):this (FullOpts) -11 (-2.08 % of base) : System.Net.Http.dasm - System.Net.Http.HttpRuleParser:IsValidHostName(System.ReadOnlySpan`1[ushort]):ubyte (FullOpts) -11 (-0.13 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+d__61`1[double]:MoveNext():this (FullOpts) -11 (-0.13 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+d__61`1[int]:MoveNext():this (FullOpts) -11 (-0.13 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+d__61`1[long]:MoveNext():this (FullOpts) -11 (-0.13 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+d__61`1[short]:MoveNext():this (FullOpts) -11 (-0.12 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+d__61`1[System.Nullable`1[int]]:MoveNext():this (FullOpts) -11 (-0.12 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+d__61`1[System.Numerics.Vector`1[float]]:MoveNext():this (FullOpts) -11 (-0.13 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+d__61`1[ubyte]:MoveNext():this (FullOpts) -11 (-5.39 % 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) -11 (-1.22 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:WriteAttribute(System.String,System.Xml.Serialization.AttributeAccessor,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 (-1.58 % of base) : System.Net.Security.dasm - System.Net.SecurityStatusPal:ToString():System.String:this (FullOpts) -10 (-1.29 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector3:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts) -10 (-1.56 % of base) : System.Private.CoreLib.dasm - System.OperatingSystem:get_VersionString():System.String:this (FullOpts) -10 (-1.55 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.SequencePoint:GetDebuggerDisplay():System.String:this (FullOpts) -10 (-2.12 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:get_DebuggerDisplay():System.String:this (FullOpts) -10 (-1.48 % of base) : System.Private.DataContractSerialization.dasm - System.Xml.XmlBaseWriter:GeneratePrefix(System.String,System.Xml.XmlDictionaryString):System.String:this (FullOpts) -10 (-0.53 % of base) : System.Private.Xml.dasm - System.Xml.XmlNode+DebuggerDisplayXmlNodeProxy:ToString():System.String:this (FullOpts) -10 (-0.88 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILConstructInfo:ToString():System.String:this (FullOpts) -9 (-0.82 % of base) : Microsoft.Extensions.Caching.Memory.dasm - Microsoft.Extensions.Caching.Memory.MemoryCache:OvercapacityCompaction():this (FullOpts) -9 (-0.86 % of base) : Microsoft.Extensions.Http.dasm - Microsoft.Extensions.DependencyInjection.HttpClientBuilderExtensions:ReserveClient(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Type,System.String,ubyte) (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 (-1.74 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventCounter:ToString():System.String:this (FullOpts) -9 (-1.27 % of base) : System.Drawing.Primitives.dasm - System.Drawing.Rectangle:ToString():System.String:this (FullOpts) -9 (-1.26 % of base) : System.Drawing.Primitives.dasm - System.Drawing.RectangleF:ToString():System.String:this (FullOpts) -9 (-1.13 % of base) : System.Private.CoreLib.dasm - System.IO.Path:Join(System.ReadOnlySpan`1[System.String]):System.String (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.78 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+RttEstimator:OnPingAckReceived(long,System.Net.Http.Http2Connection):this (FullOpts) -9 (-0.09 % of base) : System.Net.WebSockets.dasm - System.Net.WebSockets.ManagedWebSocket+d__61`1[System.__Canon]:MoveNext():this (FullOpts) -9 (-0.66 % of base) : System.Private.CoreLib.dasm - System.SR:InternalGetResourceString(System.String):System.String (FullOpts) -9 (-14.29 % of base) : System.Private.CoreLib.dasm - System.String:CopyTo(System.Span`1[ushort]):this (FullOpts) -8 (-1.49 % of base) : Microsoft.Extensions.DependencyInjection.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier: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.42 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlBinary:ToString():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.63 % of base) : System.Drawing.Primitives.dasm - System.Drawing.Point:ToString():System.String:this (FullOpts) -8 (-2.80 % of base) : System.Private.CoreLib.dasm - System.Enum:WriteMultipleFoundFlagsNames(System.String[],System.ReadOnlySpan`1[int],System.Span`1[ushort]) (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 (-0.46 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:Abort(System.Exception):this (FullOpts) -8 (-0.14 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+d__62:MoveNext():this (FullOpts) Top method regressions (percentages): 3 (6.12 % of base) : System.Private.CoreLib.dasm - System.String:TryCopyTo(System.Span`1[ushort]):ubyte:this (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) 23 (3.22 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[double](System.Enum+EnumInfo`1[double],double):System.String (FullOpts) 19 (3.01 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[long](System.Enum+EnumInfo`1[long],long):System.String (FullOpts) 3 (2.70 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendLiteral(System.String):this (FullOpts) 15 (2.39 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[int](System.Enum+EnumInfo`1[int],int):System.String (FullOpts) 15 (2.34 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[short](System.Enum+EnumInfo`1[short],short):System.String (FullOpts) 15 (2.33 % of base) : System.Private.CoreLib.dasm - System.Enum:FormatFlagNames[ubyte](System.Enum+EnumInfo`1[ubyte],ubyte):System.String (FullOpts) 3 (2.26 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):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 (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) 3 (1.53 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormattedSlow(System.String):this (FullOpts) 6 (1.16 % of base) : System.Private.CoreLib.dasm - System.String:ReplaceHelper(int,System.String,System.ReadOnlySpan`1[int]):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) 16 (0.80 % 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) 4 (0.77 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.__Canon](System.__Canon):this (FullOpts) 4 (0.74 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.__Canon](System.__Canon,System.String):this (FullOpts) 34 (0.68 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderCodeGen:GenerateEncodedMembersElement(System.Xml.Serialization.XmlMembersMapping):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) 10 (0.63 % of base) : System.Console.dasm - System.TermInfo+DatabaseFactory:ReadDatabase(System.String,System.String):System.TermInfo+Database (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) 2 (0.43 % of base) : System.Text.Json.dasm - System.Text.Json.ThrowHelper:ThrowInvalidOperationException_SerializationDuplicateAttribute(System.Type,System.Reflection.MemberInfo) (FullOpts) 3 (0.40 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatFlagNames[int](System.Enum+EnumInfo`1[int],int,System.Span`1[ushort],byref,byref):ubyte (FullOpts) 3 (0.40 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatFlagNames[long](System.Enum+EnumInfo`1[long],long,System.Span`1[ushort],byref,byref):ubyte (FullOpts) 3 (0.39 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatFlagNames[short](System.Enum+EnumInfo`1[short],short,System.Span`1[ushort],byref,byref):ubyte (FullOpts) 3 (0.39 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatFlagNames[ubyte](System.Enum+EnumInfo`1[ubyte],ubyte,System.Span`1[ushort],byref,byref):ubyte (FullOpts) 3 (0.35 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatFlagNames[double](System.Enum+EnumInfo`1[double],double,System.Span`1[ushort],byref,byref):ubyte (FullOpts) 3 (0.30 % of base) : System.Private.CoreLib.dasm - System.String:JoinCore[System.Numerics.Vector`1[float]](System.ReadOnlySpan`1[ushort],System.Collections.Generic.IEnumerable`1[System.Numerics.Vector`1[float]]):System.String (FullOpts) 3 (0.25 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:TryGetOrdinalCaseInsensitiveString(int,int,byref,byref,ubyte):ubyte:this (FullOpts) 2 (0.14 % of base) : System.Web.HttpUtility.dasm - System.Web.Util.HttpEncoder:g__EncodeCore|12_0(System.ReadOnlySpan`1[ushort],int,ubyte):System.String (FullOpts) 2 (0.07 % of base) : System.Reflection.Metadata.dasm - System.Reflection.AssemblyNameFormatter:ComputeDisplayName(System.String,System.Version,System.String,ubyte[],int,int,ubyte[]):System.String (FullOpts) 2 (0.07 % of base) : System.Private.CoreLib.dasm - System.Reflection.AssemblyNameFormatter:ComputeDisplayName(System.String,System.Version,System.String,ubyte[],int,int,ubyte[]):System.String (FullOpts) Top method improvements (percentages): -9 (-14.29 % of base) : System.Private.CoreLib.dasm - System.String:CopyTo(System.Span`1[ushort]):this (FullOpts) -13 (-13.68 % of base) : System.Text.Json.dasm - System.Text.Json.JsonCamelCaseNamingPolicy+<>c:b__0_0(System.Span`1[ushort],System.String):this (FullOpts) -11 (-5.39 % 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) -8 (-4.21 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.CodeIdentifier+<>c:b__3_0(System.Span`1[ushort],System.String):this (FullOpts) -8 (-4.21 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.CodeIdentifier+<>c:b__2_0(System.Span`1[ushort],System.String):this (FullOpts) -25 (-3.00 % of base) : System.Security.Claims.dasm - System.Security.Claims.ClaimsPrincipal:DebuggerToString():System.String:this (FullOpts) -8 (-2.80 % of base) : System.Private.CoreLib.dasm - System.Enum:WriteMultipleFoundFlagsNames(System.String[],System.ReadOnlySpan`1[int],System.Span`1[ushort]) (FullOpts) -12 (-2.77 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonWriter:get_DebuggerDisplay():System.String:this (FullOpts) -7 (-2.68 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.ActivityTracker+ActivityInfo:Path(System.Diagnostics.Tracing.ActivityTracker+ActivityInfo):System.String (FullOpts) -8 (-2.42 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlBinary:ToString():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) -23 (-2.39 % of base) : System.Private.CoreLib.dasm - System.Numerics.Vector4:ToString(System.String,System.IFormatProvider):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) -4 (-2.14 % of base) : System.Web.HttpUtility.dasm - System.Web.Util.Utf16StringValidator+<>c:b__1_0(System.Span`1[ushort],System.ValueTuple`2[System.String,int]):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) -11 (-2.08 % of base) : System.Net.Http.dasm - System.Net.Http.HttpRuleParser:IsValidHostName(System.ReadOnlySpan`1[ushort]):ubyte (FullOpts) -7 (-2.02 % of base) : System.Text.Json.dasm - System.Text.Json.ThrowHelper:GetPrintableString(ubyte):System.String (FullOpts) -12 (-1.97 % of base) : System.Net.Http.dasm - System.Net.CredentialCacheKey:ToString():System.String:this (FullOpts) -7 (-1.97 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSchemaExporter:ExportAnonymousPrimitiveMapping(System.Xml.Serialization.PrimitiveMapping):System.Xml.Schema.XmlSchemaSimpleType:this (FullOpts) -12 (-1.95 % of base) : System.Private.CoreLib.dasm - System.Numerics.Quaternion:ToString():System.String:this (FullOpts) -8 (-1.94 % 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.92 % of base) : System.Private.CoreLib.dasm - System.Reflection.MetadataToken:ToString():System.String:this (FullOpts) -6 (-1.92 % of base) : System.Net.Primitives.dasm - System.Net.DnsEndPoint:ToString():System.String:this (FullOpts) -13 (-1.90 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.__Canon]:ToString():System.String:this (FullOpts) -13 (-1.90 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.__Canon]:ToString():System.String:this (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) -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) -4 (-1.73 % 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) -6 (-1.71 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlRootAttribute:get_Key():System.String:this (FullOpts) -13 (-1.69 % of base) : Microsoft.Extensions.Configuration.FileExtensions.dasm - Microsoft.Extensions.Configuration.FileConfigurationProvider:ToString():System.String:this (FullOpts) -5 (-1.69 % of base) : System.Net.Primitives.dasm - System.Net.IPNetwork:ToString():System.String:this (FullOpts) -7 (-1.69 % of base) : System.Private.CoreLib.dasm - System.Numerics.Plane:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.Memory`1[double]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.Memory`1[int]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.Memory`1[long]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.Memory`1[short]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.Memory`1[System.Nullable`1[int]]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.Memory`1[System.Numerics.Vector`1[float]]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.Memory`1[ubyte]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.ReadOnlyMemory`1[double]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.ReadOnlyMemory`1[int]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.ReadOnlyMemory`1[long]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.ReadOnlyMemory`1[short]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.ReadOnlyMemory`1[System.Nullable`1[int]]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.ReadOnlyMemory`1[System.Numerics.Vector`1[float]]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.ReadOnlyMemory`1[ubyte]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.ReadOnlySpan`1[double]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.ReadOnlySpan`1[int]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.ReadOnlySpan`1[long]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.ReadOnlySpan`1[short]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.ReadOnlySpan`1[System.Nullable`1[int]]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.ReadOnlySpan`1[System.Numerics.Vector`1[float]]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.ReadOnlySpan`1[ubyte]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.Span`1[double]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.Span`1[int]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.Span`1[long]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.Span`1[short]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.Span`1[System.Nullable`1[int]]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.Span`1[System.Numerics.Vector`1[float]]:ToString():System.String:this (FullOpts) -7 (-1.68 % of base) : System.Private.CoreLib.dasm - System.Span`1[ubyte]:ToString():System.String:this (FullOpts) -6 (-1.67 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.Design.CommandID:ToString():System.String:this (FullOpts) -15 (-1.65 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.DebugViewWriter:VisitDebugInfo(System.Linq.Expressions.DebugInfoExpression):System.Linq.Expressions.Expression:this (FullOpts) -7 (-1.65 % of base) : System.Private.CoreLib.dasm - System.Runtime.Loader.AssemblyLoadContext:ToString():System.String:this (FullOpts) -8 (-1.63 % of base) : System.Drawing.Primitives.dasm - System.Drawing.Point:ToString():System.String:this (FullOpts) -8 (-1.62 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.ReflectionAwareCodeGen:GetStringForEnumLongValue(System.String,ubyte):System.String (FullOpts) -6 (-1.61 % of base) : System.Net.Primitives.dasm - System.Net.CredentialHostKey:ToString():System.String:this (FullOpts) -5 (-1.61 % of base) : System.Net.Http.dasm - System.Net.Http.HttpRequestOptions:DebuggerToString():System.String:this (FullOpts) -10 (-1.58 % of base) : System.Net.Security.dasm - System.Net.SecurityStatusPal:ToString():System.String:this (FullOpts) -10 (-1.56 % of base) : System.Private.CoreLib.dasm - System.OperatingSystem:get_VersionString():System.String:this (FullOpts) -10 (-1.55 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.SequencePoint:GetDebuggerDisplay():System.String:this (FullOpts) -6 (-1.53 % of base) : System.Net.Security.dasm - System.Net.Security.TlsFrameHeader:ToString():System.String:this (FullOpts) -7 (-1.52 % of base) : Microsoft.Extensions.Configuration.dasm - Microsoft.Extensions.Configuration.ConfigurationSectionDebugView:ToString():System.String:this (FullOpts) 789 total methods with Code Size differences (750 improved, 39 regressed), 231751 unchanged. -------------------------------------------------------------------------------- ```

Artifacts:

xtqqczze commented 1 month ago

https://github.com/xtqqczze/dotnet-runtime/commit/7242709dacdd9abbe34b9b4019167f8dcda373ea

xtqqczze commented 1 month ago

UIntCastLengthCheck

MihuBot commented 1 month ago

Top method regressions

23 (3.22 % of base) - System.Enum:FormatFlagNames[double](System.Enum+EnumInfo`1[double],double):System.String ```diff ; Assembly listing for method System.Enum:FormatFlagNames[double](System.Enum+EnumInfo`1[double],double):System.String (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 24 single block inlinees; 11 inlinees without PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T21] ( 4, 4 ) ref -> rdi class-hnd single-def ; V01 arg1 [V01,T51] ( 6, 8 ) double -> mm0 single-def ; V02 loc0 [V02,T08] ( 11, 16 ) ref -> rbx class-hnd exact single-def ; V03 loc1 [V03,T16] ( 7, 11 ) ref -> r15 class-hnd single-def ; V04 loc2 [V04,T25] ( 6, 4.50) ref -> r13 class-hnd ; V05 loc3 [V05,T31] ( 6, 3 ) int -> rdi ld-addr-op ;* V06 loc4 [V06 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op ; V07 loc5 [V07,T23] ( 4, 5 ) int -> rax ld-addr-op ; V08 loc6 [V08,T17] ( 8, 10 ) int -> [rbp-0x2C] ld-addr-op ;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V10 tmp1 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V11 tmp2 [V11 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" ;* V12 tmp3 [V12 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V13 tmp4 [V13,T32] ( 5, 3 ) ref -> r13 class-hnd "Inline return value spill temp" ; V14 tmp5 [V14,T30] ( 7, 3.25) int -> rdi "Inline stloc first use temp" ;* V15 tmp6 [V15 ] ( 0, 0 ) double -> zero-ref "impAppendStmt" ;* V16 tmp7 [V16 ] ( 0, 0 ) double -> zero-ref "Inlining Arg" ;* V17 tmp8 [V17 ] ( 0, 0 ) double -> zero-ref "Inlining Arg" ; V18 tmp9 [V18,T35] ( 2, 2 ) long -> r12 "Inlining Arg" ; V19 tmp10 [V19,T36] ( 2, 2 ) int -> rdi "Inlining Arg" ; V20 tmp11 [V20,T49] ( 6, 22 ) double -> mm0 "Inlining Arg" ; V21 tmp12 [V21,T50] ( 5, 16 ) double -> mm1 "Inline stloc first use temp" ;* V22 tmp13 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V23 tmp14 [V23 ] ( 0, 0 ) int -> zero-ref "Span.get_Item index" ;* V24 tmp15 [V24 ] ( 0, 0 ) double -> zero-ref "Inlining Arg" ;* V25 tmp16 [V25 ] ( 0, 0 ) double -> zero-ref "Inlining Arg" ;* V26 tmp17 [V26 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V27 tmp18 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V28 tmp19 [V28 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V29 tmp20 [V29 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V30 tmp21 [V30 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V31 tmp22 [V31 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V32 tmp23 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V33 tmp24 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V34 tmp25 [V34 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg" ;* V35 tmp26 [V35 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ; V36 tmp27 [V36,T34] ( 2, 2 ) byref -> r15 single-def "Inlining Arg" ; V37 tmp28 [V37,T37] ( 2, 2 ) int -> r14 "Inlining Arg" ;* V38 tmp29 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V39 tmp30 [V39,T42] ( 2, 1 ) int -> rdx "Inline stloc first use temp" ; V40 tmp31 [V40,T14] ( 3, 12 ) ref -> rsi class-hnd exact "Inline stloc first use temp" ;* V41 tmp32 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V42 tmp33 [V42 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" ;* V43 tmp34 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V44 tmp35 [V44 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V45 tmp36 [V45 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V46 tmp37 [V46 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -; V47 tmp38 [V47,T03] ( 3, 24 ) int -> r8 "Inlining Arg" +; V47 tmp38 [V47,T03] ( 3, 24 ) int -> rdx "Inlining Arg" ;* V48 tmp39 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V49 tmp40 [V49,T10] ( 2, 16 ) byref -> r15 "Inlining Arg" ; V50 tmp41 [V50,T04] ( 2, 16 ) int -> r14 "Inlining Arg" ;* V51 tmp42 [V51 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V52 tmp43 [V52,T11] ( 2, 16 ) byref -> rax "Inlining Arg" +; V52 tmp43 [V52,T11] ( 2, 16 ) byref -> rdx "Inlining Arg" ; V53 tmp44 [V53,T12] ( 2, 16 ) int -> r14 "Inlining Arg" -; V54 tmp45 [V54,T26] ( 4, 4 ) ref -> rsi class-hnd exact single-def "Inlining Arg" -;* V55 tmp46 [V55 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" +;* V54 tmp45 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" +; V55 tmp46 [V55,T26] ( 4, 4 ) ref -> rsi class-hnd exact single-def "Inlining Arg" ;* V56 tmp47 [V56 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V57 tmp48 [V57 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V58 tmp49 [V58 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ; V59 tmp50 [V59,T29] ( 3, 3 ) byref -> r12 "field V06._reference (fldOffset=0x0)" P-INDEP ;* V60 tmp51 [V60,T45] ( 0, 0 ) int -> zero-ref "field V06._length (fldOffset=0x8)" P-INDEP ; V61 tmp52 [V61,T38] ( 2, 1 ) byref -> r12 single-def "field V10._reference (fldOffset=0x0)" P-INDEP ;* V62 tmp53 [V62,T46] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP ;* V63 tmp54 [V63 ] ( 0, 0 ) byref -> zero-ref single-def "field V11._reference (fldOffset=0x0)" P-INDEP ;* V64 tmp55 [V64 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP ; V65 tmp56 [V65,T39] ( 2, 1 ) byref -> r15 single-def "field V12._reference (fldOffset=0x0)" P-INDEP ; V66 tmp57 [V66,T43] ( 2, 1 ) int -> r14 "field V12._length (fldOffset=0x8)" P-INDEP ;* V67 tmp58 [V67,T44] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP ;* V68 tmp59 [V68,T47] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP ; V69 tmp60 [V69,T40] ( 2, 1 ) byref -> r12 single-def "field V27._reference (fldOffset=0x0)" P-INDEP ;* V70 tmp61 [V70 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP ;* V71 tmp62 [V71 ] ( 0, 0 ) byref -> zero-ref single-def "field V32._reference (fldOffset=0x0)" P-INDEP ;* V72 tmp63 [V72 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP ; V73 tmp64 [V73,T41] ( 2, 1 ) byref -> r12 single-def "field V33._reference (fldOffset=0x0)" P-INDEP ;* V74 tmp65 [V74,T48] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP ; V75 tmp66 [V75,T24] ( 3, 5 ) byref -> r12 single-def "field V38._reference (fldOffset=0x0)" P-INDEP ; V76 tmp67 [V76,T22] ( 4, 5.50) int -> [rbp-0x30] spill-single-def "field V38._length (fldOffset=0x8)" P-INDEP ; V77 tmp68 [V77,T00] ( 9, 29 ) byref -> r15 "field V41._reference (fldOffset=0x0)" P-INDEP ; V78 tmp69 [V78,T01] ( 9, 29 ) int -> r14 "field V41._length (fldOffset=0x8)" P-INDEP ;* V79 tmp70 [V79 ] ( 0, 0 ) byref -> zero-ref "field V42._reference (fldOffset=0x0)" P-INDEP ;* V80 tmp71 [V80 ] ( 0, 0 ) int -> zero-ref "field V42._length (fldOffset=0x8)" P-INDEP ;* V81 tmp72 [V81 ] ( 0, 0 ) byref -> zero-ref "field V43._reference (fldOffset=0x0)" P-INDEP ;* V82 tmp73 [V82 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP ; V83 tmp74 [V83,T18] ( 2, 8 ) byref -> r15 "field V48._reference (fldOffset=0x0)" P-INDEP ;* V84 tmp75 [V84,T28] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-INDEP -; V85 tmp76 [V85,T19] ( 2, 8 ) byref -> rax "field V51._reference (fldOffset=0x0)" P-INDEP +; V85 tmp76 [V85,T19] ( 2, 8 ) byref -> rdx "field V51._reference (fldOffset=0x0)" P-INDEP ; V86 tmp77 [V86,T20] ( 2, 8 ) int -> r14 "field V51._length (fldOffset=0x8)" P-INDEP -;* V87 tmp78 [V87 ] ( 0, 0 ) byref -> zero-ref single-def "field V55._reference (fldOffset=0x0)" P-INDEP -;* V88 tmp79 [V88 ] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP +;* V87 tmp78 [V87 ] ( 0, 0 ) byref -> zero-ref single-def "field V54._reference (fldOffset=0x0)" P-INDEP +;* V88 tmp79 [V88 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP ; V89 tmp80 [V89,T05] ( 3, 24 ) int -> rdx "index expr" -; V90 tmp81 [V90,T33] ( 3, 3 ) int -> rax "index expr" +; V90 tmp81 [V90,T33] ( 3, 3 ) int -> rdx "index expr" ; V91 GsCookie [V91 ] ( 1, 1 ) long -> [rbp-0x50] do-not-enreg[X] addr-exposed "GSSecurityCookie" ; V92 cse0 [V92,T15] ( 3, 12 ) long -> [rbp-0x38] spill-single-def "CSE #12: moderate" ; V93 cse1 [V93,T13] ( 8, 14.50) int -> r14 multi-def "CSE #01: moderate" ; V94 cse2 [V94,T09] ( 4, 16 ) int -> [rbp-0x3C] spill-single-def "CSE #10: moderate" ; V95 cse3 [V95,T27] ( 2, 4 ) long -> rdi "CSE #07: moderate" ; V96 rat0 [V96,T06] ( 9, 21.75) long -> rax "Widened IV V14" ; V97 rat1 [V97,T02] ( 9, 26.50) long -> rdx "Widened IV V19" ; V98 rat2 [V98,T07] ( 7, 21 ) long -> [rbp-0x48] "Widened IV V39" ; ; Lcl frame size = 40 G_M41568_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 40 lea rbp, [rsp+0x50] mov qword ptr [rbp-0x50], 0xD1FFAB1E ;; size=27 bbWeight=1 PerfScore 7.75 G_M41568_IG02: mov rbx, gword ptr [rdi+0x10] mov r15, gword ptr [rdi+0x08] vxorps xmm1, xmm1, xmm1 vucomisd xmm0, xmm1 jp SHORT G_M41568_IG03 je SHORT G_M41568_IG09 ;; size=20 bbWeight=1 PerfScore 8.33 G_M41568_IG03: mov r14d, dword ptr [r15+0x08] lea edi, [r14-0x01] mov eax, edi cmp r14d, eax jbe SHORT G_M41568_IG07 align [2 bytes for IG04] ;; size=17 bbWeight=0.50 PerfScore 2.12 G_M41568_IG04: cmp eax, r14d - jae G_M41568_IG28 + jae G_M41568_IG29 vucomisd xmm0, qword ptr [r15+8*rax+0x10] jae SHORT G_M41568_IG06 dec eax cmp r14d, eax ja SHORT G_M41568_IG04 ;; size=25 bbWeight=4 PerfScore 35.00 G_M41568_IG05: mov edi, eax jmp SHORT G_M41568_IG07 align [3 bytes for IG13] ;; size=7 bbWeight=0.25 PerfScore 0.56 G_M41568_IG06: mov edi, eax mov eax, edi vmovsd xmm1, qword ptr [r15+8*rax+0x10] vucomisd xmm1, xmm0 jp SHORT G_M41568_IG07 je SHORT G_M41568_IG08 ;; size=19 bbWeight=0.50 PerfScore 4.25 G_M41568_IG07: xor r13, r13 jmp SHORT G_M41568_IG11 ;; size=5 bbWeight=0.50 PerfScore 1.12 G_M41568_IG08: cmp edi, dword ptr [rbx+0x08] - jae G_M41568_IG28 + jae G_M41568_IG29 mov eax, edi mov r13, gword ptr [rbx+8*rax+0x10] jmp SHORT G_M41568_IG11 ;; size=18 bbWeight=0.50 PerfScore 4.12 G_M41568_IG09: xor edi, edi mov r14d, dword ptr [r15+0x08] test r14d, r14d je SHORT G_M41568_IG10 vmovsd xmm1, qword ptr [r15+0x10] vxorps xmm2, xmm2, xmm2 vucomisd xmm1, xmm2 jp SHORT G_M41568_IG10 jne SHORT G_M41568_IG10 cmp dword ptr [rbx+0x08], 0 - jbe G_M41568_IG28 + jbe G_M41568_IG29 mov r13, gword ptr [rbx+0x10] jmp SHORT G_M41568_IG11 ;; size=45 bbWeight=0.50 PerfScore 9.92 G_M41568_IG10: mov r13, 0xD1FFAB1E ; '0' ;; size=10 bbWeight=0.50 PerfScore 0.12 G_M41568_IG11: test r13, r13 - jne G_M41568_IG20 + jne G_M41568_IG23 ;; size=9 bbWeight=1 PerfScore 1.25 G_M41568_IG12: test dword ptr [rsp], esp sub rsp, 256 lea r12, [rsp] xor eax, eax xor ecx, ecx mov edx, edi jmp SHORT G_M41568_IG14 ;; size=22 bbWeight=0.50 PerfScore 3.25 G_M41568_IG13: dec edx ;; size=2 bbWeight=4 PerfScore 1.00 G_M41568_IG14: cmp r14d, edx jbe G_M41568_IG18 vmovsd xmm1, qword ptr [r15+8*rdx+0x10] test edx, edx jne SHORT G_M41568_IG16 ;; size=20 bbWeight=4 PerfScore 26.00 G_M41568_IG15: vxorps xmm2, xmm2, xmm2 vucomisd xmm1, xmm2 jp SHORT G_M41568_IG16 je SHORT G_M41568_IG18 ;; size=12 bbWeight=2 PerfScore 8.67 G_M41568_IG16: vmovd rdi, xmm0 vmovd rsi, xmm1 and rdi, rsi vmovd xmm2, rdi vucomisd xmm2, xmm1 jp SHORT G_M41568_IG13 jne SHORT G_M41568_IG13 ;; size=26 bbWeight=4 PerfScore 41.00 G_M41568_IG17: vmovd rdi, xmm1 not rdi vmovd rsi, xmm0 and rdi, rsi vmovd xmm0, rdi cmp ecx, 64 - jae G_M41568_IG28 + jae G_M41568_IG29 mov edi, ecx mov dword ptr [r12+4*rdi], edx inc ecx cmp edx, dword ptr [rbx+0x08] - jae G_M41568_IG28 + jae G_M41568_IG29 mov rdi, gword ptr [rbx+8*rdx+0x10] add eax, dword ptr [rdi+0x08] - jo G_M41568_IG29 + jo G_M41568_IG30 vxorps xmm1, xmm1, xmm1 vucomisd xmm0, xmm1 jp G_M41568_IG13 jne G_M41568_IG13 ;; size=81 bbWeight=2 PerfScore 47.17 G_M41568_IG18: vxorps xmm1, xmm1, xmm1 vucomisd xmm0, xmm1 - jp SHORT G_M41568_IG20 - jne SHORT G_M41568_IG20 + jp G_M41568_IG23 + jne G_M41568_IG23 cmp ecx, 64 - ja G_M41568_IG27 + ja G_M41568_IG28 mov dword ptr [rbp-0x2C], ecx lea edi, [rcx+rcx] add edi, -2 add edi, eax - jo G_M41568_IG29 + jo G_M41568_IG30 call System.String:FastAllocateString(int):System.String mov r13, rax lea r15, bword ptr [r13+0x0C] mov r14d, dword ptr [r13+0x08] mov eax, dword ptr [rbp-0x2C] mov dword ptr [rbp-0x30], eax lea edx, [rax-0x01] mov ecx, edx test ecx, ecx - jne SHORT G_M41568_IG25 - ;; size=69 bbWeight=0.50 PerfScore 8.17 + jne SHORT G_M41568_IG21 + ;; size=77 bbWeight=0.50 PerfScore 8.17 G_M41568_IG19: cmp dword ptr [rbp-0x30], 0 - jbe G_M41568_IG28 - mov eax, dword ptr [r12] - cmp eax, dword ptr [rbx+0x08] - jae G_M41568_IG28 - mov rsi, gword ptr [rbx+8*rax+0x10] + jbe G_M41568_IG29 + mov edx, dword ptr [r12] + cmp edx, dword ptr [rbx+0x08] + jae G_M41568_IG29 + mov rsi, gword ptr [rbx+8*rdx+0x10] cmp dword ptr [rsi+0x08], r14d - jg G_M41568_IG26 + jle G_M41568_IG22 + jmp G_M41568_IG27 + ;; size=43 bbWeight=0.50 PerfScore 8.50 +G_M41568_IG20: + mov eax, dword ptr [rbp-0x30] + ;; size=3 bbWeight=2 PerfScore 2.00 +G_M41568_IG21: + cmp ecx, eax + jae G_M41568_IG29 + mov qword ptr [rbp-0x48], rcx + mov edx, dword ptr [r12+4*rcx] + cmp edx, dword ptr [rbx+0x08] + jae G_M41568_IG29 + mov rsi, gword ptr [rbx+8*rdx+0x10] + mov r8d, dword ptr [rsi+0x08] + mov dword ptr [rbp-0x3C], r8d + cmp r8d, r14d + jg G_M41568_IG27 + mov r9d, r8d + add r9, r9 + mov qword ptr [rbp-0x38], r9 + mov rdx, r9 + add rsi, 12 + mov rdi, r15 + mov r10, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong) + call [r10]System.SpanHelpers:Memmove(byref,byref,ulong) + mov edx, dword ptr [rbp-0x3C] + cmp edx, r14d + ja G_M41568_IG28 + mov rsi, qword ptr [rbp-0x38] + add r15, rsi + sub r14d, edx + cmp r14d, 2 + jb SHORT G_M41568_IG28 + lea rdx, bword ptr [r15+0x04] + add r14d, -2 + mov word ptr [r15], 44 + mov word ptr [r15+0x02], 32 + mov r15, rdx + mov rdx, qword ptr [rbp-0x48] + dec edx + mov rcx, rdx + jne G_M41568_IG20 + jmp G_M41568_IG19 + ;; size=152 bbWeight=4 PerfScore 130.00 +G_M41568_IG22: mov edx, dword ptr [rsi+0x08] add rdx, rdx add rsi, 12 mov rdi, r15 mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong) call [rax]System.SpanHelpers:Memmove(byref,byref,ulong) - ;; size=63 bbWeight=0.50 PerfScore 10.50 -G_M41568_IG20: + ;; size=25 bbWeight=0.50 PerfScore 3.00 +G_M41568_IG23: mov rax, r13 ;; size=3 bbWeight=1 PerfScore 0.25 -G_M41568_IG21: +G_M41568_IG24: cmp qword ptr [rbp-0x50], 0xD1FFAB1E - je SHORT G_M41568_IG22 + je SHORT G_M41568_IG25 call CORINFO_HELP_FAIL_FAST ;; size=15 bbWeight=1 PerfScore 4.00 -G_M41568_IG22: +G_M41568_IG25: nop ;; size=1 bbWeight=1 PerfScore 0.25 -G_M41568_IG23: +G_M41568_IG26: lea rsp, [rbp-0x28] pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.50 -G_M41568_IG24: - mov eax, dword ptr [rbp-0x30] - ;; size=3 bbWeight=2 PerfScore 2.00 -G_M41568_IG25: - cmp ecx, eax - jae G_M41568_IG28 - mov qword ptr [rbp-0x48], rcx - mov edx, dword ptr [r12+4*rcx] - cmp edx, dword ptr [rbx+0x08] - jae G_M41568_IG28 - mov rsi, gword ptr [rbx+8*rdx+0x10] - mov r8d, dword ptr [rsi+0x08] - mov dword ptr [rbp-0x3C], r8d - cmp r8d, r14d - jg SHORT G_M41568_IG26 - mov r9d, r8d - add r9, r9 - mov qword ptr [rbp-0x38], r9 - mov rdx, r9 - add rsi, 12 - mov rdi, r15 - mov r10, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong) - call [r10]System.SpanHelpers:Memmove(byref,byref,ulong) - mov r8d, dword ptr [rbp-0x3C] - cmp r8d, r14d - ja SHORT G_M41568_IG27 - mov r9, qword ptr [rbp-0x38] - add r15, r9 - sub r14d, r8d - cmp r14d, 2 - jb SHORT G_M41568_IG27 - lea rax, bword ptr [r15+0x04] - add r14d, -2 - mov word ptr [r15], 44 - mov word ptr [r15+0x02], 32 - mov r15, rax - mov rcx, qword ptr [rbp-0x48] - dec ecx - jne G_M41568_IG24 - jmp G_M41568_IG19 - ;; size=142 bbWeight=4 PerfScore 129.00 -G_M41568_IG26: +G_M41568_IG27: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort() call [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -G_M41568_IG27: +G_M41568_IG28: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException() call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -G_M41568_IG28: +G_M41568_IG29: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 -G_M41568_IG29: +G_M41568_IG30: call CORINFO_HELP_OVERFLOW int3 ;; size=6 bbWeight=0 PerfScore 0.00 -; Total bytes of code 714, prolog size 27, PerfScore 360.31, instruction count 198, allocated bytes for code 714 (MethodHash=7b8d5d9f) for method System.Enum:FormatFlagNames[double](System.Enum+EnumInfo`1[double],double):System.String (FullOpts) +; Total bytes of code 737, prolog size 27, PerfScore 362.31, instruction count 200, allocated bytes for code 737 (MethodHash=7b8d5d9f) for method System.Enum:FormatFlagNames[double](System.Enum+EnumInfo`1[double],double):System.String (FullOpts) ; ============================================================ ```
19 (3.01 % of base) - System.Enum:FormatFlagNames[long](System.Enum+EnumInfo`1[long],long):System.String ```diff ; Assembly listing for method System.Enum:FormatFlagNames[long](System.Enum+EnumInfo`1[long],long):System.String (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 24 single block inlinees; 11 inlinees without PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T24] ( 4, 4 ) ref -> rdi class-hnd single-def ; V01 arg1 [V01,T20] ( 6, 8 ) long -> rsi single-def ; V02 loc0 [V02,T09] ( 11, 16 ) ref -> rbx class-hnd exact single-def ; V03 loc1 [V03,T18] ( 7, 11 ) ref -> r15 class-hnd single-def ; V04 loc2 [V04,T28] ( 6, 4.50) ref -> r13 class-hnd ; V05 loc3 [V05,T33] ( 6, 3 ) int -> rdi ld-addr-op ;* V06 loc4 [V06 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op ; V07 loc5 [V07,T26] ( 4, 5 ) int -> rax ld-addr-op ; V08 loc6 [V08,T19] ( 8, 10 ) int -> [rbp-0x2C] ld-addr-op ;# V09 OutArgs [V09 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V10 tmp1 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V11 tmp2 [V11 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" ;* V12 tmp3 [V12 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V13 tmp4 [V13,T34] ( 5, 3 ) ref -> r13 class-hnd "Inline return value spill temp" ; V14 tmp5 [V14,T32] ( 7, 3.25) int -> rdi "Inline stloc first use temp" ;* V15 tmp6 [V15 ] ( 0, 0 ) long -> zero-ref "impAppendStmt" ;* V16 tmp7 [V16 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V17 tmp8 [V17 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ; V18 tmp9 [V18,T37] ( 2, 2 ) long -> r12 "Inlining Arg" ; V19 tmp10 [V19,T38] ( 2, 2 ) int -> rdi "Inlining Arg" ; V20 tmp11 [V20,T06] ( 6, 22 ) long -> rsi "Inlining Arg" ; V21 tmp12 [V21,T10] ( 5, 16 ) long -> rdi "Inline stloc first use temp" ;* V22 tmp13 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V23 tmp14 [V23 ] ( 0, 0 ) int -> zero-ref "Span.get_Item index" ;* V24 tmp15 [V24 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V25 tmp16 [V25 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V26 tmp17 [V26 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V27 tmp18 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V28 tmp19 [V28 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V29 tmp20 [V29 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V30 tmp21 [V30 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V31 tmp22 [V31 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V32 tmp23 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V33 tmp24 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V34 tmp25 [V34 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg" ;* V35 tmp26 [V35 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ; V36 tmp27 [V36,T36] ( 2, 2 ) byref -> r15 single-def "Inlining Arg" ; V37 tmp28 [V37,T39] ( 2, 2 ) int -> r14 "Inlining Arg" ;* V38 tmp29 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V39 tmp30 [V39,T44] ( 2, 1 ) int -> rdx "Inline stloc first use temp" ; V40 tmp31 [V40,T16] ( 3, 12 ) ref -> rsi class-hnd exact "Inline stloc first use temp" ;* V41 tmp32 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V42 tmp33 [V42 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" ;* V43 tmp34 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V44 tmp35 [V44 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V45 tmp36 [V45 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V46 tmp37 [V46 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -; V47 tmp38 [V47,T03] ( 3, 24 ) int -> r8 "Inlining Arg" +; V47 tmp38 [V47,T03] ( 3, 24 ) int -> rdx "Inlining Arg" ;* V48 tmp39 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V49 tmp40 [V49,T12] ( 2, 16 ) byref -> r15 "Inlining Arg" ; V50 tmp41 [V50,T04] ( 2, 16 ) int -> r14 "Inlining Arg" ;* V51 tmp42 [V51 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V52 tmp43 [V52,T13] ( 2, 16 ) byref -> rax "Inlining Arg" +; V52 tmp43 [V52,T13] ( 2, 16 ) byref -> rdx "Inlining Arg" ; V53 tmp44 [V53,T14] ( 2, 16 ) int -> r14 "Inlining Arg" -; V54 tmp45 [V54,T29] ( 4, 4 ) ref -> rsi class-hnd exact single-def "Inlining Arg" -;* V55 tmp46 [V55 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" +;* V54 tmp45 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" +; V55 tmp46 [V55,T29] ( 4, 4 ) ref -> rsi class-hnd exact single-def "Inlining Arg" ;* V56 tmp47 [V56 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V57 tmp48 [V57 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V58 tmp49 [V58 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ; V59 tmp50 [V59,T31] ( 3, 3 ) byref -> r12 "field V06._reference (fldOffset=0x0)" P-INDEP ;* V60 tmp51 [V60,T47] ( 0, 0 ) int -> zero-ref "field V06._length (fldOffset=0x8)" P-INDEP ; V61 tmp52 [V61,T40] ( 2, 1 ) byref -> r12 single-def "field V10._reference (fldOffset=0x0)" P-INDEP ;* V62 tmp53 [V62,T48] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP ;* V63 tmp54 [V63 ] ( 0, 0 ) byref -> zero-ref single-def "field V11._reference (fldOffset=0x0)" P-INDEP ;* V64 tmp55 [V64 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP ; V65 tmp56 [V65,T41] ( 2, 1 ) byref -> r15 single-def "field V12._reference (fldOffset=0x0)" P-INDEP ; V66 tmp57 [V66,T45] ( 2, 1 ) int -> r14 "field V12._length (fldOffset=0x8)" P-INDEP ;* V67 tmp58 [V67,T46] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP ;* V68 tmp59 [V68,T49] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP ; V69 tmp60 [V69,T42] ( 2, 1 ) byref -> r12 single-def "field V27._reference (fldOffset=0x0)" P-INDEP ;* V70 tmp61 [V70 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP ;* V71 tmp62 [V71 ] ( 0, 0 ) byref -> zero-ref single-def "field V32._reference (fldOffset=0x0)" P-INDEP ;* V72 tmp63 [V72 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP ; V73 tmp64 [V73,T43] ( 2, 1 ) byref -> r12 single-def "field V33._reference (fldOffset=0x0)" P-INDEP ;* V74 tmp65 [V74,T50] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP ; V75 tmp66 [V75,T27] ( 3, 5 ) byref -> r12 single-def "field V38._reference (fldOffset=0x0)" P-INDEP ; V76 tmp67 [V76,T25] ( 4, 5.50) int -> [rbp-0x30] spill-single-def "field V38._length (fldOffset=0x8)" P-INDEP ; V77 tmp68 [V77,T00] ( 9, 29 ) byref -> r15 "field V41._reference (fldOffset=0x0)" P-INDEP ; V78 tmp69 [V78,T01] ( 9, 29 ) int -> r14 "field V41._length (fldOffset=0x8)" P-INDEP ;* V79 tmp70 [V79 ] ( 0, 0 ) byref -> zero-ref "field V42._reference (fldOffset=0x0)" P-INDEP ;* V80 tmp71 [V80 ] ( 0, 0 ) int -> zero-ref "field V42._length (fldOffset=0x8)" P-INDEP ;* V81 tmp72 [V81 ] ( 0, 0 ) byref -> zero-ref "field V43._reference (fldOffset=0x0)" P-INDEP ;* V82 tmp73 [V82 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP ; V83 tmp74 [V83,T21] ( 2, 8 ) byref -> r15 "field V48._reference (fldOffset=0x0)" P-INDEP ;* V84 tmp75 [V84,T30] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-INDEP -; V85 tmp76 [V85,T22] ( 2, 8 ) byref -> rax "field V51._reference (fldOffset=0x0)" P-INDEP +; V85 tmp76 [V85,T22] ( 2, 8 ) byref -> rdx "field V51._reference (fldOffset=0x0)" P-INDEP ; V86 tmp77 [V86,T23] ( 2, 8 ) int -> r14 "field V51._length (fldOffset=0x8)" P-INDEP -;* V87 tmp78 [V87 ] ( 0, 0 ) byref -> zero-ref single-def "field V55._reference (fldOffset=0x0)" P-INDEP -;* V88 tmp79 [V88 ] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP +;* V87 tmp78 [V87 ] ( 0, 0 ) byref -> zero-ref single-def "field V54._reference (fldOffset=0x0)" P-INDEP +;* V88 tmp79 [V88 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP ; V89 tmp80 [V89,T05] ( 3, 24 ) int -> rdx "index expr" -; V90 tmp81 [V90,T35] ( 3, 3 ) int -> rax "index expr" +; V90 tmp81 [V90,T35] ( 3, 3 ) int -> rdx "index expr" ; V91 GsCookie [V91 ] ( 1, 1 ) long -> [rbp-0x50] do-not-enreg[X] addr-exposed "GSSecurityCookie" ; V92 cse0 [V92,T17] ( 3, 12 ) long -> [rbp-0x38] spill-single-def "CSE #09: moderate" ; V93 cse1 [V93,T15] ( 8, 14.50) int -> r14 multi-def "CSE #01: moderate" ; V94 cse2 [V94,T11] ( 4, 16 ) int -> [rbp-0x3C] spill-single-def "CSE #07: moderate" ; V95 rat0 [V95,T07] ( 9, 21.75) long -> rax "Widened IV V14" ; V96 rat1 [V96,T02] ( 9, 26.50) long -> rdx "Widened IV V19" ; V97 rat2 [V97,T08] ( 7, 21 ) long -> [rbp-0x48] "Widened IV V39" ; ; Lcl frame size = 40 G_M735_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 40 lea rbp, [rsp+0x50] mov qword ptr [rbp-0x50], 0xD1FFAB1E ;; size=27 bbWeight=1 PerfScore 7.75 G_M735_IG02: mov rbx, gword ptr [rdi+0x10] mov r15, gword ptr [rdi+0x08] test rsi, rsi je SHORT G_M735_IG09 ;; size=13 bbWeight=1 PerfScore 5.25 G_M735_IG03: mov r14d, dword ptr [r15+0x08] lea edi, [r14-0x01] mov eax, edi cmp r14d, eax jbe SHORT G_M735_IG07 align [9 bytes for IG04] ;; size=24 bbWeight=0.50 PerfScore 2.12 G_M735_IG04: cmp eax, r14d - jae G_M735_IG28 + jae G_M735_IG29 cmp qword ptr [r15+8*rax+0x10], rsi jle SHORT G_M735_IG06 dec eax cmp r14d, eax ja SHORT G_M735_IG04 ;; size=23 bbWeight=4 PerfScore 27.00 G_M735_IG05: mov edi, eax jmp SHORT G_M735_IG07 align [8 bytes for IG13] ;; size=12 bbWeight=0.25 PerfScore 0.56 G_M735_IG06: mov edi, eax mov eax, edi cmp qword ptr [r15+8*rax+0x10], rsi je SHORT G_M735_IG08 ;; size=11 bbWeight=0.50 PerfScore 2.25 G_M735_IG07: xor r13, r13 jmp SHORT G_M735_IG11 ;; size=5 bbWeight=0.50 PerfScore 1.12 G_M735_IG08: cmp edi, dword ptr [rbx+0x08] - jae G_M735_IG28 + jae G_M735_IG29 mov eax, edi mov r13, gword ptr [rbx+8*rax+0x10] jmp SHORT G_M735_IG11 ;; size=18 bbWeight=0.50 PerfScore 4.12 G_M735_IG09: xor edi, edi mov r14d, dword ptr [r15+0x08] test r14d, r14d je SHORT G_M735_IG10 cmp qword ptr [r15+0x10], 0 jne SHORT G_M735_IG10 cmp dword ptr [rbx+0x08], 0 - jbe G_M735_IG28 + jbe G_M735_IG29 mov r13, gword ptr [rbx+0x10] jmp SHORT G_M735_IG11 ;; size=34 bbWeight=0.50 PerfScore 7.75 G_M735_IG10: mov r13, 0xD1FFAB1E ; '0' ;; size=10 bbWeight=0.50 PerfScore 0.12 G_M735_IG11: test r13, r13 - jne G_M735_IG20 + jne G_M735_IG23 ;; size=9 bbWeight=1 PerfScore 1.25 G_M735_IG12: test dword ptr [rsp], esp sub rsp, 256 lea r12, [rsp] xor eax, eax xor ecx, ecx mov edx, edi jmp SHORT G_M735_IG14 ;; size=22 bbWeight=0.50 PerfScore 3.25 G_M735_IG13: dec edx ;; size=2 bbWeight=4 PerfScore 1.00 G_M735_IG14: cmp r14d, edx jbe SHORT G_M735_IG18 mov rdi, qword ptr [r15+8*rdx+0x10] test edx, edx jne SHORT G_M735_IG16 ;; size=14 bbWeight=4 PerfScore 18.00 G_M735_IG15: test rdi, rdi je SHORT G_M735_IG18 ;; size=5 bbWeight=2 PerfScore 2.50 G_M735_IG16: mov r8, rsi and r8, rdi cmp r8, rdi jne SHORT G_M735_IG13 ;; size=11 bbWeight=4 PerfScore 7.00 G_M735_IG17: andn rsi, rdi, rsi cmp ecx, 64 - jae G_M735_IG28 + jae G_M735_IG29 mov edi, ecx mov dword ptr [r12+4*rdi], edx inc ecx cmp edx, dword ptr [rbx+0x08] - jae G_M735_IG28 + jae G_M735_IG29 mov rdi, gword ptr [rbx+8*rdx+0x10] add eax, dword ptr [rdi+0x08] - jo G_M735_IG29 + jo G_M735_IG30 test rsi, rsi jne SHORT G_M735_IG13 ;; size=50 bbWeight=2 PerfScore 29.00 G_M735_IG18: test rsi, rsi - jne SHORT G_M735_IG20 + jne G_M735_IG23 cmp ecx, 64 - ja G_M735_IG27 + ja G_M735_IG28 mov dword ptr [rbp-0x2C], ecx lea edi, [rcx+rcx] add edi, -2 add edi, eax - jo G_M735_IG29 + jo G_M735_IG30 call System.String:FastAllocateString(int):System.String mov r13, rax lea r15, bword ptr [r13+0x0C] mov r14d, dword ptr [r13+0x08] mov eax, dword ptr [rbp-0x2C] mov dword ptr [rbp-0x30], eax lea edx, [rax-0x01] mov ecx, edx test ecx, ecx - jne SHORT G_M735_IG25 - ;; size=62 bbWeight=0.50 PerfScore 6.62 + jne SHORT G_M735_IG21 + ;; size=66 bbWeight=0.50 PerfScore 6.62 G_M735_IG19: cmp dword ptr [rbp-0x30], 0 - jbe G_M735_IG28 - mov eax, dword ptr [r12] - cmp eax, dword ptr [rbx+0x08] - jae G_M735_IG28 - mov rsi, gword ptr [rbx+8*rax+0x10] + jbe G_M735_IG29 + mov edx, dword ptr [r12] + cmp edx, dword ptr [rbx+0x08] + jae G_M735_IG29 + mov rsi, gword ptr [rbx+8*rdx+0x10] cmp dword ptr [rsi+0x08], r14d - jg G_M735_IG26 + jle G_M735_IG22 + jmp G_M735_IG27 + ;; size=43 bbWeight=0.50 PerfScore 8.50 +G_M735_IG20: + mov eax, dword ptr [rbp-0x30] + ;; size=3 bbWeight=2 PerfScore 2.00 +G_M735_IG21: + cmp ecx, eax + jae G_M735_IG29 + mov qword ptr [rbp-0x48], rcx + mov edx, dword ptr [r12+4*rcx] + cmp edx, dword ptr [rbx+0x08] + jae G_M735_IG29 + mov rsi, gword ptr [rbx+8*rdx+0x10] + mov r8d, dword ptr [rsi+0x08] + mov dword ptr [rbp-0x3C], r8d + cmp r8d, r14d + jg G_M735_IG27 + mov r9d, r8d + add r9, r9 + mov qword ptr [rbp-0x38], r9 + mov rdx, r9 + add rsi, 12 + mov rdi, r15 + mov r10, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong) + call [r10]System.SpanHelpers:Memmove(byref,byref,ulong) + mov edx, dword ptr [rbp-0x3C] + cmp edx, r14d + ja G_M735_IG28 + mov rsi, qword ptr [rbp-0x38] + add r15, rsi + sub r14d, edx + cmp r14d, 2 + jb SHORT G_M735_IG28 + lea rdx, bword ptr [r15+0x04] + add r14d, -2 + mov word ptr [r15], 44 + mov word ptr [r15+0x02], 32 + mov r15, rdx + mov rdx, qword ptr [rbp-0x48] + dec edx + mov rcx, rdx + jne G_M735_IG20 + jmp G_M735_IG19 + ;; size=152 bbWeight=4 PerfScore 130.00 +G_M735_IG22: mov edx, dword ptr [rsi+0x08] add rdx, rdx add rsi, 12 mov rdi, r15 mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong) call [rax]System.SpanHelpers:Memmove(byref,byref,ulong) - ;; size=63 bbWeight=0.50 PerfScore 10.50 -G_M735_IG20: + ;; size=25 bbWeight=0.50 PerfScore 3.00 +G_M735_IG23: mov rax, r13 ;; size=3 bbWeight=1 PerfScore 0.25 -G_M735_IG21: +G_M735_IG24: cmp qword ptr [rbp-0x50], 0xD1FFAB1E - je SHORT G_M735_IG22 + je SHORT G_M735_IG25 call CORINFO_HELP_FAIL_FAST ;; size=15 bbWeight=1 PerfScore 4.00 -G_M735_IG22: +G_M735_IG25: nop ;; size=1 bbWeight=1 PerfScore 0.25 -G_M735_IG23: +G_M735_IG26: lea rsp, [rbp-0x28] pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.50 -G_M735_IG24: - mov eax, dword ptr [rbp-0x30] - ;; size=3 bbWeight=2 PerfScore 2.00 -G_M735_IG25: - cmp ecx, eax - jae G_M735_IG28 - mov qword ptr [rbp-0x48], rcx - mov edx, dword ptr [r12+4*rcx] - cmp edx, dword ptr [rbx+0x08] - jae G_M735_IG28 - mov rsi, gword ptr [rbx+8*rdx+0x10] - mov r8d, dword ptr [rsi+0x08] - mov dword ptr [rbp-0x3C], r8d - cmp r8d, r14d - jg SHORT G_M735_IG26 - mov r9d, r8d - add r9, r9 - mov qword ptr [rbp-0x38], r9 - mov rdx, r9 - add rsi, 12 - mov rdi, r15 - mov r10, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong) - call [r10]System.SpanHelpers:Memmove(byref,byref,ulong) - mov r8d, dword ptr [rbp-0x3C] - cmp r8d, r14d - ja SHORT G_M735_IG27 - mov r9, qword ptr [rbp-0x38] - add r15, r9 - sub r14d, r8d - cmp r14d, 2 - jb SHORT G_M735_IG27 - lea rax, bword ptr [r15+0x04] - add r14d, -2 - mov word ptr [r15], 44 - mov word ptr [r15+0x02], 32 - mov r15, rax - mov rcx, qword ptr [rbp-0x48] - dec ecx - jne G_M735_IG24 - jmp G_M735_IG19 - ;; size=142 bbWeight=4 PerfScore 129.00 -G_M735_IG26: +G_M735_IG27: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort() call [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -G_M735_IG27: +G_M735_IG28: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException() call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -G_M735_IG28: +G_M735_IG29: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 -G_M735_IG29: +G_M735_IG30: call CORINFO_HELP_OVERFLOW int3 ;; size=6 bbWeight=0 PerfScore 0.00 -; Total bytes of code 632, prolog size 27, PerfScore 277.19, instruction count 178, allocated bytes for code 632 (MethodHash=3492fd20) for method System.Enum:FormatFlagNames[long](System.Enum+EnumInfo`1[long],long):System.String (FullOpts) +; Total bytes of code 651, prolog size 27, PerfScore 279.19, instruction count 180, allocated bytes for code 651 (MethodHash=3492fd20) for method System.Enum:FormatFlagNames[long](System.Enum+EnumInfo`1[long],long):System.String (FullOpts) ; ============================================================ ```
8 (4.15 % of base) - System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float],System.String):this ```diff ; Assembly listing for method System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float],System.String):this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 1 single block inlinees; 4 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T00] ( 10, 6.50) byref -> rbx this single-def -; V01 arg1 [V01,T10] ( 2, 1 ) simd32 -> [rbp+0x10] ld-addr-op single-def +; V01 arg1 [V01,T09] ( 2, 1 ) simd32 -> [rbp+0x10] ld-addr-op single-def ; V02 arg2 [V02,T01] ( 4, 3 ) ref -> rsi class-hnd single-def ; V03 loc0 [V03,T04] ( 5, 2.50) ref -> rsi class-hnd single-def ;* V04 loc1 [V04 ] ( 0, 0 ) int -> zero-ref ld-addr-op ;* V05 loc2 [V05 ] ( 0, 0 ) int -> zero-ref ld-addr-op ;* V06 loc3 [V06 ] ( 0, 0 ) simd32 -> zero-ref ld-addr-op ; V07 OutArgs [V07 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V08 tmp1 [V08 ] ( 2, 2 ) simd32 -> [rbp-0x30] do-not-enreg[XS] addr-exposed ld-addr-op class-hnd exact "Single-def Box Helper" ;* V09 tmp2 [V09 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" -; V10 tmp3 [V10,T02] ( 4, 4 ) int -> rax "Inlining Arg" -; V11 tmp4 [V11,T03] ( 3, 3 ) byref -> rdi single-def "Inlining Arg" +; V10 tmp3 [V10,T02] ( 4, 4 ) int -> rdi "Inlining Arg" +; V11 tmp4 [V11,T03] ( 3, 3 ) byref -> rdx single-def "Inlining Arg" ;* V12 tmp5 [V12 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V13 tmp6 [V13,T06] ( 2, 2 ) byref -> rdi single-def "Inlining Arg" -; V14 tmp7 [V14,T07] ( 2, 2 ) int -> rcx "Inlining Arg" -;* V15 tmp8 [V15,T09] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +; V13 tmp6 [V13,T06] ( 2, 2 ) byref -> rcx single-def "Inlining Arg" +; V14 tmp7 [V14,T07] ( 2, 2 ) int -> rax "Inlining Arg" +;* V15 tmp8 [V15 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V16 tmp9 [V16 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V17 tmp10 [V17 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V18 tmp11 [V18 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V19 tmp12 [V19 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V20 tmp13 [V20 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP ;* V21 tmp14 [V21 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP ;* V22 tmp15 [V22 ] ( 0, 0 ) byref -> zero-ref single-def "field V12._reference (fldOffset=0x0)" P-INDEP ;* V23 tmp16 [V23 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP ;* V24 tmp17 [V24 ] ( 0, 0 ) byref -> zero-ref single-def "field V16._reference (fldOffset=0x0)" P-INDEP ;* V25 tmp18 [V25 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP -; V26 cse0 [V26,T08] ( 3, 1.50) int -> rcx "CSE #01: moderate" -; V27 cse1 [V27,T05] ( 4, 2 ) int -> r15 "CSE #02: moderate" +; V26 cse0 [V26,T08] ( 3, 1.50) int -> rax "CSE #01: moderate" +; V27 cse1 [V27,T05] ( 4, 2 ) int -> r15 "CSE #02: aggressive" ; ; Lcl frame size = 64 G_M20526_IG01: push rbp push r15 push rbx sub rsp, 64 lea rbp, [rsp+0x50] mov rbx, rdi ;; size=16 bbWeight=1 PerfScore 4.00 G_M20526_IG02: cmp byte ptr [rbx+0x14], 0 - jne SHORT G_M20526_IG06 - ;; size=6 bbWeight=1 PerfScore 4.00 + jne G_M20526_IG07 + ;; size=10 bbWeight=1 PerfScore 4.00 G_M20526_IG03: vmovups ymm0, ymmword ptr [rbp+0x10] vmovups ymmword ptr [rbp-0x30], ymm0 mov rdx, gword ptr [rbx] lea rdi, [rbp-0x30] mov rax, 0xD1FFAB1E ; code for System.Numerics.Vector`1[float]:ToString(System.String,System.IFormatProvider):System.String:this call [rax]System.Numerics.Vector`1[float]:ToString(System.String,System.IFormatProvider):System.String:this mov rsi, rax test rsi, rsi je SHORT G_M20526_IG05 - lea rdi, bword ptr [rbx+0x18] - mov eax, dword ptr [rbx+0x10] - mov ecx, dword ptr [rdi+0x08] - cmp eax, ecx - ja SHORT G_M20526_IG08 - mov rdi, bword ptr [rdi] - mov edx, eax - lea rdi, bword ptr [rdi+2*rdx] - sub ecx, eax + lea rdx, bword ptr [rbx+0x18] + mov edi, dword ptr [rbx+0x10] + mov eax, dword ptr [rdx+0x08] + cmp edi, eax + ja SHORT G_M20526_IG09 + mov rdx, bword ptr [rdx] + mov ecx, edi + lea rcx, bword ptr [rdx+2*rcx] + sub eax, edi mov r15d, dword ptr [rsi+0x08] - cmp r15d, ecx - jbe SHORT G_M20526_IG04 - mov rdi, rbx - 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_M20526_IG05 - ;; size=88 bbWeight=0.50 PerfScore 14.88 -G_M20526_IG04: + cmp r15d, eax + ja SHORT G_M20526_IG04 mov edx, r15d add rdx, rdx add rsi, 12 + mov rdi, rcx mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong) call [rax]System.SpanHelpers:Memmove(byref,byref,ulong) add dword ptr [rbx+0x10], r15d - ;; size=26 bbWeight=0.50 PerfScore 3.50 + jmp SHORT G_M20526_IG05 + ;; size=102 bbWeight=0.50 PerfScore 16.75 +G_M20526_IG04: + mov rdi, rbx + mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this + call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this + ;; size=15 bbWeight=0.50 PerfScore 1.75 G_M20526_IG05: + nop + ;; size=1 bbWeight=0.50 PerfScore 0.12 +G_M20526_IG06: add rsp, 64 pop rbx pop r15 pop rbp ret ;; size=9 bbWeight=0.50 PerfScore 1.38 -G_M20526_IG06: +G_M20526_IG07: vmovups ymm0, ymmword ptr [rbp+0x10] vmovups ymmword ptr [rsp], ymm0 mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendCustomFormatter[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float],System.String):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendCustomFormatter[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float],System.String):this nop ;; size=26 bbWeight=0.50 PerfScore 4.38 -G_M20526_IG07: +G_M20526_IG08: add rsp, 64 pop rbx pop r15 pop rbp ret ;; size=9 bbWeight=0.50 PerfScore 1.38 -G_M20526_IG08: +G_M20526_IG09: 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 193, prolog size 13, PerfScore 33.50, instruction count 58, allocated bytes for code 193 (MethodHash=d159afd1) for method System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float],System.String):this (FullOpts) +; Total bytes of code 201, prolog size 13, PerfScore 33.75, instruction count 60, allocated bytes for code 201 (MethodHash=d159afd1) for method System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float],System.String):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/61093ed0bfe155200b607d6037068a34

MihuBot commented 1 month ago

Top method improvements

-25 (-3.00 % of base) - System.Security.Claims.ClaimsPrincipal:DebuggerToString():System.String:this ```diff ; Assembly listing for method System.Security.Claims.ClaimsPrincipal:DebuggerToString():System.String:this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 12 single block inlinees; 12 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T04] ( 7, 5.50) ref -> rbx this class-hnd single-def ; V01 loc0 [V01,T01] ( 5, 10.50) int -> r15 ; V02 loc1 [V02,T18] ( 3, 1.50) ref -> rax class-hnd single-def ; V03 loc2 [V03,T02] ( 4, 9 ) int -> r14 -; V04 loc3 [V04,T00] ( 6, 13 ) ref -> [rbp-0x50] class-hnd EH-live spill-single-def -; V05 loc4 [V05,T03] ( 6, 8.50) ref -> [rbp-0x58] class-hnd EH-live single-def -; V06 loc5 [V06 ] ( 25, 12.50) struct (40) [rbp-0x48] do-not-enreg[XSF] must-init addr-exposed ld-addr-op +; V04 loc3 [V04,T00] ( 6, 13 ) ref -> [rbp-0x48] class-hnd EH-live spill-single-def +; V05 loc4 [V05,T03] ( 6, 8.50) ref -> [rbp-0x50] class-hnd EH-live single-def +; V06 loc5 [V06 ] ( 25, 12.50) struct (40) [rbp-0x40] do-not-enreg[XSF] must-init addr-exposed ld-addr-op ;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V08 tmp1 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" ; V09 tmp2 [V09,T05] ( 5, 5 ) ref -> rax class-hnd single-def "dup spill" ;* V10 tmp3 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inline stloc first use temp" ;* V11 tmp4 [V11 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" ;* V12 tmp5 [V12 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V13 tmp6 [V13 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V14 tmp7 [V14,T06] ( 4, 4 ) int -> rdi "Inlining Arg" ;* V15 tmp8 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V16 tmp9 [V16,T11] ( 2, 2 ) byref -> r13 single-def "Inlining Arg" +; V16 tmp9 [V16,T11] ( 2, 2 ) byref -> rax single-def "Inlining Arg" ; V17 tmp10 [V17,T16] ( 2, 2 ) int -> rsi "Inlining Arg" -;* V18 tmp11 [V18,T29] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +;* V18 tmp11 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V19 tmp12 [V19 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V20 tmp13 [V20 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V21 tmp14 [V21 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V22 tmp15 [V22 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V23 tmp16 [V23,T07] ( 4, 4 ) int -> rdi "Inlining Arg" ;* V24 tmp17 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V25 tmp18 [V25,T12] ( 2, 2 ) byref -> r15 single-def "Inlining Arg" +; V25 tmp18 [V25,T12] ( 2, 2 ) byref -> rax single-def "Inlining Arg" ; V26 tmp19 [V26,T17] ( 2, 2 ) int -> rsi "Inlining Arg" -;* V27 tmp20 [V27,T30] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +;* V27 tmp20 [V27 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V28 tmp21 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V29 tmp22 [V29 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V30 tmp23 [V30 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V31 tmp24 [V31 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V32 tmp25 [V32,T13] ( 2, 2 ) ref -> r15 class-hnd exact single-def "impAppendStmt" ;* V33 tmp26 [V33 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V34 tmp27 [V34,T09] ( 3, 3 ) int -> rsi "Inlining Arg" ;* V35 tmp28 [V35 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V36 tmp29 [V36 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V37 tmp30 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V38 tmp31 [V38 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" ;* V39 tmp32 [V39 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg" ;* V40 tmp33 [V40 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ; V41 tmp34 [V41,T19] ( 3, 1.50) ref -> rsi class-hnd single-def "Inline stloc first use temp" ; V42 tmp35 [V42,T20] ( 3, 1.50) byref -> rdi "field V12._reference (fldOffset=0x0)" P-INDEP ; V43 tmp36 [V43,T22] ( 3, 1.50) int -> rsi "field V12._length (fldOffset=0x8)" P-INDEP ;* V44 tmp37 [V44 ] ( 0, 0 ) byref -> zero-ref "field V13._reference (fldOffset=0x0)" P-INDEP ;* V45 tmp38 [V45 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP ;* V46 tmp39 [V46 ] ( 0, 0 ) byref -> zero-ref single-def "field V15._reference (fldOffset=0x0)" P-INDEP ;* V47 tmp40 [V47 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP ;* V48 tmp41 [V48 ] ( 0, 0 ) byref -> zero-ref single-def "field V19._reference (fldOffset=0x0)" P-INDEP ;* V49 tmp42 [V49 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP ;* V50 tmp43 [V50 ] ( 0, 0 ) byref -> zero-ref "field V22._reference (fldOffset=0x0)" P-INDEP ;* V51 tmp44 [V51 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP ;* V52 tmp45 [V52 ] ( 0, 0 ) byref -> zero-ref single-def "field V24._reference (fldOffset=0x0)" P-INDEP ;* V53 tmp46 [V53 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP ;* V54 tmp47 [V54 ] ( 0, 0 ) byref -> zero-ref single-def "field V28._reference (fldOffset=0x0)" P-INDEP ;* V55 tmp48 [V55 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP ;* V56 tmp49 [V56 ] ( 0, 0 ) byref -> zero-ref "field V31._reference (fldOffset=0x0)" P-INDEP ;* V57 tmp50 [V57 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP ;* V58 tmp51 [V58 ] ( 0, 0 ) byref -> zero-ref "field V33._reference (fldOffset=0x0)" P-INDEP ;* V59 tmp52 [V59 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP ; V60 tmp53 [V60,T25] ( 2, 1 ) byref -> rdi single-def "field V35._reference (fldOffset=0x0)" P-INDEP ;* V61 tmp54 [V61 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP ;* V62 tmp55 [V62 ] ( 0, 0 ) byref -> zero-ref single-def "field V37._reference (fldOffset=0x0)" P-INDEP ;* V63 tmp56 [V63 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP ; V64 tmp57 [V64,T26] ( 2, 1 ) byref -> rdi single-def "field V38._reference (fldOffset=0x0)" P-INDEP ; V65 tmp58 [V65,T27] ( 2, 1 ) int -> rsi "field V38._length (fldOffset=0x8)" P-INDEP ; V66 tmp59 [V66,T08] ( 2, 4 ) ref -> rdi single-def "argument with side effect" ; V67 tmp60 [V67,T14] ( 2, 2 ) ref -> rsi single-def "argument with side effect" ; V68 tmp61 [V68,T15] ( 2, 2 ) ref -> rdi single-def "argument with side effect" ; V69 PSPSym [V69,T28] ( 1, 1 ) long -> [rbp-0x60] do-not-enreg[V] "PSPSym" ; V70 cse0 [V70,T10] ( 3, 2.50) long -> r14 "CSE #02: moderate" ; V71 cse1 [V71,T21] ( 3, 1.50) ref -> rbx "CSE #07: moderate" ; V72 cse2 [V72,T23] ( 3, 1.50) int -> rsi "CSE #03: moderate" ; V73 cse3 [V73,T24] ( 3, 1.50) int -> rsi "CSE #05: moderate" ; -; Lcl frame size = 64 +; Lcl frame size = 72 G_M15577_IG01: push rbp push r15 push r14 - push r13 push rbx - sub rsp, 64 + sub rsp, 72 lea rbp, [rsp+0x60] - xor eax, eax - mov qword ptr [rbp-0x48], rax vxorps xmm8, xmm8, xmm8 vmovdqu ymmword ptr [rbp-0x40], ymm8 + xor eax, eax + mov qword ptr [rbp-0x20], rax mov qword ptr [rbp-0x60], rsp mov rbx, rdi - ;; size=40 bbWeight=1 PerfScore 10.58 + ;; size=38 bbWeight=1 PerfScore 9.58 G_M15577_IG02: xor r15d, r15d mov rdi, rbx mov rax, qword ptr [rbx] mov r14, qword ptr [rax+0x50] call [r14]System.Security.Claims.ClaimsPrincipal:get_Identities():System.Collections.Generic.IEnumerable`1[System.Security.Claims.ClaimsIdentity]:this mov rdi, rax mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.IEnumerable`1[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.__Canon]:this call [r11]System.Collections.Generic.IEnumerable`1[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.__Canon]:this mov rdi, rax - mov gword ptr [rbp-0x50], rdi + mov gword ptr [rbp-0x48], rdi ;; size=39 bbWeight=1 PerfScore 12.25 G_M15577_IG03: mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this test eax, eax je SHORT G_M15577_IG05 ;; size=17 bbWeight=8 PerfScore 36.00 G_M15577_IG04: - mov rdi, gword ptr [rbp-0x50] + mov rdi, gword ptr [rbp-0x48] mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.IEnumerator`1[System.__Canon]:get_Current():System.__Canon:this call [r11]System.Collections.Generic.IEnumerator`1[System.__Canon]:get_Current():System.__Canon:this inc r15d - mov rdi, gword ptr [rbp-0x50] + mov rdi, gword ptr [rbp-0x48] jmp SHORT G_M15577_IG03 ;; size=26 bbWeight=4 PerfScore 30.00 G_M15577_IG05: - mov rdi, gword ptr [rbp-0x50] + mov rdi, gword ptr [rbp-0x48] mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this call [r11]System.IDisposable:Dispose():this cmp r15d, 1 jne SHORT G_M15577_IG07 ;; size=23 bbWeight=1 PerfScore 5.50 G_M15577_IG06: mov rdi, rbx call [r14+0x08]System.Security.Claims.ClaimsPrincipal:get_Identity():System.Security.Principal.IIdentity:this mov rsi, rax mov rdi, 0xD1FFAB1E ; System.Security.Claims.ClaimsIdentity mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS call [rax]CORINFO_HELP_ISINSTANCEOFCLASS test rax, rax jne G_M15577_IG18 ;; size=41 bbWeight=0.50 PerfScore 4.12 G_M15577_IG07: xor r14d, r14d mov rdi, rbx mov rax, qword ptr [rbx] mov rax, qword ptr [rax+0x40] call [rax+0x30]System.Security.Claims.ClaimsPrincipal:get_Claims():System.Collections.Generic.IEnumerable`1[System.Security.Claims.Claim]:this mov rdi, rax mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.IEnumerable`1[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.__Canon]:this call [r11]System.Collections.Generic.IEnumerable`1[System.__Canon]:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.__Canon]:this - mov gword ptr [rbp-0x58], rax + mov gword ptr [rbp-0x50], rax ;; size=36 bbWeight=0.50 PerfScore 6.00 G_M15577_IG08: - mov rdi, gword ptr [rbp-0x58] + mov rdi, gword ptr [rbp-0x50] mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this test eax, eax je SHORT G_M15577_IG09 - mov rdi, gword ptr [rbp-0x58] + mov rdi, gword ptr [rbp-0x50] mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.IEnumerator`1[System.__Canon]:get_Current():System.__Canon:this call [r11]System.Collections.Generic.IEnumerator`1[System.__Canon]:get_Current():System.__Canon:this inc r14d jmp SHORT G_M15577_IG08 ;; size=43 bbWeight=4 PerfScore 48.00 G_M15577_IG09: - mov rdi, gword ptr [rbp-0x58] + mov rdi, gword ptr [rbp-0x50] mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this call [r11]System.IDisposable:Dispose():this xor rdi, rdi - mov gword ptr [rbp-0x48], rdi + mov gword ptr [rbp-0x40], rdi mov rdi, 0xD1FFAB1E ; const ptr mov rbx, gword ptr [rdi] mov rdi, rbx 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-0x40], rax + mov gword ptr [rbp-0x38], rax test rax, rax je SHORT G_M15577_IG10 lea rdi, bword ptr [rax+0x10] mov esi, dword ptr [rax+0x08] jmp SHORT G_M15577_IG11 ;; size=74 bbWeight=0.50 PerfScore 9.12 G_M15577_IG10: xor rdi, rdi xor esi, esi ;; size=4 bbWeight=0.50 PerfScore 0.25 G_M15577_IG11: - mov bword ptr [rbp-0x30], rdi - mov dword ptr [rbp-0x28], esi + mov bword ptr [rbp-0x28], rdi + mov dword ptr [rbp-0x20], esi xor edi, edi - mov dword ptr [rbp-0x38], edi - mov byte ptr [rbp-0x34], 0 - mov edi, dword ptr [rbp-0x38] - mov esi, dword ptr [rbp-0x28] + mov dword ptr [rbp-0x30], edi + mov byte ptr [rbp-0x2C], 0 + mov edi, dword ptr [rbp-0x30] + mov esi, dword ptr [rbp-0x20] cmp edi, esi ja G_M15577_IG20 - mov rax, bword ptr [rbp-0x30] + mov rax, bword ptr [rbp-0x28] mov ecx, edi - lea r13, bword ptr [rax+2*rcx] + lea rax, bword ptr [rax+2*rcx] sub esi, edi cmp esi, 13 - jae SHORT G_M15577_IG12 - lea rdi, [rbp-0x48] - mov rsi, 0xD1FFAB1E ; 'Identities = ' - 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_M15577_IG13 - ;; size=75 bbWeight=0.50 PerfScore 8.38 -G_M15577_IG12: + jb SHORT G_M15577_IG12 mov rdi, 0xD1FFAB1E vmovdqu xmm0, xmmword ptr [rdi] vmovdqu xmm1, xmmword ptr [rdi+0x0A] - vmovdqu xmmword ptr [r13], xmm0 - vmovdqu xmmword ptr [r13+0x0A], xmm1 - mov edi, dword ptr [rbp-0x38] + vmovdqu xmmword ptr [rax], xmm0 + vmovdqu xmmword ptr [rax+0x0A], xmm1 + mov edi, dword ptr [rbp-0x30] add edi, 13 - mov dword ptr [rbp-0x38], edi - ;; size=40 bbWeight=0.50 PerfScore 7.25 + mov dword ptr [rbp-0x30], edi + jmp SHORT G_M15577_IG13 + ;; size=86 bbWeight=0.50 PerfScore 13.62 +G_M15577_IG12: + lea rdi, [rbp-0x40] + mov rsi, 0xD1FFAB1E ; 'Identities = ' + 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_M15577_IG13: - lea rdi, [rbp-0x48] + lea rdi, [rbp-0x40] mov esi, r15d mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this - mov edi, dword ptr [rbp-0x38] - mov esi, dword ptr [rbp-0x28] + mov edi, dword ptr [rbp-0x30] + mov esi, dword ptr [rbp-0x20] cmp edi, esi ja G_M15577_IG20 - mov rax, bword ptr [rbp-0x30] + mov rax, bword ptr [rbp-0x28] mov ecx, edi - lea r15, bword ptr [rax+2*rcx] + lea rax, bword ptr [rax+2*rcx] sub esi, edi cmp esi, 11 - jae SHORT G_M15577_IG14 - lea rdi, [rbp-0x48] - mov rsi, 0xD1FFAB1E ; ', Claims = ' - 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_M15577_IG15 - ;; size=78 bbWeight=0.50 PerfScore 8.25 -G_M15577_IG14: + jb SHORT G_M15577_IG14 mov rdi, 0xD1FFAB1E vmovdqu xmm0, xmmword ptr [rdi] vmovdqu xmm1, xmmword ptr [rdi+0x06] - vmovdqu xmmword ptr [r15], xmm0 - vmovdqu xmmword ptr [r15+0x06], xmm1 - mov edi, dword ptr [rbp-0x38] + vmovdqu xmmword ptr [rax], xmm0 + vmovdqu xmmword ptr [rax+0x06], xmm1 + mov edi, dword ptr [rbp-0x30] add edi, 11 - mov dword ptr [rbp-0x38], edi - ;; size=39 bbWeight=0.50 PerfScore 7.25 + mov dword ptr [rbp-0x30], edi + jmp SHORT G_M15577_IG15 + ;; size=89 bbWeight=0.50 PerfScore 13.50 +G_M15577_IG14: + lea rdi, [rbp-0x40] + mov rsi, 0xD1FFAB1E ; ', Claims = ' + 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_M15577_IG15: - lea rdi, [rbp-0x48] + lea rdi, [rbp-0x40] mov esi, r14d mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted[int](int):this - mov esi, dword ptr [rbp-0x38] - cmp esi, dword ptr [rbp-0x28] + mov esi, dword ptr [rbp-0x30] + cmp esi, dword ptr [rbp-0x20] ja SHORT G_M15577_IG20 - mov rdi, bword ptr [rbp-0x30] + mov rdi, bword ptr [rbp-0x28] call System.String:.ctor(System.ReadOnlySpan`1[ushort]):this mov r15, rax - mov rsi, gword ptr [rbp-0x40] + mov rsi, gword ptr [rbp-0x38] vxorps ymm0, ymm0, ymm0 - vmovdqu ymmword ptr [rbp-0x48], ymm0 - vmovdqu xmmword ptr [rbp-0x30], xmm0 + vmovdqu ymmword ptr [rbp-0x40], ymm0 + vmovdqu xmmword ptr [rbp-0x28], xmm0 test rsi, rsi je SHORT G_M15577_IG16 mov rdi, rbx xor edx, edx mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[ushort]:Return(ushort[],ubyte):this call [rax]System.Buffers.SharedArrayPool`1[ushort]:Return(ushort[],ubyte):this ;; size=79 bbWeight=0.50 PerfScore 9.29 G_M15577_IG16: mov rax, r15 ;; size=3 bbWeight=0.50 PerfScore 0.12 G_M15577_IG17: - add rsp, 64 + add rsp, 72 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_M15577_IG18: mov rdi, rax mov rax, 0xD1FFAB1E ; code for System.Security.Claims.ClaimsIdentity:DebuggerToString():System.String:this call [rax]System.Security.Claims.ClaimsIdentity:DebuggerToString():System.String:this nop ;; size=16 bbWeight=0.50 PerfScore 1.88 G_M15577_IG19: - add rsp, 64 + add rsp, 72 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_M15577_IG20: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException() call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 G_M15577_IG21: push rbp push r15 push r14 - push r13 push rbx - sub rsp, 16 + push rax mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x60] - ;; size=23 bbWeight=0 PerfScore 0.00 + ;; size=18 bbWeight=0 PerfScore 0.00 G_M15577_IG22: - cmp gword ptr [rbp-0x50], 0 + cmp gword ptr [rbp-0x48], 0 je SHORT G_M15577_IG23 - mov rdi, gword ptr [rbp-0x50] + mov rdi, gword ptr [rbp-0x48] mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this call [r11]System.IDisposable:Dispose():this ;; size=24 bbWeight=0 PerfScore 0.00 G_M15577_IG23: nop ;; size=1 bbWeight=0 PerfScore 0.00 G_M15577_IG24: - add rsp, 16 + add rsp, 8 pop rbx - pop r13 pop r14 pop r15 pop rbp ret - ;; size=13 bbWeight=0 PerfScore 0.00 + ;; size=11 bbWeight=0 PerfScore 0.00 G_M15577_IG25: push rbp push r15 push r14 - push r13 push rbx - sub rsp, 16 + push rax mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x60] - ;; size=23 bbWeight=0 PerfScore 0.00 + ;; size=18 bbWeight=0 PerfScore 0.00 G_M15577_IG26: - cmp gword ptr [rbp-0x58], 0 + cmp gword ptr [rbp-0x50], 0 je SHORT G_M15577_IG27 - mov rdi, gword ptr [rbp-0x58] + mov rdi, gword ptr [rbp-0x50] mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this call [r11]System.IDisposable:Dispose():this ;; size=24 bbWeight=0 PerfScore 0.00 G_M15577_IG27: nop ;; size=1 bbWeight=0 PerfScore 0.00 G_M15577_IG28: - add rsp, 16 + add rsp, 8 pop rbx - pop r13 pop r14 pop r15 pop rbp ret - ;; size=13 bbWeight=0 PerfScore 0.00 + ;; size=11 bbWeight=0 PerfScore 0.00 -; Total bytes of code 834, prolog size 40, PerfScore 208.00, instruction count 225, allocated bytes for code 834 (MethodHash=5d18c326) for method System.Security.Claims.ClaimsPrincipal:DebuggerToString():System.String:this (FullOpts) +; Total bytes of code 809, prolog size 38, PerfScore 206.50, instruction count 218, allocated bytes for code 809 (MethodHash=5d18c326) for method System.Security.Claims.ClaimsPrincipal:DebuggerToString():System.String:this (FullOpts) ; ============================================================ ```
-23 (-2.39 % of base) - System.Numerics.Vector4:ToString(System.String,System.IFormatProvider):System.String:this ```diff ; Assembly listing for method System.Numerics.Vector4:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 10 single block inlinees; 25 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T01] ( 6, 6 ) byref -> r15 this single-def ; V01 arg1 [V01,T02] ( 6, 6 ) ref -> r14 class-hnd single-def ; V02 arg2 [V02,T00] ( 12, 9.50) ref -> rbx class-hnd single-def ; V03 loc0 [V03,T09] ( 4, 4 ) ref -> r13 class-hnd exact single-def ; V04 loc1 [V04 ] ( 39, 31.50) struct (40) [rbp-0x50] do-not-enreg[XSF] must-init addr-exposed ld-addr-op ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V06 tmp1 [V06,T29] ( 3, 2 ) ref -> rax class-hnd "Inline return value spill temp" ;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V08 tmp3 [V08,T03] ( 4, 8 ) int -> rdi "Inlining Arg" ;* V09 tmp4 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V10 tmp5 [V10,T24] ( 2, 3 ) byref -> r12 single-def "Inlining Arg" +; V10 tmp5 [V10,T24] ( 2, 3 ) byref -> rax single-def "Inlining Arg" ; V11 tmp6 [V11,T14] ( 2, 4 ) int -> rsi "Inlining Arg" -;* V12 tmp7 [V12,T34] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +;* V12 tmp7 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V13 tmp8 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V14 tmp9 [V14 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V15 tmp10 [V15 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V16 tmp11 [V16 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" -; V17 tmp12 [V17,T39] ( 2, 4 ) float -> [rbp-0x54] spill-single-def "impAppendStmt" +; V17 tmp12 [V17,T34] ( 2, 4 ) float -> [rbp-0x54] spill-single-def "impAppendStmt" ; V18 tmp13 [V18,T30] ( 3, 2 ) ref -> rax class-hnd "Inline return value spill temp" ;* V19 tmp14 [V19 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V20 tmp15 [V20,T04] ( 4, 8 ) int -> rdi "Inlining Arg" ;* V21 tmp16 [V21 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V22 tmp17 [V22,T25] ( 2, 3 ) byref -> r12 single-def "Inlining Arg" +; V22 tmp17 [V22,T25] ( 2, 3 ) byref -> rax single-def "Inlining Arg" ; V23 tmp18 [V23,T15] ( 2, 4 ) int -> rsi "Inlining Arg" -;* V24 tmp19 [V24,T35] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +;* V24 tmp19 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V25 tmp20 [V25 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V26 tmp21 [V26 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V27 tmp22 [V27 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V28 tmp23 [V28 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" -; V29 tmp24 [V29,T40] ( 2, 4 ) float -> [rbp-0x58] spill-single-def "impAppendStmt" +; V29 tmp24 [V29,T35] ( 2, 4 ) float -> [rbp-0x58] spill-single-def "impAppendStmt" ; V30 tmp25 [V30,T31] ( 3, 2 ) ref -> rax class-hnd "Inline return value spill temp" ;* V31 tmp26 [V31 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V32 tmp27 [V32,T05] ( 4, 8 ) int -> rdi "Inlining Arg" ;* V33 tmp28 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V34 tmp29 [V34,T26] ( 2, 3 ) byref -> r12 single-def "Inlining Arg" +; V34 tmp29 [V34,T26] ( 2, 3 ) byref -> rax single-def "Inlining Arg" ; V35 tmp30 [V35,T16] ( 2, 4 ) int -> rsi "Inlining Arg" -;* V36 tmp31 [V36,T36] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +;* V36 tmp31 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V37 tmp32 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V38 tmp33 [V38 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V39 tmp34 [V39 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V40 tmp35 [V40 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" -; V41 tmp36 [V41,T41] ( 2, 4 ) float -> [rbp-0x5C] spill-single-def "impAppendStmt" +; V41 tmp36 [V41,T36] ( 2, 4 ) float -> [rbp-0x5C] spill-single-def "impAppendStmt" ; V42 tmp37 [V42,T32] ( 3, 2 ) ref -> rax class-hnd "Inline return value spill temp" ;* V43 tmp38 [V43 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V44 tmp39 [V44,T06] ( 4, 8 ) int -> rdi "Inlining Arg" ;* V45 tmp40 [V45 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V46 tmp41 [V46,T27] ( 2, 3 ) byref -> r13 single-def "Inlining Arg" +; V46 tmp41 [V46,T27] ( 2, 3 ) byref -> rax single-def "Inlining Arg" ; V47 tmp42 [V47,T17] ( 2, 4 ) int -> rsi "Inlining Arg" -;* V48 tmp43 [V48,T37] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +;* V48 tmp43 [V48 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V49 tmp44 [V49 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V50 tmp45 [V50 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V51 tmp46 [V51 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V52 tmp47 [V52 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" -; V53 tmp48 [V53,T42] ( 2, 4 ) float -> [rbp-0x60] spill-single-def "impAppendStmt" +; V53 tmp48 [V53,T37] ( 2, 4 ) float -> [rbp-0x60] spill-single-def "impAppendStmt" ; V54 tmp49 [V54,T33] ( 3, 2 ) ref -> rax class-hnd "Inline return value spill temp" ;* V55 tmp50 [V55 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V56 tmp51 [V56,T07] ( 4, 8 ) int -> rdi "Inlining Arg" ;* V57 tmp52 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V58 tmp53 [V58,T28] ( 2, 3 ) byref -> rbx single-def "Inlining Arg" +; V58 tmp53 [V58,T28] ( 2, 3 ) byref -> rax single-def "Inlining Arg" ; V59 tmp54 [V59,T18] ( 2, 4 ) int -> rsi "Inlining Arg" -;* V60 tmp55 [V60,T38] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" +;* V60 tmp55 [V60 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V61 tmp56 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V62 tmp57 [V62 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V63 tmp58 [V63 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V64 tmp59 [V64 ] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP ;* V65 tmp60 [V65 ] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP ;* V66 tmp61 [V66 ] ( 0, 0 ) byref -> zero-ref single-def "field V09._reference (fldOffset=0x0)" P-INDEP ;* V67 tmp62 [V67 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP ;* V68 tmp63 [V68 ] ( 0, 0 ) byref -> zero-ref single-def "field V13._reference (fldOffset=0x0)" P-INDEP ;* V69 tmp64 [V69 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0x8)" P-INDEP ;* V70 tmp65 [V70 ] ( 0, 0 ) byref -> zero-ref "field V19._reference (fldOffset=0x0)" P-INDEP ;* V71 tmp66 [V71 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP ;* V72 tmp67 [V72 ] ( 0, 0 ) byref -> zero-ref single-def "field V21._reference (fldOffset=0x0)" P-INDEP ;* V73 tmp68 [V73 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0x8)" P-INDEP ;* V74 tmp69 [V74 ] ( 0, 0 ) byref -> zero-ref single-def "field V25._reference (fldOffset=0x0)" P-INDEP ;* V75 tmp70 [V75 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP ;* V76 tmp71 [V76 ] ( 0, 0 ) byref -> zero-ref "field V31._reference (fldOffset=0x0)" P-INDEP ;* V77 tmp72 [V77 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP ;* V78 tmp73 [V78 ] ( 0, 0 ) byref -> zero-ref single-def "field V33._reference (fldOffset=0x0)" P-INDEP ;* V79 tmp74 [V79 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP ;* V80 tmp75 [V80 ] ( 0, 0 ) byref -> zero-ref single-def "field V37._reference (fldOffset=0x0)" P-INDEP ;* V81 tmp76 [V81 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP ;* V82 tmp77 [V82 ] ( 0, 0 ) byref -> zero-ref "field V43._reference (fldOffset=0x0)" P-INDEP ;* V83 tmp78 [V83 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP ;* V84 tmp79 [V84 ] ( 0, 0 ) byref -> zero-ref single-def "field V45._reference (fldOffset=0x0)" P-INDEP ;* V85 tmp80 [V85 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x8)" P-INDEP ;* V86 tmp81 [V86 ] ( 0, 0 ) byref -> zero-ref single-def "field V49._reference (fldOffset=0x0)" P-INDEP ;* V87 tmp82 [V87 ] ( 0, 0 ) int -> zero-ref "field V49._length (fldOffset=0x8)" P-INDEP ;* V88 tmp83 [V88 ] ( 0, 0 ) byref -> zero-ref "field V55._reference (fldOffset=0x0)" P-INDEP ;* V89 tmp84 [V89 ] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP ;* V90 tmp85 [V90 ] ( 0, 0 ) byref -> zero-ref single-def "field V57._reference (fldOffset=0x0)" P-INDEP ;* V91 tmp86 [V91 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP ;* V92 tmp87 [V92 ] ( 0, 0 ) byref -> zero-ref single-def "field V61._reference (fldOffset=0x0)" P-INDEP ;* V93 tmp88 [V93 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP ; V94 tmp89 [V94,T10] ( 2, 4 ) ref -> rsi single-def "argument with side effect" ; V95 tmp90 [V95,T11] ( 2, 4 ) ref -> rsi single-def "argument with side effect" ; V96 tmp91 [V96,T12] ( 2, 4 ) ref -> rsi single-def "argument with side effect" ; V97 tmp92 [V97,T13] ( 2, 4 ) ref -> rsi single-def "argument with side effect" -; V98 cse0 [V98,T08] ( 8, 4 ) ref -> [rbp-0x68] multi-def "CSE #04: moderate" +; V98 cse0 [V98,T08] ( 8, 4 ) ref -> r12 multi-def "CSE #04: moderate" ; V99 cse1 [V99,T19] ( 3, 3 ) int -> rsi "CSE #01: moderate" ; V100 cse2 [V100,T20] ( 3, 3 ) int -> rsi "CSE #03: moderate" ; V101 cse3 [V101,T21] ( 3, 3 ) int -> rsi "CSE #05: moderate" ; V102 cse4 [V102,T22] ( 3, 3 ) int -> rsi "CSE #07: moderate" ; V103 cse5 [V103,T23] ( 3, 3 ) int -> rsi "CSE #08: moderate" ; -; Lcl frame size = 72 +; Lcl frame size = 56 G_M21109_IG01: push rbp push r15 push r14 push r13 push r12 push rbx - sub rsp, 72 - lea rbp, [rsp+0x70] + sub rsp, 56 + lea rbp, [rsp+0x60] vxorps xmm8, xmm8, xmm8 vmovdqu ymmword ptr [rbp-0x50], ymm8 xor eax, eax mov qword ptr [rbp-0x30], rax mov r15, rdi mov r14, rsi mov rbx, rdx ;; size=44 bbWeight=1 PerfScore 11.08 G_M21109_IG02: test rbx, rbx jne SHORT G_M21109_IG04 ;; size=5 bbWeight=1 PerfScore 1.25 G_M21109_IG03: mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo jmp SHORT G_M21109_IG05 ;; size=14 bbWeight=0.50 PerfScore 2.62 G_M21109_IG04: mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo call [rax]System.Globalization.NumberFormatInfo:g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo ;; size=15 bbWeight=0.50 PerfScore 1.75 G_M21109_IG05: mov r13, gword ptr [rax+0x38] lea rdi, [rbp-0x50] mov esi, 5 mov edx, 7 mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:.ctor(int,int):this mov edi, dword ptr [rbp-0x40] mov esi, dword ptr [rbp-0x30] cmp edi, esi ja G_M21109_IG34 mov rax, bword ptr [rbp-0x38] mov ecx, edi - lea r12, bword ptr [rax+2*rcx] + lea rax, bword ptr [rax+2*rcx] sub esi, edi - jne SHORT G_M21109_IG07 + je SHORT G_M21109_IG07 ;; size=58 bbWeight=1 PerfScore 12.50 G_M21109_IG06: + mov rdi, 0xD1FFAB1E + movzx rsi, word ptr [rdi] + mov word ptr [rax], si + mov edi, dword ptr [rbp-0x40] + inc edi + mov dword ptr [rbp-0x40], edi + jmp SHORT G_M21109_IG08 + ;; size=26 bbWeight=0.50 PerfScore 3.75 +G_M21109_IG07: lea rdi, [rbp-0x50] mov rsi, 0xD1FFAB1E ; '<' 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_M21109_IG08 - ;; size=28 bbWeight=0.50 PerfScore 3.00 -G_M21109_IG07: - mov rax, 0xD1FFAB1E - movzx rcx, word ptr [rax] - mov word ptr [r12], cx - mov eax, dword ptr [rbp-0x40] - inc eax - mov dword ptr [rbp-0x40], eax - ;; size=26 bbWeight=0.50 PerfScore 2.75 + ;; size=26 bbWeight=0.50 PerfScore 2.00 G_M21109_IG08: vmovss xmm0, dword ptr [r15] vmovss dword ptr [rbp-0x54], xmm0 test rbx, rbx jne SHORT G_M21109_IG10 ;; size=15 bbWeight=1 PerfScore 6.25 G_M21109_IG09: mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo jmp SHORT G_M21109_IG11 ;; size=14 bbWeight=0.50 PerfScore 2.62 G_M21109_IG10: mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo call [rax]System.Globalization.NumberFormatInfo:g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo ;; size=15 bbWeight=0.50 PerfScore 1.75 G_M21109_IG11: vmovss xmm0, dword ptr [rbp-0x54] mov rdi, r14 mov rsi, rax mov rax, 0xD1FFAB1E ; code for System.Number:FormatFloat[float](float,System.String,System.Globalization.NumberFormatInfo):System.String call [rax]System.Number:FormatFloat[float](float,System.String,System.Globalization.NumberFormatInfo):System.String mov rsi, rax lea rdi, [rbp-0x50] mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this lea rdi, [rbp-0x50] mov rsi, r13 mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this mov edi, dword ptr [rbp-0x40] mov esi, dword ptr [rbp-0x30] cmp edi, esi ja G_M21109_IG34 mov rax, bword ptr [rbp-0x38] mov ecx, edi - lea r12, bword ptr [rax+2*rcx] + lea rax, bword ptr [rax+2*rcx] sub esi, edi - jne SHORT G_M21109_IG13 + je SHORT G_M21109_IG13 ;; size=89 bbWeight=1 PerfScore 21.00 G_M21109_IG12: + mov r12, 0xD1FFAB1E ; ' ' + lea rdi, bword ptr [r12+0x0C] + movzx rsi, word ptr [rdi] + mov word ptr [rax], si + mov edi, dword ptr [rbp-0x40] + inc edi + mov dword ptr [rbp-0x40], edi + jmp SHORT G_M21109_IG14 + ;; size=31 bbWeight=0.50 PerfScore 4.00 +G_M21109_IG13: lea rdi, [rbp-0x50] mov r12, 0xD1FFAB1E ; ' ' mov rsi, r12 mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:GrowThenCopyString(System.String):this - mov gword ptr [rbp-0x68], r12 - jmp SHORT G_M21109_IG14 - ;; size=35 bbWeight=0.50 PerfScore 3.62 -G_M21109_IG13: - mov rax, 0xD1FFAB1E ; ' ' - mov gword ptr [rbp-0x68], rax - lea rcx, bword ptr [rax+0x0C] - movzx rdx, word ptr [rcx] - mov word ptr [r12], dx - mov ecx, dword ptr [rbp-0x40] - inc ecx - mov dword ptr [rbp-0x40], ecx - ;; size=34 bbWeight=0.50 PerfScore 3.50 + ;; size=29 bbWeight=0.50 PerfScore 2.12 G_M21109_IG14: vmovss xmm0, dword ptr [r15+0x04] vmovss dword ptr [rbp-0x58], xmm0 test rbx, rbx jne SHORT G_M21109_IG16 ;; size=16 bbWeight=1 PerfScore 6.25 G_M21109_IG15: - mov rcx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo - call [rcx]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo + mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo + call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo jmp SHORT G_M21109_IG17 ;; size=14 bbWeight=0.50 PerfScore 2.62 G_M21109_IG16: mov rdi, rbx - mov rcx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo - call [rcx]System.Globalization.NumberFormatInfo:g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo + mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo + call [rax]System.Globalization.NumberFormatInfo:g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo ;; size=15 bbWeight=0.50 PerfScore 1.75 G_M21109_IG17: vmovss xmm0, dword ptr [rbp-0x58] mov rdi, r14 mov rsi, rax mov rax, 0xD1FFAB1E ; code for System.Number:FormatFloat[float](float,System.String,System.Globalization.NumberFormatInfo):System.String call [rax]System.Number:FormatFloat[float](float,System.String,System.Globalization.NumberFormatInfo):System.String mov rsi, rax lea rdi, [rbp-0x50] mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this lea rdi, [rbp-0x50] mov rsi, r13 mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this mov edi, dword ptr [rbp-0x40] mov esi, dword ptr [rbp-0x30] cmp edi, esi ja G_M21109_IG34 mov rax, bword ptr [rbp-0x38] mov ecx, edi - lea r12, bword ptr [rax+2*rcx] + lea rax, bword ptr [rax+2*rcx] sub esi, edi - jne SHORT G_M21109_IG19 + je SHORT G_M21109_IG19 ;; size=89 bbWeight=1 PerfScore 21.00 G_M21109_IG18: + lea rdi, bword ptr [r12+0x0C] + movzx rsi, word ptr [rdi] + mov word ptr [rax], si + mov edi, dword ptr [rbp-0x40] + inc edi + mov dword ptr [rbp-0x40], edi + jmp SHORT G_M21109_IG20 + ;; size=21 bbWeight=0.50 PerfScore 3.88 +G_M21109_IG19: lea rdi, [rbp-0x50] - mov rsi, gword ptr [rbp-0x68] + mov rsi, r12 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_M21109_IG20 - ;; size=22 bbWeight=0.50 PerfScore 3.38 -G_M21109_IG19: - mov rax, gword ptr [rbp-0x68] - lea rcx, bword ptr [rax+0x0C] - movzx rdx, word ptr [rcx] - mov word ptr [r12], dx - mov ecx, dword ptr [rbp-0x40] - inc ecx - mov dword ptr [rbp-0x40], ecx - ;; size=24 bbWeight=0.50 PerfScore 3.38 + ;; size=19 bbWeight=0.50 PerfScore 2.00 G_M21109_IG20: vmovss xmm0, dword ptr [r15+0x08] vmovss dword ptr [rbp-0x5C], xmm0 test rbx, rbx jne SHORT G_M21109_IG22 ;; size=16 bbWeight=1 PerfScore 6.25 G_M21109_IG21: - mov rcx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo - call [rcx]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo + mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo + call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo jmp SHORT G_M21109_IG23 ;; size=14 bbWeight=0.50 PerfScore 2.62 G_M21109_IG22: mov rdi, rbx - mov rcx, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo - call [rcx]System.Globalization.NumberFormatInfo:g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo + mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo + call [rax]System.Globalization.NumberFormatInfo:g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo ;; size=15 bbWeight=0.50 PerfScore 1.75 G_M21109_IG23: vmovss xmm0, dword ptr [rbp-0x5C] mov rdi, r14 mov rsi, rax mov rax, 0xD1FFAB1E ; code for System.Number:FormatFloat[float](float,System.String,System.Globalization.NumberFormatInfo):System.String call [rax]System.Number:FormatFloat[float](float,System.String,System.Globalization.NumberFormatInfo):System.String mov rsi, rax lea rdi, [rbp-0x50] mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this lea rdi, [rbp-0x50] mov rsi, r13 mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this mov edi, dword ptr [rbp-0x40] mov esi, dword ptr [rbp-0x30] cmp edi, esi ja G_M21109_IG34 mov rax, bword ptr [rbp-0x38] mov ecx, edi - lea r13, bword ptr [rax+2*rcx] + lea rax, bword ptr [rax+2*rcx] sub esi, edi - jne SHORT G_M21109_IG25 + je SHORT G_M21109_IG25 ;; size=89 bbWeight=1 PerfScore 21.00 G_M21109_IG24: + add r12, 12 + movzx rdi, word ptr [r12] + mov word ptr [rax], di + mov edi, dword ptr [rbp-0x40] + inc edi + mov dword ptr [rbp-0x40], edi + jmp SHORT G_M21109_IG26 + ;; size=22 bbWeight=0.50 PerfScore 3.75 +G_M21109_IG25: lea rdi, [rbp-0x50] - mov rsi, gword ptr [rbp-0x68] + mov rsi, r12 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_M21109_IG26 - ;; size=22 bbWeight=0.50 PerfScore 3.38 -G_M21109_IG25: - mov r12, gword ptr [rbp-0x68] - lea rsi, bword ptr [r12+0x0C] - movzx rax, word ptr [rsi] - mov word ptr [r13], ax - mov eax, dword ptr [rbp-0x40] - inc eax - mov dword ptr [rbp-0x40], eax - ;; size=25 bbWeight=0.50 PerfScore 3.38 + ;; size=19 bbWeight=0.50 PerfScore 2.00 G_M21109_IG26: vmovss xmm0, dword ptr [r15+0x0C] vmovss dword ptr [rbp-0x60], xmm0 test rbx, rbx jne SHORT G_M21109_IG28 ;; size=16 bbWeight=1 PerfScore 6.25 G_M21109_IG27: mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo call [rax]System.Globalization.NumberFormatInfo:get_CurrentInfo():System.Globalization.NumberFormatInfo jmp SHORT G_M21109_IG29 ;; size=14 bbWeight=0.50 PerfScore 2.62 G_M21109_IG28: mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Globalization.NumberFormatInfo:g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo call [rax]System.Globalization.NumberFormatInfo:g__GetProviderNonNull|58_0(System.IFormatProvider):System.Globalization.NumberFormatInfo ;; size=15 bbWeight=0.50 PerfScore 1.75 G_M21109_IG29: vmovss xmm0, dword ptr [rbp-0x60] mov rdi, r14 mov rsi, rax mov rax, 0xD1FFAB1E ; code for System.Number:FormatFloat[float](float,System.String,System.Globalization.NumberFormatInfo):System.String call [rax]System.Number:FormatFloat[float](float,System.String,System.Globalization.NumberFormatInfo):System.String mov rsi, rax lea rdi, [rbp-0x50] mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:AppendFormatted(System.String):this mov edi, dword ptr [rbp-0x40] mov esi, dword ptr [rbp-0x30] cmp edi, esi ja SHORT G_M21109_IG34 mov rax, bword ptr [rbp-0x38] mov ecx, edi - lea rbx, bword ptr [rax+2*rcx] + lea rax, bword ptr [rax+2*rcx] sub esi, edi - jne SHORT G_M21109_IG31 + je SHORT G_M21109_IG31 ;; size=66 bbWeight=1 PerfScore 17.00 G_M21109_IG30: + mov rdi, 0xD1FFAB1E + movzx rsi, word ptr [rdi] + mov word ptr [rax], si + mov edi, dword ptr [rbp-0x40] + inc edi + mov dword ptr [rbp-0x40], edi + jmp SHORT G_M21109_IG32 + ;; size=26 bbWeight=0.50 PerfScore 3.75 +G_M21109_IG31: lea rdi, [rbp-0x50] mov rsi, 0xD1FFAB1E ; '>' 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_M21109_IG32 - ;; size=28 bbWeight=0.50 PerfScore 3.00 -G_M21109_IG31: - mov rdi, 0xD1FFAB1E - movzx rax, word ptr [rdi] - mov word ptr [rbx], ax - mov edi, dword ptr [rbp-0x40] - inc edi - mov dword ptr [rbp-0x40], edi - ;; size=24 bbWeight=0.50 PerfScore 2.75 + ;; size=26 bbWeight=0.50 PerfScore 2.00 G_M21109_IG32: lea rdi, [rbp-0x50] mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this call [rax]System.Runtime.CompilerServices.DefaultInterpolatedStringHandler:ToStringAndClear():System.String:this nop ;; size=17 bbWeight=1 PerfScore 4.00 G_M21109_IG33: - add rsp, 72 + add rsp, 56 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.25 G_M21109_IG34: 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 961, prolog size 35, PerfScore 192.08, instruction count 238, allocated bytes for code 961 (MethodHash=dabcad8a) for method System.Numerics.Vector4:ToString(System.String,System.IFormatProvider):System.String:this (FullOpts) +; Total bytes of code 938, prolog size 35, PerfScore 189.21, instruction count 234, allocated bytes for code 938 (MethodHash=dabcad8a) for method System.Numerics.Vector4:ToString(System.String,System.IFormatProvider):System.String: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/26d4c1fa53d00bac2b59ae3451132c10

MihuBot commented 1 month ago

@xtqqczze