MihuBot / runtime-utils

0 stars 0 forks source link

[X64] [EgorBo] Keep this alive for classes with finalizers #463

Open MihuBot opened 2 weeks ago

MihuBot commented 2 weeks ago

Job completed in 16 minutes. https://github.com/dotnet/runtime/pull/103813

Diffs

Diffs ``` Found 319 files with textual diffs. Summary of Code Size diffs: (Lower is better) Total bytes of base: 41604177 Total bytes of diff: 41667764 Total bytes of delta: 63587 (0.15 % of base) Total relative delta: 3136.76 diff is a regression. relative diff is a regression. Top file regressions (bytes): 12118 : System.Data.Common.dasm (0.72 % of base) 11736 : System.Private.CoreLib.dasm (0.16 % of base) 5961 : System.Net.Sockets.dasm (2.28 % of base) 3414 : System.Data.Odbc.dasm (1.43 % of base) 2936 : System.Net.Security.dasm (1.26 % of base) 2763 : System.Net.Http.dasm (0.34 % of base) 2637 : System.Security.Cryptography.dasm (0.24 % of base) 1781 : System.IO.Ports.dasm (3.50 % of base) 1771 : System.Diagnostics.Process.dasm (1.80 % of base) 1750 : System.Net.WebClient.dasm (3.10 % of base) 1537 : System.Threading.Tasks.Dataflow.dasm (0.11 % of base) 966 : System.DirectoryServices.dasm (1.27 % of base) 929 : System.IO.Pipes.dasm (2.38 % of base) 907 : System.CodeDom.dasm (0.43 % of base) 886 : System.Management.dasm (2.48 % of base) 868 : System.ComponentModel.TypeConverter.dasm (0.27 % of base) 731 : System.Net.Ping.dasm (1.39 % of base) 717 : System.DirectoryServices.Protocols.dasm (0.49 % of base) 653 : System.Transactions.Local.dasm (0.43 % of base) 648 : System.IO.FileSystem.Watcher.dasm (2.31 % of base) 593 : Microsoft.VisualBasic.Core.dasm (0.11 % of base) 558 : System.IO.Compression.dasm (0.58 % of base) 544 : System.Data.OleDb.dasm (2.29 % of base) 517 : System.IO.IsolatedStorage.dasm (2.27 % of base) 388 : System.Diagnostics.DiagnosticSource.dasm (0.15 % of base) 355 : Microsoft.Extensions.Caching.Memory.dasm (1.65 % of base) 350 : System.ComponentModel.EventBasedAsync.dasm (8.12 % of base) 334 : System.Net.Requests.dasm (0.23 % of base) 325 : System.Configuration.ConfigurationManager.dasm (0.08 % of base) 264 : System.Net.Mail.dasm (0.14 % of base) 258 : System.ServiceProcess.ServiceController.dasm (3.85 % of base) 232 : System.Diagnostics.PerformanceCounter.dasm (2.02 % of base) 222 : System.Speech.dasm (0.40 % of base) 220 : System.ComponentModel.Primitives.dasm (1.30 % of base) 217 : System.Diagnostics.EventLog.dasm (0.97 % of base) 208 : System.Net.Quic.dasm (0.14 % of base) 205 : System.Private.Xml.dasm (0.00 % of base) 198 : System.Threading.dasm (1.14 % of base) 190 : System.Reflection.Metadata.dasm (0.03 % of base) 182 : Microsoft.Extensions.DependencyInjection.dasm (0.23 % of base) 178 : System.Net.WebSockets.dasm (0.15 % of base) 155 : System.Net.NameResolution.dasm (0.39 % of base) 132 : Microsoft.Extensions.Logging.EventSource.dasm (0.57 % of base) 121 : Microsoft.Extensions.Hosting.WindowsServices.dasm (1.53 % of base) 116 : System.Windows.Extensions.dasm (2.80 % of base) 112 : System.Runtime.InteropServices.dasm (0.44 % of base) 104 : System.Linq.Parallel.dasm (0.00 % of base) 98 : System.Runtime.Caching.dasm (0.16 % of base) 72 : System.IO.MemoryMappedFiles.dasm (0.34 % of base) 59 : runincontext.dasm (0.38 % of base) 58 : System.IO.Compression.Brotli.dasm (0.26 % of base) 42 : System.Net.Primitives.dasm (0.05 % of base) 38 : System.Security.Principal.Windows.dasm (0.44 % of base) 36 : System.Net.HttpListener.dasm (0.03 % of base) 34 : Microsoft.Win32.Registry.dasm (0.54 % of base) 34 : System.Resources.Extensions.dasm (0.06 % of base) 30 : System.Collections.Concurrent.dasm (0.01 % of base) 28 : System.Threading.Tasks.Parallel.dasm (0.01 % of base) 26 : ILCompiler.Reflection.ReadyToRun.dasm (0.01 % of base) 25 : System.Net.NetworkInformation.dasm (0.05 % of base) 20 : System.Text.Encoding.CodePages.dasm (0.03 % of base) 61 total files with Code Size differences (0 improved, 61 regressed), 197 unchanged. Top method regressions (bytes): 210 (4.42 % of base) : System.Data.Common.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (FullOpts) 205 (4.94 % of base) : System.Data.Common.dasm - System.Data.DataTable:ReadXml(System.Xml.XmlReader,ubyte):int:this (FullOpts) 94 (7.54 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventSource:WriteEventString(System.String):this (FullOpts) 90 (5.14 % of base) : System.IO.FileSystem.Watcher.dasm - System.IO.FileSystemWatcher:WaitForChanged(int,int):System.IO.WaitForChangedResult:this (FullOpts) 87 (9.02 % of base) : System.Private.CoreLib.dasm - System.Runtime.Loader.AssemblyLoadContext:ResolveSatelliteAssembly(System.Reflection.AssemblyName):System.Reflection.Assembly:this (FullOpts) 84 (4.25 % of base) : System.Data.Common.dasm - System.Data.DataView:ToTable(System.String,ubyte,System.String[]):System.Data.DataTable:this (FullOpts) 77 (4.57 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:Abort(System.Exception):this (FullOpts) 70 (2.18 % of base) : System.Data.Common.dasm - System.Data.DataSet:ReadXmlDiffgram(System.Xml.XmlReader):this (FullOpts) 68 (4.10 % of base) : System.Private.CoreLib.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:Init(System.String,int,int,int,int,long,byref,byref):ubyte:this (FullOpts) 68 (2.54 % of base) : System.Data.Common.dasm - System.Data.DataTable:CloneTo(System.Data.DataTable,System.Data.DataSet,ubyte):System.Data.DataTable:this (FullOpts) 68 (5.84 % of base) : System.Data.Common.dasm - System.Data.DataTable:set_TableName(System.String):this (FullOpts) 65 (2.92 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:VerifyRemoteCertificate(System.Net.Security.RemoteCertificateValidationCallback,System.Net.Security.SslCertificateTrust,byref,byref,byref):ubyte:this (FullOpts) 53 (2.67 % of base) : System.Data.Common.dasm - System.Data.DataTable:MergeRow(System.Data.DataRow,System.Data.DataRow,ubyte,System.Data.Index):System.Data.DataRow:this (FullOpts) 52 (1.01 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:SendRequestHelper(System.DirectoryServices.Protocols.DirectoryRequest,byref):int:this (FullOpts) 51 (6.29 % of base) : System.Data.Common.dasm - System.Data.DataColumn:Clone():System.Data.DataColumn:this (FullOpts) 50 (3.57 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteHeaderCollection(System.Net.Http.HttpRequestMessage,System.Net.Http.Headers.HttpHeaders,byref):int:this (FullOpts) 47 (1.83 % of base) : System.Data.Common.dasm - System.Data.DataSet:Clone():System.Data.DataSet:this (FullOpts) 47 (1.02 % of base) : System.Data.Common.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,int,ubyte):int:this (FullOpts) 47 (1.25 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcCommand:ExecuteReaderObject(int,System.String,ubyte,System.Object[],ushort):System.Data.Odbc.OdbcDataReader:this (FullOpts) 46 (6.01 % of base) : System.Data.Common.dasm - System.Data.DataTable:set_Namespace(System.String):this (FullOpts) 45 (8.17 % of base) : System.Net.WebClient.dasm - System.Net.WebClient:PostProgressChanged(System.ComponentModel.AsyncOperation,System.Net.WebClient+ProgressData):this (FullOpts) 43 (3.54 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:ConstructParsedResult(long,byref,byref,byref,byref,byref):int:this (FullOpts) 42 (6.03 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:ProcessGoAwayFrame(System.Net.Http.Http2Connection+FrameHeader):this (FullOpts) 41 (8.60 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.Container:Add(System.ComponentModel.IComponent,System.String):this (FullOpts) 41 (4.16 % of base) : System.IO.Ports.dasm - System.IO.Ports.SerialStream:ProcessRead(System.IO.Ports.SerialStream+SerialStreamIORequest):int:this (FullOpts) 40 (5.30 % of base) : System.Data.Common.dasm - System.Data.DataTable:LoadDataRow(System.Object[],int):System.Data.DataRow:this (FullOpts) 40 (50.00 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcConnection:FlagUnsupportedStmtAttr(int):this (FullOpts) 39 (4.03 % of base) : System.Data.Common.dasm - System.Data.DataColumn:set_ColumnName(System.String):this (FullOpts) 39 (3.75 % of base) : System.Data.Common.dasm - System.Data.DataTable:GetRowAndColumnErrors(int,System.Collections.Hashtable,System.Collections.Hashtable):this (FullOpts) 37 (0.78 % of base) : System.Data.Common.dasm - System.Data.DataSet:ReadXml(System.Xml.XmlReader,ubyte):int:this (FullOpts) 37 (5.37 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.FromBase64Transform:TransformFinalBlock(ubyte[],int,int):ubyte[]:this (FullOpts) 36 (4.63 % of base) : System.Data.Common.dasm - System.Data.DataSet:ValidateLocaleConstraint():ubyte:this (FullOpts) 36 (12.20 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventSource:UpdateDescriptor(System.String,System.Diagnostics.Tracing.TraceLoggingEventTypes,byref,byref):System.Diagnostics.Tracing.NameInfo:this (FullOpts) 35 (7.53 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.Container:get_Components():System.ComponentModel.ComponentCollection:this (FullOpts) 34 (8.42 % of base) : System.Net.Security.dasm - Microsoft.Win32.SafeHandles.SafeSslContextHandle:RemoveSession(long,long):this (FullOpts) 33 (1.59 % of base) : System.Data.Common.dasm - System.Data.DataSet:ReadXmlSchema(System.Xml.XmlReader,ubyte):this (FullOpts) 33 (12.45 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.NativeRuntimeEventSource:ThreadPoolMinMaxThreads(ushort,ushort,ushort,ushort,ushort):this (FullOpts) 32 (1.50 % of base) : System.Data.Common.dasm - System.Data.DataTable:EvaluateDependentExpressions(System.Collections.Generic.List`1[System.Data.DataColumn],System.Data.DataRow,int,System.Collections.Generic.List`1[System.Data.DataRow]):this (FullOpts) 32 (3.71 % of base) : System.Data.Common.dasm - System.Data.DataTable:ImportRow(System.Data.DataRow):this (FullOpts) 32 (58.18 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcConnection:FlagUnsupportedConnectAttr(int):this (FullOpts) 32 (3.70 % of base) : System.IO.Ports.dasm - System.IO.Ports.SerialStream:IOLoop():this (FullOpts) 32 (3.68 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:ChangeInitialWindowSize(int):this (FullOpts) 30 (45.45 % of base) : System.Data.Common.dasm - System.Data.DataColumn:ToString():System.String:this (FullOpts) 30 (2.79 % of base) : System.Data.Common.dasm - System.Data.DataSet:Copy():System.Data.DataSet:this (FullOpts) 30 (8.50 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.NativeRuntimeEventSource:ThreadPoolWorkerThreadAdjustmentStats(double,double,double,double,double,double,double,double,double,ushort,ushort):this (FullOpts) 30 (6.30 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SafeSocketHandle:TryUnblockSocket(ubyte):ubyte:this (FullOpts) 29 (3.62 % of base) : System.Data.Common.dasm - System.Data.DataSet:set_Namespace(System.String):this (FullOpts) 29 (4.21 % of base) : System.Data.Common.dasm - System.Data.DataTable:ConvertToRowError(int,System.Collections.Hashtable,System.Collections.Hashtable):this (FullOpts) 29 (7.09 % of base) : System.Data.Common.dasm - System.Data.DataTable:GetInheritedNamespace(System.Collections.Generic.List`1[System.Data.DataTable]):System.String:this (FullOpts) 29 (1.21 % of base) : System.Data.Common.dasm - System.Data.DataTable:ReadXmlDiffgram(System.Xml.XmlReader):this (FullOpts) 29 (6.71 % of base) : System.Diagnostics.Process.dasm - System.Diagnostics.Process:Kill():this (FullOpts) 29 (3.44 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:ConstructReference(long):System.DirectoryServices.Protocols.SearchResultReference:this (FullOpts) 29 (7.46 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WaitForAvailableStreamsAsync():System.Threading.Tasks.Task`1[ubyte]:this (FullOpts) 29 (74.36 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:CanTryAddressFamily(int):ubyte:this (FullOpts) 29 (2.27 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendTo(ubyte[],int,int,int,System.Net.EndPoint):int:this (FullOpts) 28 (1.15 % of base) : System.Data.Common.dasm - System.Data.Common.DbCommandBuilder:BuildWhereClause(System.Data.Common.DataTableMapping,System.Data.DataRow,System.Text.StringBuilder,System.Data.Common.DbCommand,int,ubyte):int:this (FullOpts) 28 (0.62 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataAdapter:Update(System.Data.DataRow[],System.Data.Common.DataTableMapping):int:this (FullOpts) 28 (3.37 % of base) : System.Data.Common.dasm - System.Data.DataView:AddNew():System.Data.DataRowView:this (FullOpts) 28 (2.41 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventSource:ThrowEventSourceException(System.String,System.Exception):this (FullOpts) 28 (2.28 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:ChangeMaxConcurrentStreams(uint):this (FullOpts) 28 (4.90 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs:ReceiveMessageFromAsync(System.Net.Sockets.Socket,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Net.Sockets.SocketReceiveMessageFromResult]:this (FullOpts) 28 (6.91 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.PosixSignalRegistration:Unregister():this (FullOpts) 28 (11.43 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[double]:System.Threading.Tasks.Dataflow.ISourceBlock.ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock`1[double]):ubyte:this (FullOpts) 28 (11.43 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[int]:System.Threading.Tasks.Dataflow.ISourceBlock.ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock`1[int]):ubyte:this (FullOpts) 28 (11.43 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[long]:System.Threading.Tasks.Dataflow.ISourceBlock.ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock`1[long]):ubyte:this (FullOpts) 28 (11.43 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[short]:System.Threading.Tasks.Dataflow.ISourceBlock.ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock`1[short]):ubyte:this (FullOpts) 28 (11.43 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[System.__Canon]:System.Threading.Tasks.Dataflow.ISourceBlock.ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock`1[System.__Canon]):ubyte:this (FullOpts) 28 (11.43 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[System.Nullable`1[int]]:System.Threading.Tasks.Dataflow.ISourceBlock.ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock`1[System.Nullable`1[int]]):ubyte:this (FullOpts) 28 (11.43 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[System.Numerics.Vector`1[float]]:System.Threading.Tasks.Dataflow.ISourceBlock.ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock`1[System.Numerics.Vector`1[float]]):ubyte:this (FullOpts) 28 (11.43 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[ubyte]:System.Threading.Tasks.Dataflow.ISourceBlock.ReserveMessage(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock`1[ubyte]):ubyte:this (FullOpts) 28 (12.44 % of base) : System.Private.CoreLib.dasm - System.Threading.Thread:StartCallback():this (FullOpts) 27 (14.21 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.FileIO.TextFieldParser:ValidateFieldWidthsOnInput(int[]):this (FullOpts) 27 (90.00 % of base) : System.IO.FileSystem.Watcher.dasm - System.IO.FileSystemWatcher:set_IncludeSubdirectories(ubyte):this (FullOpts) 27 (12.86 % of base) : System.IO.FileSystem.Watcher.dasm - System.IO.FileSystemWatcher:set_NotifyFilter(int):this (FullOpts) 27 (55.10 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:FillForHeadersAsync(ubyte):System.Threading.Tasks.ValueTask:this (FullOpts) 27 (13.78 % of base) : System.Net.Ping.dasm - System.Net.NetworkInformation.Ping:Finish():this (FullOpts) 27 (12.33 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:get_MulticastLoopback():ubyte:this (FullOpts) 27 (39.13 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketAsyncEventArgs:CompletionCallback(int,int,int):this (FullOpts) 27 (75.00 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.TaskExceptionHolder:Add(System.Object,ubyte):this (FullOpts) 26 (60.47 % of base) : System.Security.Cryptography.dasm - Microsoft.Win32.SafeHandles.SafeBioHandle:get_IsInvalid():ubyte:this (FullOpts) 26 (60.47 % of base) : System.Net.Security.dasm - Microsoft.Win32.SafeHandles.SafeBioHandle:get_IsInvalid():ubyte:this (FullOpts) 26 (118.18 % of base) : System.Private.CoreLib.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:get_CanSeek():ubyte:this (FullOpts) 26 (60.47 % of base) : System.Security.Cryptography.dasm - Microsoft.Win32.SafeHandles.SafeInteriorHandle:get_IsInvalid():ubyte:this (FullOpts) 26 (60.47 % of base) : System.Net.Security.dasm - Microsoft.Win32.SafeHandles.SafeInteriorHandle:get_IsInvalid():ubyte:this (FullOpts) 26 (92.86 % of base) : System.IO.Pipes.dasm - Microsoft.Win32.SafeHandles.SafePipeHandle:get_PipeSocket():System.Net.Sockets.Socket:this (FullOpts) 26 (72.22 % of base) : System.Net.Security.dasm - Microsoft.Win32.SafeHandles.SafeSslContextHandle:Dispose(ubyte):this (FullOpts) 26 (76.47 % of base) : System.Security.Cryptography.dasm - Microsoft.Win32.SafeHandles.SafeX509ChainHandle:Dispose(ubyte):this (FullOpts) 26 (76.47 % of base) : System.Security.Cryptography.dasm - Microsoft.Win32.SafeHandles.SafeX509StackHandle:Dispose(ubyte):this (FullOpts) 26 (100.00 % of base) : System.Private.CoreLib.dasm - System.ComAwareWeakReference:get_Target():System.Object:this (FullOpts) 26 (26.26 % of base) : System.Data.Common.dasm - System.Data.DataColumn:GetAggregateValue(int[],int):System.Object:this (FullOpts) 26 (1.53 % of base) : System.Data.Common.dasm - System.Data.DataSet:GetXmlSchemaForRemoting(System.Data.DataTable):System.String:this (FullOpts) 26 (3.57 % of base) : System.Data.Common.dasm - System.Data.DataSet:ValidateCaseConstraint():ubyte:this (FullOpts) 26 (35.14 % of base) : System.Data.Common.dasm - System.Data.DataView:System.ComponentModel.ITypedList.GetListName(System.ComponentModel.PropertyDescriptor[]):System.String:this (FullOpts) 26 (113.04 % of base) : System.Data.Common.dasm - System.Data.LinqDataView:System.ComponentModel.IBindingList.get_SortProperty():System.ComponentModel.PropertyDescriptor:this (FullOpts) 26 (0.63 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventProvider:WriteEvent(byref,long,ulong,ulong,System.Object[]):ubyte:this (FullOpts) 26 (17.57 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:ConstructResponseAsync(int,int,int,System.TimeSpan,ubyte,ubyte):System.Threading.Tasks.ValueTask`1[System.DirectoryServices.Protocols.DirectoryResponse]:this (FullOpts) 26 (4.08 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:EndSendRequest(System.IAsyncResult):System.DirectoryServices.Protocols.DirectoryResponse:this (FullOpts) 26 (45.61 % of base) : System.IO.FileSystem.Watcher.dasm - System.IO.FileSystemWatcher:GetHandler(int):System.IO.FileSystemEventHandler:this (FullOpts) 26 (59.09 % of base) : System.IO.FileSystem.Watcher.dasm - System.IO.FileSystemWatcher:IsSuspended():ubyte:this (FullOpts) 26 (3.44 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:ReleaseStream():this (FullOpts) Top method improvements (bytes): -61 (-3.39 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:.ctor(System.Net.Sockets.SafeSocketHandle,ubyte):this (FullOpts) -48 (-3.13 % of base) : System.Data.Common.dasm - System.Data.DataSet:SerializeRelations(System.Runtime.Serialization.SerializationInfo):this (FullOpts) -37 (-3.78 % of base) : System.Net.WebClient.dasm - System.Net.WebClient:UploadBits(System.Net.WebRequest,System.IO.FileStream,ubyte[],int,ubyte[],ubyte[]):ubyte[]:this (FullOpts) -24 (-2.44 % of base) : System.Data.Common.dasm - System.Data.DataSet:WriteXmlSchema(System.Xml.XmlWriter,int,System.Converter`2[System.Type,System.String]):this (FullOpts) -21 (-2.76 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataAdapter:Update(System.Data.DataTable):int:this (FullOpts) -21 (-2.05 % of base) : System.Data.Common.dasm - System.Data.DataTable:WriteXml(System.String,int,ubyte):this (FullOpts) -16 (-3.53 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.NetworkStream:Read(System.Span`1[ubyte]):int:this (FullOpts) -16 (-3.53 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.NetworkStream:Write(System.ReadOnlySpan`1[ubyte]):this (FullOpts) -14 (-1.37 % of base) : System.Data.Common.dasm - System.Data.DataSet:EnableConstraints():this (FullOpts) -14 (-0.86 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:BeginSendRequest(System.DirectoryServices.Protocols.DirectoryRequest,System.TimeSpan,int,System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts) -14 (-3.41 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:AuthenticateAsClientAsync(System.Net.Security.SslClientAuthenticationOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts) -14 (-2.85 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:AuthenticateAsClientAsync(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,int,ubyte):System.Threading.Tasks.Task:this (FullOpts) -14 (-3.06 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:AuthenticateAsServerAsync(System.Security.Cryptography.X509Certificates.X509Certificate,ubyte,int,ubyte):System.Threading.Tasks.Task:this (FullOpts) -14 (-3.16 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:AuthenticateAsServerAsync(System.Security.Cryptography.X509Certificates.X509Certificate,ubyte,ubyte):System.Threading.Tasks.Task:this (FullOpts) -14 (-3.12 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:BeginAuthenticateAsClient(System.Net.Security.SslClientAuthenticationOptions,System.Threading.CancellationToken,System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts) -14 (-1.56 % of base) : System.Net.WebClient.dasm - System.Net.WebClient:UploadDataAsync(System.Uri,System.String,ubyte[],System.Object):this (FullOpts) -14 (-1.53 % of base) : System.Net.WebClient.dasm - System.Net.WebClient:UploadValuesAsync(System.Uri,System.String,System.Collections.Specialized.NameValueCollection,System.Object):this (FullOpts) -12 (-1.39 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:GenerateToken(System.ReadOnlySpan`1[ubyte]):System.Net.Security.ProtocolToken:this (FullOpts) -12 (-2.33 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.NetworkStream:Read(ubyte[],int,int):int:this (FullOpts) -12 (-2.33 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.NetworkStream:Write(ubyte[],int,int):this (FullOpts) -11 (-0.96 % of base) : System.Data.Common.dasm - System.Data.DataSet:GetXmlSchema():System.String:this (FullOpts) -11 (-1.82 % of base) : System.Data.Common.dasm - System.Data.DataSet:WriteXmlSchema(System.String,int,System.Converter`2[System.Type,System.String]):this (FullOpts) -10 (-3.07 % of base) : System.IO.Ports.dasm - System.IO.Ports.SerialStream:Write(ubyte[],int,int,int):this (FullOpts) -10 (-1.93 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:ReceiveMessageFromAsync(System.ArraySegment`1[ubyte],System.Net.EndPoint):System.Threading.Tasks.Task`1[System.Net.Sockets.SocketReceiveMessageFromResult]:this (FullOpts) -10 (-5.62 % of base) : System.Net.WebClient.dasm - System.Net.WebClient:DownloadBitsAsync(System.Net.WebRequest,System.IO.Stream,System.ComponentModel.AsyncOperation,System.Action`3[ubyte[],System.Exception,System.ComponentModel.AsyncOperation]):this (FullOpts) -8 (-2.00 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:AuthenticateAsServer(System.Net.Security.SslServerAuthenticationOptions):this (FullOpts) -7 (-1.51 % of base) : System.Data.Common.dasm - System.Data.Common.DataAdapter:CloneFrom(System.Data.Common.DataAdapter):this (FullOpts) -6 (-0.66 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:CompleteHandshake(System.Net.Security.SslAuthenticationOptions):this (FullOpts) -6 (-1.46 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:NextMessage(System.ReadOnlySpan`1[ubyte]):System.Net.Security.ProtocolToken:this (FullOpts) -6 (-0.85 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:AcceptAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts) -6 (-1.37 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:ConnectAsync(System.String,int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts) -6 (-2.03 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) -6 (-2.03 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendAsync(System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) -6 (-1.25 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs:ReceiveFromAsync(System.Net.Sockets.Socket,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Net.Sockets.SocketReceiveFromResult]:this (FullOpts) -6 (-0.74 % of base) : System.Net.WebClient.dasm - System.Net.WebClient:UploadFile(System.Uri,System.String,System.String):ubyte[]:this (FullOpts) -5 (-0.56 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataAdapter:UpdateRowExecute(System.Data.Common.RowUpdatedEventArgs,System.Data.IDbCommand,int):this (FullOpts) -5 (-2.56 % of base) : System.Data.Common.dasm - System.Data.DataSet:InferXmlSchema(System.String,System.String[]):this (FullOpts) -5 (-0.71 % of base) : System.Data.Common.dasm - System.Data.DataTable:DoRaiseNamespaceChange():this (FullOpts) -5 (-0.35 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:BindHelper(System.Net.NetworkCredential,ubyte):this (FullOpts) -5 (-2.58 % of base) : System.IO.Ports.dasm - System.IO.Ports.SerialPort:CatchErrorEvents(System.Object,System.IO.Ports.SerialErrorReceivedEventArgs):this (FullOpts) -5 (-2.58 % of base) : System.IO.Ports.dasm - System.IO.Ports.SerialPort:CatchPinChangedEvents(System.Object,System.IO.Ports.SerialPinChangedEventArgs):this (FullOpts) -4 (-1.14 % of base) : System.Data.Common.dasm - System.Data.DataTable:get_SelfNested():ubyte:this (FullOpts) -4 (-1.63 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventSource:ReportOutOfBandMessage(System.String):this (FullOpts) -4 (-0.89 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:WriteWithoutBufferingAsync(System.ReadOnlyMemory`1[ubyte],ubyte):System.Threading.Tasks.ValueTask:this (FullOpts) -4 (-0.96 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:WriteAsync(ubyte[],int,int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts) -4 (-0.97 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:ReceiveMessageFromAsync(System.Memory`1[ubyte],System.Net.EndPoint,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Net.Sockets.SocketReceiveMessageFromResult]:this (FullOpts) -4 (-0.84 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendToAsync(System.ReadOnlyMemory`1[ubyte],int,System.Net.SocketAddress,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) -4 (-1.42 % of base) : System.Private.CoreLib.dasm - System.Threading.ThreadLocal`1[double]:Dispose(ubyte):this (FullOpts) -4 (-1.42 % of base) : System.Private.CoreLib.dasm - System.Threading.ThreadLocal`1[int]:Dispose(ubyte):this (FullOpts) -4 (-1.42 % of base) : System.Private.CoreLib.dasm - System.Threading.ThreadLocal`1[long]:Dispose(ubyte):this (FullOpts) -4 (-1.42 % of base) : System.Private.CoreLib.dasm - System.Threading.ThreadLocal`1[System.Nullable`1[int]]:Dispose(ubyte):this (FullOpts) -3 (-0.70 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataAdapter:Fill(int,int,System.Data.DataTable[]):int:this (FullOpts) -3 (-0.44 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataAdapter:Fill(System.Data.DataSet,int,int,System.String,System.Data.IDbCommand,int):int:this (FullOpts) -3 (-0.76 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataAdapter:Fill(System.Data.DataTable,System.Data.IDbCommand,int):int:this (FullOpts) -3 (-0.43 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataAdapter:Fill(System.Data.DataTable[],int,int,System.Data.IDbCommand,int):int:this (FullOpts) -3 (-0.55 % of base) : System.Data.Common.dasm - System.Data.DataTable:CheckNamespaceValidityForNestedParentRelations(System.String,System.Data.DataTable):this (FullOpts) -3 (-0.10 % of base) : System.Data.Common.dasm - System.Data.DataTable:SetDataRowWithLoadOption(System.Data.DataRow,int,int,ubyte):this (FullOpts) -3 (-0.50 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:Encrypt(System.ReadOnlyMemory`1[ubyte]):System.Net.Security.ProtocolToken:this (FullOpts) -3 (-0.56 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:ReceiveFromAsync(System.Memory`1[ubyte],int,System.Net.EndPoint,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Net.Sockets.SocketReceiveFromResult]:this (FullOpts) -3 (-0.60 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendPacketsAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts) -3 (-0.35 % of base) : System.Private.CoreLib.dasm - System.Runtime.Loader.AssemblyLoadContext:GetFirstResolvedAssemblyFromResolvingEvent(System.Reflection.AssemblyName):System.Reflection.Assembly:this (FullOpts) -2 (-0.38 % of base) : System.Data.Common.dasm - System.Data.Common.DataAdapter:FillSchema(System.Data.DataTable,int,System.Data.IDataReader):System.Data.DataTable:this (FullOpts) -2 (-0.37 % of base) : System.Data.Common.dasm - System.Data.DataSet:ReadXml(System.String,int):int:this (FullOpts) -2 (-0.09 % of base) : System.Data.Common.dasm - System.Data.DataTable:DeserializeConstraints(System.Runtime.Serialization.SerializationInfo,int,ubyte):this (FullOpts) -2 (-0.23 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:WriteToStreamAsync(System.ReadOnlyMemory`1[ubyte],ubyte):System.Threading.Tasks.ValueTask:this (FullOpts) -2 (-0.71 % of base) : System.Private.CoreLib.dasm - System.Threading.ThreadLocal`1[short]:Dispose(ubyte):this (FullOpts) -2 (-0.71 % of base) : System.Private.CoreLib.dasm - System.Threading.ThreadLocal`1[ubyte]:Dispose(ubyte):this (FullOpts) -1 (-0.22 % of base) : System.Data.Common.dasm - System.Data.Common.DataAdapter:FillFromReader(System.Data.DataSet,System.Data.DataTable,System.String,System.Data.ProviderBase.DataReaderContainer,int,int,System.Data.DataColumn,System.Object):int:this (FullOpts) -1 (-0.11 % of base) : System.Data.Common.dasm - System.Data.Common.DbCommand:ExecuteNonQueryAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task`1[int]:this (FullOpts) -1 (-0.10 % of base) : System.Data.Common.dasm - System.Data.Common.DbCommand:ExecuteScalarAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Object]:this (FullOpts) -1 (-0.34 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataAdapter:Fill(System.Data.DataSet,int,int,System.String):int:this (FullOpts) -1 (-0.16 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataAdapter:FillSchema(System.Data.DataSet,int,System.Data.IDbCommand,System.String,int):System.Data.DataTable[]:this (FullOpts) -1 (-0.16 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataAdapter:Update(System.Data.DataSet,System.String):int:this (FullOpts) -1 (-0.14 % of base) : System.Data.Common.dasm - System.Data.DataSet:GetXml():System.String:this (FullOpts) -1 (-0.13 % of base) : System.Data.Common.dasm - System.Data.DataSet:InferSchema(System.Xml.XmlDocument,System.String[],int):this (FullOpts) -1 (-0.17 % of base) : System.Data.Common.dasm - System.Data.DataSet:Merge(System.Data.DataRow[],ubyte,int):this (FullOpts) -1 (-0.16 % of base) : System.Data.Common.dasm - System.Data.DataTable:CheckNamespaceValidityForNestedRelations(System.String):this (FullOpts) -1 (-0.18 % of base) : System.Data.Common.dasm - System.Data.DataView:SetIndex2(System.String,int,System.Data.IFilter,ubyte):this (FullOpts) -1 (-0.66 % of base) : System.Diagnostics.Process.dasm - System.Diagnostics.Process:GetWorkingSetLimits(byref,byref):this (FullOpts) -1 (-0.85 % of base) : System.Diagnostics.Process.dasm - System.Diagnostics.ProcessThread:get_PriorityLevel():int:this (FullOpts) -1 (-0.30 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Memory`1[ubyte],int,ubyte,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) -1 (-0.19 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:ReceiveFromAsync(System.Memory`1[ubyte],int,System.Net.SocketAddress,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) -1 (-0.25 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:ReceiveMessageFromAsync(System.Memory`1[ubyte],int,System.Net.EndPoint,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Net.Sockets.SocketReceiveMessageFromResult]:this (FullOpts) -1 (-0.26 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendToAsync(System.ReadOnlyMemory`1[ubyte],int,System.Net.EndPoint,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) -1 (-0.21 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs:ConnectAsync(System.Net.Sockets.Socket):System.Threading.Tasks.ValueTask:this (FullOpts) -1 (-0.25 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs:ReceiveAsync(System.Net.Sockets.Socket,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) -1 (-0.25 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs:ReceiveFromSocketAddressAsync(System.Net.Sockets.Socket,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) -1 (-0.25 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs:SendAsync(System.Net.Sockets.Socket,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) -1 (-0.25 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs:SendToAsync(System.Net.Sockets.Socket,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) Top method regressions (percentages): 9 (900.00 % of base) : Microsoft.Extensions.Caching.Memory.dasm - Microsoft.Extensions.Caching.Memory.MemoryCache+Stats:.ctor():this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:EnsureThreadPoolBindingInitialized():this (FullOpts) 9 (900.00 % of base) : System.CodeDom.dasm - System.CodeDom.Compiler.CodeDomProvider:.ctor():this (FullOpts) 9 (900.00 % of base) : System.ComponentModel.EventBasedAsync.dasm - System.ComponentModel.BackgroundWorker:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.ComponentModel.Primitives.dasm - System.ComponentModel.Component:.ctor():this (FullOpts) 9 (900.00 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.MarshalByValueComponent:.ctor():this (FullOpts) 9 (900.00 % of base) : System.Data.Common.dasm - System.Data.Common.DbCommand:.ctor():this (FullOpts) 9 (900.00 % of base) : System.Data.Common.dasm - System.Data.Common.DbConnection:.ctor():this (FullOpts) 9 (900.00 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataAdapter:OnRowUpdated(System.Data.Common.RowUpdatedEventArgs):this (FullOpts) 9 (900.00 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataAdapter:OnRowUpdating(System.Data.Common.RowUpdatingEventArgs):this (FullOpts) 9 (900.00 % of base) : System.Data.Common.dasm - System.Data.DataSet:InitializeDerivedDataSet():this (FullOpts) 9 (900.00 % of base) : System.Data.Common.dasm - System.Data.DataSet:OnRemoveRelation(System.Data.DataRelation):this (FullOpts) 9 (900.00 % of base) : System.Data.Common.dasm - System.Data.DataSet:OnRemoveTable(System.Data.DataTable):this (FullOpts) 9 (900.00 % of base) : System.Data.Common.dasm - System.Data.DataTable:OnRemoveColumn(System.Data.DataColumn):this (FullOpts) 9 (900.00 % of base) : System.Data.Common.dasm - System.Data.DataViewManager:System.ComponentModel.IBindingList.AddIndex(System.ComponentModel.PropertyDescriptor):this (FullOpts) 9 (900.00 % of base) : System.Data.Common.dasm - System.Data.DataViewManager:System.ComponentModel.IBindingList.RemoveIndex(System.ComponentModel.PropertyDescriptor):this (FullOpts) 9 (900.00 % of base) : System.Data.OleDb.dasm - System.Data.OleDb.OleDbCommand:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.Data.OleDb.dasm - System.Data.OleDb.OleDbConnection:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.Diagnostics.EventLog.dasm - System.Diagnostics.EventLog:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.Diagnostics.PerformanceCounter.dasm - System.Diagnostics.PerformanceCounter:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.Diagnostics.PerformanceCounter.dasm - System.Diagnostics.PerformanceData.CounterSet:Dispose():this (FullOpts) 9 (900.00 % of base) : System.Diagnostics.PerformanceCounter.dasm - System.Diagnostics.PerformanceData.CounterSet:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.Diagnostics.PerformanceCounter.dasm - System.Diagnostics.PerformanceData.CounterSet:Finalize():this (FullOpts) 9 (900.00 % of base) : System.Diagnostics.PerformanceCounter.dasm - System.Diagnostics.PerformanceData.CounterSetInstance:Dispose():this (FullOpts) 9 (900.00 % of base) : System.Diagnostics.PerformanceCounter.dasm - System.Diagnostics.PerformanceData.CounterSetInstance:Finalize():this (FullOpts) 9 (900.00 % of base) : System.Diagnostics.PerformanceCounter.dasm - System.Diagnostics.PerformanceData.CounterSetInstanceCounterDataSet:Dispose():this (FullOpts) 9 (900.00 % of base) : System.Diagnostics.PerformanceCounter.dasm - System.Diagnostics.PerformanceData.CounterSetInstanceCounterDataSet:Finalize():this (FullOpts) 9 (900.00 % of base) : System.Diagnostics.Process.dasm - System.Diagnostics.ProcessThread:ResetIdealProcessor():this (FullOpts) 9 (900.00 % of base) : System.Diagnostics.Process.dasm - System.Diagnostics.ProcessThread:set_IdealProcessor(int):this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventProvider:OnControllerCommand(int,System.Collections.Generic.IDictionary`2[System.String,System.String],int):this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventSource:OnEventCommand(System.Diagnostics.Tracing.EventCommandEventArgs):this (FullOpts) 9 (900.00 % of base) : System.DirectoryServices.dasm - System.DirectoryServices.ActiveDirectory.AdamInstance:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.DirectoryServices.dasm - System.DirectoryServices.ActiveDirectory.DirectoryServer:Dispose():this (FullOpts) 9 (900.00 % of base) : System.DirectoryServices.dasm - System.DirectoryServices.ActiveDirectory.DirectoryServer:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.DirectoryServices.dasm - System.DirectoryServices.ActiveDirectory.DirectoryServer:Finalize():this (FullOpts) 9 (900.00 % of base) : System.DirectoryServices.dasm - System.DirectoryServices.ActiveDirectory.DomainController:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.DirectoryServices.dasm - System.DirectoryServices.ActiveDirectory.ReplicationConnection:Dispose():this (FullOpts) 9 (900.00 % of base) : System.DirectoryServices.dasm - System.DirectoryServices.ActiveDirectory.ReplicationConnection:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.DirectoryServices.dasm - System.DirectoryServices.ActiveDirectory.ReplicationConnection:Finalize():this (FullOpts) 9 (900.00 % of base) : System.DirectoryServices.dasm - System.DirectoryServices.DirectoryEntry:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.DirectoryServices.dasm - System.DirectoryServices.DirectorySearcher:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.DirectoryServices.dasm - System.DirectoryServices.SearchResultCollection:Dispose():this (FullOpts) 9 (900.00 % of base) : System.DirectoryServices.dasm - System.DirectoryServices.SearchResultCollection:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.DirectoryServices.dasm - System.DirectoryServices.SearchResultCollection:Finalize():this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[double]:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[double]:OnDirectoryFinished(System.ReadOnlySpan`1[ushort]):this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[int]:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[int]:OnDirectoryFinished(System.ReadOnlySpan`1[ushort]):this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[long]:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[long]:OnDirectoryFinished(System.ReadOnlySpan`1[ushort]):this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[short]:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[short]:OnDirectoryFinished(System.ReadOnlySpan`1[ushort]):this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:OnDirectoryFinished(System.ReadOnlySpan`1[ushort]):this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.Nullable`1[int]]:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.Nullable`1[int]]:OnDirectoryFinished(System.ReadOnlySpan`1[ushort]):this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.Numerics.Vector`1[float]]:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.Numerics.Vector`1[float]]:OnDirectoryFinished(System.ReadOnlySpan`1[ushort]):this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[ubyte]:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[ubyte]:OnDirectoryFinished(System.ReadOnlySpan`1[ushort]):this (FullOpts) 9 (900.00 % of base) : System.IO.Ports.dasm - System.IO.Ports.SerialStream:set_DiscardNull(ubyte):this (FullOpts) 9 (900.00 % of base) : System.IO.Ports.dasm - System.IO.Ports.SerialStream:set_ParityReplace(ubyte):this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.LocalDataStoreSlot:Finalize():this (FullOpts) 9 (900.00 % of base) : System.Management.dasm - System.Management.ManagementBaseObject:Dispose():this (FullOpts) 9 (900.00 % of base) : System.Management.dasm - System.Management.ManagementObject:Dispose():this (FullOpts) 9 (900.00 % of base) : System.Management.dasm - System.Management.ManagementObjectCollection:Dispose():this (FullOpts) 9 (900.00 % of base) : System.Management.dasm - System.Management.ManagementObjectCollection:Finalize():this (FullOpts) 9 (900.00 % of base) : System.Management.dasm - System.Management.ManagementObjectCollection+ManagementObjectEnumerator:Dispose():this (FullOpts) 9 (900.00 % of base) : System.Management.dasm - System.Management.ManagementObjectCollection+ManagementObjectEnumerator:Finalize():this (FullOpts) 9 (900.00 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.NetworkStream:Flush():this (FullOpts) 9 (900.00 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:set_UseOnlyOverlappedIO(ubyte):this (FullOpts) 9 (900.00 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketAsyncEventArgs:Finalize():this (FullOpts) 9 (900.00 % of base) : System.Net.WebClient.dasm - System.Net.WebClient:add_WriteStreamClosed(System.Net.WriteStreamClosedEventHandler):this (FullOpts) 9 (900.00 % of base) : System.Net.WebClient.dasm - System.Net.WebClient:OnWriteStreamClosed(System.Net.WriteStreamClosedEventArgs):this (FullOpts) 9 (900.00 % of base) : System.Net.WebClient.dasm - System.Net.WebClient:remove_WriteStreamClosed(System.Net.WriteStreamClosedEventHandler):this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.DynamicResolver+DestroyScout:.ctor():this (FullOpts) 9 (900.00 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Internal.CriticalDisposableObject:.ctor():this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.Reflection.LoaderAllocatorScout:.ctor():this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.ConditionalWeakTable`2+Enumerator[System.__Canon,System.__Canon]:Reset():this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.ConstrainedExecution.CriticalFinalizerObject:.ctor():this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.ConstrainedExecution.CriticalFinalizerObject:Finalize():this (FullOpts) 9 (900.00 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ToBase64Transform:.ctor():this (FullOpts) 9 (900.00 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ToBase64Transform:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.ServiceProcess.ServiceController.dasm - System.ServiceProcess.ServiceBase:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.ServiceProcess.ServiceController.dasm - System.ServiceProcess.ServiceController:Dispose(ubyte):this (FullOpts) 9 (900.00 % of base) : System.Speech.dasm - System.Speech.Synthesis.SpeechSynthesizer:Dispose():this (FullOpts) 9 (900.00 % of base) : System.Speech.dasm - System.Speech.Synthesis.SpeechSynthesizer:Finalize():this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.Threading.Thread:.ctor():this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.Threading.Thread:DisableComObjectEagerCleanup():this (FullOpts) 9 (900.00 % of base) : System.Private.CoreLib.dasm - System.WeakReference`1[System.__Canon]:Finalize():this (FullOpts) 9 (900.00 % of base) : runincontext.dasm - TestAssemblyLoadContextBase:Cleanup():this (FullOpts) 21 (420.00 % of base) : System.Private.CoreLib.dasm - System.Threading.Thread:get_IsBackground():ubyte:this (FullOpts) 21 (420.00 % of base) : System.Private.CoreLib.dasm - System.Threading.Thread:get_Priority():int:this (FullOpts) 21 (420.00 % of base) : System.Private.CoreLib.dasm - System.Threading.Thread:get_ThreadState():int:this (FullOpts) 9 (300.00 % of base) : System.Private.CoreLib.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:get_ThreadPoolBinding():System.Threading.ThreadPoolBoundHandle:this (FullOpts) 9 (300.00 % of base) : System.Security.Cryptography.dasm - Microsoft.Win32.SafeHandles.SafeNCryptHandle:ReleaseHandle():ubyte:this (FullOpts) 9 (300.00 % of base) : System.Security.Cryptography.dasm - Microsoft.Win32.SafeHandles.SafeNCryptKeyHandle:ReleaseNativeHandle():ubyte:this (FullOpts) 9 (300.00 % of base) : System.Security.Cryptography.dasm - Microsoft.Win32.SafeHandles.SafeNCryptProviderHandle:ReleaseNativeHandle():ubyte:this (FullOpts) 9 (300.00 % of base) : System.Security.Cryptography.dasm - Microsoft.Win32.SafeHandles.SafeNCryptSecretHandle:ReleaseNativeHandle():ubyte:this (FullOpts) 9 (300.00 % of base) : System.CodeDom.dasm - System.CodeDom.Compiler.CodeDomProvider:CreateParser():System.CodeDom.Compiler.ICodeParser:this (FullOpts) Top method improvements (percentages): -10 (-5.62 % of base) : System.Net.WebClient.dasm - System.Net.WebClient:DownloadBitsAsync(System.Net.WebRequest,System.IO.Stream,System.ComponentModel.AsyncOperation,System.Action`3[ubyte[],System.Exception,System.ComponentModel.AsyncOperation]):this (FullOpts) -37 (-3.78 % of base) : System.Net.WebClient.dasm - System.Net.WebClient:UploadBits(System.Net.WebRequest,System.IO.FileStream,ubyte[],int,ubyte[],ubyte[]):ubyte[]:this (FullOpts) -16 (-3.53 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.NetworkStream:Read(System.Span`1[ubyte]):int:this (FullOpts) -16 (-3.53 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.NetworkStream:Write(System.ReadOnlySpan`1[ubyte]):this (FullOpts) -14 (-3.41 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:AuthenticateAsClientAsync(System.Net.Security.SslClientAuthenticationOptions,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts) -61 (-3.39 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:.ctor(System.Net.Sockets.SafeSocketHandle,ubyte):this (FullOpts) -14 (-3.16 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:AuthenticateAsServerAsync(System.Security.Cryptography.X509Certificates.X509Certificate,ubyte,ubyte):System.Threading.Tasks.Task:this (FullOpts) -48 (-3.13 % of base) : System.Data.Common.dasm - System.Data.DataSet:SerializeRelations(System.Runtime.Serialization.SerializationInfo):this (FullOpts) -14 (-3.12 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:BeginAuthenticateAsClient(System.Net.Security.SslClientAuthenticationOptions,System.Threading.CancellationToken,System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts) -10 (-3.07 % of base) : System.IO.Ports.dasm - System.IO.Ports.SerialStream:Write(ubyte[],int,int,int):this (FullOpts) -14 (-3.06 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:AuthenticateAsServerAsync(System.Security.Cryptography.X509Certificates.X509Certificate,ubyte,int,ubyte):System.Threading.Tasks.Task:this (FullOpts) -14 (-2.85 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:AuthenticateAsClientAsync(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,int,ubyte):System.Threading.Tasks.Task:this (FullOpts) -21 (-2.76 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataAdapter:Update(System.Data.DataTable):int:this (FullOpts) -5 (-2.58 % of base) : System.IO.Ports.dasm - System.IO.Ports.SerialPort:CatchErrorEvents(System.Object,System.IO.Ports.SerialErrorReceivedEventArgs):this (FullOpts) -5 (-2.58 % of base) : System.IO.Ports.dasm - System.IO.Ports.SerialPort:CatchPinChangedEvents(System.Object,System.IO.Ports.SerialPinChangedEventArgs):this (FullOpts) -5 (-2.56 % of base) : System.Data.Common.dasm - System.Data.DataSet:InferXmlSchema(System.String,System.String[]):this (FullOpts) -24 (-2.44 % of base) : System.Data.Common.dasm - System.Data.DataSet:WriteXmlSchema(System.Xml.XmlWriter,int,System.Converter`2[System.Type,System.String]):this (FullOpts) -12 (-2.33 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.NetworkStream:Read(ubyte[],int,int):int:this (FullOpts) -12 (-2.33 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.NetworkStream:Write(ubyte[],int,int):this (FullOpts) -21 (-2.05 % of base) : System.Data.Common.dasm - System.Data.DataTable:WriteXml(System.String,int,ubyte):this (FullOpts) -6 (-2.03 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) -6 (-2.03 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendAsync(System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) -8 (-2.00 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:AuthenticateAsServer(System.Net.Security.SslServerAuthenticationOptions):this (FullOpts) -10 (-1.93 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:ReceiveMessageFromAsync(System.ArraySegment`1[ubyte],System.Net.EndPoint):System.Threading.Tasks.Task`1[System.Net.Sockets.SocketReceiveMessageFromResult]:this (FullOpts) -11 (-1.82 % of base) : System.Data.Common.dasm - System.Data.DataSet:WriteXmlSchema(System.String,int,System.Converter`2[System.Type,System.String]):this (FullOpts) -4 (-1.63 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventSource:ReportOutOfBandMessage(System.String):this (FullOpts) -14 (-1.56 % of base) : System.Net.WebClient.dasm - System.Net.WebClient:UploadDataAsync(System.Uri,System.String,ubyte[],System.Object):this (FullOpts) -14 (-1.53 % of base) : System.Net.WebClient.dasm - System.Net.WebClient:UploadValuesAsync(System.Uri,System.String,System.Collections.Specialized.NameValueCollection,System.Object):this (FullOpts) -7 (-1.51 % of base) : System.Data.Common.dasm - System.Data.Common.DataAdapter:CloneFrom(System.Data.Common.DataAdapter):this (FullOpts) -6 (-1.46 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:NextMessage(System.ReadOnlySpan`1[ubyte]):System.Net.Security.ProtocolToken:this (FullOpts) -4 (-1.42 % of base) : System.Private.CoreLib.dasm - System.Threading.ThreadLocal`1[double]:Dispose(ubyte):this (FullOpts) -4 (-1.42 % of base) : System.Private.CoreLib.dasm - System.Threading.ThreadLocal`1[int]:Dispose(ubyte):this (FullOpts) -4 (-1.42 % of base) : System.Private.CoreLib.dasm - System.Threading.ThreadLocal`1[long]:Dispose(ubyte):this (FullOpts) -4 (-1.42 % of base) : System.Private.CoreLib.dasm - System.Threading.ThreadLocal`1[System.Nullable`1[int]]:Dispose(ubyte):this (FullOpts) -12 (-1.39 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:GenerateToken(System.ReadOnlySpan`1[ubyte]):System.Net.Security.ProtocolToken:this (FullOpts) -14 (-1.37 % of base) : System.Data.Common.dasm - System.Data.DataSet:EnableConstraints():this (FullOpts) -6 (-1.37 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:ConnectAsync(System.String,int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts) -6 (-1.25 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs:ReceiveFromAsync(System.Net.Sockets.Socket,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Net.Sockets.SocketReceiveFromResult]:this (FullOpts) -4 (-1.14 % of base) : System.Data.Common.dasm - System.Data.DataTable:get_SelfNested():ubyte:this (FullOpts) -4 (-0.97 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:ReceiveMessageFromAsync(System.Memory`1[ubyte],System.Net.EndPoint,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Net.Sockets.SocketReceiveMessageFromResult]:this (FullOpts) -11 (-0.96 % of base) : System.Data.Common.dasm - System.Data.DataSet:GetXmlSchema():System.String:this (FullOpts) -4 (-0.96 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:WriteAsync(ubyte[],int,int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts) -4 (-0.89 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:WriteWithoutBufferingAsync(System.ReadOnlyMemory`1[ubyte],ubyte):System.Threading.Tasks.ValueTask:this (FullOpts) -14 (-0.86 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:BeginSendRequest(System.DirectoryServices.Protocols.DirectoryRequest,System.TimeSpan,int,System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts) -6 (-0.85 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:AcceptAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts) -1 (-0.85 % of base) : System.Diagnostics.Process.dasm - System.Diagnostics.ProcessThread:get_PriorityLevel():int:this (FullOpts) -4 (-0.84 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendToAsync(System.ReadOnlyMemory`1[ubyte],int,System.Net.SocketAddress,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) -3 (-0.76 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataAdapter:Fill(System.Data.DataTable,System.Data.IDbCommand,int):int:this (FullOpts) -6 (-0.74 % of base) : System.Net.WebClient.dasm - System.Net.WebClient:UploadFile(System.Uri,System.String,System.String):ubyte[]:this (FullOpts) -2 (-0.71 % of base) : System.Private.CoreLib.dasm - System.Threading.ThreadLocal`1[ubyte]:Dispose(ubyte):this (FullOpts) -5 (-0.71 % of base) : System.Data.Common.dasm - System.Data.DataTable:DoRaiseNamespaceChange():this (FullOpts) -2 (-0.71 % of base) : System.Private.CoreLib.dasm - System.Threading.ThreadLocal`1[short]:Dispose(ubyte):this (FullOpts) -3 (-0.70 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataAdapter:Fill(int,int,System.Data.DataTable[]):int:this (FullOpts) -6 (-0.66 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:CompleteHandshake(System.Net.Security.SslAuthenticationOptions):this (FullOpts) -1 (-0.66 % of base) : System.Diagnostics.Process.dasm - System.Diagnostics.Process:GetWorkingSetLimits(byref,byref):this (FullOpts) -3 (-0.60 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendPacketsAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts) -5 (-0.56 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataAdapter:UpdateRowExecute(System.Data.Common.RowUpdatedEventArgs,System.Data.IDbCommand,int):this (FullOpts) -3 (-0.56 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:ReceiveFromAsync(System.Memory`1[ubyte],int,System.Net.EndPoint,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Net.Sockets.SocketReceiveFromResult]:this (FullOpts) -3 (-0.55 % of base) : System.Data.Common.dasm - System.Data.DataTable:CheckNamespaceValidityForNestedParentRelations(System.String,System.Data.DataTable):this (FullOpts) -3 (-0.50 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:Encrypt(System.ReadOnlyMemory`1[ubyte]):System.Net.Security.ProtocolToken:this (FullOpts) -3 (-0.44 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataAdapter:Fill(System.Data.DataSet,int,int,System.String,System.Data.IDbCommand,int):int:this (FullOpts) -3 (-0.43 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataAdapter:Fill(System.Data.DataTable[],int,int,System.Data.IDbCommand,int):int:this (FullOpts) -2 (-0.38 % of base) : System.Data.Common.dasm - System.Data.Common.DataAdapter:FillSchema(System.Data.DataTable,int,System.Data.IDataReader):System.Data.DataTable:this (FullOpts) -2 (-0.37 % of base) : System.Data.Common.dasm - System.Data.DataSet:ReadXml(System.String,int):int:this (FullOpts) -3 (-0.35 % of base) : System.Private.CoreLib.dasm - System.Runtime.Loader.AssemblyLoadContext:GetFirstResolvedAssemblyFromResolvingEvent(System.Reflection.AssemblyName):System.Reflection.Assembly:this (FullOpts) -5 (-0.35 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:BindHelper(System.Net.NetworkCredential,ubyte):this (FullOpts) -1 (-0.34 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataAdapter:Fill(System.Data.DataSet,int,int,System.String):int:this (FullOpts) -1 (-0.30 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:ReceiveAsync(System.Memory`1[ubyte],int,ubyte,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) -1 (-0.26 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendToAsync(System.ReadOnlyMemory`1[ubyte],int,System.Net.EndPoint,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) -1 (-0.25 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:ReceiveMessageFromAsync(System.Memory`1[ubyte],int,System.Net.EndPoint,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Net.Sockets.SocketReceiveMessageFromResult]:this (FullOpts) -1 (-0.25 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs:ReceiveAsync(System.Net.Sockets.Socket,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) -1 (-0.25 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs:ReceiveFromSocketAddressAsync(System.Net.Sockets.Socket,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) -1 (-0.25 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs:SendAsync(System.Net.Sockets.Socket,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) -1 (-0.25 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs:SendToAsync(System.Net.Sockets.Socket,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) -2 (-0.23 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:WriteToStreamAsync(System.ReadOnlyMemory`1[ubyte],ubyte):System.Threading.Tasks.ValueTask:this (FullOpts) -1 (-0.22 % of base) : System.Data.Common.dasm - System.Data.Common.DataAdapter:FillFromReader(System.Data.DataSet,System.Data.DataTable,System.String,System.Data.ProviderBase.DataReaderContainer,int,int,System.Data.DataColumn,System.Object):int:this (FullOpts) -1 (-0.21 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket+AwaitableSocketAsyncEventArgs:ConnectAsync(System.Net.Sockets.Socket):System.Threading.Tasks.ValueTask:this (FullOpts) -1 (-0.19 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:ReceiveFromAsync(System.Memory`1[ubyte],int,System.Net.SocketAddress,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) -1 (-0.18 % of base) : System.Data.Common.dasm - System.Data.DataView:SetIndex2(System.String,int,System.Data.IFilter,ubyte):this (FullOpts) -1 (-0.17 % of base) : System.Data.Common.dasm - System.Data.DataSet:Merge(System.Data.DataRow[],ubyte,int):this (FullOpts) -1 (-0.16 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataAdapter:Update(System.Data.DataSet,System.String):int:this (FullOpts) -1 (-0.16 % of base) : System.Data.Common.dasm - System.Data.DataTable:CheckNamespaceValidityForNestedRelations(System.String):this (FullOpts) -1 (-0.16 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataAdapter:FillSchema(System.Data.DataSet,int,System.Data.IDbCommand,System.String,int):System.Data.DataTable[]:this (FullOpts) -1 (-0.14 % of base) : System.Data.Common.dasm - System.Data.DataSet:GetXml():System.String:this (FullOpts) -1 (-0.13 % of base) : System.Data.Common.dasm - System.Data.DataSet:InferSchema(System.Xml.XmlDocument,System.String[],int):this (FullOpts) -1 (-0.11 % of base) : System.Data.Common.dasm - System.Data.Common.DbCommand:ExecuteNonQueryAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task`1[int]:this (FullOpts) -3 (-0.10 % of base) : System.Data.Common.dasm - System.Data.DataTable:SetDataRowWithLoadOption(System.Data.DataRow,int,int,ubyte):this (FullOpts) -1 (-0.10 % of base) : System.Data.Common.dasm - System.Data.Common.DbCommand:ExecuteScalarAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Object]:this (FullOpts) -2 (-0.09 % of base) : System.Data.Common.dasm - System.Data.DataTable:DeserializeConstraints(System.Runtime.Serialization.SerializationInfo,int,ubyte):this (FullOpts) 6215 total methods with Code Size differences (89 improved, 6126 regressed), 245769 unchanged. -------------------------------------------------------------------------------- ```

Artifacts:

MihuBot commented 2 weeks ago

Top method regressions

94 (7.54 % of base) - System.Diagnostics.Tracing.EventSource:WriteEventString(System.String):this ```diff ; Assembly listing for method System.Diagnostics.Tracing.EventSource:WriteEventString(System.String):this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 17 single block inlinees; 4 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T00] ( 22, 13 ) ref -> rbx this class-hnd single-def -; V01 arg1 [V01,T01] ( 6, 4 ) ref -> r15 class-hnd single-def +; V00 this [V00,T00] ( 22, 13 ) ref -> [rbp-0x90] this class-hnd EH-live single-def +; V01 arg1 [V01,T01] ( 6, 4 ) ref -> rbx class-hnd single-def ;* V02 loc0 [V02 ] ( 0, 0 ) int -> zero-ref ;* V03 loc1 [V03 ] ( 0, 0 ) long -> zero-ref ; V04 loc2 [V04 ] ( 5, 2.50) struct (24) [rbp-0x40] do-not-enreg[XS] addr-exposed ld-addr-op -; V05 loc3 [V05,T31] ( 2, 1 ) ref -> r14 class-hnd exact single-def +; V05 loc3 [V05,T31] ( 2, 1 ) ref -> r15 class-hnd exact single-def ;* V06 loc4 [V06 ] ( 0, 0 ) struct (24) zero-ref do-not-enreg[SF] ld-addr-op ;* V07 loc5 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def ;* V08 loc6 [V08 ] ( 0, 0 ) long -> zero-ref ; V09 loc7 [V09 ] ( 3, 1.50) byref -> [rbp-0x48] must-init pinned ; V10 loc8 [V10 ] ( 3, 1.50) struct (16) [rbp-0x58] do-not-enreg[XS] addr-exposed ld-addr-op ; V11 loc9 [V11 ] ( 6, 3 ) struct (16) [rbp-0x68] do-not-enreg[XS] addr-exposed ld-addr-op -; V12 loc10 [V12,T30] ( 4, 1 ) ref -> [rbp-0x90] class-hnd EH-live spill-single-def +; V12 loc10 [V12,T30] ( 4, 1 ) ref -> [rbp-0x98] class-hnd EH-live spill-single-def ; V13 loc11 [V13 ] ( 5, 2 ) ubyte -> [rbp-0x70] do-not-enreg[X] addr-exposed ld-addr-op ;* V14 loc12 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def ;* V15 loc13 [V15 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op ; V16 loc14 [V16,T05] ( 7, 3.50) ref -> rax class-hnd single-def ;* V17 loc15 [V17 ] ( 0, 0 ) int -> zero-ref ; V18 loc16 [V18,T25] ( 3, 1.50) long -> rsi ; V19 loc17 [V19 ] ( 2, 1 ) ref -> [rbp-0x78] must-init pinned class-hnd ; V20 OutArgs [V20 ] ( 1, 1 ) struct (16) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V21 tmp1 [V21,T26] ( 3, 1.50) long -> r14 -; V22 tmp2 [V22,T06] ( 3, 3 ) ref -> rdi class-hnd exact single-def "dup spill" +; V21 tmp1 [V21,T26] ( 3, 1.50) long -> r15 +; V22 tmp2 [V22,T06] ( 3, 3 ) ref -> rsi class-hnd exact single-def "dup spill" ;* V23 tmp3 [V23 ] ( 0, 0 ) ref -> zero-ref single-def ; V24 tmp4 [V24,T07] ( 3, 3 ) ref -> rax class-hnd exact single-def "dup spill" -; V25 tmp5 [V25,T14] ( 2, 2 ) ref -> r15 class-hnd exact single-def "impAppendStmt" +; V25 tmp5 [V25,T14] ( 2, 2 ) ref -> rbx class-hnd exact single-def "impAppendStmt" ; V26 tmp6 [V26,T27] ( 3, 1.50) int -> rdi ; V27 tmp7 [V27,T15] ( 2, 2 ) ref -> rsi class-hnd exact single-def "NewObj constructor temp" -; V28 tmp8 [V28,T08] ( 3, 3 ) byref -> rdi single-def "impAppendStmt" -; V29 tmp9 [V29,T16] ( 2, 2 ) ref -> r13 class-hnd exact single-def "impAppendStmt" +; V28 tmp8 [V28,T08] ( 3, 3 ) byref -> rdx single-def "impAppendStmt" +; V29 tmp9 [V29,T16] ( 2, 2 ) ref -> r14 class-hnd exact single-def "impAppendStmt" ; V30 tmp10 [V30,T13] ( 3, 3 ) struct (16) [rbp-0x88] do-not-enreg[SFA] multireg-arg "impAppendStmt" -; V31 tmp11 [V31,T02] ( 6, 6 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" +; V31 tmp11 [V31,T02] ( 6, 6 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" ; V32 tmp12 [V32,T03] ( 5, 5 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" -; V33 tmp13 [V33,T09] ( 3, 3 ) ref -> r13 class-hnd exact single-def "dup spill" +; V33 tmp13 [V33,T09] ( 3, 3 ) ref -> r14 class-hnd exact single-def "dup spill" ;* V34 tmp14 [V34 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" -; V35 tmp15 [V35,T28] ( 3, 1.50) int -> r15 "Inline stloc first use temp" +; V35 tmp15 [V35,T28] ( 3, 1.50) int -> rbx "Inline stloc first use temp" ;* V36 tmp16 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V37 tmp17 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" ;* V38 tmp18 [V38 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -; V39 tmp19 [V39,T29] ( 3, 1.50) int -> rbx "Inline stloc first use temp" +; V39 tmp19 [V39,T29] ( 3, 1.50) int -> r15 "Inline stloc first use temp" ; V40 tmp20 [V40 ] ( 4, 2 ) long -> [rbp-0x68] do-not-enreg[X] addr-exposed "field V11.Ptr (fldOffset=0x0)" P-DEP ; V41 tmp21 [V41 ] ( 4, 2 ) int -> [rbp-0x60] do-not-enreg[X] addr-exposed "field V11.Size (fldOffset=0x8)" P-DEP ; V42 tmp22 [V42 ] ( 4, 2 ) int -> [rbp-0x5C] do-not-enreg[X] addr-exposed "field V11.Reserved (fldOffset=0xc)" P-DEP ;* V43 tmp23 [V43,T33] ( 0, 0 ) ref -> zero-ref single-def "field V15.ParameterName (fldOffset=0x0)" P-INDEP ;* V44 tmp24 [V44,T34] ( 0, 0 ) ref -> zero-ref single-def "field V15.ParameterType (fldOffset=0x8)" P-INDEP ;* V45 tmp25 [V45,T35] ( 0, 0 ) ref -> zero-ref single-def "field V15.TypeInfo (fldOffset=0x10)" P-INDEP ;* V46 tmp26 [V46 ] ( 0, 0 ) long -> zero-ref "V06.[000..008)" ;* V47 tmp27 [V47 ] ( 0, 0 ) ubyte -> zero-ref "V06.[016..017)" ;* V48 tmp28 [V48 ] ( 0, 0 ) ubyte -> zero-ref "V06.[018..019)" ; V49 tmp29 [V49,T17] ( 2, 2 ) ref -> rsi single-def "argument with side effect" -; V50 tmp30 [V50,T18] ( 2, 2 ) long -> r14 "Cast away GC" -; V51 tmp31 [V51,T10] ( 3, 3 ) ref -> rdi single-def "argument with side effect" +; V50 tmp30 [V50,T18] ( 2, 2 ) long -> r15 "Cast away GC" +; V51 tmp31 [V51,T10] ( 3, 3 ) ref -> rax single-def "argument with side effect" ; V52 tmp32 [V52,T04] ( 4, 4 ) byref -> rdi single-def "BlockOp address local" ; V53 tmp33 [V53,T19] ( 2, 2 ) long -> rsi "Cast away GC" ; V54 tmp34 [V54,T11] ( 3, 3 ) ref -> rax single-def "argument with side effect" -; V55 tmp35 [V55,T12] ( 3, 3 ) ref -> rdi single-def "argument with side effect" +; V55 tmp35 [V55,T12] ( 3, 3 ) ref -> rax single-def "argument with side effect" ; V56 PSPSym [V56,T32] ( 1, 1 ) long -> [rbp-0xA0] do-not-enreg[V] "PSPSym" -; V57 cse0 [V57,T24] ( 3, 1.50) ref -> r14 "CSE #01: moderate" +; V57 cse0 [V57,T24] ( 3, 1.50) ref -> r15 "CSE #01: moderate" ; V58 rat0 [V58,T20] ( 2, 2 ) long -> rax "TLS field access" ; V59 rat1 [V59,T21] ( 2, 2 ) long -> rax "TLS access" ; V60 rat2 [V60,T22] ( 2, 2 ) long -> rax "TLS field access" ; V61 rat3 [V61,T23] ( 2, 2 ) long -> rax "TLS access" ; -; Lcl frame size = 136 +; Lcl frame size = 144 G_M12525_IG01: push rbp push r15 push r14 push r13 - push r12 push rbx - sub rsp, 136 + sub rsp, 144 lea rbp, [rsp+0xB0] xor eax, eax mov qword ptr [rbp-0x48], rax mov qword ptr [rbp-0x78], rax mov qword ptr [rbp-0xA0], rsp - mov rbx, rdi - mov r15, rsi - ;; size=48 bbWeight=1 PerfScore 10.50 + mov qword ptr [rbp-0x28], rdi + mov gword ptr [rbp-0x90], rdi + mov rbx, rsi + ;; size=54 bbWeight=1 PerfScore 11.25 G_M12525_IG02: - cmp gword ptr [rbx+0x30], 0 + cmp gword ptr [rdi+0x30], 0 sete al movzx rax, al - cmp gword ptr [rbx+0x40], 0 + cmp gword ptr [rdi+0x40], 0 sete cl movzx rcx, cl test eax, ecx je SHORT G_M12525_IG04 ;; size=26 bbWeight=1 PerfScore 9.75 G_M12525_IG03: - add rsp, 136 + add rsp, 144 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp ret - ;; size=18 bbWeight=0.50 PerfScore 2.12 + ;; size=16 bbWeight=0.50 PerfScore 1.88 G_M12525_IG04: - test byte ptr [rbx+0x94], 8 + test byte ptr [rdi+0x94], 8 je G_M12525_IG06 vxorps xmm0, xmm0, xmm0 vmovdqu xmmword ptr [rbp-0x40], xmm0 vmovdqu xmmword ptr [rbp-0x38], xmm0 mov qword ptr [rbp-0x40], -1 mov byte ptr [rbp-0x30], 0 mov byte ptr [rbp-0x2E], 5 mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:g__GetTrimSafeTraceLoggingEventTypes|80_0():System.Diagnostics.Tracing.TraceLoggingEventTypes call [rax]System.Diagnostics.Tracing.EventSource:g__GetTrimSafeTraceLoggingEventTypes|80_0():System.Diagnostics.Tracing.TraceLoggingEventTypes - mov r14, rax + mov r15, rax mov rdi, 0xD1FFAB1E ; System.Object[] mov esi, 1 call CORINFO_HELP_NEWARR_1_OBJ - mov r13, rax - lea rdi, bword ptr [r13+0x10] - mov rsi, r15 + mov r14, rax + lea rdi, bword ptr [r14+0x10] + mov rsi, rbx call CORINFO_HELP_ASSIGN_REF - mov gword ptr [rsp], r13 + mov gword ptr [rsp], r14 lea rdx, [rbp-0x40] - mov rdi, rbx - mov rcx, r14 + mov rdi, gword ptr [rbp-0x90] + mov rcx, r15 mov rsi, 0xD1FFAB1E ; 'EventSourceMessage' xor r8d, r8d xor r9d, r9d mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteMultiMergeInner(System.String,byref,System.Diagnostics.Tracing.TraceLoggingEventTypes,ulong,ulong,System.Object[]):this call [rax]System.Diagnostics.Tracing.EventSource:WriteMultiMergeInner(System.String,byref,System.Diagnostics.Tracing.TraceLoggingEventTypes,ulong,ulong,System.Object[]):this nop - ;; size=136 bbWeight=0.50 PerfScore 11.29 + ;; size=140 bbWeight=0.50 PerfScore 11.67 G_M12525_IG05: - add rsp, 136 + add rsp, 144 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp ret - ;; size=18 bbWeight=0.50 PerfScore 2.12 + ;; size=16 bbWeight=0.50 PerfScore 1.88 G_M12525_IG06: - cmp gword ptr [rbx+0x18], 0 - jne G_M12525_IG07 - cmp byte ptr [rbx+0x9F], 1 - jne G_M12525_IG07 - mov r14, gword ptr [rbx+0x08] - mov r13, r14 - vmovups xmm0, xmmword ptr [rbx+0xA0] + mov rdi, gword ptr [rbp-0x90] + cmp gword ptr [rdi+0x18], 0 + jne G_M12525_IG08 + cmp byte ptr [rdi+0x9F], 1 + jne G_M12525_IG08 + mov r15, gword ptr [rdi+0x08] + mov r14, r15 + vmovups xmm0, xmmword ptr [rdi+0xA0] vmovups xmmword ptr [rbp-0x88], xmm0 mov rdi, 0xD1FFAB1E ; System.Diagnostics.Tracing.ManifestBuilder call CORINFO_HELP_NEWSFAST - mov r12, rax + mov r13, rax xor edx, edx mov dword ptr [rsp], edx mov rdx, qword ptr [rbp-0x88] mov rcx, qword ptr [rbp-0x80] - mov r8, r14 - mov rdi, r12 - mov rsi, r13 + mov r8, r15 + mov rdi, r13 + mov rsi, r14 xor r9, r9 mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.ManifestBuilder:.ctor(System.String,System.Guid,System.String,System.Resources.ResourceManager,int):this call [rax]System.Diagnostics.Tracing.ManifestBuilder:.ctor(System.String,System.Guid,System.String,System.Resources.ResourceManager,int):this mov rdi, 0xD1FFAB1E ; System.Diagnostics.Tracing.EventAttribute call CORINFO_HELP_NEWSFAST mov rdi, 0xD1FFAB1E mov qword ptr [rax+0x18], rdi xor edi, edi mov dword ptr [rax+0x1C], edi mov dword ptr [rax+0x20], 0xFFFE - mov rdi, r12 + mov rdi, r13 mov rdx, rax mov rsi, 0xD1FFAB1E ; 'EventSourceMessage' mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.ManifestBuilder:StartEvent(System.String,System.Diagnostics.Tracing.EventAttribute):this call [rax]System.Diagnostics.Tracing.ManifestBuilder:StartEvent(System.String,System.Diagnostics.Tracing.EventAttribute):this - mov rdi, r12 + mov rdi, r13 mov rsi, 0xD1FFAB1E ; 'System.String' mov rdx, 0xD1FFAB1E ; 'message' mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.ManifestBuilder:AddEventParameter(System.Type,System.String):this call [rax]System.Diagnostics.Tracing.ManifestBuilder:AddEventParameter(System.Type,System.String):this - mov rdi, r12 + mov rdi, r13 mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.ManifestBuilder:EndEvent():this call [rax]System.Diagnostics.Tracing.ManifestBuilder:EndEvent():this - mov rdi, r12 + mov rdi, r13 mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.ManifestBuilder:CreateManifest():ubyte[]:this call [rax]System.Diagnostics.Tracing.ManifestBuilder:CreateManifest():ubyte[]:this + ;; size=246 bbWeight=0.50 PerfScore 22.50 +G_M12525_IG07: mov rsi, rax - mov rdi, rbx + mov rdi, gword ptr [rbp-0x90] mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:SendManifest(ubyte[]):this call [rax]System.Diagnostics.Tracing.EventSource:SendManifest(ubyte[]):this - ;; size=257 bbWeight=0.50 PerfScore 23.88 -G_M12525_IG07: - test r15, r15 - jne SHORT G_M12525_IG08 - xor r14d, r14d - jmp SHORT G_M12525_IG09 - ;; size=10 bbWeight=0.50 PerfScore 1.75 + mov rdi, gword ptr [rbp-0x90] + ;; size=29 bbWeight=0.50 PerfScore 2.75 G_M12525_IG08: - lea rdi, bword ptr [r15+0x0C] - mov bword ptr [rbp-0x48], rdi - mov r14, bword ptr [rbp-0x48] - ;; size=12 bbWeight=0.50 PerfScore 1.25 + test rbx, rbx + jne SHORT G_M12525_IG09 + xor r15d, r15d + jmp SHORT G_M12525_IG10 + ;; size=10 bbWeight=0.50 PerfScore 1.75 G_M12525_IG09: - xor edi, edi - mov dword ptr [rsp], edi + lea rsi, bword ptr [rbx+0x0C] + mov bword ptr [rbp-0x48], rsi + mov r15, bword ptr [rbp-0x48] + ;; size=12 bbWeight=0.50 PerfScore 1.25 +G_M12525_IG10: + xor esi, esi + mov dword ptr [rsp], esi mov qword ptr [rsp+0x08], -1 lea rdi, [rbp-0x58] - xor esi, esi + ;; size=18 bbWeight=0.50 PerfScore 1.38 +G_M12525_IG11: xor edx, edx xor ecx, ecx xor r8d, r8d xor r9d, r9d mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventDescriptor:.ctor(int,ubyte,ubyte,ubyte,ubyte,int,long):this call [rax]System.Diagnostics.Tracing.EventDescriptor:.ctor(int,ubyte,ubyte,ubyte,ubyte,int,long):this vxorps xmm0, xmm0, xmm0 vmovups xmmword ptr [rbp-0x68], xmm0 - mov qword ptr [rbp-0x68], r14 - mov edi, dword ptr [r15+0x08] + mov qword ptr [rbp-0x68], r15 + mov edi, dword ptr [rbx+0x08] lea edi, [2*rdi+0x02] mov dword ptr [rbp-0x60], edi xor edi, edi mov dword ptr [rbp-0x5C], edi - mov rdi, gword ptr [rbx+0x30] - test rdi, rdi - je SHORT G_M12525_IG10 - mov rdi, gword ptr [rdi+0x08] + mov rdi, gword ptr [rbp-0x90] + mov rsi, gword ptr [rdi+0x30] + test rsi, rsi + je SHORT G_M12525_IG12 + mov rax, gword ptr [rsi+0x08] lea rsi, [rbp-0x68] mov qword ptr [rsp], rsi + mov rdi, rax lea rsi, [rbp-0x58] xor edx, edx xor ecx, ecx xor r8d, r8d mov r9d, 1 - mov rax, qword ptr [rdi] + mov rax, qword ptr [rax] mov rax, qword ptr [rax+0x48] call [rax]System.Diagnostics.Tracing.EventProviderImpl:EventWriteTransfer(byref,long,ulong,ulong,int,ulong):int:this - mov r15d, eax - test r15d, r15d - je SHORT G_M12525_IG10 + mov ebx, eax + test ebx, ebx + je SHORT G_M12525_IG12 mov rdi, 0xD1FFAB1E mov rax, 0xD1FFAB1E ; function address call rax add rax, 56 - mov dword ptr [rax+0x10], r15d - ;; size=159 bbWeight=0.50 PerfScore 17.92 -G_M12525_IG10: - cmp gword ptr [rbx+0x40], 0 - je G_M12525_IG23 - cmp qword ptr [rbx+0x88], 0 - jne G_M12525_IG22 - cmp gword ptr [rbx+0x38], 0 - jne SHORT G_M12525_IG11 + mov dword ptr [rax+0x10], ebx + ;; size=145 bbWeight=0.50 PerfScore 17.04 +G_M12525_IG12: + mov rdi, gword ptr [rbp-0x90] + cmp gword ptr [rdi+0x40], 0 + je G_M12525_IG25 + cmp qword ptr [rdi+0x88], 0 + jne G_M12525_IG24 + cmp gword ptr [rdi+0x38], 0 + jne SHORT G_M12525_IG13 mov rdi, 0xD1FFAB1E ; System.Object call CORINFO_HELP_NEWSFAST mov rsi, rax - lea rdi, bword ptr [rbx+0x38] - test rdi, rdi - je G_M12525_IG25 + mov rdi, gword ptr [rbp-0x90] + lea rdx, bword ptr [rdi+0x38] + test rdx, rdx + je G_M12525_IG27 + mov rdi, rdx xor rdx, rdx call System.Threading.Interlocked:CompareExchangeObject(byref,System.Object,System.Object):System.Object - ;; size=70 bbWeight=0.50 PerfScore 8.25 -G_M12525_IG11: - mov rdi, gword ptr [rbx+0x38] - mov gword ptr [rbp-0x90], rdi - xor esi, esi - mov dword ptr [rbp-0x70], esi - ;; size=16 bbWeight=0.50 PerfScore 2.12 -G_M12525_IG12: + ;; size=87 bbWeight=0.50 PerfScore 9.38 +G_M12525_IG13: + mov rdi, gword ptr [rbp-0x90] + mov rsi, gword ptr [rdi+0x38] + mov gword ptr [rbp-0x98], rsi + xor eax, eax + mov dword ptr [rbp-0x70], eax + ;; size=23 bbWeight=0.50 PerfScore 2.62 +G_M12525_IG14: cmp byte ptr [rbp-0x70], 0 - jne G_M12525_IG20 + jne G_M12525_IG22 lea rsi, [rbp-0x70] + mov rdi, gword ptr [rbp-0x98] call System.Threading.Monitor:ReliableEnter(System.Object,byref) - cmp qword ptr [rbx+0x88], 0 - jne G_M12525_IG21 - mov rdi, 0xD1FFAB1E ; const ptr - mov r15, gword ptr [rdi] + mov rdi, gword ptr [rbp-0x90] + cmp qword ptr [rdi+0x88], 0 + jne G_M12525_IG23 + mov rsi, 0xD1FFAB1E ; const ptr + mov rbx, gword ptr [rsi] mov rdi, 0xD1FFAB1E ; System.Diagnostics.Tracing.EventParameterInfo[] mov esi, 1 call CORINFO_HELP_NEWARR_1_VC lea rdi, bword ptr [rax+0x10] mov rsi, 0xD1FFAB1E ; 'message' mov gword ptr [rdi], rsi mov rsi, 0xD1FFAB1E ; 'System.String' mov gword ptr [rdi+0x08], rsi xor rsi, rsi mov gword ptr [rdi+0x10], rsi - ;; size=103 bbWeight=0.50 PerfScore 8.25 -G_M12525_IG13: + ;; size=117 bbWeight=0.50 PerfScore 9.25 +G_M12525_IG15: mov dword ptr [rsp], esi mov gword ptr [rsp+0x08], rax - mov rdi, r15 + mov rdi, rbx ;; size=11 bbWeight=0.50 PerfScore 1.12 -G_M12525_IG14: +G_M12525_IG16: mov rdx, 0xD1FFAB1E ; 'EventSourceMessage' mov rcx, -1 xor r8d, r8d xor r9d, r9d mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this call [rax]System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,uint,uint,int,System.Diagnostics.Tracing.EventParameterInfo[]):ubyte[]:this test rax, rax - jne SHORT G_M12525_IG15 + jne SHORT G_M12525_IG17 xor edi, edi - jmp SHORT G_M12525_IG16 + jmp SHORT G_M12525_IG18 ;; size=47 bbWeight=0.50 PerfScore 3.88 -G_M12525_IG15: +G_M12525_IG17: mov edi, dword ptr [rax+0x08] ;; size=3 bbWeight=0.50 PerfScore 1.00 -G_M12525_IG16: +G_M12525_IG18: mov gword ptr [rbp-0x78], rax test rax, rax - je SHORT G_M12525_IG17 + je SHORT G_M12525_IG19 cmp dword ptr [rax+0x08], 0 - jne SHORT G_M12525_IG18 + jne SHORT G_M12525_IG20 ;; size=15 bbWeight=0.50 PerfScore 3.12 -G_M12525_IG17: +G_M12525_IG19: xor esi, esi - jmp SHORT G_M12525_IG19 + jmp SHORT G_M12525_IG21 ;; size=4 bbWeight=0.50 PerfScore 1.12 -G_M12525_IG18: +G_M12525_IG20: add rax, 16 mov rsi, rax ;; size=7 bbWeight=0.50 PerfScore 0.25 -G_M12525_IG19: +G_M12525_IG21: + mov rbx, gword ptr [rbp-0x90] mov rdx, gword ptr [rbx+0x40] mov rax, gword ptr [rdx+0x08] mov qword ptr [rsp], rsi mov dword ptr [rsp+0x08], edi mov rdi, rax xor esi, esi mov rdx, 0xD1FFAB1E ; 'EventSourceMessage' mov rcx, -1 xor r8d, r8d xor r9d, r9d mov rax, qword ptr [rax] mov rax, qword ptr [rax+0x48] call [rax+0x08]System.Diagnostics.Tracing.EventProviderImpl:DefineEventHandle(uint,System.String,long,uint,uint,ulong,uint):long:this mov qword ptr [rbx+0x88], rax xor rdi, rdi mov gword ptr [rbp-0x78], rdi - jmp SHORT G_M12525_IG21 - ;; size=72 bbWeight=0.50 PerfScore 9.38 -G_M12525_IG20: + jmp SHORT G_M12525_IG23 + ;; size=79 bbWeight=0.50 PerfScore 9.88 +G_M12525_IG22: mov rax, 0xD1FFAB1E ; code for System.Threading.Monitor:ThrowLockTakenException() call [rax]System.Threading.Monitor:ThrowLockTakenException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -G_M12525_IG21: +G_M12525_IG23: cmp byte ptr [rbp-0x70], 0 - je SHORT G_M12525_IG22 - mov rdi, gword ptr [rbp-0x90] + je SHORT G_M12525_IG24 + mov rdi, gword ptr [rbp-0x98] call System.Threading.Monitor:Exit(System.Object) ;; size=18 bbWeight=0.50 PerfScore 2.50 -G_M12525_IG22: - mov rdi, gword ptr [rbx+0x40] - mov rdi, gword ptr [rdi+0x08] +G_M12525_IG24: + mov rdi, gword ptr [rbp-0x90] + mov rdx, gword ptr [rdi+0x40] + mov rax, gword ptr [rdx+0x08] lea rdx, [rbp-0x68] mov qword ptr [rsp], rdx + mov rdi, rax + mov rbx, gword ptr [rbp-0x90] mov rdx, qword ptr [rbx+0x88] lea rsi, [rbp-0x58] xor ecx, ecx xor r8d, r8d mov r9d, 1 - mov rax, qword ptr [rdi] + mov rax, qword ptr [rax] mov rax, qword ptr [rax+0x48] call [rax]System.Diagnostics.Tracing.EventProviderImpl:EventWriteTransfer(byref,long,ulong,ulong,int,ulong):int:this - mov ebx, eax - test ebx, ebx - je SHORT G_M12525_IG23 + mov r15d, eax + test r15d, r15d + je SHORT G_M12525_IG25 mov rdi, 0xD1FFAB1E mov rax, 0xD1FFAB1E ; function address call rax add rax, 56 - mov dword ptr [rax+0x10], ebx - ;; size=82 bbWeight=0.50 PerfScore 11.00 -G_M12525_IG23: + mov dword ptr [rax+0x10], r15d + ;; size=102 bbWeight=0.50 PerfScore 12.12 +G_M12525_IG25: + mov rdi, gword ptr [rbp-0x90] xor eax, eax mov bword ptr [rbp-0x48], rax - ;; size=6 bbWeight=0.50 PerfScore 0.62 -G_M12525_IG24: - add rsp, 136 + ;; size=13 bbWeight=0.50 PerfScore 1.12 +G_M12525_IG26: + add rsp, 144 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp ret - ;; size=18 bbWeight=0.50 PerfScore 2.12 -G_M12525_IG25: + ;; size=16 bbWeight=0.50 PerfScore 1.88 +G_M12525_IG27: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowNullReferenceException() call [rax]System.ThrowHelper:ThrowNullReferenceException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -G_M12525_IG26: +G_M12525_IG28: push rbp push r15 push r14 push r13 - push r12 push rbx - sub rsp, 24 + sub rsp, 32 mov rbp, qword ptr [rdi+0x10] mov qword ptr [rsp+0x10], rbp lea rbp, [rbp+0xB0] - ;; size=30 bbWeight=0 PerfScore 0.00 -G_M12525_IG27: + ;; size=28 bbWeight=0 PerfScore 0.00 +G_M12525_IG29: cmp byte ptr [rbp-0x70], 0 - je SHORT G_M12525_IG28 - mov rdi, gword ptr [rbp-0x90] + je SHORT G_M12525_IG30 + mov rdi, gword ptr [rbp-0x98] call System.Threading.Monitor:Exit(System.Object) ;; size=18 bbWeight=0 PerfScore 0.00 -G_M12525_IG28: +G_M12525_IG30: nop ;; size=1 bbWeight=0 PerfScore 0.00 -G_M12525_IG29: - add rsp, 24 +G_M12525_IG31: + add rsp, 32 pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp ret - ;; size=15 bbWeight=0 PerfScore 0.00 + ;; size=13 bbWeight=0 PerfScore 0.00 -; Total bytes of code 1246, prolog size 48, PerfScore 135.33, instruction count 301, allocated bytes for code 1246 (MethodHash=61c7cf12) for method System.Diagnostics.Tracing.EventSource:WriteEventString(System.String):this (FullOpts) +; Total bytes of code 1340, prolog size 54, PerfScore 142.33, instruction count 310, allocated bytes for code 1340 (MethodHash=61c7cf12) for method System.Diagnostics.Tracing.EventSource:WriteEventString(System.String):this (FullOpts) ```

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

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

MihuBot commented 2 weeks ago

Top method improvements

-48 (-3.13 % of base) - System.Data.DataSet:SerializeRelations(System.Runtime.Serialization.SerializationInfo):this ```diff ; Assembly listing for method System.Data.DataSet:SerializeRelations(System.Runtime.Serialization.SerializationInfo):this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 15 single block inlinees; 13 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T34] ( 5, 11 ) ref -> r15 this class-hnd single-def +; V00 this [V00,T34] ( 5, 11 ) ref -> [rbp-0x58] this class-hnd EH-live single-def ; V01 arg1 [V01,T30] ( 15, 13.50) ref -> rbx class-hnd single-def -; V02 loc0 [V02,T11] ( 13, 39 ) ref -> r14 class-hnd exact single-def -; V03 loc1 [V03,T35] ( 6, 10 ) ref -> [rbp-0x50] class-hnd EH-live spill-single-def -; V04 loc2 [V04,T05] ( 12, 72 ) ref -> r13 class-hnd -; V05 loc3 [V05,T12] ( 5, 32 ) ref -> [rbp-0x58] class-hnd exact spill-single-def -; V06 loc4 [V06,T13] ( 5, 32 ) ref -> [rbp-0x60] class-hnd exact spill-single-def +; V02 loc0 [V02,T11] ( 13, 39 ) ref -> r15 class-hnd exact single-def +; V03 loc1 [V03,T35] ( 6, 10 ) ref -> [rbp-0x60] class-hnd EH-live spill-single-def +; V04 loc2 [V04,T05] ( 12, 72 ) ref -> r14 class-hnd +; V05 loc3 [V05,T12] ( 5, 32 ) ref -> r12 class-hnd exact +; V06 loc4 [V06,T13] ( 5, 32 ) ref -> [rbp-0x68] class-hnd exact spill-single-def ;* V07 loc5 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact ;* V08 loc6 [V08,T50] ( 0, 0 ) int -> zero-ref ;* V09 loc7 [V09,T51] ( 0, 0 ) int -> zero-ref ; V10 loc8 [V10,T53] ( 6, 2.50) ref -> rax class-hnd ;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V12 tmp1 [V12,T43] ( 3, 6 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" +; V12 tmp1 [V12,T43] ( 3, 6 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" ;* V13 tmp2 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" ; V14 tmp3 [V14,T26] ( 2, 16 ) int -> rax "Strict ordering of exceptions for Array store" ; V15 tmp4 [V15,T06] ( 2, 64 ) int -> rax "Strict ordering of exceptions for Array store" ;* V16 tmp5 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" ; V17 tmp6 [V17,T27] ( 2, 16 ) int -> rax "Strict ordering of exceptions for Array store" ; V18 tmp7 [V18,T07] ( 2, 64 ) int -> rax "Strict ordering of exceptions for Array store" -; V19 tmp8 [V19,T00] ( 47,348 ) ref -> r12 class-hnd exact "NewObj constructor temp" -; V20 tmp9 [V20,T17] ( 3, 24 ) ref -> [rbp-0x68] class-hnd exact spill-single-def "Single-def Box Helper" +; V19 tmp8 [V19,T00] ( 47,348 ) ref -> r13 class-hnd exact "NewObj constructor temp" +; V20 tmp9 [V20,T17] ( 3, 24 ) ref -> r12 class-hnd exact "Single-def Box Helper" ;* V21 tmp10 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ;* V22 tmp11 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ; V23 tmp12 [V23,T20] ( 2, 16 ) ref -> [rbp-0x70] class-hnd exact spill-single-def "Inlining Arg" ; V24 tmp13 [V24,T37] ( 2, 8 ) int -> rsi "Inline stloc first use temp" ; V25 tmp14 [V25,T38] ( 2, 8 ) int -> rsi "Inline stloc first use temp" ; V26 tmp15 [V26,T39] ( 2, 8 ) int -> rdi "Inline stloc first use temp" ;* V27 tmp16 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" ; V28 tmp17 [V28,T40] ( 2, 8 ) int -> rsi "Inline stloc first use temp" -; V29 tmp18 [V29,T21] ( 2, 16 ) ref -> r13 class-hnd "Inlining Arg" +; V29 tmp18 [V29,T21] ( 2, 16 ) ref -> r14 class-hnd "Inlining Arg" ; V30 tmp19 [V30,T41] ( 2, 8 ) int -> rsi "Inline stloc first use temp" ; V31 tmp20 [V31,T42] ( 2, 8 ) int -> rdi "Inline stloc first use temp" ;* V32 tmp21 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "NewObj constructor temp" ;* V33 tmp22 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" ;* V34 tmp23 [V34 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" -; V35 tmp24 [V35,T48] ( 2, 4 ) ref -> r15 class-hnd exact single-def "Inlining Arg" +; V35 tmp24 [V35,T48] ( 2, 4 ) ref -> r14 class-hnd exact single-def "Inlining Arg" ; V36 tmp25 [V36,T58] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" ; V37 tmp26 [V37,T44] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" ; V38 tmp27 [V38,T49] ( 2, 4 ) int -> rdx "Inlining Arg" -; V39 tmp28 [V39,T45] ( 3, 6 ) ref -> rdi single-def "argument with side effect" +; V39 tmp28 [V39,T45] ( 3, 6 ) ref -> rax single-def "argument with side effect" ; V40 tmp29 [V40,T18] ( 3, 18 ) ref -> rax "argument with side effect" ; V41 tmp30 [V41,T28] ( 2, 16 ) long -> rsi "argument with side effect" ; V42 tmp31 [V42,T22] ( 2, 16 ) ref -> rsi "argument with side effect" ; V43 tmp32 [V43,T23] ( 2, 16 ) ref -> [rbp-0x78] spill-single-def "argument with side effect" ; V44 tmp33 [V44,T01] ( 3, 96 ) ref -> rax "arr expr" ; V45 tmp34 [V45,T29] ( 2, 16 ) long -> rsi "argument with side effect" ; V46 tmp35 [V46,T24] ( 2, 16 ) ref -> rsi "argument with side effect" ; V47 tmp36 [V47,T25] ( 2, 16 ) ref -> [rbp-0x80] spill-single-def "argument with side effect" ; V48 tmp37 [V48,T02] ( 3, 96 ) ref -> rax "arr expr" ;* V49 tmp38 [V49 ] ( 0, 0 ) ref -> zero-ref single-def "arr expr" ;* V50 tmp39 [V50 ] ( 0, 0 ) int -> zero-ref "index expr" ;* V51 tmp40 [V51 ] ( 0, 0 ) ref -> zero-ref single-def "arr expr" ;* V52 tmp41 [V52 ] ( 0, 0 ) long -> zero-ref "index expr" ;* V53 tmp42 [V53 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect" ; V54 tmp43 [V54,T46] ( 3, 6 ) ref -> rsi single-def "arr expr" ; V55 tmp44 [V55,T47] ( 3, 6 ) int -> rdx "index expr" ; V56 tmp45 [V56,T59] ( 2, 0 ) ref -> rsi single-def "argument with side effect" ; V57 PSPSym [V57,T57] ( 1, 1 ) long -> [rbp-0x90] do-not-enreg[V] "PSPSym" ;* V58 cse0 [V58,T56] ( 0, 0 ) byref -> zero-ref "CSE #10: conservative" -; V59 cse1 [V59,T08] ( 6, 48 ) long -> r12 "CSE #03: moderate" -; V60 cse2 [V60,T19] ( 4, 16 ) long -> [rbp-0x30] spill-single-def "CSE #12: moderate" +; V59 cse1 [V59,T08] ( 6, 48 ) long -> r13 "CSE #03: moderate" +; V60 cse2 [V60,T19] ( 4, 16 ) long -> [rbp-0x38] spill-single-def "CSE #12: moderate" ; V61 cse3 [V61,T54] ( 2, 2 ) ref -> rdi "CSE #21: conservative" ; V62 cse4 [V62,T55] ( 2, 2 ) int -> rdx "CSE #22: conservative" ; V63 cse5 [V63,T52] ( 3, 3 ) int -> rdi "CSE #24: conservative" -; V64 cse6 [V64,T15] ( 4, 28 ) int -> [rbp-0x34] spill-single-def "CSE #02: moderate" -; V65 cse7 [V65,T16] ( 4, 28 ) int -> [rbp-0x38] spill-single-def "CSE #06: moderate" +; V64 cse6 [V64,T15] ( 4, 28 ) int -> [rbp-0x3C] spill-single-def "CSE #02: moderate" +; V65 cse7 [V65,T16] ( 4, 28 ) int -> [rbp-0x40] spill-single-def "CSE #06: moderate" ; V66 cse8 [V66,T09] ( 3, 48 ) int -> rcx "CSE #04: moderate" ; V67 cse9 [V67,T10] ( 3, 48 ) int -> rcx "CSE #07: moderate" ; V68 cse10 [V68,T31] ( 4, 14 ) int -> rsi "CSE #14: moderate" ; V69 cse11 [V69,T32] ( 4, 14 ) int -> rsi "CSE #15: moderate" ; V70 cse12 [V70,T33] ( 4, 14 ) int -> rsi "CSE #17: moderate" -; V71 rat0 [V71,T03] ( 6, 84 ) long -> [rbp-0x40] "Widened IV V08" -; V72 rat1 [V72,T04] ( 6, 84 ) long -> [rbp-0x48] "Widened IV V09" -; V73 rat2 [V73,T14] ( 5, 30 ) ref -> r13 "replacement local" +; V71 rat0 [V71,T03] ( 6, 84 ) long -> [rbp-0x48] "Widened IV V08" +; V72 rat1 [V72,T04] ( 6, 84 ) long -> [rbp-0x50] "Widened IV V09" +; V73 rat2 [V73,T14] ( 5, 30 ) ref -> r14 "replacement local" ; V74 rat3 [V74,T36] ( 3, 10 ) long -> rdi "CSE for expectedClsNode" ; ; Lcl frame size = 104 G_M4960_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 104 lea rbp, [rsp+0x90] mov qword ptr [rbp-0x90], rsp - mov r15, rdi + mov qword ptr [rbp-0x30], rdi + mov gword ptr [rbp-0x58], rdi mov rbx, rsi - ;; size=35 bbWeight=1 PerfScore 8.25 + ;; size=40 bbWeight=1 PerfScore 10.00 G_M4960_IG02: mov rdi, 0xD1FFAB1E ; System.Collections.ArrayList call CORINFO_HELP_NEWSFAST - mov r14, rax + mov r15, rax mov rdi, 0xD1FFAB1E ; global ptr test byte ptr [rdi], 1 - je G_M4960_IG34 + je G_M4960_IG33 ;; size=37 bbWeight=1 PerfScore 5.75 G_M4960_IG03: mov rdi, 0xD1FFAB1E ; data for System.Array+EmptyArray`1[System.Object]:Value mov rsi, gword ptr [rdi] - lea rdi, bword ptr [r14+0x08] + lea rdi, bword ptr [r15+0x08] call CORINFO_HELP_ASSIGN_REF - mov rdi, gword ptr [r15+0x28] - mov rax, qword ptr [rdi] + mov rdi, gword ptr [rbp-0x58] + mov rax, gword ptr [rdi+0x28] + mov rdi, rax + mov rax, qword ptr [rax] mov rax, qword ptr [rax+0x40] call [rax+0x30]System.Data.InternalDataCollectionBase:GetEnumerator():System.Collections.IEnumerator:this - mov gword ptr [rbp-0x50], rax - ;; size=40 bbWeight=1 PerfScore 13.75 + mov gword ptr [rbp-0x60], rax + ;; size=47 bbWeight=1 PerfScore 15.00 G_M4960_IG04: mov rdi, rax mov r11, 0xD1FFAB1E ; function address call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this test eax, eax - je G_M4960_IG28 + je G_M4960_IG27 ;; size=24 bbWeight=1 PerfScore 4.75 G_M4960_IG05: - mov rdi, gword ptr [rbp-0x50] + mov rdi, gword ptr [rbp-0x60] mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:get_Current():System.Object:this call [r11]System.Collections.IEnumerator:get_Current():System.Object:this - mov r13, rax - test r13, r13 + mov r14, rax + test r14, r14 je SHORT G_M4960_IG08 ;; size=25 bbWeight=4 PerfScore 23.00 G_M4960_IG06: mov rdi, 0xD1FFAB1E ; System.Data.DataRelation - cmp qword ptr [r13], rdi + cmp qword ptr [r14], rdi je SHORT G_M4960_IG08 - ;; size=16 bbWeight=2 PerfScore 8.50 + ;; size=15 bbWeight=2 PerfScore 8.50 G_M4960_IG07: mov rsi, rax mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL call [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL - mov r13, rax + mov r14, rax ;; size=18 bbWeight=1 PerfScore 3.75 G_M4960_IG08: - mov rdi, r13 - mov rax, qword ptr [r13] - mov r12, qword ptr [rax+0x40] - call [r12+0x38]System.Data.DataRelation:get_ParentColumns():System.Data.DataColumn[]:this + mov rdi, r14 + mov rax, qword ptr [r14] + mov r13, qword ptr [rax+0x40] + call [r13+0x38]System.Data.DataRelation:get_ParentColumns():System.Data.DataColumn[]:this mov esi, dword ptr [rax+0x08] inc esi movsxd rsi, esi mov rdi, 0xD1FFAB1E ; int[] call CORINFO_HELP_NEWARR_1_VC - mov gword ptr [rbp-0x58], rax - mov rcx, gword ptr [r15+0x20] - mov gword ptr [rbp-0x78], rcx - mov rdi, r13 - mov rdx, qword ptr [r13] - mov rdx, qword ptr [rdx+0x48] - mov qword ptr [rbp-0x30], rdx - call [rdx]System.Data.DataRelation:get_ParentTable():System.Data.DataTable:this + mov r12, rax + mov rdi, gword ptr [rbp-0x58] + mov rax, gword ptr [rdi+0x20] + mov gword ptr [rbp-0x78], rax + mov rdi, r14 + mov rcx, qword ptr [r14] + mov rcx, qword ptr [rcx+0x48] + mov qword ptr [rbp-0x38], rcx + call [rcx]System.Data.DataRelation:get_ParentTable():System.Data.DataTable:this mov rsi, rax mov rdi, gword ptr [rbp-0x78] mov rax, 0xD1FFAB1E ; code for System.Data.DataTableCollection:IndexOf(System.Data.DataTable):int:this cmp dword ptr [rdi], edi call [rax]System.Data.DataTableCollection:IndexOf(System.Data.DataTable):int:this - mov rcx, gword ptr [rbp-0x58] - mov edx, dword ptr [rcx+0x08] - mov dword ptr [rbp-0x34], edx - test edx, edx - je G_M4960_IG27 - mov dword ptr [rcx+0x10], eax - mov qword ptr [rbp-0x40], 1 - cmp edx, 1 + mov ecx, dword ptr [r12+0x08] + mov dword ptr [rbp-0x3C], ecx + test ecx, ecx + je G_M4960_IG26 + mov dword ptr [r12+0x10], eax + mov qword ptr [rbp-0x48], 1 + cmp ecx, 1 jle SHORT G_M4960_IG10 - ;; size=123 bbWeight=4 PerfScore 157.00 + ;; size=123 bbWeight=4 PerfScore 154.00 G_M4960_IG09: - mov rdi, r13 - call [r12+0x38]System.Data.DataRelation:get_ParentColumns():System.Data.DataColumn[]:this - mov rdi, qword ptr [rbp-0x40] + mov rdi, r14 + call [r13+0x38]System.Data.DataRelation:get_ParentColumns():System.Data.DataColumn[]:this + mov rdi, qword ptr [rbp-0x48] lea ecx, [rdi-0x01] cmp ecx, dword ptr [rax+0x08] - jae G_M4960_IG27 + jae G_M4960_IG26 mov rax, gword ptr [rax+8*rcx+0x10] mov eax, dword ptr [rax+0xAC] - mov rcx, gword ptr [rbp-0x58] - mov dword ptr [rcx+4*rdi+0x10], eax + mov dword ptr [r12+4*rdi+0x10], eax inc edi - mov edx, dword ptr [rbp-0x34] - cmp edx, edi - mov qword ptr [rbp-0x40], rdi + mov ecx, dword ptr [rbp-0x3C] + cmp ecx, edi + mov qword ptr [rbp-0x48], rdi jg SHORT G_M4960_IG09 - ;; size=56 bbWeight=16 PerfScore 292.00 + ;; size=52 bbWeight=16 PerfScore 276.00 G_M4960_IG10: - mov rdi, r13 - call [r12+0x20]System.Data.DataRelation:get_ChildColumns():System.Data.DataColumn[]:this + mov rdi, r14 + call [r13+0x20]System.Data.DataRelation:get_ChildColumns():System.Data.DataColumn[]:this mov esi, dword ptr [rax+0x08] inc esi movsxd rsi, esi mov rdi, 0xD1FFAB1E ; int[] call CORINFO_HELP_NEWARR_1_VC - mov gword ptr [rbp-0x60], rax - mov rcx, gword ptr [r15+0x20] + mov gword ptr [rbp-0x68], rax + mov rdi, gword ptr [rbp-0x58] + mov rcx, gword ptr [rdi+0x20] mov gword ptr [rbp-0x80], rcx - mov rdi, r13 - call [r12+0x28]System.Data.DataRelation:get_ChildTable():System.Data.DataTable:this + mov rdi, r14 + call [r13+0x28]System.Data.DataRelation:get_ChildTable():System.Data.DataTable:this mov rsi, rax mov rdi, gword ptr [rbp-0x80] mov rax, 0xD1FFAB1E ; code for System.Data.DataTableCollection:IndexOf(System.Data.DataTable):int:this cmp dword ptr [rdi], edi call [rax]System.Data.DataTableCollection:IndexOf(System.Data.DataTable):int:this - mov rcx, gword ptr [rbp-0x60] + mov rcx, gword ptr [rbp-0x68] mov edx, dword ptr [rcx+0x08] - mov dword ptr [rbp-0x38], edx + mov dword ptr [rbp-0x40], edx test edx, edx - je G_M4960_IG27 + je G_M4960_IG26 mov dword ptr [rcx+0x10], eax - mov qword ptr [rbp-0x48], 1 + mov qword ptr [rbp-0x50], 1 cmp edx, 1 jle SHORT G_M4960_IG12 - ;; size=106 bbWeight=4 PerfScore 121.00 + ;; size=108 bbWeight=4 PerfScore 125.00 G_M4960_IG11: - mov rdi, r13 - call [r12+0x20]System.Data.DataRelation:get_ChildColumns():System.Data.DataColumn[]:this - mov rdi, qword ptr [rbp-0x48] + mov rdi, r14 + call [r13+0x20]System.Data.DataRelation:get_ChildColumns():System.Data.DataColumn[]:this + mov rdi, qword ptr [rbp-0x50] lea ecx, [rdi-0x01] cmp ecx, dword ptr [rax+0x08] - jae G_M4960_IG27 + jae G_M4960_IG26 mov rax, gword ptr [rax+8*rcx+0x10] mov eax, dword ptr [rax+0xAC] - mov rcx, gword ptr [rbp-0x60] + mov rcx, gword ptr [rbp-0x68] mov dword ptr [rcx+4*rdi+0x10], eax inc edi - mov edx, dword ptr [rbp-0x38] + mov edx, dword ptr [rbp-0x40] cmp edx, edi - mov qword ptr [rbp-0x48], rdi + mov qword ptr [rbp-0x50], rdi jg SHORT G_M4960_IG11 - ;; size=56 bbWeight=16 PerfScore 292.00 + ;; size=55 bbWeight=16 PerfScore 292.00 G_M4960_IG12: mov rdi, 0xD1FFAB1E ; System.Collections.ArrayList call CORINFO_HELP_NEWSFAST - mov r12, rax + mov r13, rax mov rdi, 0xD1FFAB1E ; data for System.Array+EmptyArray`1[System.Object]:Value mov rsi, gword ptr [rdi] - lea rdi, bword ptr [r12+0x08] + lea rdi, bword ptr [r13+0x08] call CORINFO_HELP_ASSIGN_REF - mov rdi, r13 - mov rax, qword ptr [rbp-0x30] + mov rdi, r14 + mov rax, qword ptr [rbp-0x38] call [rax+0x08]System.Data.DataRelation:get_RelationName():System.String:this mov gword ptr [rbp-0x70], rax - mov esi, dword ptr [r12+0x10] - mov rdi, gword ptr [r12+0x08] + mov esi, dword ptr [r13+0x10] + mov rdi, gword ptr [r13+0x08] cmp esi, dword ptr [rdi+0x08] - jne G_M4960_IG26 - ;; size=74 bbWeight=4 PerfScore 74.00 + jne G_M4960_IG25 + ;; size=71 bbWeight=4 PerfScore 74.00 G_M4960_IG13: - mov esi, dword ptr [r12+0x10] + mov esi, dword ptr [r13+0x10] inc esi - mov rdi, r12 + mov rdi, r13 mov rcx, 0xD1FFAB1E ; code for System.Collections.ArrayList:EnsureCapacity(int):this call [rcx]System.Collections.ArrayList:EnsureCapacity(int):this mov rax, gword ptr [rbp-0x70] - ;; size=26 bbWeight=2 PerfScore 13.50 + ;; size=25 bbWeight=2 PerfScore 13.50 G_M4960_IG14: - movsxd rsi, dword ptr [r12+0x10] - mov rdi, gword ptr [r12+0x08] + movsxd rsi, dword ptr [r13+0x10] + mov rdi, gword ptr [r13+0x08] mov rdx, rax mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST call [rax]CORINFO_HELP_ARRADDR_ST - inc dword ptr [r12+0x14] - mov esi, dword ptr [r12+0x10] + inc dword ptr [r13+0x14] + mov esi, dword ptr [r13+0x10] inc esi - mov dword ptr [r12+0x10], esi - mov rdi, gword ptr [r12+0x08] + mov dword ptr [r13+0x10], esi + mov rdi, gword ptr [r13+0x08] cmp dword ptr [rdi+0x08], esi jne SHORT G_M4960_IG16 - ;; size=52 bbWeight=4 PerfScore 87.00 + ;; size=46 bbWeight=4 PerfScore 87.00 G_M4960_IG15: inc esi - mov rdi, r12 + mov rdi, r13 mov rax, 0xD1FFAB1E ; code for System.Collections.ArrayList:EnsureCapacity(int):this call [rax]System.Collections.ArrayList:EnsureCapacity(int):this ;; size=17 bbWeight=2 PerfScore 7.50 G_M4960_IG16: - movsxd rsi, dword ptr [r12+0x10] - mov rdi, gword ptr [r12+0x08] - mov rdx, gword ptr [rbp-0x58] + movsxd rsi, dword ptr [r13+0x10] + mov rdi, gword ptr [r13+0x08] + mov rdx, r12 mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST call [rax]CORINFO_HELP_ARRADDR_ST - inc dword ptr [r12+0x14] - mov esi, dword ptr [r12+0x10] + inc dword ptr [r13+0x14] + mov esi, dword ptr [r13+0x10] inc esi - mov dword ptr [r12+0x10], esi - mov rdi, gword ptr [r12+0x08] + mov dword ptr [r13+0x10], esi + mov rdi, gword ptr [r13+0x08] cmp dword ptr [rdi+0x08], esi jne SHORT G_M4960_IG18 - ;; size=53 bbWeight=4 PerfScore 90.00 + ;; size=46 bbWeight=4 PerfScore 87.00 G_M4960_IG17: inc esi - mov rdi, r12 + mov rdi, r13 mov rax, 0xD1FFAB1E ; code for System.Collections.ArrayList:EnsureCapacity(int):this call [rax]System.Collections.ArrayList:EnsureCapacity(int):this ;; size=17 bbWeight=2 PerfScore 7.50 G_M4960_IG18: - movsxd rsi, dword ptr [r12+0x10] - mov rdi, gword ptr [r12+0x08] - mov rdx, gword ptr [rbp-0x60] + movsxd rsi, dword ptr [r13+0x10] + mov rdi, gword ptr [r13+0x08] + mov rdx, gword ptr [rbp-0x68] mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST call [rax]CORINFO_HELP_ARRADDR_ST - inc dword ptr [r12+0x14] - mov edi, dword ptr [r12+0x10] + inc dword ptr [r13+0x14] + mov edi, dword ptr [r13+0x10] inc edi - mov dword ptr [r12+0x10], edi + mov dword ptr [r13+0x10], edi mov rdi, 0xD1FFAB1E ; System.Boolean call CORINFO_HELP_NEWSFAST - mov gword ptr [rbp-0x68], rax - mov rdi, r13 - mov rcx, qword ptr [rbp-0x30] - call [rcx+0x18]System.Data.DataRelation:get_Nested():ubyte:this - mov rcx, gword ptr [rbp-0x68] - mov byte ptr [rcx+0x08], al - mov esi, dword ptr [r12+0x10] - mov rdi, gword ptr [r12+0x08] + mov r12, rax + mov rdi, r14 + mov rax, qword ptr [rbp-0x38] + call [rax+0x18]System.Data.DataRelation:get_Nested():ubyte:this + mov byte ptr [r12+0x08], al + mov esi, dword ptr [r13+0x10] + mov rdi, gword ptr [r13+0x08] cmp esi, dword ptr [rdi+0x08] - jne G_M4960_IG25 - ;; size=98 bbWeight=4 PerfScore 132.00 + jne SHORT G_M4960_IG20 + ;; size=84 bbWeight=4 PerfScore 125.00 G_M4960_IG19: - mov esi, dword ptr [r12+0x10] + mov esi, dword ptr [r13+0x10] inc esi - mov rdi, r12 + mov rdi, r13 mov rax, 0xD1FFAB1E ; code for System.Collections.ArrayList:EnsureCapacity(int):this call [rax]System.Collections.ArrayList:EnsureCapacity(int):this - mov rcx, gword ptr [rbp-0x68] - ;; size=26 bbWeight=2 PerfScore 13.50 + ;; size=21 bbWeight=2 PerfScore 11.50 G_M4960_IG20: - mov rdx, rcx - movsxd rsi, dword ptr [r12+0x10] - mov rdi, gword ptr [r12+0x08] + mov rdx, r12 + movsxd rsi, dword ptr [r13+0x10] + mov rdi, gword ptr [r13+0x08] mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST call [rax]CORINFO_HELP_ARRADDR_ST - inc dword ptr [r12+0x14] - mov esi, dword ptr [r12+0x10] + inc dword ptr [r13+0x14] + mov esi, dword ptr [r13+0x10] inc esi - mov dword ptr [r12+0x10], esi - mov r13, gword ptr [r13+0x10] - mov rdi, gword ptr [r12+0x08] + mov dword ptr [r13+0x10], esi + mov r14, gword ptr [r14+0x10] + mov rdi, gword ptr [r13+0x08] cmp dword ptr [rdi+0x08], esi jne SHORT G_M4960_IG22 - ;; size=56 bbWeight=4 PerfScore 95.00 + ;; size=50 bbWeight=4 PerfScore 95.00 G_M4960_IG21: inc esi - mov rdi, r12 + mov rdi, r13 mov rax, 0xD1FFAB1E ; code for System.Collections.ArrayList:EnsureCapacity(int):this call [rax]System.Collections.ArrayList:EnsureCapacity(int):this ;; size=17 bbWeight=2 PerfScore 7.50 G_M4960_IG22: - movsxd rsi, dword ptr [r12+0x10] - mov rdi, gword ptr [r12+0x08] - mov rdx, r13 + movsxd rsi, dword ptr [r13+0x10] + mov rdi, gword ptr [r13+0x08] + mov rdx, r14 mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST call [rax]CORINFO_HELP_ARRADDR_ST - inc dword ptr [r12+0x14] - mov esi, dword ptr [r12+0x10] + inc dword ptr [r13+0x14] + mov esi, dword ptr [r13+0x10] inc esi - mov dword ptr [r12+0x10], esi - mov esi, dword ptr [r14+0x10] - mov rdi, gword ptr [r14+0x08] + mov dword ptr [r13+0x10], esi + mov esi, dword ptr [r15+0x10] + mov rdi, gword ptr [r15+0x08] cmp esi, dword ptr [rdi+0x08] jne SHORT G_M4960_IG24 - ;; size=55 bbWeight=4 PerfScore 95.00 + ;; size=50 bbWeight=4 PerfScore 95.00 G_M4960_IG23: - mov esi, dword ptr [r14+0x10] + mov esi, dword ptr [r15+0x10] inc esi - mov rdi, r14 + mov rdi, r15 mov rax, 0xD1FFAB1E ; code for System.Collections.ArrayList:EnsureCapacity(int):this call [rax]System.Collections.ArrayList:EnsureCapacity(int):this ;; size=21 bbWeight=2 PerfScore 11.50 G_M4960_IG24: - movsxd rsi, dword ptr [r14+0x10] - mov rdi, gword ptr [r14+0x08] - mov rdx, r12 + movsxd rsi, dword ptr [r15+0x10] + mov rdi, gword ptr [r15+0x08] + mov rdx, r13 mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST call [rax]CORINFO_HELP_ARRADDR_ST - inc dword ptr [r14+0x14] - mov edi, dword ptr [r14+0x10] + inc dword ptr [r15+0x14] + mov edi, dword ptr [r15+0x10] inc edi - mov dword ptr [r14+0x10], edi - mov rdi, gword ptr [rbp-0x50] + mov dword ptr [r15+0x10], edi + mov rdi, gword ptr [rbp-0x60] mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this test eax, eax jne G_M4960_IG05 - jmp SHORT G_M4960_IG28 + jmp SHORT G_M4960_IG27 ;; size=64 bbWeight=4 PerfScore 93.00 G_M4960_IG25: - mov rcx, gword ptr [rbp-0x68] - jmp G_M4960_IG20 - ;; size=9 bbWeight=2 PerfScore 6.00 -G_M4960_IG26: mov rax, gword ptr [rbp-0x70] jmp G_M4960_IG14 ;; size=9 bbWeight=2 PerfScore 6.00 -G_M4960_IG27: +G_M4960_IG26: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 -G_M4960_IG28: - mov rsi, gword ptr [rbp-0x50] +G_M4960_IG27: + mov rsi, gword ptr [rbp-0x60] mov rdi, 0xD1FFAB1E ; System.IDisposable mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE call [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE test rax, rax - je SHORT G_M4960_IG30 + je SHORT G_M4960_IG29 ;; size=31 bbWeight=1 PerfScore 5.75 -G_M4960_IG29: +G_M4960_IG28: mov rdi, rax mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this call [r11]System.IDisposable:Dispose():this ;; size=16 bbWeight=0.50 PerfScore 1.75 -G_M4960_IG30: +G_M4960_IG29: cmp byte ptr [rbx], bl - mov rdi, r14 + mov rdi, r15 call System.Object:GetType():System.Type:this - mov r15, rax + mov r14, rax mov rdi, gword ptr [rbx+0x20] mov edx, dword ptr [rbx+0x48] cmp byte ptr [rdi], dil mov rsi, 0xD1FFAB1E ; 'DataSet.Relations' xor ecx, ecx mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this call [rax]System.Collections.Generic.Dictionary`2[System.__Canon,int]:TryInsert(System.__Canon,int,ubyte):ubyte:this test eax, eax - je G_M4960_IG35 + je G_M4960_IG34 ;; size=55 bbWeight=1 PerfScore 16.50 -G_M4960_IG31: +G_M4960_IG30: mov edi, dword ptr [rbx+0x48] mov rax, gword ptr [rbx+0x08] cmp edi, dword ptr [rax+0x08] - jl SHORT G_M4960_IG32 + jl SHORT G_M4960_IG31 mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.SerializationInfo:ExpandArrays():this call [rax]System.Runtime.Serialization.SerializationInfo:ExpandArrays():this ;; size=27 bbWeight=0.50 PerfScore 5.75 -G_M4960_IG32: +G_M4960_IG31: mov rsi, gword ptr [rbx+0x08] mov edi, dword ptr [rbx+0x48] mov edx, edi cmp edx, dword ptr [rsi+0x08] - jae G_M4960_IG36 + jae G_M4960_IG35 mov rax, 0xD1FFAB1E ; 'DataSet.Relations' mov gword ptr [rsi+8*rdx+0x10], rax movsxd rsi, edi mov rdi, gword ptr [rbx+0x10] - mov rdx, r14 + mov rdx, r15 mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST call [rax]CORINFO_HELP_ARRADDR_ST movsxd rsi, dword ptr [rbx+0x48] mov rdi, gword ptr [rbx+0x18] - mov rdx, r15 + mov rdx, r14 mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ARRADDR_ST call [rax]CORINFO_HELP_ARRADDR_ST inc dword ptr [rbx+0x48] ;; size=81 bbWeight=1 PerfScore 27.75 -G_M4960_IG33: +G_M4960_IG32: add rsp, 104 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.25 -G_M4960_IG34: +G_M4960_IG33: mov rdi, 0xD1FFAB1E ; System.Array+EmptyArray`1[System.Object] call CORINFO_HELP_GET_GCSTATIC_BASE jmp G_M4960_IG03 ;; size=20 bbWeight=0 PerfScore 0.00 -G_M4960_IG35: +G_M4960_IG34: mov rdi, 0xD1FFAB1E ; System.Runtime.Serialization.SerializationException call CORINFO_HELP_NEWSFAST mov rbx, rax mov rax, 0xD1FFAB1E ; code for System.SR:get_Serialization_SameNameTwice():System.String call [rax]System.SR:get_Serialization_SameNameTwice():System.String mov rsi, rax mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Runtime.Serialization.SerializationException:.ctor(System.String):this call [rax]System.Runtime.Serialization.SerializationException:.ctor(System.String):this mov rdi, rbx call CORINFO_HELP_THROW int3 ;; size=57 bbWeight=0 PerfScore 0.00 -G_M4960_IG36: +G_M4960_IG35: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 -G_M4960_IG37: +G_M4960_IG36: push rbp push r15 push r14 push r13 push r12 push rbx push rax mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x90] ;; size=25 bbWeight=0 PerfScore 0.00 -G_M4960_IG38: - mov rsi, gword ptr [rbp-0x50] +G_M4960_IG37: + mov rsi, gword ptr [rbp-0x60] mov rdi, 0xD1FFAB1E ; System.IDisposable mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE call [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE test rax, rax - je SHORT G_M4960_IG39 + je SHORT G_M4960_IG38 mov rdi, rax mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this call [r11]System.IDisposable:Dispose():this ;; size=47 bbWeight=0 PerfScore 0.00 -G_M4960_IG39: +G_M4960_IG38: nop ;; size=1 bbWeight=0 PerfScore 0.00 -G_M4960_IG40: +G_M4960_IG39: add rsp, 8 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0 PerfScore 0.00 -; Total bytes of code 1532, prolog size 35, PerfScore 1730.50, instruction count 367, allocated bytes for code 1532 (MethodHash=8d0cec9f) for method System.Data.DataSet:SerializeRelations(System.Runtime.Serialization.SerializationInfo):this (FullOpts) +; Total bytes of code 1484, prolog size 40, PerfScore 1700.50, instruction count 366, allocated bytes for code 1484 (MethodHash=8d0cec9f) for method System.Data.DataSet:SerializeRelations(System.Runtime.Serialization.SerializationInfo):this (FullOpts) ```
-37 (-3.78 % of base) - System.Net.WebClient:UploadBits(System.Net.WebRequest,System.IO.FileStream,ubyte[],int,ubyte[],ubyte[]):ubyte[]:this ```diff ; Assembly listing for method System.Net.WebClient:UploadBits(System.Net.WebRequest,System.IO.FileStream,ubyte[],int,ubyte[],ubyte[]):ubyte[]:this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 8 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T12] ( 3, 3 ) ref -> r12 this class-hnd single-def -; V01 arg1 [V01,T08] ( 8, 7 ) ref -> [rbp-0x38] class-hnd EH-live single-def +; V00 this [V00,T12] ( 3, 3 ) ref -> [rbp-0x40] this class-hnd EH-live single-def +; V01 arg1 [V01,T08] ( 8, 7 ) ref -> [rbp-0x48] class-hnd EH-live single-def ; V02 arg2 [V02,T05] ( 6, 11.50) ref -> r15 class-hnd single-def ; V03 arg3 [V03,T00] ( 7, 18.50) ref -> rbx class-hnd single-def ; V04 arg4 [V04,T06] ( 5, 10 ) int -> r14 single-def -; V05 arg5 [V05,T11] ( 6, 4.50) ref -> [rbp-0x40] class-hnd -; V06 arg6 [V06,T14] ( 4, 2.50) ref -> [rbp+0x10] class-hnd -; V07 loc0 [V07,T02] ( 13, 19.50) ref -> [rbp-0x48] must-init class-hnd EH-live single-def -; V08 loc1 [V08,T20] ( 4, 0.50) ref -> [rbp-0x50] must-init class-hnd EH-live single-def +; V05 arg5 [V05,T11] ( 6, 4.50) ref -> r13 class-hnd +; V06 arg6 [V06,T14] ( 4, 2.50) ref -> r12 class-hnd +; V07 loc0 [V07,T02] ( 13, 19.50) ref -> [rbp-0x50] must-init class-hnd EH-live single-def +; V08 loc1 [V08,T20] ( 4, 0.50) ref -> [rbp-0x58] must-init class-hnd EH-live single-def ; V09 loc2 [V09,T07] ( 3, 12 ) int -> rax ; V10 loc3 [V10,T01] ( 6, 20.50) int -> r15 -; V11 loc4 [V11,T04] ( 5, 16 ) int -> [rbp-0x2C] +; V11 loc4 [V11,T04] ( 5, 16 ) int -> [rbp-0x34] ; V12 loc5 [V12,T16] ( 2, 2 ) ref -> rax class-hnd single-def -; V13 loc6 [V13,T21] ( 5, 0 ) ref -> [rbp-0x58] must-init class-hnd EH-live single-def +; V13 loc6 [V13,T21] ( 5, 0 ) ref -> [rbp-0x60] must-init class-hnd EH-live single-def ;# V14 OutArgs [V14 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V15 tmp1 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" ; V16 tmp2 [V16,T25] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" ; V17 tmp3 [V17,T22] ( 3, 0 ) ref -> rsi class-hnd single-def "dup spill" ;* V18 tmp4 [V18 ] ( 0, 0 ) ref -> zero-ref single-def ; V19 tmp5 [V19,T24] ( 3, 0 ) int -> rax ;* V20 tmp6 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" ; V21 tmp7 [V21,T23] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" -; V22 tmp8 [V22,T09] ( 5, 7 ) ref -> [rbp-0x60] class-hnd exact single-def "Inlining Arg" +; V22 tmp8 [V22,T09] ( 5, 7 ) ref -> [rbp-0x68] class-hnd exact single-def "Inlining Arg" ; V23 tmp9 [V23,T10] ( 5, 7 ) ref -> rsi class-hnd exact single-def "Inlining Arg" ; V24 tmp10 [V24,T15] ( 2, 1 ) ubyte -> rax "Inline return value spill temp" -; V25 tmp11 [V25,T17] ( 2, 2 ) byref -> r8 single-def "impAppendStmt" +; V25 tmp11 [V25,T17] ( 2, 2 ) byref -> rcx single-def "impAppendStmt" ; V26 tmp12 [V26,T13] ( 2, 4 ) ref -> rdx single-def "argument with side effect" ; V27 tmp13 [V27,T26] ( 2, 0 ) ref -> rsi single-def "argument with side effect" ; V28 PSPSym [V28,T19] ( 1, 1 ) long -> [rbp-0x70] do-not-enreg[V] "PSPSym" -; V29 cse0 [V29,T03] ( 6, 17 ) int -> [rbp-0x30] multi-def "CSE #05: aggressive" -; V30 cse1 [V30,T18] ( 3, 1.50) int -> registers "CSE #01: moderate" +; V29 cse0 [V29,T03] ( 6, 17 ) int -> r13 multi-def "CSE #05: aggressive" +; V30 cse1 [V30,T18] ( 3, 1.50) int -> rax "CSE #01: moderate" ; ; Lcl frame size = 72 G_M33478_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 72 lea rbp, [rsp+0x70] vxorps xmm8, xmm8, xmm8 - vmovdqu xmmword ptr [rbp-0x58], xmm8 + vmovdqa xmmword ptr [rbp-0x60], xmm8 xor eax, eax - mov qword ptr [rbp-0x48], rax + mov qword ptr [rbp-0x50], rax mov qword ptr [rbp-0x70], rsp - mov gword ptr [rbp-0x38], rsi - mov r12, rdi + mov qword ptr [rbp-0x30], rdi + mov gword ptr [rbp-0x40], rdi + mov gword ptr [rbp-0x48], rsi mov rax, rsi mov r15, rdx mov rbx, rcx mov r14d, r8d mov r13, r9 - ;; size=61 bbWeight=1 PerfScore 13.83 + mov r12, gword ptr [rbp+0x10] + ;; size=70 bbWeight=1 PerfScore 16.58 G_M33478_IG02: mov rdi, rax - mov rdx, qword ptr [rax] - mov rdx, qword ptr [rdx+0x48] - call [rdx+0x28]System.Net.WebRequest:get_RequestUri():System.Uri:this + mov rcx, qword ptr [rax] + mov rcx, qword ptr [rcx+0x48] + call [rcx+0x28]System.Net.WebRequest:get_RequestUri():System.Uri:this mov rdi, rax mov rax, 0xD1FFAB1E ; code for System.Uri:get_Scheme():System.String:this cmp dword ptr [rdi], edi call [rax]System.Uri:get_Scheme():System.String:this mov rdi, rax mov rax, 0xD1FFAB1E ; global ptr test byte ptr [rax], 1 - je G_M33478_IG26 + je G_M33478_IG23 ;; size=52 bbWeight=1 PerfScore 18.25 G_M33478_IG03: mov rax, 0xD1FFAB1E ; data for System.Uri:UriSchemeFile mov rsi, gword ptr [rax] cmp rdi, rsi - jne SHORT G_M33478_IG06 + jne SHORT G_M33478_IG05 ;; size=18 bbWeight=1 PerfScore 3.50 G_M33478_IG04: - xor rcx, rcx + xor r12, r12 xor r13, r13 - ;; size=5 bbWeight=0.50 PerfScore 0.25 + jmp SHORT G_M33478_IG06 + ;; size=8 bbWeight=0.50 PerfScore 1.25 G_M33478_IG05: - mov gword ptr [rbp-0x40], rcx - jmp SHORT G_M33478_IG07 - ;; size=6 bbWeight=0.50 PerfScore 1.50 -G_M33478_IG06: test rdi, rdi - je SHORT G_M33478_IG09 + je SHORT G_M33478_IG06 test rsi, rsi - je SHORT G_M33478_IG08 + je SHORT G_M33478_IG06 mov eax, dword ptr [rdi+0x08] cmp eax, dword ptr [rsi+0x08] - mov gword ptr [rbp-0x40], r13 - mov r13, gword ptr [rbp+0x10] - je SHORT G_M33478_IG10 - ;; size=26 bbWeight=0.50 PerfScore 5.25 -G_M33478_IG07: - mov rdi, gword ptr [rbp-0x38] - mov rcx, qword ptr [rdi] - mov rcx, qword ptr [rcx+0x58] - call [rcx+0x10]System.Net.WebRequest:GetRequestStream():System.IO.Stream:this - mov gword ptr [rbp-0x48], rax - jmp SHORT G_M33478_IG11 + je SHORT G_M33478_IG07 + ;; size=18 bbWeight=0.50 PerfScore 4.25 +G_M33478_IG06: + mov rdi, gword ptr [rbp-0x48] + mov rax, qword ptr [rdi] + mov rax, qword ptr [rax+0x58] + call [rax+0x10]System.Net.WebRequest:GetRequestStream():System.IO.Stream:this + mov gword ptr [rbp-0x50], rax + jmp SHORT G_M33478_IG08 ;; size=20 bbWeight=1 PerfScore 11.00 -G_M33478_IG08: - mov gword ptr [rbp-0x40], r13 - mov r13, gword ptr [rbp+0x10] - jmp SHORT G_M33478_IG07 - ;; size=10 bbWeight=0.25 PerfScore 1.00 -G_M33478_IG09: - mov gword ptr [rbp-0x40], r13 - mov r13, gword ptr [rbp+0x10] - jmp SHORT G_M33478_IG07 - ;; size=10 bbWeight=0.25 PerfScore 1.00 -G_M33478_IG10: - mov ecx, eax +G_M33478_IG07: mov rdx, rdi add rdx, 12 - mov r8, rdx - add ecx, ecx - mov edx, ecx + mov rcx, rdx + add eax, eax + mov edx, eax add rsi, 12 - mov rdi, r8 - mov rcx, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte - call [rcx]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte + mov rdi, rcx + 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_M33478_IG07 + je SHORT G_M33478_IG06 jmp SHORT G_M33478_IG04 - ;; size=41 bbWeight=0.50 PerfScore 4.25 -G_M33478_IG11: - mov rax, gword ptr [rbp-0x40] - test rax, rax - je SHORT G_M33478_IG13 - ;; size=9 bbWeight=1 PerfScore 2.25 -G_M33478_IG12: - mov ecx, dword ptr [rax+0x08] - mov rdi, gword ptr [rbp-0x48] - mov rsi, rax + ;; size=39 bbWeight=0.50 PerfScore 4.12 +G_M33478_IG08: + test r13, r13 + je SHORT G_M33478_IG10 + ;; size=5 bbWeight=1 PerfScore 1.25 +G_M33478_IG09: + mov ecx, dword ptr [r13+0x08] + mov rdi, gword ptr [rbp-0x50] + mov rsi, r13 xor edx, edx mov rax, qword ptr [rdi] mov rax, qword ptr [rax+0x60] call [rax+0x30]System.IO.Stream:Write(ubyte[],int,int):this - ;; size=22 bbWeight=0.50 PerfScore 5.25 -G_M33478_IG13: + ;; size=23 bbWeight=0.50 PerfScore 5.25 +G_M33478_IG10: test r15, r15 - je SHORT G_M33478_IG15 + je SHORT G_M33478_IG12 ;; size=5 bbWeight=1 PerfScore 1.25 -G_M33478_IG14: - mov gword ptr [rbp-0x50], r15 - jmp SHORT G_M33478_IG21 +G_M33478_IG11: + mov gword ptr [rbp-0x58], r15 + jmp SHORT G_M33478_IG18 ;; size=6 bbWeight=0.50 PerfScore 1.50 -G_M33478_IG15: +G_M33478_IG12: xor r15d, r15d - mov r8d, dword ptr [rbx+0x08] - test r8d, r8d - jle SHORT G_M33478_IG19 + mov r13d, dword ptr [rbx+0x08] + test r13d, r13d + jle SHORT G_M33478_IG16 ;; size=12 bbWeight=0.50 PerfScore 1.75 -G_M33478_IG16: - mov dword ptr [rbp-0x30], r8d - mov r9d, r8d - sub r9d, r15d +G_M33478_IG13: + mov r8d, r13d + sub r8d, r15d test r14d, r14d - je SHORT G_M33478_IG18 - ;; size=15 bbWeight=4 PerfScore 11.00 -G_M33478_IG17: - cmp r9d, r14d - jle SHORT G_M33478_IG18 - mov r9d, r14d + je SHORT G_M33478_IG15 + ;; size=11 bbWeight=4 PerfScore 7.00 +G_M33478_IG14: + cmp r8d, r14d + jle SHORT G_M33478_IG15 + mov r8d, r14d ;; size=8 bbWeight=2 PerfScore 3.00 -G_M33478_IG18: - mov rdi, gword ptr [rbp-0x48] +G_M33478_IG15: + mov rdi, gword ptr [rbp-0x50] mov rsi, rbx mov edx, r15d - mov dword ptr [rbp-0x2C], r9d - mov ecx, r9d - mov r10, qword ptr [rdi] - mov r10, qword ptr [r10+0x60] - call [r10+0x30]System.IO.Stream:Write(ubyte[],int,int):this - add r15d, dword ptr [rbp-0x2C] - mov eax, dword ptr [rbp-0x30] - cmp eax, r15d - mov r8d, eax - jg SHORT G_M33478_IG16 - ;; size=43 bbWeight=4 PerfScore 57.00 -G_M33478_IG19: - test r13, r13 - je SHORT G_M33478_IG23 + mov dword ptr [rbp-0x34], r8d + mov ecx, r8d + mov r9, qword ptr [rdi] + mov r9, qword ptr [r9+0x60] + call [r9+0x30]System.IO.Stream:Write(ubyte[],int,int):this + add r15d, dword ptr [rbp-0x34] + cmp r13d, r15d + jg SHORT G_M33478_IG13 + ;; size=37 bbWeight=4 PerfScore 52.00 +G_M33478_IG16: + test r12, r12 + je SHORT G_M33478_IG20 ;; size=5 bbWeight=1 PerfScore 1.25 -G_M33478_IG20: - mov ecx, dword ptr [r13+0x08] - mov rdi, gword ptr [rbp-0x48] - mov rsi, r13 +G_M33478_IG17: + mov ecx, dword ptr [r12+0x08] + mov rdi, gword ptr [rbp-0x50] + mov rsi, r12 xor edx, edx mov rax, qword ptr [rdi] mov rax, qword ptr [rax+0x60] call [rax+0x30]System.IO.Stream:Write(ubyte[],int,int):this - jmp SHORT G_M33478_IG23 - ;; size=25 bbWeight=0.50 PerfScore 6.25 -G_M33478_IG21: - mov ecx, dword ptr [rbx+0x08] - mov r14d, ecx - mov ecx, r14d + jmp SHORT G_M33478_IG20 + ;; size=26 bbWeight=0.50 PerfScore 6.25 +G_M33478_IG18: + mov r13d, dword ptr [rbx+0x08] + mov ecx, r13d mov rdi, r15 mov rsi, rbx xor edx, edx mov r8, qword ptr [r15] mov r8, qword ptr [r8+0x60] call [r8+0x18]System.IO.Stream:Read(ubyte[],int,int):int:this test eax, eax - jle SHORT G_M33478_IG22 - mov rdi, gword ptr [rbp-0x48] + jle SHORT G_M33478_IG19 + mov rdi, gword ptr [rbp-0x50] mov rsi, rbx mov ecx, eax xor edx, edx mov rax, qword ptr [rdi] mov rax, qword ptr [rax+0x60] call [rax+0x30]System.IO.Stream:Write(ubyte[],int,int):this - jmp SHORT G_M33478_IG21 - ;; size=55 bbWeight=4 PerfScore 89.00 -G_M33478_IG22: - mov rdi, gword ptr [rbp-0x50] + jmp SHORT G_M33478_IG18 + ;; size=53 bbWeight=4 PerfScore 88.00 +G_M33478_IG19: + mov rdi, gword ptr [rbp-0x58] mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this call [r11]System.IDisposable:Dispose():this - jmp SHORT G_M33478_IG19 + jmp SHORT G_M33478_IG16 ;; size=19 bbWeight=0.50 PerfScore 3.12 -G_M33478_IG23: - mov rdi, gword ptr [rbp-0x48] +G_M33478_IG20: + mov rdi, gword ptr [rbp-0x50] test rdi, rdi - je SHORT G_M33478_IG25 + je SHORT G_M33478_IG22 ;; size=9 bbWeight=1 PerfScore 2.25 -G_M33478_IG24: +G_M33478_IG21: mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this call [r11]System.IDisposable:Dispose():this ;; size=13 bbWeight=0.50 PerfScore 1.62 -G_M33478_IG25: +G_M33478_IG22: mov rdi, 0xD1FFAB1E ; System.IO.ChunkedMemoryStream call CORINFO_HELP_NEWSFAST mov rdx, rax - mov rsi, gword ptr [rbp-0x38] - mov rdi, r12 + mov rsi, gword ptr [rbp-0x48] + mov rdi, gword ptr [rbp-0x40] mov rax, 0xD1FFAB1E ; code for System.Net.WebClient:DownloadBits(System.Net.WebRequest,System.IO.Stream):ubyte[]:this call [rax]System.Net.WebClient:DownloadBits(System.Net.WebRequest,System.IO.Stream):ubyte[]:this - jmp SHORT G_M33478_IG27 - ;; size=39 bbWeight=1 PerfScore 8.00 -G_M33478_IG26: - mov gword ptr [rbp-0x60], rdi + jmp SHORT G_M33478_IG24 + ;; size=40 bbWeight=1 PerfScore 8.75 +G_M33478_IG23: + mov gword ptr [rbp-0x68], rdi mov rdi, 0xD1FFAB1E ; System.Uri call CORINFO_HELP_GET_GCSTATIC_BASE - mov rdi, gword ptr [rbp-0x60] + mov rdi, gword ptr [rbp-0x68] jmp G_M33478_IG03 ;; size=28 bbWeight=0 PerfScore 0.00 -G_M33478_IG27: +G_M33478_IG24: add rsp, 72 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.25 -G_M33478_IG28: +G_M33478_IG25: push rbp push r15 push r14 push r13 push r12 push rbx push rax mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x70] ;; size=22 bbWeight=0 PerfScore 0.00 -G_M33478_IG29: - cmp gword ptr [rbp-0x50], 0 - je SHORT G_M33478_IG30 - mov rdi, gword ptr [rbp-0x50] +G_M33478_IG26: + cmp gword ptr [rbp-0x58], 0 + je SHORT G_M33478_IG27 + mov rdi, gword ptr [rbp-0x58] mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this call [r11]System.IDisposable:Dispose():this ;; size=24 bbWeight=0 PerfScore 0.00 -G_M33478_IG30: +G_M33478_IG27: nop ;; size=1 bbWeight=0 PerfScore 0.00 -G_M33478_IG31: +G_M33478_IG28: add rsp, 8 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0 PerfScore 0.00 -G_M33478_IG32: +G_M33478_IG29: push rbp push r15 push r14 push r13 push r12 push rbx push rax mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x70] ;; size=22 bbWeight=0 PerfScore 0.00 -G_M33478_IG33: - cmp gword ptr [rbp-0x48], 0 - je SHORT G_M33478_IG34 - mov rdi, gword ptr [rbp-0x48] +G_M33478_IG30: + cmp gword ptr [rbp-0x50], 0 + je SHORT G_M33478_IG31 + mov rdi, gword ptr [rbp-0x50] mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this call [r11]System.IDisposable:Dispose():this ;; size=24 bbWeight=0 PerfScore 0.00 -G_M33478_IG34: +G_M33478_IG31: nop ;; size=1 bbWeight=0 PerfScore 0.00 -G_M33478_IG35: +G_M33478_IG32: add rsp, 8 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0 PerfScore 0.00 -G_M33478_IG36: +G_M33478_IG33: push rbp push r15 push r14 push r13 push r12 push rbx push rax mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x70] ;; size=22 bbWeight=0 PerfScore 0.00 -G_M33478_IG37: +G_M33478_IG34: mov rdi, 0xD1FFAB1E ; System.Exception mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS call [rax]CORINFO_HELP_ISINSTANCEOFCLASS mov rsi, rax test rsi, rsi - jne SHORT G_M33478_IG38 + jne SHORT G_M33478_IG35 xor eax, eax - jmp SHORT G_M33478_IG39 + jmp SHORT G_M33478_IG36 ;; size=34 bbWeight=0 PerfScore 0.00 -G_M33478_IG38: - mov gword ptr [rbp-0x58], rsi - mov rsi, gword ptr [rbp-0x58] +G_M33478_IG35: + mov gword ptr [rbp-0x60], rsi + mov rsi, gword ptr [rbp-0x60] mov rdi, 0xD1FFAB1E ; System.OutOfMemoryException mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS call [rax]CORINFO_HELP_ISINSTANCEOFCLASS test rax, rax sete al movzx rax, al ;; size=39 bbWeight=0 PerfScore 0.00 -G_M33478_IG39: +G_M33478_IG36: add rsp, 8 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0 PerfScore 0.00 -G_M33478_IG40: +G_M33478_IG37: push rbp push r15 push r14 push r13 push r12 push rbx push rax mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x70] ;; size=22 bbWeight=0 PerfScore 0.00 -G_M33478_IG41: - mov rdi, gword ptr [rbp-0x38] +G_M33478_IG38: + mov rdi, gword ptr [rbp-0x48] mov rax, 0xD1FFAB1E ; code for System.Net.WebClient:AbortRequest(System.Net.WebRequest) call [rax]System.Net.WebClient:AbortRequest(System.Net.WebRequest) - mov rsi, gword ptr [rbp-0x58] + mov rsi, gword ptr [rbp-0x60] mov rdi, 0xD1FFAB1E ; System.Net.WebException mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS call [rax]CORINFO_HELP_ISINSTANCEOFCLASS test rax, rax - jne SHORT G_M33478_IG42 - mov rsi, gword ptr [rbp-0x58] + jne SHORT G_M33478_IG39 + mov rsi, gword ptr [rbp-0x60] mov rdi, 0xD1FFAB1E ; System.Security.SecurityException mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS call [rax]CORINFO_HELP_ISINSTANCEOFCLASS test rax, rax - je SHORT G_M33478_IG43 + je SHORT G_M33478_IG40 ;; size=78 bbWeight=0 PerfScore 0.00 -G_M33478_IG42: +G_M33478_IG39: call CORINFO_HELP_RETHROW int3 ;; size=6 bbWeight=0 PerfScore 0.00 -G_M33478_IG43: +G_M33478_IG40: mov rdi, 0xD1FFAB1E ; System.Net.WebException call CORINFO_HELP_NEWSFAST mov rbx, rax mov rax, 0xD1FFAB1E ; code for System.SR:get_net_webclient():System.String call [rax]System.SR:get_net_webclient():System.String mov rsi, rax mov rdi, rbx - mov rdx, gword ptr [rbp-0x58] + mov rdx, gword ptr [rbp-0x60] mov rax, 0xD1FFAB1E ; code for System.Net.WebException:.ctor(System.String,System.Exception):this call [rax]System.Net.WebException:.ctor(System.String,System.Exception):this mov rdi, rbx call CORINFO_HELP_THROW int3 ;; size=61 bbWeight=0 PerfScore 0.00 -; Total bytes of code 978, prolog size 61, PerfScore 258.58, instruction count 294, allocated bytes for code 978 (MethodHash=14827d39) for method System.Net.WebClient:UploadBits(System.Net.WebRequest,System.IO.FileStream,ubyte[],int,ubyte[],ubyte[]):ubyte[]:this (FullOpts) +; Total bytes of code 941, prolog size 70, PerfScore 247.46, instruction count 281, allocated bytes for code 941 (MethodHash=14827d39) for method System.Net.WebClient:UploadBits(System.Net.WebRequest,System.IO.FileStream,ubyte[],int,ubyte[],ubyte[]):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/c35e5bc125dac4b410662da81d33240c

MihuBot commented 2 weeks ago

@EgorBo