Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[X64] [jakobbotsch] Simplify "secret stub arg" handling between JIT and EE #355

Open
MihuBot opened this issue Apr 12, 2024 · 3 comments
Open

Comments

@MihuBot
Copy link
Owner

MihuBot commented Apr 12, 2024

Build completed in 32 minutes.
dotnet/runtime#100823

Diffs

Diffs
Found 309 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 38854080
Total bytes of diff: 38848320
Total bytes of delta: -5760 (-0.01 % of base)
Total relative delta: Infinity
    diff is an improvement.
    relative diff is a regression.


Top file regressions (bytes):
         352 : System.Linq.Parallel.dasm (0.02 % of base)
         132 : System.Configuration.ConfigurationManager.dasm (0.03 % of base)
          97 : System.Private.Xml.dasm (0.00 % of base)
          94 : Microsoft.VisualBasic.Core.dasm (0.02 % of base)
          67 : System.ComponentModel.TypeConverter.dasm (0.02 % of base)
          31 : Microsoft.CSharp.dasm (0.01 % of base)
          21 : Microsoft.Extensions.DependencyModel.dasm (0.03 % of base)
          16 : System.Security.Cryptography.ProtectedData.dasm (0.31 % of base)
          11 : System.Transactions.Local.dasm (0.01 % of base)
          10 : System.Net.WebSockets.Client.dasm (0.04 % of base)
           6 : Microsoft.Extensions.Logging.Console.dasm (0.01 % of base)
           4 : System.IO.IsolatedStorage.dasm (0.02 % of base)
           1 : Microsoft.Extensions.Hosting.dasm (0.00 % of base)

Top file improvements (bytes):
       -2568 : System.Private.CoreLib.dasm (-0.04 % of base)
        -580 : System.Net.Security.dasm (-0.25 % of base)
        -567 : System.Security.Cryptography.dasm (-0.05 % of base)
        -365 : System.Net.Sockets.dasm (-0.14 % of base)
        -310 : System.Data.Odbc.dasm (-0.13 % of base)
        -198 : System.Text.Json.dasm (-0.02 % of base)
        -194 : System.DirectoryServices.Protocols.dasm (-0.13 % of base)
        -193 : System.IO.Ports.dasm (-0.39 % of base)
        -188 : System.Diagnostics.Process.dasm (-0.19 % of base)
        -145 : System.IO.Pipes.dasm (-0.37 % of base)
        -109 : System.IO.MemoryMappedFiles.dasm (-0.52 % of base)
        -103 : System.Console.dasm (-0.12 % of base)
         -93 : System.Formats.Tar.dasm (-0.07 % of base)
         -90 : System.Net.NetworkInformation.dasm (-0.17 % of base)
         -83 : System.Net.Primitives.dasm (-0.09 % of base)
         -80 : System.IO.FileSystem.Watcher.dasm (-0.29 % of base)
         -73 : System.IO.Compression.Brotli.dasm (-0.33 % of base)
         -68 : System.IO.Compression.dasm (-0.07 % of base)
         -66 : System.Net.Quic.dasm (-0.05 % of base)
         -65 : System.Composition.Convention.dasm (-0.05 % of base)
         -65 : System.ComponentModel.Composition.Registration.dasm (-0.06 % of base)
         -64 : System.ComponentModel.Composition.dasm (-0.01 % of base)
         -56 : System.Net.WebSockets.dasm (-0.05 % of base)
         -53 : System.Net.NameResolution.dasm (-0.13 % of base)
         -52 : System.IO.FileSystem.DriveInfo.dasm (-0.20 % of base)
         -42 : System.IO.Compression.ZipFile.dasm (-0.30 % of base)
         -40 : System.Runtime.InteropServices.dasm (-0.16 % of base)
         -24 : System.Net.Ping.dasm (-0.05 % of base)
         -16 : System.Threading.Tasks.Dataflow.dasm (-0.00 % of base)
         -11 : System.Diagnostics.FileVersionInfo.dasm (-0.11 % of base)
          -7 : runincontext.dasm (-0.05 % of base)
          -7 : Microsoft.Extensions.Hosting.Systemd.dasm (-0.14 % of base)
          -5 : System.Diagnostics.TraceSource.dasm (-0.01 % of base)
          -5 : System.Net.Requests.dasm (-0.00 % of base)
          -5 : System.Private.DataContractSerialization.dasm (-0.00 % of base)
          -4 : Microsoft.Extensions.Hosting.WindowsServices.dasm (-0.05 % of base)
          -2 : System.Text.Encoding.CodePages.dasm (-0.00 % of base)
          -2 : System.Reflection.Metadata.dasm (-0.00 % of base)
          -2 : System.Diagnostics.DiagnosticSource.dasm (-0.00 % of base)
          -2 : Microsoft.Extensions.DependencyInjection.dasm (-0.00 % of base)

53 total files with Code Size differences (40 improved, 13 regressed), 203 unchanged.

