MihuBot / runtime-utils

0 stars 0 forks source link

[X64] MihaZupan/runtime/http-noEventSource #344

Open MihuBot opened 6 months ago

MihuBot commented 6 months ago

Build completed in 27 minutes. https://github.com/MihaZupan/runtime/tree/http-noEventSource

Diffs

Diffs ``` Found 273 files with textual diffs. Summary of Code Size diffs: (Lower is better) Total bytes of base: 38730499 Total bytes of diff: 38617210 Total bytes of delta: -113289 (-0.29 % of base) Total relative delta: -11.26 diff is an improvement. relative diff is an improvement. Total byte diff includes -30376 bytes from reconciling methods Base had 158 unique methods, 34307 unique bytes Diff had 19 unique methods, 3931 unique bytes Top file regressions (bytes): 1656 : System.Net.Http.Json.dasm (0.53 % of base) 1090 : System.IO.Pipes.dasm (2.81 % of base) 455 : System.Net.HttpListener.dasm (0.43 % of base) 443 : System.Net.Requests.dasm (0.30 % of base) 154 : System.Net.Mail.dasm (0.08 % of base) 125 : Microsoft.Extensions.Hosting.Systemd.dasm (2.57 % of base) 30 : System.Net.NetworkInformation.dasm (0.06 % of base) 13 : System.Net.Ping.dasm (0.03 % of base) Top file improvements (bytes): -75042 : System.Net.Http.dasm (-9.37 % of base) -21284 : System.Net.Security.dasm (-9.33 % of base) -20408 : System.Net.Sockets.dasm (-7.95 % of base) -348 : System.Net.WebSockets.Client.dasm (-1.51 % of base) -161 : Microsoft.Extensions.Http.dasm (-0.25 % of base) -12 : System.Net.Http.WinHttpHandler.dasm (-0.26 % of base) 14 total files with Code Size differences (6 improved, 8 regressed), 242 unchanged. Top method regressions (bytes): 913 (Infinity of base) : System.Net.Security.dasm - System.Net.Security.SslStream:g__FindCertWithPrivateKey|205_0(ubyte,byref):System.Security.Cryptography.X509Certificates.X509Certificate2 (FullOpts) (0 base, 1 diff methods) 701 (53.35 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteHeaderCollection(System.Net.Http.HttpRequestMessage,System.Net.Http.Headers.HttpHeaders,byref):int:this (FullOpts) 594 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.Http3RequestStream:g__ParseStatusCode|52_0(System.Nullable`1[int],System.String):int (FullOpts) (0 base, 1 diff methods) 417 (179.74 % of base) : System.IO.Pipes.dasm - System.IO.Pipes.PipeStream:WriteCore(System.ReadOnlySpan`1[ubyte]):this (FullOpts) 359 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.RedirectHandler:GetUriForRedirect(System.Uri,System.Net.Http.HttpResponseMessage):System.Uri (FullOpts) (0 base, 1 diff methods) 319 (28.08 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.UdpClient:Connect(System.String,int):this (FullOpts) 305 (924.24 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:BeginSendFile(System.String,System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts) 291 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteLiteralHeader(System.String,System.ReadOnlySpan`1[System.String],System.Text.Encoding,byref) (FullOpts) (0 base, 1 diff methods) 273 (109.20 % of base) : System.IO.Pipes.dasm - System.IO.Pipes.PipeStream:ConfigureSocket(System.Net.Sockets.Socket,Microsoft.Win32.SafeHandles.SafePipeHandle,int,int,int,int) (FullOpts) 272 (8.45 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketAsyncEventArgs+<g__Core|112_0>d:MoveNext():this (FullOpts) 254 (76.05 % of base) : System.Net.Http.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts) 249 (996.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:Release():this (FullOpts) 242 (Infinity of base) : System.Net.Security.dasm - System.Net.Security.SslStream:FindCertificateWithPrivateKey(ubyte,System.Security.Cryptography.X509Certificates.X509Certificate):System.Security.Cryptography.X509Certificates.X509Certificate2 (FullOpts) (0 base, 1 diff methods) 240 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteIndexedHeader(int,System.String,byref) (FullOpts) (0 base, 1 diff methods) 227 (8.86 % of base) : System.Net.Requests.dasm - System.Net.HttpWebRequest+<>c__DisplayClass224_0+<b__1>d:MoveNext():this (FullOpts) 224 (41.25 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:DisconnectAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts) 218 (34.71 % of base) : System.Net.HttpListener.dasm - System.Net.HttpConnection:Close(ubyte):this (FullOpts) 212 (16.71 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+d__75:MoveNext():this (FullOpts) 205 (44.28 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:WriteWithoutBufferingAsync(System.ReadOnlyMemory`1[ubyte],ubyte):System.Threading.Tasks.ValueTask:this (FullOpts) 187 (60.71 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketAsyncEventArgs:DoOperationDisconnect(System.Net.Sockets.Socket,System.Net.Sockets.SafeSocketHandle,System.Threading.CancellationToken):int:this (FullOpts) 184 (35.18 % of base) : System.IO.Pipes.dasm - System.IO.Pipes.NamedPipeServerStream+SharedServer:.ctor(System.String,int,ubyte):this (FullOpts) 184 (90.64 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpClient:InitializeClientSocket():this (FullOpts) 179 (34.29 % of base) : System.Net.HttpListener.dasm - System.Net.HttpEndPointListener:.ctor(System.Net.HttpListener,System.Net.IPAddress,int,ubyte):this (FullOpts) 175 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteLiteralHeaderValues(System.ReadOnlySpan`1[System.String],System.String,System.Text.Encoding,byref) (FullOpts) (0 base, 1 diff methods) 175 (239.73 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketPal:Disconnect(System.Net.Sockets.Socket,System.Net.Sockets.SafeSocketHandle,ubyte):int (FullOpts) 168 (136.59 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:ReadAsync(System.Memory`1[ubyte]):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) 162 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteIndexedHeader(int,byref) (FullOpts) (0 base, 1 diff methods) 162 (37.16 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketAsyncEventArgs:FinishOperationAccept(System.Net.SocketAddress):int:this (FullOpts) 158 (177.53 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendFile(System.String,ubyte[],ubyte[],int):this (FullOpts) 154 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteBytes(System.ReadOnlySpan`1[ubyte],byref) (FullOpts) (0 base, 1 diff methods) 153 (437.14 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendFile(System.String):this (FullOpts) 151 (69.27 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:FlushAsync(ubyte):System.Threading.Tasks.ValueTask:this (FullOpts) 148 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteLiteralHeaderValue(System.String,System.Text.Encoding,byref) (FullOpts) (0 base, 1 diff methods) 144 (66.36 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:get_MulticastLoopback():ubyte:this (FullOpts) 142 (67.94 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:get_Ttl():short:this (FullOpts) 134 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+RttEstimator:RefreshRtt():this (FullOpts) (0 base, 1 diff methods) 125 (34.25 % of base) : Microsoft.Extensions.Hosting.Systemd.dasm - Microsoft.Extensions.Hosting.Systemd.SystemdNotifier:Notify(Microsoft.Extensions.Hosting.Systemd.ServiceState):this (FullOpts) 122 (29.47 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionPool:AddNewHttp11Connection(System.Net.Http.HttpConnection,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]):this (FullOpts) 111 (111.00 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpListener:Pending():ubyte:this (FullOpts) 110 (16.57 % of base) : System.IO.Pipes.dasm - System.IO.Pipes.NamedPipeClientStream:TryConnect(int):ubyte:this (FullOpts) 110 (4.79 % of base) : System.Net.Http.dasm - System.Net.Http.MultipartContent+d__24:MoveNext():this (FullOpts) 105 (97.22 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+ConnectionCloseReadStream:Read(System.Span`1[ubyte]):int:this (FullOpts) 102 (49.28 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.UdpClient:.ctor(System.Net.IPEndPoint):this (FullOpts) 101 (20.65 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.UdpClient:.ctor(int,int):this (FullOpts) 100 (24.88 % of base) : System.Net.Requests.dasm - System.Net.FtpWebRequest:CreateConnection():System.Net.FtpControlStream:this (FullOpts) 100 (129.87 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.UdpClient:CreateClientSocket():this (FullOpts) 99 (12.84 % of base) : System.Net.Requests.dasm - System.Net.FtpWebRequest+d__86:MoveNext():this (FullOpts) 96 (533.33 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:Listen():this (FullOpts) 95 (32.87 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.UdpClient:.ctor(int):this (FullOpts) (2 methods) 94 (522.22 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:Dispose():this (FullOpts) 93 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+RttEstimator:OnPingAckReceived(long):this (FullOpts) (0 base, 1 diff methods) 92 (Infinity of base) : System.Net.Sockets.dasm - System.Net.Sockets.SafeSocketHandle:CloseHandle(long):int (FullOpts) (0 base, 1 diff methods) 92 (47.92 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpListener:CreateNewSocketIfNeeded():this (FullOpts) 90 (73.17 % of base) : System.Net.Requests.dasm - System.Net.TlsStream:Close():this (FullOpts) 90 (73.17 % of base) : System.Net.Mail.dasm - System.Net.TlsStream:Close():this (FullOpts) 89 (Infinity of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:UpdateStatusAfterSocketErrorAndThrowException(int,ubyte):this (FullOpts) (0 base, 1 diff methods) 87 (34.39 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpListener:.ctor(int):this (FullOpts) 86 (286.67 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+ConnectionCloseReadStream:Finish(System.Net.Http.HttpConnection):this (FullOpts) 84 (18.46 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+ChunkedEncodingReadStream:Read(System.Span`1[ubyte]):int:this (FullOpts) 81 (28.12 % of base) : System.Net.Requests.dasm - System.Net.FtpControlStream:CreateFtpListenerSocket():this (FullOpts) 78 (120.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+ChunkedEncodingReadStream+<>c:b__16_0(System.Object):this (FullOpts) 78 (120.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+ContentLengthReadStream+<>c:b__10_0(System.Object):this (FullOpts) 77 (6.85 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionPool:ProcessHttp11RequestQueue(System.Net.Http.HttpConnection):this (FullOpts) 77 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:CheckTaskNotNull(System.Threading.Tasks.Task) (FullOpts) (0 base, 1 diff methods) 76 (217.14 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+RawConnectionStream:Finish(System.Net.Http.HttpConnection):this (FullOpts) 74 (18.97 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+RawConnectionStream:CopyToAsync(System.IO.Stream,int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts) 73 (74.49 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.NetworkStream:Dispose(ubyte):this (FullOpts) 70 (90.91 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:get_ExclusiveAddressUse():ubyte:this (FullOpts) 70 (90.91 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:get_NoDelay():ubyte:this (FullOpts) 69 (4.41 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+RawConnectionStream+d__6:MoveNext():this (FullOpts) 69 (97.18 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:get_ReceiveBufferSize():int:this (FullOpts) 69 (97.18 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:get_ReceiveTimeout():int:this (FullOpts) 69 (97.18 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:get_SendBufferSize():int:this (FullOpts) 69 (97.18 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:get_SendTimeout():int:this (FullOpts) 67 (4.53 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+ConnectionCloseReadStream+d__2:MoveNext():this (FullOpts) 66 (4.83 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+ConnectionCloseReadStream+d__4:MoveNext():this (FullOpts) 66 (55.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+HttpContentReadStream:Dispose(ubyte):this (FullOpts) 66 (61.11 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+RawConnectionStream:Read(System.Span`1[ubyte]):int:this (FullOpts) 66 (4.83 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+RawConnectionStream+d__8:MoveNext():this (FullOpts) 66 (21.93 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:EncryptData(System.ReadOnlyMemory`1[ubyte]):System.Net.Security.ProtocolToken:this (FullOpts) 65 (112.07 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+HttpContentReadStream:<>n__0(ubyte):this (FullOpts) 65 (112.07 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContentStream:Dispose(ubyte):this (FullOpts) 64 (6.97 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:CompleteHandshake(System.Net.Security.SslAuthenticationOptions):this (FullOpts) 64 (73.56 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.NetworkStream:get_ReadTimeout():int:this (FullOpts) 64 (73.56 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.NetworkStream:get_WriteTimeout():int:this (FullOpts) 61 (11.44 % of base) : System.Net.Mail.dasm - System.Net.Mail.SmtpConnection:ShutdownConnection(ubyte):this (FullOpts) 61 (40.94 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:get_DontFragment():ubyte:this (FullOpts) 60 (285.71 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:Finalize():this (FullOpts) 58 (55.77 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:get_DualMode():ubyte:this (FullOpts) 58 (55.77 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:get_EnableBroadcast():ubyte:this (FullOpts) 55 (17.03 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SetReceivingPacketInformation():this (FullOpts) 55 (55.56 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpClient:get_ReceiveBufferSize():int:this (FullOpts) 55 (55.56 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpClient:get_ReceiveTimeout():int:this (FullOpts) 55 (55.56 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpClient:get_SendBufferSize():int:this (FullOpts) 55 (55.56 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpClient:get_SendTimeout():int:this (FullOpts) 54 (3.50 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteHeaders(System.Net.Http.HttpRequestMessage,byref):this (FullOpts) 53 (8.02 % of base) : Microsoft.Extensions.Http.dasm - Microsoft.Extensions.Http.HttpMessageHandlerBuilder:CreateHandlerPipeline(System.Net.Http.HttpMessageHandler,System.Collections.Generic.IEnumerable`1[System.Net.Http.DelegatingHandler]):System.Net.Http.HttpMessageHandler (FullOpts) 53 (10.35 % of base) : System.Net.Requests.dasm - System.Net.FtpControlStream:AcceptCallback(System.IAsyncResult) (FullOpts) 53 (3.37 % of base) : System.Net.Requests.dasm - System.Net.FtpControlStream:QueueOrCreateDataConection(System.Net.CommandStream+PipelineEntry,System.Net.ResponseDescription,byref):int:this (FullOpts) 51 (13.08 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+ConnectionCloseReadStream:CopyToAsync(System.IO.Stream,int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts) Top method improvements (bytes): -2391 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionBase:TraceConnection(System.IO.Stream):this (FullOpts) (1 base, 0 diff methods) -2205 (-52.61 % of base) : System.Net.Http.dasm - System.Net.Http.RedirectHandler+d__4:MoveNext():this (FullOpts) -2197 (-20.92 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+d__57:MoveNext():this (FullOpts) -1757 (-90.47 % of base) : System.Net.Security.dasm - System.Net.Security.NegotiateAuthentication:CheckSpn():ubyte:this (FullOpts) -1740 (-100.00 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) (1 base, 0 diff methods) -1740 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) (1 base, 0 diff methods) -1710 (-66.67 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:Dispose(ubyte):this (FullOpts) -1518 (-62.70 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+<>c:b__97_0(System.ValueTuple`5[System.Net.Http.Http2Connection,System.Net.Http.Http2Connection+Http2Stream,System.ReadOnlyMemory`1[ubyte],ubyte,ubyte],System.Memory`1[ubyte]):ubyte:this (FullOpts) -1487 (-87.11 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionPool:CheckForHttp11ConnectionInjection():this (FullOpts) -1462 (-18.74 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionPool+d__91:MoveNext():this (FullOpts) -1435 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) (1 base, 0 diff methods) -1413 (-84.66 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionPool:CheckForHttp2ConnectionInjection():this (FullOpts) -1398 (-36.44 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:SelectClientCertificate():System.Security.Cryptography.X509Certificates.X509Certificate2:this (FullOpts) -1340 (-59.53 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+Http2Stream:OnStatus(int):this (FullOpts) -1339 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteLiteralHeader(System.String,System.ReadOnlySpan`1[System.String],System.Text.Encoding,byref):this (FullOpts) (1 base, 0 diff methods) -1297 (-23.88 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+d__62:MoveNext():this (FullOpts) -1294 (-84.30 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionPool:g__IsUsableConnection|127_3(System.Net.Http.HttpConnectionBase,long,System.TimeSpan,System.TimeSpan):ubyte (FullOpts) -1254 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+d__87:MoveNext():this (FullOpts) (1 base, 0 diff methods) -1059 (-91.61 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:ExtendWindow(int):ubyte:this (FullOpts) -1054 (-63.92 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:Abort(System.Exception):this (FullOpts) -1044 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteIndexedHeader(int,System.String,byref):this (FullOpts) (1 base, 0 diff methods) -1032 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+RttEstimator:OnPingAckReceived(long,System.Net.Http.Http2Connection):this (FullOpts) (1 base, 0 diff methods) -1021 (-74.85 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+Http2StreamWindowManager:AdjustWindowDynamic(int,System.Net.Http.Http2Connection+Http2Stream):this (FullOpts) -1021 (-100.00 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:g__FindCertWithPrivateKey|205_0(ubyte,byref,byref):System.Security.Cryptography.X509Certificates.X509Certificate2 (FullOpts) (1 base, 0 diff methods) -1018 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.RedirectHandler:GetUriForRedirect(System.Uri,System.Net.Http.HttpResponseMessage):System.Uri:this (FullOpts) (1 base, 0 diff methods) -959 (-47.22 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+HttpContentReadStream+d__16:MoveNext():this (FullOpts) -957 (-18.33 % of base) : System.Net.Http.dasm - System.Net.Http.Http3Connection+d__41:MoveNext():this (FullOpts) -940 (-36.32 % of base) : System.Net.Http.dasm - System.Net.Http.Http3RequestStream:OnHeader(System.Nullable`1[int],System.Net.Http.Headers.HeaderDescriptor,System.String,System.ReadOnlySpan`1[ubyte]):this (FullOpts) -912 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SafeSocketHandle:CloseHandle(long):int:this (FullOpts) (1 base, 0 diff methods) -911 (-53.18 % of base) : System.Net.Security.dasm - System.Net.NegotiateAuthenticationPal+UnixNegotiateAuthenticationPal:InitializeSecurityContext(byref,byref,byref,System.String,uint,System.ReadOnlySpan`1[ubyte],System.Security.Authentication.ExtendedProtection.ChannelBinding,byref,byref,byref):int:this (FullOpts) -893 (-67.91 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:ChangeMaxConcurrentStreams(uint):this (FullOpts) -885 (-76.23 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:Send(ubyte[],int,int,int,byref):int:this (FullOpts) -866 (-14.87 % of base) : System.Net.Http.dasm - System.Net.Http.AuthenticationHelper+d__52:MoveNext():this (FullOpts) -846 (-52.09 % of base) : System.Net.Security.dasm - System.Net.Security.SslSessionsCache:CacheCredential(System.Net.Security.SafeFreeCredentials,ubyte[],int,ubyte,int,ubyte,ubyte,ubyte) (FullOpts) -845 (-47.29 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionPool+<g__DisableHttp2ConnectionAsync|124_0>d:MoveNext():this (FullOpts) -830 (-21.77 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+d__61:MoveNext():this (FullOpts) -796 (-23.43 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+d__112:MoveNext():this (FullOpts) -792 (-70.59 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+Http2Stream:OnReset(System.Exception,System.Nullable`1[int],ubyte):this (FullOpts) -773 (-23.55 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionPool+d__88:MoveNext():this (FullOpts) -765 (-100.00 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:LogCertificateValidation(System.Net.Security.RemoteCertificateValidationCallback,int,ubyte,System.Security.Cryptography.X509Certificates.X509Chain):this (FullOpts) (1 base, 0 diff methods) -764 (-67.97 % of base) : System.Net.Http.dasm - System.Net.Security.CertificateHelper:GetEligibleClientCertificate(System.Security.Cryptography.X509Certificates.X509Certificate2Collection):System.Security.Cryptography.X509Certificates.X509Certificate2 (FullOpts) -759 (-69.63 % of base) : System.Net.Http.dasm - System.Net.Http.CreditManager:AdjustCredit(int):this (FullOpts) -759 (-67.17 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:ReadGoAwayFrame(System.Net.Http.Http2Connection+FrameHeader):System.ValueTuple`2[int,int]:this (FullOpts) -753 (-18.32 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+Http2Stream+d__45:MoveNext():this (FullOpts) -733 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.Http3RequestStream:g__ParseStatusCode|52_0(System.Nullable`1[int],System.String):int:this (FullOpts) (1 base, 0 diff methods) -714 (-70.21 % of base) : System.Net.Security.dasm - System.Net.NegotiateAuthenticationPal+UnixNegotiateAuthenticationPal:GetOutgoingBlob(System.ReadOnlySpan`1[ubyte],byref):ubyte[]:this (FullOpts) -711 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+Http2StreamWindowManager:.ctor(System.Net.Http.Http2Connection,System.Net.Http.Http2Connection+Http2Stream):this (FullOpts) (1 base, 0 diff methods) -704 (-71.62 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:Receive(ubyte[],int,int,int,byref):int:this (FullOpts) -695 (-31.50 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionPool:ReturnHttp2Connection(System.Net.Http.Http2Connection,ubyte,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.Http2Connection]):this (FullOpts) -688 (-93.22 % of base) : System.Net.Http.dasm - System.Net.Http.CreditManager:TryRequestCreditNoLock(int):int:this (FullOpts) -685 (-36.79 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+<g__ReadAheadWithZeroByteReadAsync|40_0>d:MoveNext():this (FullOpts) -670 (-25.68 % of base) : System.Net.Http.dasm - System.Net.Http.Http3RequestStream+d__45:MoveNext():this (FullOpts) -664 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+RttEstimator:RefreshRtt(System.Net.Http.Http2Connection):this (FullOpts) (1 base, 0 diff methods) -630 (-43.87 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:AcquireServerCredentials(byref):ubyte:this (FullOpts) -611 (-78.53 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+Http2Stream:Complete():this (FullOpts) -609 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteIndexedHeader(int,byref):this (FullOpts) (1 base, 0 diff methods) -609 (-52.68 % of base) : System.Net.Security.dasm - System.Net.NegotiateAuthenticationPal+UnixNegotiateAuthenticationPal:.ctor(System.Net.Security.NegotiateAuthenticationClientOptions):this (FullOpts) -603 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteBytes(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts) (1 base, 0 diff methods) -601 (-47.51 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendTo(ubyte[],int,int,int,System.Net.EndPoint):int:this (FullOpts) -599 (-28.40 % of base) : System.Net.Http.dasm - System.Net.Http.Http3Connection+<>c__DisplayClass42_0+<g__ProcessSettingsFrameAsync|1>d:MoveNext():this (FullOpts) -597 (-64.06 % of base) : System.Net.Security.dasm - System.Net.Security.SslSessionsCache:TryCachedCredential(ubyte[],int,ubyte,int,ubyte,ubyte,ubyte):System.Net.Security.SafeFreeCredentials (FullOpts) -587 (-92.88 % of base) : System.Net.Http.dasm - System.Net.Http.CreditManager:.ctor(System.Net.Http.IHttpTrace,System.String,int):this (FullOpts) -585 (-68.10 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:SignalAvailableStreamsWaiter(ubyte):this (FullOpts) -585 (-34.57 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:ReceiveFrom(ubyte[],int,int,int,byref):int:this (FullOpts) -581 (-88.03 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+Http2Stream:SendReset():this (FullOpts) -574 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketAsyncEventArgs:LogBuffer(int):this (FullOpts) (1 base, 0 diff methods) -566 (-72.19 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+<>c:b__85_0(System.ValueTuple`3[System.Net.Http.Http2Connection,int,int],System.Memory`1[ubyte]):ubyte:this (FullOpts) -566 (-17.30 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+d__82:MoveNext():this (FullOpts) -565 (-53.55 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+<>c:b__98_0(System.ValueTuple`4[System.Net.Http.Http2Connection,int,System.ReadOnlyMemory`1[ubyte],ubyte],System.Memory`1[ubyte]):ubyte:this (FullOpts) -563 (-100.00 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:Format(System.FormattableString):System.String (FullOpts) (1 base, 0 diff methods) -563 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:Format(System.FormattableString):System.String (FullOpts) (1 base, 0 diff methods) -563 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:Format(System.FormattableString):System.String (FullOpts) (1 base, 0 diff methods) -562 (-72.05 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+<>c:b__100_0(System.ValueTuple`3[System.Net.Http.Http2Connection,int,int],System.Memory`1[ubyte]):ubyte:this (FullOpts) -555 (-35.71 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:ProcessSettingsFrame(System.Net.Http.Http2Connection+FrameHeader,ubyte):this (FullOpts) -552 (-61.06 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:ProcessWindowUpdateFrame(System.Net.Http.Http2Connection+FrameHeader):this (FullOpts) -550 (-68.41 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:WriteToStreamAsync(System.ReadOnlyMemory`1[ubyte],ubyte):System.Threading.Tasks.ValueTask:this (FullOpts) -546 (-65.00 % of base) : System.Net.Http.dasm - System.Net.Security.CertificateHelper:IsValidClientCertificate(System.Security.Cryptography.X509Certificates.X509Certificate2):ubyte (FullOpts) -545 (-30.52 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+d__83:MoveNext():this (FullOpts) -543 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.Http3RequestStream:GetStaticQPackHeader(int,byref,byref):this (FullOpts) (1 base, 0 diff methods) -542 (-31.79 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+d__60:MoveNext():this (FullOpts) -542 (-11.02 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionPool+d__105:MoveNext():this (FullOpts) -532 (-21.92 % of base) : System.Net.Http.dasm - System.Net.Http.Http3Connection+<>c__DisplayClass30_0+<b__0>d:MoveNext():this (FullOpts) -525 (-90.99 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:Read(System.Span`1[ubyte]):int:this (FullOpts) -522 (-83.65 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SetSocketOption(int,int,ubyte[]):this (FullOpts) -520 (-96.30 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:WriteToStream(System.ReadOnlySpan`1[ubyte]):this (FullOpts) -519 (-59.93 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:CopyFromBufferAsync(System.IO.Stream,ubyte,int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts) -512 (-59.88 % of base) : System.Net.Http.dasm - System.Net.Http.CreditManager:RequestCreditAsync(int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) -511 (-31.14 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+d__82:MoveNext():this (FullOpts) -510 (-59.65 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:Shutdown():this (FullOpts) -507 (-49.95 % of base) : System.Net.Security.dasm - System.Net.NegotiateAuthenticationPal+UnixNegotiateAuthenticationPal:AcceptSecurityContext(Microsoft.Win32.SafeHandles.SafeGssCredHandle,byref,System.ReadOnlySpan`1[ubyte],byref,byref,byref):int:this (FullOpts) -502 (-83.95 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:Encrypt(System.ReadOnlyMemory`1[ubyte]):System.Net.Security.ProtocolToken:this (FullOpts) -496 (-61.01 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:ChangeInitialWindowSize(int):this (FullOpts) -496 (-72.30 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:InternalSetBlocking(ubyte,byref):int:this (FullOpts) -494 (-38.38 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+d__90:MoveNext():this (FullOpts) -493 (-98.60 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+Http2Stream:Initialize(int,int):this (FullOpts) -491 (-60.62 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:ProcessPingFrame(System.Net.Http.Http2Connection+FrameHeader):this (FullOpts) -490 (-66.13 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:ReadBuffered(System.Span`1[ubyte]):int:this (FullOpts) -488 (-88.73 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+Http2Stream+Http2ReadWriteStream:Finalize():this (FullOpts) -481 (-67.75 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+Http2Stream:System.Net.Http.IHttpStreamHeadersHandler.OnStaticIndexedHeader(int):this (FullOpts) -478 (-21.79 % 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) Top method regressions (percentages): 154 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteBytes(System.ReadOnlySpan`1[ubyte],byref) (FullOpts) (0 base, 1 diff methods) 162 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteIndexedHeader(int,byref) (FullOpts) (0 base, 1 diff methods) 240 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteIndexedHeader(int,System.String,byref) (FullOpts) (0 base, 1 diff methods) 291 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteLiteralHeader(System.String,System.ReadOnlySpan`1[System.String],System.Text.Encoding,byref) (FullOpts) (0 base, 1 diff methods) 148 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteLiteralHeaderValue(System.String,System.Text.Encoding,byref) (FullOpts) (0 base, 1 diff methods) 175 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteLiteralHeaderValues(System.ReadOnlySpan`1[System.String],System.String,System.Text.Encoding,byref) (FullOpts) (0 base, 1 diff methods) 41 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+Http2StreamWindowManager:.ctor(System.Net.Http.Http2Connection):this (FullOpts) (0 base, 1 diff methods) 34 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+RttEstimator:OnInitialSettingsAckReceived():this (FullOpts) (0 base, 1 diff methods) 93 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+RttEstimator:OnPingAckReceived(long):this (FullOpts) (0 base, 1 diff methods) 134 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+RttEstimator:RefreshRtt():this (FullOpts) (0 base, 1 diff methods) 594 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.Http3RequestStream:g__ParseStatusCode|52_0(System.Nullable`1[int],System.String):int (FullOpts) (0 base, 1 diff methods) 50 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.Http3RequestStream:GetStaticQPackHeader(int,byref,byref) (FullOpts) (0 base, 1 diff methods) 77 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:CheckTaskNotNull(System.Threading.Tasks.Task) (FullOpts) (0 base, 1 diff methods) 359 (Infinity of base) : System.Net.Http.dasm - System.Net.Http.RedirectHandler:GetUriForRedirect(System.Uri,System.Net.Http.HttpResponseMessage):System.Uri (FullOpts) (0 base, 1 diff methods) 913 (Infinity of base) : System.Net.Security.dasm - System.Net.Security.SslStream:g__FindCertWithPrivateKey|205_0(ubyte,byref):System.Security.Cryptography.X509Certificates.X509Certificate2 (FullOpts) (0 base, 1 diff methods) 242 (Infinity of base) : System.Net.Security.dasm - System.Net.Security.SslStream:FindCertificateWithPrivateKey(ubyte,System.Security.Cryptography.X509Certificates.X509Certificate):System.Security.Cryptography.X509Certificates.X509Certificate2 (FullOpts) (0 base, 1 diff methods) 92 (Infinity of base) : System.Net.Sockets.dasm - System.Net.Sockets.SafeSocketHandle:CloseHandle(long):int (FullOpts) (0 base, 1 diff methods) 89 (Infinity of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:UpdateStatusAfterSocketErrorAndThrowException(int,ubyte):this (FullOpts) (0 base, 1 diff methods) 43 (Infinity of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:UpdateStatusAfterSocketOptionErrorAndThrowException(int):this (FullOpts) (0 base, 1 diff methods) 249 (996.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:Release():this (FullOpts) 305 (924.24 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:BeginSendFile(System.String,System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts) 96 (533.33 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:Listen():this (FullOpts) 94 (522.22 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:Dispose():this (FullOpts) 153 (437.14 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendFile(System.String):this (FullOpts) 86 (286.67 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+ConnectionCloseReadStream:Finish(System.Net.Http.HttpConnection):this (FullOpts) 60 (285.71 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:Finalize():this (FullOpts) 175 (239.73 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketPal:Disconnect(System.Net.Sockets.Socket,System.Net.Sockets.SafeSocketHandle,ubyte):int (FullOpts) 76 (217.14 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+RawConnectionStream:Finish(System.Net.Http.HttpConnection):this (FullOpts) 417 (179.74 % of base) : System.IO.Pipes.dasm - System.IO.Pipes.PipeStream:WriteCore(System.ReadOnlySpan`1[ubyte]):this (FullOpts) 158 (177.53 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SendFile(System.String,ubyte[],ubyte[],int):this (FullOpts) 45 (160.71 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketPal:SetReceivingDualModeIPv4PacketInformation(System.Net.Sockets.Socket) (FullOpts) 168 (136.59 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:ReadAsync(System.Memory`1[ubyte]):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) 100 (129.87 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.UdpClient:CreateClientSocket():this (FullOpts) 27 (128.57 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:SetSocketOption(int,int,ubyte):this (FullOpts) 78 (120.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+ChunkedEncodingReadStream+<>c:b__16_0(System.Object):this (FullOpts) 78 (120.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+ContentLengthReadStream+<>c:b__10_0(System.Object):this (FullOpts) 43 (113.16 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.UdpClient:set_EnableBroadcast(ubyte):this (FullOpts) 65 (112.07 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+HttpContentReadStream:<>n__0(ubyte):this (FullOpts) 65 (112.07 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContentStream:Dispose(ubyte):this (FullOpts) 111 (111.00 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpListener:Pending():ubyte:this (FullOpts) 273 (109.20 % of base) : System.IO.Pipes.dasm - System.IO.Pipes.PipeStream:ConfigureSocket(System.Net.Sockets.Socket,Microsoft.Win32.SafeHandles.SafePipeHandle,int,int,int,int) (FullOpts) 105 (97.22 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+ConnectionCloseReadStream:Read(System.Span`1[ubyte]):int:this (FullOpts) 69 (97.18 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:get_ReceiveBufferSize():int:this (FullOpts) 69 (97.18 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:get_ReceiveTimeout():int:this (FullOpts) 69 (97.18 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:get_SendBufferSize():int:this (FullOpts) 69 (97.18 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:get_SendTimeout():int:this (FullOpts) 70 (90.91 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:get_ExclusiveAddressUse():ubyte:this (FullOpts) 70 (90.91 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:get_NoDelay():ubyte:this (FullOpts) 184 (90.64 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpClient:InitializeClientSocket():this (FullOpts) 41 (89.13 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpClient:set_ReceiveBufferSize(int):this (FullOpts) 41 (89.13 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpClient:set_ReceiveTimeout(int):this (FullOpts) 41 (89.13 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpClient:set_SendBufferSize(int):this (FullOpts) 41 (89.13 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpClient:set_SendTimeout(int):this (FullOpts) 27 (87.10 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:set_EnableBroadcast(ubyte):this (FullOpts) 27 (87.10 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:set_NoDelay(ubyte):this (FullOpts) 32 (86.49 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpListener:Dispose():this (FullOpts) 32 (86.49 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpListener:Stop():this (FullOpts) 30 (85.71 % of base) : System.Net.NetworkInformation.dasm - System.Net.NetworkInformation.NetworkChange:CloseSocket() (FullOpts) 254 (76.05 % of base) : System.Net.Http.dasm - System.Net.Http.Headers.HttpHeaders:ParseRawHeaderValues(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo) (FullOpts) 73 (74.49 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.NetworkStream:Dispose(ubyte):this (FullOpts) 39 (73.58 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpClient:set_NoDelay(ubyte):this (FullOpts) 64 (73.56 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.NetworkStream:get_ReadTimeout():int:this (FullOpts) 64 (73.56 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.NetworkStream:get_WriteTimeout():int:this (FullOpts) 90 (73.17 % of base) : System.Net.Requests.dasm - System.Net.TlsStream:Close():this (FullOpts) 90 (73.17 % of base) : System.Net.Mail.dasm - System.Net.TlsStream:Close():this (FullOpts) 151 (69.27 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:FlushAsync(ubyte):System.Threading.Tasks.ValueTask:this (FullOpts) 142 (67.94 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:get_Ttl():short:this (FullOpts) 144 (66.36 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:get_MulticastLoopback():ubyte:this (FullOpts) 66 (61.11 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+RawConnectionStream:Read(System.Span`1[ubyte]):int:this (FullOpts) 187 (60.71 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketAsyncEventArgs:DoOperationDisconnect(System.Net.Sockets.Socket,System.Net.Sockets.SafeSocketHandle,System.Threading.CancellationToken):int:this (FullOpts) 58 (55.77 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:get_DualMode():ubyte:this (FullOpts) 58 (55.77 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:get_EnableBroadcast():ubyte:this (FullOpts) 55 (55.56 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpClient:get_ReceiveBufferSize():int:this (FullOpts) 55 (55.56 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpClient:get_ReceiveTimeout():int:this (FullOpts) 55 (55.56 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpClient:get_SendBufferSize():int:this (FullOpts) 55 (55.56 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpClient:get_SendTimeout():int:this (FullOpts) 66 (55.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+HttpContentReadStream:Dispose(ubyte):this (FullOpts) 701 (53.35 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteHeaderCollection(System.Net.Http.HttpRequestMessage,System.Net.Http.Headers.HttpHeaders,byref):int:this (FullOpts) 21 (51.22 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpClient:get_Connected():ubyte:this (FullOpts) 102 (49.28 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.UdpClient:.ctor(System.Net.IPEndPoint):this (FullOpts) 92 (47.92 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpListener:CreateNewSocketIfNeeded():this (FullOpts) 205 (44.28 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection:WriteWithoutBufferingAsync(System.ReadOnlyMemory`1[ubyte],ubyte):System.Threading.Tasks.ValueTask:this (FullOpts) 224 (41.25 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:DisconnectAsync(System.Net.Sockets.SocketAsyncEventArgs,System.Threading.CancellationToken):ubyte:this (FullOpts) 25 (40.98 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionPool+<>c:b__106_0(System.Object):this (FullOpts) 25 (40.98 % of base) : System.Net.Requests.dasm - System.Net.HttpWebRequest+<>c:b__224_3(System.Object):this (FullOpts) 61 (40.94 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.Socket:get_DontFragment():ubyte:this (FullOpts) 7 (38.89 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpClient:.ctor():this (FullOpts) 162 (37.16 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketAsyncEventArgs:FinishOperationAccept(System.Net.SocketAddress):int:this (FullOpts) 184 (35.18 % of base) : System.IO.Pipes.dasm - System.IO.Pipes.NamedPipeServerStream+SharedServer:.ctor(System.String,int,ubyte):this (FullOpts) 218 (34.71 % of base) : System.Net.HttpListener.dasm - System.Net.HttpConnection:Close(ubyte):this (FullOpts) 87 (34.39 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.TcpListener:.ctor(int):this (FullOpts) 179 (34.29 % of base) : System.Net.HttpListener.dasm - System.Net.HttpEndPointListener:.ctor(System.Net.HttpListener,System.Net.IPAddress,int,ubyte):this (FullOpts) 125 (34.25 % of base) : Microsoft.Extensions.Hosting.Systemd.dasm - Microsoft.Extensions.Hosting.Systemd.SystemdNotifier:Notify(Microsoft.Extensions.Hosting.Systemd.ServiceState):this (FullOpts) 95 (32.87 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.UdpClient:.ctor(int):this (FullOpts) (2 methods) 47 (31.54 % of base) : System.Net.Http.dasm - System.Net.Http.HttpClient:.ctor(System.Net.Http.HttpMessageHandler,ubyte):this (FullOpts) 29 (30.85 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.UdpClient:CheckForBroadcast(System.Net.IPAddress):this (FullOpts) 122 (29.47 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionPool:AddNewHttp11Connection(System.Net.Http.HttpConnection,System.Net.Http.HttpConnectionPool+HttpConnectionWaiter`1[System.Net.Http.HttpConnection]):this (FullOpts) 81 (28.12 % of base) : System.Net.Requests.dasm - System.Net.FtpControlStream:CreateFtpListenerSocket():this (FullOpts) 319 (28.08 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.UdpClient:Connect(System.String,int):this (FullOpts) 19 (26.76 % of base) : System.Net.Requests.dasm - System.Net.FtpControlStream:AbortConnect():this (FullOpts) Top method improvements (percentages): -603 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteBytes(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts) (1 base, 0 diff methods) -609 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteIndexedHeader(int,byref):this (FullOpts) (1 base, 0 diff methods) -1044 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteIndexedHeader(int,System.String,byref):this (FullOpts) (1 base, 0 diff methods) -1339 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteLiteralHeader(System.String,System.ReadOnlySpan`1[System.String],System.Text.Encoding,byref):this (FullOpts) (1 base, 0 diff methods) -319 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteLiteralHeaderValue(System.String,System.Text.Encoding,byref):this (FullOpts) (1 base, 0 diff methods) -459 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteLiteralHeaderValues(System.ReadOnlySpan`1[System.String],System.String,System.Text.Encoding,byref):this (FullOpts) (1 base, 0 diff methods) -711 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+Http2StreamWindowManager:.ctor(System.Net.Http.Http2Connection,System.Net.Http.Http2Connection+Http2Stream):this (FullOpts) (1 base, 0 diff methods) -34 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+RttEstimator:OnInitialSettingsAckReceived(System.Net.Http.Http2Connection):this (FullOpts) (1 base, 0 diff methods) -1032 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+RttEstimator:OnPingAckReceived(long,System.Net.Http.Http2Connection):this (FullOpts) (1 base, 0 diff methods) -664 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+RttEstimator:RefreshRtt(System.Net.Http.Http2Connection):this (FullOpts) (1 base, 0 diff methods) -733 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.Http3RequestStream:g__ParseStatusCode|52_0(System.Nullable`1[int],System.String):int:this (FullOpts) (1 base, 0 diff methods) -543 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.Http3RequestStream:GetStaticQPackHeader(int,byref,byref):this (FullOpts) (1 base, 0 diff methods) -140 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.Http3RequestStream:Trace(System.String,System.String):this (FullOpts) (1 base, 0 diff methods) -1254 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+d__87:MoveNext():this (FullOpts) (1 base, 0 diff methods) -32 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+d__87:SetStateMachine(System.Runtime.CompilerServices.IAsyncStateMachine):this (FullOpts) (1 base, 0 diff methods) -2391 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnectionBase:TraceConnection(System.IO.Stream):this (FullOpts) (1 base, 0 diff methods) -202 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent:CheckTaskNotNull(System.Threading.Tasks.Task):this (FullOpts) (1 base, 0 diff methods) -1018 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.RedirectHandler:GetUriForRedirect(System.Uri,System.Net.Http.HttpResponseMessage):System.Uri:this (FullOpts) (1 base, 0 diff methods) -143 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.RedirectHandler:Trace(System.String,int,System.String):this (FullOpts) (1 base, 0 diff methods) -143 (-100.00 % of base) : System.Net.Http.dasm - System.Net.Http.RedirectHandler:TraceError(System.String,int,System.String):this (FullOpts) (1 base, 0 diff methods) -305 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:.cctor() (FullOpts) (1 base, 0 diff methods) -305 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:.cctor() (FullOpts) (1 base, 0 diff methods) -271 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:.ctor():this (FullOpts) (1 base, 0 diff methods) -271 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:.ctor():this (FullOpts) (1 base, 0 diff methods) -129 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:Accepted(System.Net.Sockets.Socket,System.Object,System.Object) (FullOpts) (1 base, 0 diff methods) -30 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:Accepted(System.String,System.String,int):this (FullOpts) (1 base, 0 diff methods) -77 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:AdditionalCustomizedToString(System.Object,byref) (FullOpts) (1 base, 0 diff methods) -150 (-100.00 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:Associate(System.Object,System.Object,System.Object,System.String) (FullOpts) (1 base, 0 diff methods) -28 (-100.00 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:Associate(System.Object,System.Object,System.String) (FullOpts) (1 base, 0 diff methods) -50 (-100.00 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:Associate(System.String,System.String,System.String,System.String):this (FullOpts) (1 base, 0 diff methods) -109 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:AttemptingRestartUsingCert(System.Security.Cryptography.X509Certificates.X509Certificate,System.Net.Security.SslStream):this (FullOpts) (1 base, 0 diff methods) -23 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:AttemptingRestartUsingCert(System.String,int):this (FullOpts) (1 base, 0 diff methods) -24 (-100.00 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:AuthenticationError(System.String,System.String):this (FullOpts) (1 base, 0 diff methods) -75 (-100.00 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:AuthenticationError(System.Uri,System.String) (FullOpts) (1 base, 0 diff methods) -24 (-100.00 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:AuthenticationInfo(System.String,System.String):this (FullOpts) (1 base, 0 diff methods) -75 (-100.00 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:AuthenticationInfo(System.Uri,System.String) (FullOpts) (1 base, 0 diff methods) -20 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:CertificateFromCertContext(int):this (FullOpts) (1 base, 0 diff methods) -62 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:CertificateFromCertContext(System.Net.Security.SslStream):this (FullOpts) (1 base, 0 diff methods) -20 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:CertificateFromDelegate(int):this (FullOpts) (1 base, 0 diff methods) -62 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:CertificateFromDelegate(System.Net.Security.SslStream):this (FullOpts) (1 base, 0 diff methods) -20 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:CertIsType2(int):this (FullOpts) (1 base, 0 diff methods) -62 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:CertIsType2(System.Object):this (FullOpts) (1 base, 0 diff methods) -22 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:CertsAfterFiltering(int,int):this (FullOpts) (1 base, 0 diff methods) -67 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:CertsAfterFiltering(int,System.Net.Security.SslStream):this (FullOpts) (1 base, 0 diff methods) -129 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:Connected(System.Net.Sockets.Socket,System.Object,System.Object) (FullOpts) (1 base, 0 diff methods) -30 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:Connected(System.String,System.String,int):this (FullOpts) (1 base, 0 diff methods) -20 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:ConnectedAsyncDns(int):this (FullOpts) (1 base, 0 diff methods) -69 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:ConnectedAsyncDns(System.Net.Sockets.Socket) (FullOpts) (1 base, 0 diff methods) -104 (-100.00 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:ContentNull(System.Object) (FullOpts) (1 base, 0 diff methods) -23 (-100.00 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:ContentNull(System.String,int):this (FullOpts) (1 base, 0 diff methods) -186 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:DumpBuffer(System.Object,System.Memory`1[ubyte],int,int,System.String) (FullOpts) (1 base, 0 diff methods) -236 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:DumpBuffer(System.Object,System.ReadOnlySpan`1[ubyte],System.String) (FullOpts) (1 base, 0 diff methods) -236 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:DumpBuffer(System.Object,System.ReadOnlySpan`1[ubyte],System.String) (FullOpts) (1 base, 0 diff methods) -76 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:DumpBuffer(System.Object,ubyte[],int,int,System.String) (FullOpts) (1 base, 0 diff methods) -57 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:DumpBuffer(System.String,System.String,ubyte[]):this (FullOpts) (1 base, 0 diff methods) -57 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:DumpBuffer(System.String,System.String,ubyte[]):this (FullOpts) (1 base, 0 diff methods) -117 (-100.00 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:Error(System.Object,System.FormattableString,System.String) (FullOpts) (1 base, 0 diff methods) -117 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:Error(System.Object,System.FormattableString,System.String) (FullOpts) (1 base, 0 diff methods) -117 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:Error(System.Object,System.FormattableString,System.String) (FullOpts) (1 base, 0 diff methods) -117 (-100.00 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:Error(System.Object,System.Object,System.String) (FullOpts) (1 base, 0 diff methods) -117 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:Error(System.Object,System.Object,System.String) (FullOpts) (1 base, 0 diff methods) -117 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:Error(System.Object,System.Object,System.String) (FullOpts) (1 base, 0 diff methods) -57 (-100.00 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:ErrorMessage(System.String,System.String,System.String):this (FullOpts) (1 base, 0 diff methods) -57 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:ErrorMessage(System.String,System.String,System.String):this (FullOpts) (1 base, 0 diff methods) -57 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:ErrorMessage(System.String,System.String,System.String):this (FullOpts) (1 base, 0 diff methods) -20 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:FindingMatchingCerts(int):this (FullOpts) (1 base, 0 diff methods) -62 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:FindingMatchingCerts(System.Net.Security.SslStream):this (FullOpts) (1 base, 0 diff methods) -563 (-100.00 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:Format(System.FormattableString):System.String (FullOpts) (1 base, 0 diff methods) -563 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:Format(System.FormattableString):System.String (FullOpts) (1 base, 0 diff methods) -563 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:Format(System.FormattableString):System.String (FullOpts) (1 base, 0 diff methods) -1740 (-100.00 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) (1 base, 0 diff methods) -1740 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) (1 base, 0 diff methods) -1435 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:Format(System.Object):System.String (FullOpts) (1 base, 0 diff methods) -23 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:FoundCertInStore(System.String,int):this (FullOpts) (1 base, 0 diff methods) -91 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:FoundCertInStore(ubyte,System.Object):this (FullOpts) (1 base, 0 diff methods) -25 (-100.00 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:GetHashCode(System.Object):int (FullOpts) (1 base, 0 diff methods) -25 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:GetHashCode(System.Object):int (FullOpts) (1 base, 0 diff methods) -25 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:GetHashCode(System.Object):int (FullOpts) (1 base, 0 diff methods) -48 (-100.00 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:HandlerMessageError(int,int,int,System.String,System.String):this (FullOpts) (1 base, 0 diff methods) -24 (-100.00 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:HeadersInvalidValue(System.String,System.String):this (FullOpts) (1 base, 0 diff methods) -121 (-100.00 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:IdOf(System.Object):System.String (FullOpts) (1 base, 0 diff methods) -121 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:IdOf(System.Object):System.String (FullOpts) (1 base, 0 diff methods) -121 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:IdOf(System.Object):System.String (FullOpts) (1 base, 0 diff methods) -134 (-100.00 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:Info(System.Object,System.FormattableString,System.String) (FullOpts) (1 base, 0 diff methods) -134 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:Info(System.Object,System.FormattableString,System.String) (FullOpts) (1 base, 0 diff methods) -134 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:Info(System.Object,System.FormattableString,System.String) (FullOpts) (1 base, 0 diff methods) -117 (-100.00 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:Info(System.Object,System.Object,System.String) (FullOpts) (1 base, 0 diff methods) -117 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:Info(System.Object,System.Object,System.String) (FullOpts) (1 base, 0 diff methods) -117 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:Info(System.Object,System.Object,System.String) (FullOpts) (1 base, 0 diff methods) -57 (-100.00 % of base) : System.Net.Http.dasm - System.Net.NetEventSource:Info(System.String,System.String,System.String):this (FullOpts) (1 base, 0 diff methods) -57 (-100.00 % of base) : System.Net.Sockets.dasm - System.Net.NetEventSource:Info(System.String,System.String,System.String):this (FullOpts) (1 base, 0 diff methods) -57 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:Info(System.String,System.String,System.String):this (FullOpts) (1 base, 0 diff methods) -99 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:LocatingPrivateKey(System.Security.Cryptography.X509Certificates.X509Certificate,System.Object):this (FullOpts) (1 base, 0 diff methods) -23 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:LocatingPrivateKey(System.String,int):this (FullOpts) (1 base, 0 diff methods) -22 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:LookForMatchingCerts(int,int):this (FullOpts) (1 base, 0 diff methods) -67 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:LookForMatchingCerts(int,System.Net.Security.SslStream):this (FullOpts) (1 base, 0 diff methods) -20 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:NoDelegateButClientCert(int):this (FullOpts) (1 base, 0 diff methods) -62 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:NoDelegateButClientCert(System.Net.Security.SslStream):this (FullOpts) (1 base, 0 diff methods) -20 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:NoDelegateNoClientCert(int):this (FullOpts) (1 base, 0 diff methods) -62 (-100.00 % of base) : System.Net.Security.dasm - System.Net.NetEventSource:NoDelegateNoClientCert(System.Net.Security.SslStream):this (FullOpts) (1 base, 0 diff methods) 812 total methods with Code Size differences (474 improved, 338 regressed), 238878 unchanged. -------------------------------------------------------------------------------- ```

Artifacts:

MihuBot commented 6 months ago

Top method regressions

417 (179.74 % of base) - System.IO.Pipes.PipeStream:WriteCore(System.ReadOnlySpan`1[ubyte]):this ```diff ; Assembly listing for method System.IO.Pipes.PipeStream:WriteCore(System.ReadOnlySpan`1[ubyte]):this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data -; 0 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data +; 0 inlinees with PGO data; 19 single block inlinees; 7 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T08] ( 4, 6 ) ref -> [rbp-0x20] this class-hnd EH-live single-def +; V00 this [V00,T11] ( 4, 6 ) ref -> [rbp-0x68] this class-hnd EH-live single-def ;* V01 arg1 [V01 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op single-def ;* V02 loc0 [V02 ] ( 0, 0 ) int -> zero-ref ;* V03 loc1 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd -;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V05 tmp1 [V05,T13] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" -; V06 tmp2 [V06,T01] ( 3, 20 ) ref -> rsi class-hnd exact "Inlining Arg" -; V07 tmp3 [V07,T04] ( 2, 16 ) ref -> rax class-hnd "dup spill" -; V08 tmp4 [V08,T02] ( 5, 18 ) ref -> rax +; V04 OutArgs [V04 ] ( 1, 1 ) struct (48) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" +; V05 tmp1 [V05,T32] ( 2, 0 ) ref -> rsi class-hnd single-def "impSpillSpecialSideEff" +; V06 tmp2 [V06,T03] ( 3, 20 ) ref -> rsi class-hnd exact "Inlining Arg" +; V07 tmp3 [V07,T05] ( 2, 16 ) ref -> r14 class-hnd "dup spill" +; V08 tmp4 [V08,T00] ( 11, 30 ) ref -> r14 ;* V09 tmp5 [V09 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" -; V10 tmp6 [V10 ] ( 3, 8 ) int -> [rbp-0x18] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" -; V11 tmp7 [V11,T03] ( 4, 16 ) int -> rax "Inline stloc first use temp" -; V12 tmp8 [V12,T12] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" -; V13 tmp9 [V13,T14] ( 2, 0 ) int -> rsi "Inlining Arg" -;* V14 tmp10 [V14 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V15 tmp11 [V15,T05] ( 2, 16 ) byref -> r15 "Inlining Arg" -; V16 tmp12 [V16,T06] ( 2, 16 ) int -> rbx "Inlining Arg" -; V17 tmp13 [V17,T07] ( 4, 13 ) byref -> r15 "field V01._reference (fldOffset=0x0)" P-INDEP -; V18 tmp14 [V18,T00] ( 7, 22 ) int -> rbx "field V01._length (fldOffset=0x8)" P-INDEP -;* V19 tmp15 [V19 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP -;* V20 tmp16 [V20 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP -; V21 tmp17 [V21,T09] ( 2, 8 ) byref -> r15 "field V14._reference (fldOffset=0x0)" P-INDEP -; V22 tmp18 [V22,T10] ( 2, 8 ) int -> rbx "field V14._length (fldOffset=0x8)" P-INDEP -; V23 PSPSym [V23,T11] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym" +; V10 tmp6 [V10 ] ( 6, 16 ) int -> [rbp-0x24] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" +; V11 tmp7 [V11,T04] ( 4, 16 ) int -> rdi "Inline stloc first use temp" +; V12 tmp8 [V12,T31] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" +; V13 tmp9 [V13 ] ( 6, 14 ) int -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" +;* V14 tmp10 [V14 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +; V15 tmp11 [V15,T12] ( 3, 8 ) int -> rax "Inline return value spill temp" +; V16 tmp12 [V16,T01] ( 5, 28 ) ref -> r13 class-hnd exact "Inlining Arg" +; V17 tmp13 [V17 ] ( 2, 4 ) int -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op "Inline ldloca(s) first use temp" +;* V18 tmp14 [V18 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" +; V19 tmp15 [V19,T09] ( 3, 12 ) ref -> rax class-hnd exact "impAppendStmt" +; V20 tmp16 [V20,T16] ( 2, 8 ) int -> r8 "Inlining Arg" +;* V21 tmp17 [V21 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" +; V22 tmp18 [V22 ] ( 5, 10 ) struct (16) [rbp-0x48] do-not-enreg[SFA] multireg-arg must-init ld-addr-op "Inline ldloca(s) first use temp" +;* V23 tmp19 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" +; V24 tmp20 [V24 ] ( 2, 4 ) int -> [rbp-0x50] do-not-enreg[X] addr-exposed ld-addr-op "Inline stloc first use temp" +; V25 tmp21 [V25 ] ( 2, 4 ) int -> [rbp-0x58] do-not-enreg[X] addr-exposed ld-addr-op "Inline stloc first use temp" +;* V26 tmp22 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" +; V27 tmp23 [V27 ] ( 2, 4 ) int -> [rbp-0x60] do-not-enreg[X] addr-exposed ld-addr-op "Inline stloc first use temp" +; V28 tmp24 [V28,T26] ( 2, 4 ) byref -> rdi +;* V29 tmp25 [V29 ] ( 0, 0 ) byref -> zero-ref +; V30 tmp26 [V30,T22] ( 3, 6 ) int -> rsi +;* V31 tmp27 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" +; V32 tmp28 [V32,T10] ( 3, 12 ) ref -> rsi class-hnd exact "Inlining Arg" +; V33 tmp29 [V33,T17] ( 2, 8 ) int -> rax "Inlining Arg" +; V34 tmp30 [V34,T13] ( 2, 8 ) byref -> rsi "Inlining Arg" +; V35 tmp31 [V35,T18] ( 2, 8 ) long -> rax "Inlining Arg" +; V36 tmp32 [V36,T14] ( 2, 8 ) ref -> rdi class-hnd exact "Inlining Arg" +;* V37 tmp33 [V37 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" +; V38 tmp34 [V38,T33] ( 2, 0 ) int -> rsi "Inlining Arg" +;* V39 tmp35 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" +; V40 tmp36 [V40,T06] ( 2, 16 ) byref -> r15 "Inlining Arg" +; V41 tmp37 [V41,T07] ( 2, 16 ) int -> rbx "Inlining Arg" +; V42 tmp38 [V42,T08] ( 5, 13 ) byref -> r15 "field V01._reference (fldOffset=0x0)" P-INDEP +; V43 tmp39 [V43,T02] ( 9, 24 ) int -> rbx "field V01._length (fldOffset=0x8)" P-INDEP +;* V44 tmp40 [V44 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP +;* V45 tmp41 [V45 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP +; V46 tmp42 [V46,T27] ( 2, 4 ) byref -> rsi "field V18._reference (fldOffset=0x0)" P-INDEP +;* V47 tmp43 [V47,T28] ( 0, 0 ) int -> zero-ref "field V18._length (fldOffset=0x8)" P-INDEP +;* V48 tmp44 [V48 ] ( 0, 0 ) ref -> zero-ref "field V21._object (fldOffset=0x0)" P-INDEP +;* V49 tmp45 [V49 ] ( 0, 0 ) int -> zero-ref "field V21._index (fldOffset=0x8)" P-INDEP +;* V50 tmp46 [V50 ] ( 0, 0 ) int -> zero-ref "field V21._length (fldOffset=0xc)" P-INDEP +; V51 tmp47 [V51,T20] ( 3, 6 ) ref -> [rbp-0x48] do-not-enreg[] "field V22._object (fldOffset=0x0)" P-DEP +; V52 tmp48 [V52,T23] ( 3, 6 ) int -> [rbp-0x40] do-not-enreg[] "field V22._index (fldOffset=0x8)" P-DEP +; V53 tmp49 [V53,T24] ( 3, 6 ) int -> [rbp-0x3C] do-not-enreg[] "field V22._length (fldOffset=0xc)" P-DEP +;* V54 tmp50 [V54 ] ( 0, 0 ) byref -> zero-ref "field V23._reference (fldOffset=0x0)" P-INDEP +;* V55 tmp51 [V55 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP +;* V56 tmp52 [V56 ] ( 0, 0 ) byref -> zero-ref "field V26._reference (fldOffset=0x0)" P-INDEP +;* V57 tmp53 [V57 ] ( 0, 0 ) int -> zero-ref "field V26._length (fldOffset=0x8)" P-INDEP +; V58 tmp54 [V58,T15] ( 2, 8 ) byref -> r15 "field V39._reference (fldOffset=0x0)" P-INDEP +; V59 tmp55 [V59,T19] ( 2, 8 ) int -> rbx "field V39._length (fldOffset=0x8)" P-INDEP +; V60 PSPSym [V60,T30] ( 1, 1 ) long -> [rbp-0x70] do-not-enreg[V] "PSPSym" +; V61 cse0 [V61,T21] ( 3, 6 ) ref -> rsi "CSE #04: moderate" +;* V62 cse1 [V62,T29] ( 0, 0 ) long -> zero-ref "CSE #01: moderate" +; V63 cse2 [V63,T25] ( 3, 6 ) long -> rdi "CSE #02: moderate" ; -; Lcl frame size = 32 +; Lcl frame size = 128 G_M16656_IG01: push rbp push r15 + push r14 + push r13 push rbx - sub rsp, 32 - lea rbp, [rsp+0x30] - mov qword ptr [rbp-0x30], rsp - mov gword ptr [rbp-0x20], rdi + sub rsp, 128 + lea rbp, [rsp+0xA0] + xor eax, eax + mov qword ptr [rbp-0x48], rax + mov qword ptr [rbp-0x70], rsp + mov gword ptr [rbp-0x68], rdi mov r15, rsi mov ebx, edx - ;; size=26 bbWeight=1 PerfScore 6.25 + ;; size=42 bbWeight=1 PerfScore 9.50 G_M16656_IG02: test ebx, ebx - jle G_M16656_IG08 + jle G_M16656_IG25 ;; size=8 bbWeight=1 PerfScore 1.25 G_M16656_IG03: mov rsi, gword ptr [rdi+0x10] - mov rax, gword ptr [rsi+0x18] - test rax, rax + mov r14, gword ptr [rsi+0x18] + test r14, r14 jne SHORT G_M16656_IG05 ;; size=13 bbWeight=4 PerfScore 21.00 G_M16656_IG04: mov rdi, rsi mov esi, 1 mov rax, 0xD1FFAB1E ; code for Microsoft.Win32.SafeHandles.SafePipeHandle:CreatePipeSocket(ubyte):System.Net.Sockets.Socket:this call [rax]Microsoft.Win32.SafeHandles.SafePipeHandle:CreatePipeSocket(ubyte):System.Net.Sockets.Socket:this - ;; size=20 bbWeight=2 PerfScore 7.50 + mov r14, rax + ;; size=23 bbWeight=2 PerfScore 8.00 G_M16656_IG05: + cmp dword ptr [r14+0x60], 0 + jne G_M16656_IG19 + mov rdi, r14 + mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:ValidateBlockingMode():this + call [rax]System.Net.Sockets.Socket:ValidateBlockingMode():this + mov r13, gword ptr [r14+0x08] + cmp byte ptr [r13+0x2F], 0 + jne SHORT G_M16656_IG09 + ;; size=37 bbWeight=4 PerfScore 54.00 +G_M16656_IG06: + mov rdi, r13 + mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.SafeSocketHandle:get_AsyncContext():System.Net.Sockets.SocketAsyncContext:this + call [rax]System.Net.Sockets.SafeSocketHandle:get_AsyncContext():System.Net.Sockets.SocketAsyncContext:this + mov r8d, dword ptr [r13+0x28] cmp byte ptr [rax], al + xor r9, r9 + mov gword ptr [rbp-0x48], r9 + ;; size=28 bbWeight=2 PerfScore 19.50 +G_M16656_IG07: + mov dword ptr [rbp-0x40], r9d + ;; size=4 bbWeight=2 PerfScore 2.00 +G_M16656_IG08: + mov dword ptr [rbp-0x3C], r9d + mov dword ptr [rsp], r8d + lea r8, [rbp-0x30] + mov qword ptr [rsp+0x08], r8 + mov r8, gword ptr [rbp-0x48] + mov r9, qword ptr [rbp-0x40] mov rsi, r15 mov edx, ebx - lea r8, [rbp-0x18] mov rdi, rax xor ecx, ecx - mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:Send(System.ReadOnlySpan`1[ubyte],int,byref):int:this - call [rax]System.Net.Sockets.Socket:Send(System.ReadOnlySpan`1[ubyte],int,byref):int:this - cmp dword ptr [rbp-0x18], 0 - jne SHORT G_M16656_IG06 - cmp eax, ebx - ja SHORT G_M16656_IG07 - mov edi, eax - add r15, rdi - sub ebx, eax - test ebx, ebx - mov rdi, gword ptr [rbp-0x20] - jg SHORT G_M16656_IG03 - jmp SHORT G_M16656_IG08 - ;; size=55 bbWeight=4 PerfScore 68.00 -G_M16656_IG06: + mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.SocketAsyncContext:SendTo(System.ReadOnlySpan`1[ubyte],int,System.Memory`1[ubyte],int,byref):int:this + call [rax]System.Net.Sockets.SocketAsyncContext:SendTo(System.ReadOnlySpan`1[ubyte],int,System.Memory`1[ubyte],int,byref):int:this + jmp SHORT G_M16656_IG13 + ;; size=49 bbWeight=2 PerfScore 23.50 +G_M16656_IG09: + xor esi, esi + mov dword ptr [rbp-0x30], esi + ;; size=5 bbWeight=2 PerfScore 2.50 +G_M16656_IG10: + xor edx, edx + mov dword ptr [rbp-0x50], edx + ;; size=5 bbWeight=2 PerfScore 2.50 +G_M16656_IG11: + mov dword ptr [rbp-0x58], edx + mov dword ptr [rbp-0x60], ebx + lea rdx, [rbp-0x60] + mov qword ptr [rsp], rdx + xor edx, edx + mov dword ptr [rsp+0x08], edx + ;; size=20 bbWeight=2 PerfScore 9.50 +G_M16656_IG12: + mov bword ptr [rsp+0x10], rsi + mov dword ptr [rsp+0x18], edx + lea rsi, [rbp-0x30] + mov qword ptr [rsp+0x20], rsi + lea rsi, [rbp-0x38] + mov qword ptr [rsp+0x28], rsi + mov rsi, r15 + mov edx, ebx + lea r8, [rbp-0x50] + lea r9, [rbp-0x58] + mov rdi, r13 + xor rcx, rcx + mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.SocketPal:TryCompleteSendTo(System.Net.Sockets.SafeSocketHandle,System.ReadOnlySpan`1[ubyte],System.Collections.Generic.IList`1[System.ArraySegment`1[ubyte]],byref,byref,byref,int,System.ReadOnlySpan`1[ubyte],byref,byref):ubyte + call [rax]System.Net.Sockets.SocketPal:TryCompleteSendTo(System.Net.Sockets.SafeSocketHandle,System.ReadOnlySpan`1[ubyte],System.Collections.Generic.IList`1[System.ArraySegment`1[ubyte]],byref,byref,byref,int,System.ReadOnlySpan`1[ubyte],byref,byref):ubyte + mov eax, dword ptr [rbp-0x38] + ;; size=60 bbWeight=2 PerfScore 22.50 +G_M16656_IG13: + mov dword ptr [rbp-0x24], eax + cmp dword ptr [rbp-0x24], 0 + je G_M16656_IG22 + ;; size=13 bbWeight=4 PerfScore 16.00 +G_M16656_IG14: + cmp dword ptr [r14+0x60], 0 + je SHORT G_M16656_IG17 + lea rdi, bword ptr [rbp-0x24] + cmp dword ptr [r14+0x54], 1 + je SHORT G_M16656_IG15 + mov esi, 0x2714 + jmp SHORT G_M16656_IG16 + ;; size=25 bbWeight=2 PerfScore 21.50 +G_M16656_IG15: + mov esi, 0x2745 + ;; size=5 bbWeight=2 PerfScore 0.50 +G_M16656_IG16: + mov dword ptr [rdi], esi + ;; size=2 bbWeight=2 PerfScore 2.00 +G_M16656_IG17: + mov rdi, r14 + mov esi, dword ptr [rbp-0x24] + mov edx, 1 + mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:UpdateStatusAfterSocketError(int,ubyte):this + call [rax]System.Net.Sockets.Socket:UpdateStatusAfterSocketError(int,ubyte):this + xor edi, edi + mov dword ptr [rbp-0x30], edi + jmp G_M16656_IG24 + ;; size=33 bbWeight=2 PerfScore 16.00 +G_M16656_IG18: + mov rdi, 0xD1FFAB1E + mov esi, 34 + call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE + jmp SHORT G_M16656_IG23 + ;; size=22 bbWeight=0 PerfScore 0.00 +G_M16656_IG19: + mov rdi, r14 + mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowObjectDisposedException(System.Object) + call [rax]System.ThrowHelper:ThrowObjectDisposedException(System.Object) + int3 + ;; size=16 bbWeight=0 PerfScore 0.00 +G_M16656_IG20: mov rdi, 0xD1FFAB1E ; System.Net.Sockets.SocketException call CORINFO_HELP_NEWSFAST mov rbx, rax - mov esi, dword ptr [rbp-0x18] + mov esi, dword ptr [rbp-0x24] mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.SocketException:.ctor(int):this call [rax]System.Net.Sockets.SocketException:.ctor(int):this mov rdi, rbx call CORINFO_HELP_THROW ;; size=44 bbWeight=0 PerfScore 0.00 -G_M16656_IG07: +G_M16656_IG21: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException() call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -G_M16656_IG08: - add rsp, 32 +G_M16656_IG22: + mov rdi, 0xD1FFAB1E ; global ptr + test byte ptr [rdi], 1 + je SHORT G_M16656_IG18 + ;; size=15 bbWeight=2 PerfScore 8.50 +G_M16656_IG23: + mov rdi, 0xD1FFAB1E ; data for System.Net.Sockets.SocketsTelemetry:Log + mov rsi, gword ptr [rdi] + cmp byte ptr [rsi+0x9D], 0 + je SHORT G_M16656_IG24 + mov eax, dword ptr [rbp-0x30] + cmp byte ptr [rsi], sil + add rsi, 264 + cdqe + lock + add qword ptr [rsi], rax + cmp dword ptr [r14+0x54], 2 + jne SHORT G_M16656_IG24 + mov rdi, gword ptr [rdi] + add rdi, 280 + lock + inc qword ptr [rdi] + ;; size=62 bbWeight=2 PerfScore 98.00 +G_M16656_IG24: + mov edi, dword ptr [rbp-0x30] + cmp dword ptr [rbp-0x24], 0 + jne G_M16656_IG20 + cmp edi, ebx + ja SHORT G_M16656_IG21 + mov esi, edi + add r15, rsi + sub ebx, edi + test ebx, ebx + mov rdi, gword ptr [rbp-0x68] + jg G_M16656_IG03 + ;; size=36 bbWeight=4 PerfScore 33.00 +G_M16656_IG25: + add rsp, 128 pop rbx + pop r13 + pop r14 pop r15 pop rbp ret - ;; size=9 bbWeight=1 PerfScore 2.75 -G_M16656_IG09: + ;; size=16 bbWeight=1 PerfScore 3.75 +G_M16656_IG26: push rbp push r15 + push r14 + push r13 push rbx - sub rsp, 16 - mov rbp, qword ptr [rdi] - mov qword ptr [rsp], rbp - lea rbp, [rbp+0x30] - ;; size=19 bbWeight=0 PerfScore 0.00 -G_M16656_IG10: - mov rdi, gword ptr [rbp-0x20] + sub rsp, 64 + mov rbp, qword ptr [rdi+0x30] + mov qword ptr [rsp+0x30], rbp + lea rbp, [rbp+0xA0] + ;; size=28 bbWeight=0 PerfScore 0.00 +G_M16656_IG27: + mov rdi, gword ptr [rbp-0x68] mov rax, 0xD1FFAB1E ; code for System.IO.Pipes.PipeStream:GetIOExceptionForSocketException(System.Net.Sockets.SocketException):System.IO.IOException:this call [rax]System.IO.Pipes.PipeStream:GetIOExceptionForSocketException(System.Net.Sockets.SocketException):System.IO.IOException:this mov rdi, rax call CORINFO_HELP_THROW int3 ;; size=25 bbWeight=0 PerfScore 0.00 -; Total bytes of code 232, prolog size 26, PerfScore 106.75, instruction count 68, allocated bytes for code 232 (MethodHash=867cbeef) for method System.IO.Pipes.PipeStream:WriteCore(System.ReadOnlySpan`1[ubyte]):this (FullOpts) +; Total bytes of code 649, prolog size 42, PerfScore 375.00, instruction count 170, allocated bytes for code 649 (MethodHash=867cbeef) for method System.IO.Pipes.PipeStream:WriteCore(System.ReadOnlySpan`1[ubyte]):this (FullOpts) ```
319 (28.08 % of base) - System.Net.Sockets.UdpClient:Connect(System.String,int):this ```diff ; Assembly listing for method System.Net.Sockets.UdpClient:Connect(System.String,int):this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data -; 0 inlinees with PGO data; 10 single block inlinees; 6 inlinees without PGO data +; 0 inlinees with PGO data; 24 single block inlinees; 10 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T01] ( 15, 20 ) ref -> [rbp-0x28] this class-hnd EH-live single-def -; V01 arg1 [V01,T12] ( 4, 4 ) ref -> rbx class-hnd single-def -; V02 arg2 [V02,T09] ( 7, 7 ) int -> [rbp-0x1C] EH-live single-def -; V03 loc0 [V03,T17] ( 2, 2 ) ref -> rbx class-hnd single-def -; V04 loc1 [V04,T19] ( 7, 1 ) ref -> [rbp-0x30] do-not-enreg[Z] class-hnd EH-live -; V05 loc2 [V05,T10] ( 11, 7 ) ref -> [rbp-0x38] do-not-enreg[M] class-hnd EH-live -; V06 loc3 [V06,T11] ( 11, 7 ) ref -> [rbp-0x40] do-not-enreg[M] class-hnd EH-live +; V01 arg1 [V01,T14] ( 4, 4 ) ref -> rbx class-hnd single-def +; V02 arg2 [V02,T13] ( 7, 7 ) int -> [rbp-0x1C] EH-live single-def +; V03 loc0 [V03,T19] ( 2, 2 ) ref -> rbx class-hnd single-def +; V04 loc1 [V04,T21] ( 7, 1 ) ref -> [rbp-0x30] do-not-enreg[Z] class-hnd EH-live +; V05 loc2 [V05,T11] ( 17, 9 ) ref -> [rbp-0x38] do-not-enreg[M] class-hnd EH-live +; V06 loc3 [V06,T12] ( 17, 9 ) ref -> [rbp-0x40] do-not-enreg[M] class-hnd EH-live ; V07 loc4 [V07,T04] ( 4, 17 ) ref -> [rbp-0x48] class-hnd EH-live single-def ; V08 loc5 [V08,T00] ( 5, 33 ) int -> [rbp-0x20] do-not-enreg[Z] EH-live ; V09 loc6 [V09,T03] ( 7, 17 ) ref -> r15 class-hnd ;* V10 loc7 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd ;* V11 loc8 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def ;# V12 OutArgs [V12 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V13 tmp1 [V13,T13] ( 3, 6 ) ref -> r14 class-hnd exact "NewObj constructor temp" -; V14 tmp2 [V14,T22] ( 3, 0 ) ref -> rbx class-hnd "impSpillSpecialSideEff" -; V15 tmp3 [V15,T14] ( 3, 6 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" -; V16 tmp4 [V16,T15] ( 3, 6 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" -; V17 tmp5 [V17,T21] ( 6, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" -; V18 tmp6 [V18,T23] ( 3, 0 ) ref -> rbx class-hnd single-def "impSpillSpecialSideEff" -; V19 tmp7 [V19,T24] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" -;* V20 tmp8 [V20,T26] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" -;* V21 tmp9 [V21,T18] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" -; V22 tmp10 [V22,T16] ( 3, 3 ) int -> rdi "Inline return value spill temp" -; V23 tmp11 [V23,T05] ( 4, 16 ) int -> rcx "Inline return value spill temp" -; V24 tmp12 [V24,T06] ( 2, 8 ) ubyte -> rax "Inline return value spill temp" -; V25 tmp13 [V25,T25] ( 2, 0 ) ref -> rsi single-def "argument with side effect" -; V26 PSPSym [V26,T20] ( 1, 1 ) long -> [rbp-0x50] do-not-enreg[V] "PSPSym" -; V27 cse0 [V27,T08] ( 3, 12 ) int -> rdx "CSE #04: aggressive" -; V28 cse1 [V28,T07] ( 3, 12 ) ref -> rax "CSE #05: aggressive" -; V29 cse2 [V29,T02] ( 4, 18 ) int -> r15 multi-def "CSE #02: aggressive" +; V13 tmp1 [V13,T15] ( 3, 6 ) ref -> r14 class-hnd exact "NewObj constructor temp" +; V14 tmp2 [V14,T24] ( 3, 0 ) ref -> rbx class-hnd "impSpillSpecialSideEff" +; V15 tmp3 [V15,T07] ( 7, 14 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" +; V16 tmp4 [V16,T08] ( 7, 14 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" +; V17 tmp5 [V17,T23] ( 6, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" +; V18 tmp6 [V18,T25] ( 3, 0 ) ref -> rbx class-hnd single-def "impSpillSpecialSideEff" +; V19 tmp7 [V19,T26] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" +;* V20 tmp8 [V20,T30] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" +; V21 tmp9 [V21,T17] ( 3, 2 ) int -> r14 "Inline stloc first use temp" +; V22 tmp10 [V22,T27] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" +; V23 tmp11 [V23,T18] ( 3, 2 ) int -> r15 "Inline stloc first use temp" +; V24 tmp12 [V24,T28] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" +;* V25 tmp13 [V25,T20] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" +; V26 tmp14 [V26,T16] ( 3, 3 ) int -> rdi "Inline return value spill temp" +; V27 tmp15 [V27,T05] ( 4, 16 ) int -> rcx "Inline return value spill temp" +; V28 tmp16 [V28,T06] ( 2, 8 ) ubyte -> rax "Inline return value spill temp" +; V29 tmp17 [V29,T29] ( 2, 0 ) ref -> rsi single-def "argument with side effect" +; V30 PSPSym [V30,T22] ( 1, 1 ) long -> [rbp-0x50] do-not-enreg[V] "PSPSym" +; V31 cse0 [V31,T10] ( 3, 12 ) int -> rdx "CSE #05: aggressive" +; V32 cse1 [V32,T09] ( 3, 12 ) ref -> rax "CSE #06: aggressive" +; V33 cse2 [V33,T02] ( 4, 18 ) int -> r15 multi-def "CSE #03: aggressive" ; ; Lcl frame size = 56 G_M6296_IG01: push rbp push r15 push r14 push rbx sub rsp, 56 lea rbp, [rsp+0x50] mov qword ptr [rbp-0x50], rsp mov gword ptr [rbp-0x28], rdi mov dword ptr [rbp-0x1C], edx mov rbx, rsi ;; size=29 bbWeight=1 PerfScore 8.00 G_M6296_IG02: movzx rdi, byte ptr [rdi+0x1D] mov rsi, gword ptr [rbp-0x28] mov rax, 0xD1FFAB1E ; code for System.ObjectDisposedException:ThrowIf(ubyte,System.Object) call [rax]System.ObjectDisposedException:ThrowIf(ubyte,System.Object) test rbx, rbx - je G_M6296_IG22 + je G_M6296_IG24 mov edx, dword ptr [rbp-0x1C] test edx, edx - jl G_M6296_IG23 + jl G_M6296_IG25 cmp edx, 0xFFFF - jg G_M6296_IG23 + jg G_M6296_IG25 mov rdi, rbx xor esi, esi mov rax, 0xD1FFAB1E ; code for System.Net.Dns:GetHostAddresses(System.String,int):System.Net.IPAddress[] call [rax]System.Net.Dns:GetHostAddresses(System.String,int):System.Net.IPAddress[] mov rbx, rax xor rdi, rdi mov gword ptr [rbp-0x30], rdi ;; size=79 bbWeight=1 PerfScore 16.25 G_M6296_IG03: mov gword ptr [rbp-0x38], rdi ;; size=4 bbWeight=1 PerfScore 1.00 G_M6296_IG04: mov gword ptr [rbp-0x40], rdi ;; size=4 bbWeight=1 PerfScore 1.00 G_M6296_IG05: mov rdi, gword ptr [rbp-0x28] cmp gword ptr [rdi+0x08], 0 - jne SHORT G_M6296_IG06 + jne G_M6296_IG06 mov rdi, 0xD1FFAB1E ; System.Net.Sockets.Socket call CORINFO_HELP_NEWFAST mov r15, rax - mov rdi, r15 + mov word ptr [r15+0x66], 257 + mov dword ptr [r15+0x5C], -1 + lea rcx, bword ptr [r15+0x08] + mov edi, 2 mov esi, 2 - mov edx, 2 - mov ecx, 17 - mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:.ctor(int,int,int):this - call [rax]System.Net.Sockets.Socket:.ctor(int,int,int):this + mov edx, 17 + mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.SocketPal:CreateSocket(int,int,int,byref):int + call [rax]System.Net.Sockets.SocketPal:CreateSocket(int,int,int,byref):int + mov r14d, eax + test r14d, r14d + jne G_M6296_IG09 + mov rdi, 0xD1FFAB1E + mov qword ptr [r15+0x50], rdi + mov dword ptr [r15+0x58], 17 mov gword ptr [rbp-0x40], r15 mov rdi, 0xD1FFAB1E ; System.Net.Sockets.Socket call CORINFO_HELP_NEWFAST - mov r15, rax - mov rdi, r15 - mov esi, 23 - mov edx, 2 - mov ecx, 17 - mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:.ctor(int,int,int):this - call [rax]System.Net.Sockets.Socket:.ctor(int,int,int):this - mov gword ptr [rbp-0x38], r15 - ;; size=115 bbWeight=1 PerfScore 18.50 + mov r14, rax + mov word ptr [r14+0x66], 257 + mov dword ptr [r14+0x5C], -1 + lea rcx, bword ptr [r14+0x08] + mov edi, 23 + mov esi, 2 + mov edx, 17 + mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.SocketPal:CreateSocket(int,int,int,byref):int + call [rax]System.Net.Sockets.SocketPal:CreateSocket(int,int,int,byref):int + mov r15d, eax + test r15d, r15d + jne SHORT G_M6296_IG08 + mov rdi, 0xD1FFAB1E + mov qword ptr [r14+0x50], rdi + mov dword ptr [r14+0x58], 17 + mov gword ptr [rbp-0x38], r14 + ;; size=215 bbWeight=1 PerfScore 30.50 G_M6296_IG06: mov gword ptr [rbp-0x48], rbx xor esi, esi mov dword ptr [rbp-0x20], esi mov r15d, dword ptr [rbx+0x08] test r15d, r15d - jle G_M6296_IG20 + jle G_M6296_IG22 ;; size=22 bbWeight=1 PerfScore 5.50 G_M6296_IG07: mov esi, dword ptr [rbp-0x20] mov r15, gword ptr [rbx+8*rsi+0x10] - ;; size=8 bbWeight=8 PerfScore 24.00 + jmp SHORT G_M6296_IG10 + ;; size=10 bbWeight=8 PerfScore 40.00 G_M6296_IG08: + mov rdi, 0xD1FFAB1E ; System.Net.Sockets.SocketException + call CORINFO_HELP_NEWSFAST + mov rbx, rax + mov rdi, rbx + mov esi, r15d + mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.SocketException:.ctor(int):this + call [rax]System.Net.Sockets.SocketException:.ctor(int):this + mov rdi, rbx + call CORINFO_HELP_THROW + ;; size=44 bbWeight=0 PerfScore 0.00 +G_M6296_IG09: + mov rdi, 0xD1FFAB1E ; System.Net.Sockets.SocketException + call CORINFO_HELP_NEWSFAST + mov rbx, rax + mov rdi, rbx + mov esi, r14d + mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.SocketException:.ctor(int):this + call [rax]System.Net.Sockets.SocketException:.ctor(int):this + mov rdi, rbx + call CORINFO_HELP_THROW + int3 + ;; size=45 bbWeight=0 PerfScore 0.00 +G_M6296_IG10: mov rdi, gword ptr [rbp-0x28] mov rax, gword ptr [rdi+0x08] test rax, rax - jne G_M6296_IG14 + jne G_M6296_IG16 ;; size=17 bbWeight=4 PerfScore 17.00 -G_M6296_IG09: +G_M6296_IG11: cmp gword ptr [r15+0x08], 0 - jne SHORT G_M6296_IG10 + jne SHORT G_M6296_IG12 cmp gword ptr [rbp-0x40], 0 - je SHORT G_M6296_IG10 + je SHORT G_M6296_IG12 mov rdi, gword ptr [rbp-0x40] mov rsi, r15 mov edx, dword ptr [rbp-0x1C] mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:Connect(System.Net.IPAddress,int):this call [rax]System.Net.Sockets.Socket:Connect(System.Net.IPAddress,int):this mov rdi, gword ptr [rbp-0x28] lea rdi, bword ptr [rdi+0x08] mov rsi, gword ptr [rbp-0x40] call CORINFO_HELP_ASSIGN_REF cmp gword ptr [rbp-0x38], 0 - je SHORT G_M6296_IG11 + je SHORT G_M6296_IG13 mov rdi, gword ptr [rbp-0x38] - mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:Close():this - call [rax]System.Net.Sockets.Socket:Close():this - jmp SHORT G_M6296_IG11 - ;; size=78 bbWeight=1 PerfScore 25.25 -G_M6296_IG10: + mov esi, 1 + mov rax, gword ptr [rbp-0x38] + mov rax, qword ptr [rax] + mov rax, qword ptr [rax+0x40] + call [rax+0x20]System.Net.Sockets.Socket:Dispose(ubyte):this + mov rdi, gword ptr [rbp-0x38] + call System.GC:_SuppressFinalize(System.Object) + jmp SHORT G_M6296_IG13 + ;; size=94 bbWeight=1 PerfScore 32.25 +G_M6296_IG12: cmp gword ptr [rbp-0x38], 0 - je SHORT G_M6296_IG11 + je SHORT G_M6296_IG13 mov rdi, gword ptr [rbp-0x38] mov rsi, r15 mov edx, dword ptr [rbp-0x1C] mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:Connect(System.Net.IPAddress,int):this call [rax]System.Net.Sockets.Socket:Connect(System.Net.IPAddress,int):this mov rdi, gword ptr [rbp-0x28] lea rdi, bword ptr [rdi+0x08] mov rsi, gword ptr [rbp-0x38] call CORINFO_HELP_ASSIGN_REF cmp gword ptr [rbp-0x40], 0 - je SHORT G_M6296_IG11 + je SHORT G_M6296_IG13 mov rdi, gword ptr [rbp-0x40] - mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:Close():this - call [rax]System.Net.Sockets.Socket:Close():this - ;; size=69 bbWeight=1 PerfScore 19.25 -G_M6296_IG11: + mov esi, 1 + mov rax, gword ptr [rbp-0x40] + mov rax, qword ptr [rax] + mov rax, qword ptr [rax+0x40] + call [rax+0x20]System.Net.Sockets.Socket:Dispose(ubyte):this + mov rdi, gword ptr [rbp-0x40] + call System.GC:_SuppressFinalize(System.Object) + ;; size=85 bbWeight=1 PerfScore 26.25 +G_M6296_IG13: cmp gword ptr [r15+0x08], 0 - je SHORT G_M6296_IG12 + je SHORT G_M6296_IG14 mov edi, 23 - jmp SHORT G_M6296_IG13 + jmp SHORT G_M6296_IG15 ;; size=14 bbWeight=1 PerfScore 6.25 -G_M6296_IG12: +G_M6296_IG14: mov edi, 2 ;; size=5 bbWeight=1 PerfScore 0.25 -G_M6296_IG13: - mov r15, gword ptr [rbp-0x28] - mov dword ptr [r15+0x18], edi - mov byte ptr [r15+0x1C], 1 - jmp G_M6296_IG20 +G_M6296_IG15: + mov r14, gword ptr [rbp-0x28] + mov dword ptr [r14+0x18], edi + mov byte ptr [r14+0x1C], 1 + jmp G_M6296_IG22 ;; size=18 bbWeight=1 PerfScore 5.00 -G_M6296_IG14: +G_M6296_IG16: cmp gword ptr [r15+0x08], 0 - je SHORT G_M6296_IG15 + je SHORT G_M6296_IG17 mov ecx, 23 - jmp SHORT G_M6296_IG16 + jmp SHORT G_M6296_IG18 ;; size=14 bbWeight=4 PerfScore 25.00 -G_M6296_IG15: +G_M6296_IG17: mov ecx, 2 ;; size=5 bbWeight=4 PerfScore 1.00 -G_M6296_IG16: +G_M6296_IG18: mov rdi, gword ptr [rbp-0x28] mov edx, dword ptr [rdi+0x18] cmp ecx, edx - je SHORT G_M6296_IG17 + je SHORT G_M6296_IG19 cmp ecx, 2 - jne SHORT G_M6296_IG18 + jne SHORT G_M6296_IG20 cmp edx, 23 - jne SHORT G_M6296_IG18 + jne SHORT G_M6296_IG20 mov rdi, rax mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:get_DualMode():ubyte:this cmp dword ptr [rdi], edi call [rax]System.Net.Sockets.Socket:get_DualMode():ubyte:this test eax, eax - je SHORT G_M6296_IG18 + je SHORT G_M6296_IG20 ;; size=42 bbWeight=4 PerfScore 58.00 -G_M6296_IG17: +G_M6296_IG19: mov rdi, 0xD1FFAB1E ; System.Net.IPEndPoint call CORINFO_HELP_NEWSFAST mov r14, rax mov rdi, r14 mov rsi, r15 mov edx, dword ptr [rbp-0x1C] mov rax, 0xD1FFAB1E ; code for System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this call [rax]System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this mov rdi, gword ptr [rbp-0x28] mov rsi, r14 mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.UdpClient:Connect(System.Net.IPEndPoint):this call [rax]System.Net.Sockets.UdpClient:Connect(System.Net.IPEndPoint):this - mov r15, gword ptr [rbp-0x28] - mov byte ptr [r15+0x1C], 1 - jmp SHORT G_M6296_IG20 + mov r14, gword ptr [rbp-0x28] + mov byte ptr [r14+0x1C], 1 + jmp SHORT G_M6296_IG22 ;; size=69 bbWeight=1 PerfScore 14.75 -G_M6296_IG18: +G_M6296_IG20: mov edi, dword ptr [rbp-0x20] inc edi mov dword ptr [rbp-0x20], edi mov rbx, gword ptr [rbp-0x48] mov r15d, dword ptr [rbx+0x08] cmp r15d, dword ptr [rbp-0x20] jg G_M6296_IG07 - jmp SHORT G_M6296_IG20 + jmp SHORT G_M6296_IG22 ;; size=28 bbWeight=8 PerfScore 82.00 -G_M6296_IG19: +G_M6296_IG21: nop ;; size=1 bbWeight=0 PerfScore 0.00 -G_M6296_IG20: - mov r15, gword ptr [rbp-0x28] - cmp byte ptr [r15+0x1C], 0 - je SHORT G_M6296_IG24 +G_M6296_IG22: + mov r14, gword ptr [rbp-0x28] + cmp byte ptr [r14+0x1C], 0 + je SHORT G_M6296_IG26 ;; size=11 bbWeight=1 PerfScore 5.00 -G_M6296_IG21: +G_M6296_IG23: add rsp, 56 pop rbx pop r14 pop r15 pop rbp ret ;; size=11 bbWeight=1 PerfScore 3.25 -G_M6296_IG22: - mov edi, 0x259A +G_M6296_IG24: + mov edi, 0x133F mov rsi, 0xD1FFAB1E call CORINFO_HELP_STRCNS mov rdi, rax mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:Throw(System.String) call [rax]System.ArgumentNullException:Throw(System.String) int3 ;; size=36 bbWeight=0 PerfScore 0.00 -G_M6296_IG23: +G_M6296_IG25: mov rdi, 0xD1FFAB1E ; System.ArgumentOutOfRangeException call CORINFO_HELP_NEWSFAST mov rbx, rax - mov edi, 0x148F + mov edi, 0x10C7 mov rsi, 0xD1FFAB1E call CORINFO_HELP_STRCNS mov rsi, rax mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.ArgumentOutOfRangeException:.ctor(System.String):this call [rax]System.ArgumentOutOfRangeException:.ctor(System.String):this mov rdi, rbx call CORINFO_HELP_THROW ;; size=64 bbWeight=0 PerfScore 0.00 -G_M6296_IG24: +G_M6296_IG26: cmp gword ptr [rbp-0x38], 0 - je SHORT G_M6296_IG25 + je SHORT G_M6296_IG27 mov rdi, gword ptr [rbp-0x38] - mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:Close():this - call [rax]System.Net.Sockets.Socket:Close():this - ;; size=23 bbWeight=0 PerfScore 0.00 -G_M6296_IG25: + mov esi, 1 + mov rax, gword ptr [rbp-0x38] + mov rax, qword ptr [rax] + mov rax, qword ptr [rax+0x40] + call [rax+0x20]System.Net.Sockets.Socket:Dispose(ubyte):this + mov rdi, gword ptr [rbp-0x38] + mov rax, 0xD1FFAB1E ; code for System.GC:SuppressFinalize(System.Object) + call [rax]System.GC:SuppressFinalize(System.Object) + ;; size=46 bbWeight=0 PerfScore 0.00 +G_M6296_IG27: cmp gword ptr [rbp-0x40], 0 - je SHORT G_M6296_IG26 + je SHORT G_M6296_IG28 mov rdi, gword ptr [rbp-0x40] - mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:Close():this - call [rax]System.Net.Sockets.Socket:Close():this - ;; size=23 bbWeight=0 PerfScore 0.00 -G_M6296_IG26: + mov esi, 1 + mov rax, gword ptr [rbp-0x40] + mov rax, qword ptr [rax] + mov rax, qword ptr [rax+0x40] + call [rax+0x20]System.Net.Sockets.Socket:Dispose(ubyte):this + mov rdi, gword ptr [rbp-0x40] + mov rax, 0xD1FFAB1E ; code for System.GC:SuppressFinalize(System.Object) + call [rax]System.GC:SuppressFinalize(System.Object) + ;; size=46 bbWeight=0 PerfScore 0.00 +G_M6296_IG28: cmp gword ptr [rbp-0x30], 0 - je SHORT G_M6296_IG27 + je SHORT G_M6296_IG29 mov rdi, gword ptr [rbp-0x30] call CORINFO_HELP_THROW ;; size=16 bbWeight=0 PerfScore 0.00 -G_M6296_IG27: +G_M6296_IG29: mov rdi, 0xD1FFAB1E ; System.Net.Sockets.SocketException call CORINFO_HELP_NEWSFAST mov rbx, rax mov rdi, rbx mov esi, 0x2749 mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.SocketException:.ctor(int):this call [rax]System.Net.Sockets.SocketException:.ctor(int):this mov rdi, rbx call CORINFO_HELP_THROW int3 ;; size=47 bbWeight=0 PerfScore 0.00 -G_M6296_IG28: +G_M6296_IG30: push rbp push r15 push r14 push rbx push rax mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x50] ;; size=18 bbWeight=0 PerfScore 0.00 -G_M6296_IG29: +G_M6296_IG31: mov rbx, rsi mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Net.ExceptionCheck:IsFatal(System.Exception):ubyte call [rax]System.Net.ExceptionCheck:IsFatal(System.Exception):ubyte test eax, eax - jne SHORT G_M6296_IG31 + jne SHORT G_M6296_IG33 mov gword ptr [rbp-0x30], rbx - lea rax, G_M6296_IG18 + lea rax, G_M6296_IG20 ;; size=33 bbWeight=0 PerfScore 0.00 -G_M6296_IG30: +G_M6296_IG32: add rsp, 8 pop rbx pop r14 pop r15 pop rbp ret ;; size=11 bbWeight=0 PerfScore 0.00 -G_M6296_IG31: +G_M6296_IG33: call CORINFO_HELP_RETHROW int3 ;; size=6 bbWeight=0 PerfScore 0.00 -G_M6296_IG32: +G_M6296_IG34: push rbp push r15 push r14 push rbx push rax mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x50] ;; size=18 bbWeight=0 PerfScore 0.00 -G_M6296_IG33: +G_M6296_IG35: mov rbx, rsi mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Net.ExceptionCheck:IsFatal(System.Exception):ubyte call [rax]System.Net.ExceptionCheck:IsFatal(System.Exception):ubyte test eax, eax - je SHORT G_M6296_IG34 + je SHORT G_M6296_IG36 call CORINFO_HELP_RETHROW ;; size=27 bbWeight=0 PerfScore 0.00 -G_M6296_IG34: +G_M6296_IG36: mov gword ptr [rbp-0x30], rbx - lea rax, G_M6296_IG19 + lea rax, G_M6296_IG21 ;; size=11 bbWeight=0 PerfScore 0.00 -G_M6296_IG35: +G_M6296_IG37: add rsp, 8 pop rbx pop r14 pop r15 pop rbp ret ;; size=11 bbWeight=0 PerfScore 0.00 -G_M6296_IG36: +G_M6296_IG38: push rbp push r15 push r14 push rbx push rax mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x50] ;; size=18 bbWeight=0 PerfScore 0.00 -G_M6296_IG37: - mov r15, gword ptr [rbp-0x28] - cmp byte ptr [r15+0x1C], 0 - jne SHORT G_M6296_IG41 +G_M6296_IG39: + mov r14, gword ptr [rbp-0x28] + cmp byte ptr [r14+0x1C], 0 + jne G_M6296_IG43 cmp gword ptr [rbp-0x38], 0 - je SHORT G_M6296_IG38 + je SHORT G_M6296_IG40 mov rdi, gword ptr [rbp-0x38] - mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:Close():this - call [rax]System.Net.Sockets.Socket:Close():this - ;; size=34 bbWeight=0 PerfScore 0.00 -G_M6296_IG38: + mov esi, 1 + mov rax, gword ptr [rbp-0x38] + mov rax, qword ptr [rax] + mov rax, qword ptr [rax+0x40] + call [rax+0x20]System.Net.Sockets.Socket:Dispose(ubyte):this + mov rdi, gword ptr [rbp-0x38] + mov rax, 0xD1FFAB1E ; code for System.GC:SuppressFinalize(System.Object) + call [rax]System.GC:SuppressFinalize(System.Object) + ;; size=61 bbWeight=0 PerfScore 0.00 +G_M6296_IG40: cmp gword ptr [rbp-0x40], 0 - je SHORT G_M6296_IG39 + je SHORT G_M6296_IG41 mov rdi, gword ptr [rbp-0x40] - mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:Close():this - call [rax]System.Net.Sockets.Socket:Close():this - ;; size=23 bbWeight=0 PerfScore 0.00 -G_M6296_IG39: + mov esi, 1 + mov rax, gword ptr [rbp-0x40] + mov rax, qword ptr [rax] + mov rax, qword ptr [rax+0x40] + call [rax+0x20]System.Net.Sockets.Socket:Dispose(ubyte):this + mov rdi, gword ptr [rbp-0x40] + mov rax, 0xD1FFAB1E ; code for System.GC:SuppressFinalize(System.Object) + call [rax]System.GC:SuppressFinalize(System.Object) + ;; size=46 bbWeight=0 PerfScore 0.00 +G_M6296_IG41: cmp gword ptr [rbp-0x30], 0 - je SHORT G_M6296_IG40 + je SHORT G_M6296_IG42 mov rdi, gword ptr [rbp-0x30] call CORINFO_HELP_THROW ;; size=16 bbWeight=0 PerfScore 0.00 -G_M6296_IG40: +G_M6296_IG42: mov rdi, 0xD1FFAB1E ; System.Net.Sockets.SocketException call CORINFO_HELP_NEWSFAST mov rbx, rax mov rdi, rbx mov esi, 0x2749 mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.SocketException:.ctor(int):this call [rax]System.Net.Sockets.SocketException:.ctor(int):this mov rdi, rbx call CORINFO_HELP_THROW ;; size=46 bbWeight=0 PerfScore 0.00 -G_M6296_IG41: +G_M6296_IG43: nop ;; size=1 bbWeight=0 PerfScore 0.00 -G_M6296_IG42: +G_M6296_IG44: add rsp, 8 pop rbx pop r14 pop r15 pop rbp ret ;; size=11 bbWeight=0 PerfScore 0.00 -; Total bytes of code 1136, prolog size 29, PerfScore 336.25, instruction count 292, allocated bytes for code 1136 (MethodHash=1f7ce767) for method System.Net.Sockets.UdpClient:Connect(System.String,int):this (FullOpts) +; Total bytes of code 1455, prolog size 29, PerfScore 378.25, instruction count 362, allocated bytes for code 1455 (MethodHash=1f7ce767) for method System.Net.Sockets.UdpClient:Connect(System.String,int):this (FullOpts) ```
305 (924.24 % of base) - System.Net.Sockets.Socket:BeginSendFile(System.String,System.AsyncCallback,System.Object):System.IAsyncResult:this ```diff ; Assembly listing for method System.Net.Sockets.Socket:BeginSendFile(System.String,System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code -; rsp based frame +; rbp based frame ; partially interruptible ; No PGO data +; 0 inlinees with PGO data; 6 single block inlinees; 5 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T00] ( 3, 3 ) ref -> rdi this class-hnd single-def -; V01 arg1 [V01,T01] ( 3, 3 ) ref -> rsi class-hnd single-def -; V02 arg2 [V02,T02] ( 3, 3 ) ref -> rdx class-hnd single-def -; V03 arg3 [V03,T03] ( 3, 3 ) ref -> rcx class-hnd single-def -; V04 OutArgs [V04 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" +; V00 this [V00,T00] ( 7, 6 ) ref -> rbx this class-hnd single-def +; V01 arg1 [V01,T01] ( 3, 3 ) ref -> r15 class-hnd single-def +; V02 arg2 [V02,T02] ( 3, 3 ) ref -> r14 class-hnd single-def +; V03 arg3 [V03,T03] ( 3, 3 ) ref -> r13 class-hnd single-def +; V04 OutArgs [V04 ] ( 1, 1 ) struct (16) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" +; V05 tmp1 [V05 ] ( 5, 10 ) struct (16) [rbp-0x30] do-not-enreg[SFA] multireg-arg must-init "impAppendStmt" +;* V06 tmp2 [V06 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" +; V07 tmp3 [V07 ] ( 5, 10 ) struct (16) [rbp-0x40] do-not-enreg[SFA] multireg-arg must-init "impAppendStmt" +;* V08 tmp4 [V08 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SR] multireg-ret "Return value temp for multireg return" +; V09 tmp5 [V09 ] ( 3, 2.50) struct (16) [rbp-0x50] do-not-enreg[XSR] multireg-ret must-init addr-exposed ld-addr-op "Inline stloc first use temp" +; V10 tmp6 [V10,T15] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" +;* V11 tmp7 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V12 tmp8 [V12 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" +;* V13 tmp9 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" +; V14 tmp10 [V14,T12] ( 3, 2 ) ref -> rax class-hnd "Inline return value spill temp" +; V15 tmp11 [V15,T10] ( 4, 3 ) ref -> rbx class-hnd single-def "Inline stloc first use temp" +; V16 tmp12 [V16,T11] ( 4, 2 ) ref -> rdi +; V17 tmp13 [V17,T13] ( 2, 2 ) ref -> rax class-hnd single-def "dup spill" +;* V18 tmp14 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" +; V19 tmp15 [V19,T04] ( 3, 5 ) ref -> [rbp-0x30] do-not-enreg[] "field V05._object (fldOffset=0x0)" P-DEP +; V20 tmp16 [V20,T06] ( 3, 5 ) int -> [rbp-0x28] do-not-enreg[] "field V05._index (fldOffset=0x8)" P-DEP +; V21 tmp17 [V21,T07] ( 3, 5 ) int -> [rbp-0x24] do-not-enreg[] "field V05._length (fldOffset=0xc)" P-DEP +;* V22 tmp18 [V22,T14] ( 0, 0 ) ref -> zero-ref single-def "field V06._source (fldOffset=0x0)" P-INDEP +; V23 tmp19 [V23,T05] ( 3, 5 ) ref -> [rbp-0x40] do-not-enreg[] "field V07._object (fldOffset=0x0)" P-DEP +; V24 tmp20 [V24,T08] ( 3, 5 ) int -> [rbp-0x38] do-not-enreg[] "field V07._index (fldOffset=0x8)" P-DEP +; V25 tmp21 [V25,T09] ( 3, 5 ) int -> [rbp-0x34] do-not-enreg[] "field V07._length (fldOffset=0xc)" P-DEP +; V26 tmp22 [V26 ] ( 3, 2.50) ref -> [rbp-0x50] do-not-enreg[X] addr-exposed "field V09._obj (fldOffset=0x0)" P-DEP +; V27 tmp23 [V27 ] ( 2, 1.50) short -> [rbp-0x48] do-not-enreg[X] addr-exposed "field V09._token (fldOffset=0x8)" P-DEP +; V28 tmp24 [V28 ] ( 2, 1.50) ubyte -> [rbp-0x46] do-not-enreg[X] addr-exposed "field V09._continueOnCapturedContext (fldOffset=0xa)" P-DEP +;* V29 tmp25 [V29 ] ( 0, 0 ) ref -> zero-ref single-def "field V12._object (fldOffset=0x0)" P-INDEP +;* V30 tmp26 [V30 ] ( 0, 0 ) int -> zero-ref "field V12._index (fldOffset=0x8)" P-INDEP +;* V31 tmp27 [V31 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0xc)" P-INDEP +;* V32 tmp28 [V32 ] ( 0, 0 ) ref -> zero-ref single-def "field V13._object (fldOffset=0x0)" P-INDEP +;* V33 tmp29 [V33 ] ( 0, 0 ) int -> zero-ref "field V13._index (fldOffset=0x8)" P-INDEP +;* V34 tmp30 [V34 ] ( 0, 0 ) int -> zero-ref "field V13._length (fldOffset=0xc)" P-INDEP +; V35 tmp31 [V35,T16] ( 2, 0 ) ref -> rsi single-def "argument with side effect" ; -; Lcl frame size = 8 +; Lcl frame size = 64 G_M59604_IG01: - push rax - ;; size=1 bbWeight=1 PerfScore 1.00 + push rbp + push r15 + push r14 + push r13 + push rbx + sub rsp, 64 + lea rbp, [rsp+0x60] + vxorps xmm8, xmm8, xmm8 + vmovdqu ymmword ptr [rbp-0x50], ymm8 + vmovdqa xmmword ptr [rbp-0x30], xmm8 + mov rbx, rdi + mov r15, rsi + mov r14, rdx + mov r13, rcx + ;; size=44 bbWeight=1 PerfScore 11.08 G_M59604_IG02: - mov gword ptr [rsp], rcx - mov r9, rdx + cmp dword ptr [rbx+0x60], 0 + jne G_M59604_IG15 + mov rdi, rbx + mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:CheckNonBlockingConnectCompleted():this + call [rax]System.Net.Sockets.Socket:CheckNonBlockingConnectCompleted():this + cmp byte ptr [rbx+0x64], 0 + je G_M59604_IG16 xor rdx, rdx - xor rcx, rcx - xor r8d, r8d - mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:BeginSendFile(System.String,ubyte[],ubyte[],int,System.AsyncCallback,System.Object):System.IAsyncResult:this - call [rax]System.Net.Sockets.Socket:BeginSendFile(System.String,ubyte[],ubyte[],int,System.AsyncCallback,System.Object):System.IAsyncResult:this - nop - ;; size=27 bbWeight=1 PerfScore 5.50 + mov gword ptr [rbp-0x30], rdx + ;; size=41 bbWeight=1 PerfScore 12.75 G_M59604_IG03: - add rsp, 8 + mov dword ptr [rbp-0x28], edx + ;; size=3 bbWeight=1 PerfScore 1.00 +G_M59604_IG04: + mov dword ptr [rbp-0x24], edx + ;; size=3 bbWeight=1 PerfScore 1.00 +G_M59604_IG05: + mov gword ptr [rbp-0x40], rdx + ;; size=4 bbWeight=1 PerfScore 1.00 +G_M59604_IG06: + mov dword ptr [rbp-0x38], edx + ;; size=3 bbWeight=1 PerfScore 1.00 +G_M59604_IG07: + mov dword ptr [rbp-0x34], edx + ;; size=3 bbWeight=1 PerfScore 1.00 +G_M59604_IG08: + mov dword ptr [rsp], edx + ;; size=3 bbWeight=1 PerfScore 1.00 +G_M59604_IG09: + mov gword ptr [rsp+0x08], rdx + mov rdx, gword ptr [rbp-0x30] + mov rcx, qword ptr [rbp-0x28] + mov r8, gword ptr [rbp-0x40] + mov r9, qword ptr [rbp-0x38] + mov rdi, rbx + mov rsi, r15 + mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:SendFileAsync(System.String,System.ReadOnlyMemory`1[ubyte],System.ReadOnlyMemory`1[ubyte],int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this + call [rax]System.Net.Sockets.Socket:SendFileAsync(System.String,System.ReadOnlyMemory`1[ubyte],System.ReadOnlyMemory`1[ubyte],int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this + mov gword ptr [rbp-0x50], rax + mov qword ptr [rbp-0x48], rdx + mov rbx, gword ptr [rbp-0x50] + test rbx, rbx + je SHORT G_M59604_IG11 + ;; size=56 bbWeight=1 PerfScore 13.00 +G_M59604_IG10: + mov rsi, rbx + mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task + mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS + call [rax]CORINFO_HELP_ISINSTANCEOFCLASS + mov rdi, rax + test rdi, rdi + jne SHORT G_M59604_IG12 + lea rdi, [rbp-0x50] + mov rsi, rbx + mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.ValueTask:GetTaskForValueTaskSource(System.Threading.Tasks.Sources.IValueTaskSource):System.Threading.Tasks.Task:this + call [rax]System.Threading.Tasks.ValueTask:GetTaskForValueTaskSource(System.Threading.Tasks.Sources.IValueTaskSource):System.Threading.Tasks.Task:this + jmp SHORT G_M59604_IG13 + ;; size=54 bbWeight=0.50 PerfScore 5.62 +G_M59604_IG11: + mov rax, 0xD1FFAB1E ; const ptr + mov rdi, gword ptr [rax] + ;; size=13 bbWeight=0.50 PerfScore 1.12 +G_M59604_IG12: + mov rax, rdi + ;; size=3 bbWeight=0.50 PerfScore 0.12 +G_M59604_IG13: + mov rdi, rax + mov rsi, r14 + mov rdx, r13 + mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.TaskToAsyncResult:Begin(System.Threading.Tasks.Task,System.AsyncCallback,System.Object):System.IAsyncResult + call [rax]System.Threading.Tasks.TaskToAsyncResult:Begin(System.Threading.Tasks.Task,System.AsyncCallback,System.Object):System.IAsyncResult + nop + ;; size=22 bbWeight=1 PerfScore 4.25 +G_M59604_IG14: + add rsp, 64 + pop rbx + pop r13 + pop r14 + pop r15 + pop rbp ret - ;; size=5 bbWeight=1 PerfScore 1.25 + ;; size=13 bbWeight=1 PerfScore 3.75 +G_M59604_IG15: + mov rdi, rbx + mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowObjectDisposedException(System.Object) + call [rax]System.ThrowHelper:ThrowObjectDisposedException(System.Object) + int3 + ;; size=16 bbWeight=0 PerfScore 0.00 +G_M59604_IG16: + mov rdi, 0xD1FFAB1E ; System.NotSupportedException + call CORINFO_HELP_NEWSFAST + mov rbx, rax + mov rax, 0xD1FFAB1E ; code for System.SR:get_net_notconnected():System.String + call [rax]System.SR:get_net_notconnected():System.String + mov rsi, rax + mov rdi, rbx + mov rax, 0xD1FFAB1E ; code for System.NotSupportedException:.ctor(System.String):this + call [rax]System.NotSupportedException:.ctor(System.String):this + mov rdi, rbx + call CORINFO_HELP_THROW + int3 + ;; size=57 bbWeight=0 PerfScore 0.00 -; Total bytes of code 33, prolog size 1, PerfScore 7.75, instruction count 11, allocated bytes for code 33 (MethodHash=c439172b) for method System.Net.Sockets.Socket:BeginSendFile(System.String,System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts) +; Total bytes of code 338, prolog size 32, PerfScore 57.71, instruction count 87, allocated bytes for code 338 (MethodHash=c439172b) for method System.Net.Sockets.Socket:BeginSendFile(System.String,System.AsyncCallback,System.Object):System.IAsyncResult: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/8e42ca25de2d13f162e13accfce36864

MihuBot commented 6 months ago

Top method improvements

-1757 (-90.47 % of base) - System.Net.Security.NegotiateAuthentication:CheckSpn():ubyte:this ```diff ; Assembly listing for method System.Net.Security.NegotiateAuthentication:CheckSpn():ubyte:this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame -; fully interruptible +; partially interruptible ; No PGO data -; 0 inlinees with PGO data; 39 single block inlinees; 13 inlinees without PGO data +; 0 inlinees with PGO data; 6 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T01] ( 22, 16 ) ref -> rbx this class-hnd single-def -; V01 loc0 [V01,T22] ( 5, 2.50) ref -> r15 class-hnd exact single-def -; V02 loc1 [V02,T71] ( 3, 1.50) ubyte -> r15 -; V03 loc2 [V03,T10] ( 6, 9 ) ref -> [rbp-0x30] class-hnd EH-live spill-single-def -;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact -; V05 loc4 [V05,T70] ( 6, 1.50) ref -> rax class-hnd -;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -;* V07 tmp1 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V08 tmp2 [V08,T15] ( 4, 5.50) ref -> rax single-def "spilling varStr" -; V09 tmp3 [V09,T23] ( 2, 2 ) int -> rdi "spilling unroll qmark" -;* V10 tmp4 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V11 tmp5 [V11,T25] ( 2, 2 ) ref -> r15 class-hnd exact single-def "impAppendStmt" -; V12 tmp6 [V12,T26] ( 2, 2 ) ref -> r14 class-hnd exact single-def "Inlining Arg" -; V13 tmp7 [V13,T27] ( 2, 2 ) ref -> rbx class-hnd exact single-def "non-inline candidate call" -;* V14 tmp8 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" -; V15 tmp9 [V15,T72] ( 2, 1 ) ref -> rdi single-def -;* V16 tmp10 [V16,T104] ( 0, 0 ) int -> zero-ref -; V17 tmp11 [V17,T73] ( 2, 1 ) ref -> rdx single-def -;* V18 tmp12 [V18,T94] ( 0, 0 ) ref -> zero-ref single-def -; V19 tmp13 [V19,T28] ( 2, 2 ) ref -> r8 class-hnd exact single-def "Inlining Arg" -;* V20 tmp14 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" -;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V22 tmp16 [V22,T29] ( 2, 2 ) ref -> r15 class-hnd exact single-def "impAppendStmt" -; V23 tmp17 [V23,T30] ( 2, 2 ) ref -> r14 class-hnd exact single-def "Inlining Arg" -; V24 tmp18 [V24,T31] ( 2, 2 ) ref -> rbx class-hnd exact single-def "non-inline candidate call" -;* V25 tmp19 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" -; V26 tmp20 [V26,T74] ( 2, 1 ) ref -> rdi single-def -;* V27 tmp21 [V27,T105] ( 0, 0 ) int -> zero-ref -; V28 tmp22 [V28,T75] ( 2, 1 ) ref -> rdx single-def -;* V29 tmp23 [V29,T95] ( 0, 0 ) ref -> zero-ref single-def -; V30 tmp24 [V30,T32] ( 2, 2 ) ref -> r8 class-hnd exact single-def "Inlining Arg" -;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" -;* V32 tmp26 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V33 tmp27 [V33,T33] ( 2, 2 ) ref -> r15 class-hnd exact single-def "impAppendStmt" -; V34 tmp28 [V34,T34] ( 2, 2 ) ref -> r14 class-hnd exact single-def "Inlining Arg" -; V35 tmp29 [V35,T35] ( 2, 2 ) ref -> rbx class-hnd exact single-def "non-inline candidate call" -;* V36 tmp30 [V36 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" -; V37 tmp31 [V37,T76] ( 2, 1 ) ref -> rdi single-def -;* V38 tmp32 [V38,T106] ( 0, 0 ) int -> zero-ref -; V39 tmp33 [V39,T77] ( 2, 1 ) ref -> rdx single-def -;* V40 tmp34 [V40,T96] ( 0, 0 ) ref -> zero-ref single-def -; V41 tmp35 [V41,T36] ( 2, 2 ) ref -> r8 class-hnd exact single-def "Inlining Arg" -;* V42 tmp36 [V42 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" -;* V43 tmp37 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V44 tmp38 [V44,T37] ( 2, 2 ) ref -> r15 class-hnd exact single-def "impAppendStmt" -; V45 tmp39 [V45,T38] ( 2, 2 ) ref -> r14 class-hnd exact single-def "Inlining Arg" -; V46 tmp40 [V46,T39] ( 2, 2 ) ref -> rbx class-hnd exact single-def "non-inline candidate call" -;* V47 tmp41 [V47 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" -; V48 tmp42 [V48,T78] ( 2, 1 ) ref -> rdi single-def -;* V49 tmp43 [V49,T107] ( 0, 0 ) int -> zero-ref -; V50 tmp44 [V50,T79] ( 2, 1 ) ref -> rdx single-def -;* V51 tmp45 [V51,T97] ( 0, 0 ) ref -> zero-ref single-def -; V52 tmp46 [V52,T40] ( 2, 2 ) ref -> r8 class-hnd exact single-def "Inlining Arg" -;* V53 tmp47 [V53,T108] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" -;* V54 tmp48 [V54 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" -;* V55 tmp49 [V55 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V56 tmp50 [V56,T41] ( 2, 2 ) ref -> r15 class-hnd exact single-def "impAppendStmt" -; V57 tmp51 [V57,T42] ( 2, 2 ) ref -> r14 class-hnd exact single-def "Inlining Arg" -; V58 tmp52 [V58,T43] ( 2, 2 ) ref -> rbx class-hnd exact single-def "non-inline candidate call" -;* V59 tmp53 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" -; V60 tmp54 [V60,T80] ( 2, 1 ) ref -> rdi single-def -;* V61 tmp55 [V61,T109] ( 0, 0 ) int -> zero-ref -; V62 tmp56 [V62,T81] ( 2, 1 ) ref -> rdx single-def -;* V63 tmp57 [V63,T98] ( 0, 0 ) ref -> zero-ref single-def -; V64 tmp58 [V64,T44] ( 2, 2 ) ref -> r8 class-hnd exact single-def "Inlining Arg" -;* V65 tmp59 [V65 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V66 tmp60 [V66,T45] ( 2, 2 ) ref -> r15 class-hnd exact single-def "impAppendStmt" -; V67 tmp61 [V67,T46] ( 2, 2 ) ref -> r14 class-hnd exact single-def "Inlining Arg" -; V68 tmp62 [V68,T47] ( 2, 2 ) ref -> rbx class-hnd exact single-def "non-inline candidate call" -;* V69 tmp63 [V69 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" -; V70 tmp64 [V70,T82] ( 2, 1 ) ref -> rdi single-def -;* V71 tmp65 [V71,T110] ( 0, 0 ) int -> zero-ref -; V72 tmp66 [V72,T83] ( 2, 1 ) ref -> rdx single-def -;* V73 tmp67 [V73,T99] ( 0, 0 ) ref -> zero-ref single-def -; V74 tmp68 [V74,T48] ( 2, 2 ) ref -> r8 class-hnd exact single-def "Inlining Arg" -;* V75 tmp69 [V75 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V76 tmp70 [V76,T49] ( 2, 2 ) ref -> r12 class-hnd exact single-def "impAppendStmt" -; V77 tmp71 [V77,T50] ( 2, 2 ) ref -> r13 class-hnd exact single-def "Inlining Arg" -; V78 tmp72 [V78,T51] ( 2, 2 ) ref -> [rbp-0x38] class-hnd exact spill-single-def "non-inline candidate call" -;* V79 tmp73 [V79 ] ( 0, 0 ) ref -> zero-ref single-def -;* V80 tmp74 [V80 ] ( 0, 0 ) int -> zero-ref -;* V81 tmp75 [V81 ] ( 0, 0 ) ref -> zero-ref single-def -; V82 tmp76 [V82,T84] ( 2, 1 ) ref -> rcx -; V83 tmp77 [V83,T52] ( 2, 2 ) ref -> r8 class-hnd exact single-def "Inlining Arg" -;* V84 tmp78 [V84 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" -;* V85 tmp79 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V86 tmp80 [V86,T53] ( 2, 2 ) ref -> r14 class-hnd exact single-def "impAppendStmt" -; V87 tmp81 [V87,T54] ( 2, 2 ) ref -> r13 class-hnd exact single-def "Inlining Arg" -; V88 tmp82 [V88,T55] ( 2, 2 ) ref -> rbx class-hnd exact single-def "non-inline candidate call" -;* V89 tmp83 [V89 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" -; V90 tmp84 [V90,T85] ( 2, 1 ) ref -> rdi single-def -;* V91 tmp85 [V91,T111] ( 0, 0 ) int -> zero-ref -; V92 tmp86 [V92,T86] ( 2, 1 ) ref -> rdx single-def -;* V93 tmp87 [V93,T100] ( 0, 0 ) ref -> zero-ref single-def -; V94 tmp88 [V94,T56] ( 2, 2 ) ref -> r8 class-hnd exact single-def "Inlining Arg" -; V95 tmp89 [V95,T57] ( 2, 2 ) ref -> r12 class-hnd exact single-def "impAppendStmt" -; V96 tmp90 [V96,T58] ( 2, 2 ) ref -> r13 class-hnd exact single-def "Inlining Arg" -; V97 tmp91 [V97,T59] ( 2, 2 ) ref -> [rbp-0x40] class-hnd exact spill-single-def "non-inline candidate call" -;* V98 tmp92 [V98 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" -; V99 tmp93 [V99,T87] ( 2, 1 ) ref -> rdi single-def -;* V100 tmp94 [V100,T112] ( 0, 0 ) int -> zero-ref -; V101 tmp95 [V101,T88] ( 2, 1 ) ref -> rdx single-def -;* V102 tmp96 [V102,T101] ( 0, 0 ) ref -> zero-ref single-def -; V103 tmp97 [V103,T60] ( 2, 2 ) ref -> r8 class-hnd exact single-def "Inlining Arg" -;* V104 tmp98 [V104 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" -; V105 tmp99 [V105,T61] ( 2, 2 ) ref -> r14 class-hnd exact single-def "impAppendStmt" -; V106 tmp100 [V106,T62] ( 2, 2 ) ref -> r13 class-hnd exact single-def "Inlining Arg" -; V107 tmp101 [V107,T63] ( 2, 2 ) ref -> rbx class-hnd exact single-def "non-inline candidate call" -;* V108 tmp102 [V108 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" -; V109 tmp103 [V109,T89] ( 2, 1 ) ref -> rdi single-def -;* V110 tmp104 [V110,T113] ( 0, 0 ) int -> zero-ref -; V111 tmp105 [V111,T90] ( 2, 1 ) ref -> rdx single-def -;* V112 tmp106 [V112,T102] ( 0, 0 ) ref -> zero-ref single-def -; V113 tmp107 [V113,T64] ( 2, 2 ) ref -> r8 class-hnd exact single-def "Inlining Arg" -; V114 tmp108 [V114,T65] ( 2, 2 ) ref -> r12 class-hnd exact single-def "impAppendStmt" -; V115 tmp109 [V115,T66] ( 2, 2 ) ref -> r13 class-hnd exact single-def "Inlining Arg" -; V116 tmp110 [V116,T67] ( 2, 2 ) ref -> [rbp-0x48] class-hnd exact spill-single-def "non-inline candidate call" -;* V117 tmp111 [V117 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" -; V118 tmp112 [V118,T91] ( 2, 1 ) ref -> rdi single-def -;* V119 tmp113 [V119,T114] ( 0, 0 ) int -> zero-ref -; V120 tmp114 [V120,T92] ( 2, 1 ) ref -> rdx single-def -;* V121 tmp115 [V121,T103] ( 0, 0 ) ref -> zero-ref single-def -; V122 tmp116 [V122,T68] ( 2, 2 ) ref -> r8 class-hnd exact single-def "Inlining Arg" -;* V123 tmp117 [V123 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" -; V124 tmp118 [V124,T04] ( 2, 16 ) ref -> [rbp-0x50] class-hnd exact spill-single-def "impAppendStmt" -; V125 tmp119 [V125,T05] ( 2, 16 ) ref -> r12 class-hnd exact "Inlining Arg" -; V126 tmp120 [V126,T06] ( 2, 16 ) ref -> [rbp-0x58] class-hnd exact spill-single-def "non-inline candidate call" -;* V127 tmp121 [V127 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "dup spill" -; V128 tmp122 [V128,T12] ( 2, 8 ) ref -> rdi -;* V129 tmp123 [V129,T18] ( 0, 0 ) int -> zero-ref -; V130 tmp124 [V130,T13] ( 2, 8 ) ref -> rdx -;* V131 tmp125 [V131,T17] ( 0, 0 ) ref -> zero-ref -; V132 tmp126 [V132,T07] ( 2, 16 ) ref -> r8 class-hnd exact "Inlining Arg" -; V133 tmp127 [V133,T69] ( 2, 2 ) int -> r15 "Single return block return value" -; V134 tmp128 [V134,T14] ( 3, 6 ) ref -> rdi single-def "argument with side effect" -; V135 tmp129 [V135,T19] ( 3, 3 ) ref -> rdi single-def "argument with side effect" -; V136 tmp130 [V136,T20] ( 3, 3 ) ref -> rdi single-def "argument with side effect" -; V137 tmp131 [V137,T21] ( 3, 3 ) ref -> rdi single-def "argument with side effect" -; V138 tmp132 [V138,T03] ( 3, 16 ) ref -> rax "argument with side effect" -; V139 tmp133 [V139,T08] ( 2, 16 ) ref -> rsi "argument with side effect" -; V140 PSPSym [V140,T93] ( 1, 1 ) long -> [rbp-0x60] do-not-enreg[V] "PSPSym" -; V141 cse0 [V141,T02] ( 27, 17 ) ref -> registers multi-def "CSE #01: aggressive" -; V142 cse1 [V142,T24] ( 4, 2 ) ref -> r15 "CSE #04: conservative" -;* V143 cse2 [V143,T09] ( 0, 0 ) ref -> zero-ref multi-def "CSE #03: aggressive" -; V144 cse3 [V144,T16] ( 2, 4.25) ref -> r13 hoist "CSE #06: moderate" -; V145 rat0 [V145,T00] ( 4, 28 ) ref -> rsi "replacement local" -; V146 rat1 [V146,T11] ( 3, 8 ) long -> rdi "CSE for expectedClsNode" -; V147 rat2 [V147,T115] ( 3, 3 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable" +; V00 this [V00,T00] ( 8, 5.50) ref -> rbx this class-hnd single-def +; V01 loc0 [V01,T05] ( 4, 2 ) ref -> rsi class-hnd exact single-def +;* V02 loc1 [V02 ] ( 0, 0 ) ubyte -> zero-ref +;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" +;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" +; V05 tmp2 [V05,T02] ( 4, 5.50) ref -> rax single-def "spilling varStr" +; V06 tmp3 [V06,T04] ( 2, 2 ) int -> rdi "spilling unroll qmark" +;* V07 tmp4 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" +;* V08 tmp5 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" +;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" +;* V10 tmp7 [V10,T08] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" +;* V11 tmp8 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" +;* V12 tmp9 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" +; V13 tmp10 [V13,T07] ( 2, 2 ) int -> rax "Single return block return value" +; V14 tmp11 [V14,T01] ( 3, 6 ) ref -> rdi single-def "argument with side effect" +; V15 tmp12 [V15,T03] ( 3, 3 ) ref -> rdi single-def "argument with side effect" +; V16 cse0 [V16,T06] ( 4, 2 ) ref -> rdi "CSE #01: moderate" +; V17 rat0 [V17,T09] ( 3, 3 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable" ; -; Lcl frame size = 56 +; Lcl frame size = 8 G_M20511_IG01: push rbp - push r15 - push r14 - push r13 - push r12 push rbx - sub rsp, 56 - lea rbp, [rsp+0x60] - mov qword ptr [rbp-0x60], rsp + push rax + lea rbp, [rsp+0x10] mov rbx, rdi - ;; size=26 bbWeight=1 PerfScore 8.00 + ;; size=11 bbWeight=1 PerfScore 3.75 G_M20511_IG02: mov rdi, gword ptr [rbx+0x08] mov rax, qword ptr [rdi] mov rax, qword ptr [rax+0x48] call [rax]System.Net.NegotiateAuthenticationPal:get_Package():System.String:this test rax, rax - je G_M20511_IG05 - ;; size=22 bbWeight=1 PerfScore 10.25 + je SHORT G_M20511_IG05 + ;; size=18 bbWeight=1 PerfScore 10.25 G_M20511_IG03: cmp dword ptr [rax+0x08], 8 - jne G_M20511_IG05 - ;; size=10 bbWeight=0.25 PerfScore 1.00 + jne SHORT G_M20511_IG05 + ;; size=6 bbWeight=0.25 PerfScore 1.00 G_M20511_IG04: vmovups xmm0, xmmword ptr [rax+0x0C] vpxor xmm0, xmm0, xmmword ptr [reloc @RWD00] vptest xmm0, xmm0 sete dil movzx rdi, dil test edi, edi - je G_M20511_IG05 - mov rdi, 0xD1FFAB1E ; const ptr - mov r15, gword ptr [rdi] - cmp byte ptr [r15+0x9D], 0 - je G_M20511_IG10 - mov rdi, 0xD1FFAB1E ; 'net_log_listener_no_spn_kerberos' - mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String - call [rax]System.SR:GetResourceString(System.String):System.String - mov r14, rax - mov rdi, rbx - mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:IdOf(System.Object):System.String - call [rax]System.Net.NetEventSource:IdOf(System.Object):System.String - mov rbx, rax - mov rdi, r14 - mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:Format(System.Object):System.String - call [rax]System.Net.NetEventSource:Format(System.Object):System.String - mov r8, rax - mov rdi, r15 - mov rdx, rbx - mov esi, 1 - mov rcx, 0xD1FFAB1E ; 'CheckSpn' - mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - jmp G_M20511_IG10 - ;; size=160 bbWeight=0.50 PerfScore 17.62 + jne SHORT G_M20511_IG09 + ;; size=30 bbWeight=0.50 PerfScore 5.75 G_M20511_IG05: - mov r15, gword ptr [rbx+0x18] - cmp dword ptr [r15+0x18], 0 - jne G_M20511_IG06 - mov rdi, 0xD1FFAB1E ; const ptr - mov r15, gword ptr [rdi] - cmp byte ptr [r15+0x9D], 0 - je G_M20511_IG10 - mov rdi, 0xD1FFAB1E ; 'net_log_listener_no_spn_disabled' - mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String - call [rax]System.SR:GetResourceString(System.String):System.String - mov r14, rax - mov rdi, rbx - mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:IdOf(System.Object):System.String - call [rax]System.Net.NetEventSource:IdOf(System.Object):System.String - mov rbx, rax - mov rdi, r14 - mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:Format(System.Object):System.String - call [rax]System.Net.NetEventSource:Format(System.Object):System.String - mov r8, rax - mov rdi, r15 - mov rdx, rbx - mov esi, 1 - mov rcx, 0xD1FFAB1E ; 'CheckSpn' - mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - jmp G_M20511_IG10 - ;; size=141 bbWeight=0.50 PerfScore 14.88 -G_M20511_IG06: + mov rdi, gword ptr [rbx+0x18] + cmp dword ptr [rdi+0x18], 0 + je SHORT G_M20511_IG09 cmp byte ptr [rbx+0x31], 0 - je G_M20511_IG07 - cmp dword ptr [r15+0x1C], 0 - jne G_M20511_IG07 - mov rdi, 0xD1FFAB1E ; const ptr - mov r15, gword ptr [rdi] - cmp byte ptr [r15+0x9D], 0 - je G_M20511_IG10 - mov rdi, 0xD1FFAB1E ; 'net_log_listener_no_spn_cbt' - mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String - call [rax]System.SR:GetResourceString(System.String):System.String - mov r14, rax - mov rdi, rbx - mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:IdOf(System.Object):System.String - call [rax]System.Net.NetEventSource:IdOf(System.Object):System.String - mov rbx, rax - mov rdi, r14 - mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:Format(System.Object):System.String - call [rax]System.Net.NetEventSource:Format(System.Object):System.String - mov r8, rax - mov rdi, r15 - mov rdx, rbx - mov esi, 1 - mov rcx, 0xD1FFAB1E ; 'CheckSpn' - mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - jmp G_M20511_IG10 - ;; size=147 bbWeight=0.50 PerfScore 15.88 -G_M20511_IG07: - cmp gword ptr [r15+0x08], 0 - jne G_M20511_IG08 - mov rdi, 0xD1FFAB1E ; const ptr - mov r15, gword ptr [rdi] - cmp byte ptr [r15+0x9D], 0 - je G_M20511_IG10 - mov rdi, 0xD1FFAB1E ; 'net_log_listener_no_spns' - mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String - call [rax]System.SR:GetResourceString(System.String):System.String - mov r14, rax - mov rdi, rbx - mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:IdOf(System.Object):System.String - call [rax]System.Net.NetEventSource:IdOf(System.Object):System.String - mov rbx, rax - mov rdi, r14 - mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:Format(System.Object):System.String - call [rax]System.Net.NetEventSource:Format(System.Object):System.String - mov r8, rax - mov rdi, r15 - mov rdx, rbx - mov esi, 1 - mov rcx, 0xD1FFAB1E ; 'CheckSpn' - mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - jmp G_M20511_IG10 - ;; size=137 bbWeight=0.50 PerfScore 13.88 -G_M20511_IG08: + je SHORT G_M20511_IG06 + cmp dword ptr [rdi+0x1C], 0 + je SHORT G_M20511_IG09 + ;; size=22 bbWeight=0.50 PerfScore 7.00 +G_M20511_IG06: + cmp gword ptr [rdi+0x08], 0 + je SHORT G_M20511_IG09 mov rdi, gword ptr [rbx+0x08] mov rax, qword ptr [rdi] mov rax, qword ptr [rax+0x48] call [rax+0x08]System.Net.NegotiateAuthenticationPal:get_TargetName():System.String:this - mov r15, rax - test r15, r15 - je SHORT G_M20511_IG09 - cmp dword ptr [r15+0x08], 0 - je SHORT G_M20511_IG09 - mov rdi, 0xD1FFAB1E ; const ptr - mov rdi, gword ptr [rdi] - mov r14, rdi - cmp byte ptr [r14+0x9D], 0 - je G_M20511_IG16 - jmp G_M20511_IG15 - ;; size=64 bbWeight=0.50 PerfScore 11.50 -G_M20511_IG09: - mov rdi, gword ptr [rbx+0x18] - cmp dword ptr [rdi+0x18], 1 - jne G_M20511_IG12 - mov rdi, 0xD1FFAB1E ; const ptr - mov r15, gword ptr [rdi] - cmp byte ptr [r15+0x9D], 0 - je SHORT G_M20511_IG10 - mov rdi, 0xD1FFAB1E ; 'net_log_listener_no_spn_whensupported' - mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String - call [rax]System.SR:GetResourceString(System.String):System.String - mov r14, rax - mov rdi, rbx - mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:IdOf(System.Object):System.String - call [rax]System.Net.NetEventSource:IdOf(System.Object):System.String - mov rbx, rax - mov rdi, r14 - mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:Format(System.Object):System.String - call [rax]System.Net.NetEventSource:Format(System.Object):System.String - mov r8, rax - mov rdi, r15 - mov rdx, rbx - mov esi, 1 - mov rcx, 0xD1FFAB1E ; 'CheckSpn' - mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - ;; size=131 bbWeight=0.50 PerfScore 13.88 -G_M20511_IG10: - mov eax, 1 - ;; size=5 bbWeight=0.50 PerfScore 0.12 -G_M20511_IG11: - add rsp, 56 - pop rbx - pop r12 - pop r13 - pop r14 - pop r15 - pop rbp - ret - ;; size=15 bbWeight=0.50 PerfScore 2.12 -G_M20511_IG12: - mov rdi, 0xD1FFAB1E ; const ptr - mov r15, gword ptr [rdi] - cmp byte ptr [r15+0x9D], 0 - je SHORT G_M20511_IG13 - mov rdi, 0xD1FFAB1E ; 'net_log_listener_spn_failed_always' - mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String - call [rax]System.SR:GetResourceString(System.String):System.String - mov r14, rax - mov rdi, rbx - mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:IdOf(System.Object):System.String - call [rax]System.Net.NetEventSource:IdOf(System.Object):System.String - mov rbx, rax - mov rdi, r14 - mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:Format(System.Object):System.String - call [rax]System.Net.NetEventSource:Format(System.Object):System.String - mov r8, rax - mov rdi, r15 - mov rdx, rbx - mov esi, 1 - mov rcx, 0xD1FFAB1E ; 'CheckSpn' - mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - ;; size=117 bbWeight=0.50 PerfScore 10.88 -G_M20511_IG13: - xor eax, eax - ;; size=2 bbWeight=0.50 PerfScore 0.12 -G_M20511_IG14: - add rsp, 56 - pop rbx - pop r12 - pop r13 - pop r14 - pop r15 - pop rbp - ret - ;; size=15 bbWeight=0.50 PerfScore 2.12 -G_M20511_IG15: - mov rdi, 0xD1FFAB1E ; 'net_log_listener_spn' - mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String - call [rax]System.SR:GetResourceString(System.String):System.String - mov r13, rax - mov r12, r14 - mov rdi, rbx - mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:IdOf(System.Object):System.String - call [rax]System.Net.NetEventSource:IdOf(System.Object):System.String - mov gword ptr [rbp-0x38], rax - mov rdi, r13 - mov rcx, 0xD1FFAB1E ; code for System.Net.NetEventSource:Format(System.Object):System.String - call [rcx]System.Net.NetEventSource:Format(System.Object):System.String - mov r8, rax - mov rcx, r15 - mov rdi, r12 - mov rdx, gword ptr [rbp-0x38] - mov esi, 1 - mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - ;; size=92 bbWeight=0.50 PerfScore 8.62 -G_M20511_IG16: + mov rsi, rax + test rsi, rsi + je SHORT G_M20511_IG08 + cmp dword ptr [rsi+0x08], 0 + je SHORT G_M20511_IG08 mov rdi, gword ptr [rbx+0x18] mov rdi, gword ptr [rdi+0x08] - mov rsi, r15 mov rax, 0xD1FFAB1E ; code for System.Security.Authentication.ExtendedProtection.ServiceNameCollection:Contains(System.String):ubyte:this cmp dword ptr [rdi], edi call [rax]System.Security.Authentication.ExtendedProtection.ServiceNameCollection:Contains(System.String):ubyte:this - mov r15d, eax - cmp byte ptr [r14+0x9D], 0 - je G_M20511_IG26 - test r15d, r15d - je SHORT G_M20511_IG17 - mov rdi, 0xD1FFAB1E ; 'net_log_listener_spn_passed' - mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String - call [rax]System.SR:GetResourceString(System.String):System.String - mov r13, rax - mov rdi, rbx - mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:IdOf(System.Object):System.String - call [rax]System.Net.NetEventSource:IdOf(System.Object):System.String - mov rbx, rax - mov rdi, r13 - mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:Format(System.Object):System.String - call [rax]System.Net.NetEventSource:Format(System.Object):System.String - mov r8, rax - mov rdi, r14 - mov rdx, rbx - mov esi, 1 - mov rcx, 0xD1FFAB1E ; 'CheckSpn' - mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - jmp G_M20511_IG26 - ;; size=146 bbWeight=0.50 PerfScore 16.75 -G_M20511_IG17: - mov rdi, 0xD1FFAB1E ; 'net_log_listener_spn_failed' - mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String - call [rax]System.SR:GetResourceString(System.String):System.String - mov r13, rax - mov r12, r14 - mov rdi, rbx - mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:IdOf(System.Object):System.String - call [rax]System.Net.NetEventSource:IdOf(System.Object):System.String - mov gword ptr [rbp-0x40], rax - mov rdi, r13 - mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:Format(System.Object):System.String - call [rax]System.Net.NetEventSource:Format(System.Object):System.String - mov r8, rax - mov rdi, r12 - mov r13, gword ptr [rbp-0x40] - mov rdx, r13 - mov esi, 1 - mov rcx, 0xD1FFAB1E ; 'CheckSpn' - mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - mov rdi, gword ptr [rbx+0x18] - mov rdi, gword ptr [rdi+0x08] - mov rax, qword ptr [rdi] - mov rax, qword ptr [rax+0x40] - call [rax+0x20]System.Collections.ReadOnlyCollectionBase:get_Count():int:this - test eax, eax - jne SHORT G_M20511_IG18 - mov rdi, 0xD1FFAB1E ; 'net_log_listener_spn_failed_empty' - mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String - call [rax]System.SR:GetResourceString(System.String):System.String - mov r13, rax - mov rdi, rbx - mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:IdOf(System.Object):System.String - call [rax]System.Net.NetEventSource:IdOf(System.Object):System.String - mov rbx, rax - mov rdi, r13 - mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:Format(System.Object):System.String - call [rax]System.Net.NetEventSource:Format(System.Object):System.String - mov r8, rax - mov rdi, r14 - mov rdx, rbx - mov esi, 1 - mov rcx, 0xD1FFAB1E ; 'CheckSpn' - mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - jmp G_M20511_IG26 - ;; size=223 bbWeight=0.50 PerfScore 23.62 -G_M20511_IG18: - mov rdi, 0xD1FFAB1E ; 'net_log_listener_spn_failed_dump' - mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String - call [rax]System.SR:GetResourceString(System.String):System.String - mov r13, rax - mov r12, r14 - mov rdi, rbx - mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:IdOf(System.Object):System.String - call [rax]System.Net.NetEventSource:IdOf(System.Object):System.String - mov gword ptr [rbp-0x48], rax - mov rdi, r13 - mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:Format(System.Object):System.String - call [rax]System.Net.NetEventSource:Format(System.Object):System.String - mov r8, rax - mov rdi, r12 - mov r13, gword ptr [rbp-0x48] - mov rdx, r13 - mov esi, 1 - mov rcx, 0xD1FFAB1E ; 'CheckSpn' - mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - mov rdi, gword ptr [rbx+0x18] - mov rdi, gword ptr [rdi+0x08] - mov rax, qword ptr [rdi] - mov rax, qword ptr [rax+0x48] - call [rax]System.Collections.ReadOnlyCollectionBase:GetEnumerator():System.Collections.IEnumerator:this - mov gword ptr [rbp-0x30], rax - ;; size=123 bbWeight=0.50 PerfScore 14.75 -G_M20511_IG19: - mov rdi, rax - mov r11, 0xD1FFAB1E ; function address - call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this - test eax, eax - je G_M20511_IG25 - ;; size=24 bbWeight=0.50 PerfScore 2.38 -G_M20511_IG20: - mov r13, 0xD1FFAB1E ; ' ' - ;; size=10 bbWeight=0.25 PerfScore 0.06 -G_M20511_IG21: - mov rdi, gword ptr [rbp-0x30] - mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:get_Current():System.Object:this - call [r11]System.Collections.IEnumerator:get_Current():System.Object:this - mov rsi, rax - test rsi, rsi - je SHORT G_M20511_IG24 - ;; size=25 bbWeight=4 PerfScore 23.00 -G_M20511_IG22: - mov rdi, 0xD1FFAB1E ; System.String - cmp qword ptr [rsi], rdi - je SHORT G_M20511_IG24 - ;; size=15 bbWeight=2 PerfScore 8.50 -G_M20511_IG23: - mov rsi, rax - mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS - call [rax]CORINFO_HELP_CHKCASTCLASS - int3 - ;; size=16 bbWeight=0 PerfScore 0.00 -G_M20511_IG24: - mov rdi, r13 - mov rax, 0xD1FFAB1E ; code for System.String:Concat(System.String,System.String):System.String - call [rax]System.String:Concat(System.String,System.String):System.String - mov r12, rax - mov gword ptr [rbp-0x50], r14 - mov rdi, rbx - mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:IdOf(System.Object):System.String - call [rax]System.Net.NetEventSource:IdOf(System.Object):System.String - mov gword ptr [rbp-0x58], rax - mov rdi, r12 - mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:Format(System.Object):System.String - call [rax]System.Net.NetEventSource:Format(System.Object):System.String - mov r8, rax - mov r12, gword ptr [rbp-0x50] - mov rdi, r12 - mov r12, gword ptr [rbp-0x58] - mov rdx, r12 - mov esi, 1 - mov rcx, 0xD1FFAB1E ; 'CheckSpn' - mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this - mov rdi, gword ptr [rbp-0x30] - mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this - call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this - test eax, eax - jne G_M20511_IG21 - ;; size=125 bbWeight=4 PerfScore 99.00 -G_M20511_IG25: - mov rsi, gword ptr [rbp-0x30] - mov rdi, 0xD1FFAB1E ; System.IDisposable - mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE - call [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE - test rax, rax - je SHORT G_M20511_IG26 - mov rdi, rax - mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this - call [r11]System.IDisposable:Dispose():this - ;; size=47 bbWeight=0.50 PerfScore 4.62 -G_M20511_IG26: - movzx rax, r15b - ;; size=4 bbWeight=0.50 PerfScore 0.12 -G_M20511_IG27: - add rsp, 56 + movzx rax, al + ;; size=60 bbWeight=0.50 PerfScore 14.50 +G_M20511_IG07: + add rsp, 8 pop rbx - pop r12 - pop r13 - pop r14 - pop r15 pop rbp ret - ;; size=15 bbWeight=0.50 PerfScore 2.12 -G_M20511_IG28: - 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+0x60] - ;; size=22 bbWeight=0 PerfScore 0.00 -G_M20511_IG29: - mov rsi, gword ptr [rbp-0x30] - mov rdi, 0xD1FFAB1E ; System.IDisposable - mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFINTERFACE - call [rax]CORINFO_HELP_ISINSTANCEOFINTERFACE - test rax, rax - je SHORT G_M20511_IG30 - 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_M20511_IG30: - nop - ;; size=1 bbWeight=0 PerfScore 0.00 -G_M20511_IG31: + ;; size=7 bbWeight=0.50 PerfScore 1.12 +G_M20511_IG08: + mov rax, gword ptr [rbx+0x18] + cmp dword ptr [rax+0x18], 1 + jne SHORT G_M20511_IG11 + ;; size=10 bbWeight=0.50 PerfScore 3.00 +G_M20511_IG09: + mov eax, 1 + ;; size=5 bbWeight=0.50 PerfScore 0.12 +G_M20511_IG10: + add rsp, 8 + pop rbx + pop rbp + ret + ;; size=7 bbWeight=0.50 PerfScore 1.12 +G_M20511_IG11: + xor eax, eax + ;; size=2 bbWeight=0.50 PerfScore 0.12 +G_M20511_IG12: add rsp, 8 pop rbx - pop r12 - pop r13 - pop r14 - pop r15 pop rbp ret - ;; size=15 bbWeight=0 PerfScore 0.00 + ;; size=7 bbWeight=0.50 PerfScore 1.12 RWD00 dq 006200720065004Bh, 0073006F00720065h -; Total bytes of code 1942, prolog size 26, PerfScore 325.81, instruction count 418, allocated bytes for code 1942 (MethodHash=2120afe0) for method System.Net.Security.NegotiateAuthentication:CheckSpn():ubyte:this (FullOpts) +; Total bytes of code 185, prolog size 8, PerfScore 48.88, instruction count 61, allocated bytes for code 185 (MethodHash=2120afe0) for method System.Net.Security.NegotiateAuthentication:CheckSpn():ubyte:this (FullOpts) ```

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

Note: some changes were skipped as they were likely noise.

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

MihuBot commented 6 months ago

@MihaZupan