MihuBot / runtime-utils

0 stars 0 forks source link

[JitDiff X64] [EgorBo] JIT: Avoid boxing ArgumentNullException.ThrowIfNull arguments in Tier-0 #518

Open MihuBot opened 1 month ago

MihuBot commented 1 month ago

Job completed in 15 minutes. https://github.com/dotnet/runtime/pull/104815

Diffs

Diffs ``` Found 269 files with textual diffs. Summary of Code Size diffs: (Lower is better) Total bytes of base: 52987793 Total bytes of diff: 52982341 Total bytes of delta: -5452 (-0.01 % of base) Total relative delta: -29.19 diff is an improvement. relative diff is an improvement. Top file regressions (bytes): 118 : System.DirectoryServices.Protocols.dasm (0.06 % of base) 69 : System.Security.Cryptography.ProtectedData.dasm (0.81 % of base) 45 : System.Net.Security.dasm (0.01 % of base) 37 : System.Net.Quic.dasm (0.02 % of base) Top file improvements (bytes): -4699 : System.Collections.dasm (-0.41 % of base) -806 : System.ObjectModel.dasm (-0.81 % of base) -198 : System.Private.CoreLib.dasm (-0.00 % of base) -14 : System.ComponentModel.Composition.dasm (-0.00 % of base) -4 : System.Net.Http.dasm (-0.00 % of base) 9 total files with Code Size differences (5 improved, 4 regressed), 250 unchanged. Top method regressions (bytes): 118 (8.77 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.SortRequestControl:GetValue():ubyte[]:this (Tier0-FullOpts) 78 (8.07 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.PosixSignalRegistration:OnPosixSignal(int,int):int (FullOpts) 69 (6.39 % of base) : System.Security.Cryptography.ProtectedData.dasm - System.Security.Cryptography.ProtectedData:ProtectOrUnprotect(ubyte[],ubyte[],int,ubyte):ubyte[] (Tier0-FullOpts) 58 (2.99 % of base) : System.Private.CoreLib.dasm - System.DateTimeParse:TryParse(System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,int,byref):ubyte (Tier0-FullOpts) 27 (1.14 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:VerifyRemoteCertificate(System.Net.Security.RemoteCertificateValidationCallback,System.Net.Security.SslCertificateTrust,byref,byref,byref):ubyte:this (Tier0-FullOpts) 18 (2.72 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[System.Nullable`1[int],System.Nullable`1[int]]:Remove(System.Nullable`1[int]):ubyte:this (Instrumented Tier0) 18 (0.41 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:SelectClientCertificate():System.Security.Cryptography.X509Certificates.X509Certificate2:this (Tier0-FullOpts) 17 (1.77 % of base) : System.Net.Quic.dasm - System.Net.Quic.QuicConnection:NativeCallback(ulong,ulong,ulong):int (FullOpts) 17 (1.77 % of base) : System.Net.Quic.dasm - System.Net.Quic.QuicListener:NativeCallback(ulong,ulong,ulong):int (FullOpts) 17 (1.77 % of base) : System.Net.Quic.dasm - System.Net.Quic.QuicStream:NativeCallback(ulong,ulong,ulong):int (FullOpts) 12 (5.13 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[System.Nullable`1[int],System.Nullable`1[int]]):ubyte:this (Tier0) 12 (4.46 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:System.Collections.Generic.IList>.IndexOf(System.Collections.Generic.KeyValuePair`2[System.Nullable`1[int],System.Nullable`1[int]]):int:this (Tier0) 12 (1.87 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[System.Nullable`1[int],System.Nullable`1[int]]:Contains(System.Nullable`1[int]):ubyte:this (Instrumented Tier0) 10 (1.47 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[System.Nullable`1[int],System.Nullable`1[int]]:TryGetValue(System.Nullable`1[int],byref):ubyte:this (Instrumented Tier0) 8 (5.03 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:Add(System.Nullable`1[int],System.Nullable`1[int]):this (Tier0) 8 (4.97 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:ContainsKey(System.Nullable`1[int]):ubyte:this (Tier0) 8 (4.97 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:Remove(System.Nullable`1[int]):ubyte:this (Tier0) 8 (2.52 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[System.Nullable`1[int],System.Nullable`1[int]]:Add(System.Nullable`1[int],System.Nullable`1[int]):this (Tier0) 8 (4.35 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2+KeyList[System.Nullable`1[int],System.Nullable`1[int]]:IndexOf(System.Nullable`1[int]):int:this (Tier0) 6 (5.04 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:Add(System.Nullable`1[int],System.Nullable`1[int]):this (Tier0) 6 (5.31 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:IndexOf(System.Nullable`1[int]):int:this (Tier0) 6 (4.17 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:Insert(int,System.Nullable`1[int],System.Nullable`1[int]):this (Tier0) 6 (3.05 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:Remove(System.Nullable`1[int],byref):ubyte:this (Tier0) 6 (5.04 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:set_Item(System.Nullable`1[int],System.Nullable`1[int]):this (Tier0) 6 (5.17 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:TryAdd(System.Nullable`1[int],System.Nullable`1[int]):ubyte:this (Tier0) 6 (3.37 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:TryGetValue(System.Nullable`1[int],byref):ubyte:this (Tier0) 6 (4.20 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[System.Nullable`1[int],System.Nullable`1[int]]:IndexOfKey(System.Nullable`1[int]):int:this (Tier0) 6 (3.53 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshal:SizeOf[System.Nullable`1[int]](System.Nullable`1[int]):int (Tier0) 1 (0.22 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:SetAt(int,System.Nullable`1[int],System.Nullable`1[int]):this (Tier0) 1 (0.20 % of base) : System.Private.CoreLib.dasm - System.Reflection.CerHashtable`2[System.__Canon,System.__Canon]:Rehash(int):this (Tier1-OSR) Top method improvements (bytes): -59 (-45.38 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0) -59 (-47.20 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this (Tier0) -59 (-38.06 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Insert(int,double,System.Nullable`1[int]):this (Tier0) -59 (-28.23 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Remove(double,byref):ubyte:this (Tier0) -59 (-45.38 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:set_Item(double,System.Nullable`1[int]):this (Tier0) -59 (-12.22 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:SetAt(int,double,System.Nullable`1[int]):this (Tier0) -59 (-46.46 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryAdd(double,System.Nullable`1[int]):ubyte:this (Tier0) -59 (-31.05 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Tier0) -59 (-34.30 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0) -59 (-33.91 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:ContainsKey(double):ubyte:this (Tier0) -59 (-33.91 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this (Tier0) -59 (-21.15 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Tier0) -59 (-17.25 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0) -59 (-38.06 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:IndexOfKey(double):int:this (Tier0) -59 (-30.10 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2+KeyList[double,System.Nullable`1[int]]:IndexOf(double):int:this (Tier0) -59 (-9.10 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:Contains(double):ubyte:this (Instrumented Tier0) -59 (-8.73 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this (Instrumented Tier0) -59 (-8.75 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Instrumented Tier0) -59 (-55.14 % of base) : System.Private.CoreLib.dasm - System.Numerics.TotalOrderIeee754Comparer`1[double]:GetHashCode(double):int:this (Tier0) -59 (-30.10 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshal:SizeOf[double](double):int (Tier0) -57 (-44.88 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[long,System.Nullable`1[int]]:Add(long,System.Nullable`1[int]):this (Tier0) -57 (-47.11 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[long,System.Nullable`1[int]]:IndexOf(long):int:this (Tier0) -57 (-37.50 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[long,System.Nullable`1[int]]:Insert(int,long,System.Nullable`1[int]):this (Tier0) -57 (-27.80 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[long,System.Nullable`1[int]]:Remove(long,byref):ubyte:this (Tier0) -57 (-44.88 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[long,System.Nullable`1[int]]:set_Item(long,System.Nullable`1[int]):this (Tier0) -57 (-12.08 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[long,System.Nullable`1[int]]:SetAt(int,long,System.Nullable`1[int]):this (Tier0) -57 (-45.97 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[long,System.Nullable`1[int]]:TryAdd(long,System.Nullable`1[int]):ubyte:this (Tier0) -57 (-30.65 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[long,System.Nullable`1[int]]:TryGetValue(long,byref):ubyte:this (Tier0) -57 (-34.13 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[long,System.Nullable`1[int]]:Add(long,System.Nullable`1[int]):this (Tier0) -57 (-33.73 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[long,System.Nullable`1[int]]:ContainsKey(long):ubyte:this (Tier0) -57 (-33.73 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[long,System.Nullable`1[int]]:Remove(long):ubyte:this (Tier0) -57 (-20.88 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[long,System.Nullable`1[int]]:TryGetValue(long,byref):ubyte:this (Tier0) -57 (-17.07 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[long,System.Nullable`1[int]]:Add(long,System.Nullable`1[int]):this (Tier0) -57 (-37.75 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[long,System.Nullable`1[int]]:IndexOfKey(long):int:this (Tier0) -57 (-29.69 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2+KeyList[long,System.Nullable`1[int]]:IndexOf(long):int:this (Tier0) -57 (-8.89 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[long,System.Nullable`1[int]]:Contains(long):ubyte:this (Instrumented Tier0) -57 (-8.52 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[long,System.Nullable`1[int]]:Remove(long):ubyte:this (Instrumented Tier0) -57 (-8.55 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[long,System.Nullable`1[int]]:TryGetValue(long,byref):ubyte:this (Instrumented Tier0) -57 (-29.23 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshal:SizeOf[long](long):int (Tier0) -56 (-43.75 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[short,System.Nullable`1[int]]:Add(short,System.Nullable`1[int]):this (Tier0) -56 (-45.90 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[short,System.Nullable`1[int]]:IndexOf(short):int:this (Tier0) -56 (-36.60 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[short,System.Nullable`1[int]]:Insert(int,short,System.Nullable`1[int]):this (Tier0) -56 (-27.18 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[short,System.Nullable`1[int]]:Remove(short,byref):ubyte:this (Tier0) -56 (-43.75 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[short,System.Nullable`1[int]]:set_Item(short,System.Nullable`1[int]):this (Tier0) -56 (-11.59 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[short,System.Nullable`1[int]]:SetAt(int,short,System.Nullable`1[int]):this (Tier0) -56 (-44.80 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[short,System.Nullable`1[int]]:TryAdd(short,System.Nullable`1[int]):ubyte:this (Tier0) -56 (-29.95 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[short,System.Nullable`1[int]]:TryGetValue(short,byref):ubyte:this (Tier0) -56 (-33.53 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[short,System.Nullable`1[int]]:Add(short,System.Nullable`1[int]):this (Tier0) -56 (-33.14 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[short,System.Nullable`1[int]]:ContainsKey(short):ubyte:this (Tier0) -56 (-33.14 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[short,System.Nullable`1[int]]:Remove(short):ubyte:this (Tier0) -56 (-20.29 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[short,System.Nullable`1[int]]:TryGetValue(short,byref):ubyte:this (Tier0) -56 (-16.62 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[short,System.Nullable`1[int]]:Add(short,System.Nullable`1[int]):this (Tier0) -56 (-36.84 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[short,System.Nullable`1[int]]:IndexOfKey(short):int:this (Tier0) -56 (-29.02 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2+KeyList[short,System.Nullable`1[int]]:IndexOf(short):int:this (Tier0) -56 (-8.71 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[short,System.Nullable`1[int]]:Contains(short):ubyte:this (Instrumented Tier0) -56 (-8.35 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[short,System.Nullable`1[int]]:Remove(short):ubyte:this (Instrumented Tier0) -56 (-8.60 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[short,System.Nullable`1[int]]:TryGetValue(short,byref):ubyte:this (Instrumented Tier0) -56 (-29.17 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshal:SizeOf[short](short):int (Tier0) -55 (-44.72 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[int,System.Nullable`1[int]]:Add(int,System.Nullable`1[int]):this (Tier0) -55 (-47.01 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[int,System.Nullable`1[int]]:IndexOf(int):int:this (Tier0) -55 (-37.16 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[int,System.Nullable`1[int]]:Insert(int,int,System.Nullable`1[int]):this (Tier0) -55 (-27.36 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[int,System.Nullable`1[int]]:Remove(int,byref):ubyte:this (Tier0) -55 (-44.72 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[int,System.Nullable`1[int]]:set_Item(int,System.Nullable`1[int]):this (Tier0) -55 (-11.93 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[int,System.Nullable`1[int]]:SetAt(int,int,System.Nullable`1[int]):this (Tier0) -55 (-45.83 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[int,System.Nullable`1[int]]:TryAdd(int,System.Nullable`1[int]):ubyte:this (Tier0) -55 (-30.22 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[int,System.Nullable`1[int]]:TryGetValue(int,byref):ubyte:this (Tier0) -55 (-43.65 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[ubyte,System.Nullable`1[int]]:Add(ubyte,System.Nullable`1[int]):this (Tier0) -55 (-45.45 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[ubyte,System.Nullable`1[int]]:IndexOf(ubyte):int:this (Tier0) -55 (-36.42 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[ubyte,System.Nullable`1[int]]:Insert(int,ubyte,System.Nullable`1[int]):this (Tier0) -55 (-26.83 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[ubyte,System.Nullable`1[int]]:Remove(ubyte,byref):ubyte:this (Tier0) -55 (-43.65 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[ubyte,System.Nullable`1[int]]:set_Item(ubyte,System.Nullable`1[int]):this (Tier0) -55 (-11.48 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[ubyte,System.Nullable`1[int]]:SetAt(int,ubyte,System.Nullable`1[int]):this (Tier0) -55 (-44.72 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[ubyte,System.Nullable`1[int]]:TryAdd(ubyte,System.Nullable`1[int]):ubyte:this (Tier0) -55 (-29.57 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[ubyte,System.Nullable`1[int]]:TryGetValue(ubyte,byref):ubyte:this (Tier0) -55 (-33.95 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[int,System.Nullable`1[int]]:Add(int,System.Nullable`1[int]):this (Tier0) -55 (-33.54 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[int,System.Nullable`1[int]]:ContainsKey(int):ubyte:this (Tier0) -55 (-33.54 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[int,System.Nullable`1[int]]:Remove(int):ubyte:this (Tier0) -55 (-20.30 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[int,System.Nullable`1[int]]:TryGetValue(int,byref):ubyte:this (Tier0) -55 (-33.13 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[ubyte,System.Nullable`1[int]]:Add(ubyte,System.Nullable`1[int]):this (Tier0) -55 (-32.74 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[ubyte,System.Nullable`1[int]]:ContainsKey(ubyte):ubyte:this (Tier0) -55 (-32.74 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[ubyte,System.Nullable`1[int]]:Remove(ubyte):ubyte:this (Tier0) -55 (-20.00 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[ubyte,System.Nullable`1[int]]:TryGetValue(ubyte,byref):ubyte:this (Tier0) -55 (-16.82 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[int,System.Nullable`1[int]]:Add(int,System.Nullable`1[int]):this (Tier0) -55 (-37.41 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[int,System.Nullable`1[int]]:IndexOfKey(int):int:this (Tier0) -55 (-16.52 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[ubyte,System.Nullable`1[int]]:Add(ubyte,System.Nullable`1[int]):this (Tier0) -55 (-36.67 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[ubyte,System.Nullable`1[int]]:IndexOfKey(ubyte):int:this (Tier0) -55 (-29.26 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2+KeyList[int,System.Nullable`1[int]]:IndexOf(int):int:this (Tier0) -55 (-28.80 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2+KeyList[ubyte,System.Nullable`1[int]]:IndexOf(ubyte):int:this (Tier0) -55 (-8.68 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[int,System.Nullable`1[int]]:Contains(int):ubyte:this (Instrumented Tier0) -55 (-8.31 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[int,System.Nullable`1[int]]:Remove(int):ubyte:this (Instrumented Tier0) -55 (-8.57 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[int,System.Nullable`1[int]]:TryGetValue(int,byref):ubyte:this (Instrumented Tier0) -55 (-8.58 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[ubyte,System.Nullable`1[int]]:Contains(ubyte):ubyte:this (Instrumented Tier0) -55 (-8.22 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[ubyte,System.Nullable`1[int]]:Remove(ubyte):ubyte:this (Instrumented Tier0) -55 (-8.46 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[ubyte,System.Nullable`1[int]]:TryGetValue(ubyte,byref):ubyte:this (Instrumented Tier0) -55 (-28.95 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshal:SizeOf[int](int):int (Tier0) -55 (-28.95 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshal:SizeOf[ubyte](ubyte):int (Tier0) -54 (-22.69 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):ubyte:this (Tier0) -54 (-19.78 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:System.Collections.Generic.IList>.IndexOf(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):int:this (Tier0) -53 (-22.65 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[long,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]):ubyte:this (Tier0) -53 (-19.70 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[long,System.Nullable`1[int]]:System.Collections.Generic.IList>.IndexOf(System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]):int:this (Tier0) Top method regressions (percentages): 118 (8.77 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.SortRequestControl:GetValue():ubyte[]:this (Tier0-FullOpts) 78 (8.07 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.PosixSignalRegistration:OnPosixSignal(int,int):int (FullOpts) 69 (6.39 % of base) : System.Security.Cryptography.ProtectedData.dasm - System.Security.Cryptography.ProtectedData:ProtectOrUnprotect(ubyte[],ubyte[],int,ubyte):ubyte[] (Tier0-FullOpts) 6 (5.31 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:IndexOf(System.Nullable`1[int]):int:this (Tier0) 6 (5.17 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:TryAdd(System.Nullable`1[int],System.Nullable`1[int]):ubyte:this (Tier0) 12 (5.13 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[System.Nullable`1[int],System.Nullable`1[int]]):ubyte:this (Tier0) 6 (5.04 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:Add(System.Nullable`1[int],System.Nullable`1[int]):this (Tier0) 6 (5.04 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:set_Item(System.Nullable`1[int],System.Nullable`1[int]):this (Tier0) 8 (5.03 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:Add(System.Nullable`1[int],System.Nullable`1[int]):this (Tier0) 8 (4.97 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:ContainsKey(System.Nullable`1[int]):ubyte:this (Tier0) 8 (4.97 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:Remove(System.Nullable`1[int]):ubyte:this (Tier0) 12 (4.46 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:System.Collections.Generic.IList>.IndexOf(System.Collections.Generic.KeyValuePair`2[System.Nullable`1[int],System.Nullable`1[int]]):int:this (Tier0) 8 (4.35 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2+KeyList[System.Nullable`1[int],System.Nullable`1[int]]:IndexOf(System.Nullable`1[int]):int:this (Tier0) 6 (4.20 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[System.Nullable`1[int],System.Nullable`1[int]]:IndexOfKey(System.Nullable`1[int]):int:this (Tier0) 6 (4.17 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:Insert(int,System.Nullable`1[int],System.Nullable`1[int]):this (Tier0) 6 (3.53 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshal:SizeOf[System.Nullable`1[int]](System.Nullable`1[int]):int (Tier0) 6 (3.37 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:TryGetValue(System.Nullable`1[int],byref):ubyte:this (Tier0) 6 (3.05 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:Remove(System.Nullable`1[int],byref):ubyte:this (Tier0) 58 (2.99 % of base) : System.Private.CoreLib.dasm - System.DateTimeParse:TryParse(System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,int,byref):ubyte (Tier0-FullOpts) 18 (2.72 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[System.Nullable`1[int],System.Nullable`1[int]]:Remove(System.Nullable`1[int]):ubyte:this (Instrumented Tier0) 8 (2.52 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[System.Nullable`1[int],System.Nullable`1[int]]:Add(System.Nullable`1[int],System.Nullable`1[int]):this (Tier0) 12 (1.87 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[System.Nullable`1[int],System.Nullable`1[int]]:Contains(System.Nullable`1[int]):ubyte:this (Instrumented Tier0) 17 (1.77 % of base) : System.Net.Quic.dasm - System.Net.Quic.QuicConnection:NativeCallback(ulong,ulong,ulong):int (FullOpts) 17 (1.77 % of base) : System.Net.Quic.dasm - System.Net.Quic.QuicListener:NativeCallback(ulong,ulong,ulong):int (FullOpts) 17 (1.77 % of base) : System.Net.Quic.dasm - System.Net.Quic.QuicStream:NativeCallback(ulong,ulong,ulong):int (FullOpts) 10 (1.47 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[System.Nullable`1[int],System.Nullable`1[int]]:TryGetValue(System.Nullable`1[int],byref):ubyte:this (Instrumented Tier0) 27 (1.14 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:VerifyRemoteCertificate(System.Net.Security.RemoteCertificateValidationCallback,System.Net.Security.SslCertificateTrust,byref,byref,byref):ubyte:this (Tier0-FullOpts) 18 (0.41 % of base) : System.Net.Security.dasm - System.Net.Security.SslStream:SelectClientCertificate():System.Security.Cryptography.X509Certificates.X509Certificate2:this (Tier0-FullOpts) 1 (0.22 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:SetAt(int,System.Nullable`1[int],System.Nullable`1[int]):this (Tier0) 1 (0.20 % of base) : System.Private.CoreLib.dasm - System.Reflection.CerHashtable`2[System.__Canon,System.__Canon]:Rehash(int):this (Tier1-OSR) Top method improvements (percentages): -59 (-55.14 % of base) : System.Private.CoreLib.dasm - System.Numerics.TotalOrderIeee754Comparer`1[double]:GetHashCode(double):int:this (Tier0) -59 (-47.20 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this (Tier0) -57 (-47.11 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[long,System.Nullable`1[int]]:IndexOf(long):int:this (Tier0) -55 (-47.01 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[int,System.Nullable`1[int]]:IndexOf(int):int:this (Tier0) -59 (-46.46 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryAdd(double,System.Nullable`1[int]):ubyte:this (Tier0) -57 (-45.97 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[long,System.Nullable`1[int]]:TryAdd(long,System.Nullable`1[int]):ubyte:this (Tier0) -56 (-45.90 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[short,System.Nullable`1[int]]:IndexOf(short):int:this (Tier0) -55 (-45.83 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[int,System.Nullable`1[int]]:TryAdd(int,System.Nullable`1[int]):ubyte:this (Tier0) -55 (-45.45 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[ubyte,System.Nullable`1[int]]:IndexOf(ubyte):int:this (Tier0) -59 (-45.38 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0) -59 (-45.38 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:set_Item(double,System.Nullable`1[int]):this (Tier0) -57 (-44.88 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[long,System.Nullable`1[int]]:Add(long,System.Nullable`1[int]):this (Tier0) -57 (-44.88 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[long,System.Nullable`1[int]]:set_Item(long,System.Nullable`1[int]):this (Tier0) -56 (-44.80 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[short,System.Nullable`1[int]]:TryAdd(short,System.Nullable`1[int]):ubyte:this (Tier0) -55 (-44.72 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[int,System.Nullable`1[int]]:Add(int,System.Nullable`1[int]):this (Tier0) -55 (-44.72 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[int,System.Nullable`1[int]]:set_Item(int,System.Nullable`1[int]):this (Tier0) -55 (-44.72 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[ubyte,System.Nullable`1[int]]:TryAdd(ubyte,System.Nullable`1[int]):ubyte:this (Tier0) -56 (-43.75 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[short,System.Nullable`1[int]]:Add(short,System.Nullable`1[int]):this (Tier0) -56 (-43.75 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[short,System.Nullable`1[int]]:set_Item(short,System.Nullable`1[int]):this (Tier0) -55 (-43.65 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[ubyte,System.Nullable`1[int]]:Add(ubyte,System.Nullable`1[int]):this (Tier0) -55 (-43.65 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[ubyte,System.Nullable`1[int]]:set_Item(ubyte,System.Nullable`1[int]):this (Tier0) -59 (-38.06 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Insert(int,double,System.Nullable`1[int]):this (Tier0) -59 (-38.06 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:IndexOfKey(double):int:this (Tier0) -57 (-37.75 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[long,System.Nullable`1[int]]:IndexOfKey(long):int:this (Tier0) -57 (-37.50 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[long,System.Nullable`1[int]]:Insert(int,long,System.Nullable`1[int]):this (Tier0) -55 (-37.41 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[int,System.Nullable`1[int]]:IndexOfKey(int):int:this (Tier0) -55 (-37.16 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[int,System.Nullable`1[int]]:Insert(int,int,System.Nullable`1[int]):this (Tier0) -56 (-36.84 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[short,System.Nullable`1[int]]:IndexOfKey(short):int:this (Tier0) -55 (-36.67 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[ubyte,System.Nullable`1[int]]:IndexOfKey(ubyte):int:this (Tier0) -56 (-36.60 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[short,System.Nullable`1[int]]:Insert(int,short,System.Nullable`1[int]):this (Tier0) -55 (-36.42 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[ubyte,System.Nullable`1[int]]:Insert(int,ubyte,System.Nullable`1[int]):this (Tier0) -59 (-34.30 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0) -57 (-34.13 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[long,System.Nullable`1[int]]:Add(long,System.Nullable`1[int]):this (Tier0) -55 (-33.95 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[int,System.Nullable`1[int]]:Add(int,System.Nullable`1[int]):this (Tier0) -59 (-33.91 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:ContainsKey(double):ubyte:this (Tier0) -59 (-33.91 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this (Tier0) -57 (-33.73 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[long,System.Nullable`1[int]]:ContainsKey(long):ubyte:this (Tier0) -57 (-33.73 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[long,System.Nullable`1[int]]:Remove(long):ubyte:this (Tier0) -55 (-33.54 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[int,System.Nullable`1[int]]:ContainsKey(int):ubyte:this (Tier0) -55 (-33.54 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[int,System.Nullable`1[int]]:Remove(int):ubyte:this (Tier0) -56 (-33.53 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[short,System.Nullable`1[int]]:Add(short,System.Nullable`1[int]):this (Tier0) -56 (-33.14 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[short,System.Nullable`1[int]]:ContainsKey(short):ubyte:this (Tier0) -56 (-33.14 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[short,System.Nullable`1[int]]:Remove(short):ubyte:this (Tier0) -55 (-33.13 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[ubyte,System.Nullable`1[int]]:Add(ubyte,System.Nullable`1[int]):this (Tier0) -55 (-32.74 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[ubyte,System.Nullable`1[int]]:ContainsKey(ubyte):ubyte:this (Tier0) -55 (-32.74 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[ubyte,System.Nullable`1[int]]:Remove(ubyte):ubyte:this (Tier0) -59 (-31.05 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Tier0) -57 (-30.65 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[long,System.Nullable`1[int]]:TryGetValue(long,byref):ubyte:this (Tier0) -55 (-30.22 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[int,System.Nullable`1[int]]:TryGetValue(int,byref):ubyte:this (Tier0) -59 (-30.10 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2+KeyList[double,System.Nullable`1[int]]:IndexOf(double):int:this (Tier0) -59 (-30.10 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshal:SizeOf[double](double):int (Tier0) -56 (-29.95 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[short,System.Nullable`1[int]]:TryGetValue(short,byref):ubyte:this (Tier0) -57 (-29.69 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2+KeyList[long,System.Nullable`1[int]]:IndexOf(long):int:this (Tier0) -55 (-29.57 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[ubyte,System.Nullable`1[int]]:TryGetValue(ubyte,byref):ubyte:this (Tier0) -55 (-29.26 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2+KeyList[int,System.Nullable`1[int]]:IndexOf(int):int:this (Tier0) -57 (-29.23 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshal:SizeOf[long](long):int (Tier0) -56 (-29.17 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshal:SizeOf[short](short):int (Tier0) -56 (-29.02 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2+KeyList[short,System.Nullable`1[int]]:IndexOf(short):int:this (Tier0) -55 (-28.95 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshal:SizeOf[int](int):int (Tier0) -55 (-28.95 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.Marshal:SizeOf[ubyte](ubyte):int (Tier0) -55 (-28.80 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2+KeyList[ubyte,System.Nullable`1[int]]:IndexOf(ubyte):int:this (Tier0) -59 (-28.23 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Remove(double,byref):ubyte:this (Tier0) -57 (-27.80 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[long,System.Nullable`1[int]]:Remove(long,byref):ubyte:this (Tier0) -55 (-27.36 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[int,System.Nullable`1[int]]:Remove(int,byref):ubyte:this (Tier0) -56 (-27.18 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[short,System.Nullable`1[int]]:Remove(short,byref):ubyte:this (Tier0) -55 (-26.83 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[ubyte,System.Nullable`1[int]]:Remove(ubyte,byref):ubyte:this (Tier0) -53 (-22.94 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[short,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[short,System.Nullable`1[int]]):ubyte:this (Tier0) -54 (-22.69 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):ubyte:this (Tier0) -53 (-22.65 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[long,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]):ubyte:this (Tier0) -52 (-22.61 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[int,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[int,System.Nullable`1[int]]):ubyte:this (Tier0) -52 (-22.61 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[ubyte,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[ubyte,System.Nullable`1[int]]):ubyte:this (Tier0) -59 (-21.15 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Tier0) -57 (-20.88 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[long,System.Nullable`1[int]]:TryGetValue(long,byref):ubyte:this (Tier0) -55 (-20.30 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[int,System.Nullable`1[int]]:TryGetValue(int,byref):ubyte:this (Tier0) -56 (-20.29 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[short,System.Nullable`1[int]]:TryGetValue(short,byref):ubyte:this (Tier0) -55 (-20.00 % of base) : System.Collections.dasm - System.Collections.Generic.SortedDictionary`2[ubyte,System.Nullable`1[int]]:TryGetValue(ubyte,byref):ubyte:this (Tier0) -53 (-19.92 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[short,System.Nullable`1[int]]:System.Collections.Generic.IList>.IndexOf(System.Collections.Generic.KeyValuePair`2[short,System.Nullable`1[int]]):int:this (Tier0) -54 (-19.78 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:System.Collections.Generic.IList>.IndexOf(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):int:this (Tier0) -53 (-19.70 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[long,System.Nullable`1[int]]:System.Collections.Generic.IList>.IndexOf(System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]):int:this (Tier0) -52 (-19.62 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[int,System.Nullable`1[int]]:System.Collections.Generic.IList>.IndexOf(System.Collections.Generic.KeyValuePair`2[int,System.Nullable`1[int]]):int:this (Tier0) -52 (-19.62 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[ubyte,System.Nullable`1[int]]:System.Collections.Generic.IList>.IndexOf(System.Collections.Generic.KeyValuePair`2[ubyte,System.Nullable`1[int]]):int:this (Tier0) -59 (-17.25 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0) -57 (-17.07 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[long,System.Nullable`1[int]]:Add(long,System.Nullable`1[int]):this (Tier0) -55 (-16.82 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[int,System.Nullable`1[int]]:Add(int,System.Nullable`1[int]):this (Tier0) -56 (-16.62 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[short,System.Nullable`1[int]]:Add(short,System.Nullable`1[int]):this (Tier0) -55 (-16.52 % of base) : System.Collections.dasm - System.Collections.Generic.SortedList`2[ubyte,System.Nullable`1[int]]:Add(ubyte,System.Nullable`1[int]):this (Tier0) -59 (-12.22 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:SetAt(int,double,System.Nullable`1[int]):this (Tier0) -57 (-12.08 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[long,System.Nullable`1[int]]:SetAt(int,long,System.Nullable`1[int]):this (Tier0) -55 (-11.93 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[int,System.Nullable`1[int]]:SetAt(int,int,System.Nullable`1[int]):this (Tier0) -56 (-11.59 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[short,System.Nullable`1[int]]:SetAt(int,short,System.Nullable`1[int]):this (Tier0) -55 (-11.48 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[ubyte,System.Nullable`1[int]]:SetAt(int,ubyte,System.Nullable`1[int]):this (Tier0) -26 (-10.66 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]):ubyte:this (Tier0) -26 (-9.32 % of base) : System.Collections.dasm - System.Collections.Generic.OrderedDictionary`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:System.Collections.Generic.IList>.IndexOf(System.Collections.Generic.KeyValuePair`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]):int:this (Tier0) -59 (-9.10 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:Contains(double):ubyte:this (Instrumented Tier0) -57 (-8.89 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[long,System.Nullable`1[int]]:Contains(long):ubyte:this (Instrumented Tier0) -59 (-8.75 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Instrumented Tier0) -59 (-8.73 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this (Instrumented Tier0) -56 (-8.71 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[short,System.Nullable`1[int]]:Contains(short):ubyte:this (Instrumented Tier0) -55 (-8.68 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[int,System.Nullable`1[int]]:Contains(int):ubyte:this (Instrumented Tier0) -56 (-8.60 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[short,System.Nullable`1[int]]:TryGetValue(short,byref):ubyte:this (Instrumented Tier0) 142 total methods with Code Size differences (112 improved, 30 regressed), 255979 unchanged. -------------------------------------------------------------------------------- ```

Artifacts:

MihuBot commented 1 month ago

Top method regressions

118 (8.77 % of base) - System.DirectoryServices.Protocols.SortRequestControl:GetValue():ubyte[]:this ```diff ; Assembly listing for method System.DirectoryServices.Protocols.SortRequestControl:GetValue():ubyte[]:this (Tier0-FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; Tier-0 switched to FullOpts code ; optimized code ; optimized using Synthesized PGO ; rbp based frame ; fully interruptible ; with Synthesized PGO: fgCalledCount is 100 ; No PGO data -; 0 inlinees with PGO data; 21 single block inlinees; 7 inlinees without PGO data +; 0 inlinees with PGO data; 24 single block inlinees; 15 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T11] ( 10, 23.46) ref -> [rbp-0xB0] this class-hnd EH-live single-def ; V01 loc0 [V01,T10] ( 6, 29.81) ref -> [rbp-0xB8] class-hnd exact spill-single-def ; V02 loc1 [V02 ] ( 5, 4.00) long -> [rbp-0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op ; V03 loc2 [V03,T21] ( 2, 9.91) int -> r14 single-def ; V04 loc3 [V04,T18] ( 6, 16.11) int -> [rbp-0x34] EH-live spill-single-def ; V05 loc4 [V05,T22] ( 6, 8.10) long -> [rbp-0x40] EH-live spill-single-def -;* V06 loc5 [V06,T33] ( 0, 0 ) int -> zero-ref +;* V06 loc5 [V06,T36] ( 0, 0 ) int -> zero-ref ; V07 loc6 [V07,T20] ( 3, 10.91) long -> r12 single-def ;* V08 loc7 [V08 ] ( 0, 0 ) long -> zero-ref ; V09 loc8 [V09,T26] ( 3, 2.89) int -> rcx ; V10 loc9 [V10,T30] ( 2, 2 ) ubyte -> r15 single-def ; V11 loc10 [V11,T28] ( 6, 2.52) int -> r14 single-def ;* V12 loc11 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def -; V13 loc12 [V13,T32] ( 4, 1.46) ref -> r14 class-hnd exact single-def -; V14 loc13 [V14,T38] ( 2, 0 ) ref -> r15 class-hnd exact single-def +; V13 loc12 [V13,T33] ( 4, 1.46) ref -> r14 class-hnd exact single-def +; V14 loc13 [V14,T47] ( 2, 0 ) ref -> r15 class-hnd exact single-def ; V15 loc14 [V15,T12] ( 5, 19.24) int -> rbx ; V16 loc15 [V16,T17] ( 5, 16.17) long -> r15 ; V17 loc16 [V17,T19] ( 6, 11.76) long -> rax ;# V18 OutArgs [V18 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V19 tmp1 [V19 ] ( 5, 90.00) struct (24) [rbp-0x58] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" ; V20 tmp2 [V20,T24] ( 4, 3.84) ref -> r15 class-hnd exact single-def "NewObj constructor temp" -; V21 tmp3 [V21,T36] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" -; V22 tmp4 [V22,T37] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" +; V21 tmp3 [V21,T45] ( 3, 0 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" +; V22 tmp4 [V22,T46] ( 3, 0 ) ref -> r13 class-hnd exact single-def "NewObj constructor temp" ;* V23 tmp5 [V23 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ; V24 tmp6 [V24,T07] ( 3, 44.19) long -> rdi "Inlining Arg" ; V25 tmp7 [V25,T13] ( 3, 17.82) long -> rdi ; V26 tmp8 [V26,T03] ( 4, 71.28) long -> rbx "dup spill" ;* V27 tmp9 [V27 ] ( 0, 0 ) long -> zero-ref ;* V28 tmp10 [V28 ] ( 0, 0 ) struct (24) zero-ref "Inlining Arg" ; V29 tmp11 [V29,T00] ( 5, 89.10) ref -> [rbp-0xC0] class-hnd exact spill-single-def "Single-def Box Helper" ;* V30 tmp12 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" ;* V31 tmp13 [V31 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ; V32 tmp14 [V32,T27] ( 3, 2.88) long -> rdi "Inlining Arg" ;* V33 tmp15 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "Inline stloc first use temp" -;* V34 tmp16 [V34 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V35 tmp17 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" -;* V36 tmp18 [V36 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" -; V37 tmp19 [V37,T29] ( 2, 2.08) long -> rdi "Inlining Arg" -;* V38 tmp20 [V38 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" -; V39 tmp21 [V39,T31] ( 2, 1.92) ref -> rax single-def "Single return block return value" -; V40 FramesRoot [V40,T08] ( 6, 37.64) long -> r15 "Pinvoke FrameListRoot" -; V41 PInvokeFrame [V41 ] ( 8, 39.64) struct (64) [rbp-0x98] do-not-enreg[XS] addr-exposed "Pinvoke FrameVar" -; V42 tmp24 [V42 ] ( 3, 45.00) ref -> [rbp-0x58] do-not-enreg[X] addr-exposed "field V19.k__BackingField (fldOffset=0x0)" P-DEP -; V43 tmp25 [V43 ] ( 3, 45.00) ref -> [rbp-0x50] do-not-enreg[X] addr-exposed "field V19.k__BackingField (fldOffset=0x8)" P-DEP -; V44 tmp26 [V44 ] ( 3, 45.00) ubyte -> [rbp-0x48] do-not-enreg[X] addr-exposed "field V19.k__BackingField (fldOffset=0x10)" P-DEP -; V45 tmp27 [V45,T14] ( 2, 17.82) ref -> [rbp-0xC8] spill-single-def "field V28.k__BackingField (fldOffset=0x0)" P-INDEP -; V46 tmp28 [V46,T15] ( 2, 17.82) ref -> [rbp-0xD0] spill-single-def "field V28.k__BackingField (fldOffset=0x8)" P-INDEP -; V47 tmp29 [V47,T16] ( 2, 17.82) ubyte -> [rbp-0x9C] spill-single-def "field V28.k__BackingField (fldOffset=0x10)" P-INDEP -; V48 tmp30 [V48,T05] ( 3, 54.00) ref -> rsi "arr expr" -; V49 tmp31 [V49,T09] ( 2, 36.00) ref -> rsi "argument with side effect" -; V50 tmp32 [V50,T01] ( 4, 72.00) byref -> r14 "BlockOp address local" -; V51 tmp33 [V51,T02] ( 4, 71.28) byref -> rdi "BlockOp address local" -; V52 tmp34 [V52,T23] ( 2, 4 ) ref -> rdi single-def "argument with side effect" -; V53 PSPSym [V53,T34] ( 1, 1 ) long -> [rbp-0xE0] do-not-enreg[V] "PSPSym" -; V54 cse0 [V54,T35] ( 3, 0.75) int -> r15 "CSE #07: conservative" -; V55 cse1 [V55,T25] ( 3, 3 ) ref -> r14 "CSE #01: moderate" -; V56 rat0 [V56,T04] ( 8, 64.00) long -> r12 "Widened IV V06" -; V57 rat1 [V57,T06] ( 7, 46.44) long -> [rbp-0xA8] "Widened IV V09" +; V34 tmp16 [V34,T34] ( 3, 1.36) long -> rsi "Inlining Arg" +; V35 tmp17 [V35,T35] ( 3, 1.12) ref -> rdi class-hnd single-def "Inlining Arg" +; V36 tmp18 [V36,T32] ( 4, 1.36) int -> r15 "Inlining Arg" +;* V37 tmp19 [V37 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" +;* V38 tmp20 [V38 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" +;* V39 tmp21 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" +;* V40 tmp22 [V40 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" +;* V41 tmp23 [V41 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" +;* V42 tmp24 [V42 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" +;* V43 tmp25 [V43 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" +; V44 tmp26 [V44,T29] ( 2, 2.08) long -> rdi "Inlining Arg" +;* V45 tmp27 [V45 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" +; V46 tmp28 [V46,T31] ( 2, 1.92) ref -> rax single-def "Single return block return value" +; V47 FramesRoot [V47,T08] ( 6, 37.64) long -> r15 "Pinvoke FrameListRoot" +; V48 PInvokeFrame [V48 ] ( 8, 39.64) struct (64) [rbp-0x98] do-not-enreg[XS] addr-exposed "Pinvoke FrameVar" +; V49 tmp31 [V49 ] ( 3, 45.00) ref -> [rbp-0x58] do-not-enreg[X] addr-exposed "field V19.k__BackingField (fldOffset=0x0)" P-DEP +; V50 tmp32 [V50 ] ( 3, 45.00) ref -> [rbp-0x50] do-not-enreg[X] addr-exposed "field V19.k__BackingField (fldOffset=0x8)" P-DEP +; V51 tmp33 [V51 ] ( 3, 45.00) ubyte -> [rbp-0x48] do-not-enreg[X] addr-exposed "field V19.k__BackingField (fldOffset=0x10)" P-DEP +; V52 tmp34 [V52,T14] ( 2, 17.82) ref -> [rbp-0xC8] spill-single-def "field V28.k__BackingField (fldOffset=0x0)" P-INDEP +; V53 tmp35 [V53,T15] ( 2, 17.82) ref -> [rbp-0xD0] spill-single-def "field V28.k__BackingField (fldOffset=0x8)" P-INDEP +; V54 tmp36 [V54,T16] ( 2, 17.82) ubyte -> [rbp-0x9C] spill-single-def "field V28.k__BackingField (fldOffset=0x10)" P-INDEP +; V55 tmp37 [V55,T40] ( 2, 0.36) byref -> rsi single-def "field V37._reference (fldOffset=0x0)" P-INDEP +;* V56 tmp38 [V56,T43] ( 0, 0 ) int -> zero-ref single-def "field V37._length (fldOffset=0x8)" P-INDEP +; V57 tmp39 [V57,T41] ( 2, 0.31) byref -> rsi single-def "field V38._reference (fldOffset=0x0)" P-INDEP +; V58 tmp40 [V58,T39] ( 3, 0.49) int -> r15 single-def "field V38._length (fldOffset=0x8)" P-INDEP +; V59 tmp41 [V59,T42] ( 2, 0.26) byref -> rdi single-def "field V39._reference (fldOffset=0x0)" P-INDEP +;* V60 tmp42 [V60,T44] ( 0, 0 ) int -> zero-ref single-def "field V39._length (fldOffset=0x8)" P-INDEP +;* V61 tmp43 [V61 ] ( 0, 0 ) byref -> zero-ref single-def "field V40._reference (fldOffset=0x0)" P-INDEP +;* V62 tmp44 [V62 ] ( 0, 0 ) int -> zero-ref single-def "field V40._length (fldOffset=0x8)" P-INDEP +; V63 tmp45 [V63,T05] ( 3, 54.00) ref -> rsi "arr expr" +; V64 tmp46 [V64,T09] ( 2, 36.00) ref -> rsi "argument with side effect" +; V65 tmp47 [V65,T01] ( 4, 72.00) byref -> r14 "BlockOp address local" +; V66 tmp48 [V66,T02] ( 4, 71.28) byref -> rdi "BlockOp address local" +; V67 tmp49 [V67,T23] ( 2, 4 ) ref -> rdi single-def "argument with side effect" +; V68 tmp50 [V68,T48] ( 2, 0 ) ref -> rsi single-def "argument with side effect" +; V69 PSPSym [V69,T37] ( 1, 1 ) long -> [rbp-0xE0] do-not-enreg[V] "PSPSym" +; V70 cse0 [V70,T38] ( 3, 0.75) int -> r15 "CSE #07: conservative" +; V71 cse1 [V71,T25] ( 3, 3 ) ref -> r14 "CSE #01: moderate" +; V72 rat0 [V72,T04] ( 8, 64.00) long -> r12 "Widened IV V06" +; V73 rat1 [V73,T06] ( 7, 46.44) long -> [rbp-0xA8] "Widened IV V09" ; ; Lcl frame size = 184 G_M6630_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 184 vzeroupper lea rbp, [rsp+0xE0] xor eax, eax mov qword ptr [rbp-0x58], rax vxorps xmm8, xmm8, xmm8 vmovdqu ymmword ptr [rbp-0x50], ymm8 mov qword ptr [rbp-0x30], rax mov qword ptr [rbp-0xE0], rsp mov gword ptr [rbp-0xB0], rdi mov rbx, rdi ;; size=65 bbWeight=1 PerfScore 14.58 G_M6630_IG02: lea rdi, [rbp-0x90] call CORINFO_HELP_INIT_PINVOKE_FRAME mov r15, rax mov rsi, rsp mov qword ptr [rbp-0x78], rsi mov rsi, rbp mov qword ptr [rbp-0x68], rsi mov r14, gword ptr [rbx+0x20] mov esi, dword ptr [r14+0x08] mov rdi, 0xD1FFAB1E ; System.DirectoryServices.Protocols.SortKeyInterop[] call CORINFO_HELP_NEWARR_1_VC mov r13, rax mov gword ptr [rbp-0xB8], r13 xor r12d, r12d cmp dword ptr [r14+0x08], 0 jle SHORT G_M6630_IG04 ;; size=72 bbWeight=1 PerfScore 15.00 G_M6630_IG03: mov rbx, gword ptr [rbp-0xB0] vxorps xmm0, xmm0, xmm0 vmovdqu xmmword ptr [rbp-0x58], xmm0 vmovdqu xmmword ptr [rbp-0x50], xmm0 mov rsi, gword ptr [rbx+0x20] cmp r12d, dword ptr [rsi+0x08] - jae G_M6630_IG31 + jae G_M6630_IG36 mov rsi, gword ptr [rsi+8*r12+0x10] lea rdi, [rbp-0x58] mov rax, 0xD1FFAB1E ; code for System.DirectoryServices.Protocols.SortKeyInterop:.ctor(System.DirectoryServices.Protocols.SortKey):this call [rax]System.DirectoryServices.Protocols.SortKeyInterop:.ctor(System.DirectoryServices.Protocols.SortKey):this cmp r12d, dword ptr [r13+0x08] - jae G_M6630_IG31 + jae G_M6630_IG36 lea rdi, [r12+2*r12] lea r14, bword ptr [r13+8*rdi+0x10] mov rsi, gword ptr [rbp-0x58] mov rdi, r14 call CORINFO_HELP_ASSIGN_REF lea rdi, bword ptr [r14+0x08] mov rsi, gword ptr [rbp-0x50] call CORINFO_HELP_ASSIGN_REF movzx rax, byte ptr [rbp-0x48] mov byte ptr [r14+0x10], al inc r12d mov rax, gword ptr [rbx+0x20] cmp dword ptr [rax+0x08], r12d jg SHORT G_M6630_IG03 ;; size=121 bbWeight=9.00 PerfScore 311.25 G_M6630_IG04: xor eax, eax mov qword ptr [rbp-0x30], rax mov rax, 0xD1FFAB1E ; code for System.Runtime.InteropServices.Marshal:SizeOf[System.DirectoryServices.Protocols.SortKeyInterop]():int call [rax]System.Runtime.InteropServices.Marshal:SizeOf[System.DirectoryServices.Protocols.SortKeyInterop]():int mov r14d, eax mov eax, dword ptr [r13+0x08] mov dword ptr [rbp-0x34], eax lea edi, [rax+0x01] mov rcx, 0xD1FFAB1E ; code for System.DirectoryServices.Protocols.Utility:AllocHGlobalIntPtrArray(int):long call [rcx]System.DirectoryServices.Protocols.Utility:AllocHGlobalIntPtrArray(int):long mov qword ptr [rbp-0x40], rax ;; size=47 bbWeight=1 PerfScore 12.50 G_M6630_IG05: mov r12, rax xor ecx, ecx xor edx, edx mov qword ptr [rbp-0xA8], rdx cmp dword ptr [rbp-0x34], 0 mov rax, qword ptr [rbp-0x40] jle G_M6630_IG17 ;; size=28 bbWeight=1 PerfScore 5.75 G_M6630_IG06: mov edi, dword ptr [r13+0x08] ;; size=4 bbWeight=0.90 PerfScore 1.80 G_M6630_IG07: movsxd rdi, r14d test rdi, rdi jne SHORT G_M6630_IG14 ;; size=8 bbWeight=8.91 PerfScore 13.37 G_M6630_IG08: mov edi, 1 ;; size=5 bbWeight=4.63 PerfScore 1.16 G_M6630_IG09: mov rcx, 0xD1FFAB1E ; function address mov qword ptr [rbp-0x80], rcx lea rcx, G_M6630_IG12 mov qword ptr [rbp-0x70], rcx lea rcx, [rbp-0x90] mov qword ptr [r15+0x08], rcx mov byte ptr [r15+0x04], 0 ;; size=41 bbWeight=8.91 PerfScore 51.23 G_M6630_IG10: mov rcx, 0xD1FFAB1E ; code for Interop+Sys:Malloc(ulong):ulong ;; size=10 bbWeight=8.91 PerfScore 2.23 G_M6630_IG11: call [rcx]Interop+Sys:Malloc(ulong):ulong ;; size=2 bbWeight=8.91 PerfScore 26.73 G_M6630_IG12: mov byte ptr [r15+0x04], 1 mov rcx, 0xD1FFAB1E ; function address cmp dword ptr [rcx], 0 je SHORT G_M6630_IG13 mov rdi, 0xD1FFAB1E call [rdi]CORINFO_HELP_STOP_FOR_GC ;; size=32 bbWeight=8.91 PerfScore 75.74 G_M6630_IG13: mov rdi, qword ptr [rbp-0x88] mov qword ptr [r15+0x08], rdi mov rbx, rax test rbx, rbx jne SHORT G_M6630_IG15 - jmp G_M6630_IG22 + jmp G_M6630_IG24 ;; size=24 bbWeight=8.91 PerfScore 49.01 G_M6630_IG14: jmp SHORT G_M6630_IG09 ;; size=2 bbWeight=4.28 PerfScore 8.55 G_M6630_IG15: mov r13, qword ptr [rbp-0xA8] lea rdi, [r13+2*r13] mov rax, gword ptr [rbp-0xB8] lea rdi, bword ptr [rax+8*rdi+0x10] mov rcx, gword ptr [rdi] mov gword ptr [rbp-0xC8], rcx mov rdx, gword ptr [rdi+0x08] mov gword ptr [rbp-0xD0], rdx movzx rsi, byte ptr [rdi+0x10] mov byte ptr [rbp-0x9C], sil mov rdi, 0xD1FFAB1E ; System.DirectoryServices.Protocols.SortKeyInterop call CORINFO_HELP_NEWSFAST mov gword ptr [rbp-0xC0], rax lea rdi, bword ptr [rax+0x08] mov rsi, gword ptr [rbp-0xC8] call CORINFO_HELP_ASSIGN_REF mov rax, gword ptr [rbp-0xC0] lea rdi, bword ptr [rax+0x10] mov rsi, gword ptr [rbp-0xD0] call CORINFO_HELP_ASSIGN_REF mov rdi, gword ptr [rbp-0xC0] movzx rsi, byte ptr [rbp-0x9C] mov byte ptr [rdi+0x18], sil mov rsi, rbx xor edx, edx mov rax, 0xD1FFAB1E ; code for System.Runtime.InteropServices.Marshal:StructureToPtr(System.Object,long,ubyte) call [rax]System.Runtime.InteropServices.Marshal:StructureToPtr(System.Object,long,ubyte) movsxd rdi, r13d mov qword ptr [r12+8*rdi], rbx inc r13d mov esi, dword ptr [rbp-0x34] cmp r13d, esi mov qword ptr [rbp-0xA8], r13 mov rax, qword ptr [rbp-0x40] jl G_M6630_IG07 ;; size=187 bbWeight=8.91 PerfScore 309.62 G_M6630_IG16: mov rcx, qword ptr [rbp-0xA8] ;; size=7 bbWeight=0.89 PerfScore 0.89 G_M6630_IG17: movsxd rdi, ecx xor edx, edx mov qword ptr [r12+8*rdi], rdx mov rbx, gword ptr [rbp-0xB0] movzx r15, byte ptr [rbx+0x18] mov rdi, 0xD1FFAB1E ; global ptr test byte ptr [rdi], 1 - je G_M6630_IG23 + je G_M6630_IG25 ;; size=40 bbWeight=1 PerfScore 8.75 G_M6630_IG18: mov rdi, 0xD1FFAB1E ; data for System.DirectoryServices.Protocols.UtilityHandle:s_handle mov rdi, gword ptr [rdi] test r15d, r15d setne dl movzx rdx, dl lea rcx, [rbp-0x30] mov rsi, rax mov r8, 0xD1FFAB1E ; code for Interop+Ldap:ldap_create_sort_control(System.DirectoryServices.Protocols.ConnectionHandle,long,ubyte,byref):int call [r8]Interop+Ldap:ldap_create_sort_control(System.DirectoryServices.Protocols.ConnectionHandle,long,ubyte,byref):int mov r14d, eax test r14d, r14d je SHORT G_M6630_IG20 ;; size=50 bbWeight=1 PerfScore 9.25 G_M6630_IG19: mov edi, r14d mov rax, 0xD1FFAB1E ; code for System.DirectoryServices.Protocols.LdapErrorMappings:IsLdapError(int):ubyte call [rax]System.DirectoryServices.Protocols.LdapErrorMappings:IsLdapError(int):ubyte test eax, eax - je G_M6630_IG25 - jmp G_M6630_IG24 + je G_M6630_IG27 + jmp G_M6630_IG26 ;; size=28 bbWeight=0.52 PerfScore 3.51 G_M6630_IG20: mov rdi, 0xD1FFAB1E ; System.DirectoryServices.Protocols.LdapControl call CORINFO_HELP_NEWSFAST mov r15, rax xor edi, edi mov qword ptr [r15+0x10], rdi mov rdi, qword ptr [rbp-0x30] test rdi, rdi - je G_M6630_IG26 + je G_M6630_IG28 mov rsi, r15 xor edx, edx mov rax, 0xD1FFAB1E ; code for System.Runtime.InteropServices.Marshal:PtrToStructureHelper(long,System.Object,ubyte) call [rax]System.Runtime.InteropServices.Marshal:PtrToStructureHelper(long,System.Object,ubyte) mov r14, gword ptr [r15+0x08] xor rsi, rsi mov gword ptr [rbx+0x08], rsi test r14, r14 - je G_M6630_IG27 + je G_M6630_IG32 ;; size=73 bbWeight=0.48 PerfScore 6.36 G_M6630_IG21: mov r15d, dword ptr [r14+0x08] movsxd rsi, r15d mov rdi, 0xD1FFAB1E ; ubyte[] call CORINFO_HELP_NEWARR_1_VC lea rdi, bword ptr [rbx+0x08] mov rsi, rax call CORINFO_HELP_ASSIGN_REF - mov rdi, qword ptr [r14+0x10] - mov rsi, gword ptr [rbx+0x08] - mov ecx, r15d - xor edx, edx - mov rax, 0xD1FFAB1E ; code for System.Runtime.InteropServices.Marshal:CopyToManaged[ubyte](long,ubyte[],int,int) - call [rax]System.Runtime.InteropServices.Marshal:CopyToManaged[ubyte](long,ubyte[],int,int) - jmp G_M6630_IG27 - ;; size=64 bbWeight=0.25 PerfScore 3.74 + mov rsi, qword ptr [r14+0x10] + mov rdi, gword ptr [rbx+0x08] + test rsi, rsi + je G_M6630_IG29 + test r15d, r15d + jl G_M6630_IG30 + ;; size=60 bbWeight=0.25 PerfScore 2.93 G_M6630_IG22: + cmp dword ptr [rdi+0x08], r15d + jb G_M6630_IG31 + ;; size=10 bbWeight=0.18 PerfScore 0.73 +G_M6630_IG23: + add rdi, 16 + mov edx, r15d + mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:Memmove(byref,byref,ulong) + call [rax]System.SpanHelpers:Memmove(byref,byref,ulong) + jmp G_M6630_IG32 + ;; size=24 bbWeight=0.13 PerfScore 0.75 +G_M6630_IG24: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowOutOfMemoryException() call [rax]System.ThrowHelper:ThrowOutOfMemoryException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -G_M6630_IG23: +G_M6630_IG25: mov rdi, 0xD1FFAB1E ; System.DirectoryServices.Protocols.UtilityHandle call CORINFO_HELP_GET_GCSTATIC_BASE mov rax, qword ptr [rbp-0x40] jmp G_M6630_IG18 ;; size=24 bbWeight=0 PerfScore 0.00 -G_M6630_IG24: +G_M6630_IG26: mov edi, r14d mov rax, 0xD1FFAB1E ; code for System.DirectoryServices.Protocols.LdapErrorMappings:MapResultCode(int):System.String call [rax]System.DirectoryServices.Protocols.LdapErrorMappings:MapResultCode(int):System.String mov r15, rax mov rdi, 0xD1FFAB1E ; System.DirectoryServices.Protocols.LdapException call CORINFO_HELP_NEWSFAST mov r13, rax mov rdi, r13 mov esi, r14d mov rdx, r15 mov rax, 0xD1FFAB1E ; code for System.DirectoryServices.Protocols.LdapException:.ctor(int,System.String):this call [rax]System.DirectoryServices.Protocols.LdapException:.ctor(int,System.String):this mov rdi, r13 call CORINFO_HELP_THROW int3 ;; size=66 bbWeight=0 PerfScore 0.00 -G_M6630_IG25: +G_M6630_IG27: mov rdi, 0xD1FFAB1E ; System.DirectoryServices.Protocols.LdapException call CORINFO_HELP_NEWSFAST mov r15, rax mov rdi, r15 mov esi, r14d mov rax, 0xD1FFAB1E ; code for System.DirectoryServices.Protocols.LdapException:.ctor(int):this call [rax]System.DirectoryServices.Protocols.LdapException:.ctor(int):this mov rdi, r15 call CORINFO_HELP_THROW int3 ;; size=45 bbWeight=0 PerfScore 0.00 -G_M6630_IG26: +G_M6630_IG28: mov edi, 0xD59 mov rsi, 0xD1FFAB1E call CORINFO_HELP_STRCNS mov rdi, rax mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:Throw(System.String) call [rax]System.ArgumentNullException:Throw(System.String) int3 ;; size=36 bbWeight=0 PerfScore 0.00 -G_M6630_IG27: +G_M6630_IG29: + mov edi, 0x13ED + mov rsi, 0xD1FFAB1E + call CORINFO_HELP_STRCNS + mov rdi, rax + mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:Throw(System.String) + call [rax]System.ArgumentNullException:Throw(System.String) + int3 + ;; size=36 bbWeight=0 PerfScore 0.00 +G_M6630_IG30: + mov edi, 491 + mov rsi, 0xD1FFAB1E + call CORINFO_HELP_STRCNS + mov rsi, rax + mov edi, r15d + mov rax, 0xD1FFAB1E ; code for System.ArgumentOutOfRangeException:ThrowNegative[int](int,System.String) + call [rax]System.ArgumentOutOfRangeException:ThrowNegative[int](int,System.String) + int3 + ;; size=39 bbWeight=0 PerfScore 0.00 +G_M6630_IG31: + mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException() + call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException() + int3 + ;; size=13 bbWeight=0 PerfScore 0.00 +G_M6630_IG32: mov rdi, rsp ;; size=3 bbWeight=0.48 PerfScore 0.12 -G_M6630_IG28: - call G_M6630_IG32 +G_M6630_IG33: + call G_M6630_IG37 nop ;; size=6 bbWeight=0.48 PerfScore 0.60 -G_M6630_IG29: +G_M6630_IG34: mov rdi, gword ptr [rbp-0xB0] mov rax, 0xD1FFAB1E ; code for System.DirectoryServices.Protocols.DirectoryControl:GetValue():ubyte[]:this call [rax]System.DirectoryServices.Protocols.DirectoryControl:GetValue():ubyte[]:this nop ;; size=20 bbWeight=0.48 PerfScore 2.16 -G_M6630_IG30: +G_M6630_IG35: add rsp, 184 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=18 bbWeight=0.48 PerfScore 2.04 -G_M6630_IG31: +G_M6630_IG36: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 -G_M6630_IG32: +G_M6630_IG37: push rbp push r15 push r14 push r13 push r12 push rbx push rax vzeroupper mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0xE0] ;; size=28 bbWeight=1.00 PerfScore 11.50 -G_M6630_IG33: +G_M6630_IG38: cmp qword ptr [rbp-0x30], 0 - je SHORT G_M6630_IG35 + je SHORT G_M6630_IG40 ;; size=7 bbWeight=1.00 PerfScore 3.00 -G_M6630_IG34: +G_M6630_IG39: mov rdi, qword ptr [rbp-0x30] call Interop+Ldap:ldap_control_free(long):int ;; size=9 bbWeight=0.52 PerfScore 1.04 -G_M6630_IG35: +G_M6630_IG40: cmp qword ptr [rbp-0x40], 0 - je G_M6630_IG45 + je G_M6630_IG50 ;; size=11 bbWeight=1.00 PerfScore 3.00 -G_M6630_IG36: +G_M6630_IG41: xor ebx, ebx cmp dword ptr [rbp-0x34], 0 - jle SHORT G_M6630_IG44 + jle SHORT G_M6630_IG49 ;; size=8 bbWeight=0.52 PerfScore 1.69 -G_M6630_IG37: +G_M6630_IG42: lea esi, [8*rbx] mov rdi, qword ptr [rbp-0x40] mov rcx, 0xD1FFAB1E ; code for System.Runtime.InteropServices.Marshal:ReadInt64(long,int):long call [rcx]System.Runtime.InteropServices.Marshal:ReadInt64(long,int):long mov r15, rax test r15, r15 - je SHORT G_M6630_IG43 + je SHORT G_M6630_IG48 ;; size=31 bbWeight=4.68 PerfScore 29.25 -G_M6630_IG38: +G_M6630_IG43: mov rdi, r15 xor esi, esi mov rax, 0xD1FFAB1E ; code for System.Runtime.InteropServices.Marshal:ReadInt64(long,int):long call [rax]System.Runtime.InteropServices.Marshal:ReadInt64(long,int):long test rax, rax - je SHORT G_M6630_IG40 + je SHORT G_M6630_IG45 ;; size=22 bbWeight=2.43 PerfScore 12.17 -G_M6630_IG39: +G_M6630_IG44: mov rdi, rax call Interop+Sys:Free(ulong) ;; size=8 bbWeight=1.01 PerfScore 1.27 -G_M6630_IG40: +G_M6630_IG45: mov rdi, r15 mov esi, 8 mov rax, 0xD1FFAB1E ; code for System.Runtime.InteropServices.Marshal:ReadInt64(long,int):long call [rax]System.Runtime.InteropServices.Marshal:ReadInt64(long,int):long test rax, rax - je SHORT G_M6630_IG42 + je SHORT G_M6630_IG47 ;; size=25 bbWeight=2.43 PerfScore 12.17 -G_M6630_IG41: +G_M6630_IG46: mov rdi, rax call Interop+Sys:Free(ulong) ;; size=8 bbWeight=1.01 PerfScore 1.27 -G_M6630_IG42: +G_M6630_IG47: mov rdi, r15 call Interop+Sys:Free(ulong) ;; size=8 bbWeight=1.95 PerfScore 2.43 -G_M6630_IG43: +G_M6630_IG48: inc ebx mov eax, dword ptr [rbp-0x34] cmp ebx, eax - jl SHORT G_M6630_IG37 + jl SHORT G_M6630_IG42 ;; size=9 bbWeight=4.68 PerfScore 11.70 -G_M6630_IG44: +G_M6630_IG49: mov rdi, qword ptr [rbp-0x40] call Interop+Sys:Free(ulong) ;; size=9 bbWeight=0.42 PerfScore 0.83 -G_M6630_IG45: +G_M6630_IG50: nop ;; size=1 bbWeight=1.00 PerfScore 0.25 -G_M6630_IG46: +G_M6630_IG51: add rsp, 8 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1.00 PerfScore 4.25 -; Total bytes of code 1346, prolog size 65, PerfScore 1031.75, instruction count 314, allocated bytes for code 1346 (MethodHash=0bb8e619) for method System.DirectoryServices.Protocols.SortRequestControl:GetValue():ubyte[]:this (Tier0-FullOpts) +; Total bytes of code 1464, prolog size 65, PerfScore 1032.41, instruction count 338, allocated bytes for code 1464 (MethodHash=0bb8e619) for method System.DirectoryServices.Protocols.SortRequestControl:GetValue():ubyte[]:this (Tier0-FullOpts) ```
78 (8.07 % of base) - System.Runtime.InteropServices.PosixSignalRegistration:OnPosixSignal(int,int):int ```diff ; Assembly listing for method System.Runtime.InteropServices.PosixSignalRegistration:OnPosixSignal(int,int):int (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; optimized using Synthesized PGO ; rbp based frame ; fully interruptible ; with Synthesized PGO: fgCalledCount is 100 ; No PGO data -; 0 inlinees with PGO data; 9 single block inlinees; 4 inlinees without PGO data +; 0 inlinees with PGO data; 14 single block inlinees; 5 inlinees without PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T02] ( 5, 3.80) int -> rbx single-def ; V01 arg1 [V01,T03] ( 3, 2.80) int -> r15 single-def ; V02 loc0 [V02,T05] ( 6, 3.84) ref -> [rbp-0x88] class-hnd -; V03 loc1 [V03,T17] ( 4, 1.52) ref -> [rbp-0x90] class-hnd EH-live spill-single-def +; V03 loc1 [V03,T19] ( 4, 1.52) ref -> [rbp-0x90] class-hnd EH-live spill-single-def ; V04 loc2 [V04 ] ( 5, 4 ) ubyte -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op ; V05 loc3 [V05,T10] ( 4, 2.08) ref -> r13 ld-addr-op class-hnd ;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V07 tmp1 [V07,T16] ( 2, 1.54) ref -> r15 class-hnd exact single-def "dup spill" -; V08 tmp2 [V08,T19] ( 4, 1.35) ref -> r15 +; V07 tmp1 [V07,T18] ( 2, 1.54) ref -> r15 class-hnd exact single-def "dup spill" +; V08 tmp2 [V08,T20] ( 4, 1.35) ref -> r15 ;* V09 tmp3 [V09 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V10 tmp4 [V10,T07] ( 4, 3.07) ref -> r13 class-hnd exact single-def "Single-def Box Helper" ; V11 tmp5 [V11,T09] ( 7, 2.80) ref -> r15 class-hnd exact single-def "NewObj constructor temp" -; V12 tmp6 [V12,T14] ( 2, 1.66) ref -> r15 class-hnd exact single-def "dup spill" -; V13 tmp7 [V13,T18] ( 4, 1.46) ref -> r15 -; V14 tmp8 [V14,T01] ( 7, 5.82) ref -> [rbp-0x98] class-hnd exact spill-single-def "NewObj constructor temp" +; V12 tmp6 [V12,T16] ( 2, 1.66) ref -> r15 class-hnd exact single-def "dup spill" +; V13 tmp7 [V13,T13] ( 5, 1.88) ref -> r15 +; V14 tmp8 [V14,T00] ( 8, 6.66) ref -> [rbp-0x98] class-hnd exact spill-single-def "NewObj constructor temp" ;* V15 tmp9 [V15 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V16 tmp10 [V16,T06] ( 4, 3.16) ref -> r15 class-hnd exact single-def "Single-def Box Helper" ; V17 tmp11 [V17,T08] ( 7, 3.03) ref -> r15 class-hnd exact single-def "NewObj constructor temp" -;* V18 tmp12 [V18,T20] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" -; V19 tmp13 [V19,T00] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" +;* V18 tmp12 [V18,T21] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" +; V19 tmp13 [V19,T01] ( 3, 6 ) ref -> rdi class-hnd single-def "Inlining Arg" ; V20 tmp14 [V20,T11] ( 3, 2.52) byref -> rax single-def "Inline stloc first use temp" ;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" ;* V22 tmp16 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" -;* V23 tmp17 [V23 ] ( 0, 0 ) struct ( 8) zero-ref +; V23 tmp17 [V23,T12] ( 3, 2.50) ref -> r12 class-hnd exact single-def "NewObj constructor temp" ;* V24 tmp18 [V24 ] ( 0, 0 ) struct ( 8) zero-ref -;* V25 tmp19 [V25 ] ( 0, 0 ) int -> zero-ref -;* V26 tmp20 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V27 tmp21 [V27,T12] ( 5, 1.83) ref -> rbx class-hnd exact single-def "Inline stloc first use temp" -; V28 tmp22 [V28,T13] ( 3, 1.66) ref -> r14 single-def "ISINST eval op1" -;* V29 tmp23 [V29,T28] ( 0, 0 ) int -> zero-ref "spilling qmarkNull" -;* V30 tmp24 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref +;* V25 tmp19 [V25 ] ( 0, 0 ) struct ( 8) zero-ref +;* V26 tmp20 [V26 ] ( 0, 0 ) int -> zero-ref +;* V27 tmp21 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" +; V28 tmp22 [V28,T14] ( 5, 1.83) ref -> rbx class-hnd exact single-def "Inline stloc first use temp" +; V29 tmp23 [V29,T15] ( 3, 1.66) ref -> r14 single-def "ISINST eval op1" +;* V30 tmp24 [V30,T29] ( 0, 0 ) int -> zero-ref "spilling qmarkNull" +;* V31 tmp25 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" ;* V32 tmp26 [V32 ] ( 0, 0 ) ref -> zero-ref ;* V33 tmp27 [V33 ] ( 0, 0 ) ref -> zero-ref -; V34 tmp28 [V34,T29] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" -; V35 tmp29 [V35,T04] ( 3, 4 ) int -> r12 "Single return block return value" -; V36 PInvokeFrame [V36 ] ( 3, 1.83) struct (64) [rbp-0x70] do-not-enreg[XS] addr-exposed "Pinvoke FrameVar" -; V37 tmp31 [V37 ] ( 3, 3 ) struct (16) [rbp-0x80] do-not-enreg[XS] addr-exposed "Reverse Pinvoke FrameVar" -; V38 tmp32 [V38,T26] ( 2, 0.77) ref -> r14 single-def "field V09.Item2 (fldOffset=0x0)" P-INDEP -; V39 tmp33 [V39,T27] ( 2, 0.77) int -> rbx "field V09.Item1 (fldOffset=0x8)" P-INDEP -; V40 tmp34 [V40,T23] ( 2, 0.83) ref -> r14 single-def "field V15.Item2 (fldOffset=0x0)" P-INDEP -; V41 tmp35 [V41,T24] ( 2, 0.83) int -> rbx "field V15.Item1 (fldOffset=0x8)" P-INDEP -; V42 tmp36 [V42,T25] ( 2, 0.83) long -> rdi "field V23._ptr (fldOffset=0x0)" P-INDEP -;* V43 tmp37 [V43 ] ( 0, 0 ) long -> zero-ref "field V24._ptr (fldOffset=0x0)" P-INDEP -; V44 tmp38 [V44,T30] ( 2, 0 ) ref -> rsi single-def "argument with side effect" -; V45 PSPSym [V45,T22] ( 1, 1 ) long -> [rbp-0xB0] do-not-enreg[V] "PSPSym" -;* V46 cse0 [V46,T21] ( 0, 0 ) byref -> zero-ref "CSE #02: moderate" -; V47 cse1 [V47,T15] ( 3, 1.56) int -> r12 "CSE #06: moderate" +;* V34 tmp28 [V34 ] ( 0, 0 ) ref -> zero-ref +; V35 tmp29 [V35,T30] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" +; V36 tmp30 [V36,T04] ( 3, 4 ) int -> r12 "Single return block return value" +; V37 PInvokeFrame [V37 ] ( 3, 1.83) struct (64) [rbp-0x70] do-not-enreg[XS] addr-exposed "Pinvoke FrameVar" +; V38 tmp32 [V38 ] ( 3, 3 ) struct (16) [rbp-0x80] do-not-enreg[XS] addr-exposed "Reverse Pinvoke FrameVar" +; V39 tmp33 [V39,T27] ( 2, 0.77) ref -> r14 single-def "field V09.Item2 (fldOffset=0x0)" P-INDEP +; V40 tmp34 [V40,T28] ( 2, 0.77) int -> rbx "field V09.Item1 (fldOffset=0x8)" P-INDEP +; V41 tmp35 [V41,T24] ( 2, 0.83) ref -> r14 single-def "field V15.Item2 (fldOffset=0x0)" P-INDEP +; V42 tmp36 [V42,T25] ( 2, 0.83) int -> rbx "field V15.Item1 (fldOffset=0x8)" P-INDEP +; V43 tmp37 [V43,T26] ( 2, 0.83) long -> rdi "field V24._ptr (fldOffset=0x0)" P-INDEP +;* V44 tmp38 [V44 ] ( 0, 0 ) long -> zero-ref "field V25._ptr (fldOffset=0x0)" P-INDEP +; V45 tmp39 [V45,T31] ( 2, 0 ) ref -> rsi single-def "argument with side effect" +; V46 PSPSym [V46,T23] ( 1, 1 ) long -> [rbp-0xB0] do-not-enreg[V] "PSPSym" +;* V47 cse0 [V47,T22] ( 0, 0 ) byref -> zero-ref "CSE #02: moderate" +; V48 cse1 [V48,T17] ( 3, 1.56) int -> r12 "CSE #06: moderate" ; TEMP_01 int -> [rbp-0x9C] ; TEMP_02 long -> [rbp-0xA4] ; ; Lcl frame size = 136 G_M16214_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 136 vzeroupper lea rbp, [rsp+0xB0] mov qword ptr [rbp-0xB0], rsp mov ebx, edi mov r15d, esi ;; size=40 bbWeight=1 PerfScore 9.25 G_M16214_IG02: lea rdi, [rbp-0x80] call CORINFO_HELP_JIT_REVERSE_PINVOKE_ENTER xor r14, r14 mov rsi, 0xD1FFAB1E ; global ptr test byte ptr [rsi], 1 je G_M16214_IG27 ;; size=31 bbWeight=1 PerfScore 6.00 G_M16214_IG03: mov rsi, 0xD1FFAB1E ; data for System.Runtime.InteropServices.PosixSignalRegistration:s_registrations mov rdi, gword ptr [rsi] mov gword ptr [rbp-0x90], rdi xor esi, esi mov dword ptr [rbp-0x30], esi ;; size=25 bbWeight=1 PerfScore 4.50 G_M16214_IG04: cmp byte ptr [rbp-0x30], 0 jne SHORT G_M16214_IG06 lea rsi, [rbp-0x30] call System.Threading.Monitor:ReliableEnter(System.Object,byref) mov rdi, 0xD1FFAB1E ; data for System.Runtime.InteropServices.PosixSignalRegistration:s_registrations mov rdi, gword ptr [rdi] cmp byte ptr [rdi], dil mov esi, ebx mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this call [rax]System.Collections.Generic.Dictionary`2[int,System.__Canon]:FindValue(int):byref:this test rax, rax je SHORT G_M16214_IG07 ;; size=50 bbWeight=1 PerfScore 14.50 G_M16214_IG05: mov r13, gword ptr [rax] mov r12d, dword ptr [r13+0x28] sub r12d, dword ptr [r13+0x30] movsxd rsi, r12d mov rdi, 0xD1FFAB1E ; System.Runtime.InteropServices.PosixSignalRegistration+Token[] call CORINFO_HELP_NEWARR_1_OBJ mov r14, rax mov ecx, r12d mov rdi, r13 mov rsi, r14 xor edx, edx mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.HashSet`1[System.__Canon]:CopyTo(System.__Canon[],int,int):this call [rax]System.Collections.Generic.HashSet`1[System.__Canon]:CopyTo(System.__Canon[],int,int):this jmp SHORT G_M16214_IG07 ;; size=57 bbWeight=0.52 PerfScore 7.80 G_M16214_IG06: mov rax, 0xD1FFAB1E ; code for System.Threading.Monitor:ThrowLockTakenException() call [rax]System.Threading.Monitor:ThrowLockTakenException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 G_M16214_IG07: cmp byte ptr [rbp-0x30], 0 je SHORT G_M16214_IG09 ;; size=6 bbWeight=1 PerfScore 3.00 G_M16214_IG08: mov rdi, gword ptr [rbp-0x90] call System.Threading.Monitor:Exit(System.Object) ;; size=12 bbWeight=0.52 PerfScore 1.04 G_M16214_IG09: mov gword ptr [rbp-0x88], r14 test r14, r14 je G_M16214_IG26 ;; size=16 bbWeight=1 PerfScore 2.25 G_M16214_IG10: add r15d, 4 cmp r15d, 2 ja G_M16214_IG23 ;; size=14 bbWeight=0.80 PerfScore 1.20 G_M16214_IG11: mov rdi, 0xD1FFAB1E ; data for System.Runtime.InteropServices.PosixSignalRegistration+<>O:<0>__HandleSignal mov r15, gword ptr [rdi] test r15, r15 jne SHORT G_M16214_IG13 ;; size=18 bbWeight=0.42 PerfScore 1.46 G_M16214_IG12: mov rdi, 0xD1FFAB1E ; System.Threading.ParameterizedThreadStart call CORINFO_HELP_NEWSFAST mov r15, rax lea rdi, bword ptr [r15+0x08] mov rsi, r15 call CORINFO_HELP_ASSIGN_REF mov rdi, 0xD1FFAB1E ; function address mov qword ptr [r15+0x18], rdi mov rdi, 0xD1FFAB1E ; code for System.Runtime.InteropServices.PosixSignalRegistration:g__HandleSignal|10_0(System.Object) mov qword ptr [r15+0x20], rdi mov rdi, 0xD1FFAB1E ; data for System.Runtime.InteropServices.PosixSignalRegistration+<>O:<0>__HandleSignal mov rsi, r15 call CORINFO_HELP_ASSIGN_REF ;; size=76 bbWeight=0.22 PerfScore 1.57 G_M16214_IG13: mov rdi, 0xD1FFAB1E ; System.Threading.Thread call CORINFO_HELP_NEWFAST mov r13, rax mov gword ptr [rbp-0x98], r13 - mov rdi, r13 + test r15, r15 + je G_M16214_IG28 + mov rdi, 0xD1FFAB1E ; System.Threading.Thread+StartHelper + call CORINFO_HELP_NEWSFAST + mov r12, rax + lea rdi, bword ptr [r12+0x08] mov rsi, r15 - mov rax, 0xD1FFAB1E ; code for System.Threading.Thread:.ctor(System.Threading.ParameterizedThreadStart):this - call [rax]System.Threading.Thread:.ctor(System.Threading.ParameterizedThreadStart):this + call CORINFO_HELP_ASSIGN_REF + lea rdi, bword ptr [r13+0x20] + mov rsi, r12 + call CORINFO_HELP_ASSIGN_REF + mov rdi, r13 + call System.Threading.Thread:Initialize():this mov rdi, r13 mov rax, 0xD1FFAB1E ; code for System.Threading.Thread:GetNativeHandle():System.Threading.ThreadHandle:this call [rax]System.Threading.Thread:GetNativeHandle():System.Threading.ThreadHandle:this mov rdi, rax mov qword ptr [rbp-0xA4], rdi mov esi, 1 mov dword ptr [rbp-0x9C], esi lea rdi, [rbp-0x70] - ;; size=83 bbWeight=0.42 PerfScore 5.30 + ;; size=125 bbWeight=0.42 PerfScore 6.86 G_M16214_IG14: call CORINFO_HELP_JIT_PINVOKE_BEGIN mov rax, 0xD1FFAB1E ; function address mov rdi, qword ptr [rbp-0xA4] mov esi, dword ptr [rbp-0x9C] ;; size=28 bbWeight=0.42 PerfScore 1.35 G_M16214_IG15: call rax ; System.Threading.Thread:SetIsBackground(System.Threading.ThreadHandle,int) lea rdi, [rbp-0x70] call CORINFO_HELP_JIT_PINVOKE_END mov r13, gword ptr [rbp-0x98] mov rdi, r13 mov rsi, 0xD1FFAB1E ; '.NET Signal Handler' mov rax, 0xD1FFAB1E ; code for System.Threading.Thread:set_Name(System.String):this call [rax]System.Threading.Thread:set_Name(System.String):this mov r14, gword ptr [rbp-0x88] mov rdi, 0xD1FFAB1E ; System.ValueTuple`2[int,System.Runtime.InteropServices.PosixSignalRegistration+Token[]] call CORINFO_HELP_NEWSFAST mov r15, rax lea rdi, bword ptr [r15+0x08] mov rsi, r14 call CORINFO_HELP_ASSIGN_REF mov dword ptr [r15+0x10], ebx mov rbx, gword ptr [r13+0x20] test rbx, rbx je SHORT G_M16214_IG18 ;; size=93 bbWeight=0.42 PerfScore 7.38 G_M16214_IG16: mov r14, gword ptr [rbx+0x08] test r14, r14 jne SHORT G_M16214_IG22 ;; size=9 bbWeight=0.33 PerfScore 1.08 G_M16214_IG17: lea rdi, bword ptr [rbx+0x10] mov rsi, r15 call CORINFO_HELP_ASSIGN_REF xor rdi, rdi mov gword ptr [rbx+0x28], rdi ;; size=18 bbWeight=0.33 PerfScore 1.00 G_M16214_IG18: mov rdi, r13 mov rax, 0xD1FFAB1E ; code for System.Threading.Thread:StartCore():this call [rax]System.Threading.Thread:StartCore():this ;; size=15 bbWeight=0.42 PerfScore 1.46 G_M16214_IG19: mov r12d, 1 ;; size=6 bbWeight=0.80 PerfScore 0.20 G_M16214_IG20: lea rdi, [rbp-0x80] call CORINFO_HELP_JIT_REVERSE_PINVOKE_EXIT mov eax, r12d ;; size=12 bbWeight=1 PerfScore 1.75 G_M16214_IG21: add rsp, 136 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=18 bbWeight=1 PerfScore 4.25 G_M16214_IG22: mov rdi, 0xD1FFAB1E ; System.Threading.ThreadStart cmp qword ptr [r14], rdi - je G_M16214_IG28 + je G_M16214_IG29 jmp SHORT G_M16214_IG17 ;; size=21 bbWeight=0.17 PerfScore 1.04 G_M16214_IG23: mov rdi, 0xD1FFAB1E ; data for System.Runtime.InteropServices.PosixSignalRegistration+<>O:<1>__HandleSignal mov r15, gword ptr [rdi] test r15, r15 jne SHORT G_M16214_IG25 ;; size=18 bbWeight=0.38 PerfScore 1.34 G_M16214_IG24: mov rdi, 0xD1FFAB1E ; System.Threading.WaitCallback call CORINFO_HELP_NEWSFAST mov r15, rax lea rdi, bword ptr [r15+0x08] mov rsi, r15 call CORINFO_HELP_ASSIGN_REF mov rdi, 0xD1FFAB1E ; function address mov qword ptr [r15+0x18], rdi mov rdi, 0xD1FFAB1E ; code for System.Runtime.InteropServices.PosixSignalRegistration:g__HandleSignal|10_0(System.Object) mov qword ptr [r15+0x20], rdi mov rdi, 0xD1FFAB1E ; data for System.Runtime.InteropServices.PosixSignalRegistration+<>O:<1>__HandleSignal mov rsi, r15 call CORINFO_HELP_ASSIGN_REF ;; size=76 bbWeight=0.20 PerfScore 1.45 G_M16214_IG25: mov r14, gword ptr [rbp-0x88] mov rdi, 0xD1FFAB1E ; System.ValueTuple`2[int,System.Runtime.InteropServices.PosixSignalRegistration+Token[]] call CORINFO_HELP_NEWSFAST mov r13, rax lea rdi, bword ptr [r13+0x08] mov rsi, r14 call CORINFO_HELP_ASSIGN_REF mov dword ptr [r13+0x10], ebx mov rsi, r13 mov rdi, r15 mov rax, 0xD1FFAB1E ; code for System.Threading.ThreadPool:UnsafeQueueUserWorkItem(System.Threading.WaitCallback,System.Object):ubyte call [rax]System.Threading.ThreadPool:UnsafeQueueUserWorkItem(System.Threading.WaitCallback,System.Object):ubyte jmp G_M16214_IG19 ;; size=64 bbWeight=0.38 PerfScore 4.22 G_M16214_IG26: xor r12d, r12d jmp G_M16214_IG20 ;; size=8 bbWeight=0.20 PerfScore 0.45 G_M16214_IG27: mov rdi, 0xD1FFAB1E ; System.Runtime.InteropServices.PosixSignalRegistration call CORINFO_HELP_GET_GCSTATIC_BASE jmp G_M16214_IG03 ;; size=20 bbWeight=0 PerfScore 0.00 G_M16214_IG28: + mov edi, 0x134EC + mov rsi, 0xD1FFAB1E + call CORINFO_HELP_STRCNS + mov rdi, rax + mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:Throw(System.String) + call [rax]System.ArgumentNullException:Throw(System.String) + int3 + ;; size=36 bbWeight=0 PerfScore 0.00 +G_M16214_IG29: mov rdi, 0xD1FFAB1E ; System.InvalidOperationException call CORINFO_HELP_NEWSFAST mov rbx, rax mov rax, 0xD1FFAB1E ; code for System.SR:get_InvalidOperation_ThreadWrongThreadStart():System.String call [rax]System.SR:get_InvalidOperation_ThreadWrongThreadStart():System.String mov rsi, rax mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.InvalidOperationException:.ctor(System.String):this call [rax]System.InvalidOperationException:.ctor(System.String):this mov rdi, rbx call CORINFO_HELP_THROW int3 ;; size=57 bbWeight=0 PerfScore 0.00 -G_M16214_IG29: +G_M16214_IG30: push rbp push r15 push r14 push r13 push r12 push rbx push rax vzeroupper mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0xB0] ;; size=28 bbWeight=0 PerfScore 0.00 -G_M16214_IG30: +G_M16214_IG31: cmp byte ptr [rbp-0x30], 0 - je SHORT G_M16214_IG31 + je SHORT G_M16214_IG32 mov rdi, gword ptr [rbp-0x90] call System.Threading.Monitor:Exit(System.Object) ;; size=18 bbWeight=0 PerfScore 0.00 -G_M16214_IG31: +G_M16214_IG32: nop ;; size=1 bbWeight=0 PerfScore 0.00 -G_M16214_IG32: +G_M16214_IG33: add rsp, 8 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0 PerfScore 0.00 -; Total bytes of code 966, prolog size 40, PerfScore 84.85, instruction count 216, allocated bytes for code 966 (MethodHash=a627c0a9) for method System.Runtime.InteropServices.PosixSignalRegistration:OnPosixSignal(int,int):int (FullOpts) +; Total bytes of code 1044, prolog size 40, PerfScore 86.41, instruction count 232, allocated bytes for code 1044 (MethodHash=a627c0a9) for method System.Runtime.InteropServices.PosixSignalRegistration:OnPosixSignal(int,int):int (FullOpts) ```

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

MihuBot commented 1 month ago

Top method improvements

-59 (-45.38 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this ```diff ; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; Tier0 code ; rbp based frame ; partially interruptible ; Final local variable assignments ; ; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd ; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[] ; V02 arg2 [V02 ] ( 1, 1 ) struct ( 8) [rbp-0x18] do-not-enreg[S] ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 tmp1 [V04 ] ( 1, 1 ) ref -> [rbp-0x20] do-not-enreg[] must-init "Reusable Box Helper" ; ; Lcl frame size = 32 G_M2528_IG01: push rbp sub rsp, 32 lea rbp, [rsp+0x20] xor eax, eax mov qword ptr [rbp-0x20], rax mov gword ptr [rbp-0x08], rdi vmovsd qword ptr [rbp-0x10], xmm0 mov qword ptr [rbp-0x18], rsi ;; size=29 bbWeight=1 PerfScore 6.00 G_M2528_IG02: - mov rdi, 0xD1FFAB1E ; System.Double - call CORINFO_HELP_NEWSFAST - mov gword ptr [rbp-0x20], rax - mov rax, gword ptr [rbp-0x20] - vmovsd xmm0, qword ptr [rbp-0x10] - vmovsd qword ptr [rax+0x08], xmm0 - mov rdi, gword ptr [rbp-0x20] - mov rsi, 0xD1FFAB1E ; 'key' - mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String) - call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String) mov rdi, gword ptr [rbp-0x08] mov rdx, qword ptr [rbp-0x18] vmovsd xmm0, qword ptr [rbp-0x10] mov esi, -1 mov ecx, 2 mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this nop - ;; size=95 bbWeight=1 PerfScore 21.75 + ;; size=36 bbWeight=1 PerfScore 9.00 G_M2528_IG03: add rsp, 32 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 -; Total bytes of code 130, prolog size 16, PerfScore 29.50, instruction count 29, allocated bytes for code 130 (MethodHash=d20cf61f) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0) +; Total bytes of code 71, prolog size 16, PerfScore 16.75, instruction count 19, allocated bytes for code 71 (MethodHash=d20cf61f) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0) ```
-59 (-47.20 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this ```diff ; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this (Tier0) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; Tier0 code ; rbp based frame ; partially interruptible ; Final local variable assignments ; ; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd ; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[] ; V02 loc0 [V02 ] ( 1, 1 ) int -> [rbp-0x18] do-not-enreg[X] addr-exposed ld-addr-op ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 tmp1 [V04 ] ( 1, 1 ) ref -> [rbp-0x20] do-not-enreg[] must-init "Reusable Box Helper" ; ; Lcl frame size = 32 G_M1197_IG01: push rbp sub rsp, 32 lea rbp, [rsp+0x20] xor eax, eax mov qword ptr [rbp-0x20], rax mov gword ptr [rbp-0x08], rdi vmovsd qword ptr [rbp-0x10], xmm0 ;; size=25 bbWeight=1 PerfScore 5.00 G_M1197_IG02: - mov rdi, 0xD1FFAB1E ; System.Double - call CORINFO_HELP_NEWSFAST - mov gword ptr [rbp-0x20], rax - mov rax, gword ptr [rbp-0x20] - vmovsd xmm0, qword ptr [rbp-0x10] - vmovsd qword ptr [rax+0x08], xmm0 - mov rdi, gword ptr [rbp-0x20] - mov rsi, 0xD1FFAB1E ; 'key' - mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String) - call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String) xor eax, eax mov dword ptr [rbp-0x18], eax lea rsi, [rbp-0x18] lea rdx, [rbp-0x18] mov rdi, gword ptr [rbp-0x08] vmovsd xmm0, qword ptr [rbp-0x10] mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double,byref,byref):int:this call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double,byref,byref):int:this nop - ;; size=94 bbWeight=1 PerfScore 22.50 + ;; size=35 bbWeight=1 PerfScore 9.75 G_M1197_IG03: add rsp, 32 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 -; Total bytes of code 125, prolog size 16, PerfScore 29.25, instruction count 29, allocated bytes for code 125 (MethodHash=654cfb52) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this (Tier0) +; Total bytes of code 66, prolog size 16, PerfScore 16.50, instruction count 19, allocated bytes for code 66 (MethodHash=654cfb52) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this (Tier0) ```
-59 (-38.06 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Insert(int,double,System.Nullable`1[int]):this ```diff ; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Insert(int,double,System.Nullable`1[int]):this (Tier0) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; Tier0 code ; rbp based frame ; partially interruptible ; Final local variable assignments ; ; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd ; V01 arg1 [V01 ] ( 1, 1 ) int -> [rbp-0x0C] do-not-enreg[] ; V02 arg2 [V02 ] ( 1, 1 ) double -> [rbp-0x18] do-not-enreg[] ; V03 arg3 [V03 ] ( 1, 1 ) struct ( 8) [rbp-0x20] do-not-enreg[S] ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V05 tmp1 [V05 ] ( 1, 1 ) ref -> [rbp-0x28] do-not-enreg[] must-init "Reusable Box Helper" ; ; Lcl frame size = 48 G_M61129_IG01: push rbp sub rsp, 48 lea rbp, [rsp+0x30] xor eax, eax mov qword ptr [rbp-0x28], rax mov gword ptr [rbp-0x08], rdi mov dword ptr [rbp-0x0C], esi vmovsd qword ptr [rbp-0x18], xmm0 mov qword ptr [rbp-0x20], rdx ;; size=32 bbWeight=1 PerfScore 7.00 G_M61129_IG02: mov eax, dword ptr [rbp-0x0C] mov rcx, gword ptr [rbp-0x08] cmp eax, dword ptr [rcx+0x38] jbe SHORT G_M61129_IG03 mov rax, 0xD1FFAB1E ; code for System.Collections.ThrowHelper:ThrowIndexArgumentOutOfRange() call [rax]System.Collections.ThrowHelper:ThrowIndexArgumentOutOfRange() ;; size=24 bbWeight=1 PerfScore 9.25 G_M61129_IG03: - mov rdi, 0xD1FFAB1E ; System.Double - call CORINFO_HELP_NEWSFAST - mov gword ptr [rbp-0x28], rax - mov rax, gword ptr [rbp-0x28] - vmovsd xmm0, qword ptr [rbp-0x18] - vmovsd qword ptr [rax+0x08], xmm0 - mov rdi, gword ptr [rbp-0x28] - mov rsi, 0xD1FFAB1E ; 'key' - mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String) - call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String) mov rdi, gword ptr [rbp-0x08] mov esi, dword ptr [rbp-0x0C] vmovsd xmm0, qword ptr [rbp-0x18] mov rdx, qword ptr [rbp-0x20] mov ecx, 2 mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this nop - ;; size=93 bbWeight=1 PerfScore 22.50 + ;; size=34 bbWeight=1 PerfScore 9.75 G_M61129_IG04: add rsp, 48 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 -; Total bytes of code 155, prolog size 16, PerfScore 40.50, instruction count 36, allocated bytes for code 155 (MethodHash=91e81136) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Insert(int,double,System.Nullable`1[int]):this (Tier0) +; Total bytes of code 96, prolog size 16, PerfScore 27.75, instruction count 26, allocated bytes for code 96 (MethodHash=91e81136) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Insert(int,double,System.Nullable`1[int]):this (Tier0) ```
-59 (-28.23 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Remove(double,byref):ubyte:this ```diff ; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Remove(double,byref):ubyte:this (Tier0) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; Tier0 code ; rbp based frame ; partially interruptible ; Final local variable assignments ; ; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd ; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[] ; V02 arg2 [V02 ] ( 1, 1 ) byref -> [rbp-0x18] do-not-enreg[] ; V03 loc0 [V03 ] ( 1, 1 ) int -> [rbp-0x1C] do-not-enreg[] ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V05 tmp1 [V05 ] ( 1, 1 ) ref -> [rbp-0x28] do-not-enreg[] must-init "Reusable Box Helper" ; ; Lcl frame size = 48 G_M50550_IG01: push rbp sub rsp, 48 lea rbp, [rsp+0x30] xor eax, eax mov qword ptr [rbp-0x28], rax mov gword ptr [rbp-0x08], rdi vmovsd qword ptr [rbp-0x10], xmm0 mov bword ptr [rbp-0x18], rsi ;; size=29 bbWeight=1 PerfScore 6.00 G_M50550_IG02: - mov rdi, 0xD1FFAB1E ; System.Double - call CORINFO_HELP_NEWSFAST - mov gword ptr [rbp-0x28], rax - mov rax, gword ptr [rbp-0x28] - vmovsd xmm0, qword ptr [rbp-0x10] - vmovsd qword ptr [rax+0x08], xmm0 - mov rdi, gword ptr [rbp-0x28] - mov rsi, 0xD1FFAB1E ; 'key' - mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String) - call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String) mov rdi, gword ptr [rbp-0x08] vmovsd xmm0, qword ptr [rbp-0x10] mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this mov dword ptr [rbp-0x1C], eax cmp dword ptr [rbp-0x1C], 0 jl SHORT G_M50550_IG04 mov rax, gword ptr [rbp-0x08] mov rax, gword ptr [rax+0x18] mov ecx, dword ptr [rbp-0x1C] cmp ecx, dword ptr [rax+0x08] jae SHORT G_M50550_IG06 mov edx, ecx imul rdx, rdx, 24 lea rax, bword ptr [rax+rdx+0x10] mov rcx, bword ptr [rbp-0x18] mov rdx, qword ptr [rax+0x10] mov qword ptr [rcx], rdx mov rdi, gword ptr [rbp-0x08] mov esi, dword ptr [rbp-0x1C] mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:RemoveAt(int):this call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:RemoveAt(int):this mov eax, 1 - ;; size=151 bbWeight=1 PerfScore 44.75 + ;; size=92 bbWeight=1 PerfScore 32.00 G_M50550_IG03: add rsp, 48 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 G_M50550_IG04: mov rax, bword ptr [rbp-0x18] xor ecx, ecx mov qword ptr [rax], rcx xor eax, eax ;; size=11 bbWeight=1 PerfScore 2.50 G_M50550_IG05: add rsp, 48 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 G_M50550_IG06: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 -; Total bytes of code 209, prolog size 16, PerfScore 56.75, instruction count 53, allocated bytes for code 209 (MethodHash=70e43a89) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Remove(double,byref):ubyte:this (Tier0) +; Total bytes of code 150, prolog size 16, PerfScore 44.00, instruction count 43, allocated bytes for code 150 (MethodHash=70e43a89) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:Remove(double,byref):ubyte:this (Tier0) ```
-59 (-45.38 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:set_Item(double,System.Nullable`1[int]):this ```diff ; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:set_Item(double,System.Nullable`1[int]):this (Tier0) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; Tier0 code ; rbp based frame ; partially interruptible ; Final local variable assignments ; ; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd ; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[] ; V02 arg2 [V02 ] ( 1, 1 ) struct ( 8) [rbp-0x18] do-not-enreg[S] ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 tmp1 [V04 ] ( 1, 1 ) ref -> [rbp-0x20] do-not-enreg[] must-init "Reusable Box Helper" ; ; Lcl frame size = 32 G_M35017_IG01: push rbp sub rsp, 32 lea rbp, [rsp+0x20] xor eax, eax mov qword ptr [rbp-0x20], rax mov gword ptr [rbp-0x08], rdi vmovsd qword ptr [rbp-0x10], xmm0 mov qword ptr [rbp-0x18], rsi ;; size=29 bbWeight=1 PerfScore 6.00 G_M35017_IG02: - mov rdi, 0xD1FFAB1E ; System.Double - call CORINFO_HELP_NEWSFAST - mov gword ptr [rbp-0x20], rax - mov rax, gword ptr [rbp-0x20] - vmovsd xmm0, qword ptr [rbp-0x10] - vmovsd qword ptr [rax+0x08], xmm0 - mov rdi, gword ptr [rbp-0x20] - mov rsi, 0xD1FFAB1E ; 'key' - mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String) - call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String) mov rdi, gword ptr [rbp-0x08] mov rdx, qword ptr [rbp-0x18] vmovsd xmm0, qword ptr [rbp-0x10] mov esi, -1 mov ecx, 1 mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this nop - ;; size=95 bbWeight=1 PerfScore 21.75 + ;; size=36 bbWeight=1 PerfScore 9.00 G_M35017_IG03: add rsp, 32 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 -; Total bytes of code 130, prolog size 16, PerfScore 29.50, instruction count 29, allocated bytes for code 130 (MethodHash=bbc07736) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:set_Item(double,System.Nullable`1[int]):this (Tier0) +; Total bytes of code 71, prolog size 16, PerfScore 16.75, instruction count 19, allocated bytes for code 71 (MethodHash=bbc07736) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:set_Item(double,System.Nullable`1[int]):this (Tier0) ```
-59 (-12.22 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:SetAt(int,double,System.Nullable`1[int]):this ```diff ; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:SetAt(int,double,System.Nullable`1[int]):this (Tier0) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; Tier0 code ; rbp based frame ; partially interruptible ; Final local variable assignments ; ; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd ; V01 arg1 [V01 ] ( 1, 1 ) int -> [rbp-0x0C] do-not-enreg[] ; V02 arg2 [V02 ] ( 1, 1 ) double -> [rbp-0x18] do-not-enreg[] ; V03 arg3 [V03 ] ( 1, 1 ) struct ( 8) [rbp-0x20] do-not-enreg[S] ; V04 loc0 [V04 ] ( 1, 1 ) byref -> [rbp-0x28] do-not-enreg[] must-init ; V05 loc1 [V05 ] ( 1, 1 ) int -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op ; V06 loc2 [V06 ] ( 1, 1 ) int -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op ;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [rbp-0x40] do-not-enreg[] must-init "Reusable Box Helper" ; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [rbp-0x48] do-not-enreg[] must-init "argument with side effect" ; ; Lcl frame size = 80 G_M37961_IG01: push rbp sub rsp, 80 lea rbp, [rsp+0x50] xor eax, eax mov qword ptr [rbp-0x48], rax vxorps xmm8, xmm8, xmm8 vmovdqu ymmword ptr [rbp-0x40], ymm8 mov gword ptr [rbp-0x08], rdi mov dword ptr [rbp-0x0C], esi vmovsd qword ptr [rbp-0x18], xmm0 mov qword ptr [rbp-0x20], rdx ;; size=42 bbWeight=1 PerfScore 9.33 G_M37961_IG02: mov eax, dword ptr [rbp-0x0C] mov rcx, gword ptr [rbp-0x08] cmp eax, dword ptr [rcx+0x38] jb SHORT G_M37961_IG03 mov rax, 0xD1FFAB1E ; code for System.Collections.ThrowHelper:ThrowIndexArgumentOutOfRange() call [rax]System.Collections.ThrowHelper:ThrowIndexArgumentOutOfRange() ;; size=24 bbWeight=1 PerfScore 9.25 G_M37961_IG03: - mov rdi, 0xD1FFAB1E ; System.Double - call CORINFO_HELP_NEWSFAST - mov gword ptr [rbp-0x40], rax - mov rax, gword ptr [rbp-0x40] - vmovsd xmm0, qword ptr [rbp-0x18] - vmovsd qword ptr [rax+0x08], xmm0 - mov rdi, gword ptr [rbp-0x40] - mov rsi, 0xD1FFAB1E ; 'key' - mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String) - call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String) mov rax, gword ptr [rbp-0x08] mov rax, gword ptr [rax+0x18] mov ecx, dword ptr [rbp-0x0C] cmp ecx, dword ptr [rax+0x08] jae G_M37961_IG10 mov edx, ecx imul rdx, rdx, 24 lea rax, bword ptr [rax+rdx+0x10] mov bword ptr [rbp-0x28], rax mov rax, gword ptr [rbp-0x08] cmp gword ptr [rax+0x08], 0 jne SHORT G_M37961_IG05 mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.EqualityComparer`1[double]:get_Default():System.Collections.Generic.EqualityComparer`1[double] call [rax]System.Collections.Generic.EqualityComparer`1[double]:get_Default():System.Collections.Generic.EqualityComparer`1[double] mov gword ptr [rbp-0x48], rax mov rdi, gword ptr [rbp-0x48] mov rax, bword ptr [rbp-0x28] vmovsd xmm1, qword ptr [rax+0x08] vmovsd xmm0, qword ptr [rbp-0x18] mov rax, gword ptr [rbp-0x48] mov rax, qword ptr [rax] mov rax, qword ptr [rax+0x40] call [rax+0x20]System.Collections.Generic.EqualityComparer`1[double]:Equals(double,double):ubyte:this test eax, eax je SHORT G_M37961_IG07 mov rax, bword ptr [rbp-0x28] mov rcx, qword ptr [rbp-0x20] mov qword ptr [rax+0x10], rcx - ;; size=169 bbWeight=1 PerfScore 55.50 + ;; size=110 bbWeight=1 PerfScore 42.75 G_M37961_IG04: add rsp, 80 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 G_M37961_IG05: mov rax, gword ptr [rbp-0x08] mov rdi, gword ptr [rax+0x08] mov rax, bword ptr [rbp-0x28] vmovsd xmm1, qword ptr [rax+0x08] vmovsd xmm0, qword ptr [rbp-0x18] mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.IEqualityComparer`1[double]:Equals(double,double):ubyte:this call [r11]System.Collections.Generic.IEqualityComparer`1[double]:Equals(double,double):ubyte:this test eax, eax je SHORT G_M37961_IG07 mov rax, bword ptr [rbp-0x28] mov rcx, qword ptr [rbp-0x20] mov qword ptr [rax+0x10], rcx ;; size=51 bbWeight=1 PerfScore 18.50 G_M37961_IG06: add rsp, 80 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 G_M37961_IG07: xor eax, eax mov dword ptr [rbp-0x30], eax xor eax, eax mov dword ptr [rbp-0x38], eax lea rsi, [rbp-0x30] lea rdx, [rbp-0x38] mov rdi, gword ptr [rbp-0x08] vmovsd xmm0, qword ptr [rbp-0x18] mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double,byref,byref):int:this call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double,byref,byref):int:this test eax, eax jl SHORT G_M37961_IG08 vmovsd xmm0, qword ptr [rbp-0x18] mov rax, 0xD1FFAB1E ; code for System.Collections.ThrowHelper:ThrowDuplicateKey[double](double) call [rax]System.Collections.ThrowHelper:ThrowDuplicateKey[double](double) ;; size=60 bbWeight=1 PerfScore 18.25 G_M37961_IG08: mov rdi, gword ptr [rbp-0x08] mov esi, dword ptr [rbp-0x0C] mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:RemoveEntryFromBucket(int):this call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:RemoveEntryFromBucket(int):this mov rax, bword ptr [rbp-0x28] mov ecx, dword ptr [rbp-0x30] mov dword ptr [rax+0x04], ecx mov rax, bword ptr [rbp-0x28] vmovsd xmm0, qword ptr [rbp-0x18] vmovsd qword ptr [rax+0x08], xmm0 mov rax, bword ptr [rbp-0x28] mov rcx, qword ptr [rbp-0x20] mov qword ptr [rax+0x10], rcx mov rdi, gword ptr [rbp-0x08] mov rsi, bword ptr [rbp-0x28] mov edx, dword ptr [rbp-0x0C] mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:PushEntryIntoBucket(byref,int):this call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:PushEntryIntoBucket(byref,int):this mov rax, gword ptr [rbp-0x08] inc dword ptr [rax+0x3C] mov rax, gword ptr [rbp-0x08] mov rdx, gword ptr [rax+0x18] mov rdi, gword ptr [rbp-0x08] mov esi, dword ptr [rbp-0x38] mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:RehashIfNecessary(uint,System.Collections.Generic.OrderedDictionary`2+Entry[double,System.Nullable`1[int]][]):this call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:RehashIfNecessary(uint,System.Collections.Generic.OrderedDictionary`2+Entry[double,System.Nullable`1[int]][]):this nop ;; size=113 bbWeight=1 PerfScore 36.00 G_M37961_IG09: add rsp, 80 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 G_M37961_IG10: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 -; Total bytes of code 483, prolog size 26, PerfScore 152.08, instruction count 120, allocated bytes for code 483 (MethodHash=ed356bb6) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:SetAt(int,double,System.Nullable`1[int]):this (Tier0) +; Total bytes of code 424, prolog size 26, PerfScore 139.33, instruction count 110, allocated bytes for code 424 (MethodHash=ed356bb6) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:SetAt(int,double,System.Nullable`1[int]):this (Tier0) ```
-59 (-46.46 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryAdd(double,System.Nullable`1[int]):ubyte:this ```diff ; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryAdd(double,System.Nullable`1[int]):ubyte:this (Tier0) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; Tier0 code ; rbp based frame ; partially interruptible ; Final local variable assignments ; ; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd ; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[] ; V02 arg2 [V02 ] ( 1, 1 ) struct ( 8) [rbp-0x18] do-not-enreg[S] ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 tmp1 [V04 ] ( 1, 1 ) ref -> [rbp-0x20] do-not-enreg[] must-init "Reusable Box Helper" ; ; Lcl frame size = 32 G_M42298_IG01: push rbp sub rsp, 32 lea rbp, [rsp+0x20] xor eax, eax mov qword ptr [rbp-0x20], rax mov gword ptr [rbp-0x08], rdi vmovsd qword ptr [rbp-0x10], xmm0 mov qword ptr [rbp-0x18], rsi ;; size=29 bbWeight=1 PerfScore 6.00 G_M42298_IG02: - mov rdi, 0xD1FFAB1E ; System.Double - call CORINFO_HELP_NEWSFAST - mov gword ptr [rbp-0x20], rax - mov rax, gword ptr [rbp-0x20] - vmovsd xmm0, qword ptr [rbp-0x10] - vmovsd qword ptr [rax+0x08], xmm0 - mov rdi, gword ptr [rbp-0x20] - mov rsi, 0xD1FFAB1E ; 'key' - mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String) - call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String) mov rdi, gword ptr [rbp-0x08] mov rdx, qword ptr [rbp-0x18] vmovsd xmm0, qword ptr [rbp-0x10] mov esi, -1 xor ecx, ecx mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryInsert(int,double,System.Nullable`1[int],int):ubyte:this nop - ;; size=92 bbWeight=1 PerfScore 21.75 + ;; size=33 bbWeight=1 PerfScore 9.00 G_M42298_IG03: add rsp, 32 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 -; Total bytes of code 127, prolog size 16, PerfScore 29.50, instruction count 29, allocated bytes for code 127 (MethodHash=72125ac5) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryAdd(double,System.Nullable`1[int]):ubyte:this (Tier0) +; Total bytes of code 68, prolog size 16, PerfScore 16.75, instruction count 19, allocated bytes for code 68 (MethodHash=72125ac5) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryAdd(double,System.Nullable`1[int]):ubyte:this (Tier0) ```
-59 (-31.05 % of base) - System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this ```diff ; Assembly listing for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Tier0) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; Tier0 code ; rbp based frame ; partially interruptible ; Final local variable assignments ; ; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd ; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[] ; V02 arg2 [V02 ] ( 1, 1 ) byref -> [rbp-0x18] do-not-enreg[] ; V03 loc0 [V03 ] ( 1, 1 ) int -> [rbp-0x1C] do-not-enreg[] ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V05 tmp1 [V05 ] ( 1, 1 ) ref -> [rbp-0x28] do-not-enreg[] must-init "Reusable Box Helper" ; ; Lcl frame size = 48 G_M4178_IG01: push rbp sub rsp, 48 lea rbp, [rsp+0x30] xor eax, eax mov qword ptr [rbp-0x28], rax mov gword ptr [rbp-0x08], rdi vmovsd qword ptr [rbp-0x10], xmm0 mov bword ptr [rbp-0x18], rsi ;; size=29 bbWeight=1 PerfScore 6.00 G_M4178_IG02: - mov rdi, 0xD1FFAB1E ; System.Double - call CORINFO_HELP_NEWSFAST - mov gword ptr [rbp-0x28], rax - mov rax, gword ptr [rbp-0x28] - vmovsd xmm0, qword ptr [rbp-0x10] - vmovsd qword ptr [rax+0x08], xmm0 - mov rdi, gword ptr [rbp-0x28] - mov rsi, 0xD1FFAB1E ; 'key' - mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String) - call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String) mov rdi, gword ptr [rbp-0x08] vmovsd xmm0, qword ptr [rbp-0x10] mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this call [rax]System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:IndexOf(double):int:this mov dword ptr [rbp-0x1C], eax cmp dword ptr [rbp-0x1C], 0 jl SHORT G_M4178_IG04 mov rax, gword ptr [rbp-0x08] mov rax, gword ptr [rax+0x18] mov ecx, dword ptr [rbp-0x1C] cmp ecx, dword ptr [rax+0x08] jae SHORT G_M4178_IG06 mov edx, ecx imul rdx, rdx, 24 lea rax, bword ptr [rax+rdx+0x10] mov rcx, bword ptr [rbp-0x18] mov rdx, qword ptr [rax+0x10] mov qword ptr [rcx], rdx mov eax, 1 - ;; size=132 bbWeight=1 PerfScore 39.50 + ;; size=73 bbWeight=1 PerfScore 26.75 G_M4178_IG03: add rsp, 48 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 G_M4178_IG04: mov rax, bword ptr [rbp-0x18] xor ecx, ecx mov qword ptr [rax], rcx xor eax, eax ;; size=11 bbWeight=1 PerfScore 2.50 G_M4178_IG05: add rsp, 48 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 G_M4178_IG06: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 -; Total bytes of code 190, prolog size 16, PerfScore 51.50, instruction count 49, allocated bytes for code 190 (MethodHash=4854efad) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Tier0) +; Total bytes of code 131, prolog size 16, PerfScore 38.75, instruction count 39, allocated bytes for code 131 (MethodHash=4854efad) for method System.Collections.Generic.OrderedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Tier0) ```
-59 (-34.30 % of base) - System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this ```diff ; Assembly listing for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; Tier0 code ; rbp based frame ; partially interruptible ; Final local variable assignments ; ; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd ; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[] ; V02 arg2 [V02 ] ( 1, 1 ) struct ( 8) [rbp-0x18] do-not-enreg[S] ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 tmp1 [V04 ] ( 1, 1 ) ref -> [rbp-0x20] do-not-enreg[] must-init "Reusable Box Helper" ; V05 tmp2 [V05 ] ( 1, 1 ) struct (16) [rbp-0x30] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op "NewObj constructor temp" ; V06 tmp3 [V06 ] ( 1, 1 ) ref -> [rbp-0x38] do-not-enreg[] must-init class-hnd exact "impAppendStmt" ; ; Lcl frame size = 64 G_M62164_IG01: push rbp sub rsp, 64 lea rbp, [rsp+0x40] xor eax, eax mov qword ptr [rbp-0x20], rax mov qword ptr [rbp-0x38], rax mov gword ptr [rbp-0x08], rdi vmovsd qword ptr [rbp-0x10], xmm0 mov qword ptr [rbp-0x18], rsi ;; size=33 bbWeight=1 PerfScore 7.00 G_M62164_IG02: - mov rdi, 0xD1FFAB1E ; System.Double - call CORINFO_HELP_NEWSFAST - mov gword ptr [rbp-0x20], rax - mov rax, gword ptr [rbp-0x20] - vmovsd xmm0, qword ptr [rbp-0x10] - vmovsd qword ptr [rax+0x08], xmm0 - mov rdi, gword ptr [rbp-0x20] - mov rsi, 0xD1FFAB1E ; 'key' - mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String) - call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String) vxorps xmm0, xmm0, xmm0 vmovups xmmword ptr [rbp-0x30], xmm0 mov rax, gword ptr [rbp-0x08] mov rax, gword ptr [rax+0x18] mov gword ptr [rbp-0x38], rax lea rdi, [rbp-0x30] vmovsd xmm0, qword ptr [rbp-0x10] mov rsi, qword ptr [rbp-0x18] mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this call [rax]System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this vmovsd xmm0, qword ptr [rbp-0x30] mov rsi, qword ptr [rbp-0x28] mov rdi, gword ptr [rbp-0x38] mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.SortedSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:Add(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):ubyte:this cmp dword ptr [rdi], edi call [rax]System.Collections.Generic.SortedSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:Add(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):ubyte:this nop - ;; size=133 bbWeight=1 PerfScore 37.33 + ;; size=74 bbWeight=1 PerfScore 24.58 G_M62164_IG03: add rsp, 64 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 -; Total bytes of code 172, prolog size 20, PerfScore 46.08, instruction count 39, allocated bytes for code 172 (MethodHash=82300d2b) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0) +; Total bytes of code 113, prolog size 20, PerfScore 33.33, instruction count 29, allocated bytes for code 113 (MethodHash=82300d2b) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0) ```
-59 (-33.91 % of base) - System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:ContainsKey(double):ubyte:this ```diff ; Assembly listing for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:ContainsKey(double):ubyte:this (Tier0) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; Tier0 code ; rbp based frame ; partially interruptible ; Final local variable assignments ; ; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd ; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[] ; V02 loc0 [V02 ] ( 1, 1 ) struct ( 8) [rbp-0x18] do-not-enreg[S] ld-addr-op ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 tmp1 [V04 ] ( 1, 1 ) ref -> [rbp-0x20] do-not-enreg[] must-init "Reusable Box Helper" ; V05 tmp2 [V05 ] ( 1, 1 ) ref -> [rbp-0x28] do-not-enreg[] must-init class-hnd exact "impAppendStmt" ; V06 tmp3 [V06 ] ( 1, 1 ) struct (16) [rbp-0x38] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op "NewObj constructor temp" ; ; Lcl frame size = 64 G_M13622_IG01: push rbp sub rsp, 64 lea rbp, [rsp+0x40] xor eax, eax mov qword ptr [rbp-0x20], rax mov qword ptr [rbp-0x28], rax mov gword ptr [rbp-0x08], rdi vmovsd qword ptr [rbp-0x10], xmm0 ;; size=29 bbWeight=1 PerfScore 6.00 G_M13622_IG02: - mov rdi, 0xD1FFAB1E ; System.Double - call CORINFO_HELP_NEWSFAST - mov gword ptr [rbp-0x20], rax - mov rax, gword ptr [rbp-0x20] - vmovsd xmm0, qword ptr [rbp-0x10] - vmovsd qword ptr [rax+0x08], xmm0 - mov rdi, gword ptr [rbp-0x20] - mov rsi, 0xD1FFAB1E ; 'key' - mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String) - call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String) mov rax, gword ptr [rbp-0x08] mov rax, gword ptr [rax+0x18] mov gword ptr [rbp-0x28], rax xor eax, eax mov qword ptr [rbp-0x18], rax vxorps xmm0, xmm0, xmm0 vmovups xmmword ptr [rbp-0x38], xmm0 lea rdi, [rbp-0x38] vmovsd xmm0, qword ptr [rbp-0x10] mov rsi, qword ptr [rbp-0x18] mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this call [rax]System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this vmovsd xmm0, qword ptr [rbp-0x38] mov rsi, qword ptr [rbp-0x30] mov rdi, gword ptr [rbp-0x28] mov rax, gword ptr [rbp-0x28] mov rax, qword ptr [rax] mov rax, qword ptr [rax+0x50] call [rax+0x18]System.Collections.Generic.SortedSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:Contains(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):ubyte:this nop - ;; size=139 bbWeight=1 PerfScore 40.33 + ;; size=80 bbWeight=1 PerfScore 27.58 G_M13622_IG03: add rsp, 64 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 -; Total bytes of code 174, prolog size 20, PerfScore 48.08, instruction count 41, allocated bytes for code 174 (MethodHash=c2bacac9) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:ContainsKey(double):ubyte:this (Tier0) +; Total bytes of code 115, prolog size 20, PerfScore 35.33, instruction count 31, allocated bytes for code 115 (MethodHash=c2bacac9) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:ContainsKey(double):ubyte:this (Tier0) ```
-59 (-33.91 % of base) - System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this ```diff ; Assembly listing for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this (Tier0) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; Tier0 code ; rbp based frame ; partially interruptible ; Final local variable assignments ; ; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd ; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[] ; V02 loc0 [V02 ] ( 1, 1 ) struct ( 8) [rbp-0x18] do-not-enreg[S] ld-addr-op ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 tmp1 [V04 ] ( 1, 1 ) ref -> [rbp-0x20] do-not-enreg[] must-init "Reusable Box Helper" ; V05 tmp2 [V05 ] ( 1, 1 ) ref -> [rbp-0x28] do-not-enreg[] must-init class-hnd exact "impAppendStmt" ; V06 tmp3 [V06 ] ( 1, 1 ) struct (16) [rbp-0x38] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op "NewObj constructor temp" ; ; Lcl frame size = 64 G_M55812_IG01: push rbp sub rsp, 64 lea rbp, [rsp+0x40] xor eax, eax mov qword ptr [rbp-0x20], rax mov qword ptr [rbp-0x28], rax mov gword ptr [rbp-0x08], rdi vmovsd qword ptr [rbp-0x10], xmm0 ;; size=29 bbWeight=1 PerfScore 6.00 G_M55812_IG02: - mov rdi, 0xD1FFAB1E ; System.Double - call CORINFO_HELP_NEWSFAST - mov gword ptr [rbp-0x20], rax - mov rax, gword ptr [rbp-0x20] - vmovsd xmm0, qword ptr [rbp-0x10] - vmovsd qword ptr [rax+0x08], xmm0 - mov rdi, gword ptr [rbp-0x20] - mov rsi, 0xD1FFAB1E ; 'key' - mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String) - call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String) mov rax, gword ptr [rbp-0x08] mov rax, gword ptr [rax+0x18] mov gword ptr [rbp-0x28], rax xor eax, eax mov qword ptr [rbp-0x18], rax vxorps xmm0, xmm0, xmm0 vmovups xmmword ptr [rbp-0x38], xmm0 lea rdi, [rbp-0x38] vmovsd xmm0, qword ptr [rbp-0x10] mov rsi, qword ptr [rbp-0x18] mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this call [rax]System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this vmovsd xmm0, qword ptr [rbp-0x38] mov rsi, qword ptr [rbp-0x30] mov rdi, gword ptr [rbp-0x28] mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.SortedSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:Remove(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):ubyte:this cmp dword ptr [rdi], edi call [rax]System.Collections.Generic.SortedSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:Remove(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):ubyte:this nop - ;; size=139 bbWeight=1 PerfScore 38.58 + ;; size=80 bbWeight=1 PerfScore 25.83 G_M55812_IG03: add rsp, 64 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 -; Total bytes of code 174, prolog size 20, PerfScore 46.33, instruction count 40, allocated bytes for code 174 (MethodHash=9f4c25fb) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this (Tier0) +; Total bytes of code 115, prolog size 20, PerfScore 33.58, instruction count 30, allocated bytes for code 115 (MethodHash=9f4c25fb) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this (Tier0) ```
-59 (-21.15 % of base) - System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this ```diff ; Assembly listing for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Tier0) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; Tier0 code ; rbp based frame ; partially interruptible ; Final local variable assignments ; ; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd ; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[] ; V02 arg2 [V02 ] ( 1, 1 ) byref -> [rbp-0x18] do-not-enreg[] ; V03 loc0 [V03 ] ( 1, 1 ) ref -> [rbp-0x20] do-not-enreg[] must-init class-hnd exact ; V04 loc1 [V04 ] ( 1, 1 ) struct ( 8) [rbp-0x28] do-not-enreg[S] ld-addr-op ; V05 loc2 [V05 ] ( 1, 1 ) struct (16) [rbp-0x38] do-not-enreg[XS] addr-exposed ld-addr-op ;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V07 tmp1 [V07 ] ( 1, 1 ) ref -> [rbp-0x40] do-not-enreg[] must-init "Reusable Box Helper" ; V08 tmp2 [V08 ] ( 1, 1 ) ref -> [rbp-0x48] do-not-enreg[] must-init class-hnd exact "impAppendStmt" ; V09 tmp3 [V09 ] ( 1, 1 ) struct (16) [rbp-0x58] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op "NewObj constructor temp" ; V10 tmp4 [V10 ] ( 1, 1 ) struct (16) [rbp-0x68] do-not-enreg[SR] multireg-ret "Return value temp for multireg return" ; ; Lcl frame size = 112 G_M26086_IG01: push rbp sub rsp, 112 lea rbp, [rsp+0x70] xor eax, eax mov qword ptr [rbp-0x48], rax vxorps xmm8, xmm8, xmm8 vmovdqu ymmword ptr [rbp-0x40], ymm8 mov qword ptr [rbp-0x20], rax mov gword ptr [rbp-0x08], rdi vmovsd qword ptr [rbp-0x10], xmm0 mov bword ptr [rbp-0x18], rsi ;; size=43 bbWeight=1 PerfScore 9.33 G_M26086_IG02: - mov rdi, 0xD1FFAB1E ; System.Double - call CORINFO_HELP_NEWSFAST - mov gword ptr [rbp-0x40], rax - mov rax, gword ptr [rbp-0x40] - vmovsd xmm0, qword ptr [rbp-0x10] - vmovsd qword ptr [rax+0x08], xmm0 - mov rdi, gword ptr [rbp-0x40] - mov rsi, 0xD1FFAB1E ; 'key' - mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String) - call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String) mov rax, gword ptr [rbp-0x08] mov rax, gword ptr [rax+0x18] mov gword ptr [rbp-0x48], rax xor eax, eax mov qword ptr [rbp-0x28], rax vxorps xmm0, xmm0, xmm0 vmovups xmmword ptr [rbp-0x58], xmm0 lea rdi, [rbp-0x58] vmovsd xmm0, qword ptr [rbp-0x10] mov rsi, qword ptr [rbp-0x28] mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this call [rax]System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:.ctor(double,System.Nullable`1[int]):this vmovsd xmm0, qword ptr [rbp-0x58] mov rsi, qword ptr [rbp-0x50] mov rdi, gword ptr [rbp-0x48] mov rax, gword ptr [rbp-0x48] mov rax, qword ptr [rax] mov rax, qword ptr [rax+0x58] call [rax]System.Collections.Generic.SortedSet`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:FindNode(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):System.Collections.Generic.SortedSet`1+Node[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:this mov gword ptr [rbp-0x20], rax cmp gword ptr [rbp-0x20], 0 jne SHORT G_M26086_IG04 mov rax, bword ptr [rbp-0x18] xor ecx, ecx mov qword ptr [rax], rcx xor eax, eax - ;; size=159 bbWeight=1 PerfScore 46.58 + ;; size=100 bbWeight=1 PerfScore 33.83 G_M26086_IG03: add rsp, 112 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 G_M26086_IG04: mov rdi, gword ptr [rbp-0x20] mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.SortedSet`1+Node[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:get_Item():System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:this cmp dword ptr [rdi], edi call [rax]System.Collections.Generic.SortedSet`1+Node[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:get_Item():System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:this vmovsd qword ptr [rbp-0x68], xmm0 mov qword ptr [rbp-0x60], rax vmovups xmm0, xmmword ptr [rbp-0x68] vmovups xmmword ptr [rbp-0x38], xmm0 lea rdi, [rbp-0x38] mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:get_Value():System.Nullable`1[int]:this call [rax]System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]:get_Value():System.Nullable`1[int]:this mov rcx, bword ptr [rbp-0x18] mov qword ptr [rcx], rax mov eax, 1 ;; size=65 bbWeight=1 PerfScore 19.25 G_M26086_IG05: add rsp, 112 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 -; Total bytes of code 279, prolog size 30, PerfScore 78.67, instruction count 67, allocated bytes for code 279 (MethodHash=fbd89a19) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Tier0) +; Total bytes of code 220, prolog size 30, PerfScore 65.92, instruction count 57, allocated bytes for code 220 (MethodHash=fbd89a19) for method System.Collections.Generic.SortedDictionary`2[double,System.Nullable`1[int]]:TryGetValue(double,byref):ubyte:this (Tier0) ```
-59 (-17.25 % of base) - System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this ```diff ; Assembly listing for method System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; Tier0 code ; rbp based frame ; partially interruptible ; Final local variable assignments ; ; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd ; V01 arg1 [V01 ] ( 1, 1 ) double -> [rbp-0x10] do-not-enreg[] ; V02 arg2 [V02 ] ( 1, 1 ) struct ( 8) [rbp-0x18] do-not-enreg[S] ; V03 loc0 [V03 ] ( 1, 1 ) int -> [rbp-0x1C] do-not-enreg[] ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V05 tmp1 [V05 ] ( 1, 1 ) ref -> [rbp-0x28] do-not-enreg[] must-init "Reusable Box Helper" ; V06 tmp2 [V06 ] ( 1, 1 ) ref -> [rbp-0x30] do-not-enreg[] must-init class-hnd exact "impImportAndPushBox" ; V07 tmp3 [V07 ] ( 1, 1 ) ref -> [rbp-0x38] do-not-enreg[] must-init class-hnd exact "NewObj constructor temp" ; V08 tmp4 [V08 ] ( 1, 1 ) ref -> [rbp-0x40] do-not-enreg[] must-init "argument with side effect" ; V09 tmp5 [V09 ] ( 1, 1 ) ref -> [rbp-0x48] do-not-enreg[] must-init "argument with side effect" ; ; Lcl frame size = 80 G_M22574_IG01: push rbp sub rsp, 80 lea rbp, [rsp+0x50] xor eax, eax mov qword ptr [rbp-0x48], rax vxorps xmm8, xmm8, xmm8 vmovdqu ymmword ptr [rbp-0x40], ymm8 mov gword ptr [rbp-0x08], rdi vmovsd qword ptr [rbp-0x10], xmm0 mov qword ptr [rbp-0x18], rsi ;; size=39 bbWeight=1 PerfScore 8.33 G_M22574_IG02: - mov rdi, 0xD1FFAB1E ; System.Double - call CORINFO_HELP_NEWSFAST - mov gword ptr [rbp-0x28], rax - mov rax, gword ptr [rbp-0x28] - vmovsd xmm0, qword ptr [rbp-0x10] - vmovsd qword ptr [rax+0x08], xmm0 - mov rdi, gword ptr [rbp-0x28] - mov rsi, 0xD1FFAB1E ; 'key' - mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String) - call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String) mov rax, gword ptr [rbp-0x08] mov rdi, gword ptr [rax+0x08] mov rax, gword ptr [rbp-0x08] mov rcx, gword ptr [rax+0x18] mov rax, gword ptr [rbp-0x08] mov edx, dword ptr [rax+0x30] vmovsd xmm0, qword ptr [rbp-0x10] xor esi, esi mov rax, 0xD1FFAB1E ; code for System.Array:BinarySearch[double](double[],int,int,double,System.Collections.Generic.IComparer`1[double]):int call [rax]System.Array:BinarySearch[double](double[],int,int,double,System.Collections.Generic.IComparer`1[double]):int mov dword ptr [rbp-0x1C], eax cmp dword ptr [rbp-0x1C], 0 jl G_M22574_IG04 - ;; size=114 bbWeight=1 PerfScore 32.25 + ;; size=55 bbWeight=1 PerfScore 19.50 G_M22574_IG03: mov rdi, 0xD1FFAB1E ; System.Double call CORINFO_HELP_NEWSFAST mov gword ptr [rbp-0x28], rax mov rax, 0xD1FFAB1E ; code for System.SR:get_Argument_AddingDuplicate():System.String call [rax]System.SR:get_Argument_AddingDuplicate():System.String mov gword ptr [rbp-0x30], rax mov rax, gword ptr [rbp-0x28] vmovsd xmm0, qword ptr [rbp-0x10] vmovsd qword ptr [rax+0x08], xmm0 mov rdi, 0xD1FFAB1E ; System.ArgumentException call CORINFO_HELP_NEWSFAST mov gword ptr [rbp-0x38], rax mov rsi, gword ptr [rbp-0x28] mov rdi, gword ptr [rbp-0x30] mov rax, 0xD1FFAB1E ; code for System.SR:Format(System.String,System.Object):System.String call [rax]System.SR:Format(System.String,System.Object):System.String mov gword ptr [rbp-0x40], rax mov edi, 0x869 mov rsi, 0xD1FFAB1E call CORINFO_HELP_STRCNS mov gword ptr [rbp-0x48], rax mov rsi, gword ptr [rbp-0x40] mov rdx, gword ptr [rbp-0x48] mov rdi, gword ptr [rbp-0x38] mov rax, 0xD1FFAB1E ; code for System.ArgumentException:.ctor(System.String,System.String):this call [rax]System.ArgumentException:.ctor(System.String,System.String):this mov rdi, gword ptr [rbp-0x38] call CORINFO_HELP_THROW int3 ;; size=150 bbWeight=0 PerfScore 0.00 G_M22574_IG04: mov eax, dword ptr [rbp-0x1C] mov esi, eax not esi mov rdi, gword ptr [rbp-0x08] vmovsd xmm0, qword ptr [rbp-0x10] mov rdx, qword ptr [rbp-0x18] mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:Insert(int,double,System.Nullable`1[int]):this call [rax]System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:Insert(int,double,System.Nullable`1[int]):this nop ;; size=33 bbWeight=1 PerfScore 10.00 G_M22574_IG05: add rsp, 80 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 -; Total bytes of code 342, prolog size 26, PerfScore 52.33, instruction count 74, allocated bytes for code 342 (MethodHash=8f1ea7d1) for method System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0) +; Total bytes of code 283, prolog size 26, PerfScore 39.58, instruction count 64, allocated bytes for code 283 (MethodHash=8f1ea7d1) for method System.Collections.Generic.SortedList`2[double,System.Nullable`1[int]]:Add(double,System.Nullable`1[int]):this (Tier0) ```

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

MihuBot commented 1 month ago

@EgorBo