Top method regressions (bytes):
         168 (5.60 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:BuildAttributes(System.Collections.CollectionBase,System.Collections.ArrayList):System.DirectoryServices.Protocols.LdapMod[] (FullOpts)
         138 (10.81 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509CertificateReader+<>c:<GetPolicyData>b__63_0(Microsoft.Win32.SafeHandles.SafeX509Handle):System.Security.Cryptography.X509Certificates.PolicyData:this (FullOpts)
         121 (5.53 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenNoLock(System.Reflection.MethodInfo,ubyte):int:this (FullOpts)
         106 (6.26 % of base) : System.Private.CoreLib.dasm - System.Reflection.InvokerEmitUtil:CreateInvokeDelegate_Obj4Args(System.Reflection.MethodBase,ubyte):System.Reflection.InvokerEmitUtil+InvokeFunc_Obj4Args (FullOpts)
         101 (6.43 % of base) : System.Private.CoreLib.dasm - System.Reflection.InvokerEmitUtil:CreateInvokeDelegate_RefArgs(System.Reflection.MethodBase,ubyte):System.Reflection.InvokerEmitUtil+InvokeFunc_RefArgs (FullOpts)
          97 (5.56 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.IDOUtils:CreateInvoker(int):System.Func`4[System.Runtime.CompilerServices.CallSiteBinder,System.Object,System.Object[],System.Object] (FullOpts)
          82 (5.51 % of base) : System.Private.CoreLib.dasm - System.Reflection.InvokerEmitUtil:CreateInvokeDelegate_ObjSpanArgs(System.Reflection.MethodBase,ubyte):System.Reflection.InvokerEmitUtil+InvokeFunc_ObjSpanArgs (FullOpts)
          77 (4.38 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.Design.RuntimeLicenseContext:GetSavedLicenseKey(System.Type,System.Reflection.Assembly):System.String:this (FullOpts)
          77 (6.74 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:ValidateGenericArguments(System.Reflection.MemberInfo,System.RuntimeType[],System.Exception) (FullOpts)
          73 (8.32 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketPal:SelectViaPoll(System.Collections.IList,int,System.Collections.IList,int,System.Collections.IList,int,ulong,int,int):int (FullOpts)
          73 (4.80 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodMetadataToken(System.Reflection.ConstructorInfo):int:this (FullOpts)
          73 (6.03 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.OpenSslAsnFormatter:FormatNative(System.Security.Cryptography.Oid,ubyte[],ubyte):System.String:this (FullOpts)
          60 (7.73 % of base) : System.Net.Security.dasm - Interop+OpenSsl:AlpnServerSelectCallback(long,ulong,ulong,ulong,uint,long):int (FullOpts)
          58 (3.83 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.BerConverter:EncodingMultiByteArrayHelper(System.DirectoryServices.Protocols.SafeBerHandle,ubyte[][],ushort,ulong):int (FullOpts)
          58 (8.38 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:GetItemsCore[System.__Canon](System.ReadOnlySpan`1[System.__Canon],System.Span`1[System.__Canon]) (FullOpts)
          58 (2.54 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.XmlILGenerator:Generate(System.Xml.Xsl.Qil.QilExpression,System.Reflection.Emit.TypeBuilder):System.Xml.Xsl.XmlILCommand:this (FullOpts)
          55 (3.40 % of base) : System.Console.dasm - System.IO.StdInReader:ReadLineCore(ubyte):ubyte:this (FullOpts)
          55 (3.36 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.OpenSslDirectoryBasedStoreProvider:AddCertToStore(System.Security.Cryptography.X509Certificates.ICertificatePal):this (FullOpts)
          52 (4.08 % of base) : System.Diagnostics.Process.dasm - System.Diagnostics.Process:ForkAndExecProcess(System.Diagnostics.ProcessStartInfo,System.String,System.String[],System.String[],System.String,ubyte,uint,uint,uint[],byref,byref,byref,ubyte,ubyte):ubyte:this (FullOpts)
          49 (6.58 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventPipeInternal:Enable(System.String,int,uint,System.Diagnostics.Tracing.EventPipeProviderConfiguration[]):ulong (FullOpts)
          49 (2.45 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:BuildControlArray(System.DirectoryServices.Protocols.DirectoryControlCollection,ubyte):System.DirectoryServices.Protocols.LdapControl[] (FullOpts)
          49 (3.09 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:GetMethodBase(System.RuntimeType,long):System.Reflection.MethodBase (FullOpts)
          49 (3.96 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.OpenSslCachedSystemStoreProvider:<LoadMachineStores>g__ProcessFile|26_1(System.String,byref,byref):ubyte (FullOpts)
          46 (3.67 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ClientConfigurationSystem:EnsureInit(System.String):this (FullOpts)
          46 (4.45 % of base) : System.Private.CoreLib.dasm - System.Globalization.Normalization:IcuNormalize(System.String,int):System.String (FullOpts)
          46 (3.73 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMemberRefToken(System.Reflection.MethodBase,System.Type[]):int:this (FullOpts)
          43 (1.93 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ClientConfigPaths:.ctor(System.String,ubyte):this (FullOpts)
          43 (5.11 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ClientConfigPaths:GetTypeAndHashSuffix(System.String,ubyte):System.String (FullOpts)
          43 (2.58 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeTypeBuilder:.ctor(System.String,int,System.Type,System.Type[],System.Reflection.Emit.RuntimeModuleBuilder,int,int,System.Reflection.Emit.RuntimeTypeBuilder):this (FullOpts)
          41 (Infinity of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketAsyncEngine:UnregisterSocket(long):this (FullOpts)
          40 (4.18 % of base) : Microsoft.Extensions.Logging.Console.dasm - Microsoft.Extensions.Logging.Console.ConsoleLoggerProcessor:Enqueue(Microsoft.Extensions.Logging.Console.LogMessageEntry):ubyte:this (FullOpts)
          40 (4.19 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`2+OrderedPipeliningMergeEnumerator[System.__Canon,System.Nullable`1[int]]:TryWaitForElement(int,byref):ubyte:this (FullOpts)
          40 (6.35 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:GetItemsCore[int](System.ReadOnlySpan`1[int],System.Span`1[int]) (FullOpts)
          40 (6.34 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:GetItemsCore[long](System.ReadOnlySpan`1[long],System.Span`1[long]) (FullOpts)
          40 (6.31 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:GetItemsCore[short](System.ReadOnlySpan`1[short],System.Span`1[short]) (FullOpts)
          40 (6.34 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:GetItemsCore[System.Nullable`1[int]](System.ReadOnlySpan`1[System.Nullable`1[int]],System.Span`1[System.Nullable`1[int]]) (FullOpts)
          40 (6.36 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:GetItemsCore[ubyte](System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]) (FullOpts)
          37 (5.77 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:GetItemsCore[double](System.ReadOnlySpan`1[double],System.Span`1[double]) (FullOpts)
          37 (5.56 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:GetItemsCore[System.Numerics.Vector`1[float]](System.ReadOnlySpan`1[System.Numerics.Vector`1[float]],System.Span`1[System.Numerics.Vector`1[float]]) (FullOpts)
          34 (3.56 % of base) : System.Private.CoreLib.dasm - System.Globalization.CompareInfo:IcuGetHashCodeOfString(System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          34 (4.90 % of base) : System.Private.CoreLib.dasm - System.Reflection.RuntimeAssembly:InternalGetSatelliteAssembly(System.Reflection.Assembly,System.Globalization.CultureInfo,System.Version,ubyte):System.Reflection.Assembly (FullOpts)
          34 (2.97 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:GetInterfaceMap(System.Type):System.Reflection.InterfaceMapping:this (FullOpts)
          33 (3.13 % of base) : System.Security.Cryptography.ProtectedData.dasm - Interop+Kernel32:GetMessage(int,long):System.String (FullOpts)
          32 (3.21 % of base) : System.Private.CoreLib.dasm - System.Reflection.Assembly:LoadFromResolveHandler(System.Object,System.ResolveEventArgs):System.Reflection.Assembly (FullOpts)
          32 (3.60 % of base) : System.Private.CoreLib.dasm - System.Runtime.Loader.AssemblyLoadContext:InvokeResolveEvent(System.ResolveEventHandler,System.Reflection.RuntimeAssembly,System.String):System.Reflection.RuntimeAssembly (FullOpts)
          32 (3.88 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.OpenSslCertificateAssetDownloader:DownloadCrl(System.String,System.TimeSpan):Microsoft.Win32.SafeHandles.SafeX509CrlHandle (FullOpts)
          31 (1.63 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+ImplicitConversion:BindNubConversion(Microsoft.CSharp.RuntimeBinder.Semantics.NullableType):ubyte:this (FullOpts)
          31 (2.19 % of base) : Microsoft.Extensions.Hosting.WindowsServices.dasm - Microsoft.Extensions.Hosting.WindowsServices.WindowsServiceLifetime:WaitForStartAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts)
          31 (5.22 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcHandle:.ctor(short,System.Data.Odbc.OdbcHandle):this (FullOpts)
          31 (2.46 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.SortRequestControl:GetValue():ubyte[]:this (FullOpts)
          31 (3.10 % of base) : System.Net.Quic.dasm - System.Net.Quic.MsQuicBuffers:Initialize[System.Numerics.Vector`1[float]](System.Collections.Generic.IList`1[System.Numerics.Vector`1[float]],System.Func`2[System.Numerics.Vector`1[float],System.ReadOnlyMemory`1[ubyte]]):this (FullOpts)
          31 (3.30 % of base) : System.Private.CoreLib.dasm - System.Runtime.Loader.AssemblyLoadContext:ResolveSatelliteAssembly(System.Reflection.AssemblyName):System.Reflection.Assembly:this (FullOpts)
          31 (2.51 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.HMACCommon:ChangeKeyImpl(System.ReadOnlySpan`1[ubyte]):ubyte[]:this (FullOpts)
          31 (3.89 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:GetHexStringCore(System.Span`1[ushort],ubyte) (FullOpts)
          30 (2.95 % of base) : System.Private.CoreLib.dasm - Interop+Kernel32:GetMessage(int,long):System.String (FullOpts)
          30 (3.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.PosixSignalRegistration:OnPosixSignal(int,int):int (FullOpts)
          28 (3.85 % of base) : Microsoft.Extensions.DependencyModel.dasm - Microsoft.Extensions.DependencyModel.DependencyContextLoader:Load(System.Reflection.Assembly):Microsoft.Extensions.DependencyModel.DependencyContext:this (FullOpts)
          28 (3.24 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`2+OrderedPipeliningMergeEnumerator[double,System.Nullable`1[int]]:TryWaitForElement(int,byref):ubyte:this (FullOpts)
          28 (3.25 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`2+OrderedPipeliningMergeEnumerator[int,System.Nullable`1[int]]:TryWaitForElement(int,byref):ubyte:this (FullOpts)
          28 (3.25 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`2+OrderedPipeliningMergeEnumerator[long,System.Nullable`1[int]]:TryWaitForElement(int,byref):ubyte:this (FullOpts)
          28 (3.25 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`2+OrderedPipeliningMergeEnumerator[short,System.Nullable`1[int]]:TryWaitForElement(int,byref):ubyte:this (FullOpts)
          28 (3.25 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`2+OrderedPipeliningMergeEnumerator[System.Nullable`1[int],System.Nullable`1[int]]:TryWaitForElement(int,byref):ubyte:this (FullOpts)
          28 (3.28 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`2+OrderedPipeliningMergeEnumerator[System.Numerics.Vector`1[float],System.Nullable`1[int]]:TryWaitForElement(int,byref):ubyte:this (FullOpts)
          28 (3.25 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`2+OrderedPipeliningMergeEnumerator[ubyte,System.Nullable`1[int]]:TryWaitForElement(int,byref):ubyte:this (FullOpts)
          25 (2.11 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSchemaImporter:GetEquivalentElements(System.Xml.Schema.XmlSchemaElement):System.Xml.Schema.XmlSchemaElement[]:this (FullOpts)
          23 (3.10 % of base) : System.Private.CoreLib.dasm - Interop+Sys:GetCwd():System.String (FullOpts)
          22 (1.62 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`2[System.__Canon,System.Nullable`1[int]]:SpoolingWork():this (FullOpts)
          22 (2.91 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeFieldBuilder:.ctor(System.Reflection.Emit.RuntimeTypeBuilder,System.String,System.Type,System.Type[],System.Type[],int):this (FullOpts)
          22 (2.00 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeTypeBuilder:DefinePInvokeMethodCore(System.String,System.String,System.String,int,int,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][],int,int):System.Reflection.Emit.MethodBuilder:this (FullOpts)
          22 (2.50 % of base) : System.Private.CoreLib.dasm - System.Runtime.Loader.AssemblyLoadContext:GetFirstResolvedAssemblyFromResolvingEvent(System.Reflection.AssemblyName):System.Reflection.Assembly:this (FullOpts)
          20 (1.63 % of base) : System.Private.CoreLib.dasm - Interop+Sys:ReadLink(System.ReadOnlySpan`1[ushort]):System.String (FullOpts)
          20 (1.63 % of base) : System.Diagnostics.Process.dasm - Interop+Sys:ReadLink(System.ReadOnlySpan`1[ushort]):System.String (FullOpts)
          19 (2.24 % of base) : System.Security.Cryptography.dasm - Interop+Crypto:DsaKeyCreateByExplicitParameters(byref,ubyte[],int,ubyte[],int,ubyte[],int,ubyte[],int,ubyte[],int):ubyte (FullOpts)
          19 (2.42 % of base) : System.Security.Cryptography.dasm - Interop+Crypto:EcKeyCreateByKeyParameters(byref,System.String,ubyte[],int,ubyte[],int,ubyte[],int):int (FullOpts)
          19 (3.36 % of base) : System.Net.Security.dasm - Interop+NetSecurityNative:ImportPrincipalName(byref,System.String,int,byref):uint (FullOpts)
          19 (3.36 % of base) : System.Net.Security.dasm - Interop+NetSecurityNative:ImportUserName(byref,System.String,int,byref):uint (FullOpts)
          19 (2.75 % of base) : System.Net.Security.dasm - Interop+NetSecurityNative:InitiateCredWithPassword(byref,uint,Microsoft.Win32.SafeHandles.SafeGssNameHandle,System.String,int,byref):uint (FullOpts)
          19 (2.04 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeTypeBuilder:DefinePropertyCore(System.String,int,int,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][]):System.Reflection.Emit.PropertyBuilder:this (FullOpts)
          19 (2.81 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.DesImplementation:TryEncryptEcbCore(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte:this (FullOpts)
          19 (2.86 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.TripleDesImplementation:TryEncryptEcbCore(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte:this (FullOpts)
          17 (1.83 % of base) : System.Console.dasm - Interop+Sys:Dup(Microsoft.Win32.SafeHandles.SafeFileHandle):Microsoft.Win32.SafeHandles.SafeFileHandle (FullOpts) (2 methods)
          16 (2.95 % of base) : System.Security.Cryptography.dasm - Interop+Crypto:BioNewFile(System.String,System.String):Microsoft.Win32.SafeHandles.SafeBioHandle (FullOpts)
          16 (2.94 % of base) : System.Net.Security.dasm - Interop+NetSecurityNative:InitiateCredSpNego(byref,Microsoft.Win32.SafeHandles.SafeGssNameHandle,byref):uint (FullOpts)
          16 (3.82 % of base) : System.Console.dasm - System.ConsolePal:<TryGetCursorPosition>g__AppendToStdInReaderUntil|84_2(ubyte,System.IO.StdInReader,System.Span`1[ubyte],byref,byref):ubyte (FullOpts)
          16 (0.66 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapSessionOptions:StartTransportLayerSecurity(System.DirectoryServices.Protocols.DirectoryControlCollection):this (FullOpts)
          16 (3.66 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[double]:FindNextEntry(ulong,int):this (FullOpts)
          16 (3.66 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[int]:FindNextEntry(ulong,int):this (FullOpts)
          16 (3.66 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[long]:FindNextEntry(ulong,int):this (FullOpts)
          16 (3.66 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[short]:FindNextEntry(ulong,int):this (FullOpts)
          16 (3.66 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.Nullable`1[int]]:FindNextEntry(ulong,int):this (FullOpts)
          16 (3.66 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.Numerics.Vector`1[float]]:FindNextEntry(ulong,int):this (FullOpts)
          16 (3.66 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[ubyte]:FindNextEntry(ulong,int):this (FullOpts)
          16 (0.82 % of base) : System.IO.Ports.dasm - System.IO.Ports.SerialStream:FinishPendingIORequests(System.Nullable`1[Interop+ErrorInfo]):this (FullOpts)
          16 (1.27 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`2[double,System.Nullable`1[int]]:SpoolingWork():this (FullOpts)
          16 (1.25 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`2[int,System.Nullable`1[int]]:SpoolingWork():this (FullOpts)
          16 (1.27 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`2[long,System.Nullable`1[int]]:SpoolingWork():this (FullOpts)
          16 (1.25 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`2[short,System.Nullable`1[int]]:SpoolingWork():this (FullOpts)
          16 (1.26 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`2[System.Nullable`1[int],System.Nullable`1[int]]:SpoolingWork():this (FullOpts)
          16 (1.25 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`2[ubyte,System.Nullable`1[int]]:SpoolingWork():this (FullOpts)
          16 (1.51 % of base) : System.Net.Quic.dasm - System.Net.Quic.MsQuicBuffers:Initialize[System.__Canon](System.Collections.Generic.IList`1[System.__Canon],System.Func`2[System.__Canon,System.ReadOnlyMemory`1[ubyte]]):this (FullOpts)

Top method improvements (bytes):
        -108 (-5.45 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,ulong):int (FullOpts) (12 methods)
         -48 (-1.99 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshalling.ComVariant:Dispose():this (FullOpts)
         -45 (-5.45 % of base) : System.Net.Sockets.dasm - (dynamicClass):IL_STUB_PInvoke(long,ulong):int (FullOpts) (5 methods)
         -45 (-5.45 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,int):int (FullOpts) (5 methods)
         -45 (-5.66 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(ulong):int (FullOpts) (5 methods)
         -36 (-5.45 % of base) : System.IO.Ports.dasm - (dynamicClass):IL_STUB_PInvoke(long,int):int (FullOpts) (4 methods)
         -36 (-5.45 % of base) : System.DirectoryServices.Protocols.dasm - (dynamicClass):IL_STUB_PInvoke(long,ulong):int (FullOpts) (4 methods)
         -35 (-2.92 % of base) : System.DirectoryServices.Protocols.dasm - (dynamicClass):IL_STUB_PInvoke(long,int,ulong):int (FullOpts) (7 methods)
         -32 (-6.05 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(ulong) (FullOpts) (4 methods)
         -27 (-5.49 % of base) : System.Diagnostics.Process.dasm - (dynamicClass):IL_STUB_PInvoke(int,ulong):int (FullOpts) (3 methods)
         -27 (-5.45 % of base) : System.Net.Sockets.dasm - (dynamicClass):IL_STUB_PInvoke(long,int):int (FullOpts) (3 methods)
         -27 (-5.45 % of base) : System.Security.Cryptography.dasm - (dynamicClass):IL_STUB_PInvoke(long,ulong):int (FullOpts) (3 methods)
         -27 (-5.45 % of base) : System.Net.Security.dasm - (dynamicClass):IL_STUB_PInvoke(long,ulong):int (FullOpts) (3 methods)
         -27 (-5.66 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(long):long (FullOpts) (3 methods)
         -27 (-5.45 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(System.Runtime.CompilerServices.QCallAssembly):int (FullOpts) (3 methods)
         -27 (-5.45 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,ulong) (FullOpts) (3 methods)
         -27 (-5.66 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(ulong):ulong (FullOpts) (3 methods)
         -26 (-5.15 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke():ulong (FullOpts) (4 methods)
         -24 (-6.74 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(int):int (FullOpts) (4 methods)
         -24 (-4.37 % of base) : System.Data.Odbc.dasm - (dynamicClass):IL_STUB_PInvoke(long,int,long,int):short (FullOpts) (3 methods)
         -23 (-6.22 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(long) (FullOpts) (3 methods)
         -23 (-5.71 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(System.Runtime.CompilerServices.QCallTypeHandle):int (FullOpts) (3 methods)
         -20 (-4.66 % of base) : System.Net.Sockets.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,int,ulong):int (FullOpts) (4 methods)
         -20 (-2.92 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,ulong,int):int (FullOpts) (4 methods)
         -19 (-5.37 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke():int (FullOpts) (3 methods)
         -19 (-5.37 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke():long (FullOpts) (3 methods)
         -19 (-6.55 % of base) : System.Console.dasm - (dynamicClass):IL_STUB_PInvoke(int):int (FullOpts) (3 methods)
         -18 (-5.49 % of base) : System.Diagnostics.Process.dasm - (dynamicClass):IL_STUB_PInvoke(int,int):int (FullOpts) (2 methods)
         -18 (-5.49 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(int,System.Runtime.CompilerServices.StringHandleOnStack) (FullOpts) (2 methods)
         -18 (-5.70 % of base) : System.IO.Ports.dasm - (dynamicClass):IL_STUB_PInvoke(int):int (FullOpts) (2 methods)
         -18 (-5.70 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(int):long (FullOpts) (2 methods)
         -18 (-5.45 % of base) : System.Net.Security.dasm - (dynamicClass):IL_STUB_PInvoke(long,int) (FullOpts) (2 methods)
         -18 (-5.45 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(long,int):int (FullOpts) (2 methods)
         -18 (-5.45 % of base) : System.Security.Cryptography.dasm - (dynamicClass):IL_STUB_PInvoke(long,int):int (FullOpts) (2 methods)
         -18 (-5.45 % of base) : System.Net.Security.dasm - (dynamicClass):IL_STUB_PInvoke(long,int):int (FullOpts) (2 methods)
         -18 (-5.45 % of base) : System.Security.Cryptography.dasm - (dynamicClass):IL_STUB_PInvoke(long,int):long (FullOpts) (2 methods)
         -18 (-5.36 % of base) : System.Data.Odbc.dasm - (dynamicClass):IL_STUB_PInvoke(long,short):short (FullOpts) (2 methods)
         -18 (-5.45 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(long,System.Runtime.CompilerServices.ObjectHandleOnStack) (FullOpts) (2 methods)
         -18 (-5.45 % of base) : System.Net.Security.dasm - (dynamicClass):IL_STUB_PInvoke(long,ulong) (FullOpts) (2 methods)
         -18 (-5.45 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(long,ulong):int (FullOpts) (2 methods)
         -18 (-5.45 % of base) : System.IO.Pipes.dasm - (dynamicClass):IL_STUB_PInvoke(long,ulong):int (FullOpts) (2 methods)
         -18 (-5.45 % of base) : System.IO.MemoryMappedFiles.dasm - (dynamicClass):IL_STUB_PInvoke(long,ulong):int (FullOpts) (2 methods)
         -18 (-5.39 % of base) : System.Data.Odbc.dasm - (dynamicClass):IL_STUB_PInvoke(long,ulong):short (FullOpts) (2 methods)
         -18 (-5.66 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(long):int (FullOpts) (2 methods)
         -18 (-5.66 % of base) : System.IO.Ports.dasm - (dynamicClass):IL_STUB_PInvoke(long):int (FullOpts) (2 methods)
         -18 (-5.66 % of base) : System.Net.Sockets.dasm - (dynamicClass):IL_STUB_PInvoke(long):int (FullOpts) (2 methods)
         -18 (-5.66 % of base) : System.Security.Cryptography.dasm - (dynamicClass):IL_STUB_PInvoke(long):ulong (FullOpts) (2 methods)
         -18 (-5.45 % of base) : System.Net.WebSockets.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,int):int (FullOpts) (2 methods)
         -18 (-5.45 % of base) : System.Security.Cryptography.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,int):int (FullOpts) (2 methods)
         -18 (-5.45 % of base) : System.IO.Pipes.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,int):int (FullOpts) (2 methods)
         -18 (-5.45 % of base) : System.Diagnostics.Process.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,int):int (FullOpts) (2 methods)
         -18 (-5.45 % of base) : System.IO.Compression.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,int):int (FullOpts) (2 methods)
         -18 (-5.45 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,int):long (FullOpts) (2 methods)
         -18 (-5.45 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,long):int (FullOpts) (2 methods)
         -18 (-5.45 % of base) : System.Security.Cryptography.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,ulong):int (FullOpts) (2 methods)
         -18 (-5.45 % of base) : System.Formats.Tar.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,ulong):int (FullOpts) (2 methods)
         -18 (-5.45 % of base) : System.IO.FileSystem.DriveInfo.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,ulong):int (FullOpts) (2 methods)
         -18 (-5.45 % of base) : System.Security.Cryptography.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,ulong):long (FullOpts) (2 methods)
         -18 (-5.45 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,ulong):ulong (FullOpts) (2 methods)
         -18 (-5.66 % of base) : System.Net.Sockets.dasm - (dynamicClass):IL_STUB_PInvoke(ulong):int (FullOpts) (2 methods)
         -18 (-5.66 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(ulong):long (FullOpts) (2 methods)
         -16 (-4.44 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(System.Runtime.CompilerServices.QCallModule,int,int) (FullOpts) (2 methods)
         -16 (-4.42 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(System.Runtime.CompilerServices.QCallModule,ulong,int):int (FullOpts) (2 methods)
         -16 (-4.42 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,ulong,ulong,ulong):int (FullOpts) (2 methods)
         -16 (-4.42 % of base) : System.Net.NetworkInformation.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,ulong,ulong,ulong):int (FullOpts)
         -15 (-7.58 % of base) : System.Net.NetworkInformation.dasm - (dynamicClass):IL_STUB_PInvoke(int):int (FullOpts) (3 methods)
         -15 (-2.92 % of base) : System.Security.Cryptography.dasm - (dynamicClass):IL_STUB_PInvoke(long,ulong,ulong):int (FullOpts) (3 methods)
         -15 (-5.81 % of base) : System.Net.Quic.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,int,ulong):int (FullOpts) (3 methods)
         -15 (-5.81 % of base) : System.Net.Primitives.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,int,ulong):int (FullOpts) (3 methods)
         -15 (-2.92 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,ulong,ulong) (FullOpts) (3 methods)
         -15 (-1.86 % of base) : System.Net.Security.dasm - Microsoft.Win32.SafeHandles.SafeSslContextHandle:ReleaseHandle():ubyte:this (FullOpts)
         -14 (-4.64 % of base) : System.Security.Cryptography.dasm - (dynamicClass):IL_STUB_PInvoke():long (FullOpts) (2 methods)
         -14 (-6.57 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(int) (FullOpts) (2 methods)
         -14 (-6.64 % of base) : System.Diagnostics.Process.dasm - (dynamicClass):IL_STUB_PInvoke(ulong) (FullOpts) (2 methods)
         -14 (-3.54 % of base) : System.Security.Cryptography.dasm - Interop+Crypto:CryptoNative_X509StoreSetVerifyTime(Microsoft.Win32.SafeHandles.SafeX509StoreHandle,int,int,int,int,int,int,ubyte):int (FullOpts)
         -14 (-1.78 % of base) : System.Private.CoreLib.dasm - System.Globalization.CompareInfo:IndexOfOrdinalHelper(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,ulong,ubyte):int:this (FullOpts)
         -14 (-1.81 % of base) : System.Private.CoreLib.dasm - System.Globalization.CompareInfo:IndexOfOrdinalIgnoreCaseHelper(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,ulong,ubyte):int:this (FullOpts)
         -14 (-0.88 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeTypeBuilder:SetConstantValue(System.Reflection.Emit.RuntimeModuleBuilder,int,System.Type,System.Object) (FullOpts)
         -12 (-5.91 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke() (FullOpts) (2 methods)
         -12 (-5.91 % of base) : System.Console.dasm - (dynamicClass):IL_STUB_PInvoke():int (FullOpts) (2 methods)
         -12 (-5.91 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke():uint (FullOpts) (2 methods)
         -12 (-2.15 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(System.Runtime.CompilerServices.QCallModule,int,int,int) (FullOpts) (3 methods)
         -12 (-1.75 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.LiteHashProvider:HmacStreamAsync(System.String,System.ReadOnlySpan`1[ubyte],System.IO.Stream,System.Memory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int] (FullOpts)
         -11 (-2.41 % of base) : System.Net.Security.dasm - Interop+Crypto:CryptoNative_X509DecodeOcspToExpiration(ulong,int,System.Security.Cryptography.X509Certificates.SafeOcspRequestHandle,long,ulong,int,byref):int (FullOpts)
         -11 (-1.97 % of base) : System.Security.Cryptography.dasm - Interop+Crypto:DsaSign(Microsoft.Win32.SafeHandles.SafeDsaHandle,byref,int,byref,byref):ubyte (FullOpts)
         -11 (-1.97 % of base) : System.Security.Cryptography.dasm - Interop+Crypto:EcDsaSign(byref,int,byref,byref,Microsoft.Win32.SafeHandles.SafeEcKeyHandle):ubyte (FullOpts)
         -11 (-1.97 % of base) : System.Security.Cryptography.dasm - Interop+Crypto:EvpCipherUpdate(Microsoft.Win32.SafeHandles.SafeEvpCipherCtxHandle,byref,byref,byref,int):ubyte (FullOpts)
         -11 (-4.04 % of base) : System.Security.Cryptography.dasm - Interop+Crypto:Pbkdf2(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],int,long,System.Span`1[ubyte]):int (FullOpts)
         -11 (-2.02 % of base) : System.Net.Security.dasm - Interop+Ssl:SslSetBio(Microsoft.Win32.SafeHandles.SafeSslHandle,Microsoft.Win32.SafeHandles.SafeBioHandle,Microsoft.Win32.SafeHandles.SafeBioHandle) (FullOpts)
         -11 (-1.93 % of base) : System.Net.Sockets.dasm - Interop+Sys:SendFile(System.Runtime.InteropServices.SafeHandle,System.Runtime.InteropServices.SafeHandle,long,long,byref):int (FullOpts)
         -11 (-2.14 % of base) : System.Private.CoreLib.dasm - System.Array:CreateInstance(System.Type,int,int):System.Array (FullOpts)
         -11 (-2.82 % of base) : System.Private.CoreLib.dasm - System.IO.FileLoadException:FormatFileLoadExceptionMessage(System.String,int):System.String (FullOpts)
         -11 (-2.26 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeTypeBuilder+CustAttr:Bake(System.Reflection.Emit.RuntimeModuleBuilder,int):this (FullOpts)
         -11 (-2.32 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.HashProviderDispenser+OneShotHashProvider:HashData(System.String,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
         -11 (-1.92 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.MD5:HashData(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
         -11 (-3.55 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Pbkdf2Implementation:Fill(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],int,System.Security.Cryptography.HashAlgorithmName,System.Span`1[ubyte]) (FullOpts)
         -11 (-2.91 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Rfc2898DeriveBytes:Pbkdf2(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,System.Security.Cryptography.HashAlgorithmName) (FullOpts)
         -11 (-3.51 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Rfc2898DeriveBytes:Pbkdf2Core(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,System.Security.Cryptography.HashAlgorithmName) (FullOpts)
         -11 (-1.92 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.SHA1:HashData(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)
         -11 (-1.92 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.SHA256:HashData(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]):int (FullOpts)

Top method regressions (percentages):
          41 (Infinity of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketAsyncEngine:UnregisterSocket(long):this (FullOpts)
         138 (10.81 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.OpenSslX509CertificateReader+<>c:<GetPolicyData>b__63_0(Microsoft.Win32.SafeHandles.SafeX509Handle):System.Security.Cryptography.X509Certificates.PolicyData:this (FullOpts)
          58 (8.38 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:GetItemsCore[System.__Canon](System.ReadOnlySpan`1[System.__Canon],System.Span`1[System.__Canon]) (FullOpts)
          73 (8.32 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketPal:SelectViaPoll(System.Collections.IList,int,System.Collections.IList,int,System.Collections.IList,int,ulong,int,int):int (FullOpts)
          60 (7.73 % of base) : System.Net.Security.dasm - Interop+OpenSsl:AlpnServerSelectCallback(long,ulong,ulong,ulong,uint,long):int (FullOpts)
          77 (6.74 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:ValidateGenericArguments(System.Reflection.MemberInfo,System.RuntimeType[],System.Exception) (FullOpts)
          49 (6.58 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventPipeInternal:Enable(System.String,int,uint,System.Diagnostics.Tracing.EventPipeProviderConfiguration[]):ulong (FullOpts)
         101 (6.43 % of base) : System.Private.CoreLib.dasm - System.Reflection.InvokerEmitUtil:CreateInvokeDelegate_RefArgs(System.Reflection.MethodBase,ubyte):System.Reflection.InvokerEmitUtil+InvokeFunc_RefArgs (FullOpts)
          40 (6.36 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:GetItemsCore[ubyte](System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte]) (FullOpts)
          40 (6.35 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:GetItemsCore[int](System.ReadOnlySpan`1[int],System.Span`1[int]) (FullOpts)
          40 (6.34 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:GetItemsCore[long](System.ReadOnlySpan`1[long],System.Span`1[long]) (FullOpts)
          40 (6.34 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:GetItemsCore[System.Nullable`1[int]](System.ReadOnlySpan`1[System.Nullable`1[int]],System.Span`1[System.Nullable`1[int]]) (FullOpts)
          40 (6.31 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:GetItemsCore[short](System.ReadOnlySpan`1[short],System.Span`1[short]) (FullOpts)
         106 (6.26 % of base) : System.Private.CoreLib.dasm - System.Reflection.InvokerEmitUtil:CreateInvokeDelegate_Obj4Args(System.Reflection.MethodBase,ubyte):System.Reflection.InvokerEmitUtil+InvokeFunc_Obj4Args (FullOpts)
          73 (6.03 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.OpenSslAsnFormatter:FormatNative(System.Security.Cryptography.Oid,ubyte[],ubyte):System.String:this (FullOpts)
          37 (5.77 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:GetItemsCore[double](System.ReadOnlySpan`1[double],System.Span`1[double]) (FullOpts)
         168 (5.60 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:BuildAttributes(System.Collections.CollectionBase,System.Collections.ArrayList):System.DirectoryServices.Protocols.LdapMod[] (FullOpts)
          37 (5.56 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:GetItemsCore[System.Numerics.Vector`1[float]](System.ReadOnlySpan`1[System.Numerics.Vector`1[float]],System.Span`1[System.Numerics.Vector`1[float]]) (FullOpts)
          97 (5.56 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.IDOUtils:CreateInvoker(int):System.Func`4[System.Runtime.CompilerServices.CallSiteBinder,System.Object,System.Object[],System.Object] (FullOpts)
         121 (5.53 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenNoLock(System.Reflection.MethodInfo,ubyte):int:this (FullOpts)
          82 (5.51 % of base) : System.Private.CoreLib.dasm - System.Reflection.InvokerEmitUtil:CreateInvokeDelegate_ObjSpanArgs(System.Reflection.MethodBase,ubyte):System.Reflection.InvokerEmitUtil+InvokeFunc_ObjSpanArgs (FullOpts)
          31 (5.22 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcHandle:.ctor(short,System.Data.Odbc.OdbcHandle):this (FullOpts)
          43 (5.11 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ClientConfigPaths:GetTypeAndHashSuffix(System.String,ubyte):System.String (FullOpts)
          34 (4.90 % of base) : System.Private.CoreLib.dasm - System.Reflection.RuntimeAssembly:InternalGetSatelliteAssembly(System.Reflection.Assembly,System.Globalization.CultureInfo,System.Version,ubyte):System.Reflection.Assembly (FullOpts)
          73 (4.80 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodMetadataToken(System.Reflection.ConstructorInfo):int:this (FullOpts)
          46 (4.45 % of base) : System.Private.CoreLib.dasm - System.Globalization.Normalization:IcuNormalize(System.String,int):System.String (FullOpts)
          77 (4.38 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.Design.RuntimeLicenseContext:GetSavedLicenseKey(System.Type,System.Reflection.Assembly):System.String:this (FullOpts)
          12 (4.36 % of base) : System.Diagnostics.Process.dasm - System.Diagnostics.Process:DelayedSigChildConsoleConfiguration() (FullOpts)
          40 (4.19 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`2+OrderedPipeliningMergeEnumerator[System.__Canon,System.Nullable`1[int]]:TryWaitForElement(int,byref):ubyte:this (FullOpts)
          40 (4.18 % of base) : Microsoft.Extensions.Logging.Console.dasm - Microsoft.Extensions.Logging.Console.ConsoleLoggerProcessor:Enqueue(Microsoft.Extensions.Logging.Console.LogMessageEntry):ubyte:this (FullOpts)
          52 (4.08 % of base) : System.Diagnostics.Process.dasm - System.Diagnostics.Process:ForkAndExecProcess(System.Diagnostics.ProcessStartInfo,System.String,System.String[],System.String[],System.String,ubyte,uint,uint,uint[],byref,byref,byref,ubyte,ubyte):ubyte:this (FullOpts)
          49 (3.96 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.OpenSslCachedSystemStoreProvider:<LoadMachineStores>g__ProcessFile|26_1(System.String,byref,byref):ubyte (FullOpts)
          31 (3.89 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:GetHexStringCore(System.Span`1[ushort],ubyte) (FullOpts)
          32 (3.88 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.OpenSslCertificateAssetDownloader:DownloadCrl(System.String,System.TimeSpan):Microsoft.Win32.SafeHandles.SafeX509CrlHandle (FullOpts)
          28 (3.85 % of base) : Microsoft.Extensions.DependencyModel.dasm - Microsoft.Extensions.DependencyModel.DependencyContextLoader:Load(System.Reflection.Assembly):Microsoft.Extensions.DependencyModel.DependencyContext:this (FullOpts)
          58 (3.83 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.BerConverter:EncodingMultiByteArrayHelper(System.DirectoryServices.Protocols.SafeBerHandle,ubyte[][],ushort,ulong):int (FullOpts)
          16 (3.82 % of base) : System.Console.dasm - System.ConsolePal:<TryGetCursorPosition>g__AppendToStdInReaderUntil|84_2(ubyte,System.IO.StdInReader,System.Span`1[ubyte],byref,byref):ubyte (FullOpts)
          46 (3.73 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMemberRefToken(System.Reflection.MethodBase,System.Type[]):int:this (FullOpts)
          46 (3.67 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ClientConfigurationSystem:EnsureInit(System.String):this (FullOpts)
          16 (3.66 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[double]:FindNextEntry(ulong,int):this (FullOpts)
          16 (3.66 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[int]:FindNextEntry(ulong,int):this (FullOpts)
          16 (3.66 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[long]:FindNextEntry(ulong,int):this (FullOpts)
          16 (3.66 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[short]:FindNextEntry(ulong,int):this (FullOpts)
          16 (3.66 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.Nullable`1[int]]:FindNextEntry(ulong,int):this (FullOpts)
          16 (3.66 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.Numerics.Vector`1[float]]:FindNextEntry(ulong,int):this (FullOpts)
          16 (3.66 % of base) : System.Private.CoreLib.dasm - System.IO.Enumeration.FileSystemEnumerator`1[ubyte]:FindNextEntry(ulong,int):this (FullOpts)
          32 (3.60 % of base) : System.Private.CoreLib.dasm - System.Runtime.Loader.AssemblyLoadContext:InvokeResolveEvent(System.ResolveEventHandler,System.Reflection.RuntimeAssembly,System.String):System.Reflection.RuntimeAssembly (FullOpts)
          13 (3.58 % of base) : System.Private.CoreLib.dasm - System.StubHelpers.AsAnyMarshaler:ConvertLayoutToNative(System.Object,int):long:this (FullOpts)
          34 (3.56 % of base) : System.Private.CoreLib.dasm - System.Globalization.CompareInfo:IcuGetHashCodeOfString(System.ReadOnlySpan`1[ushort],int):int:this (FullOpts)
          10 (3.41 % of base) : System.Private.CoreLib.dasm - System.RuntimeTypeHandle:GetActivationInfo(System.RuntimeType,byref,byref,byref,byref) (FullOpts)
          30 (3.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.PosixSignalRegistration:OnPosixSignal(int,int):int (FullOpts)
          55 (3.40 % of base) : System.Console.dasm - System.IO.StdInReader:ReadLineCore(ubyte):ubyte:this (FullOpts)
          19 (3.36 % of base) : System.Net.Security.dasm - Interop+NetSecurityNative:ImportPrincipalName(byref,System.String,int,byref):uint (FullOpts)
          19 (3.36 % of base) : System.Net.Security.dasm - Interop+NetSecurityNative:ImportUserName(byref,System.String,int,byref):uint (FullOpts)
          55 (3.36 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.OpenSslDirectoryBasedStoreProvider:AddCertToStore(System.Security.Cryptography.X509Certificates.ICertificatePal):this (FullOpts)
          31 (3.30 % of base) : System.Private.CoreLib.dasm - System.Runtime.Loader.AssemblyLoadContext:ResolveSatelliteAssembly(System.Reflection.AssemblyName):System.Reflection.Assembly:this (FullOpts)
          28 (3.28 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`2+OrderedPipeliningMergeEnumerator[System.Numerics.Vector`1[float],System.Nullable`1[int]]:TryWaitForElement(int,byref):ubyte:this (FullOpts)
          28 (3.25 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`2+OrderedPipeliningMergeEnumerator[int,System.Nullable`1[int]]:TryWaitForElement(int,byref):ubyte:this (FullOpts)
          28 (3.25 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`2+OrderedPipeliningMergeEnumerator[short,System.Nullable`1[int]]:TryWaitForElement(int,byref):ubyte:this (FullOpts)
          28 (3.25 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`2+OrderedPipeliningMergeEnumerator[ubyte,System.Nullable`1[int]]:TryWaitForElement(int,byref):ubyte:this (FullOpts)
          28 (3.25 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`2+OrderedPipeliningMergeEnumerator[long,System.Nullable`1[int]]:TryWaitForElement(int,byref):ubyte:this (FullOpts)
          28 (3.25 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`2+OrderedPipeliningMergeEnumerator[System.Nullable`1[int],System.Nullable`1[int]]:TryWaitForElement(int,byref):ubyte:this (FullOpts)
          28 (3.24 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningMergeHelper`2+OrderedPipeliningMergeEnumerator[double,System.Nullable`1[int]]:TryWaitForElement(int,byref):ubyte:this (FullOpts)
          32 (3.21 % of base) : System.Private.CoreLib.dasm - System.Reflection.Assembly:LoadFromResolveHandler(System.Object,System.ResolveEventArgs):System.Reflection.Assembly (FullOpts)
          13 (3.19 % of base) : System.Net.Quic.dasm - System.Net.Quic.MsQuicApi:ConnectionStart(System.Net.Quic.MsQuicSafeHandle,System.Net.Quic.MsQuicSafeHandle,ushort,ulong,ushort):int:this (FullOpts)
          33 (3.13 % of base) : System.Security.Cryptography.ProtectedData.dasm - Interop+Kernel32:GetMessage(int,long):System.String (FullOpts)
          23 (3.10 % of base) : System.Private.CoreLib.dasm - Interop+Sys:GetCwd():System.String (FullOpts)
          31 (3.10 % of base) : System.Net.Quic.dasm - System.Net.Quic.MsQuicBuffers:Initialize[System.Numerics.Vector`1[float]](System.Collections.Generic.IList`1[System.Numerics.Vector`1[float]],System.Func`2[System.Numerics.Vector`1[float],System.ReadOnlyMemory`1[ubyte]]):this (FullOpts)
          49 (3.09 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:GetMethodBase(System.RuntimeType,long):System.Reflection.MethodBase (FullOpts)
          34 (2.97 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:GetInterfaceMap(System.Type):System.Reflection.InterfaceMapping:this (FullOpts)
          30 (2.95 % of base) : System.Private.CoreLib.dasm - Interop+Kernel32:GetMessage(int,long):System.String (FullOpts)
          16 (2.95 % of base) : System.Security.Cryptography.dasm - Interop+Crypto:BioNewFile(System.String,System.String):Microsoft.Win32.SafeHandles.SafeBioHandle (FullOpts)
          16 (2.94 % of base) : System.Net.Security.dasm - Interop+NetSecurityNative:InitiateCredSpNego(byref,Microsoft.Win32.SafeHandles.SafeGssNameHandle,byref):uint (FullOpts)
          22 (2.91 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeFieldBuilder:.ctor(System.Reflection.Emit.RuntimeTypeBuilder,System.String,System.Type,System.Type[],System.Type[],int):this (FullOpts)
          19 (2.86 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.TripleDesImplementation:TryEncryptEcbCore(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte:this (FullOpts)
          19 (2.81 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.DesImplementation:TryEncryptEcbCore(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte:this (FullOpts)
          19 (2.75 % of base) : System.Net.Security.dasm - Interop+NetSecurityNative:InitiateCredWithPassword(byref,uint,Microsoft.Win32.SafeHandles.SafeGssNameHandle,System.String,int,byref):uint (FullOpts)
          13 (2.62 % of base) : System.Console.dasm - System.ConsolePal:<TryGetCursorPosition>g__BufferUntil|84_1(ubyte,byref,byref,byref):ubyte (FullOpts)
          43 (2.58 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeTypeBuilder:.ctor(System.String,int,System.Type,System.Type[],System.Reflection.Emit.RuntimeModuleBuilder,int,int,System.Reflection.Emit.RuntimeTypeBuilder):this (FullOpts)
          58 (2.54 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.XmlILGenerator:Generate(System.Xml.Xsl.Qil.QilExpression,System.Reflection.Emit.TypeBuilder):System.Xml.Xsl.XmlILCommand:this (FullOpts)
          10 (2.54 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.OpenSslPkcsFormatReader:TryReadPkcs7Pem(System.ReadOnlySpan`1[ubyte],ubyte,byref,byref):ubyte (FullOpts)
          31 (2.51 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.HMACCommon:ChangeKeyImpl(System.ReadOnlySpan`1[ubyte]):ubyte[]:this (FullOpts)
          22 (2.50 % of base) : System.Private.CoreLib.dasm - System.Runtime.Loader.AssemblyLoadContext:GetFirstResolvedAssemblyFromResolvingEvent(System.Reflection.AssemblyName):System.Reflection.Assembly:this (FullOpts)
          13 (2.47 % of base) : System.Security.Cryptography.dasm - Interop+Crypto:CryptoNative_LoadPrivateKeyFromEngine(System.String,System.String):System.Security.Cryptography.SafeEvpPKeyHandle (FullOpts)
          13 (2.47 % of base) : System.Security.Cryptography.dasm - Interop+Crypto:CryptoNative_LoadPublicKeyFromEngine(System.String,System.String):System.Security.Cryptography.SafeEvpPKeyHandle (FullOpts)
          31 (2.46 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.SortRequestControl:GetValue():ubyte[]:this (FullOpts)
          49 (2.45 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:BuildControlArray(System.DirectoryServices.Protocols.DirectoryControlCollection,ubyte):System.DirectoryServices.Protocols.LdapControl[] (FullOpts)
          19 (2.42 % of base) : System.Security.Cryptography.dasm - Interop+Crypto:EcKeyCreateByKeyParameters(byref,System.String,ubyte[],int,ubyte[],int,ubyte[],int):int (FullOpts)
          10 (2.33 % of base) : System.Security.Cryptography.dasm - Interop+Crypto:CryptoNative_EvpMacCtxNew(Microsoft.Win32.SafeHandles.SafeEvpMacHandle):Microsoft.Win32.SafeHandles.SafeEvpMacCtxHandle (FullOpts)
          10 (2.33 % of base) : System.Security.Cryptography.dasm - Interop+Crypto:ReadX509AsDerFromBio(Microsoft.Win32.SafeHandles.SafeBioHandle):Microsoft.Win32.SafeHandles.SafeX509Handle (FullOpts)
          10 (2.33 % of base) : System.Net.Security.dasm - Interop+Ssl:SslCreate(Microsoft.Win32.SafeHandles.SafeSslContextHandle):Microsoft.Win32.SafeHandles.SafeSslHandle (FullOpts)
          10 (2.33 % of base) : System.Net.Security.dasm - Interop+Ssl:SslGetClientCAList_private(Microsoft.Win32.SafeHandles.SafeSslHandle):Microsoft.Win32.SafeHandles.SafeSharedX509NameStackHandle (FullOpts)
          10 (2.33 % of base) : System.Net.Security.dasm - Interop+Ssl:SslGetPeerCertChain(Microsoft.Win32.SafeHandles.SafeSslHandle):Microsoft.Win32.SafeHandles.SafeSharedX509StackHandle (FullOpts)
          13 (2.32 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.TripleDesImplementation:TryDecryptEcbCore(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte:this (FullOpts)
          10 (2.29 % of base) : System.Net.Security.dasm - Interop+Crypto:GetX509NameStackField_private(Microsoft.Win32.SafeHandles.SafeSharedX509NameStackHandle,int):Microsoft.Win32.SafeHandles.SafeSharedX509NameHandle (FullOpts)
          13 (2.27 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.DesImplementation:TryDecryptEcbCore(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte:this (FullOpts)
          19 (2.24 % of base) : System.Security.Cryptography.dasm - Interop+Crypto:DsaKeyCreateByExplicitParameters(byref,ubyte[],int,ubyte[],int,ubyte[],int,ubyte[],int,ubyte[],int):ubyte (FullOpts)
          10 (2.23 % of base) : System.Security.Cryptography.dasm - Interop+Crypto:CryptoNative_X509StoreCtxResetForSignatureError(Microsoft.Win32.SafeHandles.SafeX509StoreCtxHandle,byref):int (FullOpts)
          10 (2.23 % of base) : System.Security.Cryptography.dasm - Interop+Crypto:GetPkcs7Certificates(Microsoft.Win32.SafeHandles.SafePkcs7Handle,byref):int (FullOpts)
          10 (2.22 % of base) : System.Security.Cryptography.dasm - Interop+Crypto:CryptoNative_EcKeyCreateByOid(System.String):Microsoft.Win32.SafeHandles.SafeEcKeyHandle (FullOpts)

Top method improvements (percentages):
          -5 (-9.62 % of base) : System.IO.Pipes.dasm - (dynamicClass):IL_STUB_PInvoke():int (FullOpts)
          -5 (-9.62 % of base) : System.Net.Sockets.dasm - (dynamicClass):IL_STUB_PInvoke():int (FullOpts)
          -5 (-9.62 % of base) : System.Diagnostics.Process.dasm - (dynamicClass):IL_STUB_PInvoke():long (FullOpts)
          -5 (-9.62 % of base) : System.Net.Sockets.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,ulong,ulong) (FullOpts)
         -10 (-7.58 % of base) : System.Security.Cryptography.dasm - (dynamicClass):IL_STUB_PInvoke(int):int (FullOpts) (2 methods)
         -10 (-7.58 % of base) : System.Formats.Tar.dasm - (dynamicClass):IL_STUB_PInvoke(int):int (FullOpts) (2 methods)
         -10 (-7.58 % of base) : System.IO.Pipes.dasm - (dynamicClass):IL_STUB_PInvoke(int):int (FullOpts) (2 methods)
         -10 (-7.58 % of base) : System.IO.FileSystem.Watcher.dasm - (dynamicClass):IL_STUB_PInvoke(int):int (FullOpts) (2 methods)
         -10 (-7.58 % of base) : System.Diagnostics.Process.dasm - (dynamicClass):IL_STUB_PInvoke(int):int (FullOpts) (2 methods)
         -15 (-7.58 % of base) : System.Net.NetworkInformation.dasm - (dynamicClass):IL_STUB_PInvoke(int):int (FullOpts) (3 methods)
         -10 (-7.58 % of base) : System.IO.Compression.ZipFile.dasm - (dynamicClass):IL_STUB_PInvoke(int):int (FullOpts) (2 methods)
         -10 (-7.58 % of base) : System.Net.Security.dasm - (dynamicClass):IL_STUB_PInvoke(int):int (FullOpts) (2 methods)
         -10 (-7.58 % of base) : System.IO.MemoryMappedFiles.dasm - (dynamicClass):IL_STUB_PInvoke(int):int (FullOpts) (2 methods)
         -10 (-7.58 % of base) : System.Net.Sockets.dasm - (dynamicClass):IL_STUB_PInvoke(int):int (FullOpts) (2 methods)
         -10 (-7.58 % of base) : System.IO.FileSystem.DriveInfo.dasm - (dynamicClass):IL_STUB_PInvoke(int):int (FullOpts) (2 methods)
         -10 (-7.58 % of base) : System.Net.Primitives.dasm - (dynamicClass):IL_STUB_PInvoke(int):int (FullOpts) (2 methods)
          -5 (-7.35 % of base) : System.Runtime.InteropServices.dasm - System.Runtime.InteropServices.Marshalling.ComInterfaceMarshaller`1[double]:CastIUnknownToInterfaceType(long):ulong (FullOpts)
          -5 (-7.35 % of base) : System.Runtime.InteropServices.dasm - System.Runtime.InteropServices.Marshalling.ComInterfaceMarshaller`1[int]:CastIUnknownToInterfaceType(long):ulong (FullOpts)
          -5 (-7.35 % of base) : System.Runtime.InteropServices.dasm - System.Runtime.InteropServices.Marshalling.ComInterfaceMarshaller`1[long]:CastIUnknownToInterfaceType(long):ulong (FullOpts)
          -5 (-7.35 % of base) : System.Runtime.InteropServices.dasm - System.Runtime.InteropServices.Marshalling.ComInterfaceMarshaller`1[short]:CastIUnknownToInterfaceType(long):ulong (FullOpts)
          -5 (-7.35 % of base) : System.Runtime.InteropServices.dasm - System.Runtime.InteropServices.Marshalling.ComInterfaceMarshaller`1[System.Nullable`1[int]]:CastIUnknownToInterfaceType(long):ulong (FullOpts)
          -5 (-7.35 % of base) : System.Runtime.InteropServices.dasm - System.Runtime.InteropServices.Marshalling.ComInterfaceMarshaller`1[System.Numerics.Vector`1[float]]:CastIUnknownToInterfaceType(long):ulong (FullOpts)
          -5 (-7.35 % of base) : System.Runtime.InteropServices.dasm - System.Runtime.InteropServices.Marshalling.ComInterfaceMarshaller`1[ubyte]:CastIUnknownToInterfaceType(long):ulong (FullOpts)
          -5 (-6.85 % of base) : System.Net.Sockets.dasm - (dynamicClass):IL_STUB_PInvoke(int,int):int (FullOpts)
         -24 (-6.74 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(int):int (FullOpts) (4 methods)
         -14 (-6.64 % of base) : System.Diagnostics.Process.dasm - (dynamicClass):IL_STUB_PInvoke(ulong) (FullOpts) (2 methods)
         -14 (-6.57 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(int) (FullOpts) (2 methods)
         -19 (-6.55 % of base) : System.Console.dasm - (dynamicClass):IL_STUB_PInvoke(int):int (FullOpts) (3 methods)
         -23 (-6.22 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(long) (FullOpts) (3 methods)
         -32 (-6.05 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(ulong) (FullOpts) (4 methods)
         -12 (-5.91 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke() (FullOpts) (2 methods)
         -12 (-5.91 % of base) : System.Console.dasm - (dynamicClass):IL_STUB_PInvoke():int (FullOpts) (2 methods)
         -12 (-5.91 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke():uint (FullOpts) (2 methods)
          -5 (-5.81 % of base) : System.Net.Quic.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,int,int):int (FullOpts)
          -5 (-5.81 % of base) : System.Net.Sockets.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,int,int):int (FullOpts)
          -5 (-5.81 % of base) : System.Net.Primitives.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,int,int):int (FullOpts)
          -5 (-5.81 % of base) : System.Net.Quic.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,int,uint):int (FullOpts)
          -5 (-5.81 % of base) : System.Net.Sockets.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,int,uint):int (FullOpts)
          -5 (-5.81 % of base) : System.Net.Primitives.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,int,uint):int (FullOpts)
         -15 (-5.81 % of base) : System.Net.Quic.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,int,ulong):int (FullOpts) (3 methods)
         -15 (-5.81 % of base) : System.Net.Primitives.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,int,ulong):int (FullOpts) (3 methods)
          -5 (-5.81 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.DispatchWrapper:.ctor(System.Object):this (FullOpts)
          -5 (-5.75 % of base) : System.Net.Quic.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,int,ushort):int (FullOpts)
          -5 (-5.75 % of base) : System.Net.Sockets.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,int,ushort):int (FullOpts)
          -5 (-5.75 % of base) : System.Net.Primitives.dasm - (dynamicClass):IL_STUB_PInvoke(ulong,int,ushort):int (FullOpts)
          -9 (-5.73 % of base) : System.IO.Pipes.dasm - (dynamicClass):IL_STUB_PInvoke(uint):int (FullOpts)
          -9 (-5.73 % of base) : System.Formats.Tar.dasm - (dynamicClass):IL_STUB_PInvoke(uint):ulong (FullOpts)
         -23 (-5.71 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(System.Runtime.CompilerServices.QCallTypeHandle):int (FullOpts) (3 methods)
          -9 (-5.70 % of base) : System.Diagnostics.Process.dasm - (dynamicClass):IL_STUB_PInvoke(int) (FullOpts)
         -18 (-5.70 % of base) : System.IO.Ports.dasm - (dynamicClass):IL_STUB_PInvoke(int):int (FullOpts) (2 methods)
         -18 (-5.70 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(int):long (FullOpts) (2 methods)
          -9 (-5.70 % of base) : System.Security.Cryptography.dasm - (dynamicClass):IL_STUB_PInvoke(int):long (FullOpts)
          -9 (-5.70 % of base) : System.DirectoryServices.Protocols.dasm - (dynamicClass):IL_STUB_PInvoke(int):long (FullOpts)
          -9 (-5.70 % of base) : System.Diagnostics.Process.dasm - (dynamicClass):IL_STUB_PInvoke(int):long (FullOpts)
          -9 (-5.70 % of base) : Microsoft.Extensions.Logging.Console.dasm - (dynamicClass):IL_STUB_PInvoke(int):long (FullOpts)
          -9 (-5.70 % of base) : System.IO.MemoryMappedFiles.dasm - (dynamicClass):IL_STUB_PInvoke(int):long (FullOpts)
          -9 (-5.70 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(ushort) (FullOpts)
          -9 (-5.66 % of base) : System.Security.Cryptography.dasm - (dynamicClass):IL_STUB_PInvoke(long) (FullOpts)
          -9 (-5.66 % of base) : System.Net.Quic.dasm - (dynamicClass):IL_STUB_PInvoke(long) (FullOpts)
          -9 (-5.66 % of base) : System.DirectoryServices.Protocols.dasm - (dynamicClass):IL_STUB_PInvoke(long) (FullOpts)
          -9 (-5.66 % of base) : System.Net.Security.dasm - (dynamicClass):IL_STUB_PInvoke(long) (FullOpts)
          -9 (-5.66 % of base) : System.IO.Compression.Brotli.dasm - (dynamicClass):IL_STUB_PInvoke(long) (FullOpts)
          -9 (-5.66 % of base) : System.Console.dasm - (dynamicClass):IL_STUB_PInvoke(long):int (FullOpts)
         -18 (-5.66 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(long):int (FullOpts) (2 methods)
          -9 (-5.66 % of base) : System.Security.Cryptography.dasm - (dynamicClass):IL_STUB_PInvoke(long):int (FullOpts)
          -9 (-5.66 % of base) : System.IO.Pipes.dasm - (dynamicClass):IL_STUB_PInvoke(long):int (FullOpts)
          -9 (-5.66 % of base) : System.Net.NameResolution.dasm - (dynamicClass):IL_STUB_PInvoke(long):int (FullOpts)
         -18 (-5.66 % of base) : System.IO.Ports.dasm - (dynamicClass):IL_STUB_PInvoke(long):int (FullOpts) (2 methods)
          -9 (-5.66 % of base) : System.DirectoryServices.Protocols.dasm - (dynamicClass):IL_STUB_PInvoke(long):int (FullOpts)
          -9 (-5.66 % of base) : System.Net.Ping.dasm - (dynamicClass):IL_STUB_PInvoke(long):int (FullOpts)
          -9 (-5.66 % of base) : System.Net.Security.dasm - (dynamicClass):IL_STUB_PInvoke(long):int (FullOpts)
          -9 (-5.66 % of base) : System.IO.Compression.Brotli.dasm - (dynamicClass):IL_STUB_PInvoke(long):int (FullOpts)
         -18 (-5.66 % of base) : System.Net.Sockets.dasm - (dynamicClass):IL_STUB_PInvoke(long):int (FullOpts) (2 methods)
          -9 (-5.66 % of base) : Microsoft.Extensions.Hosting.WindowsServices.dasm - (dynamicClass):IL_STUB_PInvoke(long):int (FullOpts)
          -9 (-5.66 % of base) : System.Console.dasm - (dynamicClass):IL_STUB_PInvoke(long):long (FullOpts)
         -27 (-5.66 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(long):long (FullOpts) (3 methods)
          -9 (-5.66 % of base) : System.Security.Cryptography.dasm - (dynamicClass):IL_STUB_PInvoke(long):long (FullOpts)
          -9 (-5.66 % of base) : System.Net.Quic.dasm - (dynamicClass):IL_STUB_PInvoke(long):long (FullOpts)
          -9 (-5.66 % of base) : System.DirectoryServices.Protocols.dasm - (dynamicClass):IL_STUB_PInvoke(long):long (FullOpts)
          -9 (-5.66 % of base) : System.Net.Security.dasm - (dynamicClass):IL_STUB_PInvoke(long):long (FullOpts)
          -9 (-5.66 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(long):uint (FullOpts)
         -18 (-5.66 % of base) : System.Security.Cryptography.dasm - (dynamicClass):IL_STUB_PInvoke(long):ulong (FullOpts) (2 methods)
          -9 (-5.66 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(System.Runtime.CompilerServices.ObjectHandleOnStack) (FullOpts)
          -9 (-5.66 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(System.Runtime.CompilerServices.ObjectHandleOnStack):long (FullOpts)
          -9 (-5.66 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(System.Runtime.CompilerServices.StackCrawlMarkHandle):long (FullOpts)
          -9 (-5.66 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(System.Runtime.CompilerServices.StringHandleOnStack) (FullOpts)
          -9 (-5.66 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(System.Threading.ThreadHandle) (FullOpts)
          -9 (-5.66 % of base) : System.Console.dasm - (dynamicClass):IL_STUB_PInvoke(ulong) (FullOpts)
          -9 (-5.66 % of base) : System.Net.NameResolution.dasm - (dynamicClass):IL_STUB_PInvoke(ulong) (FullOpts)
          -9 (-5.66 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(ulong):double (FullOpts)
          -9 (-5.66 % of base) : System.Net.WebSockets.dasm - (dynamicClass):IL_STUB_PInvoke(ulong):int (FullOpts)
          -9 (-5.66 % of base) : System.Console.dasm - (dynamicClass):IL_STUB_PInvoke(ulong):int (FullOpts)
         -45 (-5.66 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(ulong):int (FullOpts) (5 methods)
          -9 (-5.66 % of base) : System.Security.Cryptography.dasm - (dynamicClass):IL_STUB_PInvoke(ulong):int (FullOpts)
          -9 (-5.66 % of base) : System.IO.Pipes.dasm - (dynamicClass):IL_STUB_PInvoke(ulong):int (FullOpts)
          -9 (-5.66 % of base) : System.Net.NetworkInformation.dasm - (dynamicClass):IL_STUB_PInvoke(ulong):int (FullOpts)
          -9 (-5.66 % of base) : System.IO.MemoryMappedFiles.dasm - (dynamicClass):IL_STUB_PInvoke(ulong):int (FullOpts)
         -18 (-5.66 % of base) : System.Net.Sockets.dasm - (dynamicClass):IL_STUB_PInvoke(ulong):int (FullOpts) (2 methods)
          -9 (-5.66 % of base) : System.IO.Compression.dasm - (dynamicClass):IL_STUB_PInvoke(ulong):int (FullOpts)
         -18 (-5.66 % of base) : System.Private.CoreLib.dasm - (dynamicClass):IL_STUB_PInvoke(ulong):long (FullOpts) (2 methods)

2606 total methods with Code Size differences (2271 improved, 335 regressed), 237231 unchanged.

--------------------------------------------------------------------------------

Artifacts:

@MihuBot
Copy link
Owner Author

MihuBot commented Apr 12, 2024

Top method regressions

168 (5.60 % of base) - System.DirectoryServices.Protocols.LdapConnection:BuildAttributes(System.Collections.CollectionBase,System.Collections.ArrayList):System.DirectoryServices.Protocols.LdapMod[]
 ; Assembly listing for method System.DirectoryServices.Protocols.LdapConnection:BuildAttributes(System.Collections.CollectionBase,System.Collections.ArrayList):System.DirectoryServices.Protocols.LdapMod[] (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 25 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T52] ( 11, 10.12)     ref  ->  [rbp-0x50]  class-hnd single-def <System.Collections.CollectionBase>
-;  V01 arg1         [V01,T13] ( 10, 66   )     ref  ->  [rbp-0x58]  class-hnd single-def <System.Collections.ArrayList>
-;  V02 loc0         [V02,T45] (  9, 22.50)     ref  ->  [rbp-0x60]  class-hnd <System.DirectoryServices.Protocols.LdapMod[]>
-;  V03 loc1         [V03,T49] (  5, 16.50)     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def <System.Text.UTF8Encoding>
-;  V04 loc2         [V04,T60] (  3,  3   )     ref  ->  [rbp-0x70]  class-hnd <System.DirectoryServices.Protocols.DirectoryAttributeModificationCollection>
-;  V05 loc3         [V05,T56] (  4,  7   )     ref  ->  [rbp-0x78]  class-hnd <System.DirectoryServices.Protocols.DirectoryAttributeCollection>
+;  V00 arg0         [V00,T52] ( 11, 10.12)     ref  ->  [rbp-0x90]  class-hnd single-def <System.Collections.CollectionBase>
+;  V01 arg1         [V01,T13] ( 10, 66   )     ref  ->  [rbp-0x98]  class-hnd single-def <System.Collections.ArrayList>
+;  V02 loc0         [V02,T45] (  9, 22.50)     ref  ->  [rbp-0xA0]  class-hnd <System.DirectoryServices.Protocols.LdapMod[]>
+;  V03 loc1         [V03,T49] (  5, 16.50)     ref  ->  [rbp-0xA8]  class-hnd exact spill-single-def <System.Text.UTF8Encoding>
+;  V04 loc2         [V04,T60] (  3,  3   )     ref  ->  [rbp-0xB0]  class-hnd <System.DirectoryServices.Protocols.DirectoryAttributeModificationCollection>
+;  V05 loc3         [V05,T56] (  4,  7   )     ref  ->  [rbp-0xB8]  class-hnd <System.DirectoryServices.Protocols.DirectoryAttributeCollection>
 ;* V06 loc4         [V06,T68] (  0,  0   )     int  ->  zero-ref   
-;  V07 loc5         [V07,T12] ( 17, 68   )     ref  ->  [rbp-0x80]  class-hnd <System.DirectoryServices.Protocols.DirectoryAttribute>
+;  V07 loc5         [V07,T12] ( 17, 68   )     ref  ->  [rbp-0xC0]  class-hnd <System.DirectoryServices.Protocols.DirectoryAttribute>
 ;  V08 loc6         [V08,T22] ( 12, 52   )     int  ->  [rbp-0x2C] 
-;  V09 loc7         [V09,T11] ( 15, 73.32)     ref  ->  [rbp-0x88]  class-hnd <System.DirectoryServices.Protocols.BerVal[]>
+;  V09 loc7         [V09,T11] ( 15, 73.32)     ref  ->  [rbp-0xC8]  class-hnd <System.DirectoryServices.Protocols.BerVal[]>
 ;  V10 loc8         [V10,T42] (  4, 24   )    long  ->  r15        
 ;  V11 loc9         [V11,T46] (  3, 20   )     int  ->  [rbp-0x30]  spill-single-def
 ;  V12 loc10        [V12,T14] (  8, 64   )    long  ->  r13        
 ;  V13 loc11        [V13,T07] ( 13, 88.16)     int  ->  [rbp-0x34] 
 ;  V14 loc12        [V14,T01] ( 24,146.16)     int  ->  [rbp-0x38] 
-;  V15 loc13        [V15,T20] ( 12, 56.32)     ref  ->  [rbp-0x90]  class-hnd <ubyte[]>
+;  V15 loc13        [V15,T20] ( 12, 56.32)     ref  ->  [rbp-0xD0]  class-hnd <ubyte[]>
 ;# V16 OutArgs      [V16    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V17 tmp1         [V17,T57] (  5,  5   )     ref  ->  r12         class-hnd exact single-def "NewObj constructor temp" <System.Text.UTF8Encoding>
 ;  V18 tmp2         [V18,T34] (  4, 32   )     ref  ->  rax         class-hnd exact "NewObj constructor temp" <System.DirectoryServices.Protocols.LdapMod>
 ;  V19 tmp3         [V19,T43] (  3, 24   )     ref  ->  rdi         class-hnd exact "dup spill" <System.DirectoryServices.Protocols.LdapMod>
 ;* V20 tmp4         [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.DirectoryServices.Protocols.LdapMod>
 ;* V21 tmp5         [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.DirectoryServices.Protocols.LdapMod>
 ;  V22 tmp6         [V22,T03] (  6, 96   )     ref  ->  rax         class-hnd exact "Single-def Box Helper" <System.IntPtr>
 ;  V23 tmp7         [V23,T08] (  6, 72   )     ref  ->  rax         "ISINST eval op1"
 ;* V24 tmp8         [V24,T40] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling qmarkNull" <System.String>
-;  V25 tmp9         [V25,T00] ( 10,160   )     ref  ->  [rbp-0x98]  class-hnd exact "NewObj constructor temp" <System.DirectoryServices.Protocols.BerVal>
+;  V25 tmp9         [V25,T00] ( 10,160   )     ref  ->  [rbp-0xD8]  class-hnd exact "NewObj constructor temp" <System.DirectoryServices.Protocols.BerVal>
 ;  V26 tmp10        [V26,T04] (  6, 96   )     ref  ->  rax         class-hnd exact "Single-def Box Helper" <System.IntPtr>
 ;  V27 tmp11        [V27,T54] (  2,  8   )     ref  ->  rdi         class-hnd exact "impAppendStmt" <System.DirectoryServices.Protocols.LdapMod>
 ;  V28 tmp12        [V28,T55] (  2,  8   )     ref  ->   r8         class-hnd "Inlining Arg" <System.DirectoryServices.Protocols.DirectoryAttributeModification>
 ;* V29 tmp13        [V29    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
 ;* V30 tmp14        [V30    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V31 tmp15        [V31    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;  V32 tmp16        [V32,T09] (  6, 80   )    long  ->  rdi         "Inlining Arg"
 ;  V33 tmp17        [V33,T32] (  6, 32   )    long  ->  rdi        
 ;  V34 tmp18        [V34,T24] (  6, 48   )    long  ->  rax         "Inline stloc first use temp"
 ;  V35 tmp19        [V35,T05] (  6, 96   )    long  ->  rbx         "Inlining Arg"
 ;  V36 tmp20        [V36,T06] (  6, 96   )     int  ->  r12         "Inlining Arg"
 ;* V37 tmp21        [V37    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V38 tmp22        [V38    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
 ;* V39 tmp23        [V39    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V40 tmp24        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V41 tmp25        [V41    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;  V42 tmp26        [V42,T15] (  4, 64   )   byref  ->  rsi         "Inlining Arg"
 ;  V43 tmp27        [V43,T16] (  4, 64   )    long  ->  rdx         "Inlining Arg"
 ;* V44 tmp28        [V44    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;  V45 tmp29        [V45,T10] (  6, 80   )    long  ->  rdi         "Inlining Arg"
 ;  V46 tmp30        [V46,T33] (  6, 32   )    long  ->  rdi        
 ;  V47 tmp31        [V47,T25] (  6, 48   )    long  ->  r13         "Inline stloc first use temp"
 ;* V48 tmp32        [V48    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.DirectoryServices.Protocols.BerVal>
 ;  V49 tmp33        [V49,T58] (  2,  4   )     ref  ->  rax         single-def "Single return block return value"
 ;  V50 FramesRoot   [V50,T02] ( 18,130   )    long  ->  r14         "Pinvoke FrameListRoot"
-;  V51 PInvokeFrame [V51    ] ( 20,132   )  struct (72) [rbp-0xE8]  do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
+;  V51 PInvokeFrame [V51    ] ( 20,132   )  struct (64) [rbp-0x78]  do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
 ;  V52 tmp36        [V52,T35] (  4, 32   )   byref  ->  rsi         "field V37._reference (fldOffset=0x0)" P-INDEP
 ;  V53 tmp37        [V53,T26] (  6, 48   )     int  ->  r12         "field V37._length (fldOffset=0x8)" P-INDEP
 ;* V54 tmp38        [V54    ] (  0,  0   )   byref  ->  zero-ref    "field V38._reference (fldOffset=0x0)" P-INDEP
 ;* V55 tmp39        [V55    ] (  0,  0   )     int  ->  zero-ref    "field V38._length (fldOffset=0x8)" P-INDEP
 ;  V56 tmp40        [V56,T36] (  4, 32   )   byref  ->  rdi         "field V39._reference (fldOffset=0x0)" P-INDEP
 ;* V57 tmp41        [V57    ] (  0,  0   )     int  ->  zero-ref    "field V39._length (fldOffset=0x8)" P-INDEP
 ;* V58 tmp42        [V58    ] (  0,  0   )   byref  ->  zero-ref    "field V40._reference (fldOffset=0x0)" P-INDEP
 ;* V59 tmp43        [V59    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x8)" P-INDEP
 ;  V60 tmp44        [V60,T61] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
 ;  V61 tmp45        [V61,T62] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
 ;  V62 tmp46        [V62,T64] (  2,  2   )    long  ->  rsi         "argument with side effect"
 ;  V63 tmp47        [V63,T41] (  6, 27   )     ref  ->  rdi         "argument with side effect"
 ;  V64 tmp48        [V64,T44] (  3, 24   )     ref  ->  rdi         "argument with side effect"
 ;  V65 tmp49        [V65,T53] (  3, 12   )     ref  ->  rdi         "argument with side effect"
 ;  V66 tmp50        [V66,T37] (  4, 32   )     ref  ->  rax         "argument with side effect"
 ;  V67 tmp51        [V67,T29] (  6, 36   )     ref  ->  rax         "argument with side effect"
 ;  V68 tmp52        [V68,T30] (  6, 36   )     ref  ->  rax         "argument with side effect"
 ;  V69 tmp53        [V69,T23] (  6, 48   )     ref  ->  rdi         "argument with side effect"
 ;  V70 tmp54        [V70,T38] (  4, 32   )     ref  ->  rax         "argument with side effect"
 ;  V71 tmp55        [V71,T31] (  6, 32   )     ref  ->  rax         "argument with side effect"
 ;  V72 tmp56        [V72,T39] (  4, 32   )     ref  ->  rsi         "argument with side effect"
-;  V73 cse0         [V73,T50] (  6, 16   )     ref  ->  [rbp-0xA0]  multi-def "CSE #05: conservative"
+;  V73 cse0         [V73,T50] (  6, 16   )     ref  ->  [rbp-0xE0]  multi-def "CSE #05: conservative"
 ;  V74 cse1         [V74,T69] (  3,  0.48)     ref  ->  rdi         "CSE #18: conservative"
 ;  V75 cse2         [V75,T27] (  3, 47.52)     ref  ->  rdi         "CSE #08: moderate"
-;  V76 cse3         [V76,T17] (  4, 63.36)     int  ->  [rbp-0x3C]  spill-single-def "CSE #06: moderate"
-;  V77 rat0         [V77,T28] ( 12, 36.50)    long  ->  [rbp-0x48]  "Widened IV V06"
+;  V76 cse3         [V76,T17] (  4, 63.36)     int  ->  [rbp-0x7C]  spill-single-def "CSE #06: moderate"
+;  V77 rat0         [V77,T28] ( 12, 36.50)    long  ->  [rbp-0x88]  "Widened IV V06"
 ;  V78 rat1         [V78,T59] (  4,  3.25)     ref  ->  rax         "replacement local"
 ;  V79 rat2         [V79,T63] (  3,  2.25)    long  ->  rdi         "CSE for expectedClsNode"
 ;  V80 rat3         [V80,T21] (  4, 55.44)     ref  ->  rsi         "replacement local"
 ;  V81 rat4         [V81,T51] (  3, 15.84)    long  ->  rdi         "CSE for expectedClsNode"
 ;  V82 rat5         [V82,T18] (  5, 59.40)     ref  ->  rdi         "replacement local"
 ;  V83 rat6         [V83,T47] (  3, 19.80)    long  ->  rcx         "CSE for expectedClsNode"
 ;  V84 rat7         [V84,T19] (  5, 59.40)     ref  ->  rsi         "replacement local"
 ;  V85 rat8         [V85,T48] (  3, 19.80)    long  ->  rdi         "CSE for expectedClsNode"
 ;  V86 rat9         [V86,T67] (  4,  0.56)     ref  ->  rsi         "replacement local"
 ;  V87 rat10        [V87,T72] (  3,  0.16)    long  ->  rdi         "CSE for expectedClsNode"
 ;  V88 rat11        [V88,T65] (  5,  0.60)     ref  ->  rdi         "replacement local"
 ;  V89 rat12        [V89,T70] (  3,  0.20)    long  ->  rcx         "CSE for expectedClsNode"
 ;  V90 rat13        [V90,T66] (  5,  0.60)     ref  ->  registers   "replacement local"
 ;  V91 rat14        [V91,T71] (  3,  0.20)    long  ->  rdi         "CSE for expectedClsNode"
 ;
-; Lcl frame size = 200
+; Lcl frame size = 184
 
 G_M10688_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 200
+       sub      rsp, 184
        vzeroupper 
-       lea      rbp, [rsp+0xF0]
-       mov      gword ptr [rbp-0x58], rsi
+       lea      rbp, [rsp+0xE0]
+       mov      gword ptr [rbp-0x98], rsi
        mov      r15, rdi
-						;; size=35 bbWeight=1 PerfScore 9.00
+						;; size=38 bbWeight=1 PerfScore 9.00
 G_M10688_IG02:
-       lea      rdi, [rbp-0xE0]
-       xor      esi, esi
+       lea      rdi, [rbp-0x70]
        call     CORINFO_HELP_INIT_PINVOKE_FRAME
        mov      r14, rax
        mov      rdi, rsp
-       mov      qword ptr [rbp-0xC0], rdi
+       mov      qword ptr [rbp-0x58], rdi
        mov      rdi, rbp
-       mov      qword ptr [rbp-0xB0], rdi
+       mov      qword ptr [rbp-0x48], rdi
        xor      r13, r13
        test     r15, r15
-       je       SHORT G_M10688_IG04
-						;; size=45 bbWeight=1 PerfScore 6.00
+       je       G_M10688_IG04
+						;; size=38 bbWeight=1 PerfScore 5.75
 G_M10688_IG03:
        mov      rdi, gword ptr [r15+0x08]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x30]System.Collections.ArrayList:get_Count():int:this
        test     eax, eax
-       mov      gword ptr [rbp-0x60], r13
+       mov      gword ptr [rbp-0xA0], r13
        je       G_M10688_IG85
        mov      rdi, 0xD1FFAB1E      ; System.Text.UTF8Encoding
        call     CORINFO_HELP_NEWSFAST
        mov      r12, rax
        mov      byte  ptr [r12+0x24], 1
        mov      dword ptr [r12+0x20], 0xFDE9
        mov      rdi, r12
        mov      rax, 0xD1FFAB1E      ; code for System.Text.UTF8Encoding:SetDefaultFallbacks():this
        call     [rax]System.Text.UTF8Encoding:SetDefaultFallbacks():this
-       mov      gword ptr [rbp-0x68], r12
+       mov      gword ptr [rbp-0xA8], r12
        xor      r13, r13
        xor      rax, rax
-       mov      gword ptr [rbp-0x78], rax
+       mov      gword ptr [rbp-0xB8], rax
        mov      rsi, r15
        mov      rdi, 0xD1FFAB1E      ; System.DirectoryServices.Protocols.DirectoryAttributeModificationCollection
        mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rcx]CORINFO_HELP_ISINSTANCEOFCLASS
        test     rax, rax
        je       SHORT G_M10688_IG05
        mov      r13, r15
        jmp      SHORT G_M10688_IG08
-						;; size=122 bbWeight=0.50 PerfScore 14.00
+						;; size=131 bbWeight=0.50 PerfScore 14.00
 G_M10688_IG04:
-       mov      gword ptr [rbp-0x60], r13
+       mov      gword ptr [rbp-0xA0], r13
        jmp      G_M10688_IG85
-						;; size=9 bbWeight=0.50 PerfScore 1.50
+						;; size=12 bbWeight=0.50 PerfScore 1.50
 G_M10688_IG05:
        mov      rax, r15
        mov      rdi, 0xD1FFAB1E      ; System.DirectoryServices.Protocols.DirectoryAttributeCollection
        cmp      qword ptr [rax], rdi
        je       SHORT G_M10688_IG07
 						;; size=18 bbWeight=0.50 PerfScore 2.25
 G_M10688_IG06:
        mov      rsi, r15
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
 						;; size=15 bbWeight=0.12 PerfScore 0.44
 G_M10688_IG07:
-       mov      gword ptr [rbp-0x78], rax
-						;; size=4 bbWeight=0.50 PerfScore 0.50
+       mov      gword ptr [rbp-0xB8], rax
+						;; size=7 bbWeight=0.50 PerfScore 0.50
 G_M10688_IG08:
        mov      rdi, gword ptr [r15+0x08]
        mov      rcx, qword ptr [rdi]
        mov      rcx, qword ptr [rcx+0x40]
        call     [rcx+0x30]System.Collections.ArrayList:get_Count():int:this
        movsxd   rsi, eax
        mov      rdi, 0xD1FFAB1E      ; System.DirectoryServices.Protocols.LdapMod[]
        call     CORINFO_HELP_NEWARR_1_OBJ
-       mov      gword ptr [rbp-0x60], rax
+       mov      gword ptr [rbp-0xA0], rax
        xor      ecx, ecx
-       mov      qword ptr [rbp-0x48], rcx
-       mov      gword ptr [rbp-0x50], r15
+       mov      qword ptr [rbp-0x88], rcx
+       mov      gword ptr [rbp-0x90], r15
        mov      rdi, gword ptr [r15+0x08]
        mov      rdx, qword ptr [rdi]
        mov      rdx, qword ptr [rdx+0x40]
        call     [rdx+0x30]System.Collections.ArrayList:get_Count():int:this
        test     eax, eax
        jle      G_M10688_IG85
-						;; size=68 bbWeight=0.50 PerfScore 12.00
+						;; size=77 bbWeight=0.50 PerfScore 12.00
 G_M10688_IG09:
-       mov      rax, gword ptr [rbp-0x78]
+       mov      rax, gword ptr [rbp-0xB8]
        test     rax, rax
        je       SHORT G_M10688_IG11
-						;; size=9 bbWeight=4 PerfScore 9.00
+						;; size=12 bbWeight=4 PerfScore 9.00
 G_M10688_IG10:
-       mov      gword ptr [rbp-0x78], rax
+       mov      gword ptr [rbp-0xB8], rax
        mov      rdi, rax
-       mov      rsi, qword ptr [rbp-0x48]
+       mov      rsi, qword ptr [rbp-0x88]
        mov      rcx, 0xD1FFAB1E      ; code for System.DirectoryServices.Protocols.DirectoryAttributeCollection:get_Item(int):System.DirectoryServices.Protocols.DirectoryAttribute:this
        call     [rcx]System.DirectoryServices.Protocols.DirectoryAttributeCollection:get_Item(int):System.DirectoryServices.Protocols.DirectoryAttribute:this
-       mov      gword ptr [rbp-0x80], rax
+       mov      gword ptr [rbp-0xC0], rax
        jmp      SHORT G_M10688_IG12
-						;; size=29 bbWeight=2 PerfScore 17.00
+						;; size=38 bbWeight=2 PerfScore 17.00
 G_M10688_IG11:
-       mov      gword ptr [rbp-0x78], rax
-       mov      gword ptr [rbp-0x70], r13
+       mov      gword ptr [rbp-0xB8], rax
+       mov      gword ptr [rbp-0xB0], r13
        mov      rdi, r13
-       mov      rsi, qword ptr [rbp-0x48]
+       mov      rsi, qword ptr [rbp-0x88]
        mov      rcx, 0xD1FFAB1E      ; code for System.DirectoryServices.Protocols.DirectoryAttributeModificationCollection:get_Item(int):System.DirectoryServices.Protocols.DirectoryAttributeModification:this
        cmp      dword ptr [rdi], edi
        call     [rcx]System.DirectoryServices.Protocols.DirectoryAttributeModificationCollection:get_Item(int):System.DirectoryServices.Protocols.DirectoryAttributeModification:this
-       mov      gword ptr [rbp-0x80], rax
-       mov      r13, gword ptr [rbp-0x70]
-						;; size=37 bbWeight=2 PerfScore 23.00
+       mov      gword ptr [rbp-0xC0], rax
+       mov      r13, gword ptr [rbp-0xB0]
+						;; size=52 bbWeight=2 PerfScore 23.00
 G_M10688_IG12:
        mov      rdi, 0xD1FFAB1E      ; System.DirectoryServices.Protocols.LdapMod
        call     CORINFO_HELP_NEWFAST
        xor      edi, edi
        mov      qword ptr [rax+0x10], rdi
 						;; size=21 bbWeight=4 PerfScore 10.00
 G_M10688_IG13:
        mov      qword ptr [rax+0x18], rdi
-       mov      rcx, qword ptr [rbp-0x48]
-       mov      rdx, gword ptr [rbp-0x60]
+       mov      rcx, qword ptr [rbp-0x88]
+       mov      rdx, gword ptr [rbp-0xA0]
        cmp      ecx, dword ptr [rdx+0x08]
        jae      G_M10688_IG87
-       mov      gword ptr [rbp-0x60], rdx
-       mov      qword ptr [rbp-0x48], rcx
+       mov      gword ptr [rbp-0xA0], rdx
+       mov      qword ptr [rbp-0x88], rcx
        lea      rdi, bword ptr [rdx+8*rcx+0x10]
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
-       mov      rsi, gword ptr [rbp-0x80]
+       mov      rsi, gword ptr [rbp-0xC0]
        mov      rdi, 0xD1FFAB1E      ; System.DirectoryServices.Protocols.DirectoryAttributeModification
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        test     rax, rax
        je       SHORT G_M10688_IG15
-						;; size=73 bbWeight=4 PerfScore 68.00
+						;; size=88 bbWeight=4 PerfScore 68.00
 G_M10688_IG14:
-       mov      rax, gword ptr [rbp-0x60]
-       mov      rcx, qword ptr [rbp-0x48]
+       mov      rax, gword ptr [rbp-0xA0]
+       mov      rcx, qword ptr [rbp-0x88]
        mov      rdx, gword ptr [rax+8*rcx+0x10]
        mov      rdi, rdx
-       mov      rsi, gword ptr [rbp-0x80]
+       mov      rsi, gword ptr [rbp-0xC0]
        mov      r8, rsi
        mov      r8d, dword ptr [r8+0x1C]
        mov      dword ptr [rdi+0x08], r8d
-       mov      qword ptr [rbp-0x48], rcx
-       mov      gword ptr [rbp-0x60], rax
+       mov      qword ptr [rbp-0x88], rcx
+       mov      gword ptr [rbp-0xA0], rax
        jmp      SHORT G_M10688_IG16
-						;; size=41 bbWeight=2 PerfScore 25.00
+						;; size=56 bbWeight=2 PerfScore 25.00
 G_M10688_IG15:
-       mov      rax, gword ptr [rbp-0x60]
-       mov      rcx, qword ptr [rbp-0x48]
+       mov      rax, gword ptr [rbp-0xA0]
+       mov      rcx, qword ptr [rbp-0x88]
        mov      rdx, gword ptr [rax+8*rcx+0x10]
        xor      edi, edi
        mov      dword ptr [rdx+0x08], edi
-       mov      rsi, gword ptr [rbp-0x80]
-						;; size=22 bbWeight=2 PerfScore 12.50
+       mov      rsi, gword ptr [rbp-0xC0]
+						;; size=31 bbWeight=2 PerfScore 12.50
 G_M10688_IG16:
-       mov      gword ptr [rbp-0xA0], rdx
+       mov      gword ptr [rbp-0xE0], rdx
        mov      rdi, rdx
        or       dword ptr [rdi+0x08], 128
-       mov      gword ptr [rbp-0x80], rsi
+       mov      gword ptr [rbp-0xC0], rsi
        mov      rdi, gword ptr [rsi+0x10]
        mov      r8, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.Marshal:StringToHGlobalAnsi(System.String):long
        call     [r8]System.Runtime.InteropServices.Marshal:StringToHGlobalAnsi(System.String):long
-       mov      rdi, gword ptr [rbp-0xA0]
+       mov      rdi, gword ptr [rbp-0xE0]
        mov      qword ptr [rdi+0x10], rax
        xor      eax, eax
        mov      dword ptr [rbp-0x2C], eax
        xor      rcx, rcx
-       mov      gword ptr [rbp-0x88], rcx
-       mov      rdx, gword ptr [rbp-0x80]
+       mov      gword ptr [rbp-0xC8], rcx
+       mov      rdx, gword ptr [rbp-0xC0]
        mov      rdi, gword ptr [rdx+0x08]
        mov      rsi, qword ptr [rdi]
        mov      rsi, qword ptr [rsi+0x40]
        call     [rsi+0x30]System.Collections.ArrayList:get_Count():int:this
        test     eax, eax
        jle      G_M10688_IG25
-						;; size=89 bbWeight=4 PerfScore 105.00
+						;; size=95 bbWeight=4 PerfScore 105.00
 G_M10688_IG17:
-       mov      rax, gword ptr [rbp-0x80]
+       mov      rax, gword ptr [rbp-0xC0]
        mov      rdi, gword ptr [rax+0x08]
        mov      rcx, qword ptr [rdi]
        mov      rcx, qword ptr [rcx+0x40]
        call     [rcx+0x30]System.Collections.ArrayList:get_Count():int:this
        mov      dword ptr [rbp-0x2C], eax
        movsxd   rsi, eax
        mov      rdi, 0xD1FFAB1E      ; System.DirectoryServices.Protocols.BerVal[]
        call     CORINFO_HELP_NEWARR_1_OBJ
        xor      ecx, ecx
        mov      edx, dword ptr [rbp-0x2C]
        test     edx, edx
        jle      G_M10688_IG24
-						;; size=52 bbWeight=2 PerfScore 30.00
+						;; size=55 bbWeight=2 PerfScore 30.00
 G_M10688_IG18:
-       mov      gword ptr [rbp-0x88], rax
+       mov      gword ptr [rbp-0xC8], rax
        mov      dword ptr [rbp-0x2C], edx
        cmp      dword ptr [rax+0x08], edx
        jl       G_M10688_IG43
 						;; size=19 bbWeight=1 PerfScore 6.00
 G_M10688_IG19:
-       mov      rdi, gword ptr [rbp-0x80]
+       mov      rdi, gword ptr [rbp-0xC0]
        mov      dword ptr [rbp-0x38], ecx
        mov      esi, ecx
        mov      r8, 0xD1FFAB1E      ; code for System.DirectoryServices.Protocols.DirectoryAttribute:get_Item(int):System.Object:this
        call     [r8]System.DirectoryServices.Protocols.DirectoryAttribute:get_Item(int):System.Object:this
        test     rax, rax
-       je       SHORT G_M10688_IG26
-						;; size=27 bbWeight=15.84 PerfScore 106.92
+       je       G_M10688_IG26
+						;; size=34 bbWeight=15.84 PerfScore 106.92
 G_M10688_IG20:
        mov      rdi, 0xD1FFAB1E      ; System.String
        cmp      qword ptr [rax], rdi
        jne      SHORT G_M10688_IG26
 						;; size=15 bbWeight=3.96 PerfScore 16.83
 G_M10688_IG21:
-       mov      rdi, gword ptr [rbp-0x80]
+       mov      rdi, gword ptr [rbp-0xC0]
        mov      esi, dword ptr [rbp-0x38]
        mov      rax, 0xD1FFAB1E      ; code for System.DirectoryServices.Protocols.DirectoryAttribute:get_Item(int):System.Object:this
        call     [rax]System.DirectoryServices.Protocols.DirectoryAttribute:get_Item(int):System.Object:this
        mov      rsi, rax
        test     rsi, rsi
        je       SHORT G_M10688_IG23
-						;; size=27 bbWeight=7.92 PerfScore 53.46
+						;; size=30 bbWeight=7.92 PerfScore 53.46
 G_M10688_IG22:
        mov      rdi, 0xD1FFAB1E      ; System.String
        cmp      qword ptr [rsi], rdi
        jne      G_M10688_IG88
 						;; size=19 bbWeight=3.96 PerfScore 16.83
 G_M10688_IG23:
        mov      rdi, r12
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Encoding:GetBytes(System.String):ubyte[]:this
        call     [rax]System.Text.Encoding:GetBytes(System.String):ubyte[]:this
        mov      rsi, rax
-       mov      gword ptr [rbp-0x90], rsi
+       mov      gword ptr [rbp-0xD0], rsi
        jmp      G_M10688_IG34
 						;; size=30 bbWeight=7.92 PerfScore 53.46
 G_M10688_IG24:
-       mov      gword ptr [rbp-0x88], rax
+       mov      gword ptr [rbp-0xC8], rax
        mov      dword ptr [rbp-0x2C], edx
-       mov      gword ptr [rbp-0x70], r13
+       mov      gword ptr [rbp-0xB0], r13
        jmp      G_M10688_IG65
-						;; size=19 bbWeight=1 PerfScore 5.00
+						;; size=22 bbWeight=1 PerfScore 5.00
 G_M10688_IG25:
-       mov      gword ptr [rbp-0x70], r13
+       mov      gword ptr [rbp-0xB0], r13
        jmp      G_M10688_IG65
-						;; size=9 bbWeight=2 PerfScore 6.00
+						;; size=12 bbWeight=2 PerfScore 6.00
 G_M10688_IG26:
-       mov      rdi, gword ptr [rbp-0x80]
+       mov      rdi, gword ptr [rbp-0xC0]
        mov      esi, dword ptr [rbp-0x38]
        mov      rax, 0xD1FFAB1E      ; code for System.DirectoryServices.Protocols.DirectoryAttribute:get_Item(int):System.Object:this
        call     [rax]System.DirectoryServices.Protocols.DirectoryAttribute:get_Item(int):System.Object:this
        mov      rsi, rax
        mov      rdi, 0xD1FFAB1E      ; System.Uri
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        test     rax, rax
        je       SHORT G_M10688_IG30
-       mov      rdi, gword ptr [rbp-0x80]
+       mov      rdi, gword ptr [rbp-0xC0]
        mov      esi, dword ptr [rbp-0x38]
        mov      rax, 0xD1FFAB1E      ; code for System.DirectoryServices.Protocols.DirectoryAttribute:get_Item(int):System.Object:this
        call     [rax]System.DirectoryServices.Protocols.DirectoryAttribute:get_Item(int):System.Object:this
        mov      rdi, rax
        test     rdi, rdi
        je       SHORT G_M10688_IG29
-						;; size=76 bbWeight=7.92 PerfScore 134.64
+						;; size=82 bbWeight=7.92 PerfScore 134.64
 G_M10688_IG27:
        mov      rcx, 0xD1FFAB1E      ; System.Uri
        cmp      qword ptr [rdi], rcx
        je       SHORT G_M10688_IG29
 						;; size=15 bbWeight=3.96 PerfScore 16.83
 G_M10688_IG28:
        mov      rsi, rax
        mov      rdi, rcx
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
        mov      rdi, rax
 						;; size=21 bbWeight=1.98 PerfScore 7.92
 G_M10688_IG29:
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x08]System.Object:ToString():System.String:this
        mov      rsi, rax
        mov      rdi, r12
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Encoding:GetBytes(System.String):ubyte[]:this
        call     [rax]System.Text.Encoding:GetBytes(System.String):ubyte[]:this
        mov      rsi, rax
-       mov      gword ptr [rbp-0x90], rsi
-       mov      r12, gword ptr [rbp-0x68]
+       mov      gword ptr [rbp-0xD0], rsi
+       mov      r12, gword ptr [rbp-0xA8]
        jmp      SHORT G_M10688_IG34
-						;; size=44 bbWeight=7.92 PerfScore 118.80
+						;; size=47 bbWeight=7.92 PerfScore 118.80
 G_M10688_IG30:
-       mov      rdi, gword ptr [rbp-0x80]
+       mov      rdi, gword ptr [rbp-0xC0]
        mov      esi, dword ptr [rbp-0x38]
        mov      rax, 0xD1FFAB1E      ; code for System.DirectoryServices.Protocols.DirectoryAttribute:get_Item(int):System.Object:this
        call     [rax]System.DirectoryServices.Protocols.DirectoryAttribute:get_Item(int):System.Object:this
        mov      rsi, rax
        test     rsi, rsi
        je       SHORT G_M10688_IG33
-						;; size=27 bbWeight=7.92 PerfScore 53.46
+						;; size=30 bbWeight=7.92 PerfScore 53.46
 G_M10688_IG31:
        mov      rdi, 0xD1FFAB1E      ; ubyte[]
        cmp      qword ptr [rsi], rdi
        je       SHORT G_M10688_IG33
 						;; size=15 bbWeight=3.96 PerfScore 16.83
 G_M10688_IG32:
        mov      rsi, rax
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTARRAY
        call     [rax]CORINFO_HELP_CHKCASTARRAY
        mov      rsi, rax
 						;; size=18 bbWeight=1.98 PerfScore 7.42
 G_M10688_IG33:
-       mov      gword ptr [rbp-0x90], rsi
+       mov      gword ptr [rbp-0xD0], rsi
 						;; size=7 bbWeight=7.92 PerfScore 7.92
 G_M10688_IG34:
        mov      rdi, 0xD1FFAB1E      ; System.DirectoryServices.Protocols.BerVal
        call     CORINFO_HELP_NEWSFAST
        xor      edi, edi
        mov      qword ptr [rax+0x10], rdi
-       mov      rsi, gword ptr [rbp-0x90]
+       mov      rsi, gword ptr [rbp-0xD0]
        mov      ecx, dword ptr [rsi+0x08]
-       mov      dword ptr [rbp-0x3C], ecx
-       mov      gword ptr [rbp-0x98], rax
+       mov      dword ptr [rbp-0x7C], ecx
+       mov      gword ptr [rbp-0xD8], rax
        mov      dword ptr [rax+0x08], ecx
        mov      edi, ecx
        test     rdi, rdi
        jne      SHORT G_M10688_IG36
 						;; size=51 bbWeight=15.84 PerfScore 158.40
 G_M10688_IG35:
        mov      edi, 1
-       mov      gword ptr [rbp-0x70], r13
+       mov      gword ptr [rbp-0xB0], r13
        jmp      SHORT G_M10688_IG37
-						;; size=11 bbWeight=7.92 PerfScore 25.74
+						;; size=14 bbWeight=7.92 PerfScore 25.74
 G_M10688_IG36:
-       mov      gword ptr [rbp-0x70], r13
-						;; size=4 bbWeight=7.92 PerfScore 7.92
+       mov      gword ptr [rbp-0xB0], r13
+						;; size=7 bbWeight=7.92 PerfScore 7.92
 G_M10688_IG37:
        mov      rdx, 0xD1FFAB1E      ; function address
-       mov      qword ptr [rbp-0xD0], rdx
+       mov      qword ptr [rbp-0x60], rdx
        lea      rdx, G_M10688_IG40
-       mov      qword ptr [rbp-0xB8], rdx
-       lea      rdx, bword ptr [rbp-0xE0]
+       mov      qword ptr [rbp-0x50], rdx
+       lea      rdx, [rbp-0x70]
        mov      qword ptr [r14+0x08], rdx
        mov      byte  ptr [r14+0x04], 0
-						;; size=47 bbWeight=15.84 PerfScore 91.08
+						;; size=38 bbWeight=15.84 PerfScore 91.08
 G_M10688_IG38:
        mov      rax, 0xD1FFAB1E      ; code for Interop+Sys:Malloc(ulong):ulong
 						;; size=10 bbWeight=15.84 PerfScore 3.96
 G_M10688_IG39:
        call     [rax]Interop+Sys:Malloc(ulong):ulong
 						;; size=2 bbWeight=15.84 PerfScore 47.52
 G_M10688_IG40:
        mov      byte  ptr [r14+0x04], 1
        mov      rcx, 0xD1FFAB1E      ; function address
        cmp      dword ptr [rcx], 0
        je       SHORT G_M10688_IG41
        mov      rdi, 0xD1FFAB1E
        call     [rdi]CORINFO_HELP_STOP_FOR_GC
 						;; size=32 bbWeight=15.84 PerfScore 134.64
 G_M10688_IG41:
-       mov      rdi, bword ptr [rbp-0xD8]
+       mov      rdi, qword ptr [rbp-0x68]
        mov      qword ptr [r14+0x08], rdi
        test     rax, rax
        je       G_M10688_IG92
-       mov      rbx, gword ptr [rbp-0x98]
+       mov      rbx, gword ptr [rbp-0xD8]
        mov      qword ptr [rbx+0x10], rax
        mov      r15d, dword ptr [rbp-0x38]
        mov      edi, r15d
-       mov      r13, gword ptr [rbp-0x88]
+       mov      r13, gword ptr [rbp-0xC8]
        lea      rdi, bword ptr [r13+8*rdi+0x10]
        mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, 0xD1FFAB1E      ; System.IntPtr
        call     CORINFO_HELP_NEWSFAST
        mov      esi, r15d
        mov      rsi, gword ptr [r13+8*rsi+0x10]
        mov      rsi, qword ptr [rsi+0x10]
        mov      qword ptr [rax+0x08], rsi
        mov      rsi, rax
-       mov      rdi, gword ptr [rbp-0x58]
-       mov      gword ptr [rbp-0x58], rdi
+       mov      rdi, gword ptr [rbp-0x98]
+       mov      gword ptr [rbp-0x98], rdi
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x28]System.Collections.ArrayList:Add(System.Object):int:this
        mov      edi, r15d
-       mov      gword ptr [rbp-0x88], r13
+       mov      gword ptr [rbp-0xC8], r13
        mov      rdi, gword ptr [r13+8*rdi+0x10]
        mov      rbx, qword ptr [rdi+0x10]
        mov      r12d, dword ptr [rdi+0x08]
        test     rbx, rbx
        je       G_M10688_IG90
-       cmp      dword ptr [rbp-0x3C], r12d
+       cmp      dword ptr [rbp-0x7C], r12d
        jb       G_M10688_IG91
-       mov      rsi, gword ptr [rbp-0x90]
+       mov      rsi, gword ptr [rbp-0xD0]
        add      rsi, 16
        test     r12d, r12d
        jl       G_M10688_IG91
        mov      rdi, rbx
        mov      edx, r12d
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
        inc      r15d
        cmp      r15d, dword ptr [rbp-0x2C]
        mov      ecx, r15d
        jge      G_M10688_IG65
-						;; size=206 bbWeight=15.84 PerfScore 756.36
+						;; size=209 bbWeight=15.84 PerfScore 756.36
 G_M10688_IG42:
-       mov      r12, gword ptr [rbp-0x68]
-       mov      r13, gword ptr [rbp-0x70]
+       mov      r12, gword ptr [rbp-0xA8]
+       mov      r13, gword ptr [rbp-0xB0]
        jmp      G_M10688_IG19
-						;; size=13 bbWeight=7.92 PerfScore 31.68
+						;; size=19 bbWeight=7.92 PerfScore 31.68
 G_M10688_IG43:
-       mov      rdi, gword ptr [rbp-0x80]
+       mov      rdi, gword ptr [rbp-0xC0]
        mov      dword ptr [rbp-0x38], ecx
        mov      esi, ecx
        mov      r8, 0xD1FFAB1E      ; code for System.DirectoryServices.Protocols.DirectoryAttribute:get_Item(int):System.Object:this
        call     [r8]System.DirectoryServices.Protocols.DirectoryAttribute:get_Item(int):System.Object:this
        test     rax, rax
        je       SHORT G_M10688_IG48
-						;; size=27 bbWeight=0.16 PerfScore 1.08
+						;; size=30 bbWeight=0.16 PerfScore 1.08
 G_M10688_IG44:
        mov      rdi, 0xD1FFAB1E      ; System.String
        cmp      qword ptr [rax], rdi
        jne      SHORT G_M10688_IG48
 						;; size=15 bbWeight=0.04 PerfScore 0.17
 G_M10688_IG45:
-       mov      rdi, gword ptr [rbp-0x80]
+       mov      rdi, gword ptr [rbp-0xC0]
        mov      esi, dword ptr [rbp-0x38]
        mov      rax, 0xD1FFAB1E      ; code for System.DirectoryServices.Protocols.DirectoryAttribute:get_Item(int):System.Object:this
        call     [rax]System.DirectoryServices.Protocols.DirectoryAttribute:get_Item(int):System.Object:this
        mov      rsi, rax
        test     rsi, rsi
        je       SHORT G_M10688_IG47
-						;; size=27 bbWeight=0.08 PerfScore 0.54
+						;; size=30 bbWeight=0.08 PerfScore 0.54
 G_M10688_IG46:
        mov      rdi, 0xD1FFAB1E      ; System.String
        cmp      qword ptr [rsi], rdi
        jne      G_M10688_IG89
 						;; size=19 bbWeight=0.04 PerfScore 0.17
 G_M10688_IG47:
        mov      rdi, r12
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Encoding:GetBytes(System.String):ubyte[]:this
        call     [rax]System.Text.Encoding:GetBytes(System.String):ubyte[]:this
-       mov      gword ptr [rbp-0x90], rax
+       mov      gword ptr [rbp-0xD0], rax
        jmp      G_M10688_IG56
 						;; size=27 bbWeight=0.08 PerfScore 0.52
 G_M10688_IG48:
-       mov      rdi, gword ptr [rbp-0x80]
+       mov      rdi, gword ptr [rbp-0xC0]
        mov      esi, dword ptr [rbp-0x38]
        mov      rax, 0xD1FFAB1E      ; code for System.DirectoryServices.Protocols.DirectoryAttribute:get_Item(int):System.Object:this
        call     [rax]System.DirectoryServices.Protocols.DirectoryAttribute:get_Item(int):System.Object:this
        mov      rsi, rax
        mov      rdi, 0xD1FFAB1E      ; System.Uri
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rax]CORINFO_HELP_ISINSTANCEOFCLASS
        test     rax, rax
        je       SHORT G_M10688_IG52
-       mov      rdi, gword ptr [rbp-0x80]
+       mov      rdi, gword ptr [rbp-0xC0]
        mov      esi, dword ptr [rbp-0x38]
        mov      rax, 0xD1FFAB1E      ; code for System.DirectoryServices.Protocols.DirectoryAttribute:get_Item(int):System.Object:this
        call     [rax]System.DirectoryServices.Protocols.DirectoryAttribute:get_Item(int):System.Object:this
        mov      rdi, rax
        test     rdi, rdi
        je       SHORT G_M10688_IG51
-						;; size=76 bbWeight=0.08 PerfScore 1.36
+						;; size=82 bbWeight=0.08 PerfScore 1.36
 G_M10688_IG49:
        mov      rcx, 0xD1FFAB1E      ; System.Uri
        cmp      qword ptr [rdi], rcx
        je       SHORT G_M10688_IG51
 						;; size=15 bbWeight=0.04 PerfScore 0.17
 G_M10688_IG50:
        mov      rsi, rax
        mov      rdi, rcx
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
        mov      rdi, rax
 						;; size=21 bbWeight=0.02 PerfScore 0.08
 G_M10688_IG51:
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x08]System.Object:ToString():System.String:this
        mov      rsi, rax
        mov      rdi, r12
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Encoding:GetBytes(System.String):ubyte[]:this
        call     [rax]System.Text.Encoding:GetBytes(System.String):ubyte[]:this
-       mov      gword ptr [rbp-0x90], rax
-       mov      r12, gword ptr [rbp-0x68]
+       mov      gword ptr [rbp-0xD0], rax
+       mov      r12, gword ptr [rbp-0xA8]
        jmp      SHORT G_M10688_IG56
-						;; size=41 bbWeight=0.08 PerfScore 1.18
+						;; size=44 bbWeight=0.08 PerfScore 1.18
 G_M10688_IG52:
-       mov      rdi, gword ptr [rbp-0x80]
+       mov      rdi, gword ptr [rbp-0xC0]
        mov      esi, dword ptr [rbp-0x38]
        mov      rax, 0xD1FFAB1E      ; code for System.DirectoryServices.Protocols.DirectoryAttribute:get_Item(int):System.Object:this
        call     [rax]System.DirectoryServices.Protocols.DirectoryAttribute:get_Item(int):System.Object:this
        mov      rcx, rax
        test     rcx, rcx
        je       SHORT G_M10688_IG55
-						;; size=27 bbWeight=0.08 PerfScore 0.54
+						;; size=30 bbWeight=0.08 PerfScore 0.54
 G_M10688_IG53:
        mov      rdi, 0xD1FFAB1E      ; ubyte[]
        cmp      qword ptr [rcx], rdi
        je       SHORT G_M10688_IG55
 						;; size=15 bbWeight=0.04 PerfScore 0.17
 G_M10688_IG54:
        mov      rsi, rax
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTARRAY
        call     [rax]CORINFO_HELP_CHKCASTARRAY
        mov      rcx, rax
 						;; size=18 bbWeight=0.02 PerfScore 0.08
 G_M10688_IG55:
-       mov      gword ptr [rbp-0x90], rcx
+       mov      gword ptr [rbp-0xD0], rcx
 						;; size=7 bbWeight=0.08 PerfScore 0.08
 G_M10688_IG56:
        mov      rdi, 0xD1FFAB1E      ; System.DirectoryServices.Protocols.BerVal
        call     CORINFO_HELP_NEWSFAST
        xor      edi, edi
        mov      qword ptr [rax+0x10], rdi
-       mov      rcx, gword ptr [rbp-0x90]
+       mov      rcx, gword ptr [rbp-0xD0]
        mov      edi, dword ptr [rcx+0x08]
-       mov      gword ptr [rbp-0x98], rax
+       mov      gword ptr [rbp-0xD8], rax
        mov      dword ptr [rax+0x08], edi
-       mov      gword ptr [rbp-0x90], rcx
+       mov      gword ptr [rbp-0xD0], rcx
        mov      edi, dword ptr [rcx+0x08]
        test     rdi, rdi
        jne      SHORT G_M10688_IG58
 						;; size=56 bbWeight=0.16 PerfScore 1.88
 G_M10688_IG57:
        mov      edi, 1
-       mov      gword ptr [rbp-0x70], r13
+       mov      gword ptr [rbp-0xB0], r13
        jmp      SHORT G_M10688_IG59
-						;; size=11 bbWeight=0.08 PerfScore 0.26
+						;; size=14 bbWeight=0.08 PerfScore 0.26
 G_M10688_IG58:
-       mov      gword ptr [rbp-0x70], r13
-						;; size=4 bbWeight=0.08 PerfScore 0.08
+       mov      gword ptr [rbp-0xB0], r13
+						;; size=7 bbWeight=0.08 PerfScore 0.08
 G_M10688_IG59:
        mov      rdx, 0xD1FFAB1E      ; function address
-       mov      qword ptr [rbp-0xD0], rdx
+       mov      qword ptr [rbp-0x60], rdx
        lea      rdx, G_M10688_IG62
-       mov      qword ptr [rbp-0xB8], rdx
-       lea      rdx, bword ptr [rbp-0xE0]
+       mov      qword ptr [rbp-0x50], rdx
+       lea      rdx, [rbp-0x70]
        mov      qword ptr [r14+0x08], rdx
        mov      byte  ptr [r14+0x04], 0
-						;; size=47 bbWeight=0.16 PerfScore 0.92
+						;; size=38 bbWeight=0.16 PerfScore 0.92
 G_M10688_IG60:
        mov      rax, 0xD1FFAB1E      ; code for Interop+Sys:Malloc(ulong):ulong
 						;; size=10 bbWeight=0.16 PerfScore 0.04
 G_M10688_IG61:
        call     [rax]Interop+Sys:Malloc(ulong):ulong
 						;; size=2 bbWeight=0.16 PerfScore 0.48
 G_M10688_IG62:
        mov      byte  ptr [r14+0x04], 1
        mov      rcx, 0xD1FFAB1E      ; function address
        cmp      dword ptr [rcx], 0
        je       SHORT G_M10688_IG63
        mov      rdi, 0xD1FFAB1E
        call     [rdi]CORINFO_HELP_STOP_FOR_GC
 						;; size=32 bbWeight=0.16 PerfScore 1.36
 G_M10688_IG63:
-       mov      rdi, bword ptr [rbp-0xD8]
+       mov      rdi, qword ptr [rbp-0x68]
        mov      qword ptr [r14+0x08], rdi
        test     rax, rax
        je       G_M10688_IG92
-       mov      rbx, gword ptr [rbp-0x98]
+       mov      rbx, gword ptr [rbp-0xD8]
        mov      qword ptr [rbx+0x10], rax
        mov      r15d, dword ptr [rbp-0x38]
-       mov      r13, gword ptr [rbp-0x88]
+       mov      r13, gword ptr [rbp-0xC8]
        cmp      r15d, dword ptr [r13+0x08]
        jae      G_M10688_IG87
        mov      edi, r15d
        lea      rdi, bword ptr [r13+8*rdi+0x10]
        mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
        mov      rdi, 0xD1FFAB1E      ; System.IntPtr
        call     CORINFO_HELP_NEWSFAST
        mov      esi, r15d
        mov      rsi, gword ptr [r13+8*rsi+0x10]
        mov      rsi, qword ptr [rsi+0x10]
        mov      qword ptr [rax+0x08], rsi
        mov      rsi, rax
-       mov      rdi, gword ptr [rbp-0x58]
-       mov      gword ptr [rbp-0x58], rdi
+       mov      rdi, gword ptr [rbp-0x98]
+       mov      gword ptr [rbp-0x98], rdi
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x28]System.Collections.ArrayList:Add(System.Object):int:this
        mov      edi, r15d
        mov      rdi, gword ptr [r13+8*rdi+0x10]
        mov      rbx, qword ptr [rdi+0x10]
        mov      r12d, dword ptr [rdi+0x08]
        test     rbx, rbx
        je       G_M10688_IG90
-       mov      rdi, gword ptr [rbp-0x90]
+       mov      rdi, gword ptr [rbp-0xD0]
        cmp      dword ptr [rdi+0x08], r12d
        jb       G_M10688_IG91
        lea      rsi, bword ptr [rdi+0x10]
        test     r12d, r12d
        jl       G_M10688_IG91
        mov      rdi, rbx
        mov      edx, r12d
        mov      rax, 0xD1FFAB1E      ; code for System.SpanHelpers:Memmove(byref,byref,ulong)
        call     [rax]System.SpanHelpers:Memmove(byref,byref,ulong)
        inc      r15d
        mov      r12d, dword ptr [rbp-0x2C]
        cmp      r15d, r12d
-       mov      gword ptr [rbp-0x88], r13
+       mov      gword ptr [rbp-0xC8], r13
        mov      dword ptr [rbp-0x2C], r12d
        mov      ecx, r15d
-						;; size=217 bbWeight=0.16 PerfScore 8.36
+						;; size=220 bbWeight=0.16 PerfScore 8.36
 G_M10688_IG64:
        jl       G_M10688_IG70
 						;; size=6 bbWeight=0.16 PerfScore 0.16
 G_M10688_IG65:
-       mov      rax, gword ptr [rbp-0x60]
-       mov      rbx, qword ptr [rbp-0x48]
+       mov      rax, gword ptr [rbp-0xA0]
+       mov      rbx, qword ptr [rbp-0x88]
        mov      r15, gword ptr [rax+8*rbx+0x10]
        mov      r12d, dword ptr [rbp-0x2C]
        lea      edi, [r12+0x01]
        mov      rcx, 0xD1FFAB1E      ; code for System.DirectoryServices.Protocols.Utility:AllocHGlobalIntPtrArray(int):long
        call     [rcx]System.DirectoryServices.Protocols.Utility:AllocHGlobalIntPtrArray(int):long
        mov      qword ptr [r15+0x18], rax
-       mov      rax, gword ptr [rbp-0x60]
+       mov      rax, gword ptr [rbp-0xA0]
        mov      rdi, gword ptr [rax+8*rbx+0x10]
        mov      r15, qword ptr [rdi+0x18]
        mov      rdi, 0xD1FFAB1E      ; System.Runtime.InteropServices.Marshal:SizeOf[System.DirectoryServices.Protocols.BerVal]():int
        mov      rcx, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.Marshal:SizeOf[System.__Canon]():int
        call     [rcx]System.Runtime.InteropServices.Marshal:SizeOf[System.__Canon]():int
        mov      dword ptr [rbp-0x30], eax
        xor      ecx, ecx
        mov      dword ptr [rbp-0x34], ecx
        test     r12d, r12d
        jle      G_M10688_IG84
-						;; size=90 bbWeight=4 PerfScore 87.00
+						;; size=99 bbWeight=4 PerfScore 87.00
 G_M10688_IG66:
-       mov      r13, gword ptr [rbp-0x88]
+       mov      r13, gword ptr [rbp-0xC8]
        test     r13, r13
        je       G_M10688_IG76
-       mov      gword ptr [rbp-0x88], r13
+       mov      gword ptr [rbp-0xC8], r13
        cmp      dword ptr [r13+0x08], r12d
        jl       SHORT G_M10688_IG69
 						;; size=29 bbWeight=1 PerfScore 7.25
 G_M10688_IG67:
        movsxd   rdi, eax
        test     rdi, rdi
        jne      SHORT G_M10688_IG71
 						;; size=8 bbWeight=15.84 PerfScore 23.76
 G_M10688_IG68:
        mov      edi, 1
        jmp      SHORT G_M10688_IG71
 						;; size=7 bbWeight=7.92 PerfScore 17.82
 G_M10688_IG69:
-       mov      r13, gword ptr [rbp-0x88]
+       mov      r13, gword ptr [rbp-0xC8]
        jmp      G_M10688_IG76
 						;; size=12 bbWeight=0.50 PerfScore 1.50
 G_M10688_IG70:
-       mov      r12, gword ptr [rbp-0x68]
-       mov      r13, gword ptr [rbp-0x70]
+       mov      r12, gword ptr [rbp-0xA8]
+       mov      r13, gword ptr [rbp-0xB0]
        jmp      G_M10688_IG43
-						;; size=13 bbWeight=0.08 PerfScore 0.32
+						;; size=19 bbWeight=0.08 PerfScore 0.32
 G_M10688_IG71:
        mov      rdx, 0xD1FFAB1E      ; function address
-       mov      qword ptr [rbp-0xD0], rdx
+       mov      qword ptr [rbp-0x60], rdx
        lea      rdx, G_M10688_IG74
-       mov      qword ptr [rbp-0xB8], rdx
-       lea      rdx, bword ptr [rbp-0xE0]
+       mov      qword ptr [rbp-0x50], rdx
+       lea      rdx, [rbp-0x70]
        mov      qword ptr [r14+0x08], rdx
        mov      byte  ptr [r14+0x04], 0
-						;; size=47 bbWeight=15.84 PerfScore 91.08
+						;; size=38 bbWeight=15.84 PerfScore 91.08
 G_M10688_IG72:
        mov      rdx, 0xD1FFAB1E      ; code for Interop+Sys:Malloc(ulong):ulong
 						;; size=10 bbWeight=15.84 PerfScore 3.96
 G_M10688_IG73:
        call     [rdx]Interop+Sys:Malloc(ulong):ulong
 						;; size=2 bbWeight=15.84 PerfScore 47.52
 G_M10688_IG74:
        mov      byte  ptr [r14+0x04], 1
        mov      rcx, 0xD1FFAB1E      ; function address
        cmp      dword ptr [rcx], 0
        je       SHORT G_M10688_IG75
        mov      rdi, 0xD1FFAB1E
        call     [rdi]CORINFO_HELP_STOP_FOR_GC
 						;; size=32 bbWeight=15.84 PerfScore 134.64
 G_M10688_IG75:
-       mov      rdi, bword ptr [rbp-0xD8]
+       mov      rdi, qword ptr [rbp-0x68]
        mov      qword ptr [r14+0x08], rdi
        mov      r13, rax
        test     r13, r13
        je       G_M10688_IG92
        mov      rdi, 0xD1FFAB1E      ; System.IntPtr
        call     CORINFO_HELP_NEWSFAST
        mov      qword ptr [rax+0x08], r13
        mov      rsi, rax
-       mov      rdi, gword ptr [rbp-0x58]
-       mov      gword ptr [rbp-0x58], rdi
+       mov      rdi, gword ptr [rbp-0x98]
+       mov      gword ptr [rbp-0x98], rdi
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x28]System.Collections.ArrayList:Add(System.Object):int:this
        mov      edi, dword ptr [rbp-0x34]
-       mov      rcx, gword ptr [rbp-0x88]
+       mov      rcx, gword ptr [rbp-0xC8]
        mov      rdi, gword ptr [rcx+8*rdi+0x10]
        mov      rsi, r13
        xor      edx, edx
        mov      r8, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.Marshal:StructureToPtr(System.Object,long,ubyte)
        call     [r8]System.Runtime.InteropServices.Marshal:StructureToPtr(System.Object,long,ubyte)
        mov      edi, dword ptr [rbp-0x34]
        movsxd   rax, edi
        mov      qword ptr [r15+8*rax], r13
        inc      edi
        mov      dword ptr [rbp-0x34], edi
        cmp      edi, r12d
        mov      eax, dword ptr [rbp-0x30]
        jl       G_M10688_IG67
        jmp      G_M10688_IG84
-						;; size=128 bbWeight=15.84 PerfScore 483.12
+						;; size=131 bbWeight=15.84 PerfScore 483.12
 G_M10688_IG76:
        movsxd   rdi, eax
        test     rdi, rdi
        jne      SHORT G_M10688_IG78
 						;; size=8 bbWeight=0.16 PerfScore 0.24
 G_M10688_IG77:
        mov      edi, 1
-       mov      gword ptr [rbp-0x88], r13
+       mov      gword ptr [rbp-0xC8], r13
        jmp      SHORT G_M10688_IG79
 						;; size=14 bbWeight=0.08 PerfScore 0.26
 G_M10688_IG78:
-       mov      gword ptr [rbp-0x88], r13
+       mov      gword ptr [rbp-0xC8], r13
 						;; size=7 bbWeight=0.08 PerfScore 0.08
 G_M10688_IG79:
        mov      rdx, 0xD1FFAB1E      ; function address
-       mov      qword ptr [rbp-0xD0], rdx
+       mov      qword ptr [rbp-0x60], rdx
        lea      rdx, G_M10688_IG82
-       mov      qword ptr [rbp-0xB8], rdx
-       lea      rdx, bword ptr [rbp-0xE0]
+       mov      qword ptr [rbp-0x50], rdx
+       lea      rdx, [rbp-0x70]
        mov      qword ptr [r14+0x08], rdx
        mov      byte  ptr [r14+0x04], 0
-						;; size=47 bbWeight=0.16 PerfScore 0.92
+						;; size=38 bbWeight=0.16 PerfScore 0.92
 G_M10688_IG80:
        mov      rdx, 0xD1FFAB1E      ; code for Interop+Sys:Malloc(ulong):ulong
 						;; size=10 bbWeight=0.16 PerfScore 0.04
 G_M10688_IG81:
        call     [rdx]Interop+Sys:Malloc(ulong):ulong
 						;; size=2 bbWeight=0.16 PerfScore 0.48
 G_M10688_IG82:
        mov      byte  ptr [r14+0x04], 1
        mov      rcx, 0xD1FFAB1E      ; function address
        cmp      dword ptr [rcx], 0
        je       SHORT G_M10688_IG83
        mov      rdi, 0xD1FFAB1E
        call     [rdi]CORINFO_HELP_STOP_FOR_GC
 						;; size=32 bbWeight=0.16 PerfScore 1.36
 G_M10688_IG83:
-       mov      rdi, bword ptr [rbp-0xD8]
+       mov      rdi, qword ptr [rbp-0x68]
        mov      qword ptr [r14+0x08], rdi
        mov      r13, rax
        test     r13, r13
        je       G_M10688_IG92
        mov      rdi, 0xD1FFAB1E      ; System.IntPtr
        call     CORINFO_HELP_NEWSFAST
        mov      qword ptr [rax+0x08], r13
        mov      rsi, rax
-       mov      rdi, gword ptr [rbp-0x58]
-       mov      gword ptr [rbp-0x58], rdi
+       mov      rdi, gword ptr [rbp-0x98]
+       mov      gword ptr [rbp-0x98], rdi
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x28]System.Collections.ArrayList:Add(System.Object):int:this
        mov      eax, dword ptr [rbp-0x34]
-       mov      rcx, gword ptr [rbp-0x88]
+       mov      rcx, gword ptr [rbp-0xC8]
        cmp      eax, dword ptr [rcx+0x08]
        jae      G_M10688_IG87
        mov      dword ptr [rbp-0x34], eax
        mov      edi, eax
-       mov      gword ptr [rbp-0x88], rcx
+       mov      gword ptr [rbp-0xC8], rcx
        mov      rdi, gword ptr [rcx+8*rdi+0x10]
        mov      rsi, r13
        xor      edx, edx
        mov      r8, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.Marshal:StructureToPtr(System.Object,long,ubyte)
        call     [r8]System.Runtime.InteropServices.Marshal:StructureToPtr(System.Object,long,ubyte)
        mov      edi, dword ptr [rbp-0x34]
        movsxd   rax, edi
        mov      qword ptr [r15+8*rax], r13
        inc      edi
        cmp      edi, r12d
        mov      dword ptr [rbp-0x34], edi
        mov      eax, dword ptr [rbp-0x30]
-       mov      r13, gword ptr [rbp-0x88]
+       mov      r13, gword ptr [rbp-0xC8]
        jl       G_M10688_IG76
-						;; size=151 bbWeight=0.16 PerfScore 5.72
+						;; size=154 bbWeight=0.16 PerfScore 5.72
 G_M10688_IG84:
        movsxd   rdi, dword ptr [rbp-0x34]
        xor      eax, eax
        mov      qword ptr [r15+8*rdi], rax
        inc      ebx
-       mov      r15, gword ptr [rbp-0x50]
+       mov      r15, gword ptr [rbp-0x90]
        mov      rdi, gword ptr [r15+0x08]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x30]System.Collections.ArrayList:get_Count():int:this
        cmp      eax, ebx
-       mov      qword ptr [rbp-0x48], rbx
-       mov      gword ptr [rbp-0x50], r15
-       mov      r12, gword ptr [rbp-0x68]
-       mov      r13, gword ptr [rbp-0x70]
+       mov      qword ptr [rbp-0x88], rbx
+       mov      gword ptr [rbp-0x90], r15
+       mov      r12, gword ptr [rbp-0xA8]
+       mov      r13, gword ptr [rbp-0xB0]
        jg       G_M10688_IG09
-						;; size=54 bbWeight=4 PerfScore 79.00
+						;; size=69 bbWeight=4 PerfScore 79.00
 G_M10688_IG85:
-       mov      r13, gword ptr [rbp-0x60]
+       mov      r13, gword ptr [rbp-0xA0]
        mov      rax, r13
-						;; size=7 bbWeight=1 PerfScore 1.25
+						;; size=10 bbWeight=1 PerfScore 1.25
 G_M10688_IG86:
-       add      rsp, 200
+       add      rsp, 184
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=18 bbWeight=1 PerfScore 4.25
 G_M10688_IG87:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 G_M10688_IG88:
        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_M10688_IG89:
        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_M10688_IG90:
        mov      edi, 0xD61
        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_M10688_IG91:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M10688_IG92:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowOutOfMemoryException()
        call     [rax]System.ThrowHelper:ThrowOutOfMemoryException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 3001, prolog size 28, PerfScore 3242.06, instruction count 671, allocated bytes for code 3001 (MethodHash=62d9d63f) for method System.DirectoryServices.Protocols.LdapConnection:BuildAttributes(System.Collections.CollectionBase,System.Collections.ArrayList):System.DirectoryServices.Protocols.LdapMod[] (FullOpts)
+; Total bytes of code 3169, prolog size 28, PerfScore 3241.81, instruction count 670, allocated bytes for code 3169 (MethodHash=62d9d63f) for method System.DirectoryServices.Protocols.LdapConnection:BuildAttributes(System.Collections.CollectionBase,System.Collections.ArrayList):System.DirectoryServices.Protocols.LdapMod[] (FullOpts)

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

@MihuBot
Copy link
Owner Author

MihuBot commented Apr 12, 2024

Top method improvements

-108 (-5.45 % of base) - (dynamicClass):IL_STUB_PInvoke(ulong,ulong):int
 ; Assembly listing for method (dynamicClass):IL_STUB_PInvoke(ulong,ulong):int (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )    long  ->  rbx         single-def
 ;  V01 arg1         [V01,T02] (  3,  3   )    long  ->  r15         single-def
 ;* V02 loc0         [V02    ] (  0,  0   )     int  ->  zero-ref   
 ;* V03 loc1         [V03    ] (  0,  0   )    long  ->  zero-ref   
 ;* V04 loc2         [V04    ] (  0,  0   )    long  ->  zero-ref   
 ;* V05 loc3         [V05    ] (  0,  0   )     int  ->  zero-ref   
 ;* V06 loc4         [V06    ] (  0,  0   )     int  ->  zero-ref   
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T03] (  4,  4   )    long  ->  [rbp-0x30]  do-not-enreg[V] "stub argument"
+;  V08 tmp1         [V08,T03] (  4,  4   )    long  ->  [rbp-0x30]  "stub argument"
 ;  V09 tmp2         [V09,T04] (  2,  4   )    long  ->  rax         "impImportIndirectCall"
 ;  V10 tmp3         [V10,T05] (  2,  4   )     int  ->  rax         "Single return block return value"
-;  V11 FramesRoot   [V11,T00] (  6,  6   )    long  ->  r14         "Pinvoke FrameListRoot"
-;  V12 PInvokeFrame [V12    ] (  8,  8   )  struct (72) [rbp-0x78]  do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
+;  V11 FramesRoot   [V11,T00] (  6,  6   )    long  ->  r13         "Pinvoke FrameListRoot"
+;  V12 PInvokeFrame [V12    ] (  9,  9   )  struct (72) [rbp-0x78]  do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
 ;
 ; Lcl frame size = 88
 
 G_M38347_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 88
        lea      rbp, [rsp+0x80]
-       mov      qword ptr [rbp-0x30], r10
        mov      rbx, rdi
        mov      r15, rsi
-						;; size=32 bbWeight=1 PerfScore 8.25
+       mov      r14, r10
+						;; size=31 bbWeight=1 PerfScore 7.50
 G_M38347_IG02:
        lea      rdi, [rbp-0x70]
-       mov      rsi, qword ptr [rbp-0x30]
        call     CORINFO_HELP_INIT_PINVOKE_FRAME
-       mov      r14, rax
+       mov      r13, rax
+       mov      qword ptr [rbp-0x38], r14
        mov      rdi, rsp
-       mov      qword ptr [rbp-0x50], rdi
+       mov      qword ptr [rbp-0x58], rdi
        mov      rdi, rbp
-       mov      qword ptr [rbp-0x40], rdi
-       lea      rdi, bword ptr [rbp-0x70]
-       mov      qword ptr [r14+0x08], rdi
-       mov      rdi, qword ptr [rbp-0x30]
-       mov      rax, qword ptr [rdi+0x18]
+       mov      qword ptr [rbp-0x48], rdi
+       lea      rdi, [rbp-0x70]
+       mov      qword ptr [r13+0x08], rdi
+       mov      rax, qword ptr [r14+0x18]
        mov      rdi, rbx
        mov      rsi, r15
-       mov      rcx, qword ptr [rbp-0x30]
-       mov      qword ptr [rbp-0x60], rcx
+       mov      qword ptr [rbp-0x60], r14
        lea      rcx, G_M38347_IG04
-       mov      qword ptr [rbp-0x48], rcx
-       mov      byte  ptr [r14+0x04], 0
-						;; size=76 bbWeight=1 PerfScore 15.25
+       mov      qword ptr [rbp-0x50], rcx
+       mov      byte  ptr [r13+0x04], 0
+						;; size=68 bbWeight=1 PerfScore 13.25
 G_M38347_IG03:
        call     rax
 						;; size=2 bbWeight=1 PerfScore 3.00
 G_M38347_IG04:
-       mov      byte  ptr [r14+0x04], 1
+       mov      byte  ptr [r13+0x04], 1
        mov      rcx, 0xD1FFAB1E      ; function address
        cmp      dword ptr [rcx], 0
        je       SHORT G_M38347_IG05
        mov      rdi, 0xD1FFAB1E
        call     [rdi]CORINFO_HELP_STOP_FOR_GC
 						;; size=32 bbWeight=1 PerfScore 8.50
 G_M38347_IG05:
-       mov      rcx, bword ptr [rbp-0x68]
-       mov      qword ptr [r14+0x08], rcx
+       mov      rcx, qword ptr [rbp-0x68]
+       mov      qword ptr [r13+0x08], rcx
 						;; size=8 bbWeight=1 PerfScore 2.00
 G_M38347_IG06:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 
-; Total bytes of code 165, prolog size 26, PerfScore 41.25, instruction count 47, allocated bytes for code 165 (MethodHash=7f986a34) for method (dynamicClass):IL_STUB_PInvoke(ulong,ulong):int (FullOpts)
+; Total bytes of code 156, prolog size 22, PerfScore 38.50, instruction count 45, allocated bytes for code 156 (MethodHash=7f986a34) for method (dynamicClass):IL_STUB_PInvoke(ulong,ulong):int (FullOpts)
-48 (-1.99 % of base) - System.Runtime.InteropServices.Marshalling.ComVariant:Dispose():this
 ; Assembly listing for method System.Runtime.InteropServices.Marshalling.ComVariant:Dispose():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; 46 single block inlinees; 34 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] ( 22, 13   )   byref  ->  [rbp-0x48]  this single-def
+;  V00 this         [V00,T05] ( 22, 13   )   byref  ->  [rbp-0x88]  this single-def
 ;  V01 loc0         [V01,T53] (  2,  1   )    long  ->  rax        
 ;  V02 loc1         [V02,T38] (  4,  2   )    long  ->  r14        
 ;  V03 loc2         [V03,T39] (  4,  2   )    long  ->  r14        
 ;  V04 loc3         [V04,T19] (  6,  3   )     int  ->  r14        
 ;* V05 loc4         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[long]>
 ;* V06 loc5         [V06,T67] (  0,  0   )     int  ->  zero-ref   
 ;  V07 loc6         [V07,T06] (  3, 10   )    long  ->  rdi        
 ;* V08 loc7         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[long]>
 ;* V09 loc8         [V09,T68] (  0,  0   )     int  ->  zero-ref   
 ;  V10 loc9         [V10,T07] (  3, 10   )    long  ->  rdi        
 ;* V11 loc10        [V11    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[System.Runtime.InteropServices.Marshalling.ComVariant+ClipboardData]>
 ;* V12 loc11        [V12,T69] (  0,  0   )     int  ->  zero-ref   
 ;* V13 loc12        [V13    ] (  0,  0   )  struct (16) zero-ref    <System.Runtime.InteropServices.Marshalling.ComVariant+ClipboardData>
 ;* V14 loc13        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Span`1[System.Runtime.InteropServices.Marshalling.ComVariant]>
 ;* V15 loc14        [V15,T70] (  0,  0   )     int  ->  zero-ref   
 ;  V16 loc15        [V16    ] (  2,  8   )  struct (24) [rbp-0x40]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Runtime.InteropServices.Marshalling.ComVariant>
 ;# V17 OutArgs      [V17    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V18 tmp1         [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Runtime.InteropServices.VarEnum>
 ;* V19 tmp2         [V19    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Runtime.InteropServices.VarEnum>
 ;* V20 tmp3         [V20    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Runtime.InteropServices.VarEnum>
 ;* V21 tmp4         [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Single-def Box Helper" <System.Runtime.InteropServices.VarEnum>
 ;  V22 tmp5         [V22,T76] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.PlatformNotSupportedException>
 ;  V23 tmp6         [V23,T25] (  3,  3   )    long  ->  rdi         "Inlining Arg"
 ;* V24 tmp7         [V24    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;  V25 tmp8         [V25,T26] (  3,  3   )    long  ->  rdi         "Inlining Arg"
 ;  V26 tmp9         [V26,T54] (  2,  1   )    long  ->  rax         "Inline stloc first use temp"
 ;  V27 tmp10        [V27,T40] (  3,  2   )     int  ->  rax         "Inlining Arg"
 ;  V28 tmp11        [V28,T18] (  4,  4   )    long  ->  rdi         "Inlining Arg"
 ;  V29 tmp12        [V29,T55] (  2,  1   )    long  ->  rax         "Inline stloc first use temp"
 ;  V30 tmp13        [V30,T27] (  3,  3   )    long  ->  rdi         "Inlining Arg"
 ;  V31 tmp14        [V31,T28] (  3,  3   )    long  ->  rdi         "Inlining Arg"
 ;  V32 tmp15        [V32,T29] (  3,  3   )    long  ->  rdi         "Inlining Arg"
 ;  V33 tmp16        [V33,T56] (  2,  1   )    long  ->  rax         "Inline stloc first use temp"
 ;  V34 tmp17        [V34,T30] (  3,  3   )    long  ->  rdi         "Inlining Arg"
 ;  V35 tmp18        [V35,T57] (  2,  1   )    long  ->  rax         "Inline stloc first use temp"
 ;  V36 tmp19        [V36,T31] (  3,  3   )    long  ->  rdi         "Inlining Arg"
 ;* V37 tmp20        [V37,T62] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V38 tmp21        [V38,T71] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;  V39 tmp22        [V39,T21] (  3,  3   )   byref  ->  rdi         single-def "Inlining Arg"
 ;* V40 tmp23        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V41 tmp24        [V41,T32] (  3,  3   )     int  ->  r14         "Inlining Arg"
 ;  V42 tmp25        [V42,T41] (  2,  2   )    long  ->  r13         "Inlining Arg"
 ;* V43 tmp26        [V43    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V44 tmp27        [V44,T63] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V45 tmp28        [V45,T72] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;  V46 tmp29        [V46,T22] (  3,  3   )   byref  ->  rdi         single-def "Inlining Arg"
 ;* V47 tmp30        [V47    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[long]>
 ;  V48 tmp31        [V48,T33] (  3,  3   )     int  ->  r13         "Inlining Arg"
 ;  V49 tmp32        [V49,T42] (  2,  2   )    long  ->  r14         "Inlining Arg"
 ;* V50 tmp33        [V50,T64] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V51 tmp34        [V51,T73] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;  V52 tmp35        [V52,T23] (  3,  3   )   byref  ->  rdi         single-def "Inlining Arg"
 ;* V53 tmp36        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[System.Runtime.InteropServices.Marshalling.ComVariant+ClipboardData]>
 ;  V54 tmp37        [V54,T34] (  3,  3   )     int  ->  r13         "Inlining Arg"
 ;  V55 tmp38        [V55,T43] (  2,  2   )    long  ->  r14         "Inlining Arg"
 ;* V56 tmp39        [V56    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V57 tmp40        [V57    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V58 tmp41        [V58    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V59 tmp42        [V59,T65] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V60 tmp43        [V60,T74] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;  V61 tmp44        [V61,T24] (  3,  3   )   byref  ->  rdi         single-def "Inlining Arg"
 ;* V62 tmp45        [V62    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[System.Runtime.InteropServices.Marshalling.ComVariant]>
 ;  V63 tmp46        [V63,T35] (  3,  3   )     int  ->  r13         "Inlining Arg"
 ;  V64 tmp47        [V64,T44] (  2,  2   )    long  ->  r14         "Inlining Arg"
 ;* V65 tmp48        [V65,T66] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
 ;* V66 tmp49        [V66,T75] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;  V67 tmp50        [V67,T36] (  3,  3   )    long  ->  rdi         "Inlining Arg"
 ;  V68 FramesRoot   [V68,T00] ( 62, 50   )    long  ->  r15         "Pinvoke FrameListRoot"
-;  V69 PInvokeFrame [V69    ] ( 59, 49.50)  struct (72) [rbp-0xA8]  do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
-;  V70 tmp53        [V70,T14] (  2,  4.50)   byref  ->  [rbp-0x50]  spill-single-def "field V05._reference (fldOffset=0x0)" P-INDEP
+;  V69 PInvokeFrame [V69    ] ( 59, 49.50)  struct (64) [rbp-0x80]  do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
+;  V70 tmp53        [V70,T14] (  2,  4.50)   byref  ->  [rbp-0x90]  spill-single-def "field V05._reference (fldOffset=0x0)" P-INDEP
 ;  V71 tmp54        [V71,T10] (  3,  5   )     int  ->  r14         "field V05._length (fldOffset=0x8)" P-INDEP
-;  V72 tmp55        [V72,T15] (  2,  4.50)   byref  ->  [rbp-0x58]  spill-single-def "field V08._reference (fldOffset=0x0)" P-INDEP
+;  V72 tmp55        [V72,T15] (  2,  4.50)   byref  ->  [rbp-0x98]  spill-single-def "field V08._reference (fldOffset=0x0)" P-INDEP
 ;  V73 tmp56        [V73,T11] (  3,  5   )     int  ->  r13         "field V08._length (fldOffset=0x8)" P-INDEP
-;  V74 tmp57        [V74,T16] (  2,  4.50)   byref  ->  [rbp-0x60]  spill-single-def "field V11._reference (fldOffset=0x0)" P-INDEP
+;  V74 tmp57        [V74,T16] (  2,  4.50)   byref  ->  [rbp-0xA0]  spill-single-def "field V11._reference (fldOffset=0x0)" P-INDEP
 ;  V75 tmp58        [V75,T12] (  3,  5   )     int  ->  r13         "field V11._length (fldOffset=0x8)" P-INDEP
 ;* V76 tmp59        [V76    ] (  0,  0   )     int  ->  zero-ref    "field V13._size (fldOffset=0x0)" P-INDEP
 ;* V77 tmp60        [V77    ] (  0,  0   )     int  ->  zero-ref    "field V13._format (fldOffset=0x4)" P-INDEP
 ;  V78 tmp61        [V78,T08] (  3, 10   )    long  ->  rdi         "field V13._data (fldOffset=0x8)" P-INDEP
 ;  V79 tmp62        [V79,T17] (  2,  4.50)   byref  ->  r14         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
 ;  V80 tmp63        [V80,T13] (  3,  5   )     int  ->  r13         "field V14._length (fldOffset=0x8)" P-INDEP
 ;  V81 tmp64        [V81,T49] (  2,  1   )   byref  ->  r13         single-def "field V40._reference (fldOffset=0x0)" P-INDEP
 ;  V82 tmp65        [V82,T58] (  2,  1   )     int  ->  r14         "field V40._length (fldOffset=0x8)" P-INDEP
 ;  V83 tmp66        [V83,T50] (  2,  1   )   byref  ->  r14         single-def "field V47._reference (fldOffset=0x0)" P-INDEP
 ;  V84 tmp67        [V84,T59] (  2,  1   )     int  ->  r13         "field V47._length (fldOffset=0x8)" P-INDEP
 ;  V85 tmp68        [V85,T51] (  2,  1   )   byref  ->  r14         single-def "field V53._reference (fldOffset=0x0)" P-INDEP
 ;  V86 tmp69        [V86,T60] (  2,  1   )     int  ->  r13         "field V53._length (fldOffset=0x8)" P-INDEP
 ;  V87 tmp70        [V87,T52] (  2,  1   )   byref  ->  r14         single-def "field V62._reference (fldOffset=0x0)" P-INDEP
 ;  V88 tmp71        [V88,T61] (  2,  1   )     int  ->  r13         "field V62._length (fldOffset=0x8)" P-INDEP
 ;  V89 tmp72        [V89,T45] (  2,  2   )     int  ->  rdi         "Enum:HasFlag this temp"
 ;  V90 tmp73        [V90,T46] (  2,  2   )     int  ->  rdi         "Enum:HasFlag this temp"
 ;* V91 tmp74        [V91    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;* V92 tmp75        [V92    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;* V93 tmp76        [V93    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;* V94 tmp77        [V94    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;* V95 tmp78        [V95    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;  V96 tmp79        [V96,T77] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
 ;  V97 cse0         [V97,T09] ( 14,  8   )     int  ->  r14         "CSE #01: moderate"
 ;  V98 cse1         [V98,T20] (  6,  3   )    long  ->  rdi         multi-def "CSE #03: conservative"
 ;  V99 cse2         [V99,T48] (  3,  1.50)    long  ->  rdi         "CSE #06: conservative"
 ;  V100 rat0        [V100,T01] (  5, 16.50)    long  ->  r12         "Widened IV V09"
 ;  V101 rat1        [V101,T02] (  5, 16.50)    long  ->  r12         "Widened IV V12"
 ;  V102 rat2        [V102,T03] (  5, 16.50)    long  ->  r12         "Widened IV V06"
 ;  V103 rat3        [V103,T04] (  5, 16.50)    long  ->  r12         "Widened IV V15"
 ;  V104 rat4        [V104,T37] (  3,  3.00)     int  ->  r13         "ReplaceWithLclVar is creating a new local variable"
 ;  V105 rat5        [V105,T47] (  2,  2   )     int  ->  rdi         "ReplaceWithLclVar is creating a new local variable"
 ;
-; Lcl frame size = 136
+; Lcl frame size = 120
 
 G_M54580_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 136
+       sub      rsp, 120
        vzeroupper 
-       lea      rbp, [rsp+0xB0]
+       lea      rbp, [rsp+0xA0]
        mov      rbx, rdi
-						;; size=31 bbWeight=1 PerfScore 8.00
+						;; size=28 bbWeight=1 PerfScore 8.00
 G_M54580_IG02:
-       lea      rdi, [rbp-0xA0]
-       xor      esi, esi
+       lea      rdi, [rbp-0x78]
        call     CORINFO_HELP_INIT_PINVOKE_FRAME
        mov      r15, rax
        mov      rdi, rsp
-       mov      qword ptr [rbp-0x80], rdi
+       mov      qword ptr [rbp-0x60], rdi
        mov      rdi, rbp
-       mov      qword ptr [rbp-0x70], rdi
+       mov      qword ptr [rbp-0x50], rdi
        movzx    r14, word  ptr [rbx]
        cmp      r14d, 8
-       jne      G_M54580_IG08
-						;; size=45 bbWeight=1 PerfScore 7.75
+       jne      SHORT G_M54580_IG08
+						;; size=36 bbWeight=1 PerfScore 7.50
 G_M54580_IG03:
-       mov      bword ptr [rbp-0x48], rbx
+       mov      bword ptr [rbp-0x88], rbx
        mov      rdi, qword ptr [rbx+0x08]
        test     rdi, rdi
        je       G_M54580_IG96
        add      rdi, -8
        mov      rax, 0xD1FFAB1E      ; function address
-       mov      qword ptr [rbp-0x90], rax
+       mov      qword ptr [rbp-0x68], rax
        lea      rax, G_M54580_IG06
-       mov      qword ptr [rbp-0x78], rax
-       lea      rax, bword ptr [rbp-0xA0]
+       mov      qword ptr [rbp-0x58], rax
+       lea      rax, [rbp-0x78]
        mov      qword ptr [r15+0x08], rax
        mov      byte  ptr [r15+0x04], 0
-						;; size=65 bbWeight=0.50 PerfScore 5.12
+						;; size=62 bbWeight=0.50 PerfScore 5.12
 G_M54580_IG04:
        mov      rax, 0xD1FFAB1E      ; function address
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M54580_IG05:
        call     rax ; Interop+Sys:Free(ulong)
 						;; size=2 bbWeight=0.50 PerfScore 1.50
 G_M54580_IG06:
        mov      byte  ptr [r15+0x04], 1
        mov      rcx, 0xD1FFAB1E      ; function address
        cmp      dword ptr [rcx], 0
        je       SHORT G_M54580_IG07
        mov      rdi, 0xD1FFAB1E
        call     [rdi]CORINFO_HELP_STOP_FOR_GC
 						;; size=32 bbWeight=0.50 PerfScore 4.25
 G_M54580_IG07:
-       mov      rdi, bword ptr [rbp-0x98]
+       mov      rdi, qword ptr [rbp-0x70]
        mov      qword ptr [r15+0x08], rdi
        jmp      G_M54580_IG96
-						;; size=16 bbWeight=0.50 PerfScore 2.00
+						;; size=13 bbWeight=0.50 PerfScore 2.00
 G_M54580_IG08:
        mov      edi, r14d
        test     edi, 0x2000
        jne      G_M54580_IG99
        cmp      r14d, 13
        je       SHORT G_M54580_IG09
        cmp      r14d, 9
        jne      SHORT G_M54580_IG14
 						;; size=27 bbWeight=0.50 PerfScore 2.00
 G_M54580_IG09:
        cmp      qword ptr [rbx+0x08], 0
        je       SHORT G_M54580_IG13
-       mov      bword ptr [rbp-0x48], rbx
+       mov      bword ptr [rbp-0x88], rbx
        mov      rdi, qword ptr [rbx+0x08]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x10]
        lea      rcx, G_M54580_IG11
-       mov      qword ptr [rbp-0x78], rcx
-       lea      rcx, bword ptr [rbp-0xA0]
+       mov      qword ptr [rbp-0x58], rcx
+       lea      rcx, [rbp-0x78]
        mov      qword ptr [r15+0x08], rcx
        mov      byte  ptr [r15+0x04], 0
 						;; size=49 bbWeight=0.50 PerfScore 7.75
 G_M54580_IG10:
        call     rax
 						;; size=2 bbWeight=0.50 PerfScore 1.50
 G_M54580_IG11:
        mov      byte  ptr [r15+0x04], 1
        mov      rcx, 0xD1FFAB1E      ; function address
        cmp      dword ptr [rcx], 0
        je       SHORT G_M54580_IG12
        mov      rdi, 0xD1FFAB1E
        call     [rdi]CORINFO_HELP_STOP_FOR_GC
 						;; size=32 bbWeight=0.50 PerfScore 4.25
 G_M54580_IG12:
-       mov      rdi, bword ptr [rbp-0x98]
+       mov      rdi, qword ptr [rbp-0x70]
        mov      qword ptr [r15+0x08], rdi
        jmp      G_M54580_IG96
-						;; size=16 bbWeight=0.50 PerfScore 2.00
+						;; size=13 bbWeight=0.50 PerfScore 2.00
 G_M54580_IG13:
-       mov      bword ptr [rbp-0x48], rbx
+       mov      bword ptr [rbp-0x88], rbx
        jmp      G_M54580_IG96
-						;; size=9 bbWeight=0.25 PerfScore 0.75
+						;; size=12 bbWeight=0.25 PerfScore 0.75
 G_M54580_IG14:
        cmp      r14d, 36
        jne      G_M54580_IG23
        mov      rdi, qword ptr [rbx+0x10]
        test     rdi, rdi
        je       G_M54580_IG22
        cmp      qword ptr [rbx+0x08], 0
        je       SHORT G_M54580_IG18
        mov      rsi, qword ptr [rdi]
        mov      rax, qword ptr [rsi+0x20]
-       mov      bword ptr [rbp-0x48], rbx
+       mov      bword ptr [rbp-0x88], rbx
        mov      rsi, qword ptr [rbx+0x08]
        lea      rcx, G_M54580_IG16
-       mov      qword ptr [rbp-0x78], rcx
-       lea      rcx, bword ptr [rbp-0xA0]
+       mov      qword ptr [rbp-0x58], rcx
+       lea      rcx, [rbp-0x78]
        mov      qword ptr [r15+0x08], rcx
        mov      byte  ptr [r15+0x04], 0
 						;; size=72 bbWeight=0.50 PerfScore 10.00
 G_M54580_IG15:
        call     rax
 						;; size=2 bbWeight=0.50 PerfScore 1.50
 G_M54580_IG16:
        mov      byte  ptr [r15+0x04], 1
        mov      rcx, 0xD1FFAB1E      ; function address
        cmp      dword ptr [rcx], 0
        je       SHORT G_M54580_IG17
        mov      rdi, 0xD1FFAB1E
        call     [rdi]CORINFO_HELP_STOP_FOR_GC
 						;; size=32 bbWeight=0.50 PerfScore 4.25
 G_M54580_IG17:
-       mov      rdi, bword ptr [rbp-0x98]
+       mov      rdi, qword ptr [rbp-0x70]
        mov      qword ptr [r15+0x08], rdi
        test     eax, eax
-       mov      rbx, bword ptr [rbp-0x48]
+       mov      rbx, bword ptr [rbp-0x88]
        jl       G_M54580_IG100
 						;; size=23 bbWeight=0.50 PerfScore 2.12
 G_M54580_IG18:
-       mov      bword ptr [rbp-0x48], rbx
+       mov      bword ptr [rbp-0x88], rbx
        mov      rdi, qword ptr [rbx+0x10]
        test     rdi, rdi
        je       G_M54580_IG101
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x10]
        lea      rcx, G_M54580_IG20
-       mov      qword ptr [rbp-0x78], rcx
-       lea      rcx, bword ptr [rbp-0xA0]
+       mov      qword ptr [rbp-0x58], rcx
+       lea      rcx, [rbp-0x78]
        mov      qword ptr [r15+0x08], rcx
        mov      byte  ptr [r15+0x04], 0
 						;; size=51 bbWeight=0.50 PerfScore 6.38
 G_M54580_IG19:
        call     rax
 						;; size=2 bbWeight=0.50 PerfScore 1.50
 G_M54580_IG20:
        mov      byte  ptr [r15+0x04], 1
        mov      rcx, 0xD1FFAB1E      ; function address
        cmp      dword ptr [rcx], 0
        je       SHORT G_M54580_IG21
        mov      rdi, 0xD1FFAB1E
        call     [rdi]CORINFO_HELP_STOP_FOR_GC
 						;; size=32 bbWeight=0.50 PerfScore 4.25
 G_M54580_IG21:
-       mov      rdi, bword ptr [rbp-0x98]
+       mov      rdi, qword ptr [rbp-0x70]
        mov      qword ptr [r15+0x08], rdi
        jmp      G_M54580_IG96
-						;; size=16 bbWeight=0.50 PerfScore 2.00
+						;; size=13 bbWeight=0.50 PerfScore 2.00
 G_M54580_IG22:
-       mov      bword ptr [rbp-0x48], rbx
+       mov      bword ptr [rbp-0x88], rbx
        jmp      G_M54580_IG96
-						;; size=9 bbWeight=0.25 PerfScore 0.75
+						;; size=12 bbWeight=0.25 PerfScore 0.75
 G_M54580_IG23:
        mov      r13d, r14d
        sub      r13d, 30
        cmp      r13d, 42
        ja       G_M54580_IG30
 						;; size=17 bbWeight=0.50 PerfScore 0.88
 G_M54580_IG24:
        mov      rdi, 0xD1FFAB1E
        bt       rdi, r13
        jae      SHORT G_M54580_IG30
 						;; size=16 bbWeight=0.50 PerfScore 0.87
 G_M54580_IG25:
-       mov      bword ptr [rbp-0x48], rbx
+       mov      bword ptr [rbp-0x88], rbx
        mov      rdi, qword ptr [rbx+0x08]
        test     rdi, rdi
        je       G_M54580_IG96
        mov      rax, 0xD1FFAB1E      ; function address
-       mov      qword ptr [rbp-0x90], rax
+       mov      qword ptr [rbp-0x68], rax
        lea      rax, G_M54580_IG28
-       mov      qword ptr [rbp-0x78], rax
-       lea      rax, bword ptr [rbp-0xA0]
+       mov      qword ptr [rbp-0x58], rax
+       lea      rax, [rbp-0x78]
        mov      qword ptr [r15+0x08], rax
        mov      byte  ptr [r15+0x04], 0
-						;; size=61 bbWeight=0.50 PerfScore 5.00
+						;; size=58 bbWeight=0.50 PerfScore 5.00
 G_M54580_IG26:
        mov      rax, 0xD1FFAB1E      ; function address
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M54580_IG27:
        call     rax ; Interop+Sys:Free(ulong)
 						;; size=2 bbWeight=0.50 PerfScore 1.50
 G_M54580_IG28:
        mov      byte  ptr [r15+0x04], 1
        mov      rcx, 0xD1FFAB1E      ; function address
        cmp      dword ptr [rcx], 0
        je       SHORT G_M54580_IG29
        mov      rdi, 0xD1FFAB1E
        call     [rdi]CORINFO_HELP_STOP_FOR_GC
 						;; size=32 bbWeight=0.50 PerfScore 4.25
 G_M54580_IG29:
-       mov      rdi, bword ptr [rbp-0x98]
+       mov      rdi, qword ptr [rbp-0x70]
        mov      qword ptr [r15+0x08], rdi
        jmp      G_M54580_IG96
-						;; size=16 bbWeight=0.50 PerfScore 2.00
+						;; size=13 bbWeight=0.50 PerfScore 2.00
 G_M54580_IG30:
        cmp      r14d, 65
        je       SHORT G_M54580_IG31
        cmp      r14d, 70
        jne      SHORT G_M54580_IG36
 						;; size=12 bbWeight=0.50 PerfScore 1.25
 G_M54580_IG31:
-       mov      bword ptr [rbp-0x48], rbx
+       mov      bword ptr [rbp-0x88], rbx
        mov      rdi, qword ptr [rbx+0x10]
        test     rdi, rdi
        je       G_M54580_IG96
        mov      rax, 0xD1FFAB1E      ; function address
-       mov      qword ptr [rbp-0x90], rax
+       mov      qword ptr [rbp-0x68], rax
        lea      rax, G_M54580_IG34
-       mov      qword ptr [rbp-0x78], rax
-       lea      rax, bword ptr [rbp-0xA0]
+       mov      qword ptr [rbp-0x58], rax
+       lea      rax, [rbp-0x78]
        mov      qword ptr [r15+0x08], rax
        mov      byte  ptr [r15+0x04], 0
-						;; size=61 bbWeight=0.50 PerfScore 5.00
+						;; size=58 bbWeight=0.50 PerfScore 5.00
 G_M54580_IG32:
        mov      rax, 0xD1FFAB1E      ; function address
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M54580_IG33:
        call     rax ; Interop+Sys:Free(ulong)
 						;; size=2 bbWeight=0.50 PerfScore 1.50
 G_M54580_IG34:
        mov      byte  ptr [r15+0x04], 1
        mov      rcx, 0xD1FFAB1E      ; function address
        cmp      dword ptr [rcx], 0
        je       SHORT G_M54580_IG35
        mov      rdi, 0xD1FFAB1E
        call     [rdi]CORINFO_HELP_STOP_FOR_GC
 						;; size=32 bbWeight=0.50 PerfScore 4.25
 G_M54580_IG35:
-       mov      rdi, bword ptr [rbp-0x98]
+       mov      rdi, qword ptr [rbp-0x70]
        mov      qword ptr [r15+0x08], rdi
        jmp      G_M54580_IG96
-						;; size=16 bbWeight=0.50 PerfScore 2.00
+						;; size=13 bbWeight=0.50 PerfScore 2.00
 G_M54580_IG36:
        mov      edi, r14d
        sub      edi, 66
        cmp      edi, 3
        ja       SHORT G_M54580_IG40
        cmp      qword ptr [rbx+0x08], 0
-       mov      bword ptr [rbp-0x48], rbx
+       mov      bword ptr [rbp-0x88], rbx
        je       G_M54580_IG96
-       mov      rbx, bword ptr [rbp-0x48]
+       mov      rbx, bword ptr [rbp-0x88]
        mov      rdi, qword ptr [rbx+0x08]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x10]
        lea      rcx, G_M54580_IG38
-       mov      qword ptr [rbp-0x78], rcx
-       lea      rcx, bword ptr [rbp-0xA0]
+       mov      qword ptr [rbp-0x58], rcx
+       lea      rcx, [rbp-0x78]
        mov      qword ptr [r15+0x08], rcx
        mov      byte  ptr [r15+0x04], 0
-						;; size=68 bbWeight=0.50 PerfScore 9.12
+						;; size=71 bbWeight=0.50 PerfScore 9.12
 G_M54580_IG37:
        call     rax
 						;; size=2 bbWeight=0.50 PerfScore 1.50
 G_M54580_IG38:
        mov      byte  ptr [r15+0x04], 1
        mov      rcx, 0xD1FFAB1E      ; function address
        cmp      dword ptr [rcx], 0
        je       SHORT G_M54580_IG39
        mov      rdi, 0xD1FFAB1E
        call     [rdi]CORINFO_HELP_STOP_FOR_GC
 						;; size=32 bbWeight=0.50 PerfScore 4.25
 G_M54580_IG39:
-       mov      rdi, bword ptr [rbp-0x98]
+       mov      rdi, qword ptr [rbp-0x70]
        mov      qword ptr [r15+0x08], rdi
        jmp      G_M54580_IG96
-						;; size=16 bbWeight=0.50 PerfScore 2.00
+						;; size=13 bbWeight=0.50 PerfScore 2.00
 G_M54580_IG40:
        cmp      r14d, 73
        jne      G_M54580_IG49
-       mov      bword ptr [rbp-0x48], rbx
+       mov      bword ptr [rbp-0x88], rbx
        mov      r14, qword ptr [rbx+0x08]
        test     r14, r14
        je       G_M54580_IG96
        mov      rdi, qword ptr [r14+0x10]
        test     rdi, rdi
        je       SHORT G_M54580_IG44
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x10]
        lea      rcx, G_M54580_IG42
-       mov      qword ptr [rbp-0x78], rcx
-       lea      rcx, bword ptr [rbp-0xA0]
+       mov      qword ptr [rbp-0x58], rcx
+       lea      rcx, [rbp-0x78]
        mov      qword ptr [r15+0x08], rcx
        mov      byte  ptr [r15+0x04], 0
 						;; size=70 bbWeight=0.50 PerfScore 8.62
 G_M54580_IG41:
        call     rax
 						;; size=2 bbWeight=0.50 PerfScore 1.50
 G_M54580_IG42:
        mov      byte  ptr [r15+0x04], 1
        mov      rcx, 0xD1FFAB1E      ; function address
        cmp      dword ptr [rcx], 0
        je       SHORT G_M54580_IG43
        mov      rdi, 0xD1FFAB1E
        call     [rdi]CORINFO_HELP_STOP_FOR_GC
 						;; size=32 bbWeight=0.50 PerfScore 4.25
 G_M54580_IG43:
-       mov      rdi, bword ptr [rbp-0x98]
+       mov      rdi, qword ptr [rbp-0x70]
        mov      qword ptr [r15+0x08], rdi
-						;; size=11 bbWeight=0.50 PerfScore 1.00
+						;; size=8 bbWeight=0.50 PerfScore 1.00
 G_M54580_IG44:
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; function address
-       mov      qword ptr [rbp-0x90], rax
+       mov      qword ptr [rbp-0x68], rax
        lea      rax, G_M54580_IG47
-       mov      qword ptr [rbp-0x78], rax
-       lea      rax, bword ptr [rbp-0xA0]
+       mov      qword ptr [rbp-0x58], rax
+       lea      rax, [rbp-0x78]
        mov      qword ptr [r15+0x08], rax
        mov      byte  ptr [r15+0x04], 0
-						;; size=47 bbWeight=0.50 PerfScore 3.00
+						;; size=41 bbWeight=0.50 PerfScore 3.00
 G_M54580_IG45:
        mov      rax, 0xD1FFAB1E      ; function address
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M54580_IG46:
        call     rax ; Interop+Sys:Free(ulong)
 						;; size=2 bbWeight=0.50 PerfScore 1.50
 G_M54580_IG47:
        mov      byte  ptr [r15+0x04], 1
        mov      rcx, 0xD1FFAB1E      ; function address
        cmp      dword ptr [rcx], 0
        je       SHORT G_M54580_IG48
        mov      rdi, 0xD1FFAB1E
        call     [rdi]CORINFO_HELP_STOP_FOR_GC
 						;; size=32 bbWeight=0.50 PerfScore 4.25
 G_M54580_IG48:
-       mov      rdi, bword ptr [rbp-0x98]
+       mov      rdi, qword ptr [rbp-0x70]
        mov      qword ptr [r15+0x08], rdi
        jmp      G_M54580_IG96
-						;; size=16 bbWeight=0.50 PerfScore 2.00
+						;; size=13 bbWeight=0.50 PerfScore 2.00
 G_M54580_IG49:
        cmp      r14d, 71
        jne      G_M54580_IG59
-       mov      bword ptr [rbp-0x48], rbx
+       mov      bword ptr [rbp-0x88], rbx
        mov      r14, qword ptr [rbx+0x08]
        test     r14, r14
        je       G_M54580_IG96
        mov      rdi, qword ptr [r14+0x08]
        test     rdi, rdi
        je       SHORT G_M54580_IG54
        mov      rax, 0xD1FFAB1E      ; function address
-       mov      qword ptr [rbp-0x90], rax
+       mov      qword ptr [rbp-0x68], rax
        lea      rax, G_M54580_IG52
-       mov      qword ptr [rbp-0x78], rax
-       lea      rax, bword ptr [rbp-0xA0]
+       mov      qword ptr [rbp-0x58], rax
+       lea      rax, [rbp-0x78]
        mov      qword ptr [r15+0x08], rax
        mov      byte  ptr [r15+0x04], 0
-						;; size=80 bbWeight=0.50 PerfScore 7.25
+						;; size=77 bbWeight=0.50 PerfScore 7.25
 G_M54580_IG50:
        mov      rax, 0xD1FFAB1E      ; function address
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M54580_IG51:
        call     rax ; Interop+Sys:Free(ulong)
 						;; size=2 bbWeight=0.50 PerfScore 1.50
 G_M54580_IG52:
        mov      byte  ptr [r15+0x04], 1
        mov      rcx, 0xD1FFAB1E      ; function address
        cmp      dword ptr [rcx], 0
        je       SHORT G_M54580_IG53
        mov      rdi, 0xD1FFAB1E
        call     [rdi]CORINFO_HELP_STOP_FOR_GC
 						;; size=32 bbWeight=0.50 PerfScore 4.25
 G_M54580_IG53:
-       mov      rdi, bword ptr [rbp-0x98]
+       mov      rdi, qword ptr [rbp-0x70]
        mov      qword ptr [r15+0x08], rdi
-						;; size=11 bbWeight=0.50 PerfScore 1.00
+						;; size=8 bbWeight=0.50 PerfScore 1.00
 G_M54580_IG54:
        mov      rdi, r14
        mov      rax, 0xD1FFAB1E      ; function address
-       mov      qword ptr [rbp-0x90], rax
+       mov      qword ptr [rbp-0x68], rax
        lea      rax, G_M54580_IG57
-       mov      qword ptr [rbp-0x78], rax
-       lea      rax, bword ptr [rbp-0xA0]
+       mov      qword ptr [rbp-0x58], rax
+       lea      rax, [rbp-0x78]
        mov      qword ptr [r15+0x08], rax
        mov      byte  ptr [r15+0x04], 0
-						;; size=47 bbWeight=0.50 PerfScore 3.00
+						;; size=41 bbWeight=0.50 PerfScore 3.00
 G_M54580_IG55:
        mov      rax, 0xD1FFAB1E      ; function address
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M54580_IG56:
        call     rax ; Interop+Sys:Free(ulong)
 						;; size=2 bbWeight=0.50 PerfScore 1.50
 G_M54580_IG57:
        mov      byte  ptr [r15+0x04], 1
        mov      rcx, 0xD1FFAB1E      ; function address
        cmp      dword ptr [rcx], 0
        je       SHORT G_M54580_IG58
        mov      rdi, 0xD1FFAB1E
        call     [rdi]CORINFO_HELP_STOP_FOR_GC
 						;; size=32 bbWeight=0.50 PerfScore 4.25
 G_M54580_IG58:
-       mov      rdi, bword ptr [rbp-0x98]
+       mov      rdi, qword ptr [rbp-0x70]
        mov      qword ptr [r15+0x08], rdi
        jmp      G_M54580_IG96
-						;; size=16 bbWeight=0.50 PerfScore 2.00
+						;; size=13 bbWeight=0.50 PerfScore 2.00
 G_M54580_IG59:
        mov      edi, r14d
        test     edi, 0x1000
        je       SHORT G_M54580_IG61
        and      r14d, -0x1001
        cmp      r14d, 12
        jg       SHORT G_M54580_IG62
        cmp      r14d, 8
        je       SHORT G_M54580_IG64
        cmp      r14d, 12
        je       G_M54580_IG88
 						;; size=40 bbWeight=0.50 PerfScore 2.75
 G_M54580_IG60:
-       mov      bword ptr [rbp-0x48], rbx
+       mov      bword ptr [rbp-0x88], rbx
        jmp      G_M54580_IG91
-						;; size=9 bbWeight=0.25 PerfScore 0.75
+						;; size=12 bbWeight=0.25 PerfScore 0.75
 G_M54580_IG61:
-       mov      bword ptr [rbp-0x48], rbx
+       mov      bword ptr [rbp-0x88], rbx
        jmp      G_M54580_IG96
-						;; size=9 bbWeight=0.25 PerfScore 0.75
+						;; size=12 bbWeight=0.25 PerfScore 0.75
 G_M54580_IG62:
        lea      edi, [r14-0x1E]
        cmp      edi, 1
        jbe      G_M54580_IG72
        cmp      r14d, 71
        je       G_M54580_IG80
 						;; size=23 bbWeight=0.50 PerfScore 1.50
 G_M54580_IG63:
-       mov      bword ptr [rbp-0x48], rbx
+       mov      bword ptr [rbp-0x88], rbx
        jmp      G_M54580_IG91
-						;; size=9 bbWeight=0.25 PerfScore 0.75
+						;; size=12 bbWeight=0.25 PerfScore 0.75
 G_M54580_IG64:
-       mov      bword ptr [rbp-0x48], rbx
+       mov      bword ptr [rbp-0x88], rbx
        lea      rdi, bword ptr [rbx+0x08]
        mov      r13, qword ptr [rdi+0x08]
        mov      r14d, dword ptr [rdi]
        test     r14d, r14d
        jl       G_M54580_IG102
-       mov      bword ptr [rbp-0x50], r13
+       mov      bword ptr [rbp-0x90], r13
        xor      r12d, r12d
        test     r14d, r14d
        jle      G_M54580_IG91
-						;; size=40 bbWeight=0.50 PerfScore 4.62
+						;; size=46 bbWeight=0.50 PerfScore 4.62
 G_M54580_IG65:
        mov      rdi, qword ptr [r13+8*r12]
        test     rdi, rdi
        je       SHORT G_M54580_IG71
 						;; size=10 bbWeight=4 PerfScore 13.00
 G_M54580_IG66:
        add      rdi, -8
        mov      rax, 0xD1FFAB1E      ; function address
-       mov      qword ptr [rbp-0x90], rax
+       mov      qword ptr [rbp-0x68], rax
        lea      rax, G_M54580_IG69
-       mov      qword ptr [rbp-0x78], rax
-       lea      rax, bword ptr [rbp-0xA0]
+       mov      qword ptr [rbp-0x58], rax
+       lea      rax, [rbp-0x78]
        mov      qword ptr [r15+0x08], rax
        mov      byte  ptr [r15+0x04], 0
-						;; size=48 bbWeight=2 PerfScore 12.00
+						;; size=42 bbWeight=2 PerfScore 12.00
 G_M54580_IG67:
        mov      rax, 0xD1FFAB1E      ; function address
 						;; size=10 bbWeight=2 PerfScore 0.50
 G_M54580_IG68:
        call     rax ; Interop+Sys:Free(ulong)
 						;; size=2 bbWeight=2 PerfScore 6.00
 G_M54580_IG69:
        mov      byte  ptr [r15+0x04], 1
        mov      rcx, 0xD1FFAB1E      ; function address
        cmp      dword ptr [rcx], 0
        je       SHORT G_M54580_IG70
        mov      rdi, 0xD1FFAB1E
        call     [rdi]CORINFO_HELP_STOP_FOR_GC
 						;; size=32 bbWeight=2 PerfScore 17.00
 G_M54580_IG70:
-       mov      rdi, bword ptr [rbp-0x98]
+       mov      rdi, qword ptr [rbp-0x70]
        mov      qword ptr [r15+0x08], rdi
-						;; size=11 bbWeight=2 PerfScore 4.00
+						;; size=8 bbWeight=2 PerfScore 4.00
 G_M54580_IG71:
        inc      r12d
        cmp      r12d, r14d
-       mov      r13, bword ptr [rbp-0x50]
+       mov      r13, bword ptr [rbp-0x90]
        jl       SHORT G_M54580_IG65
        jmp      G_M54580_IG91
-						;; size=17 bbWeight=4 PerfScore 18.00
+						;; size=20 bbWeight=4 PerfScore 18.00
 G_M54580_IG72:
-       mov      bword ptr [rbp-0x48], rbx
+       mov      bword ptr [rbp-0x88], rbx
        lea      rdi, bword ptr [rbx+0x08]
        mov      r14, qword ptr [rdi+0x08]
        mov      r13d, dword ptr [rdi]
        test     r13d, r13d
        jl       G_M54580_IG102
-       mov      bword ptr [rbp-0x58], r14
+       mov      bword ptr [rbp-0x98], r14
        xor      r12d, r12d
        test     r13d, r13d
        jle      G_M54580_IG91
-						;; size=40 bbWeight=0.50 PerfScore 4.62
+						;; size=46 bbWeight=0.50 PerfScore 4.62
 G_M54580_IG73:
        mov      rdi, qword ptr [r14+8*r12]
        test     rdi, rdi
        je       SHORT G_M54580_IG79
 						;; size=9 bbWeight=4 PerfScore 13.00
 G_M54580_IG74:
        mov      rax, 0xD1FFAB1E      ; function address
-       mov      qword ptr [rbp-0x90], rax
+       mov      qword ptr [rbp-0x68], rax
        lea      rax, G_M54580_IG77
-       mov      qword ptr [rbp-0x78], rax
-       lea      rax, bword ptr [rbp-0xA0]
+       mov      qword ptr [rbp-0x58], rax
+       lea      rax, [rbp-0x78]
        mov      qword ptr [r15+0x08], rax
        mov      byte  ptr [r15+0x04], 0
-						;; size=44 bbWeight=2 PerfScore 11.50
+						;; size=38 bbWeight=2 PerfScore 11.50
 G_M54580_IG75:
        mov      rax, 0xD1FFAB1E      ; function address
 						;; size=10 bbWeight=2 PerfScore 0.50
 G_M54580_IG76:
        call     rax ; Interop+Sys:Free(ulong)
 						;; size=2 bbWeight=2 PerfScore 6.00
 G_M54580_IG77:
        mov      byte  ptr [r15+0x04], 1
        mov      rcx, 0xD1FFAB1E      ; function address
        cmp      dword ptr [rcx], 0
        je       SHORT G_M54580_IG78
        mov      rdi, 0xD1FFAB1E
        call     [rdi]CORINFO_HELP_STOP_FOR_GC
 						;; size=32 bbWeight=2 PerfScore 17.00
 G_M54580_IG78:
-       mov      rdi, bword ptr [rbp-0x98]
+       mov      rdi, qword ptr [rbp-0x70]
        mov      qword ptr [r15+0x08], rdi
-						;; size=11 bbWeight=2 PerfScore 4.00
+						;; size=8 bbWeight=2 PerfScore 4.00
 G_M54580_IG79:
        inc      r12d
        cmp      r12d, r13d
-       mov      r14, bword ptr [rbp-0x58]
+       mov      r14, bword ptr [rbp-0x98]
        jl       SHORT G_M54580_IG73
        jmp      G_M54580_IG91
-						;; size=17 bbWeight=4 PerfScore 18.00
+						;; size=20 bbWeight=4 PerfScore 18.00
 G_M54580_IG80:
-       mov      bword ptr [rbp-0x48], rbx
+       mov      bword ptr [rbp-0x88], rbx
        lea      rdi, bword ptr [rbx+0x08]
        mov      r14, qword ptr [rdi+0x08]
        mov      r13d, dword ptr [rdi]
        test     r13d, r13d
        jl       G_M54580_IG102
-       mov      bword ptr [rbp-0x60], r14
+       mov      bword ptr [rbp-0xA0], r14
        xor      r12d, r12d
        test     r13d, r13d
        jle      G_M54580_IG91
-						;; size=40 bbWeight=0.50 PerfScore 4.62
+						;; size=46 bbWeight=0.50 PerfScore 4.62
 G_M54580_IG81:
        mov      rdi, r12
        shl      rdi, 4
        mov      rdi, qword ptr [r14+rdi+0x08]
        test     rdi, rdi
        je       SHORT G_M54580_IG87
 						;; size=17 bbWeight=4 PerfScore 16.00
 G_M54580_IG82:
        mov      rax, 0xD1FFAB1E      ; function address
-       mov      qword ptr [rbp-0x90], rax
+       mov      qword ptr [rbp-0x68], rax
        lea      rax, G_M54580_IG85
-       mov      qword ptr [rbp-0x78], rax
-       lea      rax, bword ptr [rbp-0xA0]
+       mov      qword ptr [rbp-0x58], rax
+       lea      rax, [rbp-0x78]
        mov      qword ptr [r15+0x08], rax
        mov      byte  ptr [r15+0x04], 0
-						;; size=44 bbWeight=2 PerfScore 11.50
+						;; size=38 bbWeight=2 PerfScore 11.50
 G_M54580_IG83:
        mov      rax, 0xD1FFAB1E      ; function address
 						;; size=10 bbWeight=2 PerfScore 0.50
 G_M54580_IG84:
        call     rax ; Interop+Sys:Free(ulong)
 						;; size=2 bbWeight=2 PerfScore 6.00
 G_M54580_IG85:
        mov      byte  ptr [r15+0x04], 1
        mov      rcx, 0xD1FFAB1E      ; function address
        cmp      dword ptr [rcx], 0
        je       SHORT G_M54580_IG86
        mov      rdi, 0xD1FFAB1E
        call     [rdi]CORINFO_HELP_STOP_FOR_GC
 						;; size=32 bbWeight=2 PerfScore 17.00
 G_M54580_IG86:
-       mov      rdi, bword ptr [rbp-0x98]
+       mov      rdi, qword ptr [rbp-0x70]
        mov      qword ptr [r15+0x08], rdi
-						;; size=11 bbWeight=2 PerfScore 4.00
+						;; size=8 bbWeight=2 PerfScore 4.00
 G_M54580_IG87:
        inc      r12d
        cmp      r12d, r13d
-       mov      r14, bword ptr [rbp-0x60]
+       mov      r14, bword ptr [rbp-0xA0]
        jl       SHORT G_M54580_IG81
        jmp      SHORT G_M54580_IG91
-						;; size=14 bbWeight=4 PerfScore 18.00
+						;; size=17 bbWeight=4 PerfScore 18.00
 G_M54580_IG88:
        lea      rdi, bword ptr [rbx+0x08]
        mov      r14, qword ptr [rdi+0x08]
        mov      r13d, dword ptr [rdi]
        test     r13d, r13d
        jl       G_M54580_IG102
        xor      r12d, r12d
        test     r13d, r13d
        jle      G_M54580_IG98
 						;; size=32 bbWeight=0.50 PerfScore 3.62
 G_M54580_IG89:
        lea      rdi, [r12+2*r12]
        vmovdqu  xmm2, xmmword ptr [r14+8*rdi]
        vmovdqu  xmmword ptr [rbp-0x40], xmm2
        mov      rax, qword ptr [r14+8*rdi+0x10]
        mov      qword ptr [rbp-0x30], rax
        lea      rdi, [rbp-0x40]
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.Marshalling.ComVariant:Dispose():this
        call     [rax]System.Runtime.InteropServices.Marshalling.ComVariant:Dispose():this
        inc      r12d
        cmp      r12d, r13d
        jl       SHORT G_M54580_IG89
 						;; size=48 bbWeight=4 PerfScore 55.00
 G_M54580_IG90:
-       mov      bword ptr [rbp-0x48], rbx
-						;; size=4 bbWeight=2 PerfScore 2.00
+       mov      bword ptr [rbp-0x88], rbx
+						;; size=7 bbWeight=2 PerfScore 2.00
 G_M54580_IG91:
-       mov      rbx, bword ptr [rbp-0x48]
+       mov      rbx, bword ptr [rbp-0x88]
        mov      rdi, qword ptr [rbx+0x10]
        test     rdi, rdi
        je       SHORT G_M54580_IG96
        mov      rax, 0xD1FFAB1E      ; function address
-       mov      qword ptr [rbp-0x90], rax
+       mov      qword ptr [rbp-0x68], rax
        lea      rax, G_M54580_IG94
-       mov      qword ptr [rbp-0x78], rax
-       lea      rax, bword ptr [rbp-0xA0]
+       mov      qword ptr [rbp-0x58], rax
+       lea      rax, [rbp-0x78]
        mov      qword ptr [r15+0x08], rax
        mov      byte  ptr [r15+0x04], 0
-						;; size=57 bbWeight=0.50 PerfScore 5.00
+						;; size=54 bbWeight=0.50 PerfScore 5.00
 G_M54580_IG92:
        mov      rax, 0xD1FFAB1E      ; function address
 						;; size=10 bbWeight=0.50 PerfScore 0.12
 G_M54580_IG93:
        call     rax ; Interop+Sys:Free(ulong)
 						;; size=2 bbWeight=0.50 PerfScore 1.50
 G_M54580_IG94:
        mov      byte  ptr [r15+0x04], 1
        mov      rcx, 0xD1FFAB1E      ; function address
        cmp      dword ptr [rcx], 0
        je       SHORT G_M54580_IG95
        mov      rdi, 0xD1FFAB1E
        call     [rdi]CORINFO_HELP_STOP_FOR_GC
 						;; size=32 bbWeight=0.50 PerfScore 4.25
 G_M54580_IG95:
-       mov      rdi, bword ptr [rbp-0x98]
+       mov      rdi, qword ptr [rbp-0x70]
        mov      qword ptr [r15+0x08], rdi
-						;; size=11 bbWeight=0.50 PerfScore 1.00
+						;; size=8 bbWeight=0.50 PerfScore 1.00
 G_M54580_IG96:
-       mov      rbx, bword ptr [rbp-0x48]
+       mov      rbx, bword ptr [rbp-0x88]
        vxorps   xmm2, xmm2, xmm2
        vmovdqu  xmmword ptr [rbx], xmm2
        vmovdqu  xmmword ptr [rbx+0x08], xmm2
-						;; size=17 bbWeight=1 PerfScore 5.33
+						;; size=20 bbWeight=1 PerfScore 5.33
 G_M54580_IG97:
-       add      rsp, 136
+       add      rsp, 120
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=18 bbWeight=1 PerfScore 4.25
+						;; size=15 bbWeight=1 PerfScore 4.25
 G_M54580_IG98:
-       mov      bword ptr [rbp-0x48], rbx
+       mov      bword ptr [rbp-0x88], rbx
        jmp      G_M54580_IG91
-						;; size=9 bbWeight=0.25 PerfScore 0.75
+						;; size=12 bbWeight=0.25 PerfScore 0.75
 G_M54580_IG99:
        mov      rdi, 0xD1FFAB1E      ; System.PlatformNotSupportedException
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
        mov      rax, 0xD1FFAB1E      ; code for System.SR:get_ComVariant_SafeArray_PlatformNotSupported():System.String
        call     [rax]System.SR:get_ComVariant_SafeArray_PlatformNotSupported():System.String
        mov      rsi, rax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.PlatformNotSupportedException:.ctor(System.String):this
        call     [rax]System.PlatformNotSupportedException:.ctor(System.String):this
        mov      rdi, rbx
        call     CORINFO_HELP_THROW
        int3     
 						;; size=57 bbWeight=0 PerfScore 0.00
 G_M54580_IG100:
        mov      edi, eax
        mov      rax, 0xD1FFAB1E      ; code for System.Runtime.InteropServices.Marshal:GetExceptionForHR(int):System.Exception
        call     [rax]System.Runtime.InteropServices.Marshal:GetExceptionForHR(int):System.Exception
        mov      rdi, rax
        call     CORINFO_HELP_THROW
        int3     
 						;; size=23 bbWeight=0 PerfScore 0.00
 G_M54580_IG101:
        mov      edi, 0x18B98
        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_M54580_IG102:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 2408, prolog size 31, PerfScore 493.33, instruction count 507, allocated bytes for code 2408 (MethodHash=54b32acb) for method System.Runtime.InteropServices.Marshalling.ComVariant:Dispose():this (FullOpts)
+; Total bytes of code 2360, prolog size 28, PerfScore 493.08, instruction count 506, allocated bytes for code 2360 (MethodHash=54b32acb) for method System.Runtime.InteropServices.Marshalling.ComVariant:Dispose():this (FullOpts)
-45 (-5.45 % of base) - (dynamicClass):IL_STUB_PInvoke(long,ulong):int
 ; Assembly listing for method (dynamicClass):IL_STUB_PInvoke(long,ulong):int (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )    long  ->  rbx         single-def
 ;  V01 arg1         [V01,T02] (  3,  3   )    long  ->  r15         single-def
 ;* V02 loc0         [V02    ] (  0,  0   )     int  ->  zero-ref   
 ;* V03 loc1         [V03    ] (  0,  0   )    long  ->  zero-ref   
 ;* V04 loc2         [V04    ] (  0,  0   )    long  ->  zero-ref   
 ;* V05 loc3         [V05    ] (  0,  0   )     int  ->  zero-ref   
 ;* V06 loc4         [V06    ] (  0,  0   )     int  ->  zero-ref   
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T03] (  4,  4   )    long  ->  [rbp-0x30]  do-not-enreg[V] "stub argument"
+;  V08 tmp1         [V08,T03] (  4,  4   )    long  ->  [rbp-0x30]  "stub argument"
 ;  V09 tmp2         [V09,T04] (  2,  4   )    long  ->  rax         "impImportIndirectCall"
 ;  V10 tmp3         [V10,T05] (  2,  4   )     int  ->  rax         "Single return block return value"
-;  V11 FramesRoot   [V11,T00] (  6,  6   )    long  ->  r14         "Pinvoke FrameListRoot"
-;  V12 PInvokeFrame [V12    ] (  8,  8   )  struct (72) [rbp-0x78]  do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
+;  V11 FramesRoot   [V11,T00] (  6,  6   )    long  ->  r13         "Pinvoke FrameListRoot"
+;  V12 PInvokeFrame [V12    ] (  9,  9   )  struct (72) [rbp-0x78]  do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
 ;
 ; Lcl frame size = 88
 
 G_M20446_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 88
        lea      rbp, [rsp+0x80]
-       mov      qword ptr [rbp-0x30], r10
        mov      rbx, rdi
        mov      r15, rsi
-						;; size=32 bbWeight=1 PerfScore 8.25
+       mov      r14, r10
+						;; size=31 bbWeight=1 PerfScore 7.50
 G_M20446_IG02:
        lea      rdi, [rbp-0x70]
-       mov      rsi, qword ptr [rbp-0x30]
        call     CORINFO_HELP_INIT_PINVOKE_FRAME
-       mov      r14, rax
+       mov      r13, rax
+       mov      qword ptr [rbp-0x38], r14
        mov      rdi, rsp
-       mov      qword ptr [rbp-0x50], rdi
+       mov      qword ptr [rbp-0x58], rdi
        mov      rdi, rbp
-       mov      qword ptr [rbp-0x40], rdi
-       lea      rdi, bword ptr [rbp-0x70]
-       mov      qword ptr [r14+0x08], rdi
-       mov      rdi, qword ptr [rbp-0x30]
-       mov      rax, qword ptr [rdi+0x18]
+       mov      qword ptr [rbp-0x48], rdi
+       lea      rdi, [rbp-0x70]
+       mov      qword ptr [r13+0x08], rdi
+       mov      rax, qword ptr [r14+0x18]
        mov      rdi, rbx
        mov      rsi, r15
-       mov      rcx, qword ptr [rbp-0x30]
-       mov      qword ptr [rbp-0x60], rcx
+       mov      qword ptr [rbp-0x60], r14
        lea      rcx, G_M20446_IG04
-       mov      qword ptr [rbp-0x48], rcx
-       mov      byte  ptr [r14+0x04], 0
-						;; size=76 bbWeight=1 PerfScore 15.25
+       mov      qword ptr [rbp-0x50], rcx
+       mov      byte  ptr [r13+0x04], 0
+						;; size=68 bbWeight=1 PerfScore 13.25
 G_M20446_IG03:
        call     rax
 						;; size=2 bbWeight=1 PerfScore 3.00
 G_M20446_IG04:
-       mov      byte  ptr [r14+0x04], 1
+       mov      byte  ptr [r13+0x04], 1
        mov      rcx, 0xD1FFAB1E      ; function address
        cmp      dword ptr [rcx], 0
        je       SHORT G_M20446_IG05
        mov      rdi, 0xD1FFAB1E
        call     [rdi]CORINFO_HELP_STOP_FOR_GC
 						;; size=32 bbWeight=1 PerfScore 8.50
 G_M20446_IG05:
-       mov      rcx, bword ptr [rbp-0x68]
-       mov      qword ptr [r14+0x08], rcx
+       mov      rcx, qword ptr [rbp-0x68]
+       mov      qword ptr [r13+0x08], rcx
 						;; size=8 bbWeight=1 PerfScore 2.00
 G_M20446_IG06:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 
-; Total bytes of code 165, prolog size 26, PerfScore 41.25, instruction count 47, allocated bytes for code 165 (MethodHash=da22b021) for method (dynamicClass):IL_STUB_PInvoke(long,ulong):int (FullOpts)
+; Total bytes of code 156, prolog size 22, PerfScore 38.50, instruction count 45, allocated bytes for code 156 (MethodHash=da22b021) for method (dynamicClass):IL_STUB_PInvoke(long,ulong):int (FullOpts)
-45 (-5.45 % of base) - (dynamicClass):IL_STUB_PInvoke(ulong,int):int
 ; Assembly listing for method (dynamicClass):IL_STUB_PInvoke(ulong,int):int (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )    long  ->  rbx         single-def
 ;  V01 arg1         [V01,T02] (  3,  3   )     int  ->  r15         single-def
 ;* V02 loc0         [V02    ] (  0,  0   )     int  ->  zero-ref   
 ;* V03 loc1         [V03    ] (  0,  0   )    long  ->  zero-ref   
 ;  V04 loc2         [V04,T06] (  2,  2   )    long  ->  rsi        
 ;* V05 loc3         [V05    ] (  0,  0   )     int  ->  zero-ref   
 ;* V06 loc4         [V06    ] (  0,  0   )     int  ->  zero-ref   
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08,T03] (  4,  4   )    long  ->  [rbp-0x30]  do-not-enreg[V] "stub argument"
+;  V08 tmp1         [V08,T03] (  4,  4   )    long  ->  [rbp-0x30]  "stub argument"
 ;  V09 tmp2         [V09,T04] (  2,  4   )    long  ->  rax         "impImportIndirectCall"
 ;  V10 tmp3         [V10,T05] (  2,  4   )     int  ->  rax         "Single return block return value"
-;  V11 FramesRoot   [V11,T00] (  6,  6   )    long  ->  r14         "Pinvoke FrameListRoot"
-;  V12 PInvokeFrame [V12    ] (  8,  8   )  struct (72) [rbp-0x78]  do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
+;  V11 FramesRoot   [V11,T00] (  6,  6   )    long  ->  r13         "Pinvoke FrameListRoot"
+;  V12 PInvokeFrame [V12    ] (  9,  9   )  struct (72) [rbp-0x78]  do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
 ;
 ; Lcl frame size = 88
 
 G_M51271_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 88
        lea      rbp, [rsp+0x80]
-       mov      qword ptr [rbp-0x30], r10
        mov      rbx, rdi
        mov      r15d, esi
-						;; size=32 bbWeight=1 PerfScore 8.25
+       mov      r14, r10
+						;; size=31 bbWeight=1 PerfScore 7.50
 G_M51271_IG02:
        lea      rdi, [rbp-0x70]
-       mov      rsi, qword ptr [rbp-0x30]
        call     CORINFO_HELP_INIT_PINVOKE_FRAME
-       mov      r14, rax
+       mov      r13, rax
+       mov      qword ptr [rbp-0x38], r14
        mov      rdi, rsp
-       mov      qword ptr [rbp-0x50], rdi
+       mov      qword ptr [rbp-0x58], rdi
        mov      rdi, rbp
-       mov      qword ptr [rbp-0x40], rdi
-       lea      rdi, bword ptr [rbp-0x70]
-       mov      qword ptr [r14+0x08], rdi
+       mov      qword ptr [rbp-0x48], rdi
+       lea      rdi, [rbp-0x70]
+       mov      qword ptr [r13+0x08], rdi
        movsxd   rsi, r15d
-       mov      rdi, qword ptr [rbp-0x30]
-       mov      rax, qword ptr [rdi+0x18]
+       mov      rax, qword ptr [r14+0x18]
        mov      rdi, rbx
-       mov      rcx, qword ptr [rbp-0x30]
-       mov      qword ptr [rbp-0x60], rcx
+       mov      qword ptr [rbp-0x60], r14
        lea      rcx, G_M51271_IG04
-       mov      qword ptr [rbp-0x48], rcx
-       mov      byte  ptr [r14+0x04], 0
-						;; size=76 bbWeight=1 PerfScore 15.25
+       mov      qword ptr [rbp-0x50], rcx
+       mov      byte  ptr [r13+0x04], 0
+						;; size=68 bbWeight=1 PerfScore 13.25
 G_M51271_IG03:
        call     rax
 						;; size=2 bbWeight=1 PerfScore 3.00
 G_M51271_IG04:
-       mov      byte  ptr [r14+0x04], 1
+       mov      byte  ptr [r13+0x04], 1
        mov      rcx, 0xD1FFAB1E      ; function address
        cmp      dword ptr [rcx], 0
        je       SHORT G_M51271_IG05
        mov      rdi, 0xD1FFAB1E
        call     [rdi]CORINFO_HELP_STOP_FOR_GC
 						;; size=32 bbWeight=1 PerfScore 8.50
 G_M51271_IG05:
-       mov      rcx, bword ptr [rbp-0x68]
-       mov      qword ptr [r14+0x08], rcx
+       mov      rcx, qword ptr [rbp-0x68]
+       mov      qword ptr [r13+0x08], rcx
 						;; size=8 bbWeight=1 PerfScore 2.00
 G_M51271_IG06:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 
-; Total bytes of code 165, prolog size 26, PerfScore 41.25, instruction count 47, allocated bytes for code 165 (MethodHash=b44c37b8) for method (dynamicClass):IL_STUB_PInvoke(ulong,int):int (FullOpts)
+; Total bytes of code 156, prolog size 22, PerfScore 38.50, instruction count 45, allocated bytes for code 156 (MethodHash=b44c37b8) for method (dynamicClass):IL_STUB_PInvoke(ulong,int):int (FullOpts)
-45 (-5.66 % of base) - (dynamicClass):IL_STUB_PInvoke(ulong):int
 ; Assembly listing for method (dynamicClass):IL_STUB_PInvoke(ulong):int (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )    long  ->  rbx         single-def
 ;* V01 loc0         [V01    ] (  0,  0   )     int  ->  zero-ref   
 ;* V02 loc1         [V02    ] (  0,  0   )    long  ->  zero-ref   
 ;* V03 loc2         [V03    ] (  0,  0   )     int  ->  zero-ref   
 ;* V04 loc3         [V04    ] (  0,  0   )     int  ->  zero-ref   
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06,T02] (  4,  4   )    long  ->  [rbp-0x30]  do-not-enreg[V] "stub argument"
+;  V06 tmp1         [V06,T02] (  4,  4   )    long  ->  [rbp-0x30]  "stub argument"
 ;  V07 tmp2         [V07,T03] (  2,  4   )    long  ->  rax         "impImportIndirectCall"
 ;  V08 tmp3         [V08,T04] (  2,  4   )     int  ->  rax         "Single return block return value"
-;  V09 FramesRoot   [V09,T00] (  6,  6   )    long  ->  r15         "Pinvoke FrameListRoot"
-;  V10 PInvokeFrame [V10    ] (  8,  8   )  struct (72) [rbp-0x78]  do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
+;  V09 FramesRoot   [V09,T00] (  6,  6   )    long  ->  r14         "Pinvoke FrameListRoot"
+;  V10 PInvokeFrame [V10    ] (  9,  9   )  struct (72) [rbp-0x78]  do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
 ;
 ; Lcl frame size = 88
 
 G_M30136_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 88
        lea      rbp, [rsp+0x80]
-       mov      qword ptr [rbp-0x30], r10
        mov      rbx, rdi
-						;; size=29 bbWeight=1 PerfScore 8.00
+       mov      r15, r10
+						;; size=28 bbWeight=1 PerfScore 7.25
 G_M30136_IG02:
        lea      rdi, [rbp-0x70]
-       mov      rsi, qword ptr [rbp-0x30]
        call     CORINFO_HELP_INIT_PINVOKE_FRAME
-       mov      r15, rax
+       mov      r14, rax
+       mov      qword ptr [rbp-0x38], r15
        mov      rdi, rsp
-       mov      qword ptr [rbp-0x50], rdi
+       mov      qword ptr [rbp-0x58], rdi
        mov      rdi, rbp
-       mov      qword ptr [rbp-0x40], rdi
-       lea      rdi, bword ptr [rbp-0x70]
-       mov      qword ptr [r15+0x08], rdi
-       mov      rdi, qword ptr [rbp-0x30]
-       mov      rax, qword ptr [rdi+0x18]
+       mov      qword ptr [rbp-0x48], rdi
+       lea      rdi, [rbp-0x70]
+       mov      qword ptr [r14+0x08], rdi
+       mov      rax, qword ptr [r15+0x18]
        mov      rdi, rbx
-       mov      rcx, qword ptr [rbp-0x30]
-       mov      qword ptr [rbp-0x60], rcx
+       mov      qword ptr [rbp-0x60], r15
        lea      rcx, G_M30136_IG04
-       mov      qword ptr [rbp-0x48], rcx
-       mov      byte  ptr [r15+0x04], 0
-						;; size=73 bbWeight=1 PerfScore 15.00
+       mov      qword ptr [rbp-0x50], rcx
+       mov      byte  ptr [r14+0x04], 0
+						;; size=65 bbWeight=1 PerfScore 13.00
 G_M30136_IG03:
        call     rax
 						;; size=2 bbWeight=1 PerfScore 3.00
 G_M30136_IG04:
-       mov      byte  ptr [r15+0x04], 1
+       mov      byte  ptr [r14+0x04], 1
        mov      rcx, 0xD1FFAB1E      ; function address
        cmp      dword ptr [rcx], 0
        je       SHORT G_M30136_IG05
        mov      rdi, 0xD1FFAB1E
        call     [rdi]CORINFO_HELP_STOP_FOR_GC
 						;; size=32 bbWeight=1 PerfScore 8.50
 G_M30136_IG05:
-       mov      rcx, bword ptr [rbp-0x68]
-       mov      qword ptr [r15+0x08], rcx
+       mov      rcx, qword ptr [rbp-0x68]
+       mov      qword ptr [r14+0x08], rcx
 						;; size=8 bbWeight=1 PerfScore 2.00
 G_M30136_IG06:
        add      rsp, 88
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 
-; Total bytes of code 159, prolog size 26, PerfScore 40.75, instruction count 45, allocated bytes for code 159 (MethodHash=41088a47) for method (dynamicClass):IL_STUB_PInvoke(ulong):int (FullOpts)
+; Total bytes of code 150, prolog size 22, PerfScore 38.00, instruction count 43, allocated bytes for code 150 (MethodHash=41088a47) for method (dynamicClass):IL_STUB_PInvoke(ulong):int (FullOpts)

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

@MihuBot
Copy link
Owner Author

MihuBot commented Apr 12, 2024

@jakobbotsch

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant