MihuBot / runtime-utils

0 stars 0 forks source link

[JitDiff ARM64] [xtqqczze] Refactor memory copies in `SafeBuffer` #547

Open MihuBot opened 1 month ago

MihuBot commented 1 month ago

Job completed in 25 minutes. https://github.com/dotnet/runtime/pull/105206

Diffs

Diffs ``` Found 330 files with textual diffs. Summary of Code Size diffs: (Lower is better) Total bytes of base: 47407708 Total bytes of diff: 47407576 Total bytes of delta: -132 (-0.00 % of base) Total relative delta: -1.67 diff is an improvement. relative diff is an improvement. Top file regressions (bytes): 528 : System.Formats.Tar.dasm (0.35 % of base) 400 : System.DirectoryServices.Protocols.dasm (0.22 % of base) 48 : System.Collections.Specialized.dasm (0.28 % of base) 4 : System.Net.Http.dasm (0.00 % of base) 4 : System.Drawing.Primitives.dasm (0.01 % of base) 4 : System.Configuration.ConfigurationManager.dasm (0.00 % of base) 4 : System.Reflection.Metadata.dasm (0.00 % of base) Top file improvements (bytes): -380 : System.Private.CoreLib.dasm (-0.00 % of base) -296 : System.Diagnostics.TraceSource.dasm (-0.48 % of base) -232 : System.Runtime.Caching.dasm (-0.32 % of base) -52 : System.Net.NameResolution.dasm (-0.10 % of base) -48 : System.Memory.Data.dasm (-0.27 % of base) -28 : Microsoft.VisualBasic.Core.dasm (-0.00 % of base) -20 : Microsoft.Extensions.Logging.TraceSource.dasm (-0.19 % of base) -16 : System.Threading.Channels.dasm (-0.01 % of base) -16 : System.Diagnostics.Process.dasm (-0.01 % of base) -12 : System.Transactions.Local.dasm (-0.01 % of base) -12 : System.Composition.Hosting.dasm (-0.01 % of base) -8 : System.Composition.Runtime.dasm (-0.03 % of base) -4 : Microsoft.Extensions.DependencyModel.dasm (-0.00 % of base) 20 total files with Code Size differences (13 improved, 7 regressed), 239 unchanged. Top method regressions (bytes): 28 (1.48 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader+d__68:MoveNext():this (FullOpts) 20 (1.15 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHelpers+d__7:MoveNext():this (FullOpts) 20 (0.94 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHelpers+d__9:MoveNext():this (FullOpts) 16 (0.77 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryAttribute:GetValues(System.Type):System.Object[]:this (FullOpts) 16 (0.96 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader+d__64:MoveNext():this (FullOpts) 16 (0.66 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader+d__99:MoveNext():this (FullOpts) 16 (0.92 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarReader+d__8:MoveNext():this (FullOpts) 16 (1.14 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarWriter+d__16:MoveNext():this (FullOpts) 16 (0.63 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarWriter+d__20:MoveNext():this (FullOpts) 12 (1.22 % of base) : System.Formats.Tar.dasm - Interop+ErrorInfo:ToString():System.String:this (FullOpts) 12 (0.62 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.ConversionResolution:.cctor() (FullOpts) 12 (5.88 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryAttribute:.cctor() (FullOpts) 12 (0.31 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection+d__57:MoveNext():this (FullOpts) 12 (0.73 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader:CollectExtendedAttributesFromStandardFieldsIfNeeded():this (FullOpts) 12 (1.58 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader:ReadGnuLongPathDataBlock(System.IO.Stream):this (FullOpts) 12 (0.89 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarWriter+d__22:MoveNext():this (FullOpts) 8 (1.23 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.BitVector32+Section:ToString(System.Collections.Specialized.BitVector32+Section):System.String (FullOpts) 8 (0.22 % of base) : System.Composition.Hosting.dasm - System.Composition.Hosting.Providers.Metadata.MetadataViewProvider:GetMetadataViewProvider[int]():System.Func`2[System.Collections.Generic.IDictionary`2[System.String,System.Object],int] (FullOpts) 8 (0.22 % of base) : System.Composition.Hosting.dasm - System.Composition.Hosting.Providers.Metadata.MetadataViewProvider:GetMetadataViewProvider[System.Numerics.Vector`1[float]]():System.Func`2[System.Collections.Generic.IDictionary`2[System.String,System.Object],System.Numerics.Vector`1[float]] (FullOpts) 8 (0.22 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.BerConverter:Encode(System.String,System.Object[]):ubyte[] (FullOpts) 8 (0.92 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:Abort(System.IAsyncResult):this (FullOpts) 8 (0.45 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:BeginSendRequest(System.DirectoryServices.Protocols.DirectoryRequest,System.TimeSpan,int,System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts) 8 (0.55 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:ConstructParsedResult(long,byref,byref,byref,byref,byref):int:this (FullOpts) 8 (2.22 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:Dispose(ubyte):this (FullOpts) 8 (0.94 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:EndSendRequest(System.IAsyncResult):System.DirectoryServices.Protocols.DirectoryResponse:this (FullOpts) 8 (1.39 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:Init():this (FullOpts) 8 (1.90 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapPartialResultsProcessor:AddResult(System.DirectoryServices.Protocols.SearchResponse,System.DirectoryServices.Protocols.SearchResponse) (FullOpts) 8 (0.95 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapPartialResultsProcessor:GetPartialResults(System.DirectoryServices.Protocols.LdapPartialAsyncResult):System.DirectoryServices.Protocols.PartialResultsCollection:this (FullOpts) 8 (1.21 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapSessionOptions:ProcessDereferenceConnection(long,long):int:this (FullOpts) 8 (0.45 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarFile+d__9:MoveNext():this (FullOpts) 8 (0.45 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarFile+d__15:MoveNext():this (FullOpts) 8 (0.33 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarFile+d__16:MoveNext():this (FullOpts) 8 (0.49 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader:GenerateExtendedAttributeName():System.String:this (FullOpts) 8 (0.55 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader:GenerateExtendedAttributesDataStream(System.Collections.Generic.Dictionary`2[System.String,System.String]):System.IO.MemoryStream (FullOpts) 8 (1.53 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader:ReadExtendedAttributesBlock(System.IO.Stream):this (FullOpts) 8 (0.51 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader:TryReadCommonAttributes(System.ReadOnlySpan`1[ubyte],int):System.Formats.Tar.TarHeader (FullOpts) 8 (1.05 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader:WriteAsGnu(System.IO.Stream,System.Span`1[ubyte]):this (FullOpts) 8 (0.72 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader:WritePosixAndGnuSharedFields(System.Span`1[ubyte]):int:this (FullOpts) 8 (0.49 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader+d__56:MoveNext():this (FullOpts) 8 (0.44 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader+d__50:MoveNext():this (FullOpts) 8 (0.46 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader+d__118:MoveNext():this (FullOpts) 8 (0.52 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader+d__84:MoveNext():this (FullOpts) 8 (0.34 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader+d__86:MoveNext():this (FullOpts) 8 (1.67 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHelpers:AdvanceStream(System.IO.Stream,long) (FullOpts) 8 (1.71 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHelpers:CopyBytes(System.IO.Stream,System.IO.Stream,long) (FullOpts) 8 (0.70 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHelpers+d__29:MoveNext():this (FullOpts) 8 (0.43 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarReader+d__13:MoveNext():this (FullOpts) 8 (0.37 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarReader+d__15:MoveNext():this (FullOpts) 8 (0.49 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarReader+d__17:MoveNext():this (FullOpts) 8 (0.34 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarReader+d__19:MoveNext():this (FullOpts) 8 (0.62 % of base) : System.Net.NameResolution.dasm - System.Net.Dns:RunAsync[int](System.Func`3[System.Object,System.Net.NameResolutionActivity,int],System.Object,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[int] (FullOpts) 8 (4.00 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.MetadataAggregator:GetBaseRowCounts(System.Collections.Generic.IReadOnlyList`1[int],int):System.Reflection.Metadata.Ecma335.MetadataAggregator+RowCounts[][] (FullOpts) 8 (7.14 % of base) : System.DirectoryServices.Protocols.dasm - System.SR:get_ResourceManager():System.Resources.ResourceManager (FullOpts) 8 (7.14 % of base) : System.Collections.Specialized.dasm - System.SR:get_ResourceManager():System.Resources.ResourceManager (FullOpts) 8 (7.14 % of base) : System.Formats.Tar.dasm - System.SR:get_ResourceManager():System.Resources.ResourceManager (FullOpts) 4 (8.33 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.BitVector32+<>c:.cctor() (FullOpts) 4 (1.75 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.HybridDictionary:.ctor(int,ubyte):this (FullOpts) 4 (1.03 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.HybridDictionary:ChangeOver():this (FullOpts) 4 (3.85 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.HybridDictionary:get_List():System.Collections.Specialized.ListDictionary:this (FullOpts) 4 (7.69 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.NameObjectCollectionBase:.ctor():this (FullOpts) 4 (7.69 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.NameObjectCollectionBase:.ctor(int):this (FullOpts) 4 (1.79 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.NameObjectCollectionBase:Reset():this (FullOpts) 4 (7.69 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.NameValueCollection:.ctor():this (FullOpts) 4 (7.69 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.NameValueCollection:.ctor(int):this (FullOpts) 4 (3.23 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.StringCollection:.ctor():this (FullOpts) 4 (0.34 % of base) : System.Configuration.ConfigurationManager.dasm - System.Diagnostics.TraceUtils:MapToBuiltInTypes(System.String):System.Type (FullOpts) 4 (1.72 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.AddRequest:.ctor():this (FullOpts) 4 (1.23 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.AddRequest:.ctor(System.String,System.DirectoryServices.Protocols.DirectoryAttribute[]):this (FullOpts) 4 (0.88 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.AddRequest:.ctor(System.String,System.String):this (FullOpts) 4 (0.43 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.BerConverter:DecodingMultiByteArrayHelper(System.DirectoryServices.Protocols.SafeBerHandle,ushort,byref):ubyte[][] (FullOpts) 4 (0.17 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.BerConverter:TryDecode(System.String,ubyte[],byref):System.Object[] (FullOpts) 4 (1.61 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.CompareRequest:.ctor():this (FullOpts) 4 (0.83 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.CompareRequest:.ctor(System.String,System.DirectoryServices.Protocols.DirectoryAttribute):this (FullOpts) 4 (0.91 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.CompareRequest:.ctor(System.String,System.String,System.String):this (FullOpts) 4 (1.33 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.CompareRequest:.ctor(System.String,System.String,System.Uri):this (FullOpts) 4 (1.33 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.CompareRequest:.ctor(System.String,System.String,ubyte[]):this (FullOpts) 4 (2.56 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DeleteRequest:.ctor():this (FullOpts) 4 (2.22 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DeleteRequest:.ctor(System.String):this (FullOpts) 4 (2.86 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryAttribute:.ctor():this (FullOpts) 4 (1.30 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryAttribute:.ctor(System.String,System.Object):this (FullOpts) 4 (1.20 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryAttribute:.ctor(System.String,System.Object[]):this (FullOpts) 4 (1.30 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryAttribute:.ctor(System.String,System.String):this (FullOpts) 4 (1.54 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryAttribute:get_Item(int):System.Object:this (FullOpts) 4 (3.23 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryAttributeCollection:.ctor():this (FullOpts) 4 (2.70 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryAttributeModification:.ctor():this (FullOpts) 4 (3.23 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryAttributeModificationCollection:.ctor():this (FullOpts) 4 (2.38 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryConnection:.ctor():this (FullOpts) 4 (0.12 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryControl:TransformControls(System.DirectoryServices.Protocols.DirectoryControl[]) (FullOpts) 4 (3.23 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryControlCollection:.ctor():this (FullOpts) 4 (2.56 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryRequest:.ctor():this (FullOpts) 4 (2.08 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirSyncRequestControl:get_Cookie():ubyte[]:this (FullOpts) 4 (2.08 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirSyncResponseControl:get_Cookie():ubyte[]:this (FullOpts) 4 (2.33 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DsmlAuthRequest:.ctor():this (FullOpts) 4 (2.22 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DsmlAuthRequest:.ctor(System.String):this (FullOpts) 4 (2.56 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.ExtendedRequest:.ctor():this (FullOpts) 4 (2.04 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.ExtendedRequest:.ctor(System.String,ubyte[]):this (FullOpts) 4 (2.22 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.ExtendedRequest:.ctor(System.String):this (FullOpts) 4 (1.92 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.ExtendedRequest:get_RequestValue():ubyte[]:this (FullOpts) 4 (1.92 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.ExtendedResponse:get_ResponseValue():ubyte[]:this (FullOpts) 4 (1.15 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:.cctor() (FullOpts) Top method improvements (bytes): -36 (-3.81 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.VB6RandomFile:OpenFile():this (FullOpts) -32 (-10.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Read[int](ulong):int:this (FullOpts) -32 (-10.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Read[long](ulong):long:this (FullOpts) -32 (-10.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Read[short](ulong):short:this (FullOpts) -32 (-10.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Read[System.Numerics.Vector`1[float]](ulong):System.Numerics.Vector`1[float]:this (FullOpts) -32 (-10.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Read[ubyte](ulong):ubyte:this (FullOpts) -28 (-1.11 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.MemoryCacheEntryChangeMonitor:InitDisposableMembers(System.Runtime.Caching.MemoryCache):this (FullOpts) -28 (-8.86 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Read[double](ulong):double:this (FullOpts) -28 (-8.97 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Write[int](ulong,int):this (FullOpts) -28 (-8.97 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Write[long](ulong,long):this (FullOpts) -28 (-8.97 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Write[short](ulong,short):this (FullOpts) -28 (-8.97 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Write[ubyte](ulong,ubyte):this (FullOpts) -24 (-7.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Write[double](ulong,double):this (FullOpts) -24 (-7.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Write[System.Numerics.Vector`1[float]](ulong,System.Numerics.Vector`1[float]):this (FullOpts) -20 (-1.51 % of base) : System.Net.NameResolution.dasm - System.Net.Dns:RunAsync[double](System.Func`3[System.Object,System.Net.NameResolutionActivity,double],System.Object,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[double] (FullOpts) -20 (-1.51 % of base) : System.Net.NameResolution.dasm - System.Net.Dns:RunAsync[short](System.Func`3[System.Object,System.Net.NameResolutionActivity,short],System.Object,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[short] (FullOpts) -20 (-1.51 % of base) : System.Net.NameResolution.dasm - System.Net.Dns:RunAsync[System.Nullable`1[int]](System.Func`3[System.Object,System.Net.NameResolutionActivity,System.Nullable`1[int]],System.Object,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Nullable`1[int]] (FullOpts) -16 (-0.67 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapSessionOptions:ProcessNotifyConnection(long,long,long,long,long,int,ulong,ulong,int):int:this (FullOpts) -12 (-9.09 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.Trace:get_CorrelationManager():System.Diagnostics.CorrelationManager (FullOpts) -12 (-0.68 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapSessionOptions:ProcessQueryConnection(long,long,long,long,int,ulong,ulong,ulong):int:this (FullOpts) -12 (-5.77 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.CacheMemoryMonitor:InitMemoryCacheManager() (FullOpts) -12 (-0.62 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.HostFileChangeMonitor:InitDisposableMembers():this (FullOpts) -12 (-4.84 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.HostFileChangeMonitor:InitFCN() (FullOpts) -12 (-8.33 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.MemoryCache:.cctor() (FullOpts) -12 (-1.68 % of base) : System.Transactions.Local.dasm - System.Transactions.TransactionTable:.ctor():this (FullOpts) -8 (-3.85 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.BitVector32:ToString(System.Collections.Specialized.BitVector32):System.String (FullOpts) -8 (-1.10 % of base) : System.Composition.Runtime.dasm - System.Composition.Hosting.Core.CompositionContract:ConstraintEqual(System.Collections.Generic.IDictionary`2[System.String,System.Object],System.Collections.Generic.IDictionary`2[System.String,System.Object]):ubyte (FullOpts) -8 (-1.98 % of base) : System.Composition.Hosting.dasm - System.Composition.Hosting.Providers.ImportMany.ImportManyExportDescriptorProvider:GetImportManyDescriptor[short](System.Composition.Hosting.Core.CompositionContract,System.Composition.Hosting.Core.CompositionContract,System.Composition.Hosting.Core.DependencyAccessor):System.Composition.Hosting.Core.ExportDescriptorPromise (FullOpts) -8 (-2.50 % of base) : System.Composition.Hosting.dasm - System.Composition.Hosting.Providers.ImportMany.ImportManyExportDescriptorProvider+<>c__3`1[double]:b__3_1(System.Collections.Generic.IEnumerable`1[System.Composition.Hosting.Core.CompositionDependency]):System.Composition.Hosting.Core.ExportDescriptor:this (FullOpts) -8 (-1.59 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.CorrelationManager+AsyncLocalStackWrapper:ToArray():System.Object[]:this (FullOpts) -8 (-1.35 % of base) : System.Diagnostics.Process.dasm - System.Diagnostics.ProcessManager:GetModules(int):System.Diagnostics.ProcessModuleCollection (FullOpts) -8 (-4.17 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.Switch:add_Initializing(System.EventHandler`1[System.Diagnostics.InitializingSwitchEventArgs]) (FullOpts) -8 (-4.44 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.Switch:remove_Initializing(System.EventHandler`1[System.Diagnostics.InitializingSwitchEventArgs]) (FullOpts) -8 (-4.17 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.Trace:add_Refreshing(System.EventHandler) (FullOpts) -8 (-6.45 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.Trace:OnRefreshing() (FullOpts) -8 (-4.44 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.Trace:remove_Refreshing(System.EventHandler) (FullOpts) -8 (-1.60 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Close() (FullOpts) -8 (-0.85 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Flush() (FullOpts) -8 (-6.25 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:get_AppName():System.String (FullOpts) -8 (-0.98 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceListener:WriteHeader(System.String,int,int):this (FullOpts) -8 (-4.17 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceSource:add_Initializing(System.EventHandler`1[System.Diagnostics.InitializingTraceSourceEventArgs]) (FullOpts) -8 (-4.44 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceSource:remove_Initializing(System.EventHandler`1[System.Diagnostics.InitializingTraceSourceEventArgs]) (FullOpts) -8 (-2.27 % of base) : System.Memory.Data.dasm - System.IO.ReadOnlyMemoryStream:CopyToAsync(System.IO.Stream,int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts) -8 (-0.47 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.MemoryCache:Set(System.String,System.Object,System.Collections.ObjectModel.Collection`1[System.Runtime.Caching.ChangeMonitor],System.DateTimeOffset,System.TimeSpan,System.Runtime.Caching.CacheEntryUpdateCallback):this (FullOpts) -8 (-6.67 % of base) : System.Diagnostics.TraceSource.dasm - System.SR:get_ResourceManager():System.Resources.ResourceManager (FullOpts) -8 (-6.67 % of base) : System.Runtime.Caching.dasm - System.SR:get_ResourceManager():System.Resources.ResourceManager (FullOpts) -8 (-6.67 % of base) : System.Memory.Data.dasm - System.SR:get_ResourceManager():System.Resources.ResourceManager (FullOpts) -4 (-0.25 % of base) : System.Diagnostics.Process.dasm - Interop+cgroups:TryFindCGroupPathForSubsystem(int,System.String,System.String,byref):ubyte (FullOpts) -4 (-0.27 % of base) : System.Diagnostics.Process.dasm - Interop+cgroups:TryFindHierarchyMount(int,System.String,System.String,byref,byref):ubyte (FullOpts) -4 (-1.52 % of base) : Microsoft.Extensions.DependencyModel.dasm - Microsoft.Extensions.DependencyModel.Resolution.ReferenceAssemblyPathResolver:GetDefaultReferenceAssembliesPath(Microsoft.Extensions.DependencyModel.IFileSystem,Microsoft.Extensions.DependencyModel.IEnvironment):System.String (FullOpts) -4 (-2.00 % of base) : Microsoft.Extensions.Logging.TraceSource.dasm - Microsoft.Extensions.Logging.TraceSource.TraceSourceLoggerProvider:.ctor(System.Diagnostics.SourceSwitch,System.Diagnostics.TraceListener):this (FullOpts) -4 (-2.13 % of base) : Microsoft.Extensions.Logging.TraceSource.dasm - Microsoft.Extensions.Logging.TraceSource.TraceSourceLoggerProvider:.ctor(System.Diagnostics.SourceSwitch):this (FullOpts) -4 (-1.39 % of base) : Microsoft.Extensions.Logging.TraceSource.dasm - Microsoft.Extensions.Logging.TraceSourceFactoryExtensions:AddTraceSource(Microsoft.Extensions.Logging.ILoggerFactory,System.Diagnostics.SourceSwitch):Microsoft.Extensions.Logging.ILoggerFactory (FullOpts) -4 (-1.12 % of base) : Microsoft.Extensions.Logging.TraceSource.dasm - Microsoft.Extensions.Logging.TraceSourceFactoryExtensions:AddTraceSource(Microsoft.Extensions.Logging.ILoggerFactory,System.String):Microsoft.Extensions.Logging.ILoggerFactory (FullOpts) -4 (-1.89 % of base) : Microsoft.Extensions.Logging.TraceSource.dasm - Microsoft.Extensions.Logging.TraceSourceFactoryExtensions+<>c__DisplayClass6_0:b__0(System.IServiceProvider):Microsoft.Extensions.Logging.ILoggerProvider:this (FullOpts) -4 (-3.03 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.CacheDict`2[short,System.Nullable`1[int]]:.ctor(int):this (FullOpts) -4 (-7.14 % of base) : System.Memory.Data.dasm - System.BinaryData:.cctor() (FullOpts) -4 (-2.17 % of base) : System.Memory.Data.dasm - System.BinaryData:.ctor(System.String):this (FullOpts) -4 (-12.50 % of base) : System.Memory.Data.dasm - System.BinaryData:get_Empty():System.BinaryData (FullOpts) -4 (-1.39 % of base) : System.Memory.Data.dasm - System.BinaryData:ToArray():ubyte[]:this (FullOpts) -4 (-1.72 % of base) : System.Memory.Data.dasm - System.BinaryData:ToString():System.String:this (FullOpts) -4 (-2.22 % of base) : System.Composition.Hosting.dasm - System.Composition.Hosting.Providers.ExportFactory.ExportFactoryExportDescriptorProvider+<>c__DisplayClass2_2`1[int]:b__3(System.Composition.Hosting.Core.LifetimeContext,System.Composition.Hosting.Core.CompositionOperation):System.Object:this (FullOpts) -4 (-2.22 % of base) : System.Composition.Hosting.dasm - System.Composition.Hosting.Providers.ExportFactory.ExportFactoryExportDescriptorProvider+<>c__DisplayClass2_2`1[ubyte]:b__3(System.Composition.Hosting.Core.LifetimeContext,System.Composition.Hosting.Core.CompositionOperation):System.Object:this (FullOpts) -4 (-1.92 % of base) : System.Composition.Hosting.dasm - System.Composition.Hosting.Providers.Lazy.LazyExportDescriptorProvider+<>c__DisplayClass2_2`1[int]:b__3(System.Composition.Hosting.Core.LifetimeContext,System.Composition.Hosting.Core.CompositionOperation):System.Object:this (FullOpts) -4 (-0.53 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.Switch:_pruneCachedSwitches() (FullOpts) -4 (-3.45 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.Switch:.cctor() (FullOpts) -4 (-0.73 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.Switch:.ctor(System.String,System.String,System.String):this (FullOpts) -4 (-2.33 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.Switch:OnInitializing():this (FullOpts) -4 (-1.41 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.Switch:OnValueChanged():this (FullOpts) -4 (-0.98 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.Switch:RefreshAll() (FullOpts) -4 (-1.05 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.SwitchAttribute:GetAll(System.Reflection.Assembly):System.Diagnostics.SwitchAttribute[] (FullOpts) -4 (-3.03 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceEventCache:get_ThreadId():System.String:this (FullOpts) -4 (-7.69 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:.cctor() (FullOpts) -4 (-0.34 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Fail(System.String,System.String) (FullOpts) -4 (-0.35 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Fail(System.String) (FullOpts) -4 (-0.69 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:get_Listeners():System.Diagnostics.TraceListenerCollection (FullOpts) -4 (-1.64 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:InitializeSettings() (FullOpts) -4 (-1.39 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Refresh() (FullOpts) -4 (-0.16 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:TraceEvent(int,int,System.String,System.Object[]) (FullOpts) -4 (-0.34 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Write(System.Object,System.String) (FullOpts) -4 (-0.35 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Write(System.Object) (FullOpts) -4 (-0.34 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Write(System.String,System.String) (FullOpts) -4 (-0.35 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Write(System.String) (FullOpts) -4 (-0.34 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:WriteLine(System.Object,System.String) (FullOpts) -4 (-0.35 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:WriteLine(System.Object) (FullOpts) -4 (-0.34 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:WriteLine(System.String,System.String) (FullOpts) -4 (-0.35 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:WriteLine(System.String) (FullOpts) -4 (-0.78 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal+TraceProvider:OnIndentLevelChanged(int):this (FullOpts) -4 (-0.77 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal+TraceProvider:OnIndentSizeChanged(int):this (FullOpts) -4 (-0.41 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceListener:Fail(System.String,System.String):this (FullOpts) -4 (-1.16 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceListener:TraceEvent(System.Diagnostics.TraceEventCache,System.String,int,int,System.String,System.Object[]):this (FullOpts) -4 (-0.67 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceListener:TraceTransfer(System.Diagnostics.TraceEventCache,System.String,int,System.String,System.Guid):this (FullOpts) -4 (-0.26 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceListener:WriteFooter(System.Diagnostics.TraceEventCache):this (FullOpts) -4 (-1.75 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceListenerCollection:Add(System.Diagnostics.TraceListener):int:this (FullOpts) -4 (-1.61 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceListenerCollection:Insert(int,System.Diagnostics.TraceListener):this (FullOpts) -4 (-1.39 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceListenerCollection:System.Collections.IList.Remove(System.Object):this (FullOpts) -4 (-0.53 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceSource:_pruneCachedTraceSources() (FullOpts) -4 (-3.45 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceSource:.cctor() (FullOpts) -4 (-0.73 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceSource:.ctor(System.String,int):this (FullOpts) -4 (-0.83 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceSource:Close():this (FullOpts) Top method regressions (percentages): 4 (14.29 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.UtilityHandle:GetHandle():System.DirectoryServices.Protocols.ConnectionHandle (FullOpts) 4 (8.33 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.BitVector32+<>c:.cctor() (FullOpts) 4 (7.69 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.NameObjectCollectionBase:.ctor():this (FullOpts) 4 (7.69 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.NameObjectCollectionBase:.ctor(int):this (FullOpts) 4 (7.69 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.NameValueCollection:.ctor():this (FullOpts) 4 (7.69 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.NameValueCollection:.ctor(int):this (FullOpts) 4 (7.69 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader:GetUtf8TextLength(System.ReadOnlySpan`1[ushort]):int (FullOpts) 8 (7.14 % of base) : System.DirectoryServices.Protocols.dasm - System.SR:get_ResourceManager():System.Resources.ResourceManager (FullOpts) 8 (7.14 % of base) : System.Collections.Specialized.dasm - System.SR:get_ResourceManager():System.Resources.ResourceManager (FullOpts) 8 (7.14 % of base) : System.Formats.Tar.dasm - System.SR:get_ResourceManager():System.Resources.ResourceManager (FullOpts) 12 (5.88 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryAttribute:.cctor() (FullOpts) 4 (5.88 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapDirectoryIdentifier:get_Servers():System.String[]:this (FullOpts) 4 (5.88 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.OperationErrorMappings:MapResultCode(int):System.String (FullOpts) 4 (5.88 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.SearchResultEntry:get_Controls():System.DirectoryServices.Protocols.DirectoryControl[]:this (FullOpts) 4 (5.88 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.SearchResultReference:get_Controls():System.DirectoryServices.Protocols.DirectoryControl[]:this (FullOpts) 4 (5.88 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHelpers:get_UMask():int (FullOpts) 4 (5.88 % of base) : System.Reflection.Context.dasm - System.Reflection.Context.CollectionServices:Empty[long]():long[] (FullOpts) 4 (5.26 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.SubReadStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts) 4 (4.55 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapErrorMappings:MapResultCode(int):System.String (FullOpts) 8 (4.00 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.MetadataAggregator:GetBaseRowCounts(System.Collections.Generic.IReadOnlyList`1[int],int):System.Reflection.Metadata.Ecma335.MetadataAggregator+RowCounts[][] (FullOpts) 4 (3.85 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.HybridDictionary:get_List():System.Collections.Specialized.ListDictionary:this (FullOpts) 4 (3.23 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.StringCollection:.ctor():this (FullOpts) 4 (3.23 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryAttributeCollection:.ctor():this (FullOpts) 4 (3.23 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryAttributeModificationCollection:.ctor():this (FullOpts) 4 (3.23 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryControlCollection:.ctor():this (FullOpts) 4 (3.12 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHelpers:GetTimestampStringFromDateTimeOffset(System.DateTimeOffset):System.String (FullOpts) 4 (3.03 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.UtilityHandle:.cctor() (FullOpts) 4 (3.03 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:AwaitUnsafeOnCompleted[System.__Canon,AsyncHelper+d__0](byref,byref,byref) (FullOpts) 4 (2.86 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryAttribute:.ctor():this (FullOpts) 4 (2.86 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHelpers:CreatePendingModesDictionary():System.Collections.Generic.SortedDictionary`2[System.String,int] (FullOpts) 4 (2.70 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryAttributeModification:.ctor():this (FullOpts) 4 (2.70 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHelpers:ThrowInvalidNumber() (FullOpts) 4 (2.56 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DeleteRequest:.ctor():this (FullOpts) 4 (2.56 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryRequest:.ctor():this (FullOpts) 4 (2.56 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.ExtendedRequest:.ctor():this (FullOpts) 4 (2.50 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.SearchResultAttributeCollection:Add(System.String,System.DirectoryServices.Protocols.DirectoryAttribute):this (FullOpts) 4 (2.44 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.ModifyDNRequest:.ctor():this (FullOpts) 4 (2.38 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryConnection:.ctor():this (FullOpts) 4 (2.33 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DsmlAuthRequest:.ctor():this (FullOpts) 4 (2.22 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DeleteRequest:.ctor(System.String):this (FullOpts) 4 (2.22 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DsmlAuthRequest:.ctor(System.String):this (FullOpts) 4 (2.22 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.ExtendedRequest:.ctor(System.String):this (FullOpts) 8 (2.22 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:Dispose(ubyte):this (FullOpts) 4 (2.22 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[int]:AwaitUnsafeOnCompleted[System.__Canon,AsyncHelper+d__0](byref,byref):this (FullOpts) 4 (2.17 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapPartialResultsProcessor:.ctor(System.Threading.ManualResetEvent):this (FullOpts) 4 (2.17 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHelpers:.cctor() (FullOpts) 4 (2.13 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.SearchResultAttributeCollection:Contains(System.String):ubyte:this (FullOpts) 4 (2.08 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirSyncRequestControl:get_Cookie():ubyte[]:this (FullOpts) 4 (2.08 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirSyncResponseControl:get_Cookie():ubyte[]:this (FullOpts) 4 (2.08 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.VlvRequestControl:get_ContextId():ubyte[]:this (FullOpts) 4 (2.08 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.VlvRequestControl:get_Target():ubyte[]:this (FullOpts) 4 (2.08 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.VlvResponseControl:get_ContextId():ubyte[]:this (FullOpts) 4 (2.08 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader:g__TryAddStringField|120_0(System.Collections.Generic.Dictionary`2[System.String,System.String],System.String,System.String,int) (FullOpts) 4 (2.04 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.ExtendedRequest:.ctor(System.String,ubyte[]):this (FullOpts) 4 (1.92 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.ExtendedRequest:get_RequestValue():ubyte[]:this (FullOpts) 4 (1.92 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.ExtendedResponse:get_ResponseValue():ubyte[]:this (FullOpts) 4 (1.92 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.PageResultRequestControl:get_Cookie():ubyte[]:this (FullOpts) 4 (1.92 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.PageResultResponseControl:get_Cookie():ubyte[]:this (FullOpts) 8 (1.90 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapPartialResultsProcessor:AddResult(System.DirectoryServices.Protocols.SearchResponse,System.DirectoryServices.Protocols.SearchResponse) (FullOpts) 4 (1.79 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.NameObjectCollectionBase:Reset():this (FullOpts) 4 (1.75 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.HybridDictionary:.ctor(int,ubyte):this (FullOpts) 4 (1.75 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.ModifyDNRequest:.ctor(System.String,System.String,System.String):this (FullOpts) 4 (1.75 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.SortRequestControl:.ctor(System.String,ubyte):this (FullOpts) 4 (1.75 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader:WriteAsUtf8String(System.ReadOnlySpan`1[ushort],System.Span`1[ubyte]):int (FullOpts) 4 (1.72 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.AddRequest:.ctor():this (FullOpts) 4 (1.72 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.ModifyRequest:.ctor():this (FullOpts) 8 (1.71 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHelpers:CopyBytes(System.IO.Stream,System.IO.Stream,long) (FullOpts) 4 (1.69 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHelpers:GetTrimmedUtf8String(System.ReadOnlySpan`1[ubyte]):System.String (FullOpts) 4 (1.67 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.SortRequestControl:.ctor(System.String,System.String,ubyte):this (FullOpts) 8 (1.67 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHelpers:AdvanceStream(System.IO.Stream,long) (FullOpts) 4 (1.64 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.SearchRequest:.ctor():this (FullOpts) 4 (1.61 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.CompareRequest:.ctor():this (FullOpts) 12 (1.58 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader:ReadGnuLongPathDataBlock(System.IO.Stream):this (FullOpts) 4 (1.54 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryAttribute:get_Item(int):System.Object:this (FullOpts) 8 (1.53 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader:ReadExtendedAttributesBlock(System.IO.Stream):this (FullOpts) 4 (1.49 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarEntry:ExtractToFileInternalAsync(System.String,System.String,ubyte,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts) 28 (1.48 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader+d__68:MoveNext():this (FullOpts) 4 (1.47 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHelpers:TryGetStringAsBaseTenInteger(System.Collections.Generic.IReadOnlyDictionary`2[System.String,System.String],System.String,byref):ubyte (FullOpts) 4 (1.47 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHelpers:TryGetStringAsBaseTenLong(System.Collections.Generic.IReadOnlyDictionary`2[System.String,System.String],System.String,byref):ubyte (FullOpts) 8 (1.39 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:Init():this (FullOpts) 4 (1.39 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.ModifyRequest:.ctor(System.String,System.DirectoryServices.Protocols.DirectoryAttributeModification[]):this (FullOpts) 4 (1.37 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarReader:PreserveDataStreamForDisposalIfNeeded(System.Formats.Tar.TarEntry):this (FullOpts) 4 (1.33 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.CompareRequest:.ctor(System.String,System.String,System.Uri):this (FullOpts) 4 (1.33 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.CompareRequest:.ctor(System.String,System.String,ubyte[]):this (FullOpts) 4 (1.30 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryAttribute:.ctor(System.String,System.Object):this (FullOpts) 4 (1.30 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryAttribute:.ctor(System.String,System.String):this (FullOpts) 4 (1.30 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader:ReadGnuLongPathDataFromBuffer(System.ReadOnlySpan`1[ubyte]):this (FullOpts) 4 (1.28 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.SearchResultAttributeCollection:get_Item(System.String):System.DirectoryServices.Protocols.DirectoryAttribute:this (FullOpts) 4 (1.23 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.AddRequest:.ctor(System.String,System.DirectoryServices.Protocols.DirectoryAttribute[]):this (FullOpts) 8 (1.23 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.BitVector32+Section:ToString(System.Collections.Specialized.BitVector32+Section):System.String (FullOpts) 12 (1.22 % of base) : System.Formats.Tar.dasm - Interop+ErrorInfo:ToString():System.String:this (FullOpts) 8 (1.21 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapSessionOptions:ProcessDereferenceConnection(long,long):int:this (FullOpts) 4 (1.20 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.DirectoryAttribute:.ctor(System.String,System.Object[]):this (FullOpts) 4 (1.15 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.LdapConnection:.cctor() (FullOpts) 4 (1.15 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.SortRequestControl:get_SortKeys():System.DirectoryServices.Protocols.SortKey[]:this (FullOpts) 20 (1.15 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHelpers+d__7:MoveNext():this (FullOpts) 16 (1.14 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarWriter+d__16:MoveNext():this (FullOpts) 4 (1.11 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHeader:ReadUstarAttributes(System.ReadOnlySpan`1[ubyte]):this (FullOpts) 4 (1.10 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarEntry:AttemptSetLastWriteTime(System.String,System.DateTimeOffset) (FullOpts) 4 (1.10 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHelpers:AttemptDirectorySetLastWriteTime(System.String,System.DateTimeOffset) (FullOpts) Top method improvements (percentages): -4 (-12.50 % of base) : System.Memory.Data.dasm - System.BinaryData:get_Empty():System.BinaryData (FullOpts) -4 (-12.50 % of base) : System.Memory.Data.dasm - System.IO.ReadOnlyMemoryStream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts) -4 (-12.50 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.Configuration.MemoryCacheElement:get_Properties():System.Configuration.ConfigurationPropertyCollection:this (FullOpts) -4 (-12.50 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.Configuration.MemoryCacheSection:get_Properties():System.Configuration.ConfigurationPropertyCollection:this (FullOpts) -4 (-12.50 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.Configuration.MemoryCacheSettingsCollection:get_Properties():System.Configuration.ConfigurationPropertyCollection:this (FullOpts) -4 (-12.50 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.ObjectCache:get_Host():System.IServiceProvider (FullOpts) -32 (-10.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Read[int](ulong):int:this (FullOpts) -32 (-10.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Read[long](ulong):long:this (FullOpts) -32 (-10.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Read[short](ulong):short:this (FullOpts) -32 (-10.13 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Read[ubyte](ulong):ubyte:this (FullOpts) -4 (-10.00 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.ChangeMonitor:.ctor():this (FullOpts) -4 (-10.00 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.FileChangeMonitor:.ctor():this (FullOpts) -4 (-10.00 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.HostFileChangeMonitor:.ctor():this (FullOpts) -4 (-10.00 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.MemoryCacheEntryChangeMonitor:.ctor():this (FullOpts) -32 (-10.00 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Read[System.Numerics.Vector`1[float]](ulong):System.Numerics.Vector`1[float]:this (FullOpts) -12 (-9.09 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.Trace:get_CorrelationManager():System.Diagnostics.CorrelationManager (FullOpts) -28 (-8.97 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Write[int](ulong,int):this (FullOpts) -28 (-8.97 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Write[long](ulong,long):this (FullOpts) -28 (-8.97 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Write[short](ulong,short):this (FullOpts) -28 (-8.97 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Write[ubyte](ulong,ubyte):this (FullOpts) -28 (-8.86 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Read[double](ulong):double:this (FullOpts) -12 (-8.33 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.MemoryCache:.cctor() (FullOpts) -4 (-7.69 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:.cctor() (FullOpts) -4 (-7.69 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.ChangeMonitor:.cctor() (FullOpts) -24 (-7.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Write[double](ulong,double):this (FullOpts) -24 (-7.69 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:Write[System.Numerics.Vector`1[float]](ulong,System.Numerics.Vector`1[float]):this (FullOpts) -4 (-7.14 % of base) : System.Memory.Data.dasm - System.BinaryData:.cctor() (FullOpts) -8 (-6.67 % of base) : System.Diagnostics.TraceSource.dasm - System.SR:get_ResourceManager():System.Resources.ResourceManager (FullOpts) -8 (-6.67 % of base) : System.Runtime.Caching.dasm - System.SR:get_ResourceManager():System.Resources.ResourceManager (FullOpts) -8 (-6.67 % of base) : System.Memory.Data.dasm - System.SR:get_ResourceManager():System.Resources.ResourceManager (FullOpts) -8 (-6.45 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.Trace:OnRefreshing() (FullOpts) -8 (-6.25 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:get_AppName():System.String (FullOpts) -12 (-5.77 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.CacheMemoryMonitor:InitMemoryCacheManager() (FullOpts) -4 (-5.56 % of base) : System.Reflection.Context.dasm - System.Reflection.Context.CollectionServices:Empty[System.Nullable`1[int]]():System.Nullable`1[int][] (FullOpts) -12 (-4.84 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.HostFileChangeMonitor:InitFCN() (FullOpts) -4 (-4.76 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.MemoryCacheEntryChangeMonitor:.ctor(System.Collections.ObjectModel.ReadOnlyCollection`1[System.String],System.String,System.Runtime.Caching.MemoryCache):this (FullOpts) -4 (-4.55 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.CacheMemoryMonitor:Dispose():this (FullOpts) -8 (-4.44 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.Switch:remove_Initializing(System.EventHandler`1[System.Diagnostics.InitializingSwitchEventArgs]) (FullOpts) -8 (-4.44 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.Trace:remove_Refreshing(System.EventHandler) (FullOpts) -8 (-4.44 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceSource:remove_Initializing(System.EventHandler`1[System.Diagnostics.InitializingTraceSourceEventArgs]) (FullOpts) -4 (-4.35 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.CacheEntryChangeMonitor:.ctor():this (FullOpts) -8 (-4.17 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.Switch:add_Initializing(System.EventHandler`1[System.Diagnostics.InitializingSwitchEventArgs]) (FullOpts) -8 (-4.17 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.Trace:add_Refreshing(System.EventHandler) (FullOpts) -8 (-4.17 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceSource:add_Initializing(System.EventHandler`1[System.Diagnostics.InitializingTraceSourceEventArgs]) (FullOpts) -8 (-3.85 % of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.BitVector32:ToString(System.Collections.Specialized.BitVector32):System.String (FullOpts) -36 (-3.81 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.VB6RandomFile:OpenFile():this (FullOpts) -4 (-3.70 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.Configuration.MemoryCacheSettingsCollection:.cctor() (FullOpts) -4 (-3.57 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.Configuration.MemoryCacheSection:get_NamedCaches():System.Runtime.Caching.Configuration.MemoryCacheSettingsCollection:this (FullOpts) -4 (-3.45 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.Switch:.cctor() (FullOpts) -4 (-3.45 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceSource:.cctor() (FullOpts) -4 (-3.45 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.Configuration.MemoryCacheElement:set_Name(System.String):this (FullOpts) -4 (-3.03 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.CacheDict`2[short,System.Nullable`1[int]]:.ctor(int):this (FullOpts) -4 (-3.03 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceEventCache:get_ThreadId():System.String:this (FullOpts) -4 (-2.86 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.Configuration.MemoryCacheElement:.ctor(System.String):this (FullOpts) -4 (-2.70 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.Configuration.MemoryCacheElement:set_CacheMemoryLimitMegabytes(int):this (FullOpts) -4 (-2.70 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.Configuration.MemoryCacheElement:set_PhysicalMemoryLimitPercentage(int):this (FullOpts) -4 (-2.70 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.Configuration.MemoryCacheElement:set_PollingInterval(System.TimeSpan):this (FullOpts) -4 (-2.56 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.Configuration.MemoryCacheSettingsCollection:CreateNewElement(System.String):System.Configuration.ConfigurationElement:this (FullOpts) -8 (-2.50 % of base) : System.Composition.Hosting.dasm - System.Composition.Hosting.Providers.ImportMany.ImportManyExportDescriptorProvider+<>c__3`1[double]:b__3_1(System.Collections.Generic.IEnumerable`1[System.Composition.Hosting.Core.CompositionDependency]):System.Composition.Hosting.Core.ExportDescriptor:this (FullOpts) -4 (-2.33 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.Switch:OnInitializing():this (FullOpts) -8 (-2.27 % of base) : System.Memory.Data.dasm - System.IO.ReadOnlyMemoryStream:CopyToAsync(System.IO.Stream,int,System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts) -4 (-2.27 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.CacheItemPolicy:get_ChangeMonitors():System.Collections.ObjectModel.Collection`1[System.Runtime.Caching.ChangeMonitor]:this (FullOpts) -4 (-2.22 % of base) : System.Composition.Hosting.dasm - System.Composition.Hosting.Providers.ExportFactory.ExportFactoryExportDescriptorProvider+<>c__DisplayClass2_2`1[int]:b__3(System.Composition.Hosting.Core.LifetimeContext,System.Composition.Hosting.Core.CompositionOperation):System.Object:this (FullOpts) -4 (-2.22 % of base) : System.Composition.Hosting.dasm - System.Composition.Hosting.Providers.ExportFactory.ExportFactoryExportDescriptorProvider+<>c__DisplayClass2_2`1[ubyte]:b__3(System.Composition.Hosting.Core.LifetimeContext,System.Composition.Hosting.Core.CompositionOperation):System.Object:this (FullOpts) -4 (-2.22 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.FileChangeNotificationSystem:.ctor():this (FullOpts) -4 (-2.17 % of base) : System.Memory.Data.dasm - System.BinaryData:.ctor(System.String):this (FullOpts) -4 (-2.13 % of base) : Microsoft.Extensions.Logging.TraceSource.dasm - Microsoft.Extensions.Logging.TraceSource.TraceSourceLoggerProvider:.ctor(System.Diagnostics.SourceSwitch):this (FullOpts) -4 (-2.00 % of base) : Microsoft.Extensions.Logging.TraceSource.dasm - Microsoft.Extensions.Logging.TraceSource.TraceSourceLoggerProvider:.ctor(System.Diagnostics.SourceSwitch,System.Diagnostics.TraceListener):this (FullOpts) -8 (-1.98 % of base) : System.Composition.Hosting.dasm - System.Composition.Hosting.Providers.ImportMany.ImportManyExportDescriptorProvider:GetImportManyDescriptor[short](System.Composition.Hosting.Core.CompositionContract,System.Composition.Hosting.Core.CompositionContract,System.Composition.Hosting.Core.DependencyAccessor):System.Composition.Hosting.Core.ExportDescriptorPromise (FullOpts) -4 (-1.92 % of base) : System.Composition.Hosting.dasm - System.Composition.Hosting.Providers.Lazy.LazyExportDescriptorProvider+<>c__DisplayClass2_2`1[int]:b__3(System.Composition.Hosting.Core.LifetimeContext,System.Composition.Hosting.Core.CompositionOperation):System.Object:this (FullOpts) -4 (-1.89 % of base) : Microsoft.Extensions.Logging.TraceSource.dasm - Microsoft.Extensions.Logging.TraceSourceFactoryExtensions+<>c__DisplayClass6_0:b__0(System.IServiceProvider):Microsoft.Extensions.Logging.ILoggerProvider:this (FullOpts) -4 (-1.85 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.ObjectCache:set_Host(System.IServiceProvider) (FullOpts) -4 (-1.75 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceListenerCollection:Add(System.Diagnostics.TraceListener):int:this (FullOpts) -4 (-1.72 % of base) : System.Memory.Data.dasm - System.BinaryData:ToString():System.String:this (FullOpts) -4 (-1.69 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.MemoryCache:get_Default():System.Runtime.Caching.MemoryCache (FullOpts) -12 (-1.68 % of base) : System.Transactions.Local.dasm - System.Transactions.TransactionTable:.ctor():this (FullOpts) -4 (-1.64 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:InitializeSettings() (FullOpts) -4 (-1.61 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceListenerCollection:Insert(int,System.Diagnostics.TraceListener):this (FullOpts) -8 (-1.60 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Close() (FullOpts) -8 (-1.59 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.CorrelationManager+AsyncLocalStackWrapper:ToArray():System.Object[]:this (FullOpts) -4 (-1.52 % of base) : Microsoft.Extensions.DependencyModel.dasm - Microsoft.Extensions.DependencyModel.Resolution.ReferenceAssemblyPathResolver:GetDefaultReferenceAssembliesPath(Microsoft.Extensions.DependencyModel.IFileSystem,Microsoft.Extensions.DependencyModel.IEnvironment):System.String (FullOpts) -20 (-1.51 % of base) : System.Net.NameResolution.dasm - System.Net.Dns:RunAsync[double](System.Func`3[System.Object,System.Net.NameResolutionActivity,double],System.Object,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[double] (FullOpts) -20 (-1.51 % of base) : System.Net.NameResolution.dasm - System.Net.Dns:RunAsync[short](System.Func`3[System.Object,System.Net.NameResolutionActivity,short],System.Object,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[short] (FullOpts) -20 (-1.51 % of base) : System.Net.NameResolution.dasm - System.Net.Dns:RunAsync[System.Nullable`1[int]](System.Func`3[System.Object,System.Net.NameResolutionActivity,System.Nullable`1[int]],System.Object,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Nullable`1[int]] (FullOpts) -4 (-1.41 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.Switch:OnValueChanged():this (FullOpts) -4 (-1.39 % of base) : Microsoft.Extensions.Logging.TraceSource.dasm - Microsoft.Extensions.Logging.TraceSourceFactoryExtensions:AddTraceSource(Microsoft.Extensions.Logging.ILoggerFactory,System.Diagnostics.SourceSwitch):Microsoft.Extensions.Logging.ILoggerFactory (FullOpts) -4 (-1.39 % of base) : System.Memory.Data.dasm - System.BinaryData:ToArray():ubyte[]:this (FullOpts) -4 (-1.39 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceInternal:Refresh() (FullOpts) -4 (-1.39 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceListenerCollection:System.Collections.IList.Remove(System.Object):this (FullOpts) -4 (-1.37 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.Configuration.MemoryCacheSection:.cctor() (FullOpts) -8 (-1.35 % of base) : System.Diagnostics.Process.dasm - System.Diagnostics.ProcessManager:GetModules(int):System.Diagnostics.ProcessModuleCollection (FullOpts) -4 (-1.18 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.CacheMemoryMonitor:GetCurrentPressure():int:this (FullOpts) -4 (-1.16 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.TraceListener:TraceEvent(System.Diagnostics.TraceEventCache,System.String,int,int,System.String,System.Object[]):this (FullOpts) -4 (-1.12 % of base) : Microsoft.Extensions.Logging.TraceSource.dasm - Microsoft.Extensions.Logging.TraceSourceFactoryExtensions:AddTraceSource(Microsoft.Extensions.Logging.ILoggerFactory,System.String):Microsoft.Extensions.Logging.ILoggerFactory (FullOpts) -28 (-1.11 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.MemoryCacheEntryChangeMonitor:InitDisposableMembers(System.Runtime.Caching.MemoryCache):this (FullOpts) -8 (-1.10 % of base) : System.Composition.Runtime.dasm - System.Composition.Hosting.Core.CompositionContract:ConstraintEqual(System.Collections.Generic.IDictionary`2[System.String,System.Object],System.Collections.Generic.IDictionary`2[System.String,System.Object]):ubyte (FullOpts) -4 (-1.05 % of base) : System.Diagnostics.TraceSource.dasm - System.Diagnostics.SwitchAttribute:GetAll(System.Reflection.Assembly):System.Diagnostics.SwitchAttribute[] (FullOpts) -4 (-1.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:ReadSpan[double](ulong,System.Span`1[double]):this (FullOpts) -4 (-1.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:ReadSpan[int](ulong,System.Span`1[int]):this (FullOpts) -4 (-1.04 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.SafeBuffer:ReadSpan[long](ulong,System.Span`1[long]):this (FullOpts) 350 total methods with Code Size differences (164 improved, 186 regressed), 230534 unchanged. -------------------------------------------------------------------------------- ```

Artifacts:

MihuBot commented 1 month ago

Top method regressions

28 (1.48 % of base) - System.Formats.Tar.TarHeader+d__68:MoveNext():this ```diff ; Assembly listing for method System.Formats.Tar.TarHeader+d__68:MoveNext():this (FullOpts) ; Emitting BLENDED_CODE for generic ARM64 - Unix ; FullOpts code ; optimized code ; fp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 38 single block inlinees; 19 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T01] ( 30, 28 ) byref -> [fp+0x10] this EH-live single-def ; V01 loc0 [V01,T59] ( 2, 2 ) int -> x1 ; V02 loc1 [V02,T06] ( 8, 8 ) ref -> x19 class-hnd exact single-def ; V03 loc2 [V03 ] ( 10, 10 ) struct (16) [fp+0x88] do-not-enreg[XSF] must-init addr-exposed ld-addr-op ;* V04 loc3 [V04 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op ;* V05 loc4 [V05 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op ;* V06 loc5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def ;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V08 tmp1 [V08 ] ( 0, 0 ) int -> zero-ref "dup spill" ;* V09 tmp2 [V09 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ;* V10 tmp3 [V10 ] ( 0, 0 ) struct (16) zero-ref "spilled call-like call argument" ; V11 tmp4 [V11,T73] ( 2, 0 ) ref -> x1 class-hnd single-def "impSpillSpecialSideEff" ; V12 tmp5 [V12,T25] ( 3, 4 ) byref -> x1 single-def "Inlining Arg" ;* V13 tmp6 [V13,T69] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V14 tmp7 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ; V15 tmp8 [V15,T07] ( 4, 8 ) ref -> x15 class-hnd single-def "Inlining Arg" ; V16 tmp9 [V16,T10] ( 4, 8 ) int -> x0 "Inlining Arg" ;* V17 tmp10 [V17 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V18 tmp11 [V18,T14] ( 3, 6 ) ref -> x0 class-hnd single-def "Inlining Arg" ;* V19 tmp12 [V19 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V20 tmp13 [V20 ] ( 0, 0 ) struct (16) zero-ref "impAppendStmt" ;* V21 tmp14 [V21 ] ( 0, 0 ) struct ( 8) zero-ref "Inlining Arg" ; V22 tmp15 [V22 ] ( 3, 6 ) struct (16) [fp+0x78] do-not-enreg[SBR] multireg-ret must-init "spilled call-like call argument" ; V23 tmp16 [V23 ] ( 11, 11 ) struct (80) [fp+0x28] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "Inline ldloca(s) first use temp" d__46> ;* V24 tmp17 [V24 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V25 tmp18 [V25 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" ;* V26 tmp19 [V26 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V27 tmp20 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ;* V28 tmp21 [V28 ] ( 0, 0 ) short -> zero-ref "Inlining Arg" ;* V29 tmp22 [V29 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V30 tmp23 [V30 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V31 tmp24 [V31 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" ;* V32 tmp25 [V32 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" ;* V33 tmp26 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" ; V34 tmp27 [V34,T30] ( 2, 4 ) short -> x1 "Inlining Arg" ;* V35 tmp28 [V35 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" ;* V36 tmp29 [V36 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ; V37 tmp30 [V37,T19] ( 4, 4 ) ref -> x21 class-hnd single-def "Inline stloc first use temp" ; V38 tmp31 [V38,T35] ( 3, 3 ) ref -> x0 class-hnd single-def "Inline stloc first use temp" ;* V39 tmp32 [V39 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" ;* V40 tmp33 [V40 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V41 tmp34 [V41 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V42 tmp35 [V42 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V43 tmp36 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" ; V44 tmp37 [V44,T20] ( 4, 4 ) ref -> x20 class-hnd single-def "Inline stloc first use temp" ; V45 tmp38 [V45,T21] ( 4, 4 ) ref -> x0 class-hnd single-def "Inline stloc first use temp" ;* V46 tmp39 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" ;* V47 tmp40 [V47 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" ; V48 tmp41 [V48,T12] ( 6, 6 ) byref -> x21 "Inline stloc first use temp" ; V49 tmp42 [V49,T13] ( 6, 6 ) int -> x22 "Inline stloc first use temp" ; V50 tmp43 [V50,T08] ( 4, 8 ) byref -> x20 single-def "Inlining Arg" ; V51 tmp44 [V51,T11] ( 7, 7 ) ref -> x1 class-hnd single-def "Inline stloc first use temp" ;* V52 tmp45 [V52 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V53 tmp46 [V53 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" ;* V54 tmp47 [V54 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" ;* V55 tmp48 [V55 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "Inline stloc first use temp" ; V56 tmp49 [V56,T44] ( 3, 3 ) long -> x1 "Inline stloc first use temp" ; V57 tmp50 [V57,T45] ( 3, 3 ) int -> x2 "Inline stloc first use temp" ;* V58 tmp51 [V58 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "updating class info" ;* V59 tmp52 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" ; V60 tmp53 [V60,T26] ( 2, 4 ) byref -> x2 single-def "Inlining Arg" ;* V61 tmp54 [V61 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V62 tmp55 [V62 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ;* V63 tmp56 [V63 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" ;* V64 tmp57 [V64 ] ( 0, 0 ) byref -> zero-ref single-def "Inlining Arg" ;* V65 tmp58 [V65 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V66 tmp59 [V66 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" ; V67 tmp60 [V67,T22] ( 4, 4 ) ref -> x15 class-hnd "Inline return value spill temp" ;* V68 tmp61 [V68 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "Inlining Arg" ; V69 tmp62 [V69,T15] ( 3, 6 ) ref -> x20 class-hnd exact single-def "Inlining Arg" ;* V70 tmp63 [V70 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline return value spill temp" ;* V71 tmp64 [V71 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V72 tmp65 [V72 ] ( 2, 2 ) byref -> [fp+0x20] must-init pinned "Inline stloc first use temp" ; V73 tmp66 [V73,T36] ( 3, 3 ) byref -> x22 "Inline return value spill temp" ;* V74 tmp67 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V75 tmp68 [V75,T37] ( 3, 3 ) ref -> x15 class-hnd "Inline return value spill temp" ;* V76 tmp69 [V76 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ;* V77 tmp70 [V77 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ; V78 tmp71 [V78,T23] ( 4, 4 ) int -> x23 "Inline stloc first use temp" ; V79 tmp72 [V79,T09] ( 4, 8 ) ref -> x24 class-hnd exact single-def "dup spill" ; V80 tmp73 [V80 ] ( 4, 4 ) byref -> [fp+0x18] must-init pinned "Inline stloc first use temp" ;* V81 tmp74 [V81 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V82 tmp75 [V82,T16] ( 3, 6 ) byref -> x20 single-def "Inlining Arg" ;* V83 tmp76 [V83 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" ; V84 tmp77 [V84,T03] ( 7, 14 ) ref -> x21 class-hnd single-def "impAppendStmt" ; V85 tmp78 [V85,T31] ( 2, 4 ) struct ( 8) x22 "Inlining Arg" ; V86 tmp79 [V86,T05] ( 6, 12 ) ref -> x20 class-hnd exact single-def "impAppendStmt" ;* V87 tmp80 [V87 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" ; V88 tmp81 [V88,T32] ( 2, 4 ) int -> x19 "Inlining Arg" ;* V89 tmp82 [V89 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V90 tmp83 [V90 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V91 tmp84 [V91,T70] ( 0, 0 ) ubyte -> zero-ref "Inline stloc first use temp" ; V92 tmp85 [V92,T38] ( 3, 3 ) ref -> x22 class-hnd exact single-def "Inline stloc first use temp" ; V93 tmp86 [V93,T60] ( 2, 2 ) ubyte -> x2 "Inline return value spill temp" ; V94 tmp87 [V94,T18] ( 5, 5 ) int -> x1 "Inline stloc first use temp" ; V95 tmp88 [V95,T46] ( 3, 3 ) ubyte -> x2 "Inline return value spill temp" ; V96 tmp89 [V96,T00] ( 6, 41 ) int -> x1 "Inline stloc first use temp" ; V97 tmp90 [V97,T02] ( 3, 24 ) int -> x3 "Inline stloc first use temp" ; V98 tmp91 [V98,T39] ( 3, 3 ) ref -> x0 class-hnd single-def "Inline stloc first use temp" ;* V99 tmp92 [V99 ] ( 0, 0 ) ref -> zero-ref single-def "field V04._obj (fldOffset=0x0)" P-INDEP ;* V100 tmp93 [V100 ] ( 0, 0 ) short -> zero-ref "field V04._token (fldOffset=0x8)" P-INDEP ;* V101 tmp94 [V101 ] ( 0, 0 ) ubyte -> zero-ref "field V04._continueOnCapturedContext (fldOffset=0xa)" P-INDEP ;* V102 tmp95 [V102 ] ( 0, 0 ) byref -> zero-ref "field V09._reference (fldOffset=0x0)" P-INDEP ;* V103 tmp96 [V103 ] ( 0, 0 ) int -> zero-ref "field V09._length (fldOffset=0x8)" P-INDEP ;* V104 tmp97 [V104 ] ( 0, 0 ) byref -> zero-ref "field V10._reference (fldOffset=0x0)" P-INDEP ;* V105 tmp98 [V105 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP ; V106 tmp99 [V106,T40] ( 3, 3 ) ref -> x15 "field V17._object (fldOffset=0x0)" P-INDEP ;* V107 tmp100 [V107,T61] ( 0, 0 ) int -> zero-ref "field V17._index (fldOffset=0x8)" P-INDEP ; V108 tmp101 [V108,T47] ( 3, 3 ) int -> x0 "field V17._length (fldOffset=0xc)" P-INDEP ; V109 tmp102 [V109,T53] ( 2, 2 ) ref -> x1 single-def "field V19._object (fldOffset=0x0)" P-INDEP ; V110 tmp103 [V110,T62] ( 2, 2 ) int -> x2 "field V19._index (fldOffset=0x8)" P-INDEP ; V111 tmp104 [V111,T48] ( 3, 3 ) int -> x3 "field V19._length (fldOffset=0xc)" P-INDEP ;* V112 tmp105 [V112 ] ( 0, 0 ) ref -> zero-ref single-def "field V20._object (fldOffset=0x0)" P-INDEP ;* V113 tmp106 [V113 ] ( 0, 0 ) int -> zero-ref "field V20._index (fldOffset=0x8)" P-INDEP ;* V114 tmp107 [V114 ] ( 0, 0 ) int -> zero-ref "field V20._length (fldOffset=0xc)" P-INDEP ; V115 tmp108 [V115,T54] ( 2, 2 ) ref -> x4 single-def "field V21._source (fldOffset=0x0)" P-INDEP ; V116 tmp109 [V116,T51] ( 2, 3 ) ref -> [fp+0x78] do-not-enreg[] "field V22._obj (fldOffset=0x0)" P-DEP ; V117 tmp110 [V117,T67] ( 1, 2 ) int -> [fp+0x80] do-not-enreg[] "field V22._result (fldOffset=0x8)" P-DEP ; V118 tmp111 [V118,T52] ( 2, 3 ) short -> [fp+0x84] do-not-enreg[] "field V22._token (fldOffset=0xc)" P-DEP ; V119 tmp112 [V119,T68] ( 1, 2 ) ubyte -> [fp+0x86] do-not-enreg[] "field V22._continueOnCapturedContext (fldOffset=0xe)" P-DEP ;* V120 tmp113 [V120 ] ( 0, 0 ) ref -> zero-ref single-def "field V25.m_task (fldOffset=0x0)" P-INDEP ;* V121 tmp114 [V121 ] ( 0, 0 ) int -> zero-ref "field V25._result (fldOffset=0x8)" P-INDEP ;* V122 tmp115 [V122 ] ( 0, 0 ) ref -> zero-ref single-def "field V26._obj (fldOffset=0x0)" P-INDEP ; V123 tmp116 [V123,T63] ( 2, 2 ) short -> x1 "field V26._token (fldOffset=0x8)" P-INDEP ;* V124 tmp117 [V124 ] ( 0, 0 ) ubyte -> zero-ref "field V26._continueOnCapturedContext (fldOffset=0xa)" P-INDEP ; V125 tmp118 [V125,T55] ( 2, 2 ) ref -> x0 single-def "field V30._obj (fldOffset=0x0)" P-INDEP ; V126 tmp119 [V126,T64] ( 2, 2 ) short -> x1 "field V30._token (fldOffset=0x8)" P-INDEP ;* V127 tmp120 [V127,T71] ( 0, 0 ) ubyte -> zero-ref "field V30._continueOnCapturedContext (fldOffset=0xa)" P-INDEP ;* V128 tmp121 [V128 ] ( 0, 0 ) ref -> zero-ref "field V31._obj (fldOffset=0x0)" P-INDEP ;* V129 tmp122 [V129 ] ( 0, 0 ) short -> zero-ref "field V31._token (fldOffset=0x8)" P-INDEP ;* V130 tmp123 [V130 ] ( 0, 0 ) ubyte -> zero-ref "field V31._continueOnCapturedContext (fldOffset=0xa)" P-INDEP ;* V131 tmp124 [V131 ] ( 0, 0 ) byref -> zero-ref "field V47._reference (fldOffset=0x0)" P-INDEP ;* V132 tmp125 [V132 ] ( 0, 0 ) int -> zero-ref "field V47._length (fldOffset=0x8)" P-INDEP ;* V133 tmp126 [V133 ] ( 0, 0 ) byref -> zero-ref single-def "field V52._reference (fldOffset=0x0)" P-INDEP ;* V134 tmp127 [V134 ] ( 0, 0 ) int -> zero-ref "field V52._length (fldOffset=0x8)" P-INDEP ;* V135 tmp128 [V135 ] ( 0, 0 ) byref -> zero-ref "field V54._reference (fldOffset=0x0)" P-DEP ;* V136 tmp129 [V136 ] ( 0, 0 ) int -> zero-ref "field V54._length (fldOffset=0x8)" P-DEP ; V137 tmp130 [V137,T56] ( 2, 2 ) byref -> x21 "field V55._reference (fldOffset=0x0)" P-INDEP ; V138 tmp131 [V138,T65] ( 2, 2 ) int -> x22 "field V55._length (fldOffset=0x8)" P-INDEP ;* V139 tmp132 [V139 ] ( 0, 0 ) byref -> zero-ref single-def "field V61._reference (fldOffset=0x0)" P-INDEP ;* V140 tmp133 [V140 ] ( 0, 0 ) int -> zero-ref "field V61._length (fldOffset=0x8)" P-INDEP ;* V141 tmp134 [V141 ] ( 0, 0 ) byref -> zero-ref single-def "field V62._reference (fldOffset=0x0)" P-INDEP ;* V142 tmp135 [V142 ] ( 0, 0 ) int -> zero-ref "field V62._length (fldOffset=0x8)" P-INDEP ; V143 tmp136 [V143,T57] ( 2, 2 ) byref -> x21 single-def "field V63._reference (fldOffset=0x0)" P-INDEP ; V144 tmp137 [V144,T66] ( 2, 2 ) int -> x22 "field V63._length (fldOffset=0x8)" P-INDEP ; V145 tmp138 [V145,T58] ( 2, 2 ) byref -> x0 single-def "field V68._reference (fldOffset=0x0)" P-INDEP ; V146 tmp139 [V146,T24] ( 4, 4 ) int -> x21 "field V68._length (fldOffset=0x8)" P-INDEP ;* V147 tmp140 [V147 ] ( 0, 0 ) byref -> zero-ref single-def "field V71._reference (fldOffset=0x0)" P-INDEP ;* V148 tmp141 [V148 ] ( 0, 0 ) int -> zero-ref "field V71._length (fldOffset=0x8)" P-INDEP ;* V149 tmp142 [V149 ] ( 0, 0 ) byref -> zero-ref single-def "field V74._reference (fldOffset=0x0)" P-INDEP ;* V150 tmp143 [V150 ] ( 0, 0 ) int -> zero-ref "field V74._length (fldOffset=0x8)" P-INDEP ; V151 tmp144 [V151,T27] ( 2, 4 ) ref -> x0 single-def "argument with side effect" ; V152 tmp145 [V152,T28] ( 2, 4 ) ref -> x1 single-def "argument with side effect" ; V153 tmp146 [V153,T17] ( 3, 6 ) long -> x22 "Cast away GC" ; V154 tmp147 [V154,T33] ( 2, 4 ) long -> x3 "Cast away GC" ; V155 tmp148 [V155,T34] ( 2, 4 ) long -> x3 "argument with side effect" ; V156 tmp149 [V156,T29] ( 2, 4 ) ref -> x0 single-def "argument with side effect" ; V157 PSPSym [V157,T72] ( 1, 1 ) long -> [fp+0x98] do-not-enreg[V] "PSPSym" ; V158 cse0 [V158,T41] ( 3, 3 ) ref -> x20 "CSE #15: moderate" ; V159 cse1 [V159,T49] ( 3, 3 ) int -> x14 "CSE #06: moderate" ; V160 cse2 [V160,T50] ( 3, 3 ) int -> x1 "CSE #16: moderate" ; V161 cse3 [V161,T04] ( 7, 14 ) byref -> x0 "CSE #17: aggressive" ; V162 cse4 [V162,T42] ( 3, 3 ) ref -> x2 "CSE #01: moderate" ; V163 cse5 [V163,T43] ( 3, 3 ) ref -> x21 "CSE #11: moderate" ; ; Lcl frame size = 144 G_M3290_IG01: stp fp, lr, [sp, #-0xD0]! stp x19, x20, [sp, #0xA0] stp x21, x22, [sp, #0xB0] stp x23, x24, [sp, #0xC0] mov fp, sp add x9, fp, #24 movi v16.16b, #0 stp q16, q16, [x9] stp q16, q16, [x9, #0x20] stp q16, q16, [x9, #0x40] stp q16, q16, [x9, #0x60] add x1, sp, #208 str x1, [fp, #0x98] // [V157 PSPSym] str x0, [fp, #0x10] // [V00 this] ;; size=56 bbWeight=1 PerfScore 12.00 G_M3290_IG02: ldr w1, [x0, #0x18] ldr x19, [x0] ;; size=8 bbWeight=1 PerfScore 6.00 G_M3290_IG03: cbnz w1, G_M3290_IG07 ;; size=4 bbWeight=1 PerfScore 1.00 G_M3290_IG04: ldp x1, x2, [x0, #0x40] stp x1, x2, [fp, #0x88] ;; size=8 bbWeight=1 PerfScore 5.00 G_M3290_IG05: stp xzr, xzr, [x0, #0x40] movn w1, #0 str w1, [x0, #0x18] ;; size=12 bbWeight=1 PerfScore 2.50 G_M3290_IG06: ldr x20, [fp, #0x88] // [V03 loc2] cbz x20, G_M3290_IG17 mov x1, x20 movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 cbz x0, G_M3290_IG16 add x1, x0, #52 ldapr w1, [x1] mov w2, #0xD1FFAB1E and w1, w1, w2 mov w2, #0xD1FFAB1E cmp w1, w2 beq G_M3290_IG17 mov w1, wzr movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.TaskAwaiter:HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task,int) movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 b G_M3290_IG17 ;; size=104 bbWeight=1 PerfScore 25.00 G_M3290_IG07: add x1, x0, #40 ldr x2, [x1] cbnz x2, G_M3290_IG10 ;; size=12 bbWeight=1 PerfScore 4.50 G_M3290_IG08: ldr x1, [x19, #0x68] cbz x1, G_M3290_IG32 mov x0, x19 movz x1, #0xD1FFAB1E // code for System.Formats.Tar.TarHeader:ValidateSize():this movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr w0, [x0] tbz w0, #0, G_M3290_IG28 ;; size=52 bbWeight=1 PerfScore 15.50 G_M3290_IG09: movz x0, #0xD1FFAB1E // data for System.Buffers.ArrayPool`1[ubyte]:s_shared + movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x0, [x0] ldr w1, [x19, #0x68] movz x2, #0xD1FFAB1E // code for System.Buffers.SharedArrayPool`1[ubyte]:Rent(int):ubyte[]:this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] ldr wzr, [x0] blr x2 ldr x20, [fp, #0x10] // [V00 this] add x14, x20, #16 mov x15, x0 bl CORINFO_HELP_CHECKED_ASSIGN_REF ldr x15, [x20, #0x10] ldr w0, [x19, #0x68] cbnz x15, G_M3290_IG11 cbz w0, G_M3290_IG12 b G_M3290_IG30 - ;; size=76 bbWeight=1 PerfScore 28.50 + ;; size=80 bbWeight=1 PerfScore 29.00 G_M3290_IG10: add x2, x2, #32 ldapr w2, [x2] cbz w2, G_M3290_IG08 b G_M3290_IG31 ;; size=16 bbWeight=1 PerfScore 5.50 G_M3290_IG11: ldr w14, [x15, #0x08] cmp w14, w0 blo G_M3290_IG30 b G_M3290_IG13 ;; size=16 bbWeight=1 PerfScore 5.50 G_M3290_IG12: mov x15, xzr mov w0, wzr ;; size=8 bbWeight=1 PerfScore 1.00 G_M3290_IG13: add x14, x20, #48 bl CORINFO_HELP_CHECKED_ASSIGN_REF stp wzr, w0, [x20, #0x38] ldr x0, [x20, #0x08] ldr x1, [x20, #0x30] ldp w2, w3, [x20, #0x38] ldr x4, [x20, #0x28] ldrsb wzr, [x0] stp xzr, xzr, [fp, #0x40] str x0, [fp, #0x28] // [V23 tmp16] str x1, [fp, #0x50] // [V23 tmp16+0x28] stp w2, w3, [fp, #0x58] // [V23 tmp16+0x30], [V23 tmp16+0x34] str w3, [fp, #0x34] // [V23 tmp16+0x0c] mov w0, #1 strb w0, [fp, #0x3C] // [V23 tmp16+0x14] str x4, [fp, #0x60] // [V23 tmp16+0x38] movn w0, #0 str w0, [fp, #0x30] // [V23 tmp16+0x08] add x0, fp, #40 // [V23 tmp16] movz x1, #0xD1FFAB1E // code for System.Runtime.CompilerServices.AsyncMethodBuilderCore:Start[System.IO.Stream+d__46](byref) movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 add x0, fp, #64 // [V23 tmp16+0x18] movz x1, #0xD1FFAB1E // code for System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1[int]:get_Task():System.Threading.Tasks.ValueTask`1[int]:this movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 stp x0, x1, [fp, #0x78] // [V22 tmp15], [V22 tmp15+0x08] ldrsh x1, [fp, #0x84] // [V118 tmp111] ldr x0, [fp, #0x78] // [V116 tmp109] str x0, [fp, #0x88] // [V03 loc2] strh w1, [fp, #0x90] // [V03 loc2+0x08] strb wzr, [fp, #0x92] // [V03 loc2+0x0a] ldr x21, [fp, #0x88] // [V03 loc2] cbz x21, G_M3290_IG06 mov x1, x21 movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 movz x2, #0xD1FFAB1E // code for CORINFO_HELP_ISINSTANCEOFCLASS movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 cbnz x0, G_M3290_IG15 mov x0, x21 ldrsh w1, [fp, #0x90] // [V03 loc2+0x08] movz x11, #0xD1FFAB1E // code for System.Threading.Tasks.Sources.IValueTaskSource:GetStatus(short):int:this movk x11, #0xD1FFAB1E LSL #16 movk x11, #0xD1FFAB1E LSL #32 ldr xip0, [x11] blr xip0 cbnz w0, G_M3290_IG06 ;; size=224 bbWeight=1 PerfScore 67.00 G_M3290_IG14: ldr x20, [fp, #0x10] // [V00 this] str wzr, [x20, #0x18] add x14, x20, #64 add x13, fp, #136 // [V03 loc2] bl CORINFO_HELP_ASSIGN_BYREF ldr x12, [x13], #0x08 str x12, [x14], #0x08 add x1, x20, #32 mov x0, x20 movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:GetStateMachineBox[System.Formats.Tar.TarHeader+d__68](byref,byref):System.Runtime.CompilerServices.IAsyncStateMachineBox movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 mov x1, x0 add x0, fp, #136 // [V03 loc2] movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[System.Threading.Tasks.VoidTaskResult]:AwaitUnsafeOnCompleted[System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable+ConfiguredValueTaskAwaiter](byref,System.Runtime.CompilerServices.IAsyncStateMachineBox) movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 b G_M3290_IG45 ;; size=88 bbWeight=1 PerfScore 23.00 G_M3290_IG15: add x14, x0, #52 ldapr w14, [x14] mov w13, #0xD1FFAB1E tst w14, w13 bne G_M3290_IG06 b G_M3290_IG14 ;; size=24 bbWeight=1 PerfScore 6.50 G_M3290_IG16: mov x0, x20 ldrsh w1, [fp, #0x90] // [V03 loc2+0x08] movz x11, #0xD1FFAB1E // code for System.Threading.Tasks.Sources.IValueTaskSource:GetResult(short):this movk x11, #0xD1FFAB1E LSL #16 movk x11, #0xD1FFAB1E LSL #32 ldr xip0, [x11] blr xip0 ;; size=28 bbWeight=1 PerfScore 8.00 G_M3290_IG17: ldr x0, [fp, #0x10] // [V00 this] add x20, x0, #48 mov x21, xzr mov w22, wzr ldr x1, [x20] cbz x1, G_M3290_IG20 ldr x2, [x1] ldr w2, [x2] tst w2, #0xD1FFAB1E bne G_M3290_IG18 mov x0, x1 ldr x1, [x1] ldr x1, [x1, #0x40] ldr x1, [x1, #0x28] blr x1 mov x21, x0 mov w22, w1 b G_M3290_IG19 ;; size=72 bbWeight=1 PerfScore 27.50 G_M3290_IG18: add x21, x1, #16 ldr w22, [x1, #0x08] ;; size=8 bbWeight=1 PerfScore 3.50 G_M3290_IG19: ldp w1, w2, [x20, #0x08] and w1, w1, #0xD1FFAB1E mov w1, w1 add x3, x1, w2, UXTW mov w4, w22 cmp x3, x4 bhi G_M3290_IG30 add x21, x21, x1 sxtw w22, w2 ;; size=36 bbWeight=1 PerfScore 8.00 G_M3290_IG20: movz x1, #0xD1FFAB1E + movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x20, [x1] mov x0, x21 mov w1, w22 movz x2, #0xD1FFAB1E // code for System.Formats.Tar.TarHelpers:TrimEndingNullsAndSpaces(System.ReadOnlySpan`1[ubyte]):System.ReadOnlySpan`1[ubyte] movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 mov w21, w1 cbnz w21, G_M3290_IG21 movz x15, #0xD1FFAB1E movk x15, #0xD1FFAB1E LSL #16 movk x15, #0xD1FFAB1E LSL #32 b G_M3290_IG24 - ;; size=64 bbWeight=1 PerfScore 14.50 + ;; size=68 bbWeight=1 PerfScore 15.00 G_M3290_IG21: mov x22, x0 str x22, [fp, #0x20] // [V72 tmp65] mov x0, x20 mov x1, x22 mov w2, w21 movz x3, #0xD1FFAB1E // code for System.Text.UTF8Encoding:GetCharCount(ulong,int):int:this movk x3, #0xD1FFAB1E LSL #16 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3] blr x3 sxtw w23, w0 cbz w23, G_M3290_IG22 mov w0, w23 bl System.String:FastAllocateString(int):System.String mov x24, x0 ldrsb wzr, [x24] add x3, x24, #12 str x3, [fp, #0x18] // [V80 tmp73] ldr x3, [fp, #0x18] // [V80 tmp73] mov x1, x22 mov w2, w21 mov x0, x20 mov w4, w23 movz x5, #0xD1FFAB1E // code for System.Text.UTF8Encoding:GetChars(ulong,int,ulong,int):int:this movk x5, #0xD1FFAB1E LSL #16 movk x5, #0xD1FFAB1E LSL #32 ldr x5, [x5] blr x5 str xzr, [fp, #0x18] // [V80 tmp73] mov x15, x24 b G_M3290_IG23 ;; size=124 bbWeight=1 PerfScore 28.50 G_M3290_IG22: movz x15, #0xD1FFAB1E movk x15, #0xD1FFAB1E LSL #16 movk x15, #0xD1FFAB1E LSL #32 ;; size=12 bbWeight=1 PerfScore 1.50 G_M3290_IG23: stp xzr, xzr, [fp, #0x18] // [V80 tmp73], [V72 tmp65] ;; size=4 bbWeight=1 PerfScore 1.00 G_M3290_IG24: ldrb w14, [x19, #0x8C] cmp w14, #75 beq G_M3290_IG25 cmp w14, #76 bne G_M3290_IG26 add x14, x19, #16 bl CORINFO_HELP_ASSIGN_REF b G_M3290_IG26 ;; size=32 bbWeight=1 PerfScore 8.50 G_M3290_IG25: add x14, x19, #24 bl CORINFO_HELP_ASSIGN_REF ;; size=8 bbWeight=1 PerfScore 1.50 G_M3290_IG26: movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr w0, [x0] tbz w0, #0, G_M3290_IG29 ;; size=20 bbWeight=1 PerfScore 5.50 G_M3290_IG27: movz x0, #0xD1FFAB1E // data for System.Buffers.ArrayPool`1[ubyte]:s_shared + movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x0, [x0] ldr x20, [fp, #0x10] // [V00 this] ldr x1, [x20, #0x10] mov w2, wzr movz x3, #0xD1FFAB1E // code for System.Buffers.SharedArrayPool`1[ubyte]:Return(ubyte[],ubyte):this movk x3, #0xD1FFAB1E LSL #16 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3] ldr wzr, [x0] blr x3 str xzr, [x20, #0x10] stp xzr, xzr, [x20, #0x30] b G_M3290_IG32 - ;; size=60 bbWeight=1 PerfScore 21.00 + ;; size=64 bbWeight=1 PerfScore 21.50 G_M3290_IG28: movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_GET_GCSTATIC_BASE b G_M3290_IG09 - align [0 bytes for IG35] + align [4 bytes for IG35] + align [4 bytes] align [0 bytes] align [0 bytes] - align [0 bytes] - ;; size=20 bbWeight=0 PerfScore 0.00 + ;; size=28 bbWeight=0 PerfScore 0.00 G_M3290_IG29: movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_GET_GCSTATIC_BASE b G_M3290_IG27 ;; size=20 bbWeight=0 PerfScore 0.00 G_M3290_IG30: ldr x20, [fp, #0x10] // [V00 this] movz x0, #0xD1FFAB1E // code for System.ThrowHelper:ThrowArgumentOutOfRangeException() movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x0, [x0] blr x0 brk_unix #0 ;; size=28 bbWeight=0 PerfScore 0.00 G_M3290_IG31: mov x0, x1 movz x1, #0xD1FFAB1E // code for System.Threading.CancellationToken:ThrowOperationCanceledException():this movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 brk_unix #0 ;; size=28 bbWeight=0 PerfScore 0.00 G_M3290_IG32: movn w1, #1 ldr x0, [fp, #0x10] // [V00 this] str w1, [x0, #0x18] add x20, x0, #32 ldr x21, [x20] cbz x21, G_M3290_IG43 mov w22, wzr movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr w0, [x0] tbz w0, #0, G_M3290_IG46 ;; size=48 bbWeight=1 PerfScore 14.00 G_M3290_IG33: movz x0, #0xD1FFAB1E // data for System.Threading.Tasks.TplEventSource:Log + movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x20, [x0] ldrb w0, [x20, #0x9D] cbz w0, G_M3290_IG34 mov x0, x21 movz x1, #0xD1FFAB1E // code for System.Threading.Tasks.Task:get_Id():int:this movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] ldr wzr, [x0] blr x1 sxtw w19, w0 ldrb w1, [x20, #0x9D] cbz w1, G_M3290_IG34 ldr x3, [x20, #0x80] ldr w2, [x20, #0x98] mov x0, x20 mov w4, #4 mov x5, #8 mov w6, wzr movz x7, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:IsEnabledCommon(ubyte,int,long,int,long,ubyte):ubyte:this movk x7, #0xD1FFAB1E LSL #16 movk x7, #0xD1FFAB1E LSL #32 ldr x7, [x7] blr x7 cbz w0, G_M3290_IG34 mov x0, x20 mov w2, w19 mov w1, #15 mov w3, #1 movz x4, #0xD1FFAB1E // code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int):this movk x4, #0xD1FFAB1E LSL #16 movk x4, #0xD1FFAB1E LSL #32 ldr x4, [x4] blr x4 - ;; size=144 bbWeight=1 PerfScore 43.50 + ;; size=148 bbWeight=1 PerfScore 44.00 G_M3290_IG34: add x0, x21, #52 ldapr w1, [x0] mov w2, #0xD1FFAB1E tst w1, w2 bne G_M3290_IG47 orr w2, w1, #0xD1FFAB1E mov w3, w1 casal w3, w2, [x0] cmp w3, w1 beq G_M3290_IG41 ldapr w1, [x0] b G_M3290_IG36 ;; size=48 bbWeight=1 PerfScore 15.00 G_M3290_IG35: sxtw w1, w3 ;; size=4 bbWeight=8 PerfScore 4.00 G_M3290_IG36: mov w2, #0xD1FFAB1E tst w1, w2 beq G_M3290_IG38 ;; size=12 bbWeight=8 PerfScore 16.00 G_M3290_IG37: mov w2, wzr b G_M3290_IG40 ;; size=8 bbWeight=1 PerfScore 1.50 G_M3290_IG38: orr w2, w1, #0xD1FFAB1E mov w3, w1 casal w3, w2, [x0] cmp w3, w1 bne G_M3290_IG35 ;; size=20 bbWeight=8 PerfScore 44.00 G_M3290_IG39: mov w2, #1 ;; size=4 bbWeight=1 PerfScore 0.50 G_M3290_IG40: cbz w2, G_M3290_IG47 ;; size=4 bbWeight=1 PerfScore 1.00 G_M3290_IG41: strb w22, [x21, #0x38] ldapr w1, [x0] orr w1, w1, #0xD1FFAB1E swpal w1, w0, [x0] ldr x22, [x21, #0x28] cbz x22, G_M3290_IG42 mov x0, x21 movz x1, #0xD1FFAB1E // code for System.Threading.Tasks.Task:NotifyParentIfPotentiallyAttachedTask():this movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 add x0, x22, #16 ldapr x0, [x0] cbz x0, G_M3290_IG42 movz x1, #0xD1FFAB1E // code for System.Threading.Tasks.Task+ContingentProperties:SetEvent(System.Threading.ManualResetEventSlim) movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 ;; size=80 bbWeight=1 PerfScore 27.50 G_M3290_IG42: mov x0, x21 movz x1, #0xD1FFAB1E // code for System.Threading.Tasks.Task:FinishContinuations():this movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 b G_M3290_IG45 ;; size=28 bbWeight=1 PerfScore 7.00 G_M3290_IG43: movz x14, #0xD1FFAB1E movk x14, #0xD1FFAB1E LSL #16 movk x14, #0xD1FFAB1E LSL #32 ldr w14, [x14] tbz w14, #0, G_M3290_IG48 ;; size=20 bbWeight=1 PerfScore 5.50 G_M3290_IG44: movz x14, #0xD1FFAB1E // data for System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder:s_syncSuccessSentinel + movk x14, #0xD1FFAB1E LSL #16 movk x14, #0xD1FFAB1E LSL #32 ldr x15, [x14] mov x14, x20 bl CORINFO_HELP_CHECKED_ASSIGN_REF - ;; size=20 bbWeight=1 PerfScore 5.50 + ;; size=24 bbWeight=1 PerfScore 6.00 G_M3290_IG45: ldp x23, x24, [sp, #0xC0] ldp x21, x22, [sp, #0xB0] ldp x19, x20, [sp, #0xA0] ldp fp, lr, [sp], #0xD0 ret lr ;; size=20 bbWeight=1 PerfScore 5.00 G_M3290_IG46: movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_GET_GCSTATIC_BASE b G_M3290_IG33 ;; size=20 bbWeight=0 PerfScore 0.00 G_M3290_IG47: mov w0, #24 movz x1, #0xD1FFAB1E // code for System.ThrowHelper:ThrowInvalidOperationException(int) movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 brk_unix #0 ;; size=28 bbWeight=0 PerfScore 0.00 G_M3290_IG48: movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_GET_GCSTATIC_BASE b G_M3290_IG44 ;; size=20 bbWeight=0 PerfScore 0.00 G_M3290_IG49: stp fp, lr, [sp, #-0x50]! stp x19, x20, [sp, #0x20] stp x21, x22, [sp, #0x30] stp x23, x24, [sp, #0x40] add x3, fp, #208 str x3, [sp, #0x18] ;; size=24 bbWeight=0 PerfScore 0.00 G_M3290_IG50: mov x1, x0 movn w0, #1 ldr x20, [fp, #0x10] // [V00 this] str w0, [x20, #0x18] add x0, x20, #32 movz x2, #0xD1FFAB1E // code for System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder:SetException(System.Exception):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 adr x0, [G_M3290_IG45] ;; size=44 bbWeight=0 PerfScore 0.00 G_M3290_IG51: ldp x23, x24, [sp, #0x40] ldp x21, x22, [sp, #0x30] ldp x19, x20, [sp, #0x20] ldp fp, lr, [sp], #0x50 ret lr ;; size=20 bbWeight=0 PerfScore 0.00 -; Total bytes of code 1888, prolog size 56, PerfScore 527.50, instruction count 476, allocated bytes for code 1888 (MethodHash=94e5f325) for method System.Formats.Tar.TarHeader+d__68:MoveNext():this (FullOpts) +; Total bytes of code 1916, prolog size 56, PerfScore 530.00, instruction count 481, allocated bytes for code 1916 (MethodHash=94e5f325) for method System.Formats.Tar.TarHeader+d__68:MoveNext():this (FullOpts) ```

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

MihuBot commented 1 month ago

Top method improvements

-36 (-3.81 % of base) - Microsoft.VisualBasic.CompilerServices.VB6RandomFile:OpenFile():this ```diff ; Assembly listing for method Microsoft.VisualBasic.CompilerServices.VB6RandomFile:OpenFile():this (FullOpts) ; Emitting BLENDED_CODE for generic ARM64 - Unix ; FullOpts code ; optimized code ; fp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 6 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T00] ( 30, 24 ) ref -> [fp+0x10] this class-hnd EH-live single-def -; V01 loc0 [V01,T08] ( 6, 4 ) int -> [fp+0x1C] do-not-enreg[M] EH-live +; V00 this [V00,T00] ( 30, 24 ) ref -> [fp+0x18] this class-hnd EH-live single-def +; V01 loc0 [V01,T08] ( 6, 4 ) int -> [fp+0x24] do-not-enreg[M] EH-live ; V02 loc1 [V02,T06] ( 5, 5 ) ref -> x19 class-hnd single-def ;* V03 loc2 [V03 ] ( 0, 0 ) ref -> zero-ref class-hnd exact ;* V04 loc3 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd ;* V05 loc4 [V05 ] ( 0, 0 ) ref -> zero-ref class-hnd exact ;* V06 loc5 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd ;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V08 tmp1 [V08,T01] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" ; V09 tmp2 [V09,T02] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" -; V10 tmp3 [V10,T03] ( 3, 6 ) ref -> x21 class-hnd exact single-def "NewObj constructor temp" +; V10 tmp3 [V10,T03] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" ; V11 tmp4 [V11,T04] ( 3, 6 ) ref -> x20 class-hnd exact single-def "NewObj constructor temp" ;* V12 tmp5 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" ;* V13 tmp6 [V13 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" -; V14 tmp7 [V14,T13] ( 2, 0 ) ref -> x0 class-hnd single-def "impSpillSpecialSideEff" -; V15 tmp8 [V15,T14] ( 2, 0 ) ref -> x0 class-hnd single-def "impSpillSpecialSideEff" -; V16 tmp9 [V16,T15] ( 2, 0 ) ref -> x0 class-hnd single-def "impSpillSpecialSideEff" -; V17 tmp10 [V17,T16] ( 2, 0 ) ref -> x0 class-hnd single-def "impSpillSpecialSideEff" +; V14 tmp7 [V14,T12] ( 2, 0 ) ref -> x0 class-hnd single-def "impSpillSpecialSideEff" +; V15 tmp8 [V15,T13] ( 2, 0 ) ref -> x0 class-hnd single-def "impSpillSpecialSideEff" +; V16 tmp9 [V16,T14] ( 2, 0 ) ref -> x0 class-hnd single-def "impSpillSpecialSideEff" +; V17 tmp10 [V17,T15] ( 2, 0 ) ref -> x0 class-hnd single-def "impSpillSpecialSideEff" ;* V18 tmp11 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ;* V19 tmp12 [V19 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ;* V20 tmp13 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ;* V21 tmp14 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ; V22 tmp15 [V22,T05] ( 3, 6 ) ref -> x2 single-def "argument with side effect" -; V23 PSPSym [V23,T12] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym" +; V23 PSPSym [V23,T11] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[V] "PSPSym" ; V24 cse0 [V24,T09] ( 3, 3 ) int -> x1 "CSE #02: aggressive" ; V25 cse1 [V25,T10] ( 3, 3 ) int -> x1 "CSE #04: aggressive" ; V26 cse2 [V26,T07] ( 5, 5 ) int -> x2 multi-def "CSE #01: aggressive" -; V27 cse3 [V27,T11] ( 3, 3 ) long -> x20 "CSE #05: aggressive" ; -; Lcl frame size = 24 +; Lcl frame size = 32 G_M12809_IG01: stp fp, lr, [sp, #-0x40]! - stp x19, x20, [sp, #0x28] - str x21, [sp, #0x38] + stp x19, x20, [sp, #0x30] mov fp, sp add x1, sp, #64 - str x1, [fp, #0x20] // [V23 PSPSym] - str x0, [fp, #0x10] // [V00 this] - ;; size=28 bbWeight=1 PerfScore 6.00 + str x1, [fp, #0x28] // [V23 PSPSym] + str x0, [fp, #0x18] // [V00 this] + ;; size=24 bbWeight=1 PerfScore 5.00 G_M12809_IG02: ldr x0, [x0, #0x08] movz x1, #0xD1FFAB1E // code for System.IO.File:Exists(System.String):ubyte movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 cbnz w0, G_M12809_IG03 - ldr x0, [fp, #0x10] // [V00 this] + ldr x0, [fp, #0x18] // [V00 this] ldr w2, [x0, #0x60] mov w1, #2 mov w3, #4 cmp w2, #1 csel w2, w1, w3, ne - str w2, [fp, #0x1C] // [V01 loc0] + str w2, [fp, #0x24] // [V01 loc0] b G_M12809_IG04 ;; size=60 bbWeight=1 PerfScore 18.50 G_M12809_IG03: mov w2, #3 - str w2, [fp, #0x1C] // [V01 loc0] - ldr x0, [fp, #0x10] // [V00 this] + str w2, [fp, #0x24] // [V01 loc0] + ldr x0, [fp, #0x18] // [V00 this] ;; size=12 bbWeight=1 PerfScore 3.50 G_M12809_IG04: ldr w2, [x0, #0x60] cmn w2, #1 beq G_M12809_IG05 - ldr w1, [fp, #0x1C] // [V01 loc0] + ldr w1, [fp, #0x24] // [V01 loc0] movz x3, #0xD1FFAB1E // code for Microsoft.VisualBasic.CompilerServices.VB6RandomFile:OpenFileHelper(int,int):this movk x3, #0xD1FFAB1E LSL #16 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3] blr x3 b G_M12809_IG07 ;; size=40 bbWeight=1 PerfScore 13.00 G_M12809_IG05: mov w2, #3 str w2, [x0, #0x60] ;; size=8 bbWeight=1 PerfScore 1.50 G_M12809_IG06: ldr w2, [x0, #0x60] - ldr w1, [fp, #0x1C] // [V01 loc0] + ldr w1, [fp, #0x24] // [V01 loc0] movz x3, #0xD1FFAB1E // code for Microsoft.VisualBasic.CompilerServices.VB6RandomFile:OpenFileHelper(int,int):this movk x3, #0xD1FFAB1E LSL #16 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3] blr x3 ;; size=28 bbWeight=1 PerfScore 10.50 G_M12809_IG07: movz x14, #0xD1FFAB1E movk x14, #0xD1FFAB1E LSL #16 movk x14, #0xD1FFAB1E LSL #32 ldr w14, [x14] tbz w14, #0, G_M12809_IG13 ;; size=20 bbWeight=1 PerfScore 5.50 G_M12809_IG08: movz x14, #0xD1FFAB1E // data for System.Text.Encoding:s_defaultEncoding movk x14, #0xD1FFAB1E LSL #16 movk x14, #0xD1FFAB1E LSL #32 ldr x15, [x14] - ldr x0, [fp, #0x10] // [V00 this] + ldr x0, [fp, #0x18] // [V00 this] add x14, x0, #56 bl CORINFO_HELP_ASSIGN_REF ldr x19, [x0, #0x10] ldr w1, [x0, #0x60] cmp w1, #2 beq G_M12809_IG09 cmp w1, #3 bne G_M12809_IG10 ;; size=52 bbWeight=1 PerfScore 17.00 G_M12809_IG09: movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_NEWSFAST mov x20, x0 - ldr x0, [fp, #0x10] // [V00 this] + ldr x0, [fp, #0x18] // [V00 this] ldr x2, [x0, #0x38] mov x0, x20 mov x1, x19 mov w3, #0xD1FFAB1E mov w4, wzr movz x5, #0xD1FFAB1E // code for System.IO.StreamWriter:.ctor(System.IO.Stream,System.Text.Encoding,int,ubyte):this movk x5, #0xD1FFAB1E LSL #16 movk x5, #0xD1FFAB1E LSL #32 ldr x5, [x5] blr x5 - ldr x0, [fp, #0x10] // [V00 this] + ldr x0, [fp, #0x18] // [V00 this] add x14, x0, #24 mov x15, x20 bl CORINFO_HELP_ASSIGN_REF ldr x2, [x0, #0x18] mov x0, x2 mov w1, #1 ldr x2, [x2] ldr x2, [x2, #0x80] ldr x2, [x2, #0x28] blr x2 movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_NEWSFAST mov x20, x0 - ldr x0, [fp, #0x10] // [V00 this] + ldr x0, [fp, #0x18] // [V00 this] ldr x2, [x0, #0x38] mov x0, x20 mov x1, x19 mov w3, wzr movz x4, #0xD1FFAB1E // code for System.IO.BinaryWriter:.ctor(System.IO.Stream,System.Text.Encoding,ubyte):this movk x4, #0xD1FFAB1E LSL #16 movk x4, #0xD1FFAB1E LSL #32 ldr x4, [x4] blr x4 - ldr x0, [fp, #0x10] // [V00 this] + ldr x0, [fp, #0x18] // [V00 this] add x14, x0, #40 mov x15, x20 bl CORINFO_HELP_ASSIGN_REF ;; size=184 bbWeight=1 PerfScore 52.50 G_M12809_IG10: - ldr x0, [fp, #0x10] // [V00 this] + ldr x0, [fp, #0x18] // [V00 this] ldr w1, [x0, #0x60] cmp w1, #1 beq G_M12809_IG11 cmp w1, #3 bne G_M12809_IG12 ;; size=24 bbWeight=1 PerfScore 8.00 G_M12809_IG11: - movz x20, #0xD1FFAB1E - movk x20, #0xD1FFAB1E LSL #16 - movk x20, #0xD1FFAB1E LSL #32 - add x0, x20, #0xD1FFAB1E + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_NEWSFAST - mov x21, x0 - ldr x0, [fp, #0x10] // [V00 this] + mov x20, x0 + ldr x0, [fp, #0x18] // [V00 this] ldr x2, [x0, #0x38] - mov x0, x21 + mov x0, x20 mov x1, x19 mov w3, wzr movz x4, #0xD1FFAB1E // code for System.IO.BinaryReader:.ctor(System.IO.Stream,System.Text.Encoding,ubyte):this movk x4, #0xD1FFAB1E LSL #16 movk x4, #0xD1FFAB1E LSL #32 ldr x4, [x4] blr x4 - ldr x0, [fp, #0x10] // [V00 this] + ldr x0, [fp, #0x18] // [V00 this] add x14, x0, #48 - mov x15, x21 + mov x15, x20 bl CORINFO_HELP_ASSIGN_REF ldr x1, [x0] ldr x1, [x1, #0x50] ldr x1, [x1, #0x28] blr x1 cmp w0, #32 bne G_M12809_IG12 - mov x0, x20 + movz x0, #0xD1FFAB1E + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_NEWSFAST mov x20, x0 - ldr x0, [fp, #0x10] // [V00 this] + ldr x0, [fp, #0x18] // [V00 this] ldr x2, [x0, #0x38] mov x0, x20 mov x1, x19 mov w3, wzr mov w4, #128 mov w5, wzr movz x6, #0xD1FFAB1E // code for System.IO.StreamReader:.ctor(System.IO.Stream,System.Text.Encoding,ubyte,int,ubyte):this movk x6, #0xD1FFAB1E LSL #16 movk x6, #0xD1FFAB1E LSL #32 ldr x6, [x6] blr x6 - ldr x0, [fp, #0x10] // [V00 this] + ldr x0, [fp, #0x18] // [V00 this] add x14, x0, #32 mov x15, x20 bl CORINFO_HELP_ASSIGN_REF - ;; size=180 bbWeight=1 PerfScore 50.00 + ;; size=184 bbWeight=1 PerfScore 50.50 G_M12809_IG12: - ldr x21, [sp, #0x38] - ldp x19, x20, [sp, #0x28] + ldp x19, x20, [sp, #0x30] ldp fp, lr, [sp], #0x40 ret lr - ;; size=16 bbWeight=1 PerfScore 5.00 + ;; size=12 bbWeight=1 PerfScore 3.00 G_M12809_IG13: movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_GET_GCSTATIC_BASE b G_M12809_IG08 ;; size=20 bbWeight=0 PerfScore 0.00 G_M12809_IG14: stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x18] - str x21, [sp, #0x28] + stp x19, x20, [sp, #0x20] add x3, fp, #64 - str x3, [sp, #0x10] - ;; size=20 bbWeight=0 PerfScore 0.00 + str x3, [sp, #0x18] + ;; size=16 bbWeight=0 PerfScore 0.00 G_M12809_IG15: bl CORINFO_HELP_THROW brk_unix #0 ;; size=8 bbWeight=0 PerfScore 0.00 G_M12809_IG16: stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x18] - str x21, [sp, #0x28] + stp x19, x20, [sp, #0x20] add x3, fp, #64 - str x3, [sp, #0x10] - ;; size=20 bbWeight=0 PerfScore 0.00 + str x3, [sp, #0x18] + ;; size=16 bbWeight=0 PerfScore 0.00 G_M12809_IG17: bl CORINFO_HELP_THROW brk_unix #0 ;; size=8 bbWeight=0 PerfScore 0.00 G_M12809_IG18: stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x18] - str x21, [sp, #0x28] + stp x19, x20, [sp, #0x20] add x3, fp, #64 - str x3, [sp, #0x10] - ;; size=20 bbWeight=0 PerfScore 0.00 + str x3, [sp, #0x18] + ;; size=16 bbWeight=0 PerfScore 0.00 G_M12809_IG19: bl CORINFO_HELP_THROW brk_unix #0 ;; size=8 bbWeight=0 PerfScore 0.00 G_M12809_IG20: stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x18] - str x21, [sp, #0x28] + stp x19, x20, [sp, #0x20] add x3, fp, #64 - str x3, [sp, #0x10] - ;; size=20 bbWeight=0 PerfScore 0.00 + str x3, [sp, #0x18] + ;; size=16 bbWeight=0 PerfScore 0.00 G_M12809_IG21: bl CORINFO_HELP_THROW brk_unix #0 ;; size=8 bbWeight=0 PerfScore 0.00 G_M12809_IG22: stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x18] - str x21, [sp, #0x28] + stp x19, x20, [sp, #0x20] add x3, fp, #64 - str x3, [sp, #0x10] - ;; size=20 bbWeight=0 PerfScore 0.00 + str x3, [sp, #0x18] + ;; size=16 bbWeight=0 PerfScore 0.00 G_M12809_IG23: mov w2, #1 - ldr x0, [fp, #0x10] // [V00 this] + ldr x0, [fp, #0x18] // [V00 this] str w2, [x0, #0x60] ldr w2, [x0, #0x60] - ldr w1, [fp, #0x1C] // [V01 loc0] + ldr w1, [fp, #0x24] // [V01 loc0] movz x3, #0xD1FFAB1E // code for Microsoft.VisualBasic.CompilerServices.VB6RandomFile:OpenFileHelper(int,int):this movk x3, #0xD1FFAB1E LSL #16 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3] blr x3 adr x0, [G_M12809_IG28] ;; size=44 bbWeight=0 PerfScore 0.00 G_M12809_IG24: - ldr x21, [sp, #0x28] - ldp x19, x20, [sp, #0x18] + ldp x19, x20, [sp, #0x20] ldp fp, lr, [sp], #0x30 ret lr - ;; size=16 bbWeight=0 PerfScore 0.00 + ;; size=12 bbWeight=0 PerfScore 0.00 G_M12809_IG25: stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x18] - str x21, [sp, #0x28] + stp x19, x20, [sp, #0x20] add x3, fp, #64 - str x3, [sp, #0x10] - ;; size=20 bbWeight=0 PerfScore 0.00 + str x3, [sp, #0x18] + ;; size=16 bbWeight=0 PerfScore 0.00 G_M12809_IG26: mov w2, #2 - ldr x0, [fp, #0x10] // [V00 this] + ldr x0, [fp, #0x18] // [V00 this] str w2, [x0, #0x60] ;; size=12 bbWeight=0 PerfScore 0.00 G_M12809_IG27: ldr w2, [x0, #0x60] - ldr w1, [fp, #0x1C] // [V01 loc0] + ldr w1, [fp, #0x24] // [V01 loc0] movz x3, #0xD1FFAB1E // code for Microsoft.VisualBasic.CompilerServices.VB6RandomFile:OpenFileHelper(int,int):this movk x3, #0xD1FFAB1E LSL #16 movk x3, #0xD1FFAB1E LSL #32 ldr x3, [x3] blr x3 ;; size=28 bbWeight=0 PerfScore 0.00 G_M12809_IG28: adr x0, [G_M12809_IG07] ;; size=4 bbWeight=0 PerfScore 0.00 G_M12809_IG29: - ldr x21, [sp, #0x28] - ldp x19, x20, [sp, #0x18] + ldp x19, x20, [sp, #0x20] ldp fp, lr, [sp], #0x30 ret lr - ;; size=16 bbWeight=0 PerfScore 0.00 + ;; size=12 bbWeight=0 PerfScore 0.00 -; Total bytes of code 944, prolog size 28, PerfScore 191.00, instruction count 236, allocated bytes for code 944 (MethodHash=6330cdf6) for method Microsoft.VisualBasic.CompilerServices.VB6RandomFile:OpenFile():this (FullOpts) +; Total bytes of code 908, prolog size 24, PerfScore 188.50, instruction count 227, allocated bytes for code 908 (MethodHash=6330cdf6) for method Microsoft.VisualBasic.CompilerServices.VB6RandomFile:OpenFile():this (FullOpts) ```
-32 (-10.13 % of base) - System.Runtime.InteropServices.SafeBuffer:Read[int](ulong):int:this ```diff ; Assembly listing for method System.Runtime.InteropServices.SafeBuffer:Read[int](ulong):int:this (FullOpts) ; Emitting BLENDED_CODE for generic ARM64 - Unix ; FullOpts code ; optimized code ; fp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T00] ( 8, 6.50) ref -> [fp+0x10] this class-hnd EH-live single-def ; V01 arg1 [V01,T01] ( 3, 3 ) long -> x19 single-def -; V02 loc0 [V02,T02] ( 3, 3 ) int -> x20 -; V03 loc1 [V03,T03] ( 3, 3 ) long -> x19 -; V04 loc2 [V04 ] ( 3, 3 ) int -> [fp+0x20] do-not-enreg[X] addr-exposed ld-addr-op -; V05 loc3 [V05 ] ( 4, 3 ) ubyte -> [fp+0x18] do-not-enreg[X] addr-exposed ld-addr-op +; V02 loc0 [V02,T03] ( 2, 2 ) int -> x0 +; V03 loc1 [V03,T02] ( 3, 3 ) long -> x19 +; V04 loc2 [V04 ] ( 4, 3 ) ubyte -> [fp+0x18] do-not-enreg[X] addr-exposed ld-addr-op +; V05 loc3 [V05,T04] ( 2, 2 ) int -> x19 ;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V07 tmp1 [V07 ] ( 0, 0 ) long -> zero-ref "impAppendStmt" -; V08 PSPSym [V08,T04] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[V] "PSPSym" +; V08 PSPSym [V08,T05] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym" ; -; Lcl frame size = 32 +; Lcl frame size = 24 G_M1215_IG01: - stp fp, lr, [sp, #-0x40]! - stp x19, x20, [sp, #0x30] + stp fp, lr, [sp, #-0x30]! + str x19, [sp, #0x28] mov fp, sp - add x2, sp, #64 - str x2, [fp, #0x28] // [V08 PSPSym] + add x2, sp, #48 + str x2, [fp, #0x20] // [V08 PSPSym] str x0, [fp, #0x10] // [V00 this] mov x19, x1 ;; size=28 bbWeight=1 PerfScore 5.50 G_M1215_IG02: ldr x1, [x0, #0x18] cmn x1, #1 beq G_M1215_IG08 movz x1, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeBuffer:SizeOf[int]():uint movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 - sxtw w20, w0 - ldr x0, [fp, #0x10] // [V00 this] - ldr x2, [x0, #0x08] + ldr x3, [fp, #0x10] // [V00 this] + ldr x2, [x3, #0x08] add x19, x2, x19 - mov w2, w20 + mov w2, w0 + mov x0, x3 mov x1, x19 - movz x3, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeBuffer:SpaceCheck(ulong,ulong):this - movk x3, #0xD1FFAB1E LSL #16 - movk x3, #0xD1FFAB1E LSL #32 - ldr x3, [x3] - blr x3 - str wzr, [fp, #0x20] // [V04 loc2] - str wzr, [fp, #0x18] // [V05 loc3] - ;; size=84 bbWeight=1 PerfScore 24.50 + movz x4, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeBuffer:SpaceCheck(ulong,ulong):this + movk x4, #0xD1FFAB1E LSL #16 + movk x4, #0xD1FFAB1E LSL #32 + ldr x4, [x4] + blr x4 + str wzr, [fp, #0x18] // [V04 loc2] + ;; size=80 bbWeight=1 PerfScore 23.50 G_M1215_IG03: - add x1, fp, #24 // [V05 loc3] + add x1, fp, #24 // [V04 loc2] ldr x0, [fp, #0x10] // [V00 this] movz x2, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeHandle:DangerousAddRef(byref):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 - mov w2, w20 - add x0, fp, #32 // [V04 loc2] - mov x1, x19 - movz x3, #0xD1FFAB1E // code for System.SpanHelpers:Memmove(byref,byref,ulong) - movk x3, #0xD1FFAB1E LSL #16 - movk x3, #0xD1FFAB1E LSL #32 - ldr x3, [x3] - blr x3 - ;; size=60 bbWeight=1 PerfScore 15.00 + ldr w19, [x19] + ;; size=32 bbWeight=1 PerfScore 11.00 G_M1215_IG04: - ldrb w0, [fp, #0x18] // [V05 loc3] + ldrb w0, [fp, #0x18] // [V04 loc2] cbz w0, G_M1215_IG06 ;; size=8 bbWeight=1 PerfScore 3.00 G_M1215_IG05: ldr x0, [fp, #0x10] // [V00 this] mov w1, wzr movz x2, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ;; size=28 bbWeight=0.50 PerfScore 4.00 G_M1215_IG06: - ldr w0, [fp, #0x20] // [V04 loc2] - ;; size=4 bbWeight=1 PerfScore 2.00 + mov w0, w19 + ;; size=4 bbWeight=1 PerfScore 0.50 G_M1215_IG07: - ldp x19, x20, [sp, #0x30] - ldp fp, lr, [sp], #0x40 + ldr x19, [sp, #0x28] + ldp fp, lr, [sp], #0x30 ret lr - ;; size=12 bbWeight=1 PerfScore 3.00 + ;; size=12 bbWeight=1 PerfScore 4.00 G_M1215_IG08: movz x0, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeBuffer:NotInitialized():System.InvalidOperationException movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x0, [x0] blr x0 bl CORINFO_HELP_THROW brk_unix #0 ;; size=28 bbWeight=0 PerfScore 0.00 G_M1215_IG09: - stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x20] - add x3, fp, #64 - str x3, [sp, #0x18] + stp fp, lr, [sp, #-0x20]! + str x19, [sp, #0x18] + add x3, fp, #48 + str x3, [sp, #0x10] ;; size=16 bbWeight=0 PerfScore 0.00 G_M1215_IG10: - ldrb w0, [fp, #0x18] // [V05 loc3] + ldrb w0, [fp, #0x18] // [V04 loc2] cbz w0, G_M1215_IG11 ldr x0, [fp, #0x10] // [V00 this] mov w1, wzr movz x2, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ;; size=36 bbWeight=0 PerfScore 0.00 G_M1215_IG11: - ldp x19, x20, [sp, #0x20] - ldp fp, lr, [sp], #0x30 + ldr x19, [sp, #0x18] + ldp fp, lr, [sp], #0x20 ret lr ;; size=12 bbWeight=0 PerfScore 0.00 -; Total bytes of code 316, prolog size 28, PerfScore 57.00, instruction count 79, allocated bytes for code 316 (MethodHash=84fefb40) for method System.Runtime.InteropServices.SafeBuffer:Read[int](ulong):int:this (FullOpts) +; Total bytes of code 284, prolog size 28, PerfScore 51.50, instruction count 71, allocated bytes for code 284 (MethodHash=84fefb40) for method System.Runtime.InteropServices.SafeBuffer:Read[int](ulong):int:this (FullOpts) ```
-32 (-10.13 % of base) - System.Runtime.InteropServices.SafeBuffer:Read[long](ulong):long:this ```diff ; Assembly listing for method System.Runtime.InteropServices.SafeBuffer:Read[long](ulong):long:this (FullOpts) ; Emitting BLENDED_CODE for generic ARM64 - Unix ; FullOpts code ; optimized code ; fp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T00] ( 8, 6.50) ref -> [fp+0x10] this class-hnd EH-live single-def ; V01 arg1 [V01,T01] ( 3, 3 ) long -> x19 single-def -; V02 loc0 [V02,T02] ( 3, 3 ) int -> x20 -; V03 loc1 [V03,T03] ( 3, 3 ) long -> x19 -; V04 loc2 [V04 ] ( 3, 3 ) long -> [fp+0x20] do-not-enreg[X] addr-exposed ld-addr-op -; V05 loc3 [V05 ] ( 4, 3 ) ubyte -> [fp+0x18] do-not-enreg[X] addr-exposed ld-addr-op +; V02 loc0 [V02,T03] ( 2, 2 ) int -> x0 +; V03 loc1 [V03,T02] ( 3, 3 ) long -> x19 +; V04 loc2 [V04 ] ( 4, 3 ) ubyte -> [fp+0x18] do-not-enreg[X] addr-exposed ld-addr-op +; V05 loc3 [V05,T04] ( 2, 2 ) long -> x19 ;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V07 tmp1 [V07 ] ( 0, 0 ) long -> zero-ref "impAppendStmt" -; V08 PSPSym [V08,T04] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[V] "PSPSym" +; V08 PSPSym [V08,T05] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym" ; -; Lcl frame size = 32 +; Lcl frame size = 24 G_M44191_IG01: - stp fp, lr, [sp, #-0x40]! - stp x19, x20, [sp, #0x30] + stp fp, lr, [sp, #-0x30]! + str x19, [sp, #0x28] mov fp, sp - add x2, sp, #64 - str x2, [fp, #0x28] // [V08 PSPSym] + add x2, sp, #48 + str x2, [fp, #0x20] // [V08 PSPSym] str x0, [fp, #0x10] // [V00 this] mov x19, x1 ;; size=28 bbWeight=1 PerfScore 5.50 G_M44191_IG02: ldr x1, [x0, #0x18] cmn x1, #1 beq G_M44191_IG08 movz x1, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeBuffer:SizeOf[long]():uint movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 - sxtw w20, w0 - ldr x0, [fp, #0x10] // [V00 this] - ldr x2, [x0, #0x08] + ldr x3, [fp, #0x10] // [V00 this] + ldr x2, [x3, #0x08] add x19, x2, x19 - mov w2, w20 + mov w2, w0 + mov x0, x3 mov x1, x19 - movz x3, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeBuffer:SpaceCheck(ulong,ulong):this - movk x3, #0xD1FFAB1E LSL #16 - movk x3, #0xD1FFAB1E LSL #32 - ldr x3, [x3] - blr x3 - str xzr, [fp, #0x20] // [V04 loc2] - str wzr, [fp, #0x18] // [V05 loc3] - ;; size=84 bbWeight=1 PerfScore 24.50 + movz x4, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeBuffer:SpaceCheck(ulong,ulong):this + movk x4, #0xD1FFAB1E LSL #16 + movk x4, #0xD1FFAB1E LSL #32 + ldr x4, [x4] + blr x4 + str wzr, [fp, #0x18] // [V04 loc2] + ;; size=80 bbWeight=1 PerfScore 23.50 G_M44191_IG03: - add x1, fp, #24 // [V05 loc3] + add x1, fp, #24 // [V04 loc2] ldr x0, [fp, #0x10] // [V00 this] movz x2, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeHandle:DangerousAddRef(byref):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 - mov w2, w20 - add x0, fp, #32 // [V04 loc2] - mov x1, x19 - movz x3, #0xD1FFAB1E // code for System.SpanHelpers:Memmove(byref,byref,ulong) - movk x3, #0xD1FFAB1E LSL #16 - movk x3, #0xD1FFAB1E LSL #32 - ldr x3, [x3] - blr x3 - ;; size=60 bbWeight=1 PerfScore 15.00 + ldr x19, [x19] + ;; size=32 bbWeight=1 PerfScore 11.00 G_M44191_IG04: - ldrb w0, [fp, #0x18] // [V05 loc3] + ldrb w0, [fp, #0x18] // [V04 loc2] cbz w0, G_M44191_IG06 ;; size=8 bbWeight=1 PerfScore 3.00 G_M44191_IG05: ldr x0, [fp, #0x10] // [V00 this] mov w1, wzr movz x2, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ;; size=28 bbWeight=0.50 PerfScore 4.00 G_M44191_IG06: - ldr x0, [fp, #0x20] // [V04 loc2] - ;; size=4 bbWeight=1 PerfScore 2.00 + mov x0, x19 + ;; size=4 bbWeight=1 PerfScore 0.50 G_M44191_IG07: - ldp x19, x20, [sp, #0x30] - ldp fp, lr, [sp], #0x40 + ldr x19, [sp, #0x28] + ldp fp, lr, [sp], #0x30 ret lr - ;; size=12 bbWeight=1 PerfScore 3.00 + ;; size=12 bbWeight=1 PerfScore 4.00 G_M44191_IG08: movz x0, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeBuffer:NotInitialized():System.InvalidOperationException movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x0, [x0] blr x0 bl CORINFO_HELP_THROW brk_unix #0 ;; size=28 bbWeight=0 PerfScore 0.00 G_M44191_IG09: - stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x20] - add x3, fp, #64 - str x3, [sp, #0x18] + stp fp, lr, [sp, #-0x20]! + str x19, [sp, #0x18] + add x3, fp, #48 + str x3, [sp, #0x10] ;; size=16 bbWeight=0 PerfScore 0.00 G_M44191_IG10: - ldrb w0, [fp, #0x18] // [V05 loc3] + ldrb w0, [fp, #0x18] // [V04 loc2] cbz w0, G_M44191_IG11 ldr x0, [fp, #0x10] // [V00 this] mov w1, wzr movz x2, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ;; size=36 bbWeight=0 PerfScore 0.00 G_M44191_IG11: - ldp x19, x20, [sp, #0x20] - ldp fp, lr, [sp], #0x30 + ldr x19, [sp, #0x18] + ldp fp, lr, [sp], #0x20 ret lr ;; size=12 bbWeight=0 PerfScore 0.00 -; Total bytes of code 316, prolog size 28, PerfScore 57.00, instruction count 79, allocated bytes for code 316 (MethodHash=99115360) for method System.Runtime.InteropServices.SafeBuffer:Read[long](ulong):long:this (FullOpts) +; Total bytes of code 284, prolog size 28, PerfScore 51.50, instruction count 71, allocated bytes for code 284 (MethodHash=99115360) for method System.Runtime.InteropServices.SafeBuffer:Read[long](ulong):long:this (FullOpts) ```
-32 (-10.13 % of base) - System.Runtime.InteropServices.SafeBuffer:Read[short](ulong):short:this ```diff ; Assembly listing for method System.Runtime.InteropServices.SafeBuffer:Read[short](ulong):short:this (FullOpts) ; Emitting BLENDED_CODE for generic ARM64 - Unix ; FullOpts code ; optimized code ; fp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T00] ( 8, 6.50) ref -> [fp+0x10] this class-hnd EH-live single-def ; V01 arg1 [V01,T01] ( 3, 3 ) long -> x19 single-def -; V02 loc0 [V02,T02] ( 3, 3 ) int -> x20 -; V03 loc1 [V03,T03] ( 3, 3 ) long -> x19 -; V04 loc2 [V04 ] ( 3, 3 ) short -> [fp+0x20] do-not-enreg[X] addr-exposed ld-addr-op -; V05 loc3 [V05 ] ( 4, 3 ) ubyte -> [fp+0x18] do-not-enreg[X] addr-exposed ld-addr-op +; V02 loc0 [V02,T03] ( 2, 2 ) int -> x0 +; V03 loc1 [V03,T02] ( 3, 3 ) long -> x19 +; V04 loc2 [V04 ] ( 4, 3 ) ubyte -> [fp+0x18] do-not-enreg[X] addr-exposed ld-addr-op +; V05 loc3 [V05,T04] ( 2, 2 ) short -> x19 ;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V07 tmp1 [V07 ] ( 0, 0 ) long -> zero-ref "impAppendStmt" -; V08 PSPSym [V08,T04] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[V] "PSPSym" +; V08 PSPSym [V08,T05] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym" ; -; Lcl frame size = 32 +; Lcl frame size = 24 G_M14975_IG01: - stp fp, lr, [sp, #-0x40]! - stp x19, x20, [sp, #0x30] + stp fp, lr, [sp, #-0x30]! + str x19, [sp, #0x28] mov fp, sp - add x2, sp, #64 - str x2, [fp, #0x28] // [V08 PSPSym] + add x2, sp, #48 + str x2, [fp, #0x20] // [V08 PSPSym] str x0, [fp, #0x10] // [V00 this] mov x19, x1 ;; size=28 bbWeight=1 PerfScore 5.50 G_M14975_IG02: ldr x1, [x0, #0x18] cmn x1, #1 beq G_M14975_IG08 movz x1, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeBuffer:SizeOf[short]():uint movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 - sxtw w20, w0 - ldr x0, [fp, #0x10] // [V00 this] - ldr x2, [x0, #0x08] + ldr x3, [fp, #0x10] // [V00 this] + ldr x2, [x3, #0x08] add x19, x2, x19 - mov w2, w20 + mov w2, w0 + mov x0, x3 mov x1, x19 - movz x3, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeBuffer:SpaceCheck(ulong,ulong):this - movk x3, #0xD1FFAB1E LSL #16 - movk x3, #0xD1FFAB1E LSL #32 - ldr x3, [x3] - blr x3 - strh wzr, [fp, #0x20] // [V04 loc2] - str wzr, [fp, #0x18] // [V05 loc3] - ;; size=84 bbWeight=1 PerfScore 24.50 + movz x4, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeBuffer:SpaceCheck(ulong,ulong):this + movk x4, #0xD1FFAB1E LSL #16 + movk x4, #0xD1FFAB1E LSL #32 + ldr x4, [x4] + blr x4 + str wzr, [fp, #0x18] // [V04 loc2] + ;; size=80 bbWeight=1 PerfScore 23.50 G_M14975_IG03: - add x1, fp, #24 // [V05 loc3] + add x1, fp, #24 // [V04 loc2] ldr x0, [fp, #0x10] // [V00 this] movz x2, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeHandle:DangerousAddRef(byref):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 - mov w2, w20 - add x0, fp, #32 // [V04 loc2] - mov x1, x19 - movz x3, #0xD1FFAB1E // code for System.SpanHelpers:Memmove(byref,byref,ulong) - movk x3, #0xD1FFAB1E LSL #16 - movk x3, #0xD1FFAB1E LSL #32 - ldr x3, [x3] - blr x3 - ;; size=60 bbWeight=1 PerfScore 15.00 + ldrsh w19, [x19] + ;; size=32 bbWeight=1 PerfScore 11.00 G_M14975_IG04: - ldrb w0, [fp, #0x18] // [V05 loc3] + ldrb w0, [fp, #0x18] // [V04 loc2] cbz w0, G_M14975_IG06 ;; size=8 bbWeight=1 PerfScore 3.00 G_M14975_IG05: ldr x0, [fp, #0x10] // [V00 this] mov w1, wzr movz x2, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ;; size=28 bbWeight=0.50 PerfScore 4.00 G_M14975_IG06: - ldrsh x0, [fp, #0x20] // [V04 loc2] - ;; size=4 bbWeight=1 PerfScore 2.00 + mov w0, w19 + ;; size=4 bbWeight=1 PerfScore 0.50 G_M14975_IG07: - ldp x19, x20, [sp, #0x30] - ldp fp, lr, [sp], #0x40 + ldr x19, [sp, #0x28] + ldp fp, lr, [sp], #0x30 ret lr - ;; size=12 bbWeight=1 PerfScore 3.00 + ;; size=12 bbWeight=1 PerfScore 4.00 G_M14975_IG08: movz x0, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeBuffer:NotInitialized():System.InvalidOperationException movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x0, [x0] blr x0 bl CORINFO_HELP_THROW brk_unix #0 ;; size=28 bbWeight=0 PerfScore 0.00 G_M14975_IG09: - stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x20] - add x3, fp, #64 - str x3, [sp, #0x18] + stp fp, lr, [sp, #-0x20]! + str x19, [sp, #0x18] + add x3, fp, #48 + str x3, [sp, #0x10] ;; size=16 bbWeight=0 PerfScore 0.00 G_M14975_IG10: - ldrb w0, [fp, #0x18] // [V05 loc3] + ldrb w0, [fp, #0x18] // [V04 loc2] cbz w0, G_M14975_IG11 ldr x0, [fp, #0x10] // [V00 this] mov w1, wzr movz x2, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ;; size=36 bbWeight=0 PerfScore 0.00 G_M14975_IG11: - ldp x19, x20, [sp, #0x20] - ldp fp, lr, [sp], #0x30 + ldr x19, [sp, #0x18] + ldp fp, lr, [sp], #0x20 ret lr ;; size=12 bbWeight=0 PerfScore 0.00 -; Total bytes of code 316, prolog size 28, PerfScore 57.00, instruction count 79, allocated bytes for code 316 (MethodHash=291bc580) for method System.Runtime.InteropServices.SafeBuffer:Read[short](ulong):short:this (FullOpts) +; Total bytes of code 284, prolog size 28, PerfScore 51.50, instruction count 71, allocated bytes for code 284 (MethodHash=291bc580) for method System.Runtime.InteropServices.SafeBuffer:Read[short](ulong):short:this (FullOpts) ```
-32 (-10.00 % of base) - System.Runtime.InteropServices.SafeBuffer:Read[System.Numerics.Vector`1[float]](ulong):System.Numerics.Vector`1[float]:this ```diff ; Assembly listing for method System.Runtime.InteropServices.SafeBuffer:Read[System.Numerics.Vector`1[float]](ulong):System.Numerics.Vector`1[float]:this (FullOpts) ; Emitting BLENDED_CODE for generic ARM64 - Unix ; FullOpts code ; optimized code ; fp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T00] ( 8, 6.50) ref -> [fp+0x10] this class-hnd EH-live single-def +; V00 this [V00,T00] ( 8, 6.50) ref -> [fp+0x18] this class-hnd EH-live single-def ; V01 arg1 [V01,T01] ( 3, 3 ) long -> x19 single-def -; V02 loc0 [V02,T02] ( 3, 3 ) int -> x20 -; V03 loc1 [V03,T03] ( 3, 3 ) long -> x19 -; V04 loc2 [V04 ] ( 3, 3 ) simd16 -> [fp+0x20] HFA(simd16) do-not-enreg[XS] addr-exposed ld-addr-op -; V05 loc3 [V05 ] ( 4, 3 ) ubyte -> [fp+0x18] do-not-enreg[X] addr-exposed ld-addr-op +; V02 loc0 [V02,T03] ( 2, 2 ) int -> x0 +; V03 loc1 [V03,T02] ( 3, 3 ) long -> x19 +; V04 loc2 [V04 ] ( 4, 3 ) ubyte -> [fp+0x38] do-not-enreg[X] addr-exposed ld-addr-op +; V05 loc3 [V05,T05] ( 2, 2 ) simd16 -> [fp+0x20] HFA(simd16) spill-single-def ;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V07 tmp1 [V07 ] ( 0, 0 ) long -> zero-ref "impAppendStmt" -; V08 PSPSym [V08,T04] ( 1, 1 ) long -> [fp+0x38] do-not-enreg[V] "PSPSym" +; V08 PSPSym [V08,T04] ( 1, 1 ) long -> [fp+0x40] do-not-enreg[V] "PSPSym" ; -; Lcl frame size = 48 +; Lcl frame size = 56 G_M13951_IG01: stp fp, lr, [sp, #-0x50]! - stp x19, x20, [sp, #0x40] + str x19, [sp, #0x48] mov fp, sp add x2, sp, #80 - str x2, [fp, #0x38] // [V08 PSPSym] - str x0, [fp, #0x10] // [V00 this] + str x2, [fp, #0x40] // [V08 PSPSym] + str x0, [fp, #0x18] // [V00 this] mov x19, x1 ;; size=28 bbWeight=1 PerfScore 5.50 G_M13951_IG02: ldr x1, [x0, #0x18] cmn x1, #1 beq G_M13951_IG08 movz x1, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeBuffer:SizeOf[System.Numerics.Vector`1[float]]():uint movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 - sxtw w20, w0 - ldr x0, [fp, #0x10] // [V00 this] - ldr x2, [x0, #0x08] + ldr x3, [fp, #0x18] // [V00 this] + ldr x2, [x3, #0x08] add x19, x2, x19 - mov w2, w20 + mov w2, w0 + mov x0, x3 mov x1, x19 - movz x3, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeBuffer:SpaceCheck(ulong,ulong):this - movk x3, #0xD1FFAB1E LSL #16 - movk x3, #0xD1FFAB1E LSL #32 - ldr x3, [x3] - blr x3 - movi v16.4s, #0 - str q16, [fp, #0x20] // [V04 loc2] - str wzr, [fp, #0x18] // [V05 loc3] - ;; size=88 bbWeight=1 PerfScore 25.00 + movz x4, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeBuffer:SpaceCheck(ulong,ulong):this + movk x4, #0xD1FFAB1E LSL #16 + movk x4, #0xD1FFAB1E LSL #32 + ldr x4, [x4] + blr x4 + str wzr, [fp, #0x38] // [V04 loc2] + ;; size=80 bbWeight=1 PerfScore 23.50 G_M13951_IG03: - add x1, fp, #24 // [V05 loc3] - ldr x0, [fp, #0x10] // [V00 this] + add x1, fp, #56 // [V04 loc2] + ldr x0, [fp, #0x18] // [V00 this] movz x2, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeHandle:DangerousAddRef(byref):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 - mov w2, w20 - add x0, fp, #32 // [V04 loc2] - mov x1, x19 - movz x3, #0xD1FFAB1E // code for System.SpanHelpers:Memmove(byref,byref,ulong) - movk x3, #0xD1FFAB1E LSL #16 - movk x3, #0xD1FFAB1E LSL #32 - ldr x3, [x3] - blr x3 - ;; size=60 bbWeight=1 PerfScore 15.00 + ldr q0, [x19] + str q0, [fp, #0x20] // [V05 loc3] + ;; size=36 bbWeight=1 PerfScore 12.00 G_M13951_IG04: - ldrb w0, [fp, #0x18] // [V05 loc3] + ldrb w0, [fp, #0x38] // [V04 loc2] cbz w0, G_M13951_IG06 ;; size=8 bbWeight=1 PerfScore 3.00 G_M13951_IG05: - ldr x0, [fp, #0x10] // [V00 this] + ldr x0, [fp, #0x18] // [V00 this] mov w1, wzr movz x2, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ;; size=28 bbWeight=0.50 PerfScore 4.00 G_M13951_IG06: - ldr q0, [fp, #0x20] // [V04 loc2] + ldr q0, [fp, #0x20] // [V05 loc3] ;; size=4 bbWeight=1 PerfScore 2.00 G_M13951_IG07: - ldp x19, x20, [sp, #0x40] + ldr x19, [sp, #0x48] ldp fp, lr, [sp], #0x50 ret lr - ;; size=12 bbWeight=1 PerfScore 3.00 + ;; size=12 bbWeight=1 PerfScore 4.00 G_M13951_IG08: movz x0, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeBuffer:NotInitialized():System.InvalidOperationException movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x0, [x0] blr x0 bl CORINFO_HELP_THROW brk_unix #0 ;; size=28 bbWeight=0 PerfScore 0.00 G_M13951_IG09: - stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x20] + stp fp, lr, [sp, #-0x20]! + str x19, [sp, #0x18] add x3, fp, #80 - str x3, [sp, #0x18] + str x3, [sp, #0x10] ;; size=16 bbWeight=0 PerfScore 0.00 G_M13951_IG10: - ldrb w0, [fp, #0x18] // [V05 loc3] + ldrb w0, [fp, #0x38] // [V04 loc2] cbz w0, G_M13951_IG11 - ldr x0, [fp, #0x10] // [V00 this] + ldr x0, [fp, #0x18] // [V00 this] mov w1, wzr movz x2, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ;; size=36 bbWeight=0 PerfScore 0.00 G_M13951_IG11: - ldp x19, x20, [sp, #0x20] - ldp fp, lr, [sp], #0x30 + ldr x19, [sp, #0x18] + ldp fp, lr, [sp], #0x20 ret lr ;; size=12 bbWeight=0 PerfScore 0.00 -; Total bytes of code 320, prolog size 28, PerfScore 57.50, instruction count 80, allocated bytes for code 320 (MethodHash=990ac980) for method System.Runtime.InteropServices.SafeBuffer:Read[System.Numerics.Vector`1[float]](ulong):System.Numerics.Vector`1[float]:this (FullOpts) +; Total bytes of code 288, prolog size 28, PerfScore 54.00, instruction count 72, allocated bytes for code 288 (MethodHash=990ac980) for method System.Runtime.InteropServices.SafeBuffer:Read[System.Numerics.Vector`1[float]](ulong):System.Numerics.Vector`1[float]:this (FullOpts) ```
-32 (-10.13 % of base) - System.Runtime.InteropServices.SafeBuffer:Read[ubyte](ulong):ubyte:this ```diff ; Assembly listing for method System.Runtime.InteropServices.SafeBuffer:Read[ubyte](ulong):ubyte:this (FullOpts) ; Emitting BLENDED_CODE for generic ARM64 - Unix ; FullOpts code ; optimized code ; fp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 3 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T00] ( 8, 6.50) ref -> [fp+0x10] this class-hnd EH-live single-def ; V01 arg1 [V01,T01] ( 3, 3 ) long -> x19 single-def -; V02 loc0 [V02,T02] ( 3, 3 ) int -> x20 -; V03 loc1 [V03,T03] ( 3, 3 ) long -> x19 -; V04 loc2 [V04 ] ( 3, 3 ) ubyte -> [fp+0x20] do-not-enreg[X] addr-exposed ld-addr-op -; V05 loc3 [V05 ] ( 4, 3 ) ubyte -> [fp+0x18] do-not-enreg[X] addr-exposed ld-addr-op +; V02 loc0 [V02,T03] ( 2, 2 ) int -> x0 +; V03 loc1 [V03,T02] ( 3, 3 ) long -> x19 +; V04 loc2 [V04 ] ( 4, 3 ) ubyte -> [fp+0x18] do-not-enreg[X] addr-exposed ld-addr-op +; V05 loc3 [V05,T04] ( 2, 2 ) ubyte -> x19 ;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V07 tmp1 [V07 ] ( 0, 0 ) long -> zero-ref "impAppendStmt" -; V08 PSPSym [V08,T04] ( 1, 1 ) long -> [fp+0x28] do-not-enreg[V] "PSPSym" +; V08 PSPSym [V08,T05] ( 1, 1 ) long -> [fp+0x20] do-not-enreg[V] "PSPSym" ; -; Lcl frame size = 32 +; Lcl frame size = 24 G_M48575_IG01: - stp fp, lr, [sp, #-0x40]! - stp x19, x20, [sp, #0x30] + stp fp, lr, [sp, #-0x30]! + str x19, [sp, #0x28] mov fp, sp - add x2, sp, #64 - str x2, [fp, #0x28] // [V08 PSPSym] + add x2, sp, #48 + str x2, [fp, #0x20] // [V08 PSPSym] str x0, [fp, #0x10] // [V00 this] mov x19, x1 ;; size=28 bbWeight=1 PerfScore 5.50 G_M48575_IG02: ldr x1, [x0, #0x18] cmn x1, #1 beq G_M48575_IG08 movz x1, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeBuffer:SizeOf[ubyte]():uint movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1 - sxtw w20, w0 - ldr x0, [fp, #0x10] // [V00 this] - ldr x2, [x0, #0x08] + ldr x3, [fp, #0x10] // [V00 this] + ldr x2, [x3, #0x08] add x19, x2, x19 - mov w2, w20 + mov w2, w0 + mov x0, x3 mov x1, x19 - movz x3, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeBuffer:SpaceCheck(ulong,ulong):this - movk x3, #0xD1FFAB1E LSL #16 - movk x3, #0xD1FFAB1E LSL #32 - ldr x3, [x3] - blr x3 - strb wzr, [fp, #0x20] // [V04 loc2] - str wzr, [fp, #0x18] // [V05 loc3] - ;; size=84 bbWeight=1 PerfScore 24.50 + movz x4, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeBuffer:SpaceCheck(ulong,ulong):this + movk x4, #0xD1FFAB1E LSL #16 + movk x4, #0xD1FFAB1E LSL #32 + ldr x4, [x4] + blr x4 + str wzr, [fp, #0x18] // [V04 loc2] + ;; size=80 bbWeight=1 PerfScore 23.50 G_M48575_IG03: - add x1, fp, #24 // [V05 loc3] + add x1, fp, #24 // [V04 loc2] ldr x0, [fp, #0x10] // [V00 this] movz x2, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeHandle:DangerousAddRef(byref):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 - mov w2, w20 - add x0, fp, #32 // [V04 loc2] - mov x1, x19 - movz x3, #0xD1FFAB1E // code for System.SpanHelpers:Memmove(byref,byref,ulong) - movk x3, #0xD1FFAB1E LSL #16 - movk x3, #0xD1FFAB1E LSL #32 - ldr x3, [x3] - blr x3 - ;; size=60 bbWeight=1 PerfScore 15.00 + ldrb w19, [x19] + ;; size=32 bbWeight=1 PerfScore 11.00 G_M48575_IG04: - ldrb w0, [fp, #0x18] // [V05 loc3] + ldrb w0, [fp, #0x18] // [V04 loc2] cbz w0, G_M48575_IG06 ;; size=8 bbWeight=1 PerfScore 3.00 G_M48575_IG05: ldr x0, [fp, #0x10] // [V00 this] mov w1, wzr movz x2, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ;; size=28 bbWeight=0.50 PerfScore 4.00 G_M48575_IG06: - ldrb w0, [fp, #0x20] // [V04 loc2] - ;; size=4 bbWeight=1 PerfScore 2.00 + mov w0, w19 + ;; size=4 bbWeight=1 PerfScore 0.50 G_M48575_IG07: - ldp x19, x20, [sp, #0x30] - ldp fp, lr, [sp], #0x40 + ldr x19, [sp, #0x28] + ldp fp, lr, [sp], #0x30 ret lr - ;; size=12 bbWeight=1 PerfScore 3.00 + ;; size=12 bbWeight=1 PerfScore 4.00 G_M48575_IG08: movz x0, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeBuffer:NotInitialized():System.InvalidOperationException movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x0, [x0] blr x0 bl CORINFO_HELP_THROW brk_unix #0 ;; size=28 bbWeight=0 PerfScore 0.00 G_M48575_IG09: - stp fp, lr, [sp, #-0x30]! - stp x19, x20, [sp, #0x20] - add x3, fp, #64 - str x3, [sp, #0x18] + stp fp, lr, [sp, #-0x20]! + str x19, [sp, #0x18] + add x3, fp, #48 + str x3, [sp, #0x10] ;; size=16 bbWeight=0 PerfScore 0.00 G_M48575_IG10: - ldrb w0, [fp, #0x18] // [V05 loc3] + ldrb w0, [fp, #0x18] // [V04 loc2] cbz w0, G_M48575_IG11 ldr x0, [fp, #0x10] // [V00 this] mov w1, wzr movz x2, #0xD1FFAB1E // code for System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 ldr x2, [x2] blr x2 ;; size=36 bbWeight=0 PerfScore 0.00 G_M48575_IG11: - ldp x19, x20, [sp, #0x20] - ldp fp, lr, [sp], #0x30 + ldr x19, [sp, #0x18] + ldp fp, lr, [sp], #0x20 ret lr ;; size=12 bbWeight=0 PerfScore 0.00 -; Total bytes of code 316, prolog size 28, PerfScore 57.00, instruction count 79, allocated bytes for code 316 (MethodHash=0df04240) for method System.Runtime.InteropServices.SafeBuffer:Read[ubyte](ulong):ubyte:this (FullOpts) +; Total bytes of code 284, prolog size 28, PerfScore 51.50, instruction count 71, allocated bytes for code 284 (MethodHash=0df04240) for method System.Runtime.InteropServices.SafeBuffer:Read[ubyte](ulong):ubyte:this (FullOpts) ```

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

MihuBot commented 1 month ago

@xtqqczze