MihuBot / runtime-utils

0 stars 0 forks source link

[JitDiff X64] xtqqczze/dotnet-runtime/spc-invert-nullcheck #765

Open MihuBot opened 1 month ago

MihuBot commented 1 month ago

Job completed in 19 minutes 4 seconds.

Diffs

Diffs ``` Found 319 files with textual diffs. Summary of Code Size diffs: (Lower is better) Total bytes of base: 39577396 Total bytes of diff: 39578869 Total bytes of delta: 1473 (0.00 % of base) Total relative delta: 2.93 diff is a regression. relative diff is a regression. Top file regressions (bytes): 915 : System.Private.CoreLib.dasm (0.01 % of base) 270 : System.Net.Http.dasm (0.03 % of base) 87 : System.Data.Common.dasm (0.01 % of base) 50 : System.Private.Xml.dasm (0.00 % of base) 48 : System.Threading.Tasks.Parallel.dasm (0.02 % of base) 34 : System.Private.Uri.dasm (0.03 % of base) 25 : System.IO.FileSystem.Watcher.dasm (0.09 % of base) 23 : Microsoft.VisualBasic.Core.dasm (0.00 % of base) 14 : System.Net.Primitives.dasm (0.01 % of base) 10 : System.Formats.Tar.dasm (0.01 % of base) 5 : System.Runtime.Numerics.dasm (0.00 % of base) 5 : Microsoft.Extensions.FileProviders.Physical.dasm (0.03 % of base) 5 : System.Net.Quic.dasm (0.00 % of base) 5 : System.Configuration.ConfigurationManager.dasm (0.00 % of base) 4 : System.Drawing.Primitives.dasm (0.01 % of base) 4 : System.IO.Ports.dasm (0.01 % of base) 3 : System.Net.Mail.dasm (0.00 % of base) 1 : System.Net.NetworkInformation.dasm (0.00 % of base) Top file improvements (bytes): -28 : System.Security.Cryptography.dasm (-0.00 % of base) -7 : System.Net.WebSockets.Client.dasm (-0.03 % of base) 20 total files with Code Size differences (2 improved, 18 regressed), 239 unchanged. Top method regressions (bytes): 381 (19.59 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionPool:BlocklistAuthority(System.Net.Http.HttpAuthority,System.Exception):this (FullOpts) 122 (2.22 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse:ProcessTerminal_HM_S_D(byref,ubyte,byref):ubyte (FullOpts) 106 (5.80 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse:ProcessTerminal_HM(byref,ubyte,byref):ubyte (FullOpts) 74 (5.03 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse:ProcessTerminal_D(byref,ubyte,byref):ubyte (FullOpts) 42 (0.73 % of base) : System.Private.CoreLib.dasm - System.DateTimeFormat:FormatCustomized[ubyte](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (FullOpts) 42 (7.49 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse+TimeSpanRawInfo:FullMatch(System.Globalization.TimeSpanFormat+FormatLiterals):ubyte:this (FullOpts) 37 (6.37 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:Remove(System.__Canon):ubyte:this (FullOpts) 36 (4.20 % of base) : System.Data.Common.dasm - System.Data.Common.DbCommand:ExecuteNonQueryAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task`1[int]:this (FullOpts) 36 (3.71 % of base) : System.Data.Common.dasm - System.Data.Common.DbCommand:ExecuteScalarAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Object]:this (FullOpts) 35 (7.51 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse+TimeSpanRawInfo:FullAppCompatMatch(System.Globalization.TimeSpanFormat+FormatLiterals):ubyte:this (FullOpts) 35 (7.35 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse+TimeSpanRawInfo:FullDHMSMatch(System.Globalization.TimeSpanFormat+FormatLiterals):ubyte:this (FullOpts) 35 (7.35 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse+TimeSpanRawInfo:FullHMSFMatch(System.Globalization.TimeSpanFormat+FormatLiterals):ubyte:this (FullOpts) 30 (0.65 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse:ProcessTerminal_HMS_F_D(byref,ubyte,byref):ubyte (FullOpts) 28 (7.16 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse+TimeSpanRawInfo:FullDHMMatch(System.Globalization.TimeSpanFormat+FormatLiterals):ubyte:this (FullOpts) 28 (7.16 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse+TimeSpanRawInfo:FullHMSMatch(System.Globalization.TimeSpanFormat+FormatLiterals):ubyte:this (FullOpts) 28 (7.35 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse+TimeSpanRawInfo:PartialAppCompatMatch(System.Globalization.TimeSpanFormat+FormatLiterals):ubyte:this (FullOpts) 22 (12.15 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.ValueTask`1[System.__Canon]:Equals(System.Object):ubyte:this (FullOpts) 21 (6.86 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse+TimeSpanRawInfo:FullHMMatch(System.Globalization.TimeSpanFormat+FormatLiterals):ubyte:this (FullOpts) 19 (2.48 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:AddIfNotPresent(System.__Canon,byref):ubyte:this (FullOpts) 19 (35.19 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.ValueTask`1[System.__Canon]:GetHashCode():int:this (FullOpts) 16 (1.52 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Utils:IsHexOrOctValue(System.String,byref):ubyte (FullOpts) (2 methods) 16 (3.31 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSet`1+AlternateLookup`1[System.__Canon,System.Nullable`1[int]]:Remove(System.Nullable`1[int]):ubyte:this (FullOpts) 16 (3.56 % of base) : System.Private.CoreLib.dasm - System.Globalization.GlobalizationMode:LoadAppLocalIcuCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]) (FullOpts) 16 (1.01 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanFormat:FormatCustomized[ubyte](System.TimeSpan,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,byref) (FullOpts) 16 (11.03 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.ValueTask`1[System.__Canon]:Equals(System.Threading.Tasks.ValueTask`1[System.__Canon]):ubyte:this (FullOpts) 16 (0.62 % of base) : System.Private.Uri.dasm - System.Uri:CheckAuthorityHelper(ulong,int,int,byref,byref,System.UriParser,byref):int:this (FullOpts) 15 (1.51 % of base) : System.Data.Common.dasm - System.Data.Common.DbCommand:ExecuteDbDataReaderAsync(int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Data.Common.DbDataReader]:this (FullOpts) 15 (0.84 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+ContentLengthReadStream+d__10:MoveNext():this (FullOpts) 15 (1.75 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:LoadIntoBuffer(long,System.Threading.CancellationToken):this (FullOpts) 14 (6.33 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse+TimeSpanRawInfo:FullDMatch(System.Globalization.TimeSpanFormat+FormatLiterals):ubyte:this (FullOpts) 11 (0.75 % of base) : System.IO.FileSystem.Watcher.dasm - System.IO.FileSystemWatcher+RunningInstance:ProcessEvent(System.IO.FileSystemWatcher+RunningInstance+NotifyEvent,byref,byref,byref):ubyte:this (FullOpts) 11 (0.57 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+ChunkedEncodingReadStream+d__16:MoveNext():this (FullOpts) 10 (1.10 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse:ProcessTerminal_DHMSF(byref,ubyte,byref):ubyte (FullOpts) 10 (0.36 % of base) : System.Net.Http.dasm - System.Net.Http.SocksHelper+d__15:MoveNext():this (FullOpts) 10 (0.19 % of base) : System.Net.Http.dasm - System.Net.Http.SocksHelper+d__14:MoveNext():this (FullOpts) 10 (1.98 % of base) : System.Private.CoreLib.dasm - System.Type:FilterNameImpl(System.Reflection.MemberInfo,System.Object,int):ubyte (FullOpts) 10 (0.80 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:FindChoiceEnumValue(System.Xml.Serialization.ElementAccessor,System.Xml.Serialization.EnumMapping,ubyte):System.String (FullOpts) 10 (0.98 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl:ParseEndElement():this (FullOpts) 10 (1.49 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextWriter:WriteEndStartTag(ubyte):this (FullOpts) 9 (1.45 % of base) : System.Private.Uri.dasm - System.Uri:GetRelativeSerializationString(int):System.String:this (FullOpts) 7 (0.64 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.FileSystem:Kill(System.String) (FullOpts) 7 (1.91 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:FindItemIndex(System.__Canon):int:this (FullOpts) 7 (1.92 % of base) : System.IO.FileSystem.Watcher.dasm - System.IO.FileSystemWatcher:NotifyFileSystemEventArgs(int,System.ReadOnlySpan`1[ushort]):this (FullOpts) 7 (0.88 % of base) : System.IO.FileSystem.Watcher.dasm - System.IO.FileSystemWatcher+RunningInstance:ProcessEvents():this (FullOpts) 7 (1.93 % of base) : System.Net.Primitives.dasm - System.Net.Cookie:Equals(System.Object):ubyte:this (FullOpts) 7 (2.48 % of base) : System.Net.Primitives.dasm - System.Net.CookieComparer:Equals(System.Net.Cookie,System.Net.Cookie):ubyte (FullOpts) 7 (3.78 % of base) : System.Private.CoreLib.dasm - System.OrdinalComparer:System.Collections.Generic.IAlternateEqualityComparer,System.String>.Equals(System.ReadOnlySpan`1[ushort],System.String):ubyte:this (FullOpts) 7 (5.79 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.ValueTask`1[System.__Canon]:op_Equality(System.Threading.Tasks.ValueTask`1[System.__Canon],System.Threading.Tasks.ValueTask`1[System.__Canon]):ubyte (FullOpts) 6 (0.68 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:Resize(int,ubyte):this (FullOpts) 5 (0.73 % of base) : Microsoft.Extensions.FileProviders.Physical.dasm - Microsoft.Extensions.FileProviders.Physical.PollingFileChangeToken:GetLastWriteTimeUtc():System.DateTime:this (FullOpts) 5 (0.62 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.Internal.InternalConfigHost:StaticGetStreamVersion(System.String):System.Configuration.Internal.FileVersion (FullOpts) 5 (0.66 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatPrimitiveDefault[long,long](System.RuntimeType,long,System.Span`1[ushort],byref):ubyte (FullOpts) 5 (0.43 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatPrimitiveNonDefault[int,long](System.RuntimeType,int,System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts) 5 (0.41 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatPrimitiveNonDefault[long,long](System.RuntimeType,long,System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts) 5 (0.43 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatPrimitiveNonDefault[short,long](System.RuntimeType,short,System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts) 5 (10.20 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarFile:GetEntryNameForBaseDirectory(System.String):System.String (FullOpts) 5 (0.55 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader:WriteUstarName(System.Span`1[ubyte]):int:this (FullOpts) 5 (4.00 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse+TimeSpanRawInfo:get_NegativeLocalized():System.Globalization.TimeSpanFormat+FormatLiterals:this (FullOpts) 5 (4.03 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse+TimeSpanRawInfo:get_PositiveLocalized():System.Globalization.TimeSpanFormat+FormatLiterals:this (FullOpts) 5 (1.23 % of base) : System.Private.CoreLib.dasm - System.Int16:TryFormat(System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):ubyte:this (FullOpts) 5 (1.25 % of base) : System.Private.CoreLib.dasm - System.Int32:TryFormat(System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):ubyte:this (FullOpts) 5 (1.18 % of base) : System.Private.CoreLib.dasm - System.Int64:TryFormat(System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):ubyte:this (FullOpts) 5 (1.18 % of base) : System.Private.CoreLib.dasm - System.IntPtr:TryFormat(System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):ubyte:this (FullOpts) 5 (3.11 % of base) : System.Private.CoreLib.dasm - System.IO.DirectoryInfo:get_Exists():ubyte:this (FullOpts) 5 (3.11 % of base) : System.Private.CoreLib.dasm - System.IO.FileInfo:get_Exists():ubyte:this (FullOpts) 5 (6.25 % of base) : System.Private.CoreLib.dasm - System.IO.FileStatus:GetCreationTime(Microsoft.Win32.SafeHandles.SafeFileHandle,ubyte):System.DateTimeOffset:this (FullOpts) 5 (1.63 % of base) : System.Private.CoreLib.dasm - System.IO.FileSystem:GetCreationTime(Microsoft.Win32.SafeHandles.SafeFileHandle):System.DateTimeOffset (FullOpts) 5 (4.31 % of base) : System.Private.CoreLib.dasm - System.IO.FileSystemInfo:get_CreationTime():System.DateTime:this (FullOpts) 5 (5.81 % of base) : System.Private.CoreLib.dasm - System.IO.FileSystemInfo:get_CreationTimeCore():System.DateTimeOffset:this (FullOpts) 5 (5.88 % of base) : System.Private.CoreLib.dasm - System.IO.FileSystemInfo:get_CreationTimeUtc():System.DateTime:this (FullOpts) 5 (4.95 % of base) : System.Private.CoreLib.dasm - System.IO.FileSystemInfo:get_ExistsCore():ubyte:this (FullOpts) 5 (5.21 % of base) : System.Private.CoreLib.dasm - System.IO.FileSystemInfo:get_LinkTarget():System.String:this (FullOpts) 5 (8.20 % of base) : System.Private.CoreLib.dasm - System.IO.FileSystemInfo:Refresh():this (FullOpts) 5 (0.90 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions+TryWriteInterpolatedStringHandler:AppendFormatted[short](short,System.String):ubyte:this (FullOpts) 5 (5.10 % of base) : System.Net.Http.dasm - System.Net.Http.DiagnosticsHelper:GetMethodTag(System.Net.Http.HttpMethod,byref):System.Collections.Generic.KeyValuePair`2[System.String,System.Object] (FullOpts) 5 (3.36 % of base) : System.Net.Http.dasm - System.Net.Http.HPack.HPackEncoder:EncodeValueStringPart(System.String,System.Span`1[ubyte]) (FullOpts) 5 (2.08 % of base) : System.Net.Http.dasm - System.Net.Http.HttpMethod:CreateHttp1EncodedBytes():ubyte[]:this (FullOpts) 5 (2.07 % of base) : System.Net.Http.dasm - System.Net.Http.HttpMethod:CreateHttp2EncodedBytes():ubyte[]:this (FullOpts) 5 (2.67 % of base) : System.Net.Http.dasm - System.Net.Http.HttpMethod:CreateHttp3EncodedBytes():ubyte[]:this (FullOpts) 5 (0.36 % of base) : System.Net.Http.dasm - System.Net.Http.Metrics.MetricsHandler:InitializeCommonTags(System.Net.Http.HttpRequestMessage):System.Diagnostics.TagList (FullOpts) 5 (3.36 % of base) : System.Net.Http.dasm - System.Net.Http.QPack.QPackEncoder:EncodeValueStringPart(System.String,System.Span`1[ubyte]) (FullOpts) 5 (0.92 % of base) : System.Net.NetworkInformation.dasm - System.Net.NetworkInformation.StringParsingHelpers:ParseIPv6GatewayAddressesFromRouteFile(System.Collections.Generic.List`1[System.Net.NetworkInformation.GatewayIPAddressInformation],System.String[],System.String,long) (FullOpts) 5 (0.80 % of base) : System.Net.Quic.dasm - System.Net.Quic.ResettableValueTaskSource:TryGetValueTask(byref,System.Object,System.Threading.CancellationToken):ubyte:this (FullOpts) 5 (0.14 % of base) : System.Runtime.Numerics.dasm - System.Number:FormatBigInteger(ubyte,System.Numerics.BigInteger,System.String,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo,System.Span`1[ushort],byref,byref):System.String (FullOpts) 5 (2.16 % of base) : System.Private.CoreLib.dasm - System.Reflection.TypeNameResolver:GetType(System.String,ubyte,ubyte,System.Reflection.Assembly):System.Type (FullOpts) 5 (1.23 % of base) : System.Private.CoreLib.dasm - System.SByte:TryFormat(System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):ubyte:this (FullOpts) 5 (0.26 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.OpenSslCachedDirectoryStoreProvider:GetNativeCollection():Microsoft.Win32.SafeHandles.SafeX509StackHandle:this (FullOpts) 5 (0.61 % of base) : System.Private.CoreLib.dasm - System.Text.Unicode.Utf8+TryWriteInterpolatedStringHandler:g__GrowAndAppendFormatted|20_0[int](byref,int,int,byref,System.String):ubyte (FullOpts) 5 (0.59 % of base) : System.Private.CoreLib.dasm - System.Text.Unicode.Utf8+TryWriteInterpolatedStringHandler:g__GrowAndAppendFormatted|20_0[long](byref,long,int,byref,System.String):ubyte (FullOpts) 5 (0.62 % of base) : System.Private.CoreLib.dasm - System.Text.Unicode.Utf8+TryWriteInterpolatedStringHandler:g__GrowAndAppendFormatted|20_0[short](byref,short,int,byref,System.String):ubyte (FullOpts) 5 (0.60 % of base) : System.Private.CoreLib.dasm - System.Text.Unicode.Utf8+TryWriteInterpolatedStringHandler:g__GrowAndAppendFormatted|20_0[System.Nullable`1[int]](byref,System.Nullable`1[int],int,byref,System.String):ubyte (FullOpts) 5 (0.48 % of base) : System.Private.CoreLib.dasm - System.TimeZoneInfo:TZif_CreateAdjustmentRuleForPosixFormat(System.String,System.DateTime,System.TimeSpan):System.TimeZoneInfo+AdjustmentRule (FullOpts) 5 (0.18 % of base) : System.Private.Uri.dasm - System.Uri:ParseRemaining():this (FullOpts) 5 (1.72 % of base) : System.Private.Xml.dasm - System.Xml.Schema.Datatype_hexBinary:TryParseValue(System.String,System.Xml.XmlNameTable,System.Xml.IXmlNamespaceResolver,byref):System.Exception:this (FullOpts) 5 (1.47 % of base) : System.Private.Xml.dasm - System.Xml.XmlConvert:TryFormat(byte,System.Span`1[ushort],byref):ubyte (FullOpts) 5 (1.52 % of base) : System.Private.Xml.dasm - System.Xml.XmlConvert:TryFormat(int,System.Span`1[ushort],byref):ubyte (FullOpts) 5 (1.36 % of base) : System.Private.Xml.dasm - System.Xml.XmlConvert:TryFormat(long,System.Span`1[ushort],byref):ubyte (FullOpts) 5 (1.47 % of base) : System.Private.Xml.dasm - System.Xml.XmlConvert:TryFormat(short,System.Span`1[ushort],byref):ubyte (FullOpts) 4 (0.25 % of base) : System.Drawing.Primitives.dasm - System.Drawing.ColorTranslator:FromHtml(System.String):System.Drawing.Color (FullOpts) 4 (0.67 % of base) : System.Private.CoreLib.dasm - System.IO.Directory:CreateTempSubdirectoryCore(System.String):System.String (FullOpts) Top method improvements (bytes): -165 (-5.48 % of base) : System.Net.Http.dasm - System.Net.Http.SocksHelper+d__13:MoveNext():this (FullOpts) -15 (-1.25 % of base) : System.Net.Http.dasm - System.Net.Http.HPack.HPackEncoder:EncodeStringLiterals(System.ReadOnlySpan`1[System.String],ubyte[],System.Text.Encoding,System.Span`1[ubyte],byref):ubyte (FullOpts) -15 (-1.29 % of base) : System.Net.Http.dasm - System.Net.Http.QPack.QPackEncoder:EncodeValueString(System.ReadOnlySpan`1[System.String],ubyte[],System.Text.Encoding,System.Span`1[ubyte],byref):ubyte (FullOpts) -15 (-5.49 % of base) : System.Private.CoreLib.dasm - System.Threading.CancellationToken:Register(System.Delegate,System.Object,ubyte,ubyte):System.Threading.CancellationTokenRegistration:this (FullOpts) -14 (-2.67 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.TaskAwaiter:OutputWaitEtwEvents(System.Threading.Tasks.Task,System.Action):System.Action (FullOpts) -11 (-1.15 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.Task:InternalWaitCore(int,System.Threading.CancellationToken):ubyte:this (FullOpts) -7 (-0.90 % of base) : System.Private.CoreLib.dasm - System.IO.Path:GetTempFileName():System.String (FullOpts) -7 (-0.87 % of base) : System.Net.WebSockets.Client.dasm - System.Net.WebSockets.WebSocketHandle:CreateSecKeyAndSecWebSocketAccept():System.Collections.Generic.KeyValuePair`2[System.String,System.String] (FullOpts) -6 (-4.48 % of base) : System.Private.CoreLib.dasm - System.DateTimeParse:SetIfStartsWith(System.ReadOnlySpan`1[ushort],System.String,int,byref,byref) (FullOpts) -6 (-1.81 % of base) : System.Net.Http.dasm - System.Net.Http.HPack.HPackEncoder:EncodeStringLiteral(System.String,System.Text.Encoding,System.Span`1[ubyte],byref):ubyte (FullOpts) -6 (-1.81 % of base) : System.Net.Http.dasm - System.Net.Http.QPack.QPackEncoder:EncodeValueString(System.String,System.Text.Encoding,System.Span`1[ubyte],byref):ubyte (FullOpts) -5 (-0.81 % of base) : System.Private.CoreLib.dasm - System.DateOnly:TryParseExactInternal(System.ReadOnlySpan`1[ushort],System.String[],System.IFormatProvider,int,byref):int (FullOpts) -5 (-5.88 % of base) : System.Private.CoreLib.dasm - System.Guid:TryParseExact(System.String,System.String,byref):ubyte (FullOpts) -5 (-6.58 % of base) : System.Private.CoreLib.dasm - System.Number:TryCopyTo[ubyte](System.String,System.Span`1[ubyte],byref):ubyte (FullOpts) -5 (-0.73 % of base) : System.Private.CoreLib.dasm - System.TimeOnly:TryParseExactInternal(System.ReadOnlySpan`1[ushort],System.String[],System.IFormatProvider,int,byref):int (FullOpts) -4 (-0.68 % of base) : System.Private.CoreLib.dasm - System.Environment:GetEnvironmentVariables():System.Collections.IDictionary (FullOpts) -4 (-0.22 % of base) : System.Private.CoreLib.dasm - System.Environment:ReadXdgDirectory(System.String,System.String,System.String):System.String (FullOpts) -4 (-0.46 % of base) : System.Net.NetworkInformation.dasm - System.Net.NetworkInformation.StringParsingHelpers:ParseDhcpServerAddressesFromLeasesFile(System.Collections.Generic.List`1[System.Net.IPAddress],System.String,System.String) (FullOpts) -4 (-0.85 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.TaskAwaiter+<>c:b__12_0(System.Action,System.Threading.Tasks.Task):this (FullOpts) -4 (-0.69 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemKeyHelpers:TryExportToPem[double](double,System.String,System.Security.Cryptography.PemKeyHelpers+TryExportKeyAction`1[double],System.Span`1[ushort],byref):ubyte (FullOpts) -4 (-0.70 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemKeyHelpers:TryExportToPem[int](int,System.String,System.Security.Cryptography.PemKeyHelpers+TryExportKeyAction`1[int],System.Span`1[ushort],byref):ubyte (FullOpts) -4 (-0.70 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemKeyHelpers:TryExportToPem[long](long,System.String,System.Security.Cryptography.PemKeyHelpers+TryExportKeyAction`1[long],System.Span`1[ushort],byref):ubyte (FullOpts) -4 (-0.70 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemKeyHelpers:TryExportToPem[short](short,System.String,System.Security.Cryptography.PemKeyHelpers+TryExportKeyAction`1[short],System.Span`1[ushort],byref):ubyte (FullOpts) -4 (-0.70 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemKeyHelpers:TryExportToPem[System.__Canon](System.__Canon,System.String,System.Security.Cryptography.PemKeyHelpers+TryExportKeyAction`1[System.__Canon],System.Span`1[ushort],byref):ubyte (FullOpts) -4 (-0.70 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemKeyHelpers:TryExportToPem[System.Nullable`1[int]](System.Nullable`1[int],System.String,System.Security.Cryptography.PemKeyHelpers+TryExportKeyAction`1[System.Nullable`1[int]],System.Span`1[ushort],byref):ubyte (FullOpts) -4 (-0.68 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemKeyHelpers:TryExportToPem[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float],System.String,System.Security.Cryptography.PemKeyHelpers+TryExportKeyAction`1[System.Numerics.Vector`1[float]],System.Span`1[ushort],byref):ubyte (FullOpts) -4 (-0.70 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemKeyHelpers:TryExportToPem[ubyte](ubyte,System.String,System.Security.Cryptography.PemKeyHelpers+TryExportKeyAction`1[ubyte],System.Span`1[ushort],byref):ubyte (FullOpts) -4 (-0.22 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X500NameEncoder:ParseDistinguishedName(System.String,System.String,ubyte,ubyte):System.Collections.Generic.List`1[ubyte[]] (FullOpts) -3 (-2.03 % of base) : System.Private.CoreLib.dasm - System.__DTString:Match(System.String):ubyte:this (FullOpts) -3 (-2.16 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.ValueTask`1[System.__Canon]:op_Inequality(System.Threading.Tasks.ValueTask`1[System.__Canon],System.Threading.Tasks.ValueTask`1[System.__Canon]):ubyte (FullOpts) -3 (-0.66 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl:AddAttribute(int,int):System.Xml.XmlTextReaderImpl+NodeData:this (FullOpts) -3 (-0.17 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl:ParseElement():this (FullOpts) -3 (-0.42 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl:ParseElementAsync_SetElement(int,int):System.Threading.Tasks.Task:this (FullOpts) -2 (-0.15 % of base) : System.Private.Xml.dasm - System.Xml.XmlWellFormedWriter+d__139:MoveNext():this (FullOpts) -1 (-0.39 % of base) : System.Private.CoreLib.dasm - System.ComAwareWeakReference:SetTarget(byref,System.Object,System.ComAwareWeakReference+ComInfo) (FullOpts) Top method regressions (percentages): 19 (35.19 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.ValueTask`1[System.__Canon]:GetHashCode():int:this (FullOpts) 381 (19.59 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionPool:BlocklistAuthority(System.Net.Http.HttpAuthority,System.Exception):this (FullOpts) 22 (12.15 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.ValueTask`1[System.__Canon]:Equals(System.Object):ubyte:this (FullOpts) 16 (11.03 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.ValueTask`1[System.__Canon]:Equals(System.Threading.Tasks.ValueTask`1[System.__Canon]):ubyte:this (FullOpts) 5 (10.20 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarFile:GetEntryNameForBaseDirectory(System.String):System.String (FullOpts) 5 (8.20 % of base) : System.Private.CoreLib.dasm - System.IO.FileSystemInfo:Refresh():this (FullOpts) 35 (7.51 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse+TimeSpanRawInfo:FullAppCompatMatch(System.Globalization.TimeSpanFormat+FormatLiterals):ubyte:this (FullOpts) 42 (7.49 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse+TimeSpanRawInfo:FullMatch(System.Globalization.TimeSpanFormat+FormatLiterals):ubyte:this (FullOpts) 35 (7.35 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse+TimeSpanRawInfo:FullDHMSMatch(System.Globalization.TimeSpanFormat+FormatLiterals):ubyte:this (FullOpts) 35 (7.35 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse+TimeSpanRawInfo:FullHMSFMatch(System.Globalization.TimeSpanFormat+FormatLiterals):ubyte:this (FullOpts) 28 (7.35 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse+TimeSpanRawInfo:PartialAppCompatMatch(System.Globalization.TimeSpanFormat+FormatLiterals):ubyte:this (FullOpts) 28 (7.16 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse+TimeSpanRawInfo:FullDHMMatch(System.Globalization.TimeSpanFormat+FormatLiterals):ubyte:this (FullOpts) 28 (7.16 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse+TimeSpanRawInfo:FullHMSMatch(System.Globalization.TimeSpanFormat+FormatLiterals):ubyte:this (FullOpts) 21 (6.86 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse+TimeSpanRawInfo:FullHMMatch(System.Globalization.TimeSpanFormat+FormatLiterals):ubyte:this (FullOpts) 37 (6.37 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:Remove(System.__Canon):ubyte:this (FullOpts) 14 (6.33 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse+TimeSpanRawInfo:FullDMatch(System.Globalization.TimeSpanFormat+FormatLiterals):ubyte:this (FullOpts) 5 (6.25 % of base) : System.Private.CoreLib.dasm - System.IO.FileStatus:GetCreationTime(Microsoft.Win32.SafeHandles.SafeFileHandle,ubyte):System.DateTimeOffset:this (FullOpts) 5 (5.88 % of base) : System.Private.CoreLib.dasm - System.IO.FileSystemInfo:get_CreationTimeUtc():System.DateTime:this (FullOpts) 5 (5.81 % of base) : System.Private.CoreLib.dasm - System.IO.FileSystemInfo:get_CreationTimeCore():System.DateTimeOffset:this (FullOpts) 106 (5.80 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse:ProcessTerminal_HM(byref,ubyte,byref):ubyte (FullOpts) 7 (5.79 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.ValueTask`1[System.__Canon]:op_Equality(System.Threading.Tasks.ValueTask`1[System.__Canon],System.Threading.Tasks.ValueTask`1[System.__Canon]):ubyte (FullOpts) 5 (5.21 % of base) : System.Private.CoreLib.dasm - System.IO.FileSystemInfo:get_LinkTarget():System.String:this (FullOpts) 5 (5.10 % of base) : System.Net.Http.dasm - System.Net.Http.DiagnosticsHelper:GetMethodTag(System.Net.Http.HttpMethod,byref):System.Collections.Generic.KeyValuePair`2[System.String,System.Object] (FullOpts) 74 (5.03 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse:ProcessTerminal_D(byref,ubyte,byref):ubyte (FullOpts) 5 (4.95 % of base) : System.Private.CoreLib.dasm - System.IO.FileSystemInfo:get_ExistsCore():ubyte:this (FullOpts) 5 (4.31 % of base) : System.Private.CoreLib.dasm - System.IO.FileSystemInfo:get_CreationTime():System.DateTime:this (FullOpts) 36 (4.20 % of base) : System.Data.Common.dasm - System.Data.Common.DbCommand:ExecuteNonQueryAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task`1[int]:this (FullOpts) 5 (4.03 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse+TimeSpanRawInfo:get_PositiveLocalized():System.Globalization.TimeSpanFormat+FormatLiterals:this (FullOpts) 5 (4.00 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse+TimeSpanRawInfo:get_NegativeLocalized():System.Globalization.TimeSpanFormat+FormatLiterals:this (FullOpts) 3 (3.90 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.ValueTask`1[System.Numerics.Vector`1[float]]:GetHashCode():int:this (FullOpts) 7 (3.78 % of base) : System.Private.CoreLib.dasm - System.OrdinalComparer:System.Collections.Generic.IAlternateEqualityComparer,System.String>.Equals(System.ReadOnlySpan`1[ushort],System.String):ubyte:this (FullOpts) 36 (3.71 % of base) : System.Data.Common.dasm - System.Data.Common.DbCommand:ExecuteScalarAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Object]:this (FullOpts) 16 (3.56 % of base) : System.Private.CoreLib.dasm - System.Globalization.GlobalizationMode:LoadAppLocalIcuCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]) (FullOpts) 2 (3.39 % of base) : System.Private.Xml.dasm - System.Xml.XmlCharacterData:CheckOnData(System.String):ubyte (FullOpts) 5 (3.36 % of base) : System.Net.Http.dasm - System.Net.Http.HPack.HPackEncoder:EncodeValueStringPart(System.String,System.Span`1[ubyte]) (FullOpts) 5 (3.36 % of base) : System.Net.Http.dasm - System.Net.Http.QPack.QPackEncoder:EncodeValueStringPart(System.String,System.Span`1[ubyte]) (FullOpts) 16 (3.31 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSet`1+AlternateLookup`1[System.__Canon,System.Nullable`1[int]]:Remove(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (3.11 % of base) : System.Private.CoreLib.dasm - System.IO.DirectoryInfo:get_Exists():ubyte:this (FullOpts) 5 (3.11 % of base) : System.Private.CoreLib.dasm - System.IO.FileInfo:get_Exists():ubyte:this (FullOpts) 5 (2.67 % of base) : System.Net.Http.dasm - System.Net.Http.HttpMethod:CreateHttp3EncodedBytes():ubyte[]:this (FullOpts) 7 (2.48 % of base) : System.Net.Primitives.dasm - System.Net.CookieComparer:Equals(System.Net.Cookie,System.Net.Cookie):ubyte (FullOpts) 19 (2.48 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:AddIfNotPresent(System.__Canon,byref):ubyte:this (FullOpts) 122 (2.22 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse:ProcessTerminal_HM_S_D(byref,ubyte,byref):ubyte (FullOpts) 5 (2.16 % of base) : System.Private.CoreLib.dasm - System.Reflection.TypeNameResolver:GetType(System.String,ubyte,ubyte,System.Reflection.Assembly):System.Type (FullOpts) 5 (2.08 % of base) : System.Net.Http.dasm - System.Net.Http.HttpMethod:CreateHttp1EncodedBytes():ubyte[]:this (FullOpts) 5 (2.07 % of base) : System.Net.Http.dasm - System.Net.Http.HttpMethod:CreateHttp2EncodedBytes():ubyte[]:this (FullOpts) 10 (1.98 % of base) : System.Private.CoreLib.dasm - System.Type:FilterNameImpl(System.Reflection.MemberInfo,System.Object,int):ubyte (FullOpts) 7 (1.93 % of base) : System.Net.Primitives.dasm - System.Net.Cookie:Equals(System.Object):ubyte:this (FullOpts) 7 (1.92 % of base) : System.IO.FileSystem.Watcher.dasm - System.IO.FileSystemWatcher:NotifyFileSystemEventArgs(int,System.ReadOnlySpan`1[ushort]):this (FullOpts) 7 (1.91 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:FindItemIndex(System.__Canon):int:this (FullOpts) 3 (1.75 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X500NameEncoder:ParseOid(System.ReadOnlySpan`1[ushort]):System.ReadOnlySpan`1[ushort] (FullOpts) 15 (1.75 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:LoadIntoBuffer(long,System.Threading.CancellationToken):this (FullOpts) 2 (1.72 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.ValueTask`1[System.Nullable`1[int]]:Equals(System.Object):ubyte:this (FullOpts) 5 (1.72 % of base) : System.Private.Xml.dasm - System.Xml.Schema.Datatype_hexBinary:TryParseValue(System.String,System.Xml.XmlNameTable,System.Xml.IXmlNamespaceResolver,byref):System.Exception:this (FullOpts) 5 (1.63 % of base) : System.Private.CoreLib.dasm - System.IO.FileSystem:GetCreationTime(Microsoft.Win32.SafeHandles.SafeFileHandle):System.DateTimeOffset (FullOpts) 5 (1.52 % of base) : System.Private.Xml.dasm - System.Xml.XmlConvert:TryFormat(int,System.Span`1[ushort],byref):ubyte (FullOpts) 16 (1.52 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.Utils:IsHexOrOctValue(System.String,byref):ubyte (FullOpts) (2 methods) 15 (1.51 % of base) : System.Data.Common.dasm - System.Data.Common.DbCommand:ExecuteDbDataReaderAsync(int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Data.Common.DbDataReader]:this (FullOpts) 10 (1.49 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextWriter:WriteEndStartTag(ubyte):this (FullOpts) 5 (1.47 % of base) : System.Private.Xml.dasm - System.Xml.XmlConvert:TryFormat(byte,System.Span`1[ushort],byref):ubyte (FullOpts) 5 (1.47 % of base) : System.Private.Xml.dasm - System.Xml.XmlConvert:TryFormat(short,System.Span`1[ushort],byref):ubyte (FullOpts) 9 (1.45 % of base) : System.Private.Uri.dasm - System.Uri:GetRelativeSerializationString(int):System.String:this (FullOpts) 5 (1.36 % of base) : System.Private.Xml.dasm - System.Xml.XmlConvert:TryFormat(long,System.Span`1[ushort],byref):ubyte (FullOpts) 5 (1.25 % of base) : System.Private.CoreLib.dasm - System.Int32:TryFormat(System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):ubyte:this (FullOpts) 5 (1.23 % of base) : System.Private.CoreLib.dasm - System.Int16:TryFormat(System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):ubyte:this (FullOpts) 5 (1.23 % of base) : System.Private.CoreLib.dasm - System.SByte:TryFormat(System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):ubyte:this (FullOpts) 5 (1.18 % of base) : System.Private.CoreLib.dasm - System.Int64:TryFormat(System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):ubyte:this (FullOpts) 5 (1.18 % of base) : System.Private.CoreLib.dasm - System.IntPtr:TryFormat(System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):ubyte:this (FullOpts) 10 (1.10 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse:ProcessTerminal_DHMSF(byref,ubyte,byref):ubyte (FullOpts) 4 (1.05 % of base) : System.IO.Ports.dasm - System.IO.Ports.SerialStream+SerialStreamIORequest:.ctor(System.IO.Ports.SerialStream,System.Threading.CancellationToken):this (FullOpts) 1 (1.02 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshal:StringToAnsiString(System.String,ulong,int,ubyte,ubyte):int (FullOpts) 16 (1.01 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanFormat:FormatCustomized[ubyte](System.TimeSpan,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,byref) (FullOpts) 10 (0.98 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl:ParseEndElement():this (FullOpts) 5 (0.92 % of base) : System.Net.NetworkInformation.dasm - System.Net.NetworkInformation.StringParsingHelpers:ParseIPv6GatewayAddressesFromRouteFile(System.Collections.Generic.List`1[System.Net.NetworkInformation.GatewayIPAddressInformation],System.String[],System.String,long) (FullOpts) 5 (0.90 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions+TryWriteInterpolatedStringHandler:AppendFormatted[short](short,System.String):ubyte:this (FullOpts) 7 (0.88 % of base) : System.IO.FileSystem.Watcher.dasm - System.IO.FileSystemWatcher+RunningInstance:ProcessEvents():this (FullOpts) 15 (0.84 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+ContentLengthReadStream+d__10:MoveNext():this (FullOpts) 10 (0.80 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:FindChoiceEnumValue(System.Xml.Serialization.ElementAccessor,System.Xml.Serialization.EnumMapping,ubyte):System.String (FullOpts) 5 (0.80 % of base) : System.Net.Quic.dasm - System.Net.Quic.ResettableValueTaskSource:TryGetValueTask(byref,System.Object,System.Threading.CancellationToken):ubyte:this (FullOpts) 4 (0.76 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl:ParseEndElementAsync_CheckNameAndParse():System.Threading.Tasks.Task:this (FullOpts) 11 (0.75 % of base) : System.IO.FileSystem.Watcher.dasm - System.IO.FileSystemWatcher+RunningInstance:ProcessEvent(System.IO.FileSystemWatcher+RunningInstance+NotifyEvent,byref,byref,byref):ubyte:this (FullOpts) 42 (0.73 % of base) : System.Private.CoreLib.dasm - System.DateTimeFormat:FormatCustomized[ubyte](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (FullOpts) 5 (0.73 % of base) : Microsoft.Extensions.FileProviders.Physical.dasm - Microsoft.Extensions.FileProviders.Physical.PollingFileChangeToken:GetLastWriteTimeUtc():System.DateTime:this (FullOpts) 4 (0.72 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions+TryWriteInterpolatedStringHandler:AppendFormatted[int](int,System.String):ubyte:this (FullOpts) 6 (0.68 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSet`1[System.__Canon]:Resize(int,ubyte):this (FullOpts) 4 (0.67 % of base) : System.Private.CoreLib.dasm - System.IO.Directory:CreateTempSubdirectoryCore(System.String):System.String (FullOpts) 5 (0.66 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatPrimitiveDefault[long,long](System.RuntimeType,long,System.Span`1[ushort],byref):ubyte (FullOpts) 30 (0.65 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse:ProcessTerminal_HMS_F_D(byref,ubyte,byref):ubyte (FullOpts) 7 (0.64 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.FileSystem:Kill(System.String) (FullOpts) 5 (0.62 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.Internal.InternalConfigHost:StaticGetStreamVersion(System.String):System.Configuration.Internal.FileVersion (FullOpts) 16 (0.62 % of base) : System.Private.Uri.dasm - System.Uri:CheckAuthorityHelper(ulong,int,int,byref,byref,System.UriParser,byref):int:this (FullOpts) 5 (0.62 % of base) : System.Private.CoreLib.dasm - System.Text.Unicode.Utf8+TryWriteInterpolatedStringHandler:g__GrowAndAppendFormatted|20_0[short](byref,short,int,byref,System.String):ubyte (FullOpts) 5 (0.61 % of base) : System.Private.CoreLib.dasm - System.Text.Unicode.Utf8+TryWriteInterpolatedStringHandler:g__GrowAndAppendFormatted|20_0[int](byref,int,int,byref,System.String):ubyte (FullOpts) 5 (0.60 % of base) : System.Private.CoreLib.dasm - System.Text.Unicode.Utf8+TryWriteInterpolatedStringHandler:g__GrowAndAppendFormatted|20_0[System.Nullable`1[int]](byref,System.Nullable`1[int],int,byref,System.String):ubyte (FullOpts) 5 (0.59 % of base) : System.Private.CoreLib.dasm - System.Text.Unicode.Utf8+TryWriteInterpolatedStringHandler:g__GrowAndAppendFormatted|20_0[long](byref,long,int,byref,System.String):ubyte (FullOpts) 11 (0.57 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+ChunkedEncodingReadStream+d__16:MoveNext():this (FullOpts) 5 (0.55 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader:WriteUstarName(System.Span`1[ubyte]):int:this (FullOpts) 5 (0.48 % of base) : System.Private.CoreLib.dasm - System.TimeZoneInfo:TZif_CreateAdjustmentRuleForPosixFormat(System.String,System.DateTime,System.TimeSpan):System.TimeZoneInfo+AdjustmentRule (FullOpts) 5 (0.43 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatPrimitiveNonDefault[int,long](System.RuntimeType,int,System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts) 5 (0.43 % of base) : System.Private.CoreLib.dasm - System.Enum:TryFormatPrimitiveNonDefault[short,long](System.RuntimeType,short,System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort]):ubyte (FullOpts) Top method improvements (percentages): -5 (-6.58 % of base) : System.Private.CoreLib.dasm - System.Number:TryCopyTo[ubyte](System.String,System.Span`1[ubyte],byref):ubyte (FullOpts) -5 (-5.88 % of base) : System.Private.CoreLib.dasm - System.Guid:TryParseExact(System.String,System.String,byref):ubyte (FullOpts) -15 (-5.49 % of base) : System.Private.CoreLib.dasm - System.Threading.CancellationToken:Register(System.Delegate,System.Object,ubyte,ubyte):System.Threading.CancellationTokenRegistration:this (FullOpts) -165 (-5.48 % of base) : System.Net.Http.dasm - System.Net.Http.SocksHelper+d__13:MoveNext():this (FullOpts) -6 (-4.48 % of base) : System.Private.CoreLib.dasm - System.DateTimeParse:SetIfStartsWith(System.ReadOnlySpan`1[ushort],System.String,int,byref,byref) (FullOpts) -14 (-2.67 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.TaskAwaiter:OutputWaitEtwEvents(System.Threading.Tasks.Task,System.Action):System.Action (FullOpts) -3 (-2.16 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.ValueTask`1[System.__Canon]:op_Inequality(System.Threading.Tasks.ValueTask`1[System.__Canon],System.Threading.Tasks.ValueTask`1[System.__Canon]):ubyte (FullOpts) -3 (-2.03 % of base) : System.Private.CoreLib.dasm - System.__DTString:Match(System.String):ubyte:this (FullOpts) -6 (-1.81 % of base) : System.Net.Http.dasm - System.Net.Http.HPack.HPackEncoder:EncodeStringLiteral(System.String,System.Text.Encoding,System.Span`1[ubyte],byref):ubyte (FullOpts) -6 (-1.81 % of base) : System.Net.Http.dasm - System.Net.Http.QPack.QPackEncoder:EncodeValueString(System.String,System.Text.Encoding,System.Span`1[ubyte],byref):ubyte (FullOpts) -15 (-1.29 % of base) : System.Net.Http.dasm - System.Net.Http.QPack.QPackEncoder:EncodeValueString(System.ReadOnlySpan`1[System.String],ubyte[],System.Text.Encoding,System.Span`1[ubyte],byref):ubyte (FullOpts) -15 (-1.25 % of base) : System.Net.Http.dasm - System.Net.Http.HPack.HPackEncoder:EncodeStringLiterals(System.ReadOnlySpan`1[System.String],ubyte[],System.Text.Encoding,System.Span`1[ubyte],byref):ubyte (FullOpts) -11 (-1.15 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.Task:InternalWaitCore(int,System.Threading.CancellationToken):ubyte:this (FullOpts) -7 (-0.90 % of base) : System.Private.CoreLib.dasm - System.IO.Path:GetTempFileName():System.String (FullOpts) -7 (-0.87 % of base) : System.Net.WebSockets.Client.dasm - System.Net.WebSockets.WebSocketHandle:CreateSecKeyAndSecWebSocketAccept():System.Collections.Generic.KeyValuePair`2[System.String,System.String] (FullOpts) -4 (-0.85 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.TaskAwaiter+<>c:b__12_0(System.Action,System.Threading.Tasks.Task):this (FullOpts) -5 (-0.81 % of base) : System.Private.CoreLib.dasm - System.DateOnly:TryParseExactInternal(System.ReadOnlySpan`1[ushort],System.String[],System.IFormatProvider,int,byref):int (FullOpts) -5 (-0.73 % of base) : System.Private.CoreLib.dasm - System.TimeOnly:TryParseExactInternal(System.ReadOnlySpan`1[ushort],System.String[],System.IFormatProvider,int,byref):int (FullOpts) -4 (-0.70 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemKeyHelpers:TryExportToPem[System.__Canon](System.__Canon,System.String,System.Security.Cryptography.PemKeyHelpers+TryExportKeyAction`1[System.__Canon],System.Span`1[ushort],byref):ubyte (FullOpts) -4 (-0.70 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemKeyHelpers:TryExportToPem[int](int,System.String,System.Security.Cryptography.PemKeyHelpers+TryExportKeyAction`1[int],System.Span`1[ushort],byref):ubyte (FullOpts) -4 (-0.70 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemKeyHelpers:TryExportToPem[long](long,System.String,System.Security.Cryptography.PemKeyHelpers+TryExportKeyAction`1[long],System.Span`1[ushort],byref):ubyte (FullOpts) -4 (-0.70 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemKeyHelpers:TryExportToPem[short](short,System.String,System.Security.Cryptography.PemKeyHelpers+TryExportKeyAction`1[short],System.Span`1[ushort],byref):ubyte (FullOpts) -4 (-0.70 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemKeyHelpers:TryExportToPem[ubyte](ubyte,System.String,System.Security.Cryptography.PemKeyHelpers+TryExportKeyAction`1[ubyte],System.Span`1[ushort],byref):ubyte (FullOpts) -4 (-0.70 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemKeyHelpers:TryExportToPem[System.Nullable`1[int]](System.Nullable`1[int],System.String,System.Security.Cryptography.PemKeyHelpers+TryExportKeyAction`1[System.Nullable`1[int]],System.Span`1[ushort],byref):ubyte (FullOpts) -4 (-0.69 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemKeyHelpers:TryExportToPem[double](double,System.String,System.Security.Cryptography.PemKeyHelpers+TryExportKeyAction`1[double],System.Span`1[ushort],byref):ubyte (FullOpts) -4 (-0.68 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.PemKeyHelpers:TryExportToPem[System.Numerics.Vector`1[float]](System.Numerics.Vector`1[float],System.String,System.Security.Cryptography.PemKeyHelpers+TryExportKeyAction`1[System.Numerics.Vector`1[float]],System.Span`1[ushort],byref):ubyte (FullOpts) -4 (-0.68 % of base) : System.Private.CoreLib.dasm - System.Environment:GetEnvironmentVariables():System.Collections.IDictionary (FullOpts) -3 (-0.66 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl:AddAttribute(int,int):System.Xml.XmlTextReaderImpl+NodeData:this (FullOpts) -4 (-0.46 % of base) : System.Net.NetworkInformation.dasm - System.Net.NetworkInformation.StringParsingHelpers:ParseDhcpServerAddressesFromLeasesFile(System.Collections.Generic.List`1[System.Net.IPAddress],System.String,System.String) (FullOpts) -3 (-0.42 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl:ParseElementAsync_SetElement(int,int):System.Threading.Tasks.Task:this (FullOpts) -1 (-0.39 % of base) : System.Private.CoreLib.dasm - System.ComAwareWeakReference:SetTarget(byref,System.Object,System.ComAwareWeakReference+ComInfo) (FullOpts) -4 (-0.22 % of base) : System.Private.CoreLib.dasm - System.Environment:ReadXdgDirectory(System.String,System.String,System.String):System.String (FullOpts) -4 (-0.22 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X500NameEncoder:ParseDistinguishedName(System.String,System.String,ubyte,ubyte):System.Collections.Generic.List`1[ubyte[]] (FullOpts) -3 (-0.17 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl:ParseElement():this (FullOpts) -2 (-0.15 % of base) : System.Private.Xml.dasm - System.Xml.XmlWellFormedWriter+d__139:MoveNext():this (FullOpts) 163 total methods with Code Size differences (35 improved, 128 regressed), 232494 unchanged. -------------------------------------------------------------------------------- ```

Artifacts:

MihuBot commented 1 month ago

Top method regressions

42 (7.49 % of base) - System.Globalization.TimeSpanParse+TimeSpanRawInfo:FullMatch(System.Globalization.TimeSpanFormat+FormatLiterals):ubyte:this ```diff ; Assembly listing for method System.Globalization.TimeSpanParse+TimeSpanRawInfo:FullMatch(System.Globalization.TimeSpanFormat+FormatLiterals):ubyte: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; 48 single block inlinees; 18 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T00] ( 16, 9.50) byref -> rbx this single-def ; V01 arg1 [V01,T69] ( 1, 1 ) struct (40) [rbp+0x10] do-not-enreg[SF] ld-addr-op single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V03 tmp1 [V03 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" ;* V04 tmp2 [V04 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V05 tmp3 [V05 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" ;* V06 tmp4 [V06 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V07 tmp5 [V07 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" ;* V08 tmp6 [V08 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V09 tmp7 [V09 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" ;* V10 tmp8 [V10 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V11 tmp9 [V11 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" ;* V12 tmp10 [V12 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V13 tmp11 [V13 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" ;* V14 tmp12 [V14 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V15 tmp13 [V15 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" ; V16 tmp14 [V16,T02] ( 4, 4 ) ref -> rsi class-hnd exact single-def "Inlining Arg" -;* V17 tmp15 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -;* V18 tmp16 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" +;* V17 tmp15 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" +;* V18 tmp16 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V19 tmp17 [V19,T16] ( 2, 2 ) byref -> rax single-def "Inlining Arg" ; V20 tmp18 [V20,T22] ( 2, 2 ) int -> rsi "Inlining Arg" ; V21 tmp19 [V21,T46] ( 2, 1 ) ubyte -> rax "Inline return value spill temp" ;* V22 tmp20 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V23 tmp21 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V24 tmp22 [V24,T47] ( 2, 1 ) ubyte -> rax "Inline return value spill temp" ;* V25 tmp23 [V25 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V26 tmp24 [V26 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V27 tmp25 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V28 tmp26 [V28 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V29 tmp27 [V29 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt" ;* V30 tmp28 [V30 ] ( 0, 0 ) byref -> zero-ref single-def "impAppendStmt" ;* V31 tmp29 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V32 tmp30 [V32 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V33 tmp31 [V33 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V34 tmp32 [V34 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V35 tmp33 [V35 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" ; V36 tmp34 [V36,T03] ( 4, 4 ) ref -> rsi class-hnd exact single-def "Inlining Arg" -;* V37 tmp35 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -;* V38 tmp36 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" +;* V37 tmp35 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" +;* V38 tmp36 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V39 tmp37 [V39,T17] ( 2, 2 ) byref -> rax single-def "Inlining Arg" ; V40 tmp38 [V40,T23] ( 2, 2 ) int -> rsi "Inlining Arg" ; V41 tmp39 [V41,T48] ( 2, 1 ) ubyte -> rax "Inline return value spill temp" ;* V42 tmp40 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V43 tmp41 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V44 tmp42 [V44,T49] ( 2, 1 ) ubyte -> rax "Inline return value spill temp" ;* V45 tmp43 [V45 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V46 tmp44 [V46 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V47 tmp45 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V48 tmp46 [V48 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V49 tmp47 [V49 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt" ;* V50 tmp48 [V50 ] ( 0, 0 ) byref -> zero-ref single-def "impAppendStmt" ;* V51 tmp49 [V51 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V52 tmp50 [V52 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V53 tmp51 [V53 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V54 tmp52 [V54 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V55 tmp53 [V55 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" ; V56 tmp54 [V56,T04] ( 4, 4 ) ref -> rsi class-hnd exact single-def "Inlining Arg" -;* V57 tmp55 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -;* V58 tmp56 [V58 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" +;* V57 tmp55 [V57 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" +;* V58 tmp56 [V58 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V59 tmp57 [V59,T18] ( 2, 2 ) byref -> rax single-def "Inlining Arg" ; V60 tmp58 [V60,T24] ( 2, 2 ) int -> rsi "Inlining Arg" ; V61 tmp59 [V61,T50] ( 2, 1 ) ubyte -> rax "Inline return value spill temp" ;* V62 tmp60 [V62 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V63 tmp61 [V63 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V64 tmp62 [V64,T51] ( 2, 1 ) ubyte -> rax "Inline return value spill temp" ;* V65 tmp63 [V65 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V66 tmp64 [V66 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V67 tmp65 [V67 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V68 tmp66 [V68 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V69 tmp67 [V69 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt" ;* V70 tmp68 [V70 ] ( 0, 0 ) byref -> zero-ref single-def "impAppendStmt" ;* V71 tmp69 [V71 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V72 tmp70 [V72 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V73 tmp71 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V74 tmp72 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V75 tmp73 [V75 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" ; V76 tmp74 [V76,T05] ( 4, 4 ) ref -> rsi class-hnd exact single-def "Inlining Arg" -;* V77 tmp75 [V77 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -;* V78 tmp76 [V78 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" +;* V77 tmp75 [V77 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" +;* V78 tmp76 [V78 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V79 tmp77 [V79,T19] ( 2, 2 ) byref -> rax single-def "Inlining Arg" ; V80 tmp78 [V80,T25] ( 2, 2 ) int -> rsi "Inlining Arg" ; V81 tmp79 [V81,T52] ( 2, 1 ) ubyte -> rax "Inline return value spill temp" ;* V82 tmp80 [V82 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V83 tmp81 [V83 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V84 tmp82 [V84,T53] ( 2, 1 ) ubyte -> rax "Inline return value spill temp" ;* V85 tmp83 [V85 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V86 tmp84 [V86 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V87 tmp85 [V87 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V88 tmp86 [V88 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V89 tmp87 [V89 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt" ;* V90 tmp88 [V90 ] ( 0, 0 ) byref -> zero-ref single-def "impAppendStmt" ;* V91 tmp89 [V91 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V92 tmp90 [V92 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V93 tmp91 [V93 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V94 tmp92 [V94 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V95 tmp93 [V95 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" ; V96 tmp94 [V96,T06] ( 4, 4 ) ref -> rsi class-hnd exact single-def "Inlining Arg" -;* V97 tmp95 [V97 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -;* V98 tmp96 [V98 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" +;* V97 tmp95 [V97 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" +;* V98 tmp96 [V98 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V99 tmp97 [V99,T20] ( 2, 2 ) byref -> rax single-def "Inlining Arg" ; V100 tmp98 [V100,T26] ( 2, 2 ) int -> rsi "Inlining Arg" ; V101 tmp99 [V101,T54] ( 2, 1 ) ubyte -> rax "Inline return value spill temp" ;* V102 tmp100 [V102 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V103 tmp101 [V103 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V104 tmp102 [V104,T55] ( 2, 1 ) ubyte -> rax "Inline return value spill temp" ;* V105 tmp103 [V105 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V106 tmp104 [V106 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V107 tmp105 [V107 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V108 tmp106 [V108 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V109 tmp107 [V109 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt" ;* V110 tmp108 [V110 ] ( 0, 0 ) byref -> zero-ref single-def "impAppendStmt" ;* V111 tmp109 [V111 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V112 tmp110 [V112 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V113 tmp111 [V113 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V114 tmp112 [V114 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V115 tmp113 [V115 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" ; V116 tmp114 [V116,T07] ( 4, 4 ) ref -> rsi class-hnd exact single-def "Inlining Arg" -;* V117 tmp115 [V117 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -;* V118 tmp116 [V118 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" +;* V117 tmp115 [V117 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" +;* V118 tmp116 [V118 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V119 tmp117 [V119,T21] ( 2, 2 ) byref -> rax single-def "Inlining Arg" ; V120 tmp118 [V120,T27] ( 2, 2 ) int -> rsi "Inlining Arg" ; V121 tmp119 [V121,T15] ( 4, 2 ) ubyte -> rax "Inline return value spill temp" ;* V122 tmp120 [V122 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V123 tmp121 [V123 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V124 tmp122 [V124,T56] ( 2, 1 ) ubyte -> rax "Inline return value spill temp" ;* V125 tmp123 [V125 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V126 tmp124 [V126 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V127 tmp125 [V127 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V128 tmp126 [V128 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V129 tmp127 [V129 ] ( 0, 0 ) byref -> zero-ref "impAppendStmt" ;* V130 tmp128 [V130 ] ( 0, 0 ) byref -> zero-ref single-def "impAppendStmt" ;* V131 tmp129 [V131 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V132 tmp130 [V132 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V133 tmp131 [V133 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V134 tmp132 [V134 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V135 tmp133 [V135,T34] ( 2, 1 ) byref -> rdi single-def "field V03._reference (fldOffset=0x0)" P-INDEP ; V136 tmp134 [V136,T57] ( 2, 1 ) int -> rdx "field V03._length (fldOffset=0x8)" P-INDEP ;* V137 tmp135 [V137 ] ( 0, 0 ) byref -> zero-ref single-def "field V04._reference (fldOffset=0x0)" P-INDEP ;* V138 tmp136 [V138 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP ; V139 tmp137 [V139,T35] ( 2, 1 ) byref -> rdi single-def "field V05._reference (fldOffset=0x0)" P-INDEP ; V140 tmp138 [V140,T58] ( 2, 1 ) int -> rdx "field V05._length (fldOffset=0x8)" P-INDEP ;* V141 tmp139 [V141 ] ( 0, 0 ) byref -> zero-ref single-def "field V06._reference (fldOffset=0x0)" P-INDEP ;* V142 tmp140 [V142 ] ( 0, 0 ) int -> zero-ref "field V06._length (fldOffset=0x8)" P-INDEP ; V143 tmp141 [V143,T36] ( 2, 1 ) byref -> rdi single-def "field V07._reference (fldOffset=0x0)" P-INDEP ; V144 tmp142 [V144,T59] ( 2, 1 ) int -> rdx "field V07._length (fldOffset=0x8)" P-INDEP ;* V145 tmp143 [V145 ] ( 0, 0 ) byref -> zero-ref single-def "field V08._reference (fldOffset=0x0)" P-INDEP ;* V146 tmp144 [V146 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP ; V147 tmp145 [V147,T37] ( 2, 1 ) byref -> rdi single-def "field V09._reference (fldOffset=0x0)" P-INDEP ; V148 tmp146 [V148,T60] ( 2, 1 ) int -> rdx "field V09._length (fldOffset=0x8)" P-INDEP ;* V149 tmp147 [V149 ] ( 0, 0 ) byref -> zero-ref single-def "field V10._reference (fldOffset=0x0)" P-INDEP ;* V150 tmp148 [V150 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP ; V151 tmp149 [V151,T38] ( 2, 1 ) byref -> rdi single-def "field V11._reference (fldOffset=0x0)" P-INDEP ; V152 tmp150 [V152,T61] ( 2, 1 ) int -> rdx "field V11._length (fldOffset=0x8)" P-INDEP ;* V153 tmp151 [V153 ] ( 0, 0 ) byref -> zero-ref single-def "field V12._reference (fldOffset=0x0)" P-INDEP ;* V154 tmp152 [V154 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP ; V155 tmp153 [V155,T39] ( 2, 1 ) byref -> rdi single-def "field V13._reference (fldOffset=0x0)" P-INDEP ; V156 tmp154 [V156,T62] ( 2, 1 ) int -> rdx "field V13._length (fldOffset=0x8)" P-INDEP ;* V157 tmp155 [V157 ] ( 0, 0 ) byref -> zero-ref single-def "field V14._reference (fldOffset=0x0)" P-INDEP ;* V158 tmp156 [V158 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP -; V159 tmp157 [V159,T28] ( 3, 1.50) byref -> rax "field V15._reference (fldOffset=0x0)" P-INDEP -; V160 tmp158 [V160,T09] ( 5, 2.50) int -> rsi "field V15._length (fldOffset=0x8)" P-INDEP -; V161 tmp159 [V161,T40] ( 2, 1 ) byref -> rax single-def "field V17._reference (fldOffset=0x0)" P-INDEP -; V162 tmp160 [V162,T63] ( 2, 1 ) int -> rsi "field V17._length (fldOffset=0x8)" P-INDEP -;* V163 tmp161 [V163 ] ( 0, 0 ) byref -> zero-ref single-def "field V18._reference (fldOffset=0x0)" P-INDEP -;* V164 tmp162 [V164 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP +; V159 tmp157 [V159,T28] ( 3, 1.50) byref -> registers "field V15._reference (fldOffset=0x0)" P-INDEP +; V160 tmp158 [V160,T09] ( 5, 2.50) int -> registers "field V15._length (fldOffset=0x8)" P-INDEP +;* V161 tmp159 [V161 ] ( 0, 0 ) byref -> zero-ref single-def "field V17._reference (fldOffset=0x0)" P-INDEP +;* V162 tmp160 [V162 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP +; V163 tmp161 [V163,T40] ( 2, 1 ) byref -> rax single-def "field V18._reference (fldOffset=0x0)" P-INDEP +; V164 tmp162 [V164,T63] ( 2, 1 ) int -> rsi "field V18._length (fldOffset=0x8)" P-INDEP ;* V165 tmp163 [V165 ] ( 0, 0 ) byref -> zero-ref single-def "field V22._reference (fldOffset=0x0)" P-INDEP ;* V166 tmp164 [V166 ] ( 0, 0 ) int -> zero-ref "field V22._length (fldOffset=0x8)" P-INDEP ;* V167 tmp165 [V167 ] ( 0, 0 ) byref -> zero-ref single-def "field V23._reference (fldOffset=0x0)" P-INDEP ;* V168 tmp166 [V168 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP ;* V169 tmp167 [V169 ] ( 0, 0 ) byref -> zero-ref single-def "field V25._reference (fldOffset=0x0)" P-INDEP ;* V170 tmp168 [V170 ] ( 0, 0 ) int -> zero-ref "field V25._length (fldOffset=0x8)" P-INDEP ;* V171 tmp169 [V171 ] ( 0, 0 ) byref -> zero-ref single-def "field V27._reference (fldOffset=0x0)" P-INDEP ;* V172 tmp170 [V172 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP ;* V173 tmp171 [V173 ] ( 0, 0 ) byref -> zero-ref single-def "field V31._reference (fldOffset=0x0)" P-INDEP ;* V174 tmp172 [V174 ] ( 0, 0 ) int -> zero-ref "field V31._length (fldOffset=0x8)" P-INDEP ;* V175 tmp173 [V175 ] ( 0, 0 ) byref -> zero-ref single-def "field V32._reference (fldOffset=0x0)" P-INDEP ;* V176 tmp174 [V176 ] ( 0, 0 ) int -> zero-ref "field V32._length (fldOffset=0x8)" P-INDEP ;* V177 tmp175 [V177 ] ( 0, 0 ) byref -> zero-ref "field V33._reference (fldOffset=0x0)" P-INDEP ;* V178 tmp176 [V178 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP ;* V179 tmp177 [V179 ] ( 0, 0 ) byref -> zero-ref "field V34._reference (fldOffset=0x0)" P-INDEP ;* V180 tmp178 [V180 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP -; V181 tmp179 [V181,T29] ( 3, 1.50) byref -> rax "field V35._reference (fldOffset=0x0)" P-INDEP -; V182 tmp180 [V182,T10] ( 5, 2.50) int -> rsi "field V35._length (fldOffset=0x8)" P-INDEP -; V183 tmp181 [V183,T41] ( 2, 1 ) byref -> rax single-def "field V37._reference (fldOffset=0x0)" P-INDEP -; V184 tmp182 [V184,T64] ( 2, 1 ) int -> rsi "field V37._length (fldOffset=0x8)" P-INDEP -;* V185 tmp183 [V185 ] ( 0, 0 ) byref -> zero-ref single-def "field V38._reference (fldOffset=0x0)" P-INDEP -;* V186 tmp184 [V186 ] ( 0, 0 ) int -> zero-ref "field V38._length (fldOffset=0x8)" P-INDEP +; V181 tmp179 [V181,T29] ( 3, 1.50) byref -> registers "field V35._reference (fldOffset=0x0)" P-INDEP +; V182 tmp180 [V182,T10] ( 5, 2.50) int -> registers "field V35._length (fldOffset=0x8)" P-INDEP +;* V183 tmp181 [V183 ] ( 0, 0 ) byref -> zero-ref single-def "field V37._reference (fldOffset=0x0)" P-INDEP +;* V184 tmp182 [V184 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP +; V185 tmp183 [V185,T41] ( 2, 1 ) byref -> rax single-def "field V38._reference (fldOffset=0x0)" P-INDEP +; V186 tmp184 [V186,T64] ( 2, 1 ) int -> rsi "field V38._length (fldOffset=0x8)" P-INDEP ;* V187 tmp185 [V187 ] ( 0, 0 ) byref -> zero-ref single-def "field V42._reference (fldOffset=0x0)" P-INDEP ;* V188 tmp186 [V188 ] ( 0, 0 ) int -> zero-ref "field V42._length (fldOffset=0x8)" P-INDEP ;* V189 tmp187 [V189 ] ( 0, 0 ) byref -> zero-ref single-def "field V43._reference (fldOffset=0x0)" P-INDEP ;* V190 tmp188 [V190 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP ;* V191 tmp189 [V191 ] ( 0, 0 ) byref -> zero-ref single-def "field V45._reference (fldOffset=0x0)" P-INDEP ;* V192 tmp190 [V192 ] ( 0, 0 ) int -> zero-ref "field V45._length (fldOffset=0x8)" P-INDEP ;* V193 tmp191 [V193 ] ( 0, 0 ) byref -> zero-ref single-def "field V47._reference (fldOffset=0x0)" P-INDEP ;* V194 tmp192 [V194 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP ;* V195 tmp193 [V195 ] ( 0, 0 ) byref -> zero-ref single-def "field V51._reference (fldOffset=0x0)" P-INDEP ;* V196 tmp194 [V196 ] ( 0, 0 ) int -> zero-ref "field V51._length (fldOffset=0x8)" P-INDEP ;* V197 tmp195 [V197 ] ( 0, 0 ) byref -> zero-ref single-def "field V52._reference (fldOffset=0x0)" P-INDEP ;* V198 tmp196 [V198 ] ( 0, 0 ) int -> zero-ref "field V52._length (fldOffset=0x8)" P-INDEP ;* V199 tmp197 [V199 ] ( 0, 0 ) byref -> zero-ref "field V53._reference (fldOffset=0x0)" P-INDEP ;* V200 tmp198 [V200 ] ( 0, 0 ) int -> zero-ref "field V53._length (fldOffset=0x8)" P-INDEP ;* V201 tmp199 [V201 ] ( 0, 0 ) byref -> zero-ref "field V54._reference (fldOffset=0x0)" P-INDEP ;* V202 tmp200 [V202 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-INDEP -; V203 tmp201 [V203,T30] ( 3, 1.50) byref -> rax "field V55._reference (fldOffset=0x0)" P-INDEP -; V204 tmp202 [V204,T11] ( 5, 2.50) int -> rsi "field V55._length (fldOffset=0x8)" P-INDEP -; V205 tmp203 [V205,T42] ( 2, 1 ) byref -> rax single-def "field V57._reference (fldOffset=0x0)" P-INDEP -; V206 tmp204 [V206,T65] ( 2, 1 ) int -> rsi "field V57._length (fldOffset=0x8)" P-INDEP -;* V207 tmp205 [V207 ] ( 0, 0 ) byref -> zero-ref single-def "field V58._reference (fldOffset=0x0)" P-INDEP -;* V208 tmp206 [V208 ] ( 0, 0 ) int -> zero-ref "field V58._length (fldOffset=0x8)" P-INDEP +; V203 tmp201 [V203,T30] ( 3, 1.50) byref -> registers "field V55._reference (fldOffset=0x0)" P-INDEP +; V204 tmp202 [V204,T11] ( 5, 2.50) int -> registers "field V55._length (fldOffset=0x8)" P-INDEP +;* V205 tmp203 [V205 ] ( 0, 0 ) byref -> zero-ref single-def "field V57._reference (fldOffset=0x0)" P-INDEP +;* V206 tmp204 [V206 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP +; V207 tmp205 [V207,T42] ( 2, 1 ) byref -> rax single-def "field V58._reference (fldOffset=0x0)" P-INDEP +; V208 tmp206 [V208,T65] ( 2, 1 ) int -> rsi "field V58._length (fldOffset=0x8)" P-INDEP ;* V209 tmp207 [V209 ] ( 0, 0 ) byref -> zero-ref single-def "field V62._reference (fldOffset=0x0)" P-INDEP ;* V210 tmp208 [V210 ] ( 0, 0 ) int -> zero-ref "field V62._length (fldOffset=0x8)" P-INDEP ;* V211 tmp209 [V211 ] ( 0, 0 ) byref -> zero-ref single-def "field V63._reference (fldOffset=0x0)" P-INDEP ;* V212 tmp210 [V212 ] ( 0, 0 ) int -> zero-ref "field V63._length (fldOffset=0x8)" P-INDEP ;* V213 tmp211 [V213 ] ( 0, 0 ) byref -> zero-ref single-def "field V65._reference (fldOffset=0x0)" P-INDEP ;* V214 tmp212 [V214 ] ( 0, 0 ) int -> zero-ref "field V65._length (fldOffset=0x8)" P-INDEP ;* V215 tmp213 [V215 ] ( 0, 0 ) byref -> zero-ref single-def "field V67._reference (fldOffset=0x0)" P-INDEP ;* V216 tmp214 [V216 ] ( 0, 0 ) int -> zero-ref "field V67._length (fldOffset=0x8)" P-INDEP ;* V217 tmp215 [V217 ] ( 0, 0 ) byref -> zero-ref single-def "field V71._reference (fldOffset=0x0)" P-INDEP ;* V218 tmp216 [V218 ] ( 0, 0 ) int -> zero-ref "field V71._length (fldOffset=0x8)" P-INDEP ;* V219 tmp217 [V219 ] ( 0, 0 ) byref -> zero-ref single-def "field V72._reference (fldOffset=0x0)" P-INDEP ;* V220 tmp218 [V220 ] ( 0, 0 ) int -> zero-ref "field V72._length (fldOffset=0x8)" P-INDEP ;* V221 tmp219 [V221 ] ( 0, 0 ) byref -> zero-ref "field V73._reference (fldOffset=0x0)" P-INDEP ;* V222 tmp220 [V222 ] ( 0, 0 ) int -> zero-ref "field V73._length (fldOffset=0x8)" P-INDEP ;* V223 tmp221 [V223 ] ( 0, 0 ) byref -> zero-ref "field V74._reference (fldOffset=0x0)" P-INDEP ;* V224 tmp222 [V224 ] ( 0, 0 ) int -> zero-ref "field V74._length (fldOffset=0x8)" P-INDEP -; V225 tmp223 [V225,T31] ( 3, 1.50) byref -> rax "field V75._reference (fldOffset=0x0)" P-INDEP -; V226 tmp224 [V226,T12] ( 5, 2.50) int -> rsi "field V75._length (fldOffset=0x8)" P-INDEP -; V227 tmp225 [V227,T43] ( 2, 1 ) byref -> rax single-def "field V77._reference (fldOffset=0x0)" P-INDEP -; V228 tmp226 [V228,T66] ( 2, 1 ) int -> rsi "field V77._length (fldOffset=0x8)" P-INDEP -;* V229 tmp227 [V229 ] ( 0, 0 ) byref -> zero-ref single-def "field V78._reference (fldOffset=0x0)" P-INDEP -;* V230 tmp228 [V230 ] ( 0, 0 ) int -> zero-ref "field V78._length (fldOffset=0x8)" P-INDEP +; V225 tmp223 [V225,T31] ( 3, 1.50) byref -> registers "field V75._reference (fldOffset=0x0)" P-INDEP +; V226 tmp224 [V226,T12] ( 5, 2.50) int -> registers "field V75._length (fldOffset=0x8)" P-INDEP +;* V227 tmp225 [V227 ] ( 0, 0 ) byref -> zero-ref single-def "field V77._reference (fldOffset=0x0)" P-INDEP +;* V228 tmp226 [V228 ] ( 0, 0 ) int -> zero-ref "field V77._length (fldOffset=0x8)" P-INDEP +; V229 tmp227 [V229,T43] ( 2, 1 ) byref -> rax single-def "field V78._reference (fldOffset=0x0)" P-INDEP +; V230 tmp228 [V230,T66] ( 2, 1 ) int -> rsi "field V78._length (fldOffset=0x8)" P-INDEP ;* V231 tmp229 [V231 ] ( 0, 0 ) byref -> zero-ref single-def "field V82._reference (fldOffset=0x0)" P-INDEP ;* V232 tmp230 [V232 ] ( 0, 0 ) int -> zero-ref "field V82._length (fldOffset=0x8)" P-INDEP ;* V233 tmp231 [V233 ] ( 0, 0 ) byref -> zero-ref single-def "field V83._reference (fldOffset=0x0)" P-INDEP ;* V234 tmp232 [V234 ] ( 0, 0 ) int -> zero-ref "field V83._length (fldOffset=0x8)" P-INDEP ;* V235 tmp233 [V235 ] ( 0, 0 ) byref -> zero-ref single-def "field V85._reference (fldOffset=0x0)" P-INDEP ;* V236 tmp234 [V236 ] ( 0, 0 ) int -> zero-ref "field V85._length (fldOffset=0x8)" P-INDEP ;* V237 tmp235 [V237 ] ( 0, 0 ) byref -> zero-ref single-def "field V87._reference (fldOffset=0x0)" P-INDEP ;* V238 tmp236 [V238 ] ( 0, 0 ) int -> zero-ref "field V87._length (fldOffset=0x8)" P-INDEP ;* V239 tmp237 [V239 ] ( 0, 0 ) byref -> zero-ref single-def "field V91._reference (fldOffset=0x0)" P-INDEP ;* V240 tmp238 [V240 ] ( 0, 0 ) int -> zero-ref "field V91._length (fldOffset=0x8)" P-INDEP ;* V241 tmp239 [V241 ] ( 0, 0 ) byref -> zero-ref single-def "field V92._reference (fldOffset=0x0)" P-INDEP ;* V242 tmp240 [V242 ] ( 0, 0 ) int -> zero-ref "field V92._length (fldOffset=0x8)" P-INDEP ;* V243 tmp241 [V243 ] ( 0, 0 ) byref -> zero-ref "field V93._reference (fldOffset=0x0)" P-INDEP ;* V244 tmp242 [V244 ] ( 0, 0 ) int -> zero-ref "field V93._length (fldOffset=0x8)" P-INDEP ;* V245 tmp243 [V245 ] ( 0, 0 ) byref -> zero-ref "field V94._reference (fldOffset=0x0)" P-INDEP ;* V246 tmp244 [V246 ] ( 0, 0 ) int -> zero-ref "field V94._length (fldOffset=0x8)" P-INDEP -; V247 tmp245 [V247,T32] ( 3, 1.50) byref -> rax "field V95._reference (fldOffset=0x0)" P-INDEP -; V248 tmp246 [V248,T13] ( 5, 2.50) int -> rsi "field V95._length (fldOffset=0x8)" P-INDEP -; V249 tmp247 [V249,T44] ( 2, 1 ) byref -> rax single-def "field V97._reference (fldOffset=0x0)" P-INDEP -; V250 tmp248 [V250,T67] ( 2, 1 ) int -> rsi "field V97._length (fldOffset=0x8)" P-INDEP -;* V251 tmp249 [V251 ] ( 0, 0 ) byref -> zero-ref single-def "field V98._reference (fldOffset=0x0)" P-INDEP -;* V252 tmp250 [V252 ] ( 0, 0 ) int -> zero-ref "field V98._length (fldOffset=0x8)" P-INDEP +; V247 tmp245 [V247,T32] ( 3, 1.50) byref -> registers "field V95._reference (fldOffset=0x0)" P-INDEP +; V248 tmp246 [V248,T13] ( 5, 2.50) int -> registers "field V95._length (fldOffset=0x8)" P-INDEP +;* V249 tmp247 [V249 ] ( 0, 0 ) byref -> zero-ref single-def "field V97._reference (fldOffset=0x0)" P-INDEP +;* V250 tmp248 [V250 ] ( 0, 0 ) int -> zero-ref "field V97._length (fldOffset=0x8)" P-INDEP +; V251 tmp249 [V251,T44] ( 2, 1 ) byref -> rax single-def "field V98._reference (fldOffset=0x0)" P-INDEP +; V252 tmp250 [V252,T67] ( 2, 1 ) int -> rsi "field V98._length (fldOffset=0x8)" P-INDEP ;* V253 tmp251 [V253 ] ( 0, 0 ) byref -> zero-ref single-def "field V102._reference (fldOffset=0x0)" P-INDEP ;* V254 tmp252 [V254 ] ( 0, 0 ) int -> zero-ref "field V102._length (fldOffset=0x8)" P-INDEP ;* V255 tmp253 [V255 ] ( 0, 0 ) byref -> zero-ref single-def "field V103._reference (fldOffset=0x0)" P-INDEP ;* V256 tmp254 [V256 ] ( 0, 0 ) int -> zero-ref "field V103._length (fldOffset=0x8)" P-INDEP ;* V257 tmp255 [V257 ] ( 0, 0 ) byref -> zero-ref single-def "field V105._reference (fldOffset=0x0)" P-INDEP ;* V258 tmp256 [V258 ] ( 0, 0 ) int -> zero-ref "field V105._length (fldOffset=0x8)" P-INDEP ;* V259 tmp257 [V259 ] ( 0, 0 ) byref -> zero-ref single-def "field V107._reference (fldOffset=0x0)" P-INDEP ;* V260 tmp258 [V260 ] ( 0, 0 ) int -> zero-ref "field V107._length (fldOffset=0x8)" P-INDEP ;* V261 tmp259 [V261 ] ( 0, 0 ) byref -> zero-ref single-def "field V111._reference (fldOffset=0x0)" P-INDEP ;* V262 tmp260 [V262 ] ( 0, 0 ) int -> zero-ref "field V111._length (fldOffset=0x8)" P-INDEP ;* V263 tmp261 [V263 ] ( 0, 0 ) byref -> zero-ref single-def "field V112._reference (fldOffset=0x0)" P-INDEP ;* V264 tmp262 [V264 ] ( 0, 0 ) int -> zero-ref "field V112._length (fldOffset=0x8)" P-INDEP ;* V265 tmp263 [V265 ] ( 0, 0 ) byref -> zero-ref "field V113._reference (fldOffset=0x0)" P-INDEP ;* V266 tmp264 [V266 ] ( 0, 0 ) int -> zero-ref "field V113._length (fldOffset=0x8)" P-INDEP ;* V267 tmp265 [V267 ] ( 0, 0 ) byref -> zero-ref "field V114._reference (fldOffset=0x0)" P-INDEP ;* V268 tmp266 [V268 ] ( 0, 0 ) int -> zero-ref "field V114._length (fldOffset=0x8)" P-INDEP -; V269 tmp267 [V269,T33] ( 3, 1.50) byref -> rax "field V115._reference (fldOffset=0x0)" P-INDEP -; V270 tmp268 [V270,T14] ( 5, 2.50) int -> rsi "field V115._length (fldOffset=0x8)" P-INDEP -; V271 tmp269 [V271,T45] ( 2, 1 ) byref -> rax single-def "field V117._reference (fldOffset=0x0)" P-INDEP -; V272 tmp270 [V272,T68] ( 2, 1 ) int -> rsi "field V117._length (fldOffset=0x8)" P-INDEP -;* V273 tmp271 [V273 ] ( 0, 0 ) byref -> zero-ref single-def "field V118._reference (fldOffset=0x0)" P-INDEP -;* V274 tmp272 [V274 ] ( 0, 0 ) int -> zero-ref "field V118._length (fldOffset=0x8)" P-INDEP +; V269 tmp267 [V269,T33] ( 3, 1.50) byref -> registers "field V115._reference (fldOffset=0x0)" P-INDEP +; V270 tmp268 [V270,T14] ( 5, 2.50) int -> registers "field V115._length (fldOffset=0x8)" P-INDEP +;* V271 tmp269 [V271 ] ( 0, 0 ) byref -> zero-ref single-def "field V117._reference (fldOffset=0x0)" P-INDEP +;* V272 tmp270 [V272 ] ( 0, 0 ) int -> zero-ref "field V117._length (fldOffset=0x8)" P-INDEP +; V273 tmp271 [V273,T45] ( 2, 1 ) byref -> rax single-def "field V118._reference (fldOffset=0x0)" P-INDEP +; V274 tmp272 [V274,T68] ( 2, 1 ) int -> rsi "field V118._length (fldOffset=0x8)" P-INDEP ;* V275 tmp273 [V275 ] ( 0, 0 ) byref -> zero-ref single-def "field V122._reference (fldOffset=0x0)" P-INDEP ;* V276 tmp274 [V276 ] ( 0, 0 ) int -> zero-ref "field V122._length (fldOffset=0x8)" P-INDEP ;* V277 tmp275 [V277 ] ( 0, 0 ) byref -> zero-ref single-def "field V123._reference (fldOffset=0x0)" P-INDEP ;* V278 tmp276 [V278 ] ( 0, 0 ) int -> zero-ref "field V123._length (fldOffset=0x8)" P-INDEP ;* V279 tmp277 [V279 ] ( 0, 0 ) byref -> zero-ref single-def "field V125._reference (fldOffset=0x0)" P-INDEP ;* V280 tmp278 [V280 ] ( 0, 0 ) int -> zero-ref "field V125._length (fldOffset=0x8)" P-INDEP ;* V281 tmp279 [V281 ] ( 0, 0 ) byref -> zero-ref single-def "field V127._reference (fldOffset=0x0)" P-INDEP ;* V282 tmp280 [V282 ] ( 0, 0 ) int -> zero-ref "field V127._length (fldOffset=0x8)" P-INDEP ;* V283 tmp281 [V283 ] ( 0, 0 ) byref -> zero-ref single-def "field V131._reference (fldOffset=0x0)" P-INDEP ;* V284 tmp282 [V284 ] ( 0, 0 ) int -> zero-ref "field V131._length (fldOffset=0x8)" P-INDEP ;* V285 tmp283 [V285 ] ( 0, 0 ) byref -> zero-ref single-def "field V132._reference (fldOffset=0x0)" P-INDEP ;* V286 tmp284 [V286 ] ( 0, 0 ) int -> zero-ref "field V132._length (fldOffset=0x8)" P-INDEP ;* V287 tmp285 [V287 ] ( 0, 0 ) byref -> zero-ref "field V133._reference (fldOffset=0x0)" P-INDEP ;* V288 tmp286 [V288 ] ( 0, 0 ) int -> zero-ref "field V133._length (fldOffset=0x8)" P-INDEP ;* V289 tmp287 [V289 ] ( 0, 0 ) byref -> zero-ref "field V134._reference (fldOffset=0x0)" P-INDEP ;* V290 tmp288 [V290 ] ( 0, 0 ) int -> zero-ref "field V134._length (fldOffset=0x8)" P-INDEP ; V291 tmp289 [V291,T01] ( 8, 4.50) ref -> r15 single-def "V01.[008..016)" ; V292 cse0 [V292,T08] ( 7, 3.50) int -> r14 "CSE #01: moderate" ; ; Lcl frame size = 8 G_M31334_IG01: push rbp push r15 push r14 push rbx push rax lea rbp, [rsp+0x20] mov rbx, rdi ;; size=15 bbWeight=1 PerfScore 5.75 G_M31334_IG02: mov r15, gword ptr [rbp+0x18] cmp dword ptr [rbx+0x14], 6 jne G_M31334_IG18 ;; size=14 bbWeight=1 PerfScore 5.00 G_M31334_IG03: cmp dword ptr [rbx+0x18], 5 jne G_M31334_IG18 mov rdi, bword ptr [rbx+0x110] mov edx, dword ptr [rbx+0x118] mov r14d, dword ptr [r15+0x08] test r14d, r14d je G_M31334_IG26 mov rsi, gword ptr [r15+0x10] test rsi, rsi - je SHORT G_M31334_IG04 + jne SHORT G_M31334_IG04 + xor rsi, rsi + xor eax, eax + mov ecx, eax + mov rax, rsi + mov esi, ecx + jmp SHORT G_M31334_IG05 + ;; size=58 bbWeight=0.50 PerfScore 8.88 +G_M31334_IG04: lea rax, bword ptr [rsi+0x0C] mov esi, dword ptr [rsi+0x08] - jmp SHORT G_M31334_IG05 - ;; size=54 bbWeight=0.50 PerfScore 9.50 -G_M31334_IG04: - xor rax, rax - xor esi, esi - ;; size=4 bbWeight=0.50 PerfScore 0.25 + ;; size=7 bbWeight=0.50 PerfScore 1.25 G_M31334_IG05: cmp edx, esi jne G_M31334_IG18 test esi, esi je SHORT G_M31334_IG06 mov edx, esi add rdx, rdx mov rsi, rax mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte test eax, eax je G_M31334_IG18 ;; size=40 bbWeight=0.50 PerfScore 3.88 G_M31334_IG06: mov rdi, bword ptr [rbx+0x120] mov edx, dword ptr [rbx+0x128] cmp r14d, 1 jbe G_M31334_IG26 mov rsi, gword ptr [r15+0x18] test rsi, rsi - je SHORT G_M31334_IG07 + jne SHORT G_M31334_IG07 + xor rsi, rsi + xor eax, eax + mov ecx, eax + mov rax, rsi + mov esi, ecx + jmp SHORT G_M31334_IG08 + ;; size=45 bbWeight=0.50 PerfScore 5.88 +G_M31334_IG07: lea rax, bword ptr [rsi+0x0C] mov esi, dword ptr [rsi+0x08] - jmp SHORT G_M31334_IG08 - ;; size=41 bbWeight=0.50 PerfScore 6.50 -G_M31334_IG07: - xor rax, rax - xor esi, esi - ;; size=4 bbWeight=0.50 PerfScore 0.25 + ;; size=7 bbWeight=0.50 PerfScore 1.25 G_M31334_IG08: cmp edx, esi jne G_M31334_IG18 test esi, esi je SHORT G_M31334_IG09 mov edx, esi add rdx, rdx mov rsi, rax mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte test eax, eax je G_M31334_IG18 ;; size=40 bbWeight=0.50 PerfScore 3.88 G_M31334_IG09: mov rdi, bword ptr [rbx+0x130] mov edx, dword ptr [rbx+0x138] cmp r14d, 2 jbe G_M31334_IG26 mov rsi, gword ptr [r15+0x20] test rsi, rsi - je SHORT G_M31334_IG10 + jne SHORT G_M31334_IG10 + xor rsi, rsi + xor eax, eax + mov ecx, eax + mov rax, rsi + mov esi, ecx + jmp SHORT G_M31334_IG11 + ;; size=45 bbWeight=0.50 PerfScore 5.88 +G_M31334_IG10: lea rax, bword ptr [rsi+0x0C] mov esi, dword ptr [rsi+0x08] - jmp SHORT G_M31334_IG11 - ;; size=41 bbWeight=0.50 PerfScore 6.50 -G_M31334_IG10: - xor rax, rax - xor esi, esi - ;; size=4 bbWeight=0.50 PerfScore 0.25 + ;; size=7 bbWeight=0.50 PerfScore 1.25 G_M31334_IG11: cmp edx, esi jne G_M31334_IG18 test esi, esi je SHORT G_M31334_IG12 mov edx, esi add rdx, rdx mov rsi, rax mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte test eax, eax je G_M31334_IG18 ;; size=40 bbWeight=0.50 PerfScore 3.88 G_M31334_IG12: mov rdi, bword ptr [rbx+0x140] mov edx, dword ptr [rbx+0x148] cmp r14d, 3 jbe G_M31334_IG26 mov rsi, gword ptr [r15+0x28] test rsi, rsi - je SHORT G_M31334_IG13 + jne SHORT G_M31334_IG13 + xor rsi, rsi + xor eax, eax + mov ecx, eax + mov rax, rsi + mov esi, ecx + jmp SHORT G_M31334_IG14 + ;; size=45 bbWeight=0.50 PerfScore 5.88 +G_M31334_IG13: lea rax, bword ptr [rsi+0x0C] mov esi, dword ptr [rsi+0x08] - jmp SHORT G_M31334_IG14 - ;; size=41 bbWeight=0.50 PerfScore 6.50 -G_M31334_IG13: - xor rax, rax - xor esi, esi - ;; size=4 bbWeight=0.50 PerfScore 0.25 + ;; size=7 bbWeight=0.50 PerfScore 1.25 G_M31334_IG14: cmp edx, esi jne SHORT G_M31334_IG18 test esi, esi je SHORT G_M31334_IG15 mov edx, esi add rdx, rdx mov rsi, rax mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte test eax, eax je SHORT G_M31334_IG18 ;; size=32 bbWeight=0.50 PerfScore 3.88 G_M31334_IG15: mov rdi, bword ptr [rbx+0x150] mov edx, dword ptr [rbx+0x158] cmp r14d, 4 jbe G_M31334_IG26 mov rsi, gword ptr [r15+0x30] test rsi, rsi - je SHORT G_M31334_IG16 + jne SHORT G_M31334_IG16 + xor rsi, rsi + xor eax, eax + mov ecx, eax + mov rax, rsi + mov esi, ecx + jmp SHORT G_M31334_IG17 + ;; size=45 bbWeight=0.50 PerfScore 5.88 +G_M31334_IG16: lea rax, bword ptr [rsi+0x0C] mov esi, dword ptr [rsi+0x08] - jmp SHORT G_M31334_IG17 - ;; size=41 bbWeight=0.50 PerfScore 6.50 -G_M31334_IG16: - xor rax, rax - xor esi, esi - ;; size=4 bbWeight=0.50 PerfScore 0.25 + ;; size=7 bbWeight=0.50 PerfScore 1.25 G_M31334_IG17: cmp edx, esi jne SHORT G_M31334_IG18 test esi, esi je SHORT G_M31334_IG20 mov edx, esi add rdx, rdx mov rsi, rax mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte test eax, eax jne SHORT G_M31334_IG20 ;; size=32 bbWeight=0.50 PerfScore 3.88 G_M31334_IG18: xor eax, eax ;; size=2 bbWeight=0.50 PerfScore 0.12 G_M31334_IG19: add rsp, 8 pop rbx pop r14 pop r15 pop rbp ret ;; size=11 bbWeight=0.50 PerfScore 1.62 G_M31334_IG20: mov rdi, bword ptr [rbx+0x160] mov edx, dword ptr [rbx+0x168] cmp r14d, 5 jbe SHORT G_M31334_IG26 mov rsi, gword ptr [r15+0x38] test rsi, rsi - je SHORT G_M31334_IG21 + jne SHORT G_M31334_IG21 + xor rsi, rsi + xor eax, eax + mov ecx, eax + mov rax, rsi + mov esi, ecx + jmp SHORT G_M31334_IG22 + ;; size=41 bbWeight=0.50 PerfScore 5.88 +G_M31334_IG21: lea rax, bword ptr [rsi+0x0C] mov esi, dword ptr [rsi+0x08] - jmp SHORT G_M31334_IG22 - ;; size=37 bbWeight=0.50 PerfScore 6.50 -G_M31334_IG21: - xor rax, rax - xor esi, esi - ;; size=4 bbWeight=0.50 PerfScore 0.25 + ;; size=7 bbWeight=0.50 PerfScore 1.25 G_M31334_IG22: cmp edx, esi jne SHORT G_M31334_IG24 test esi, esi je SHORT G_M31334_IG23 mov edx, esi add rdx, rdx mov rsi, rax mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte jmp SHORT G_M31334_IG25 ;; size=30 bbWeight=0.50 PerfScore 4.25 G_M31334_IG23: mov eax, 1 jmp SHORT G_M31334_IG25 ;; size=7 bbWeight=0.50 PerfScore 1.12 G_M31334_IG24: xor eax, eax ;; size=2 bbWeight=0.50 PerfScore 0.12 G_M31334_IG25: add rsp, 8 pop rbx pop r14 pop r15 pop rbp ret ;; size=11 bbWeight=0.50 PerfScore 1.62 G_M31334_IG26: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 -; Total bytes of code 561, prolog size 12, PerfScore 82.50, instruction count 168, allocated bytes for code 561 (MethodHash=553a8599) for method System.Globalization.TimeSpanParse+TimeSpanRawInfo:FullMatch(System.Globalization.TimeSpanFormat+FormatLiterals):ubyte:this (FullOpts) +; Total bytes of code 603, prolog size 12, PerfScore 84.75, instruction count 186, allocated bytes for code 603 (MethodHash=553a8599) for method System.Globalization.TimeSpanParse+TimeSpanRawInfo:FullMatch(System.Globalization.TimeSpanFormat+FormatLiterals):ubyte:this (FullOpts) ; ============================================================ ```
22 (12.15 % of base) - System.Threading.Tasks.ValueTask`1[System.__Canon]:Equals(System.Object):ubyte:this ```diff ; Assembly listing for method System.Threading.Tasks.ValueTask`1[System.__Canon]:Equals(System.Object):ubyte:this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T02] ( 5, 3.50) byref -> rbx this single-def ; V01 TypeCtx [V01,T01] ( 6, 3.85) long -> rsi single-def ; V02 arg1 [V02,T00] ( 7, 4.75) ref -> rdx class-hnd single-def ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V04 tmp1 [V04 ] ( 0, 0 ) int -> zero-ref "spilling qmarkNull" ; V05 tmp2 [V05,T08] ( 3, 1.50) ubyte -> rax "Inline return value spill temp" ;* V06 tmp3 [V06 ] ( 0, 0 ) struct (24) zero-ref "Inlining Arg" ;* V07 tmp4 [V07 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V08 tmp5 [V08 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V09 tmp6 [V09 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -; V10 tmp7 [V10,T06] ( 3, 1.50) ref -> rax single-def "field V06._obj (fldOffset=0x0)" P-INDEP -; V11 tmp8 [V11,T09] ( 2, 1 ) ref -> r15 single-def "field V06._result (fldOffset=0x8)" P-INDEP -; V12 tmp9 [V12,T10] ( 2, 1 ) short -> rdi "field V06._token (fldOffset=0x10)" P-INDEP +; V10 tmp7 [V10,T06] ( 3, 1.50) ref -> r15 single-def "field V06._obj (fldOffset=0x0)" P-INDEP +; V11 tmp8 [V11,T09] ( 2, 1 ) ref -> r14 single-def "field V06._result (fldOffset=0x8)" P-INDEP +; V12 tmp9 [V12,T10] ( 2, 1 ) short -> r13 "field V06._token (fldOffset=0x10)" P-INDEP ;* V13 tmp10 [V13 ] ( 0, 0 ) ubyte -> zero-ref "field V06._continueOnCapturedContext (fldOffset=0x12)" P-INDEP ; V14 tmp11 [V14,T03] ( 3, 3 ) ref -> rdi single-def "argument with side effect" -; V15 cse0 [V15,T07] ( 3, 1.50) ref -> rcx "CSE #01: moderate" +; V15 cse0 [V15,T07] ( 3, 1.50) ref -> r12 "CSE #01: moderate" ; V16 rat0 [V16,T05] ( 3, 2 ) long -> rdi "runtime lookup" ; V17 rat1 [V17,T04] ( 3, 2.80) long -> rdi "fgMakeTemp is creating a new local variable" ; -; Lcl frame size = 16 +; Lcl frame size = 8 G_M59413_IG01: push rbp push r15 + push r14 + push r13 + push r12 push rbx - sub rsp, 16 - lea rbp, [rsp+0x20] - mov qword ptr [rbp-0x18], rsi + push rax + lea rbp, [rsp+0x30] + mov qword ptr [rbp-0x30], rsi mov rbx, rdi - ;; size=20 bbWeight=1 PerfScore 5.00 + ;; size=23 bbWeight=1 PerfScore 8.75 G_M59413_IG02: test rdx, rdx je G_M59413_IG11 ;; size=9 bbWeight=1 PerfScore 1.25 G_M59413_IG03: cmp qword ptr [rdx], rsi jne G_M59413_IG11 ;; size=9 bbWeight=0.25 PerfScore 1.00 G_M59413_IG04: - mov rax, gword ptr [rdx+0x08] - mov r15, gword ptr [rdx+0x10] - movsx rdi, word ptr [rdx+0x18] - mov rcx, gword ptr [rbx] - mov rdx, rcx - or rdx, rax - je SHORT G_M59413_IG07 - cmp rcx, rax - je SHORT G_M59413_IG05 - xor eax, eax - jmp SHORT G_M59413_IG06 - ;; size=33 bbWeight=0.50 PerfScore 7.50 -G_M59413_IG05: - cmp word ptr [rbx+0x10], di - sete al - movzx rax, al - ;; size=10 bbWeight=0.50 PerfScore 2.12 -G_M59413_IG06: - add rsp, 16 - pop rbx - pop r15 - pop rbp - ret - ;; size=9 bbWeight=0.50 PerfScore 1.38 -G_M59413_IG07: + mov r15, gword ptr [rdx+0x08] + mov r14, gword ptr [rdx+0x10] + movsx r13, word ptr [rdx+0x18] + mov r12, gword ptr [rbx] + mov rdi, r12 + or rdi, r15 + jne SHORT G_M59413_IG08 mov rdi, qword ptr [rsi+0x30] mov rdi, qword ptr [rdi] mov rdi, qword ptr [rdi+0x10] test rdi, rdi - je SHORT G_M59413_IG10 - ;; size=16 bbWeight=0.50 PerfScore 3.62 -G_M59413_IG08: + je SHORT G_M59413_IG07 + ;; size=40 bbWeight=0.50 PerfScore 9.38 +G_M59413_IG05: call CORINFO_HELP_GET_GCSTATIC_BASE mov rdi, gword ptr [rax] mov rsi, gword ptr [rbx+0x08] - mov rdx, r15 + mov rdx, r14 mov rax, qword ptr [rdi] mov rax, qword ptr [rax+0x40] ;; size=22 bbWeight=0.50 PerfScore 4.62 -G_M59413_IG09: - add rsp, 16 +G_M59413_IG06: + add rsp, 8 pop rbx + pop r12 + pop r13 + pop r14 pop r15 pop rbp tail.jmp [rax+0x20]System.Collections.Generic.EqualityComparer`1[System.__Canon]:Equals(System.__Canon,System.__Canon):ubyte:this - ;; size=12 bbWeight=0.50 PerfScore 1.88 -G_M59413_IG10: + ;; size=18 bbWeight=0.50 PerfScore 2.62 +G_M59413_IG07: mov rdi, rsi mov rsi, 0xD1FFAB1E ; global ptr mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_RUNTIMEHANDLE_CLASS call [rax]CORINFO_HELP_RUNTIMEHANDLE_CLASS mov rdi, rax - jmp SHORT G_M59413_IG08 + jmp SHORT G_M59413_IG05 ;; size=30 bbWeight=0.10 PerfScore 0.60 +G_M59413_IG08: + cmp r12, r15 + je SHORT G_M59413_IG09 + xor eax, eax + jmp SHORT G_M59413_IG10 + ;; size=9 bbWeight=0.50 PerfScore 1.75 +G_M59413_IG09: + cmp word ptr [rbx+0x10], r13w + sete al + movzx rax, al + ;; size=11 bbWeight=0.50 PerfScore 2.12 +G_M59413_IG10: + add rsp, 8 + pop rbx + pop r12 + pop r13 + pop r14 + pop r15 + pop rbp + ret + ;; size=15 bbWeight=0.50 PerfScore 2.12 G_M59413_IG11: xor eax, eax ;; size=2 bbWeight=0.50 PerfScore 0.12 G_M59413_IG12: - add rsp, 16 + add rsp, 8 pop rbx + pop r12 + pop r13 + pop r14 pop r15 pop rbp ret - ;; size=9 bbWeight=0.50 PerfScore 1.38 + ;; size=15 bbWeight=0.50 PerfScore 2.12 -; Total bytes of code 181, prolog size 20, PerfScore 30.47, instruction count 58, allocated bytes for code 181 (MethodHash=df8c17ea) for method System.Threading.Tasks.ValueTask`1[System.__Canon]:Equals(System.Object):ubyte:this (FullOpts) +; Total bytes of code 203, prolog size 23, PerfScore 36.47, instruction count 70, allocated bytes for code 203 (MethodHash=df8c17ea) for method System.Threading.Tasks.ValueTask`1[System.__Canon]:Equals(System.Object):ubyte:this (FullOpts) ; ============================================================ ```

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

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

MihuBot commented 1 month ago

Top method improvements

-15 (-1.25 % of base) - System.Net.Http.HPack.HPackEncoder:EncodeStringLiterals(System.ReadOnlySpan`1[System.String],ubyte[],System.Text.Encoding,System.Span`1[ubyte],byref):ubyte ```diff ; Assembly listing for method System.Net.Http.HPack.HPackEncoder:EncodeStringLiterals(System.ReadOnlySpan`1[System.String],ubyte[],System.Text.Encoding,System.Span`1[ubyte],byref):ubyte (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; 20 single block inlinees; 18 inlinees without PGO data ; Final local variable assignments ; ;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def ; V01 arg1 [V01,T08] ( 9, 26.50) ref -> r14 class-hnd single-def ; V02 arg2 [V02,T11] ( 11, 17 ) ref -> r12 class-hnd single-def ;* V03 arg3 [V03 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def ; V04 arg4 [V04,T62] ( 4, 2.50) byref -> [rbp+0x10] single-def ; V05 loc0 [V05,T12] ( 8, 18 ) int -> [rbp-0x2C] ; V06 loc1 [V06 ] ( 3, 1.50) int -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op ;* V07 loc2 [V07 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op ;* V08 loc3 [V08,T75] ( 0, 0 ) int -> zero-ref ;* V09 loc4 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd ;* V10 loc5 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd ; V11 loc6 [V11,T14] ( 8, 17.50) ref -> [rbp-0x88] class-hnd ;* V12 loc7 [V12,T82] ( 0, 0 ) int -> zero-ref ; V13 loc8 [V13,T13] ( 8, 18 ) int -> rax ;* V14 loc9 [V14,T83] ( 0, 0 ) int -> zero-ref ;# V15 OutArgs [V15 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V16 tmp1 [V16 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V17 tmp2 [V17 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V18 tmp3 [V18,T55] ( 4, 4 ) int -> rax "Inlining Arg" ;* V19 tmp4 [V19 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" ; V20 tmp5 [V20,T51] ( 5, 5 ) byref -> r15 single-def "Inlining Arg" ; V21 tmp6 [V21,T36] ( 8, 8 ) int -> rbx "Inlining Arg" ; V22 tmp7 [V22,T56] ( 4, 4 ) int -> rdx "Inlining Arg" ;* V23 tmp8 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V24 tmp9 [V24,T63] ( 2, 2 ) byref -> rdi single-def "Inlining Arg" ; V25 tmp10 [V25,T66] ( 2, 2 ) int -> rbx "Inlining Arg" ;* V26 tmp11 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V27 tmp12 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" ;* V28 tmp13 [V28 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V29 tmp14 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V30 tmp15 [V30 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V31 tmp16 [V31 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V32 tmp17 [V32 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ; V33 tmp18 [V33,T04] ( 4, 32 ) int -> rdi "Inlining Arg" ;* V34 tmp19 [V34 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V35 tmp20 [V35,T03] ( 4, 32 ) byref -> r15 "Inlining Arg" ; V36 tmp21 [V36,T02] ( 5, 36 ) int -> rbx "Inlining Arg" ;* V37 tmp22 [V37 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V38 tmp23 [V38 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inline ldloca(s) first use temp" ;* V39 tmp24 [V39 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V40 tmp25 [V40,T84] ( 4, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" ;* V41 tmp26 [V41 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" -;* V42 tmp27 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -;* V43 tmp28 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" +;* V42 tmp27 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" +;* V43 tmp28 [V43 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V44 tmp29 [V44,T40] ( 2, 8 ) byref -> rdi "Inlining Arg" ; V45 tmp30 [V45,T47] ( 2, 8 ) int -> rsi "Inlining Arg" ; V46 tmp31 [V46,T38] ( 3, 8 ) int -> r8 "Inline return value spill temp" ;* V47 tmp32 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V48 tmp33 [V48 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V49 tmp34 [V49,T32] ( 4, 12 ) long -> [rbp-0x40] "Inline stloc first use temp" ; V50 tmp35 [V50,T52] ( 3, 6 ) int -> [rbp-0x44] "Inline stloc first use temp" ; V51 tmp36 [V51 ] ( 2, 8 ) byref -> [rbp-0x50] must-init pinned "Inline stloc first use temp" ; V52 tmp37 [V52 ] ( 2, 8 ) byref -> [rbp-0x58] must-init pinned "Inline stloc first use temp" ;* V53 tmp38 [V53 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V54 tmp39 [V54 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V55 tmp40 [V55 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V56 tmp41 [V56 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V57 tmp42 [V57,T85] ( 2, 0 ) ref -> r13 class-hnd exact "Inlining Arg" ; V58 tmp43 [V58,T05] ( 4, 32 ) int -> rax "Inlining Arg" ;* V59 tmp44 [V59 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V60 tmp45 [V60,T18] ( 2, 16 ) byref -> r15 "Inlining Arg" ; V61 tmp46 [V61,T21] ( 2, 16 ) int -> rbx "Inlining Arg" ;* V62 tmp47 [V62 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" ; V63 tmp48 [V63,T54] ( 4, 4 ) ref -> r8 class-hnd single-def "Inlining Arg" -;* V64 tmp49 [V64 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -;* V65 tmp50 [V65 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" +;* V64 tmp49 [V64 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" +;* V65 tmp50 [V65 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V66 tmp51 [V66,T64] ( 2, 2 ) byref -> rsi single-def "Inlining Arg" ; V67 tmp52 [V67,T67] ( 2, 2 ) int -> rdx "Inlining Arg" ;* V68 tmp53 [V68 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V69 tmp54 [V69,T65] ( 2, 2 ) byref -> r15 single-def "Inlining Arg" ; V70 tmp55 [V70,T68] ( 2, 2 ) int -> rbx "Inlining Arg" ;* V71 tmp56 [V71 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V72 tmp57 [V72 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" ;* V73 tmp58 [V73 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ;* V74 tmp59 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V75 tmp60 [V75 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V76 tmp61 [V76 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V77 tmp62 [V77 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ; V78 tmp63 [V78,T06] ( 4, 32 ) int -> rcx "Inlining Arg" ;* V79 tmp64 [V79 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" ; V80 tmp65 [V80,T19] ( 2, 16 ) byref -> r8 "Inlining Arg" ; V81 tmp66 [V81,T07] ( 3, 24 ) int -> rsi "Inlining Arg" ;* V82 tmp67 [V82 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" ; V83 tmp68 [V83,T09] ( 4, 24 ) ref -> rcx class-hnd "Inlining Arg" -;* V84 tmp69 [V84 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -;* V85 tmp70 [V85 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" -; V86 tmp71 [V86,T41] ( 2, 8 ) byref -> r8 "Inlining Arg" -; V87 tmp72 [V87,T48] ( 2, 8 ) int -> rdx "Inlining Arg" +;* V84 tmp69 [V84 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" +;* V85 tmp70 [V85 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" +; V86 tmp71 [V86,T41] ( 2, 8 ) byref -> rdx "Inlining Arg" +; V87 tmp72 [V87,T48] ( 2, 8 ) int -> rdi "Inlining Arg" ;* V88 tmp73 [V88 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V89 tmp74 [V89,T20] ( 2, 16 ) byref -> rsi "Inlining Arg" ; V90 tmp75 [V90,T22] ( 2, 16 ) int -> rbx "Inlining Arg" ; V91 tmp76 [V91,T10] ( 8, 18.50) byref -> r13 single-def "field V00._reference (fldOffset=0x0)" P-INDEP ; V92 tmp77 [V92,T15] ( 12, 13.50) int -> [rbp-0x5C] single-def "field V00._length (fldOffset=0x8)" P-INDEP ; V93 tmp78 [V93,T01] ( 17, 40.50) byref -> r15 "field V03._reference (fldOffset=0x0)" P-INDEP ; V94 tmp79 [V94,T00] ( 20, 49 ) int -> rbx "field V03._length (fldOffset=0x8)" P-INDEP ;* V95 tmp80 [V95,T71] ( 0, 0 ) byref -> zero-ref "field V07._reference (fldOffset=0x0)" P-INDEP ;* V96 tmp81 [V96,T76] ( 0, 0 ) int -> zero-ref "field V07._length (fldOffset=0x8)" P-INDEP ;* V97 tmp82 [V97 ] ( 0, 0 ) byref -> zero-ref "field V16._reference (fldOffset=0x0)" P-INDEP ;* V98 tmp83 [V98 ] ( 0, 0 ) int -> zero-ref "field V16._length (fldOffset=0x8)" P-INDEP ;* V99 tmp84 [V99 ] ( 0, 0 ) byref -> zero-ref "field V17._reference (fldOffset=0x0)" P-INDEP ;* V100 tmp85 [V100 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP ;* V101 tmp86 [V101,T81] ( 0, 0 ) byref -> zero-ref single-def "field V19._reference (fldOffset=0x0)" P-INDEP ; V102 tmp87 [V102,T77] ( 2, 1 ) int -> rax "field V19._length (fldOffset=0x8)" P-INDEP ; V103 tmp88 [V103,T72] ( 2, 1 ) byref -> r15 single-def "field V23._reference (fldOffset=0x0)" P-INDEP ; V104 tmp89 [V104,T78] ( 2, 1 ) int -> rbx "field V23._length (fldOffset=0x8)" P-INDEP ; V105 tmp90 [V105,T42] ( 2, 8 ) byref -> rsi "field V26._reference (fldOffset=0x0)" P-INDEP ; V106 tmp91 [V106,T33] ( 3, 12 ) int -> rdx "field V26._length (fldOffset=0x8)" P-INDEP ;* V107 tmp92 [V107 ] ( 0, 0 ) byref -> zero-ref "field V27._reference (fldOffset=0x0)" P-INDEP ;* V108 tmp93 [V108 ] ( 0, 0 ) int -> zero-ref "field V27._length (fldOffset=0x8)" P-INDEP ;* V109 tmp94 [V109 ] ( 0, 0 ) byref -> zero-ref "field V28._reference (fldOffset=0x0)" P-INDEP ;* V110 tmp95 [V110 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP ;* V111 tmp96 [V111 ] ( 0, 0 ) byref -> zero-ref "field V29._reference (fldOffset=0x0)" P-INDEP ;* V112 tmp97 [V112 ] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x8)" P-INDEP ;* V113 tmp98 [V113 ] ( 0, 0 ) byref -> zero-ref "field V34._reference (fldOffset=0x0)" P-INDEP ;* V114 tmp99 [V114 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP ;* V115 tmp100 [V115 ] ( 0, 0 ) byref -> zero-ref "field V37._reference (fldOffset=0x0)" P-INDEP ;* V116 tmp101 [V116 ] ( 0, 0 ) int -> zero-ref "field V37._length (fldOffset=0x8)" P-INDEP ;* V117 tmp102 [V117 ] ( 0, 0 ) byref -> zero-ref "field V39._reference (fldOffset=0x0)" P-INDEP ;* V118 tmp103 [V118 ] ( 0, 0 ) int -> zero-ref "field V39._length (fldOffset=0x8)" P-INDEP ; V119 tmp104 [V119,T31] ( 4, 12 ) byref -> rdi "field V41._reference (fldOffset=0x0)" P-INDEP ; V120 tmp105 [V120,T35] ( 4, 10 ) int -> rsi "field V41._length (fldOffset=0x8)" P-INDEP -; V121 tmp106 [V121,T57] ( 2, 4 ) byref -> rdi "field V42._reference (fldOffset=0x0)" P-INDEP -; V122 tmp107 [V122,T59] ( 2, 4 ) int -> rsi "field V42._length (fldOffset=0x8)" P-INDEP -;* V123 tmp108 [V123 ] ( 0, 0 ) byref -> zero-ref "field V43._reference (fldOffset=0x0)" P-INDEP -;* V124 tmp109 [V124 ] ( 0, 0 ) int -> zero-ref "field V43._length (fldOffset=0x8)" P-INDEP +;* V121 tmp106 [V121 ] ( 0, 0 ) byref -> zero-ref "field V42._reference (fldOffset=0x0)" P-INDEP +;* V122 tmp107 [V122 ] ( 0, 0 ) int -> zero-ref "field V42._length (fldOffset=0x8)" P-INDEP +; V123 tmp108 [V123,T57] ( 2, 4 ) byref -> rdi "field V43._reference (fldOffset=0x0)" P-INDEP +; V124 tmp109 [V124,T59] ( 2, 4 ) int -> rsi "field V43._length (fldOffset=0x8)" P-INDEP ;* V125 tmp110 [V125 ] ( 0, 0 ) byref -> zero-ref "field V47._reference (fldOffset=0x0)" P-INDEP ;* V126 tmp111 [V126 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP ;* V127 tmp112 [V127 ] ( 0, 0 ) byref -> zero-ref "field V48._reference (fldOffset=0x0)" P-INDEP ;* V128 tmp113 [V128 ] ( 0, 0 ) int -> zero-ref "field V48._length (fldOffset=0x8)" P-INDEP ;* V129 tmp114 [V129 ] ( 0, 0 ) byref -> zero-ref "field V55._reference (fldOffset=0x0)" P-INDEP ;* V130 tmp115 [V130 ] ( 0, 0 ) int -> zero-ref "field V55._length (fldOffset=0x8)" P-INDEP ;* V131 tmp116 [V131 ] ( 0, 0 ) byref -> zero-ref "field V56._reference (fldOffset=0x0)" P-INDEP ;* V132 tmp117 [V132 ] ( 0, 0 ) int -> zero-ref "field V56._length (fldOffset=0x8)" P-INDEP ; V133 tmp118 [V133,T43] ( 2, 8 ) byref -> r15 "field V59._reference (fldOffset=0x0)" P-INDEP ; V134 tmp119 [V134,T49] ( 2, 8 ) int -> rbx "field V59._length (fldOffset=0x8)" P-INDEP ; V135 tmp120 [V135,T69] ( 3, 1.50) byref -> rsi "field V62._reference (fldOffset=0x0)" P-INDEP ; V136 tmp121 [V136,T70] ( 3, 1.50) int -> rdx "field V62._length (fldOffset=0x8)" P-INDEP -; V137 tmp122 [V137,T73] ( 2, 1 ) byref -> rsi single-def "field V64._reference (fldOffset=0x0)" P-INDEP -; V138 tmp123 [V138,T79] ( 2, 1 ) int -> rdx "field V64._length (fldOffset=0x8)" P-INDEP -;* V139 tmp124 [V139 ] ( 0, 0 ) byref -> zero-ref single-def "field V65._reference (fldOffset=0x0)" P-INDEP -;* V140 tmp125 [V140 ] ( 0, 0 ) int -> zero-ref "field V65._length (fldOffset=0x8)" P-INDEP +;* V137 tmp122 [V137 ] ( 0, 0 ) byref -> zero-ref single-def "field V64._reference (fldOffset=0x0)" P-INDEP +;* V138 tmp123 [V138 ] ( 0, 0 ) int -> zero-ref "field V64._length (fldOffset=0x8)" P-INDEP +; V139 tmp124 [V139,T73] ( 2, 1 ) byref -> rsi single-def "field V65._reference (fldOffset=0x0)" P-INDEP +; V140 tmp125 [V140,T79] ( 2, 1 ) int -> rdx "field V65._length (fldOffset=0x8)" P-INDEP ; V141 tmp126 [V141,T74] ( 2, 1 ) byref -> r15 single-def "field V68._reference (fldOffset=0x0)" P-INDEP ; V142 tmp127 [V142,T80] ( 2, 1 ) int -> rbx "field V68._length (fldOffset=0x8)" P-INDEP ; V143 tmp128 [V143,T44] ( 2, 8 ) byref -> rsi "field V71._reference (fldOffset=0x0)" P-INDEP ; V144 tmp129 [V144,T34] ( 3, 12 ) int -> rdx "field V71._length (fldOffset=0x8)" P-INDEP ;* V145 tmp130 [V145 ] ( 0, 0 ) byref -> zero-ref "field V72._reference (fldOffset=0x0)" P-INDEP ;* V146 tmp131 [V146 ] ( 0, 0 ) int -> zero-ref "field V72._length (fldOffset=0x8)" P-INDEP ;* V147 tmp132 [V147 ] ( 0, 0 ) byref -> zero-ref "field V73._reference (fldOffset=0x0)" P-INDEP ;* V148 tmp133 [V148 ] ( 0, 0 ) int -> zero-ref "field V73._length (fldOffset=0x8)" P-INDEP ;* V149 tmp134 [V149 ] ( 0, 0 ) byref -> zero-ref "field V74._reference (fldOffset=0x0)" P-INDEP ;* V150 tmp135 [V150 ] ( 0, 0 ) int -> zero-ref "field V74._length (fldOffset=0x8)" P-INDEP ; V151 tmp136 [V151,T45] ( 2, 8 ) byref -> r15 "field V79._reference (fldOffset=0x0)" P-INDEP ;* V152 tmp137 [V152,T61] ( 0, 0 ) int -> zero-ref "field V79._length (fldOffset=0x8)" P-INDEP -; V153 tmp138 [V153,T37] ( 3, 8 ) byref -> rdi "field V82._reference (fldOffset=0x0)" P-INDEP -; V154 tmp139 [V154,T39] ( 3, 8 ) int -> rdx "field V82._length (fldOffset=0x8)" P-INDEP -; V155 tmp140 [V155,T58] ( 2, 4 ) byref -> r8 "field V84._reference (fldOffset=0x0)" P-INDEP -; V156 tmp141 [V156,T60] ( 2, 4 ) int -> rdx "field V84._length (fldOffset=0x8)" P-INDEP -;* V157 tmp142 [V157 ] ( 0, 0 ) byref -> zero-ref "field V85._reference (fldOffset=0x0)" P-INDEP -;* V158 tmp143 [V158 ] ( 0, 0 ) int -> zero-ref "field V85._length (fldOffset=0x8)" P-INDEP +; V153 tmp138 [V153,T37] ( 3, 8 ) byref -> rdx "field V82._reference (fldOffset=0x0)" P-INDEP +; V154 tmp139 [V154,T39] ( 3, 8 ) int -> rdi "field V82._length (fldOffset=0x8)" P-INDEP +;* V155 tmp140 [V155 ] ( 0, 0 ) byref -> zero-ref "field V84._reference (fldOffset=0x0)" P-INDEP +;* V156 tmp141 [V156 ] ( 0, 0 ) int -> zero-ref "field V84._length (fldOffset=0x8)" P-INDEP +; V157 tmp142 [V157,T58] ( 2, 4 ) byref -> rdx "field V85._reference (fldOffset=0x0)" P-INDEP +; V158 tmp143 [V158,T60] ( 2, 4 ) int -> rdi "field V85._length (fldOffset=0x8)" P-INDEP ; V159 tmp144 [V159,T46] ( 2, 8 ) byref -> r15 "field V88._reference (fldOffset=0x0)" P-INDEP ; V160 tmp145 [V160,T50] ( 2, 8 ) int -> rbx "field V88._length (fldOffset=0x8)" P-INDEP ; V161 tmp146 [V161,T23] ( 2, 16 ) long -> rdi "Cast away GC" ; V162 tmp147 [V162,T24] ( 2, 16 ) long -> rsi "Cast away GC" ; V163 tmp148 [V163,T25] ( 2, 16 ) long -> rdi "argument with side effect" ; V164 tmp149 [V164,T26] ( 2, 16 ) long -> rsi "argument with side effect" ; V165 cse0 [V165,T53] ( 3, 5 ) long -> [rbp-0x68] spill-single-def "CSE #08: conservative" ; V166 rat0 [V166,T27] ( 4, 12.25) long -> [rbp-0x70] "Strength reduced derived IV" ; V167 rat1 [V167,T28] ( 4, 12.25) int -> [rbp-0x74] "Trip count IV" ; V168 rat2 [V168,T29] ( 4, 12.25) long -> r8 "Strength reduced derived IV" ; V169 rat3 [V169,T30] ( 4, 12.25) int -> rdi "Trip count IV" ; V170 rat4 [V170,T16] ( 5, 16.50) long -> [rbp-0x80] "Widened IV V14" ; V171 rat5 [V171,T17] ( 5, 16.50) long -> r12 "Widened IV V12" ; ; Lcl frame size = 104 G_M11638_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 104 lea rbp, [rsp+0x90] xor eax, eax mov qword ptr [rbp-0x50], rax mov qword ptr [rbp-0x58], rax mov r13, rdi mov eax, esi mov r14, rdx mov r12, rcx mov r15, r8 mov ebx, r9d mov rcx, bword ptr [rbp+0x10] ;; size=53 bbWeight=1 PerfScore 11.50 G_M11638_IG02: xor edi, edi mov bword ptr [rbp+0x10], rcx mov dword ptr [rcx], edi test eax, eax je G_M11638_IG40 ;; size=16 bbWeight=1 PerfScore 3.50 G_M11638_IG03: cmp eax, 1 je G_M11638_IG38 test ebx, ebx je G_M11638_IG15 mov dword ptr [rbp-0x5C], eax mov edx, eax sub edx, 1 jo G_M11638_IG46 imul edx, dword ptr [r14+0x08] jo G_M11638_IG46 mov dword ptr [rbp-0x2C], edx test r12, r12 je SHORT G_M11638_IG05 mov rdi, 0xD1FFAB1E ; global ptr test byte ptr [rdi], 1 je G_M11638_IG42 ;; size=69 bbWeight=0.50 PerfScore 8.75 G_M11638_IG04: mov rsi, 0xD1FFAB1E ; data for System.Text.Latin1Encoding:s_default cmp r12, gword ptr [rsi] jne SHORT G_M11638_IG09 ;; size=15 bbWeight=0.50 PerfScore 2.12 G_M11638_IG05: mov eax, dword ptr [rbp-0x5C] test eax, eax jle G_M11638_IG13 ;; size=11 bbWeight=0.50 PerfScore 1.12 G_M11638_IG06: xor r8d, r8d mov dword ptr [rbp-0x5C], eax mov edi, eax align [4 bytes for IG07] ;; size=12 bbWeight=0.25 PerfScore 0.44 G_M11638_IG07: mov rsi, gword ptr [r8+r13] mov edx, dword ptr [rbp-0x2C] add edx, dword ptr [rsi+0x08] jo G_M11638_IG46 mov dword ptr [rbp-0x2C], edx add r8, 8 dec edi jne SHORT G_M11638_IG07 ;; size=27 bbWeight=4 PerfScore 38.00 G_M11638_IG08: mov byte ptr [r15], 0 mov rdx, r15 mov ecx, ebx lea r8, [rbp-0x38] mov edi, dword ptr [rbp-0x2C] mov esi, 7 mov r9, 0xD1FFAB1E ; code for System.Net.Http.HPack.IntegerEncoder:Encode(int,int,System.Span`1[ubyte],byref):ubyte call [r9]System.Net.Http.HPack.IntegerEncoder:Encode(int,int,System.Span`1[ubyte],byref):ubyte test eax, eax je G_M11638_IG15 mov eax, dword ptr [rbp-0x38] cmp eax, ebx jbe SHORT G_M11638_IG14 jmp G_M11638_IG45 ;; size=54 bbWeight=0.50 PerfScore 6.00 G_M11638_IG09: mov eax, dword ptr [rbp-0x5C] test eax, eax jg SHORT G_M11638_IG11 ;; size=7 bbWeight=0.50 PerfScore 1.12 G_M11638_IG10: mov dword ptr [rbp-0x5C], eax jmp SHORT G_M11638_IG08 ;; size=5 bbWeight=0.25 PerfScore 0.75 G_M11638_IG11: xor r8d, r8d mov dword ptr [rbp-0x5C], eax mov dword ptr [rbp-0x74], eax ;; size=9 bbWeight=0.25 PerfScore 0.56 G_M11638_IG12: mov qword ptr [rbp-0x70], r8 mov rsi, gword ptr [r8+r13] mov rdi, r12 mov r10, qword ptr [r12] mov r10, qword ptr [r10+0x50] call [r10+0x18]System.Text.Encoding:GetByteCount(System.String):int:this mov edx, eax add edx, dword ptr [rbp-0x2C] jo G_M11638_IG46 mov eax, edx mov r8, qword ptr [rbp-0x70] add r8, 8 mov r9d, dword ptr [rbp-0x74] dec r9d mov dword ptr [rbp-0x2C], eax mov dword ptr [rbp-0x74], r9d jne SHORT G_M11638_IG12 jmp G_M11638_IG08 ;; size=65 bbWeight=4 PerfScore 85.00 G_M11638_IG13: mov dword ptr [rbp-0x5C], eax jmp G_M11638_IG08 ;; size=8 bbWeight=0.25 PerfScore 0.75 G_M11638_IG14: mov r9d, eax add r15, r9 sub ebx, eax mov eax, ebx mov r9d, dword ptr [rbp-0x2C] cmp eax, r9d mov dword ptr [rbp-0x2C], r9d jge SHORT G_M11638_IG17 ;; size=23 bbWeight=0.50 PerfScore 2.12 G_M11638_IG15: xor eax, eax ;; size=2 bbWeight=0.50 PerfScore 0.12 G_M11638_IG16: add rsp, 104 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0.50 PerfScore 2.12 G_M11638_IG17: mov eax, dword ptr [rbp-0x5C] test r12, r12 je G_M11638_IG26 mov r8, gword ptr [r13] test r8, r8 - je SHORT G_M11638_IG18 - lea rsi, bword ptr [r8+0x0C] - mov edx, dword ptr [r8+0x08] - mov dword ptr [rbp-0x5C], eax - jmp SHORT G_M11638_IG19 - ;; size=34 bbWeight=0.50 PerfScore 5.50 -G_M11638_IG18: + jne SHORT G_M11638_IG18 xor rsi, rsi xor edx, edx mov dword ptr [rbp-0x5C], eax - ;; size=7 bbWeight=0.50 PerfScore 0.75 + jmp SHORT G_M11638_IG19 + ;; size=30 bbWeight=0.50 PerfScore 4.50 +G_M11638_IG18: + lea rsi, bword ptr [r8+0x0C] + mov edx, dword ptr [r8+0x08] + mov dword ptr [rbp-0x5C], eax + ;; size=11 bbWeight=0.50 PerfScore 1.75 G_M11638_IG19: mov rcx, r15 mov r8d, ebx mov rdi, r12 mov r10, qword ptr [r12] mov r10, qword ptr [r10+0x58] mov qword ptr [rbp-0x68], r10 call [r10+0x28]System.Text.Encoding:GetBytes(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int:this cmp eax, ebx ja G_M11638_IG45 mov edx, eax add r15, rdx sub ebx, eax mov qword ptr [rbp-0x80], 1 cmp dword ptr [rbp-0x5C], 1 jle G_M11638_IG24 ;; size=58 bbWeight=0.50 PerfScore 7.38 G_M11638_IG20: lea rsi, bword ptr [r14+0x10] mov edx, dword ptr [r14+0x08] cmp edx, ebx jg G_M11638_IG43 mov rdi, r15 mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong) call [rax]System.SpanHelpers:Memmove(byref,byref,ulong) mov ecx, dword ptr [r14+0x08] cmp ecx, ebx ja G_M11638_IG45 mov r8d, ecx add r8, r15 mov esi, ebx sub esi, ecx mov r15, r8 mov ebx, esi mov rax, qword ptr [rbp-0x80] mov rcx, gword ptr [r13+8*rax] test rcx, rcx - je SHORT G_M11638_IG22 + jne SHORT G_M11638_IG22 ;; size=72 bbWeight=4 PerfScore 65.00 G_M11638_IG21: - lea r8, bword ptr [rcx+0x0C] - mov edx, dword ptr [rcx+0x08] - mov rdi, r8 + xor rdx, rdx + xor edi, edi jmp SHORT G_M11638_IG23 - ;; size=12 bbWeight=2 PerfScore 9.50 + ;; size=6 bbWeight=2 PerfScore 5.00 G_M11638_IG22: - xor rdi, rdi - xor edx, edx - ;; size=4 bbWeight=2 PerfScore 1.00 + lea rdx, bword ptr [rcx+0x0C] + mov edi, dword ptr [rcx+0x08] + ;; size=7 bbWeight=2 PerfScore 5.00 G_M11638_IG23: mov rcx, r15 mov r8d, esi - mov rsi, rdi + mov rsi, rdx + mov edx, edi mov rdi, r12 mov r9, qword ptr [rbp-0x68] call [r9+0x28]System.Text.Encoding:GetBytes(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int:this cmp eax, ebx ja G_M11638_IG45 mov esi, eax add rsi, r15 sub ebx, eax mov r15, rsi mov rsi, qword ptr [rbp-0x80] inc esi mov eax, dword ptr [rbp-0x5C] cmp esi, eax mov qword ptr [rbp-0x80], rsi jl G_M11638_IG20 - ;; size=59 bbWeight=4 PerfScore 47.00 + ;; size=61 bbWeight=4 PerfScore 48.00 G_M11638_IG24: mov r15d, dword ptr [rbp-0x2C] mov eax, r15d add eax, dword ptr [rbp-0x38] mov r15, bword ptr [rbp+0x10] mov dword ptr [r15], eax mov eax, 1 ;; size=22 bbWeight=0.50 PerfScore 2.75 G_M11638_IG25: add rsp, 104 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0.50 PerfScore 2.12 G_M11638_IG26: mov dword ptr [rbp-0x5C], eax mov r12, gword ptr [r13] mov rsi, r15 mov edx, ebx mov rdi, r12 mov r8, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackEncoder:EncodeValueStringPart(System.String,System.Span`1[ubyte]) call [r8]System.Net.Http.HPack.HPackEncoder:EncodeValueStringPart(System.String,System.Span`1[ubyte]) mov edx, dword ptr [r12+0x08] cmp edx, ebx ja G_M11638_IG45 mov edi, edx add rdi, r15 sub ebx, edx mov r15, rdi mov r12d, 1 cmp dword ptr [rbp-0x5C], 1 jle SHORT G_M11638_IG24 ;; size=63 bbWeight=0.50 PerfScore 7.25 G_M11638_IG27: lea rsi, bword ptr [r14+0x10] mov edx, dword ptr [r14+0x08] cmp edx, ebx jg G_M11638_IG43 mov rdi, r15 mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong) call [rcx]System.SpanHelpers:Memmove(byref,byref,ulong) mov edi, dword ptr [r14+0x08] cmp edi, ebx ja G_M11638_IG45 mov eax, edi add r15, rax sub ebx, edi mov rdi, gword ptr [r13+8*r12] mov rax, rdi test rax, rax - je SHORT G_M11638_IG29 + jne SHORT G_M11638_IG29 ;; size=63 bbWeight=4 PerfScore 59.00 G_M11638_IG28: + xor rdi, rdi + xor esi, esi + mov gword ptr [rbp-0x88], rax + jmp SHORT G_M11638_IG30 + ;; size=13 bbWeight=2 PerfScore 7.00 +G_M11638_IG29: lea rdi, bword ptr [rax+0x0C] mov gword ptr [rbp-0x88], rax mov esi, dword ptr [rax+0x08] - mov rax, gword ptr [rbp-0x88] - jmp SHORT G_M11638_IG30 - ;; size=23 bbWeight=2 PerfScore 13.00 -G_M11638_IG29: - xor rdi, rdi - xor esi, esi - ;; size=4 bbWeight=2 PerfScore 1.00 + ;; size=14 bbWeight=2 PerfScore 7.00 G_M11638_IG30: cmp esi, ebx jle SHORT G_M11638_IG32 ;; size=4 bbWeight=4 PerfScore 5.00 G_M11638_IG31: mov ecx, ebx mov r8d, 1 - mov gword ptr [rbp-0x88], rax mov dword ptr [rbp-0x44], r8d jmp SHORT G_M11638_IG33 - ;; size=21 bbWeight=2 PerfScore 9.00 + ;; size=14 bbWeight=2 PerfScore 7.00 G_M11638_IG32: mov ecx, esi xor r8d, r8d mov dword ptr [rbp-0x44], r8d - mov gword ptr [rbp-0x88], rax - ;; size=16 bbWeight=2 PerfScore 5.00 + ;; size=9 bbWeight=2 PerfScore 3.00 G_M11638_IG33: mov bword ptr [rbp-0x50], rdi mov bword ptr [rbp-0x58], r15 mov rsi, r15 mov qword ptr [rbp-0x40], rcx mov rdx, rcx mov r9, 0xD1FFAB1E ; code for System.Text.Ascii:NarrowUtf16ToAscii(ulong,ulong,ulong):ulong call [r9]System.Text.Ascii:NarrowUtf16ToAscii(ulong,ulong,ulong):ulong cmp rax, qword ptr [rbp-0x40] jne SHORT G_M11638_IG35 ;; size=37 bbWeight=4 PerfScore 39.00 G_M11638_IG34: mov r8d, dword ptr [rbp-0x44] jmp SHORT G_M11638_IG36 ;; size=6 bbWeight=2 PerfScore 6.00 G_M11638_IG35: mov r8d, 3 ;; size=6 bbWeight=2 PerfScore 0.50 G_M11638_IG36: xor rax, rax mov bword ptr [rbp-0x50], rax ;; size=6 bbWeight=4 PerfScore 5.00 G_M11638_IG37: mov bword ptr [rbp-0x58], rax cmp r8d, 3 je G_M11638_IG44 mov rax, gword ptr [rbp-0x88] mov eax, dword ptr [rax+0x08] cmp eax, ebx ja G_M11638_IG45 mov ecx, eax add r15, rcx sub ebx, eax inc r12d mov eax, dword ptr [rbp-0x5C] cmp r12d, eax mov dword ptr [rbp-0x5C], eax jl G_M11638_IG27 jmp G_M11638_IG24 ;; size=62 bbWeight=4 PerfScore 51.00 G_M11638_IG38: mov rdx, r15 mov ecx, ebx mov rdi, gword ptr [r13] mov rsi, r12 mov r8, bword ptr [rbp+0x10] mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackEncoder:EncodeStringLiteral(System.String,System.Text.Encoding,System.Span`1[ubyte],byref):ubyte call [rax]System.Net.Http.HPack.HPackEncoder:EncodeStringLiteral(System.String,System.Text.Encoding,System.Span`1[ubyte],byref):ubyte nop ;; size=29 bbWeight=0.50 PerfScore 3.62 G_M11638_IG39: add rsp, 104 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0.50 PerfScore 2.12 G_M11638_IG40: mov rdx, r15 mov ecx, ebx mov r8, bword ptr [rbp+0x10] mov rdi, 0xD1FFAB1E ; '' xor rsi, rsi mov rax, 0xD1FFAB1E ; code for System.Net.Http.HPack.HPackEncoder:EncodeStringLiteral(System.String,System.Text.Encoding,System.Span`1[ubyte],byref):ubyte call [rax]System.Net.Http.HPack.HPackEncoder:EncodeStringLiteral(System.String,System.Text.Encoding,System.Span`1[ubyte],byref):ubyte nop ;; size=34 bbWeight=0.50 PerfScore 2.75 G_M11638_IG41: add rsp, 104 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0.50 PerfScore 2.12 G_M11638_IG42: mov rdi, 0xD1FFAB1E ; System.Text.Latin1Encoding call CORINFO_HELP_GET_GCSTATIC_BASE jmp G_M11638_IG04 ;; size=20 bbWeight=0 PerfScore 0.00 G_M11638_IG43: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentException_DestinationTooShort() call [rax]System.ThrowHelper:ThrowArgumentException_DestinationTooShort() int3 ;; size=13 bbWeight=0 PerfScore 0.00 G_M11638_IG44: mov rdi, 0xD1FFAB1E ; System.Net.Http.HttpRequestException call CORINFO_HELP_NEWSFAST mov rbx, rax mov rax, 0xD1FFAB1E ; code for System.SR:get_net_http_request_invalid_char_encoding():System.String call [rax]System.SR:get_net_http_request_invalid_char_encoding():System.String mov r13, rax mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Exception:.ctor():this call [rax]System.Exception:.ctor():this lea rdi, bword ptr [rbx+0x10] mov rsi, r13 call CORINFO_HELP_ASSIGN_REF mov rdi, rbx call CORINFO_HELP_THROW int3 ;; size=69 bbWeight=0 PerfScore 0.00 G_M11638_IG45: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException() call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 G_M11638_IG46: call CORINFO_HELP_OVERFLOW int3 ;; size=6 bbWeight=0 PerfScore 0.00 -; Total bytes of code 1199, prolog size 53, PerfScore 516.38, instruction count 342, allocated bytes for code 1199 (MethodHash=5537d289) for method System.Net.Http.HPack.HPackEncoder:EncodeStringLiterals(System.ReadOnlySpan`1[System.String],ubyte[],System.Text.Encoding,System.Span`1[ubyte],byref):ubyte (FullOpts) +; Total bytes of code 1184, prolog size 53, PerfScore 512.88, instruction count 340, allocated bytes for code 1184 (MethodHash=5537d289) for method System.Net.Http.HPack.HPackEncoder:EncodeStringLiterals(System.ReadOnlySpan`1[System.String],ubyte[],System.Text.Encoding,System.Span`1[ubyte],byref):ubyte (FullOpts) ; ============================================================ ```
-15 (-5.49 % of base) - System.Threading.CancellationToken:Register(System.Delegate,System.Object,ubyte,ubyte):System.Threading.CancellationTokenRegistration:this ```diff ; Assembly listing for method System.Threading.CancellationToken:Register(System.Delegate,System.Object,ubyte,ubyte):System.Threading.CancellationTokenRegistration: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; 1 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T01] ( 3, 3 ) byref -> r15 this single-def ; V01 arg1 [V01,T00] ( 4, 3.50) ref -> rbx class-hnd single-def ; V02 arg2 [V02,T02] ( 3, 2.50) ref -> r14 class-hnd single-def ; V03 arg3 [V03,T03] ( 3, 2.50) ubyte -> r13 single-def ; V04 arg4 [V04,T04] ( 3, 2.50) ubyte -> r12 single-def ; V05 loc0 [V05,T07] ( 3, 2.50) ref -> r15 class-hnd single-def ;* V06 loc1 [V06 ] ( 0, 0 ) struct (16) zero-ref multireg-ret 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 single-def ;* V09 tmp2 [V09 ] ( 0, 0 ) ref -> zero-ref single-def ;* V10 tmp3 [V10 ] ( 0, 0 ) ref -> zero-ref single-def ;* V11 tmp4 [V11 ] ( 0, 0 ) ref -> zero-ref ;* V12 tmp5 [V12 ] ( 0, 0 ) ref -> zero-ref ;* V13 tmp6 [V13 ] ( 0, 0 ) ref -> zero-ref ; V14 tmp7 [V14,T11] ( 3, 1.50) ref -> r13 ;* V15 tmp8 [V15 ] ( 0, 0 ) ref -> zero-ref single-def ;* V16 tmp9 [V16 ] ( 0, 0 ) ref -> zero-ref single-def ;* V17 tmp10 [V17 ] ( 0, 0 ) ref -> zero-ref single-def ;* V18 tmp11 [V18 ] ( 0, 0 ) ref -> zero-ref single-def ;* V19 tmp12 [V19 ] ( 0, 0 ) ref -> zero-ref single-def ;* V20 tmp13 [V20 ] ( 0, 0 ) ref -> zero-ref single-def ;* V21 tmp14 [V21 ] ( 0, 0 ) ref -> zero-ref single-def ;* V22 tmp15 [V22 ] ( 0, 0 ) ref -> zero-ref single-def ; V23 tmp16 [V23,T12] ( 3, 1.50) ref -> rax ; V24 tmp17 [V24,T10] ( 2, 2 ) ref -> rax class-hnd exact single-def "dup spill" ; V25 tmp18 [V25,T08] ( 4, 2 ) ref -> rax ; V26 tmp19 [V26,T13] ( 2, 1 ) ref -> rax single-def "field V06._node (fldOffset=0x0)" P-INDEP ; V27 tmp20 [V27,T14] ( 2, 1 ) long -> rdx "field V06._id (fldOffset=0x8)" P-INDEP ; V28 tmp21 [V28,T15] ( 2, 1 ) struct (16) [rbp-0x38] do-not-enreg[SR] multireg-ret must-init "Return value temp for multi-reg return (rejected tail call)." ; V29 rat0 [V29,T09] ( 3, 2 ) byref -> rax "TLS field access" ; V30 rat1 [V30,T06] ( 3, 3 ) long -> rax "TLS access" ; V31 rat2 [V31,T05] ( 3, 3 ) byref -> rax "ThreadStaticBlockBase access" ; ; Lcl frame size = 24 G_M51353_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 24 lea rbp, [rsp+0x40] xor eax, eax mov qword ptr [rbp-0x38], rax mov r15, rdi mov rbx, rsi mov r14, rdx mov r13d, ecx mov r12d, r8d ;; size=40 bbWeight=1 PerfScore 9.25 G_M51353_IG02: mov rdi, rbx mov rsi, 0xD1FFAB1E ; 'callback' mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String) call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String) mov r15, gword ptr [r15] test r15, r15 - je G_M51353_IG11 - ;; size=37 bbWeight=1 PerfScore 7.00 + jne SHORT G_M51353_IG05 + ;; size=33 bbWeight=1 PerfScore 7.00 G_M51353_IG03: + xor rax, rax + xor edx, edx + ;; size=4 bbWeight=0.50 PerfScore 0.25 +G_M51353_IG04: + add rsp, 24 + pop rbx + pop r12 + pop r13 + pop r14 + pop r15 + pop rbp + ret + ;; size=15 bbWeight=0.50 PerfScore 2.12 +G_M51353_IG05: test r13b, r13b - je SHORT G_M51353_IG06 + je SHORT G_M51353_IG08 mov rdi, 0xD1FFAB1E mov rax, 0xD1FFAB1E ; function address call rax cmp dword ptr [rax], 3 - jle G_M51353_IG13 + jle SHORT G_M51353_IG13 mov rdi, gword ptr [rax+0x08] mov rax, bword ptr [rdi+0x18] test rax, rax - je G_M51353_IG13 - ;; size=53 bbWeight=0.50 PerfScore 7.00 -G_M51353_IG04: + je SHORT G_M51353_IG13 + ;; size=45 bbWeight=0.50 PerfScore 7.00 +G_M51353_IG06: mov rax, gword ptr [rax+0x10] test rax, rax - jne SHORT G_M51353_IG05 + jne SHORT G_M51353_IG07 mov rax, 0xD1FFAB1E ; code for System.Threading.Thread:InitializeCurrentThread():System.Threading.Thread call [rax]System.Threading.Thread:InitializeCurrentThread():System.Threading.Thread ;; size=21 bbWeight=0.50 PerfScore 3.25 -G_M51353_IG05: +G_M51353_IG07: mov r13, gword ptr [rax+0x10] - jmp SHORT G_M51353_IG07 + jmp SHORT G_M51353_IG09 ;; size=6 bbWeight=0.50 PerfScore 2.00 -G_M51353_IG06: +G_M51353_IG08: xor r13, r13 ;; size=3 bbWeight=0.50 PerfScore 0.12 -G_M51353_IG07: +G_M51353_IG09: test r12b, r12b - je SHORT G_M51353_IG08 + je SHORT G_M51353_IG10 mov rax, 0xD1FFAB1E ; code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext call [rax]System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext - jmp SHORT G_M51353_IG09 + jmp SHORT G_M51353_IG11 ;; size=19 bbWeight=0.50 PerfScore 3.25 -G_M51353_IG08: +G_M51353_IG10: xor rax, rax ;; size=2 bbWeight=0.50 PerfScore 0.12 -G_M51353_IG09: +G_M51353_IG11: mov rdi, r15 mov rsi, rbx mov rdx, r14 mov rcx, r13 mov r8, rax mov rax, 0xD1FFAB1E ; code for System.Threading.CancellationTokenSource:Register(System.Delegate,System.Object,System.Threading.SynchronizationContext,System.Threading.ExecutionContext):System.Threading.CancellationTokenRegistration:this call [rax]System.Threading.CancellationTokenSource:Register(System.Delegate,System.Object,System.Threading.SynchronizationContext,System.Threading.ExecutionContext):System.Threading.CancellationTokenRegistration:this mov gword ptr [rbp-0x38], rax mov qword ptr [rbp-0x30], rdx mov rax, gword ptr [rbp-0x38] mov rdx, qword ptr [rbp-0x30] ;; size=43 bbWeight=0.50 PerfScore 4.25 -G_M51353_IG10: - add rsp, 24 - pop rbx - pop r12 - pop r13 - pop r14 - pop r15 - pop rbp - ret - ;; size=15 bbWeight=0.50 PerfScore 2.12 -G_M51353_IG11: - xor rax, rax - xor edx, edx - ;; size=4 bbWeight=0.50 PerfScore 0.25 G_M51353_IG12: add rsp, 24 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0.50 PerfScore 2.12 G_M51353_IG13: mov edi, 3 call CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED - jmp G_M51353_IG04 - ;; size=15 bbWeight=0 PerfScore 0.00 + jmp SHORT G_M51353_IG06 + ;; size=12 bbWeight=0 PerfScore 0.00 -; Total bytes of code 273, prolog size 25, PerfScore 40.75, instruction count 79, allocated bytes for code 273 (MethodHash=02473766) for method System.Threading.CancellationToken:Register(System.Delegate,System.Object,ubyte,ubyte):System.Threading.CancellationTokenRegistration:this (FullOpts) +; Total bytes of code 258, prolog size 25, PerfScore 40.75, instruction count 79, allocated bytes for code 258 (MethodHash=02473766) for method System.Threading.CancellationToken:Register(System.Delegate,System.Object,ubyte,ubyte):System.Threading.CancellationTokenRegistration:this (FullOpts) ; ============================================================ ```
-6 (-4.48 % of base) - System.DateTimeParse:SetIfStartsWith(System.ReadOnlySpan`1[ushort],System.String,int,byref,byref) ```diff ; Assembly listing for method System.DateTimeParse:SetIfStartsWith(System.ReadOnlySpan`1[ushort],System.String,int,byref,byref) (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; 4 single block inlinees; 5 inlinees without PGO data ; Final local variable assignments ; ;* V00 arg0 [V00 ] ( 0, 0 ) struct (16) zero-ref multireg-arg single-def ; V01 arg1 [V01,T00] ( 6, 4.50) ref -> rbx class-hnd single-def ; V02 arg2 [V02,T05] ( 3, 2.50) int -> r13 single-def ; V03 arg3 [V03,T03] ( 3, 2.50) byref -> r15 single-def ; V04 arg4 [V04,T04] ( 3, 2.50) byref -> r14 single-def ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V06 tmp1 [V06 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V07 tmp2 [V07 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" -;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -;* V09 tmp4 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" -; V10 tmp5 [V10,T09] ( 2, 2 ) byref -> rdx single-def "Inlining Arg" -; V11 tmp6 [V11,T10] ( 2, 2 ) int -> rax "Inlining Arg" +;* V08 tmp3 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" +;* V09 tmp4 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" +; V10 tmp5 [V10,T09] ( 2, 2 ) byref -> rax single-def "Inlining Arg" +; V11 tmp6 [V11,T10] ( 2, 2 ) int -> rdx "Inlining Arg" ;* V12 tmp7 [V12 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ; V13 tmp8 [V13,T12] ( 2, 1 ) ubyte -> rax "Inline return value spill temp" ;* V14 tmp9 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V15 tmp10 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V16 tmp11 [V16 ] ( 0, 0 ) byref -> zero-ref single-def "impAppendStmt" ;* V17 tmp12 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V18 tmp13 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V19 tmp14 [V19,T08] ( 4, 2 ) ubyte -> rax "Inline return value spill temp" ;* V20 tmp15 [V20 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V21 tmp16 [V21 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg" ; V22 tmp17 [V22,T02] ( 4, 2.50) byref -> rdi single-def "field V00._reference (fldOffset=0x0)" P-INDEP ; V23 tmp18 [V23,T06] ( 2, 2 ) int -> rsi single-def "field V00._length (fldOffset=0x8)" P-INDEP ;* V24 tmp19 [V24 ] ( 0, 0 ) byref -> zero-ref single-def "field V06._reference (fldOffset=0x0)" P-INDEP ;* V25 tmp20 [V25 ] ( 0, 0 ) int -> zero-ref "field V06._length (fldOffset=0x8)" P-INDEP -; V26 tmp21 [V26,T07] ( 5, 2.50) byref -> rdx "field V07._reference (fldOffset=0x0)" P-INDEP -; V27 tmp22 [V27,T01] ( 8, 4.50) int -> rax "field V07._length (fldOffset=0x8)" P-INDEP -; V28 tmp23 [V28,T11] ( 2, 1 ) byref -> rdx single-def "field V08._reference (fldOffset=0x0)" P-INDEP -; V29 tmp24 [V29,T13] ( 2, 1 ) int -> rax "field V08._length (fldOffset=0x8)" P-INDEP -;* V30 tmp25 [V30 ] ( 0, 0 ) byref -> zero-ref single-def "field V09._reference (fldOffset=0x0)" P-INDEP -;* V31 tmp26 [V31 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP +; V26 tmp21 [V26,T07] ( 5, 2.50) byref -> rax "field V07._reference (fldOffset=0x0)" P-INDEP +; V27 tmp22 [V27,T01] ( 8, 4.50) int -> rdx "field V07._length (fldOffset=0x8)" P-INDEP +;* V28 tmp23 [V28 ] ( 0, 0 ) byref -> zero-ref single-def "field V08._reference (fldOffset=0x0)" P-INDEP +;* V29 tmp24 [V29 ] ( 0, 0 ) int -> zero-ref "field V08._length (fldOffset=0x8)" P-INDEP +; V30 tmp25 [V30,T11] ( 2, 1 ) byref -> rax single-def "field V09._reference (fldOffset=0x0)" P-INDEP +; V31 tmp26 [V31,T13] ( 2, 1 ) int -> rdx "field V09._length (fldOffset=0x8)" P-INDEP ;* V32 tmp27 [V32 ] ( 0, 0 ) byref -> zero-ref single-def "field V14._reference (fldOffset=0x0)" P-INDEP ;* V33 tmp28 [V33 ] ( 0, 0 ) int -> zero-ref "field V14._length (fldOffset=0x8)" P-INDEP ;* V34 tmp29 [V34 ] ( 0, 0 ) byref -> zero-ref single-def "field V15._reference (fldOffset=0x0)" P-INDEP ;* V35 tmp30 [V35 ] ( 0, 0 ) int -> zero-ref "field V15._length (fldOffset=0x8)" P-INDEP ;* V36 tmp31 [V36 ] ( 0, 0 ) byref -> zero-ref single-def "field V17._reference (fldOffset=0x0)" P-INDEP ;* V37 tmp32 [V37 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-INDEP ;* V38 tmp33 [V38 ] ( 0, 0 ) byref -> zero-ref single-def "field V18._reference (fldOffset=0x0)" P-INDEP ;* V39 tmp34 [V39 ] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP ; ; Lcl frame size = 0 G_M48478_IG01: push rbp push r15 push r14 push r13 push rbx lea rbp, [rsp+0x20] mov rbx, rdx mov r13d, ecx mov r15, r8 mov r14, r9 ;; size=25 bbWeight=1 PerfScore 6.50 G_M48478_IG02: test rbx, rbx - je SHORT G_M48478_IG04 + jne SHORT G_M48478_IG04 ;; size=5 bbWeight=1 PerfScore 1.25 G_M48478_IG03: - lea rdx, bword ptr [rbx+0x0C] - mov eax, dword ptr [rbx+0x08] + xor rax, rax + xor edx, edx jmp SHORT G_M48478_IG05 - ;; size=9 bbWeight=0.50 PerfScore 2.25 + ;; size=6 bbWeight=0.50 PerfScore 1.25 G_M48478_IG04: - xor rdx, rdx - xor eax, eax - ;; size=4 bbWeight=0.50 PerfScore 0.25 + lea rax, bword ptr [rbx+0x0C] + mov edx, dword ptr [rbx+0x08] + ;; size=7 bbWeight=0.50 PerfScore 1.25 G_M48478_IG05: - cmp eax, esi + cmp edx, esi jg SHORT G_M48478_IG10 ;; size=4 bbWeight=1 PerfScore 1.25 G_M48478_IG06: - cmp eax, 8 + cmp edx, 8 jl SHORT G_M48478_IG08 - cmp eax, 16 + cmp edx, 16 jge SHORT G_M48478_IG07 - mov rsi, rdx - mov edx, eax + mov rsi, rax mov rax, 0xD1FFAB1E ; code for System.Globalization.Ordinal:EqualsIgnoreCase_Vector[System.Runtime.Intrinsics.Vector128`1[ushort]](byref,byref,int):ubyte call [rax]System.Globalization.Ordinal:EqualsIgnoreCase_Vector[System.Runtime.Intrinsics.Vector128`1[ushort]](byref,byref,int):ubyte jmp SHORT G_M48478_IG09 - ;; size=29 bbWeight=0.50 PerfScore 4.12 + ;; size=27 bbWeight=0.50 PerfScore 4.00 G_M48478_IG07: - mov rsi, rdx - mov edx, eax + mov rsi, rax mov rax, 0xD1FFAB1E ; code for System.Globalization.Ordinal:EqualsIgnoreCase_Vector[System.Runtime.Intrinsics.Vector256`1[ushort]](byref,byref,int):ubyte call [rax]System.Globalization.Ordinal:EqualsIgnoreCase_Vector[System.Runtime.Intrinsics.Vector256`1[ushort]](byref,byref,int):ubyte jmp SHORT G_M48478_IG09 - ;; size=19 bbWeight=0.50 PerfScore 2.88 + ;; size=17 bbWeight=0.50 PerfScore 2.75 G_M48478_IG08: - mov rsi, rdx - mov edx, eax + mov rsi, rax mov rax, 0xD1FFAB1E ; code for System.Globalization.Ordinal:EqualsIgnoreCase_Scalar(byref,byref,int):ubyte call [rax]System.Globalization.Ordinal:EqualsIgnoreCase_Scalar(byref,byref,int):ubyte - ;; size=17 bbWeight=0.50 PerfScore 1.88 + ;; size=15 bbWeight=0.50 PerfScore 1.75 G_M48478_IG09: test eax, eax je SHORT G_M48478_IG10 mov dword ptr [r15], r13d mov eax, dword ptr [rbx+0x08] mov dword ptr [r14], eax ;; size=13 bbWeight=0.50 PerfScore 2.62 G_M48478_IG10: pop rbx pop r13 pop r14 pop r15 pop rbp ret ;; size=9 bbWeight=1 PerfScore 3.50 -; Total bytes of code 134, prolog size 13, PerfScore 26.50, instruction count 48, allocated bytes for code 134 (MethodHash=384342a1) for method System.DateTimeParse:SetIfStartsWith(System.ReadOnlySpan`1[ushort],System.String,int,byref,byref) (FullOpts) +; Total bytes of code 128, prolog size 13, PerfScore 26.12, instruction count 45, allocated bytes for code 128 (MethodHash=384342a1) for method System.DateTimeParse:SetIfStartsWith(System.ReadOnlySpan`1[ushort],System.String,int,byref,byref) (FullOpts) ; ============================================================ ```

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

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

MihuBot commented 1 month ago

@xtqqczze