MihuBot / runtime-utils

0 stars 0 forks source link

[X64] [EgorBo] JIT: Bulk copy of byrefs #364

Open MihuBot opened 5 months ago

MihuBot commented 5 months ago

Build completed in 32 minutes. https://github.com/dotnet/runtime/pull/101761

Diffs

Diffs ``` Found 273 files with textual diffs. Summary of Code Size diffs: (Lower is better) Total bytes of base: 38860982 Total bytes of diff: 38838264 Total bytes of delta: -22718 (-0.06 % of base) Total relative delta: -62.98 diff is an improvement. relative diff is an improvement. Top file regressions (bytes): 7 : System.Private.CoreLib.dasm (0.00 % of base) Top file improvements (bytes): -11797 : System.Collections.Immutable.dasm (-0.56 % of base) -3828 : System.Text.Json.dasm (-0.30 % of base) -2767 : System.Security.Cryptography.Pkcs.dasm (-0.71 % of base) -2542 : System.Security.Cryptography.dasm (-0.23 % of base) -1049 : System.Memory.dasm (-0.35 % of base) -215 : System.Diagnostics.DiagnosticSource.dasm (-0.09 % of base) -178 : System.Private.Xml.dasm (-0.00 % of base) -160 : System.Net.Http.dasm (-0.02 % of base) -69 : System.IO.Pipelines.dasm (-0.09 % of base) -60 : Microsoft.Extensions.DependencyModel.dasm (-0.07 % of base) -25 : System.Linq.Expressions.dasm (-0.00 % of base) -16 : Microsoft.Extensions.Logging.dasm (-0.04 % of base) -11 : ILCompiler.Reflection.ReadyToRun.dasm (-0.00 % of base) -8 : System.DirectoryServices.Protocols.dasm (-0.01 % of base) 15 total files with Code Size differences (14 improved, 1 regressed), 241 unchanged. Top method regressions (bytes): 74 (3.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 49 (2.75 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[long]:IsProperSupersetOf(System.Collections.Generic.IEnumerable`1[long],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[long]):ubyte (FullOpts) 39 (2.19 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:IsProperSupersetOf(System.Collections.Generic.IEnumerable`1[int],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[int]):ubyte (FullOpts) 39 (2.19 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[short]:IsProperSupersetOf(System.Collections.Generic.IEnumerable`1[short],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[short]):ubyte (FullOpts) 39 (2.19 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[ubyte]:IsProperSupersetOf(System.Collections.Generic.IEnumerable`1[ubyte],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[ubyte]):ubyte (FullOpts) 35 (1.69 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:Intersect(System.Collections.Generic.IEnumerable`1[int],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[int]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[int] (FullOpts) 35 (1.69 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[long]:Intersect(System.Collections.Generic.IEnumerable`1[long],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[long]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[long] (FullOpts) 35 (1.69 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[short]:Intersect(System.Collections.Generic.IEnumerable`1[short],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[short]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[short] (FullOpts) 35 (1.69 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[ubyte]:Intersect(System.Collections.Generic.IEnumerable`1[ubyte],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[ubyte]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[ubyte] (FullOpts) 30 (1.44 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:Intersect(System.Collections.Generic.IEnumerable`1[double],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[double]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[double] (FullOpts) 30 (1.29 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:Union(System.Collections.Generic.IEnumerable`1[double],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[double]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[double] (FullOpts) 23 (1.33 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:IsSupersetOf(System.Collections.Generic.IEnumerable`1[int],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[int]):ubyte (FullOpts) 23 (1.32 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:Overlaps(System.Collections.Generic.IEnumerable`1[int],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[int]):ubyte (FullOpts) 23 (1.33 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[short]:IsSupersetOf(System.Collections.Generic.IEnumerable`1[short],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[short]):ubyte (FullOpts) 23 (1.32 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[short]:Overlaps(System.Collections.Generic.IEnumerable`1[short],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[short]):ubyte (FullOpts) 23 (1.33 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[ubyte]:IsSupersetOf(System.Collections.Generic.IEnumerable`1[ubyte],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[ubyte]):ubyte (FullOpts) 23 (1.32 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[ubyte]:Overlaps(System.Collections.Generic.IEnumerable`1[ubyte],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[ubyte]):ubyte (FullOpts) 21 (1.20 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:IsProperSupersetOf(System.Collections.Generic.IEnumerable`1[double],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[double]):ubyte (FullOpts) 21 (1.23 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:IsSupersetOf(System.Collections.Generic.IEnumerable`1[double],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[double]):ubyte (FullOpts) 21 (1.23 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:Overlaps(System.Collections.Generic.IEnumerable`1[double],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[double]):ubyte (FullOpts) 21 (1.04 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:System.Collections.Generic.ICollection.CopyTo(double[],int):this (FullOpts) 21 (0.98 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 21 (0.89 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 21 (1.02 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+Builder[double]:System.Collections.Generic.ICollection.CopyTo(double[],int):this (FullOpts) 18 (1.74 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo:Encode(System.Security.Cryptography.Oid,System.Security.Cryptography.Oid,System.ReadOnlyMemory`1[ubyte],System.ReadOnlyMemory`1[ubyte],System.DateTimeOffset,ubyte,System.Nullable`1[long],System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.Security.Cryptography.X509Certificates.X509ExtensionCollection):ubyte[] (FullOpts) 17 (1.39 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[int]:TryReadToInternal(byref,int,ubyte,int):ubyte:this (FullOpts) 17 (1.39 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[long]:TryReadToInternal(byref,long,ubyte,int):ubyte:this (FullOpts) 17 (1.39 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[ubyte]:TryReadToInternal(byref,ubyte,ubyte,int):ubyte:this (FullOpts) 17 (0.75 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 16 (1.33 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[double]:TryReadToInternal(byref,double,ubyte,int):ubyte:this (FullOpts) 16 (1.33 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[System.Numerics.Vector`1[float]]:TryReadToInternal(byref,System.Numerics.Vector`1[float],ubyte,int):ubyte:this (FullOpts) 15 (0.79 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 14 (2.72 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventSource:DefineEventPipeEvents():this (FullOpts) 13 (0.75 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[long]:IsSupersetOf(System.Collections.Generic.IEnumerable`1[long],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[long]):ubyte (FullOpts) 13 (0.74 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[long]:Overlaps(System.Collections.Generic.IEnumerable`1[long],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[long]):ubyte (FullOpts) 12 (0.63 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 9 (2.41 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo:GetTimestampAuthorityName():System.Nullable`1[System.ReadOnlyMemory`1[ubyte]]:this (FullOpts) 8 (0.63 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[short]:TryReadToInternal(byref,short,ubyte,int):ubyte:this (FullOpts) 8 (0.53 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampToken:CertMatchesIds(System.Security.Cryptography.X509Certificates.X509Certificate2,byref,byref):ubyte (FullOpts) 7 (2.05 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.RecipientInfoAsn:Encode(System.Formats.Asn1.AsnWriter):this (FullOpts) 6 (0.29 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[short]:TryReadTo(byref,short,short,ubyte):ubyte:this (FullOpts) (2 methods) 5 (0.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[double,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[double,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]][],int):this (FullOpts) 5 (0.22 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[double,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[int,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.24 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[int,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[int,System.Nullable`1[int]][],int):this (FullOpts) 5 (0.23 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[int,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 5 (0.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[long,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[long,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]][],int):this (FullOpts) 5 (0.23 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[long,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[short,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.24 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[short,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[short,System.Nullable`1[int]][],int):this (FullOpts) 5 (0.23 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[short,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 5 (0.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[System.Nullable`1[int],System.Nullable`1[int]][],int):this (FullOpts) 5 (0.22 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.23 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[System.Numerics.Vector`1[float],System.Nullable`1[int]][],int):this (FullOpts) 5 (0.22 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[ubyte,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.24 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[ubyte,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[ubyte,System.Nullable`1[int]][],int):this (FullOpts) 5 (0.23 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[ubyte,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[double,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[double,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]][],int):this (FullOpts) 5 (0.22 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[double,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[int,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[int,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[int,System.Nullable`1[int]][],int):this (FullOpts) 5 (0.23 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[int,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[long,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[long,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]][],int):this (FullOpts) 5 (0.23 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[long,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[short,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[short,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[short,System.Nullable`1[int]][],int):this (FullOpts) 5 (0.23 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[short,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[System.Nullable`1[int],System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[System.Nullable`1[int],System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[System.Nullable`1[int],System.Nullable`1[int]][],int):this (FullOpts) 5 (0.22 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[System.Nullable`1[int],System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[System.Numerics.Vector`1[float],System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.24 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[System.Numerics.Vector`1[float],System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[System.Numerics.Vector`1[float],System.Nullable`1[int]][],int):this (FullOpts) 5 (0.22 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[System.Numerics.Vector`1[float],System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[ubyte,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[ubyte,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[ubyte,System.Nullable`1[int]][],int):this (FullOpts) 5 (0.23 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[ubyte,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 5 (0.23 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:Except(System.Collections.Generic.IEnumerable`1[int],System.Collections.Generic.IEqualityComparer`1[int],System.Collections.Generic.IEqualityComparer`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[int]],System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[int]]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[int] (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:System.Collections.Generic.ICollection.CopyTo(int[],int):this (FullOpts) 5 (0.24 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 5 (0.22 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:Union(System.Collections.Generic.IEnumerable`1[int],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[int]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[int] (FullOpts) 5 (0.23 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[long]:Except(System.Collections.Generic.IEnumerable`1[long],System.Collections.Generic.IEqualityComparer`1[long],System.Collections.Generic.IEqualityComparer`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[long]],System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[long]]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[long] (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[long]:System.Collections.Generic.ICollection.CopyTo(long[],int):this (FullOpts) 5 (0.24 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[long]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 5 (0.22 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[long]:Union(System.Collections.Generic.IEnumerable`1[long],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[long]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[long] (FullOpts) 5 (0.23 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[short]:Except(System.Collections.Generic.IEnumerable`1[short],System.Collections.Generic.IEqualityComparer`1[short],System.Collections.Generic.IEqualityComparer`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[short]],System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[short]]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[short] (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[short]:System.Collections.Generic.ICollection.CopyTo(short[],int):this (FullOpts) 5 (0.24 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[short]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 5 (0.21 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[short]:Union(System.Collections.Generic.IEnumerable`1[short],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[short]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[short] (FullOpts) 5 (0.21 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]]:Except(System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]],System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]],System.Collections.Generic.IEqualityComparer`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.Nullable`1[int]]],System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.Nullable`1[int]]]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[System.Nullable`1[int]] (FullOpts) 5 (0.22 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]]:Intersect(System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.Nullable`1[int]]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[System.Nullable`1[int]] (FullOpts) 5 (0.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]]:IsProperSupersetOf(System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.Nullable`1[int]]):ubyte (FullOpts) 5 (0.27 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]]:IsSupersetOf(System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.Nullable`1[int]]):ubyte (FullOpts) 5 (0.27 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]]:Overlaps(System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.Nullable`1[int]]):ubyte (FullOpts) Top method improvements (bytes): -365 (-9.23 % of base) : System.Text.Json.dasm - System.Text.Json.JsonDocument:TryParseValue(byref,byref,ubyte,ubyte):ubyte (FullOpts) -288 (-9.97 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:GetReaderScopedToNextValue(byref,byref):System.Text.Json.Utf8JsonReader (FullOpts) -223 (-30.26 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__6:MoveNext():ubyte:this (FullOpts) -220 (-23.53 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__8:MoveNext():ubyte:this (FullOpts) -164 (-81.19 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo:.ctor(ubyte[],System.Security.Cryptography.Pkcs.Asn1.Rfc3161TstInfo):this (FullOpts) -163 (-21.48 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.Rfc3161TstInfo:Decode(System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Pkcs.Asn1.Rfc3161TstInfo (FullOpts) -160 (-36.87 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo:TryDecode(System.ReadOnlyMemory`1[ubyte],byref,byref):ubyte (FullOpts) -160 (-12.97 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo:TryDecode(System.ReadOnlyMemory`1[ubyte],ubyte,byref,byref,byref):ubyte (FullOpts) -119 (-5.32 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.EnvelopedDataAsn:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -115 (-16.69 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.RecipientInfoAsn:Decode(System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Pkcs.Asn1.RecipientInfoAsn (FullOpts) -114 (-5.29 % of base) : System.Security.Cryptography.Pkcs.dasm - Internal.Cryptography.Pal.AnyOS.ManagedPkcsPal:Decode(System.ReadOnlySpan`1[ubyte],byref,byref,byref,byref,byref):Internal.Cryptography.DecryptorPal:this (FullOpts) -114 (-3.41 % of base) : System.Security.Cryptography.dasm - Interop+Crypto:GetECCurveParameters(Microsoft.Win32.SafeHandles.SafeEcKeyHandle,ubyte):System.Security.Cryptography.ECParameters (FullOpts) -112 (-7.41 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.CadesIssuerSerial:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -112 (-5.09 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.Asn1.DistributionPointAsn:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -112 (-6.73 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.Asn1.DistributionPointNameAsn:DecodeCore(byref,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -112 (-9.06 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension:Decode(System.ReadOnlySpan`1[ubyte]):System.Collections.Generic.List`1[System.Security.Cryptography.Asn1.GeneralNameAsn] (FullOpts) -111 (-12.18 % of base) : System.Text.Json.dasm - System.Text.Json.ReadStack:Push():this (FullOpts) -109 (-3.58 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.Rfc3161TstInfo:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -108 (-15.65 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Asn1.GeneralNameAsn:Decode(System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Asn1.GeneralNameAsn (FullOpts) -108 (-15.77 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.RecipientInfoAsn:DecodeCore(byref,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -104 (-1.23 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[int]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -104 (-1.23 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[long]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -104 (-1.23 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[short]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -104 (-1.23 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.Numerics.Vector`1[float]]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -104 (-1.23 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[ubyte]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -96 (-3.01 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.SignedDataAsn:DecodeCore(byref,System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -94 (-18.47 % of base) : System.Text.Json.dasm - System.Text.Json.ReadStack:Pop(ubyte):this (FullOpts) -93 (-13.50 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.Asn1.CertificateAsn:Decode(System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.X509Certificates.Asn1.CertificateAsn (FullOpts) -88 (-5.63 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[ubyte]:TryReadToAnyInternal(byref,System.ReadOnlySpan`1[ubyte],ubyte,int):ubyte:this (FullOpts) -86 (-6.36 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.SignedCms:ComputeSignature(System.Security.Cryptography.Pkcs.CmsSigner,ubyte):this (FullOpts) -81 (-6.08 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__25[System.Numerics.Vector`1[float],System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -81 (-6.10 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__27[System.Numerics.Vector`1[float],System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -80 (-0.97 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.Nullable`1[int]]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -79 (-0.93 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[double]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -79 (-0.89 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectWithParameterizedConstructorConverter`1[System.__Canon]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (FullOpts) -78 (-3.26 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[short]:TryReadToAnyInternal(byref,System.ReadOnlySpan`1[short],ubyte,int):ubyte:this (FullOpts) -77 (-6.24 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__25[double,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -77 (-6.27 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__25[int,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -77 (-6.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__25[long,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -77 (-6.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__25[short,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -77 (-6.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__25[System.Nullable`1[int],System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -77 (-6.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__25[ubyte,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -77 (-6.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__27[double,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -77 (-6.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__27[int,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -77 (-6.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__27[long,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -77 (-6.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__27[short,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -77 (-6.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__27[System.Nullable`1[int],System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -77 (-6.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__27[ubyte,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -77 (-11.31 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Asn1.ECPrivateKey:Decode(System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Asn1.ECPrivateKey (FullOpts) -75 (-3.44 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[short]:TryReadToSlow(byref,short,short,int,ubyte):ubyte:this (FullOpts) (2 methods) -74 (-5.61 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[int]:TryReadToAnyInternal(byref,System.ReadOnlySpan`1[int],ubyte,int):ubyte:this (FullOpts) -74 (-5.61 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[long]:TryReadToAnyInternal(byref,System.ReadOnlySpan`1[long],ubyte,int):ubyte:this (FullOpts) -74 (-21.20 % of base) : System.Net.Http.dasm - System.Net.Http.Metrics.ConnectionMetrics:GetTags():System.Diagnostics.TagList:this (FullOpts) -74 (-17.41 % of base) : System.Net.Http.dasm - System.Net.Http.Metrics.MetricsHandler:InitializeCommonTags(System.Net.Http.HttpRequestMessage):System.Diagnostics.TagList (FullOpts) -73 (-5.53 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[double]:TryReadToAnyInternal(byref,System.ReadOnlySpan`1[double],ubyte,int):ubyte:this (FullOpts) -70 (-34.48 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.TagList:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]:this (FullOpts) -70 (-34.48 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.TagList:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -69 (-5.15 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[System.Numerics.Vector`1[float]]:TryReadToAnyInternal(byref,System.ReadOnlySpan`1[System.Numerics.Vector`1[float]],ubyte,int):ubyte:this (FullOpts) -69 (-18.21 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECOpenSsl:ExportNamedCurveParameters(Microsoft.Win32.SafeHandles.SafeEcKeyHandle,ubyte):System.Security.Cryptography.ECParameters (FullOpts) -66 (-66.67 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.TagList+Enumerator:.ctor(byref):this (FullOpts) -65 (-20.77 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECDiffieHellmanOpenSslPublicKey:ExportExplicitParameters():System.Security.Cryptography.ECParameters:this (FullOpts) -63 (-2.97 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[ubyte]:TryReadToSlow(byref,ubyte,ubyte,int,ubyte):ubyte:this (FullOpts) (2 methods) -63 (-4.02 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder+d__22[System.__Canon,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -63 (-9.56 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.KeyAgreeRecipientInfoAsn:Decode(System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Pkcs.Asn1.KeyAgreeRecipientInfoAsn (FullOpts) -63 (-1.47 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.CmsSigner:Sign(System.ReadOnlyMemory`1[ubyte],System.String,ubyte,byref):System.Security.Cryptography.Pkcs.Asn1.SignerInfoAsn:this (FullOpts) -61 (-5.62 % of base) : System.Security.Cryptography.dasm - Interop+Crypto:GetECKeyParameters(Microsoft.Win32.SafeHandles.SafeEcKeyHandle,ubyte):System.Security.Cryptography.ECParameters (FullOpts) -61 (-5.46 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.EccKeyFormatHelper:FromECPublicKey(System.ReadOnlyMemory`1[ubyte],byref,byref) (FullOpts) -61 (-20.33 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECDiffieHellmanOpenSsl:ExportParameters(ubyte):System.Security.Cryptography.ECParameters:this (FullOpts) -61 (-20.33 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECDsaOpenSsl:ExportParameters(ubyte):System.Security.Cryptography.ECParameters:this (FullOpts) -61 (-20.75 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECOpenSsl:ExportExplicitCurveParameters(Microsoft.Win32.SafeHandles.SafeEcKeyHandle,ubyte):System.Security.Cryptography.ECParameters (FullOpts) -61 (-24.90 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECOpenSsl:ExportParameters(Microsoft.Win32.SafeHandles.SafeEcKeyHandle,ubyte):System.Security.Cryptography.ECParameters (FullOpts) -61 (-9.40 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.SignerInfoAsn:Decode(System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Pkcs.Asn1.SignerInfoAsn (FullOpts) -60 (-9.16 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Asn1.ECDomainParameters:DecodeCore(byref,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -59 (-3.60 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.EccKeyFormatHelper:FromECPrivateKey(System.Security.Cryptography.Asn1.ECPrivateKey,byref,byref) (FullOpts) -58 (-4.04 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.EccKeyFormatHelper:FromECPrivateKey(System.ReadOnlySpan`1[ubyte],byref):System.Security.Cryptography.ECParameters (FullOpts) -58 (-11.98 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[double]:ReadPropertyValue(System.Object,byref,byref,System.Text.Json.Serialization.Metadata.JsonPropertyInfo,ubyte) (FullOpts) -58 (-11.98 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[int]:ReadPropertyValue(System.Object,byref,byref,System.Text.Json.Serialization.Metadata.JsonPropertyInfo,ubyte) (FullOpts) -58 (-11.98 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[long]:ReadPropertyValue(System.Object,byref,byref,System.Text.Json.Serialization.Metadata.JsonPropertyInfo,ubyte) (FullOpts) -58 (-11.98 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[short]:ReadPropertyValue(System.Object,byref,byref,System.Text.Json.Serialization.Metadata.JsonPropertyInfo,ubyte) (FullOpts) -58 (-11.98 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.__Canon]:ReadPropertyValue(System.Object,byref,byref,System.Text.Json.Serialization.Metadata.JsonPropertyInfo,ubyte) (FullOpts) -58 (-11.98 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.Nullable`1[int]]:ReadPropertyValue(System.Object,byref,byref,System.Text.Json.Serialization.Metadata.JsonPropertyInfo,ubyte) (FullOpts) -58 (-11.98 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.Numerics.Vector`1[float]]:ReadPropertyValue(System.Object,byref,byref,System.Text.Json.Serialization.Metadata.JsonPropertyInfo,ubyte) (FullOpts) -58 (-11.98 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[ubyte]:ReadPropertyValue(System.Object,byref,byref,System.Text.Json.Serialization.Metadata.JsonPropertyInfo,ubyte) (FullOpts) -57 (-8.92 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Asn1.ECDomainParameters:Decode(System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Asn1.ECDomainParameters (FullOpts) -57 (-9.66 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECDiffieHellmanOpenSslPublicKey:ExportParameters():System.Security.Cryptography.ECParameters:this (FullOpts) -56 (-3.24 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+d__25[System.__Canon,System.Nullable`1[int]]:MoveNext():ubyte:this (FullOpts) -54 (-55.10 % of base) : System.Security.Cryptography.Pkcs.dasm - Internal.Cryptography.Pal.AnyOS.ManagedPkcsPal+ManagedKeyAgreePal:.ctor(System.Security.Cryptography.Pkcs.Asn1.KeyAgreeRecipientInfoAsn,int):this (FullOpts) -54 (-2.60 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[int]:TryReadToSlow(byref,int,int,int,ubyte):ubyte:this (FullOpts) (2 methods) -54 (-2.60 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[long]:TryReadToSlow(byref,long,long,int,ubyte):ubyte:this (FullOpts) (2 methods) -53 (-21.54 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:g__TryAdvanceWithReadAhead|4_0(byref):ubyte (FullOpts) -53 (-3.24 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[double]:PopulatePropertiesFastPath(System.Object,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions,byref,byref) (FullOpts) -53 (-3.24 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[int]:PopulatePropertiesFastPath(System.Object,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions,byref,byref) (FullOpts) -53 (-3.24 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[long]:PopulatePropertiesFastPath(System.Object,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions,byref,byref) (FullOpts) -53 (-3.24 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[short]:PopulatePropertiesFastPath(System.Object,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions,byref,byref) (FullOpts) -53 (-3.24 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.__Canon]:PopulatePropertiesFastPath(System.Object,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions,byref,byref) (FullOpts) -53 (-3.24 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.Nullable`1[int]]:PopulatePropertiesFastPath(System.Object,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions,byref,byref) (FullOpts) -53 (-3.24 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[System.Numerics.Vector`1[float]]:PopulatePropertiesFastPath(System.Object,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions,byref,byref) (FullOpts) -53 (-3.24 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[ubyte]:PopulatePropertiesFastPath(System.Object,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.JsonSerializerOptions,byref,byref) (FullOpts) -52 (-10.32 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:GetEnumerator():System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.Numerics.Vector`1[float],System.Nullable`1[int]]:this (FullOpts) -52 (-8.55 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:System.Collections.Generic.IEnumerable>.GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]]:this (FullOpts) Top method regressions (percentages): 74 (3.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 49 (2.75 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[long]:IsProperSupersetOf(System.Collections.Generic.IEnumerable`1[long],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[long]):ubyte (FullOpts) 5 (2.75 % of base) : System.Text.Json.dasm - System.Text.Json.WriteStack:DisposeCompletedAsyncDisposables():System.Threading.Tasks.ValueTask:this (FullOpts) 14 (2.72 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventSource:DefineEventPipeEvents():this (FullOpts) 5 (2.53 % of base) : System.Text.Json.dasm - System.Text.Json.WriteStack:DisposePendingDisposablesOnExceptionAsync():System.Threading.Tasks.ValueTask:this (FullOpts) 9 (2.41 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo:GetTimestampAuthorityName():System.Nullable`1[System.ReadOnlyMemory`1[ubyte]]:this (FullOpts) 39 (2.19 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:IsProperSupersetOf(System.Collections.Generic.IEnumerable`1[int],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[int]):ubyte (FullOpts) 39 (2.19 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[ubyte]:IsProperSupersetOf(System.Collections.Generic.IEnumerable`1[ubyte],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[ubyte]):ubyte (FullOpts) 39 (2.19 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[short]:IsProperSupersetOf(System.Collections.Generic.IEnumerable`1[short],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[short]):ubyte (FullOpts) 7 (2.05 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.RecipientInfoAsn:Encode(System.Formats.Asn1.AsnWriter):this (FullOpts) 18 (1.74 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo:Encode(System.Security.Cryptography.Oid,System.Security.Cryptography.Oid,System.ReadOnlyMemory`1[ubyte],System.ReadOnlyMemory`1[ubyte],System.DateTimeOffset,ubyte,System.Nullable`1[long],System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.Nullable`1[System.ReadOnlyMemory`1[ubyte]],System.Security.Cryptography.X509Certificates.X509ExtensionCollection):ubyte[] (FullOpts) 35 (1.69 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:Intersect(System.Collections.Generic.IEnumerable`1[int],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[int]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[int] (FullOpts) 35 (1.69 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[ubyte]:Intersect(System.Collections.Generic.IEnumerable`1[ubyte],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[ubyte]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[ubyte] (FullOpts) 35 (1.69 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[long]:Intersect(System.Collections.Generic.IEnumerable`1[long],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[long]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[long] (FullOpts) 35 (1.69 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[short]:Intersect(System.Collections.Generic.IEnumerable`1[short],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[short]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[short] (FullOpts) 30 (1.44 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:Intersect(System.Collections.Generic.IEnumerable`1[double],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[double]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[double] (FullOpts) 17 (1.39 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[int]:TryReadToInternal(byref,int,ubyte,int):ubyte:this (FullOpts) 17 (1.39 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[long]:TryReadToInternal(byref,long,ubyte,int):ubyte:this (FullOpts) 17 (1.39 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[ubyte]:TryReadToInternal(byref,ubyte,ubyte,int):ubyte:this (FullOpts) 5 (1.36 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.Asn1.ECDomainParameters:Encode(System.Formats.Asn1.AsnWriter):this (FullOpts) 16 (1.33 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[double]:TryReadToInternal(byref,double,ubyte,int):ubyte:this (FullOpts) 23 (1.33 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:IsSupersetOf(System.Collections.Generic.IEnumerable`1[int],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[int]):ubyte (FullOpts) 16 (1.33 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[System.Numerics.Vector`1[float]]:TryReadToInternal(byref,System.Numerics.Vector`1[float],ubyte,int):ubyte:this (FullOpts) 23 (1.33 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[ubyte]:IsSupersetOf(System.Collections.Generic.IEnumerable`1[ubyte],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[ubyte]):ubyte (FullOpts) 23 (1.33 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[short]:IsSupersetOf(System.Collections.Generic.IEnumerable`1[short],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[short]):ubyte (FullOpts) 23 (1.32 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:Overlaps(System.Collections.Generic.IEnumerable`1[int],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[int]):ubyte (FullOpts) 23 (1.32 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[ubyte]:Overlaps(System.Collections.Generic.IEnumerable`1[ubyte],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[ubyte]):ubyte (FullOpts) 23 (1.32 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[short]:Overlaps(System.Collections.Generic.IEnumerable`1[short],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[short]):ubyte (FullOpts) 30 (1.29 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:Union(System.Collections.Generic.IEnumerable`1[double],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[double]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[double] (FullOpts) 21 (1.23 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:IsSupersetOf(System.Collections.Generic.IEnumerable`1[double],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[double]):ubyte (FullOpts) 21 (1.23 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:Overlaps(System.Collections.Generic.IEnumerable`1[double],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[double]):ubyte (FullOpts) 21 (1.20 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:IsProperSupersetOf(System.Collections.Generic.IEnumerable`1[double],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[double]):ubyte (FullOpts) 5 (1.08 % of base) : System.Text.Json.dasm - System.Text.Json.ThrowHelper:ThrowJsonException_MetadataInvalidPropertyInArrayMetadata(byref,System.Type,byref) (FullOpts) 21 (1.04 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:System.Collections.Generic.ICollection.CopyTo(double[],int):this (FullOpts) 21 (1.02 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+Builder[double]:System.Collections.Generic.ICollection.CopyTo(double[],int):this (FullOpts) 21 (0.98 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 21 (0.89 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.__Canon]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 5 (0.84 % of base) : System.Text.Json.dasm - System.Text.Json.ThrowHelper:ThrowUnexpectedMetadataException(System.ReadOnlySpan`1[ubyte],byref,byref) (FullOpts) 2 (0.80 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Asn1.Pkcs12.PfxAsn:Encode(System.Formats.Asn1.AsnWriter,System.Formats.Asn1.Asn1Tag):this (FullOpts) 15 (0.79 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 17 (0.75 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.__Canon,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) 13 (0.75 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[long]:IsSupersetOf(System.Collections.Generic.IEnumerable`1[long],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[long]):ubyte (FullOpts) 13 (0.74 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[long]:Overlaps(System.Collections.Generic.IEnumerable`1[long],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[long]):ubyte (FullOpts) 2 (0.67 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECDiffieHellmanPublicKey:ExportSubjectPublicKeyInfo():ubyte[]:this (FullOpts) 12 (0.63 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 8 (0.63 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[short]:TryReadToInternal(byref,short,ubyte,int):ubyte:this (FullOpts) 2 (0.60 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECDiffieHellmanPublicKey:TryExportSubjectPublicKeyInfo(System.Span`1[ubyte],byref):ubyte:this (FullOpts) 2 (0.59 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECAlgorithm:TryExportSubjectPublicKeyInfo(System.Span`1[ubyte],byref):ubyte:this (FullOpts) 5 (0.59 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:GetPropertyName(byref,byref,System.Text.Json.JsonSerializerOptions,byref):System.ReadOnlySpan`1[ubyte] (FullOpts) 8 (0.53 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampToken:CertMatchesIds(System.Security.Cryptography.X509Certificates.X509Certificate2,byref,byref):ubyte (FullOpts) 3 (0.47 % of base) : Microsoft.Extensions.Logging.dasm - Microsoft.Extensions.Logging.Logger+LoggerDebugView:get_Providers():System.Collections.Generic.List`1[Microsoft.Extensions.Logging.Logger+LoggerProviderDebugView]:this (FullOpts) 2 (0.45 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.EccKeyFormatHelper:ValidateParameters(System.Nullable`1[System.Security.Cryptography.Asn1.ECDomainParameters],byref) (FullOpts) 4 (0.41 % of base) : System.Private.Xml.dasm - System.Xml.Schema.SequenceNode:ConstructPos(System.Xml.Schema.BitSet,System.Xml.Schema.BitSet,System.Xml.Schema.BitSet[]):this (FullOpts) 2 (0.39 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECAlgorithm:TryExportPkcs8PrivateKey(System.Span`1[ubyte],byref):ubyte:this (FullOpts) 4 (0.37 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.Pkcs10CertificationRequestInfo:ToPkcs10Request(System.Security.Cryptography.X509Certificates.X509SignatureGenerator,System.Security.Cryptography.HashAlgorithmName):ubyte[]:this (FullOpts) 5 (0.32 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.Rfc3161TstInfo:Encode(System.Formats.Asn1.AsnWriter,System.Formats.Asn1.Asn1Tag):this (FullOpts) 2 (0.31 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECAlgorithm:TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.PbeParameters,System.Span`1[ubyte],byref):ubyte:this (FullOpts) 2 (0.31 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECAlgorithm:TryExportEncryptedPkcs8PrivateKey(System.ReadOnlySpan`1[ushort],System.Security.Cryptography.PbeParameters,System.Span`1[ubyte],byref):ubyte:this (FullOpts) 1 (0.31 % of base) : System.Text.Json.dasm - System.Text.Json.ThrowHelper:ThrowJsonException_MetadataInvalidPropertyWithLeadingDollarSign(System.ReadOnlySpan`1[ubyte],byref,byref) (FullOpts) 6 (0.29 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[short]:TryReadTo(byref,short,short,ubyte):ubyte:this (FullOpts) (2 methods) 5 (0.27 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]]:IsSupersetOf(System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.Nullable`1[int]]):ubyte (FullOpts) 5 (0.27 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]]:Overlaps(System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.Nullable`1[int]]):ubyte (FullOpts) 5 (0.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]]:IsProperSupersetOf(System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.Nullable`1[int]]):ubyte (FullOpts) 2 (0.26 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.SignedCms:Encode():ubyte[]:this (FullOpts) 5 (0.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[double,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[long,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[double,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]][],int):this (FullOpts) 5 (0.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[long,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]][],int):this (FullOpts) 5 (0.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[System.Nullable`1[int],System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[System.Nullable`1[int],System.Nullable`1[int]][],int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[double,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[long,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[System.Nullable`1[int],System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[int,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[short,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[ubyte,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[int,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[short,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[ubyte,System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[double,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]][],int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[long,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]][],int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[System.Nullable`1[int],System.Nullable`1[int]][],int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:System.Collections.Generic.ICollection.CopyTo(int[],int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[long]:System.Collections.Generic.ICollection.CopyTo(long[],int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[int,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[int,System.Nullable`1[int]][],int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[short,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[short,System.Nullable`1[int]][],int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[ubyte,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[ubyte,System.Nullable`1[int]][],int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[ubyte]:System.Collections.Generic.ICollection.CopyTo(ubyte[],int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[short]:System.Collections.Generic.ICollection.CopyTo(short[],int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[System.Numerics.Vector`1[float],System.Nullable`1[int]]:ContainsValue(System.Nullable`1[int]):ubyte:this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+Builder[int]:System.Collections.Generic.ICollection.CopyTo(int[],int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+Builder[long]:System.Collections.Generic.ICollection.CopyTo(long[],int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+Builder[ubyte]:System.Collections.Generic.ICollection.CopyTo(ubyte[],int):this (FullOpts) 5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+Builder[short]:System.Collections.Generic.ICollection.CopyTo(short[],int):this (FullOpts) 5 (0.24 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[System.Numerics.Vector`1[float],System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[System.Numerics.Vector`1[float],System.Nullable`1[int]][],int):this (FullOpts) 5 (0.24 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[int,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[int,System.Nullable`1[int]][],int):this (FullOpts) 5 (0.24 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[short,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[short,System.Nullable`1[int]][],int):this (FullOpts) 5 (0.24 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[ubyte,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair`2[ubyte,System.Nullable`1[int]][],int):this (FullOpts) 5 (0.24 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Numerics.Vector`1[float]]:IsSupersetOf(System.Collections.Generic.IEnumerable`1[System.Numerics.Vector`1[float]],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.Numerics.Vector`1[float]]):ubyte (FullOpts) Top method improvements (percentages): -164 (-81.19 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo:.ctor(ubyte[],System.Security.Cryptography.Pkcs.Asn1.Rfc3161TstInfo):this (FullOpts) -66 (-66.67 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.TagList+Enumerator:.ctor(byref):this (FullOpts) -54 (-55.10 % of base) : System.Security.Cryptography.Pkcs.dasm - Internal.Cryptography.Pal.AnyOS.ManagedPkcsPal+ManagedKeyAgreePal:.ctor(System.Security.Cryptography.Pkcs.Asn1.KeyAgreeRecipientInfoAsn,int):this (FullOpts) -29 (-50.00 % of base) : System.Security.Cryptography.Pkcs.dasm - Internal.Cryptography.Pal.AnyOS.ManagedPkcsPal+ManagedKeyTransPal:.ctor(System.Security.Cryptography.Pkcs.Asn1.KeyTransRecipientInfoAsn):this (FullOpts) -160 (-36.87 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo:TryDecode(System.ReadOnlyMemory`1[ubyte],byref,byref):ubyte (FullOpts) -70 (-34.48 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.TagList:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]]:this (FullOpts) -70 (-34.48 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.TagList:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -33 (-33.67 % of base) : System.Security.Cryptography.Pkcs.dasm - Internal.Cryptography.Pal.AnyOS.ManagedPkcsPal+ManagedDecryptorPal:.ctor(ubyte[],System.Security.Cryptography.Pkcs.Asn1.EnvelopedDataAsn,System.Security.Cryptography.Pkcs.RecipientInfoCollection):this (FullOpts) -46 (-33.09 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECCurve:CreateFromOid(System.Security.Cryptography.Oid):System.Security.Cryptography.ECCurve (FullOpts) -223 (-30.26 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__6:MoveNext():ubyte:this (FullOpts) -31 (-26.96 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]:GetEnumerator():System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.__Canon]:this (FullOpts) -61 (-24.90 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECOpenSsl:ExportParameters(Microsoft.Win32.SafeHandles.SafeEcKeyHandle,ubyte):System.Security.Cryptography.ECParameters (FullOpts) -34 (-23.78 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.Numerics.Vector`1[float],System.Nullable`1[int]]:GetEnumerator():System.Collections.Immutable.ImmutableDictionary`2+HashBucket+Enumerator[System.Numerics.Vector`1[float],System.Nullable`1[int]]:this (FullOpts) -220 (-23.53 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__8:MoveNext():ubyte:this (FullOpts) -53 (-21.54 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:g__TryAdvanceWithReadAhead|4_0(byref):ubyte (FullOpts) -163 (-21.48 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.Rfc3161TstInfo:Decode(System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Pkcs.Asn1.Rfc3161TstInfo (FullOpts) -27 (-21.26 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RSAOpenSsl+<>c:b__29_0(System.ReadOnlyMemory`1[ubyte],System.ReadOnlyMemory`1[ubyte]):System.Security.Cryptography.RSAParameters:this (FullOpts) -74 (-21.20 % of base) : System.Net.Http.dasm - System.Net.Http.Metrics.ConnectionMetrics:GetTags():System.Diagnostics.TagList:this (FullOpts) -28 (-21.05 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.Nullable`1[int]]:GetEnumerator():System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.Nullable`1[int]]:this (FullOpts) -10 (-20.83 % of base) : Microsoft.Extensions.Logging.dasm - Microsoft.Extensions.Logging.Logger+LoggerProviderDebugView:.ctor(System.String,System.Nullable`1[Microsoft.Extensions.Logging.MessageLogger]):this (FullOpts) -65 (-20.77 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECDiffieHellmanOpenSslPublicKey:ExportExplicitParameters():System.Security.Cryptography.ECParameters:this (FullOpts) -61 (-20.75 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECOpenSsl:ExportExplicitCurveParameters(Microsoft.Win32.SafeHandles.SafeEcKeyHandle,ubyte):System.Security.Cryptography.ECParameters (FullOpts) -61 (-20.33 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECDiffieHellmanOpenSsl:ExportParameters(ubyte):System.Security.Cryptography.ECParameters:this (FullOpts) -61 (-20.33 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECDsaOpenSsl:ExportParameters(ubyte):System.Security.Cryptography.ECParameters:this (FullOpts) -36 (-18.56 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl:PopParsingState():this (FullOpts) -94 (-18.47 % of base) : System.Text.Json.dasm - System.Text.Json.ReadStack:Pop(ubyte):this (FullOpts) -69 (-18.21 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECOpenSsl:ExportNamedCurveParameters(Microsoft.Win32.SafeHandles.SafeEcKeyHandle,ubyte):System.Security.Cryptography.ECParameters (FullOpts) -31 (-18.13 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.Numerics.Vector`1[float]]:GetEnumerator():System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[System.Numerics.Vector`1[float]]:this (FullOpts) -23 (-17.69 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]:GetEnumerator():System.Collections.Immutable.ImmutableDictionary`2+HashBucket+Enumerator[System.__Canon,System.Nullable`1[int]]:this (FullOpts) -74 (-17.41 % of base) : System.Net.Http.dasm - System.Net.Http.Metrics.MetricsHandler:InitializeCommonTags(System.Net.Http.HttpRequestMessage):System.Diagnostics.TagList (FullOpts) -115 (-16.69 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.RecipientInfoAsn:Decode(System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Pkcs.Asn1.RecipientInfoAsn (FullOpts) -18 (-15.93 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[double]:Reverse():System.Collections.Generic.IEnumerator`1[double]:this (FullOpts) -18 (-15.93 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[int]:Reverse():System.Collections.Generic.IEnumerator`1[int]:this (FullOpts) -18 (-15.93 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[long]:Reverse():System.Collections.Generic.IEnumerator`1[long]:this (FullOpts) -18 (-15.93 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[short]:Reverse():System.Collections.Generic.IEnumerator`1[short]:this (FullOpts) -18 (-15.93 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.Nullable`1[int]]:Reverse():System.Collections.Generic.IEnumerator`1[System.Nullable`1[int]]:this (FullOpts) -18 (-15.93 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.Numerics.Vector`1[float]]:Reverse():System.Collections.Generic.IEnumerator`1[System.Numerics.Vector`1[float]]:this (FullOpts) -18 (-15.93 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[ubyte]:Reverse():System.Collections.Generic.IEnumerator`1[ubyte]:this (FullOpts) -108 (-15.77 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Asn1.RecipientInfoAsn:DecodeCore(byref,System.ReadOnlyMemory`1[ubyte],byref) (FullOpts) -20 (-15.75 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[double,System.Nullable`1[int]]:GetEnumerator():System.Collections.Immutable.ImmutableDictionary`2+HashBucket+Enumerator[double,System.Nullable`1[int]]:this (FullOpts) -20 (-15.75 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[int,System.Nullable`1[int]]:GetEnumerator():System.Collections.Immutable.ImmutableDictionary`2+HashBucket+Enumerator[int,System.Nullable`1[int]]:this (FullOpts) -20 (-15.75 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[long,System.Nullable`1[int]]:GetEnumerator():System.Collections.Immutable.ImmutableDictionary`2+HashBucket+Enumerator[long,System.Nullable`1[int]]:this (FullOpts) -20 (-15.75 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[short,System.Nullable`1[int]]:GetEnumerator():System.Collections.Immutable.ImmutableDictionary`2+HashBucket+Enumerator[short,System.Nullable`1[int]]:this (FullOpts) -20 (-15.75 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.Nullable`1[int],System.Nullable`1[int]]:GetEnumerator():System.Collections.Immutable.ImmutableDictionary`2+HashBucket+Enumerator[System.Nullable`1[int],System.Nullable`1[int]]:this (FullOpts) -20 (-15.75 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[ubyte,System.Nullable`1[int]]:GetEnumerator():System.Collections.Immutable.ImmutableDictionary`2+HashBucket+Enumerator[ubyte,System.Nullable`1[int]]:this (FullOpts) -108 (-15.65 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Asn1.GeneralNameAsn:Decode(System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.Asn1.GeneralNameAsn (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[double]:GetEnumerator():System.Collections.Generic.IEnumerator`1[double]:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[double]:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[int]:GetEnumerator():System.Collections.Generic.IEnumerator`1[int]:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[int]:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[long]:GetEnumerator():System.Collections.Generic.IEnumerator`1[long]:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[long]:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[short]:GetEnumerator():System.Collections.Generic.IEnumerator`1[short]:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[short]:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[System.Nullable`1[int]]:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Nullable`1[int]]:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[System.Nullable`1[int]]:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[System.Numerics.Vector`1[float]]:GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Numerics.Vector`1[float]]:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[System.Numerics.Vector`1[float]]:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[ubyte]:GetEnumerator():System.Collections.Generic.IEnumerator`1[ubyte]:this (FullOpts) -18 (-15.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+ReverseEnumerable[ubyte]:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -50 (-14.58 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:TrySkip():ubyte:this (FullOpts) -16 (-14.41 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucket[int]:GetEnumerator():System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[int]:this (FullOpts) -16 (-14.41 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucket[long]:GetEnumerator():System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[long]:this (FullOpts) -16 (-14.29 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucket[ubyte]:GetEnumerator():System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[ubyte]:this (FullOpts) -16 (-14.16 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucket[short]:GetEnumerator():System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[short]:this (FullOpts) -37 (-14.12 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl:PopEntity():this (FullOpts) -21 (-13.91 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[double,System.Nullable`1[int]]:System.Collections.Generic.IEnumerable>.GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]]:this (FullOpts) -21 (-13.91 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[double,System.Nullable`1[int]]:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -21 (-13.91 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[int,System.Nullable`1[int]]:System.Collections.Generic.IEnumerable>.GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[int,System.Nullable`1[int]]]:this (FullOpts) -21 (-13.91 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[int,System.Nullable`1[int]]:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -21 (-13.91 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[long,System.Nullable`1[int]]:System.Collections.Generic.IEnumerable>.GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]]:this (FullOpts) -21 (-13.91 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[long,System.Nullable`1[int]]:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -21 (-13.91 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[short,System.Nullable`1[int]]:System.Collections.Generic.IEnumerable>.GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[short,System.Nullable`1[int]]]:this (FullOpts) -21 (-13.91 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[short,System.Nullable`1[int]]:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -21 (-13.91 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.Nullable`1[int],System.Nullable`1[int]]:System.Collections.Generic.IEnumerable>.GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[System.Nullable`1[int],System.Nullable`1[int]]]:this (FullOpts) -21 (-13.91 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.Nullable`1[int],System.Nullable`1[int]]:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -21 (-13.91 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[ubyte,System.Nullable`1[int]]:System.Collections.Generic.IEnumerable>.GetEnumerator():System.Collections.Generic.IEnumerator`1[System.Collections.Generic.KeyValuePair`2[ubyte,System.Nullable`1[int]]]:this (FullOpts) -21 (-13.91 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+HashBucket[ubyte,System.Nullable`1[int]]:System.Collections.IEnumerable.GetEnumerator():System.Collections.IEnumerator:this (FullOpts) -93 (-13.50 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.Asn1.CertificateAsn:Decode(System.Formats.Asn1.Asn1Tag,System.ReadOnlyMemory`1[ubyte],int):System.Security.Cryptography.X509Certificates.Asn1.CertificateAsn (FullOpts) -36 (-13.43 % of base) : System.IO.Pipelines.dasm - System.IO.Pipelines.Pipe:ResetState():this (FullOpts) -160 (-12.97 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo:TryDecode(System.ReadOnlyMemory`1[ubyte],ubyte,byref,byref,byref):ubyte (FullOpts) -11 (-12.94 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[double]:GetEnumerator(System.Collections.Immutable.ImmutableSortedSet`1+Builder[double]):System.Collections.Immutable.ImmutableSortedSet`1+Enumerator[double]:this (FullOpts) -11 (-12.94 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[int]:GetEnumerator(System.Collections.Immutable.ImmutableSortedSet`1+Builder[int]):System.Collections.Immutable.ImmutableSortedSet`1+Enumerator[int]:this (FullOpts) -11 (-12.94 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[long]:GetEnumerator(System.Collections.Immutable.ImmutableSortedSet`1+Builder[long]):System.Collections.Immutable.ImmutableSortedSet`1+Enumerator[long]:this (FullOpts) -11 (-12.94 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[short]:GetEnumerator(System.Collections.Immutable.ImmutableSortedSet`1+Builder[short]):System.Collections.Immutable.ImmutableSortedSet`1+Enumerator[short]:this (FullOpts) -11 (-12.94 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.Nullable`1[int]]:GetEnumerator(System.Collections.Immutable.ImmutableSortedSet`1+Builder[System.Nullable`1[int]]):System.Collections.Immutable.ImmutableSortedSet`1+Enumerator[System.Nullable`1[int]]:this (FullOpts) -11 (-12.94 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.Numerics.Vector`1[float]]:GetEnumerator(System.Collections.Immutable.ImmutableSortedSet`1+Builder[System.Numerics.Vector`1[float]]):System.Collections.Immutable.ImmutableSortedSet`1+Enumerator[System.Numerics.Vector`1[float]]:this (FullOpts) -11 (-12.94 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[ubyte]:GetEnumerator(System.Collections.Immutable.ImmutableSortedSet`1+Builder[ubyte]):System.Collections.Immutable.ImmutableSortedSet`1+Enumerator[ubyte]:this (FullOpts) -46 (-12.78 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.ECCurve:CreateFromValueAndName(System.String,System.String):System.Security.Cryptography.ECCurve (FullOpts) -27 (-12.74 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RSAOpenSsl+<>c:b__29_1(System.ReadOnlyMemory`1[ubyte]):System.Security.Cryptography.RSAParameters:this (FullOpts) -11 (-12.64 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[double]:GetEnumerator():System.Collections.Immutable.ImmutableSortedSet`1+Enumerator[double]:this (FullOpts) -11 (-12.64 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[int]:GetEnumerator():System.Collections.Immutable.ImmutableSortedSet`1+Enumerator[int]:this (FullOpts) -11 (-12.64 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[long]:GetEnumerator():System.Collections.Immutable.ImmutableSortedSet`1+Enumerator[long]:this (FullOpts) -11 (-12.64 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[short]:GetEnumerator():System.Collections.Immutable.ImmutableSortedSet`1+Enumerator[short]:this (FullOpts) -11 (-12.64 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.Nullable`1[int]]:GetEnumerator():System.Collections.Immutable.ImmutableSortedSet`1+Enumerator[System.Nullable`1[int]]:this (FullOpts) -11 (-12.64 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.Numerics.Vector`1[float]]:GetEnumerator():System.Collections.Immutable.ImmutableSortedSet`1+Enumerator[System.Numerics.Vector`1[float]]:this (FullOpts) -11 (-12.64 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[ubyte]:GetEnumerator():System.Collections.Immutable.ImmutableSortedSet`1+Enumerator[ubyte]:this (FullOpts) -14 (-12.39 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucket[double]:GetEnumerator():System.Collections.Immutable.ImmutableHashSet`1+HashBucket+Enumerator[double]:this (FullOpts) -111 (-12.18 % of base) : System.Text.Json.dasm - System.Text.Json.ReadStack:Push():this (FullOpts) -11 (-12.09 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1[double]:GetEnumerator():System.Collections.Immutable.ImmutableSortedSet`1+Enumerator[double]:this (FullOpts) 906 total methods with Code Size differences (745 improved, 161 regressed), 239632 unchanged. -------------------------------------------------------------------------------- ```

Artifacts:

MihuBot commented 5 months ago

Top method regressions

74 (3.25 % of base) - System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this ```diff ; Assembly listing for method System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 17 single block inlinees; 13 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T04] ( 10, 16 ) ref -> [rbp-0x1E8] this class-hnd EH-live single-def +; V00 this [V00,T04] ( 10, 16 ) ref -> [rbp-0x1F8] this class-hnd EH-live single-def ; V01 arg1 [V01,T07] ( 8, 12 ) ref -> rbx class-hnd single-def ; V02 arg2 [V02,T21] ( 6, 8 ) int -> r15 ; V03 loc0 [V03 ] ( 19, 40 ) struct (136) [rbp-0xB8] do-not-enreg[XSF] must-init addr-exposed ld-addr-op ;* V04 loc1 [V04 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SF] ld-addr-op ; V05 OutArgs [V05 ] ( 1, 1 ) struct (56) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V06 tmp1 [V06 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" ;* V07 tmp2 [V07 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V08 tmp3 [V08 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V09 tmp4 [V09 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V10 tmp5 [V10 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V11 tmp6 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "impAppendStmt" ; V12 tmp7 [V12 ] ( 3, 12 ) struct ( 8) [rbp-0xC0] do-not-enreg[XS] addr-exposed "location for address-of(RValue)" ;* V13 tmp8 [V13 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" -; V14 tmp9 [V14,T05] ( 4, 16 ) ref -> [rbp-0x1F0] class-hnd exact spill-single-def "Single-def Box Helper" +; V14 tmp9 [V14,T05] ( 4, 16 ) ref -> [rbp-0x200] class-hnd exact spill-single-def "Single-def Box Helper" ; V15 tmp10 [V15,T12] ( 3, 12 ) int -> rsi "impSpillLclRefs" ;* V16 tmp11 [V16 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ; V17 tmp12 [V17,T51] ( 6, 4 ) long -> rax "Indirect call through function pointer" ;* V18 tmp13 [V18 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ;* V19 tmp14 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" ; V20 tmp15 [V20 ] ( 5, 10 ) struct (136) [rbp-0x148] do-not-enreg[XSF] must-init addr-exposed ld-addr-op "NewObj constructor temp" ;* V21 tmp16 [V21 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ; V22 tmp17 [V22,T36] ( 4, 7 ) ref -> r13 class-hnd exact single-def "Inlining Arg" ; V23 tmp18 [V23 ] ( 14, 20 ) struct (32) [rbp-0x168] do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" -; V24 tmp19 [V24,T48] ( 3, 4.40) long -> rdi "Inlining Arg" +; V24 tmp19 [V24,T48] ( 3, 4.40) long -> rsi "Inlining Arg" ;* V25 tmp20 [V25 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V26 tmp21 [V26 ] ( 0, 0 ) byref -> zero-ref -; V27 tmp22 [V27,T69] ( 2, 2 ) byref -> rcx single-def -; V28 tmp23 [V28,T71] ( 2, 2 ) int -> rdi +; V27 tmp22 [V27,T69] ( 2, 2 ) byref -> rdi single-def +; V28 tmp23 [V28,T71] ( 2, 2 ) int -> rsi ; V29 tmp24 [V29,T47] ( 6, 5.40) long -> [rbp-0x170] spill-single-def "Inlining Arg" ;* V30 tmp25 [V30 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V31 tmp26 [V31 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ; V32 tmp27 [V32,T72] ( 2, 2 ) struct (32) [rbp-0x190] do-not-enreg[S] must-init "impAppendStmt" -; V33 tmp28 [V33,T60] ( 3, 3 ) ref -> [rbp-0x1F8] class-hnd exact spill-single-def "NewObj constructor temp" +; V33 tmp28 [V33,T60] ( 3, 3 ) ref -> [rbp-0x208] class-hnd exact spill-single-def "NewObj constructor temp" ;* V34 tmp29 [V34 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V35 tmp30 [V35 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ; V36 tmp31 [V36,T56] ( 2, 4 ) ref -> rdi class-hnd exact single-def "Inlining Arg" ;* V37 tmp32 [V37,T80] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ; V38 tmp33 [V38 ] ( 3, 3 ) struct (32) [rbp-0x1B0] do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" ; V39 tmp34 [V39,T59] ( 5, 3.40) long -> [rbp-0x1B8] spill-single-def "Inlining Arg" ;* V40 tmp35 [V40 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ; V41 tmp36 [V41,T73] ( 2, 2 ) long -> rsi "Indirect call through function pointer" ;* V42 tmp37 [V42 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V43 tmp38 [V43 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ; V44 tmp39 [V44,T74] ( 2, 2 ) long -> r13 "Indirect call through function pointer" -; V45 tmp40 [V45,T70] ( 2, 2 ) ref -> [rbp-0x200] class-hnd exact spill-single-def "non-inline candidate call" +; V45 tmp40 [V45,T70] ( 2, 2 ) ref -> [rbp-0x210] class-hnd exact spill-single-def "non-inline candidate call" ; V46 tmp41 [V46,T75] ( 2, 2 ) int -> rax "Inlining Arg" -; V47 tmp42 [V47,T25] ( 3, 8.80) long -> r13 "Inlining Arg" +; V47 tmp42 [V47,T25] ( 3, 8.80) long -> [rbp-0x1C0] spill-single-def "Inlining Arg" ;* V48 tmp43 [V48 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V49 tmp44 [V49 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" -; V50 tmp45 [V50,T09] ( 5, 13.60) long -> [rbp-0x1C0] spill-single-def "Inlining Arg" +; V50 tmp45 [V50,T09] ( 5, 13.60) long -> [rbp-0x1C8] spill-single-def "Inlining Arg" ;* V51 tmp46 [V51 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V52 tmp47 [V52 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ; V53 tmp48 [V53,T22] ( 4, 8.80) long -> rdi "Inlining Arg" ;* V54 tmp49 [V54 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" -; V55 tmp50 [V55,T26] ( 3, 8 ) long -> rdx "Indirect call through function pointer" -; V56 tmp51 [V56,T10] ( 3, 12 ) ref -> [rbp-0x208] class-hnd exact spill-single-def "Inlining Arg" +; V55 tmp50 [V55,T26] ( 3, 8 ) long -> r8 "Indirect call through function pointer" +; V56 tmp51 [V56,T10] ( 3, 12 ) ref -> [rbp-0x218] class-hnd exact spill-single-def "Inlining Arg" ; V57 tmp52 [V57,T39] ( 3, 6 ) int -> rsi "Inline stloc first use temp" ;* V58 tmp53 [V58 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] "Inline stloc first use temp" ; V59 tmp54 [V59,T23] ( 4, 8.80) long -> rdi "Inlining Arg" ;* V60 tmp55 [V60 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ; V61 tmp56 [V61,T82] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" ;* V62 tmp57 [V62 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" ; V63 tmp58 [V63,T83] ( 3, 0 ) ref -> rbx class-hnd exact "NewObj constructor temp" -; V64 tmp59 [V64,T08] ( 6, 13.60) long -> r13 "Inlining Arg" +; V64 tmp59 [V64,T08] ( 6, 13.60) long -> [rbp-0x1D0] "Inlining Arg" ;* V65 tmp60 [V65 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V66 tmp61 [V66 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ; V67 tmp62 [V67,T24] ( 4, 8.80) long -> rdi "Inlining Arg" ;* V68 tmp63 [V68 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" -; V69 tmp64 [V69,T27] ( 3, 8 ) long -> rcx "Indirect call through function pointer" -; V70 tmp65 [V70,T11] ( 3, 12 ) ref -> [rbp-0x210] class-hnd exact spill-single-def "Inlining Arg" +; V69 tmp64 [V69,T27] ( 3, 8 ) long -> rdx "Indirect call through function pointer" +; V70 tmp65 [V70,T11] ( 3, 12 ) ref -> [rbp-0x220] class-hnd exact spill-single-def "Inlining Arg" ; V71 tmp66 [V71,T30] ( 2, 8 ) ref -> rsi class-hnd exact "Inlining Arg" ; V72 tmp67 [V72,T31] ( 2, 8 ) ref -> rax class-hnd exact "Inlining Arg" ;* V73 tmp68 [V73 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" ; V74 tmp69 [V74,T40] ( 2, 4 ) int -> rax "Inline return value spill temp" ;* V75 tmp70 [V75 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ; V76 tmp71 [V76,T41] ( 3, 6 ) int -> rax "Inline stloc first use temp" ; V77 tmp72 [V77,T32] ( 2, 8 ) byref -> rdi "Inlining Arg" ; V78 tmp73 [V78 ] ( 2, 6 ) ubyte -> [rbp-0xC0] do-not-enreg[X] addr-exposed "field V12.hasValue (fldOffset=0x0)" P-DEP ; V79 tmp74 [V79 ] ( 2, 6 ) int -> [rbp-0xBC] do-not-enreg[X] addr-exposed "field V12.value (fldOffset=0x4)" P-DEP -; V80 tmp75 [V80,T57] ( 2, 4 ) ref -> r13 "field V13._key (fldOffset=0x0)" P-INDEP -; V81 tmp76 [V81,T58] ( 2, 4 ) ref -> [rbp-0x218] spill-single-def "field V13._value (fldOffset=0x8)" P-INDEP +; V80 tmp75 [V80,T57] ( 2, 4 ) ref -> [rbp-0x228] spill-single-def "field V13._key (fldOffset=0x0)" P-INDEP +; V81 tmp76 [V81,T58] ( 2, 4 ) ref -> [rbp-0x230] spill-single-def "field V13._value (fldOffset=0x8)" P-INDEP ; V82 tmp77 [V82 ] ( 7, 7.50) ref -> [rbp-0x168] do-not-enreg[X] addr-exposed "field V23._root (fldOffset=0x0)" P-DEP ; V83 tmp78 [V83 ] ( 9, 8 ) ref -> [rbp-0x160] do-not-enreg[X] addr-exposed "field V23._stack (fldOffset=0x8)" P-DEP ; V84 tmp79 [V84 ] ( 5, 6 ) ref -> [rbp-0x158] do-not-enreg[X] addr-exposed "field V23._current (fldOffset=0x10)" P-DEP ; V85 tmp80 [V85 ] ( 5, 6 ) int -> [rbp-0x150] do-not-enreg[X] addr-exposed "field V23._poolUserId (fldOffset=0x18)" P-DEP ;* V86 tmp81 [V86 ] ( 0, 0 ) ref -> zero-ref "V04.[000..008)" ;* V87 tmp82 [V87 ] ( 0, 0 ) ubyte -> zero-ref "V04.[008..009)" ;* V88 tmp83 [V88 ] ( 0, 0 ) int -> zero-ref "V04.[012..016)" -; V89 tmp84 [V89,T37] ( 3, 6 ) ref -> r13 "V58.[000..008)" -; V90 tmp85 [V90,T42] ( 3, 6 ) ubyte -> rax "V58.[008..009)" -; V91 tmp86 [V91,T43] ( 3, 6 ) int -> rcx "V58.[012..016)" +; V89 tmp84 [V89,T37] ( 3, 6 ) ref -> [rbp-0x238] "V58.[000..008)" +; V90 tmp85 [V90,T42] ( 3, 6 ) ubyte -> rcx "V58.[008..009)" +; V91 tmp86 [V91,T43] ( 3, 6 ) int -> rdx "V58.[012..016)" ; V92 tmp87 [V92,T06] ( 4, 16 ) byref -> rsi "Spilling address for field-by-field copy" ; V93 tmp88 [V93,T86] ( 2, 0 ) ref -> rdi single-def "argument with side effect" ; V94 tmp89 [V94,T76] ( 2, 2 ) long -> rdi "argument with side effect" ; V95 tmp90 [V95,T77] ( 2, 2 ) long -> r13 "argument with side effect" ; V96 tmp91 [V96,T03] ( 2, 32 ) long -> rsi "argument with side effect" -; V97 tmp92 [V97,T33] ( 2, 8 ) long -> [rbp-0x1C8] spill-single-def "argument with side effect" -; V98 tmp93 [V98,T34] ( 2, 8 ) long -> [rbp-0x1D0] spill-single-def "argument with side effect" +; V97 tmp92 [V97,T33] ( 2, 8 ) long -> [rbp-0x1D8] spill-single-def "argument with side effect" +; V98 tmp93 [V98,T34] ( 2, 8 ) long -> [rbp-0x1E0] spill-single-def "argument with side effect" ; V99 tmp94 [V99,T35] ( 2, 8 ) long -> rdx "argument with side effect" -; V100 PSPSym [V100,T81] ( 1, 1 ) long -> [rbp-0x228] do-not-enreg[V] "PSPSym" +; V100 PSPSym [V100,T81] ( 1, 1 ) long -> [rbp-0x248] do-not-enreg[V] "PSPSym" ; V101 cse0 [V101,T52] ( 3, 4 ) long -> r14 "CSE #04: conservative" ; V102 cse1 [V102,T53] ( 3, 4 ) long -> r12 "CSE #05: conservative" -; V103 cse2 [V103,T78] ( 3, 1.50) long -> [rbp-0x1D8] spill-single-def "CSE #01: conservative" -; V104 cse3 [V104,T79] ( 3, 1.50) long -> [rbp-0x1E0] spill-single-def "CSE #02: conservative" +; V103 cse2 [V103,T78] ( 3, 1.50) long -> [rbp-0x1E8] spill-single-def "CSE #01: conservative" +; V104 cse3 [V104,T79] ( 3, 1.50) long -> [rbp-0x1F0] spill-single-def "CSE #02: conservative" ; V105 cse4 [V105,T38] ( 3, 6 ) ref -> rsi "CSE #08: moderate" -; V106 rat0 [V106,T49] ( 3, 4.40) long -> rdi "Spilling to split statement for tree" +; V106 rat0 [V106,T49] ( 3, 4.40) long -> rsi "Spilling to split statement for tree" ; V107 rat1 [V107,T54] ( 3, 4 ) long -> r14 "runtime lookup" ; V108 rat2 [V108,T44] ( 3, 5.60) long -> r14 "fgMakeTemp is creating a new local variable" ; V109 rat3 [V109,T55] ( 3, 4 ) long -> r12 "runtime lookup" ; V110 rat4 [V110,T45] ( 3, 5.60) long -> r12 "fgMakeTemp is creating a new local variable" ; V111 rat5 [V111,T65] ( 3, 2 ) long -> registers "runtime lookup" ; V112 rat6 [V112,T61] ( 3, 2.80) long -> rcx "fgMakeTemp is creating a new local variable" ; V113 rat7 [V113,T66] ( 3, 2 ) long -> registers "runtime lookup" ; V114 rat8 [V114,T62] ( 3, 2.80) long -> rdx "fgMakeTemp is creating a new local variable" ; V115 rat9 [V115,T67] ( 3, 2 ) long -> rdi "runtime lookup" ; V116 rat10 [V116,T63] ( 3, 2.80) long -> rax "fgMakeTemp is creating a new local variable" ; V117 rat11 [V117,T68] ( 3, 2 ) long -> rdi "runtime lookup" ; V118 rat12 [V118,T64] ( 3, 2.80) long -> rdi "fgMakeTemp is creating a new local variable" ; V119 rat13 [V119,T13] ( 3, 11.20) long -> rdi "fgMakeTemp is creating a new local variable" -; V120 rat14 [V120,T14] ( 3, 11.20) long -> rdx "fgMakeTemp is creating a new local variable" +; V120 rat14 [V120,T14] ( 3, 11.20) long -> r8 "fgMakeTemp is creating a new local variable" ; V121 rat15 [V121,T28] ( 3, 8 ) long -> rdi "runtime lookup" ; V122 rat16 [V122,T15] ( 3, 11.20) long -> rdi "fgMakeTemp is creating a new local variable" ; V123 rat17 [V123,T16] ( 3, 11.20) long -> rdi "fgMakeTemp is creating a new local variable" -; V124 rat18 [V124,T17] ( 3, 11.20) long -> r13 "fgMakeTemp is creating a new local variable" +; V124 rat18 [V124,T17] ( 3, 11.20) long -> rax "fgMakeTemp is creating a new local variable" ; V125 rat19 [V125,T18] ( 3, 11.20) long -> rdi "fgMakeTemp is creating a new local variable" -; V126 rat20 [V126,T19] ( 3, 11.20) long -> rcx "fgMakeTemp is creating a new local variable" +; V126 rat20 [V126,T19] ( 3, 11.20) long -> rdx "fgMakeTemp is creating a new local variable" ; V127 rat21 [V127,T29] ( 3, 8 ) long -> rdi "runtime lookup" ; V128 rat22 [V128,T20] ( 3, 11.20) long -> rdi "fgMakeTemp is creating a new local variable" ; V129 rat23 [V129,T01] ( 3, 35.20) long -> rdi "Spilling to split statement for tree" ; V130 rat24 [V130,T02] ( 3, 32 ) long -> rsi "runtime lookup" ; V131 rat25 [V131,T00] ( 3, 44.80) long -> rsi "fgMakeTemp is creating a new local variable" ; V132 rat26 [V132,T50] ( 3, 4.40) long -> rdi "Spilling to split statement for tree" ; V133 rat27 [V133,T46] ( 3, 5.60) long -> rax "fgMakeTemp is creating a new local variable" ; V134 rat28 [V134,T84] ( 3, 0 ) long -> rdi "Spilling to split statement for tree" ; V135 rat29 [V135,T85] ( 3, 0 ) long -> rax "fgMakeTemp is creating a new local variable" ; -; Lcl frame size = 568 +; Lcl frame size = 600 G_M38819_IG01: push rbp push r15 push r14 push r13 push r12 push rbx - sub rsp, 568 - lea rbp, [rsp+0x260] + sub rsp, 600 + lea rbp, [rsp+0x280] vxorps xmm8, xmm8, xmm8 mov rax, -384 vmovdqa xmmword ptr [rbp+rax-0x30], xmm8 vmovdqa xmmword ptr [rbp+rax-0x20], xmm8 vmovdqa xmmword ptr [rbp+rax-0x10], xmm8 add rax, 48 jne SHORT -5 instr - mov qword ptr [rbp-0x228], rsp + mov qword ptr [rbp-0x248], rsp mov qword ptr [rbp-0x30], rdi - mov gword ptr [rbp-0x1E8], rdi - mov r8, rdi + mov gword ptr [rbp-0x1F8], rdi mov rbx, rsi mov r15d, edx - ;; size=91 bbWeight=1 PerfScore 18.33 + ;; size=88 bbWeight=1 PerfScore 18.08 G_M38819_IG02: test rbx, rbx - je G_M38819_IG72 + je G_M38819_IG73 test r15d, r15d - jl G_M38819_IG73 - mov edi, dword ptr [rbx+0x08] - test edi, edi - jl G_M38819_IG71 - mov esi, r15d - add esi, dword ptr [r8+0x28] - cmp edi, esi - jl G_M38819_IG73 - mov rdi, qword ptr [r8] - mov rsi, qword ptr [rdi+0x30] - mov rsi, qword ptr [rsi] - mov r14, qword ptr [rsi+0x60] + jl G_M38819_IG74 + mov esi, dword ptr [rbx+0x08] + test esi, esi + jl G_M38819_IG72 + mov eax, r15d + add eax, dword ptr [rdi+0x28] + cmp esi, eax + jl G_M38819_IG74 + mov rsi, qword ptr [rdi] + mov rax, qword ptr [rsi+0x30] + mov rax, qword ptr [rax] + mov r14, qword ptr [rax+0x60] test r14, r14 je SHORT G_M38819_IG04 - ;; size=63 bbWeight=1 PerfScore 19.50 + ;; size=62 bbWeight=1 PerfScore 19.50 G_M38819_IG03: jmp SHORT G_M38819_IG05 ;; size=2 bbWeight=0.80 PerfScore 1.60 G_M38819_IG04: + mov rdi, rsi mov rsi, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov r14, rax - ;; size=18 bbWeight=0.20 PerfScore 0.30 + ;; size=21 bbWeight=0.20 PerfScore 0.35 G_M38819_IG05: - mov rdi, r14 - mov r8, gword ptr [rbp-0x1E8] - mov r13, gword ptr [r8+0x08] - mov gword ptr [rbp-0x148], r8 - mov rsi, qword ptr [rdi+0x30] - mov rsi, qword ptr [rsi] - mov r12, qword ptr [rsi+0x18] + mov rsi, r14 + mov rdi, gword ptr [rbp-0x1F8] + mov r13, gword ptr [rdi+0x08] + mov gword ptr [rbp-0x148], rdi + mov rax, qword ptr [rsi+0x30] + mov rax, qword ptr [rax] + mov r12, qword ptr [rax+0x18] test r12, r12 je SHORT G_M38819_IG07 ;; size=37 bbWeight=1 PerfScore 11.50 G_M38819_IG06: jmp SHORT G_M38819_IG08 ;; size=2 bbWeight=0.80 PerfScore 1.60 G_M38819_IG07: + mov rdi, rsi mov rsi, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov r12, rax - ;; size=18 bbWeight=0.20 PerfScore 0.30 + ;; size=21 bbWeight=0.20 PerfScore 0.35 G_M38819_IG08: mov qword ptr [rbp-0x170], r12 test r13, r13 - je G_M38819_IG74 + je G_M38819_IG75 mov gword ptr [rbp-0x168], r13 xor rcx, rcx mov gword ptr [rbp-0x158], rcx mov rcx, 0xD1FFAB1E ; code for System.Collections.Immutable.SecureObjectPool:NewId():int call [rcx]System.Collections.Immutable.SecureObjectPool:NewId():int mov dword ptr [rbp-0x150], eax xor rdi, rdi mov gword ptr [rbp-0x160], rdi mov rdi, gword ptr [rbp-0x168] cmp gword ptr [rdi+0x08], 0 je G_M38819_IG28 ;; size=77 bbWeight=1 PerfScore 15.00 G_M38819_IG09: mov rax, qword ptr [rbp-0x170] mov rdi, qword ptr [rax+0x30] mov rdi, qword ptr [rdi] mov rcx, qword ptr [rdi+0x18] test rcx, rcx je SHORT G_M38819_IG11 ;; size=23 bbWeight=0.50 PerfScore 4.12 G_M38819_IG10: jmp SHORT G_M38819_IG12 ;; size=2 bbWeight=0.40 PerfScore 0.80 G_M38819_IG11: mov rdi, rax mov rsi, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov rcx, rax mov rax, qword ptr [rbp-0x170] ;; size=28 bbWeight=0.10 PerfScore 0.28 G_M38819_IG12: mov rdi, rcx - mov qword ptr [rbp-0x1E0], rdi + mov qword ptr [rbp-0x1F0], rdi mov rcx, rdi mov qword ptr [rbp-0x1B8], rcx ;; size=20 bbWeight=0.50 PerfScore 1.25 G_M38819_IG13: vmovdqu ymm0, ymmword ptr [rbp-0x168] vmovdqu ymmword ptr [rbp-0x1B0], ymm0 ;; size=16 bbWeight=0.50 PerfScore 2.50 G_M38819_IG14: mov rsi, qword ptr [rcx+0x30] mov rsi, qword ptr [rsi] mov rdx, qword ptr [rsi+0x18] test rdx, rdx je SHORT G_M38819_IG16 ;; size=16 bbWeight=0.50 PerfScore 3.62 G_M38819_IG15: jmp SHORT G_M38819_IG17 ;; size=2 bbWeight=0.40 PerfScore 0.80 G_M38819_IG16: mov rdi, rcx mov rsi, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov rdx, rax ;; size=21 bbWeight=0.10 PerfScore 0.18 G_M38819_IG17: - mov qword ptr [rbp-0x1D8], rdx + mov qword ptr [rbp-0x1E8], rdx mov rsi, rdx lea rdi, [rbp-0x1B0] call rsi cmp eax, -1 je SHORT G_M38819_IG21 mov rdi, qword ptr [rbp-0x1B8] mov rsi, qword ptr [rdi+0x30] mov rsi, qword ptr [rsi] mov rax, qword ptr [rsi+0x20] test rax, rax je SHORT G_M38819_IG19 ;; size=47 bbWeight=0.50 PerfScore 7.12 G_M38819_IG18: mov rdi, rax jmp SHORT G_M38819_IG20 ;; size=5 bbWeight=0.40 PerfScore 0.90 G_M38819_IG19: mov rsi, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov rdi, rax ;; size=18 bbWeight=0.10 PerfScore 0.15 G_M38819_IG20: lea rsi, [rbp-0x160] mov rax, 0xD1FFAB1E ; code for System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryTake(byref):ubyte call [rax]System.Collections.Immutable.AllocFreeConcurrentStack`1[System.__Canon]:TryTake(byref):ubyte test eax, eax je SHORT G_M38819_IG21 - mov r13, qword ptr [rbp-0x1D8] + mov r13, qword ptr [rbp-0x1E8] mov rax, gword ptr [rbp-0x160] - mov gword ptr [rbp-0x200], rax + mov gword ptr [rbp-0x210], rax lea rdi, [rbp-0x1B0] call r13 - mov r13, gword ptr [rbp-0x200] + mov r13, gword ptr [rbp-0x210] mov dword ptr [r13+0x10], eax jmp G_M38819_IG27 ;; size=70 bbWeight=0.50 PerfScore 7.75 G_M38819_IG21: xor rdi, rdi mov gword ptr [rbp-0x160], rdi ;; size=9 bbWeight=0.50 PerfScore 0.62 G_M38819_IG22: vmovdqu ymm0, ymmword ptr [rbp-0x168] vmovdqu ymmword ptr [rbp-0x190], ymm0 ;; size=16 bbWeight=0.50 PerfScore 2.50 G_M38819_IG23: mov rax, qword ptr [rbp-0x170] mov rdi, qword ptr [rax+0x30] mov rdi, qword ptr [rdi] mov rdi, qword ptr [rdi+0x20] test rdi, rdi je SHORT G_M38819_IG25 ;; size=23 bbWeight=0.50 PerfScore 4.12 G_M38819_IG24: jmp SHORT G_M38819_IG26 ;; size=2 bbWeight=0.40 PerfScore 0.80 G_M38819_IG25: mov rdi, rax mov rsi, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov rdi, rax ;; size=21 bbWeight=0.10 PerfScore 0.18 G_M38819_IG26: call CORINFO_HELP_NEWSFAST - mov gword ptr [rbp-0x1F8], rax + mov gword ptr [rbp-0x208], rax movzx rsi, byte ptr [r13+0x1D] mov rdi, rax mov rcx, 0xD1FFAB1E ; code for System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:.ctor(int):this call [rcx]System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]:.ctor(int):this - mov r13, qword ptr [rbp-0x1E0] + mov r13, qword ptr [rbp-0x1F0] lea rdi, [rsp] lea rsi, [rbp-0x190] mov rcx, gword ptr [rsi] mov gword ptr [rsp], rcx add rsi, 8 add rdi, 8 mov rcx, gword ptr [rsi] mov gword ptr [rsp+0x08], rcx add rsi, 8 add rdi, 8 mov rcx, gword ptr [rsi] mov gword ptr [rsp+0x10], rcx add rsi, 8 add rdi, 8 movsq mov rdi, r13 - mov rsi, gword ptr [rbp-0x1F8] + mov rsi, gword ptr [rbp-0x208] mov rax, 0xD1FFAB1E ; code for System.Collections.Immutable.SecureObjectPool`2[System.__Canon,System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]]:PrepNew(System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.__Canon):System.Collections.Immutable.SecurePooledObject`1[System.__Canon] call [rax]System.Collections.Immutable.SecureObjectPool`2[System.__Canon,System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]]:PrepNew(System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]],System.__Canon):System.Collections.Immutable.SecurePooledObject`1[System.__Canon] mov gword ptr [rbp-0x160], rax ;; size=128 bbWeight=0.50 PerfScore 13.25 G_M38819_IG27: lea rdi, [rbp-0x168] mov rsi, qword ptr [rbp-0x170] mov rdx, gword ptr [rbp-0x168] mov rax, 0xD1FFAB1E ; code for System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]):this call [rax]System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]):this ;; size=33 bbWeight=0.50 PerfScore 2.88 G_M38819_IG28: vmovdqu ymm0, ymmword ptr [rbp-0x168] vmovdqu ymmword ptr [rbp-0x138], ymm0 ;; size=16 bbWeight=1 PerfScore 5.00 G_M38819_IG29: vxorps ymm0, ymm0, ymm0 vmovdqu ymmword ptr [rbp-0x118], ymm0 vmovdqu ymmword ptr [rbp-0xF8], ymm0 vmovdqu ymmword ptr [rbp-0xE0], ymm0 - lea rcx, bword ptr [rbp-0x148] - mov r8, gword ptr [rbp-0x1E8] - mov edi, dword ptr [r8+0x2C] - mov dword ptr [rcx+0x08], edi + lea rdi, bword ptr [rbp-0x148] + mov r13, gword ptr [rbp-0x1F8] + mov esi, dword ptr [r13+0x2C] + mov dword ptr [rdi+0x08], esi lea rdi, bword ptr [rbp-0xB8] - lea rsi, bword ptr [rbp-0x148] - mov ecx, 17 - rep movsq - ;; size=71 bbWeight=1 PerfScore 34.08 + lea rsi, [rbp-0x148] + mov edx, 136 + call CORINFO_HELP_ASSIGN_STRUCT + nop + ;; size=74 bbWeight=1 PerfScore 10.33 G_M38819_IG30: - jmp G_M38819_IG54 + jmp G_M38819_IG55 ;; size=5 bbWeight=1 PerfScore 2.00 G_M38819_IG31: - mov r13, r14 - mov rax, r12 - mov qword ptr [rbp-0x1C0], rax + mov qword ptr [rbp-0x1C0], r14 + mov rcx, r12 + mov qword ptr [rbp-0x1C8], rcx cmp gword ptr [rbp-0xA8], 0 je G_M38819_IG38 cmp gword ptr [rbp-0xA0], 0 je G_M38819_IG42 - mov rdi, qword ptr [rax+0x30] + mov rdi, qword ptr [rcx+0x30] mov rdi, qword ptr [rdi] mov rdi, qword ptr [rdi+0x30] test rdi, rdi je SHORT G_M38819_IG33 - ;; size=57 bbWeight=2 PerfScore 29.50 + ;; size=61 bbWeight=2 PerfScore 31.00 G_M38819_IG32: jmp SHORT G_M38819_IG34 ;; size=2 bbWeight=1.60 PerfScore 3.20 G_M38819_IG33: - mov rdi, rax + mov rdi, rcx mov rsi, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov rdi, rax - mov rax, qword ptr [rbp-0x1C0] + mov rcx, qword ptr [rbp-0x1C8] ;; size=28 bbWeight=0.40 PerfScore 1.10 G_M38819_IG34: - mov rcx, gword ptr [rbp-0xA0] - mov gword ptr [rbp-0x208], rcx - cmp byte ptr [rcx], cl + mov rdx, gword ptr [rbp-0xA0] + mov gword ptr [rbp-0x218], rdx + cmp byte ptr [rdx], dl mov rsi, qword ptr [rdi+0x10] - mov rdx, qword ptr [rsi+0x10] - test rdx, rdx + mov r8, qword ptr [rsi+0x10] + test r8, r8 je SHORT G_M38819_IG36 ;; size=29 bbWeight=2 PerfScore 20.50 G_M38819_IG35: jmp SHORT G_M38819_IG37 ;; size=2 bbWeight=1.60 PerfScore 3.20 G_M38819_IG36: mov rsi, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_METHOD - mov rdx, rax + mov r8, rax ;; size=18 bbWeight=0.40 PerfScore 0.60 G_M38819_IG37: lea rdi, [rbp-0xA8] - call rdx - mov rdi, gword ptr [rbp-0x208] + call r8 + mov rdi, gword ptr [rbp-0x218] cmp eax, dword ptr [rdi+0x10] - mov rax, qword ptr [rbp-0x1C0] + mov rcx, qword ptr [rbp-0x1C8] je G_M38819_IG42 - ;; size=32 bbWeight=2 PerfScore 19.00 + ;; size=33 bbWeight=2 PerfScore 19.00 G_M38819_IG38: - mov rdi, qword ptr [rax+0x30] + mov rdi, qword ptr [rcx+0x30] mov rdi, qword ptr [rdi] mov rdi, qword ptr [rdi+0x28] test rdi, rdi je SHORT G_M38819_IG40 ;; size=16 bbWeight=2 PerfScore 14.50 G_M38819_IG39: jmp SHORT G_M38819_IG41 ;; size=2 bbWeight=1.60 PerfScore 3.20 G_M38819_IG40: - mov rdi, rax + mov rdi, rcx mov rsi, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov rdi, rax ;; size=21 bbWeight=0.40 PerfScore 0.70 G_M38819_IG41: - mov qword ptr [rbp-0x1C8], rdi + mov qword ptr [rbp-0x1D8], rdi lea rdi, [rsp] lea rsi, [rbp-0xA8] mov rcx, gword ptr [rsi] mov gword ptr [rsp], rcx add rsi, 8 add rdi, 8 mov rcx, gword ptr [rsi] mov gword ptr [rsp+0x08], rcx add rsi, 8 add rdi, 8 mov rcx, gword ptr [rsi] mov gword ptr [rsp+0x10], rcx add rsi, 8 add rdi, 8 movsq - mov rdi, qword ptr [rbp-0x1C8] - mov rax, 0xD1FFAB1E ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]) - call [rax]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]) + mov rdi, qword ptr [rbp-0x1D8] + mov rcx, 0xD1FFAB1E ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]) + call [rcx]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]) ;; size=86 bbWeight=2 PerfScore 35.50 G_M38819_IG42: - mov rdi, qword ptr [r13+0x30] + mov rax, qword ptr [rbp-0x1C0] + mov rdi, qword ptr [rax+0x30] mov rdi, qword ptr [rdi] mov rdi, qword ptr [rdi+0x20] test rdi, rdi je SHORT G_M38819_IG44 - ;; size=16 bbWeight=2 PerfScore 14.50 + ;; size=23 bbWeight=2 PerfScore 16.50 G_M38819_IG43: jmp SHORT G_M38819_IG45 ;; size=2 bbWeight=1.60 PerfScore 3.20 G_M38819_IG44: - mov rdi, r13 + mov rdi, rax mov rsi, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov rdi, rax ;; size=21 bbWeight=0.40 PerfScore 0.70 G_M38819_IG45: mov esi, dword ptr [rbp-0x88] cmp esi, 1 - je G_M38819_IG59 + je G_M38819_IG60 cmp esi, 2 - jne G_M38819_IG57 + jne G_M38819_IG58 mov rsi, qword ptr [rdi+0x30] mov rsi, qword ptr [rsi] - mov r13, qword ptr [rsi+0x18] - test r13, r13 - je G_M38819_IG60 + mov rax, qword ptr [rsi+0x18] + test rax, rax + je G_M38819_IG61 ;; size=44 bbWeight=2 PerfScore 21.50 G_M38819_IG46: cmp gword ptr [rbp-0x60], 0 - je SHORT G_M38819_IG49 + je SHORT G_M38819_IG50 cmp gword ptr [rbp-0x58], 0 - je G_M38819_IG51 - mov rdi, qword ptr [r13+0x30] + je G_M38819_IG52 + mov rdi, qword ptr [rax+0x30] mov rdi, qword ptr [rdi] mov rdi, qword ptr [rdi+0x18] test rdi, rdi - je G_M38819_IG61 + je G_M38819_IG62 ;; size=38 bbWeight=2 PerfScore 26.50 G_M38819_IG47: - mov rax, gword ptr [rbp-0x58] - mov gword ptr [rbp-0x210], rax - cmp byte ptr [rax], al + mov rcx, gword ptr [rbp-0x58] + mov gword ptr [rbp-0x220], rcx + cmp byte ptr [rcx], cl mov rsi, qword ptr [rdi+0x10] - mov rcx, qword ptr [rsi+0x10] - test rcx, rcx - je G_M38819_IG62 + mov rdx, qword ptr [rsi+0x10] + test rdx, rdx + je G_M38819_IG63 ;; size=30 bbWeight=2 PerfScore 20.50 G_M38819_IG48: + mov qword ptr [rbp-0x1D0], rax + ;; size=7 bbWeight=1.60 PerfScore 1.60 +G_M38819_IG49: lea rdi, [rbp-0x68] - call rcx - mov rdi, gword ptr [rbp-0x210] + call rdx + mov rdi, gword ptr [rbp-0x220] cmp eax, dword ptr [rdi+0x10] - je SHORT G_M38819_IG51 - ;; size=18 bbWeight=2 PerfScore 17.00 -G_M38819_IG49: - mov rdi, qword ptr [r13+0x30] + mov rax, qword ptr [rbp-0x1D0] + je SHORT G_M38819_IG52 + ;; size=25 bbWeight=2 PerfScore 19.00 +G_M38819_IG50: + mov rdi, qword ptr [rax+0x30] mov rdi, qword ptr [rdi] mov rdi, qword ptr [rdi+0x10] test rdi, rdi - je G_M38819_IG63 + je G_M38819_IG64 ;; size=20 bbWeight=2 PerfScore 14.50 -G_M38819_IG50: - mov qword ptr [rbp-0x1D0], rdi +G_M38819_IG51: + mov qword ptr [rbp-0x1E0], rdi lea rdi, [rsp] lea rsi, [rbp-0x68] mov rcx, gword ptr [rsi] mov gword ptr [rsp], rcx add rsi, 8 add rdi, 8 mov rcx, gword ptr [rsi] mov gword ptr [rsp+0x08], rcx add rsi, 8 add rdi, 8 mov rcx, gword ptr [rsi] mov gword ptr [rsp+0x10], rcx add rsi, 8 add rdi, 8 mov rcx, gword ptr [rsi] mov gword ptr [rsp+0x18], rcx add rsi, 8 add rdi, 8 movsq movsq movsq - mov rdi, qword ptr [rbp-0x1D0] + mov rdi, qword ptr [rbp-0x1E0] mov rax, 0xD1FFAB1E ; code for System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]]) call [rax]System.Collections.Immutable.Requires:FailObjectDisposed[System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]]](System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]]) ;; size=103 bbWeight=2 PerfScore 46.50 -G_M38819_IG51: +G_M38819_IG52: mov rsi, gword ptr [rbp-0x50] test rsi, rsi - je G_M38819_IG56 + je G_M38819_IG57 add rsi, 32 - mov r13, gword ptr [rsi] - movzx rax, byte ptr [rsi+0x08] - mov ecx, dword ptr [rsi+0x0C] - ;; size=27 bbWeight=2 PerfScore 17.00 -G_M38819_IG52: - mov byte ptr [rbp-0xC0], al - mov dword ptr [rbp-0xBC], ecx + mov rax, gword ptr [rsi] + mov gword ptr [rbp-0x238], rax + movzx rcx, byte ptr [rsi+0x08] + mov edx, dword ptr [rsi+0x0C] + ;; size=34 bbWeight=2 PerfScore 19.00 +G_M38819_IG53: + mov byte ptr [rbp-0xC0], cl + mov dword ptr [rbp-0xBC], edx lea rsi, [rbp-0xC0] mov rdi, 0xD1FFAB1E ; System.Nullable`1[int] call CORINFO_HELP_BOX_NULLABLE - mov gword ptr [rbp-0x218], rax + mov rcx, gword ptr [rbp-0x238] + mov gword ptr [rbp-0x228], rcx + mov gword ptr [rbp-0x230], rax mov rdi, 0xD1FFAB1E ; System.Collections.DictionaryEntry call CORINFO_HELP_NEWSFAST - mov gword ptr [rbp-0x1F0], rax + mov gword ptr [rbp-0x200], rax lea rdi, bword ptr [rax+0x08] - mov rsi, r13 + mov rsi, gword ptr [rbp-0x228] call CORINFO_HELP_ASSIGN_REF - mov r13, gword ptr [rbp-0x1F0] - lea rdi, bword ptr [r13+0x10] - mov rsi, gword ptr [rbp-0x218] + mov rax, gword ptr [rbp-0x200] + lea rdi, bword ptr [rax+0x10] + mov rsi, gword ptr [rbp-0x230] call CORINFO_HELP_ASSIGN_REF mov esi, r15d lea r15d, [rsi+0x01] mov rdi, qword ptr [rbx] mov eax, dword ptr [rdi+0x04] add eax, -24 shr eax, 3 - jne G_M38819_IG64 - ;; size=123 bbWeight=2 PerfScore 37.50 -G_M38819_IG53: + jne G_M38819_IG65 + ;; size=141 bbWeight=2 PerfScore 43.00 +G_M38819_IG54: mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Array:GetFlattenedIndex(int):long:this call [rax]System.Array:GetFlattenedIndex(int):long:this mov rdx, rax - mov rsi, r13 + mov rsi, gword ptr [rbp-0x200] mov rdi, rbx call System.Array:InternalSetValue(System.Object,long):this - mov r8, gword ptr [rbp-0x1E8] - ;; size=36 bbWeight=2 PerfScore 12.50 -G_M38819_IG54: - mov rdi, qword ptr [r8] + ;; size=33 bbWeight=2 PerfScore 12.00 +G_M38819_IG55: + mov rdi, qword ptr [r13] mov rsi, qword ptr [rdi+0x30] mov rsi, qword ptr [rsi] mov rsi, qword ptr [rsi+0x60] test rsi, rsi - je G_M38819_IG65 - ;; size=23 bbWeight=8 PerfScore 74.00 -G_M38819_IG55: + je G_M38819_IG66 + ;; size=24 bbWeight=8 PerfScore 74.00 +G_M38819_IG56: lea rdi, [rbp-0xB8] mov rax, 0xD1FFAB1E ; code for System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:MoveNext():ubyte:this call [rax]System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]:MoveNext():ubyte:this test eax, eax jne G_M38819_IG31 - jmp G_M38819_IG66 + jmp G_M38819_IG67 ;; size=32 bbWeight=8 PerfScore 56.00 -G_M38819_IG56: +G_M38819_IG57: mov rdi, 0xD1FFAB1E ; System.InvalidOperationException call CORINFO_HELP_NEWSFAST mov rbx, rax mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.InvalidOperationException:.ctor():this call [rax]System.InvalidOperationException:.ctor():this mov rdi, rbx call CORINFO_HELP_THROW int3 ;; size=42 bbWeight=0 PerfScore 0.00 -G_M38819_IG57: +G_M38819_IG58: mov rdi, 0xD1FFAB1E ; System.InvalidOperationException call CORINFO_HELP_NEWSFAST mov rbx, rax mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.InvalidOperationException:.ctor():this call [rax]System.InvalidOperationException:.ctor():this mov rdi, rbx call CORINFO_HELP_THROW int3 ;; size=42 bbWeight=0 PerfScore 0.00 -G_M38819_IG58: +G_M38819_IG59: mov edi, 58 mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentException(int) call [rax]System.ThrowHelper:ThrowArgumentException(int) int3 ;; size=18 bbWeight=0 PerfScore 0.00 -G_M38819_IG59: - mov r13, gword ptr [rbp-0x78] - movzx rax, byte ptr [rbp-0x70] - mov ecx, dword ptr [rbp-0x6C] - jmp G_M38819_IG52 - ;; size=16 bbWeight=2 PerfScore 10.00 G_M38819_IG60: + mov rax, gword ptr [rbp-0x78] + movzx rcx, byte ptr [rbp-0x70] + mov edx, dword ptr [rbp-0x6C] + mov gword ptr [rbp-0x238], rax + jmp G_M38819_IG53 + ;; size=23 bbWeight=2 PerfScore 12.00 +G_M38819_IG61: mov rsi, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS - mov r13, rax jmp G_M38819_IG46 - ;; size=23 bbWeight=0.40 PerfScore 1.40 -G_M38819_IG61: - mov rdi, r13 + ;; size=20 bbWeight=0.40 PerfScore 1.30 +G_M38819_IG62: + mov qword ptr [rbp-0x1D0], rax + mov rdi, rax mov rsi, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov rdi, rax + mov rax, qword ptr [rbp-0x1D0] jmp G_M38819_IG47 - ;; size=26 bbWeight=0.40 PerfScore 1.50 -G_M38819_IG62: + ;; size=40 bbWeight=0.40 PerfScore 2.30 +G_M38819_IG63: + mov qword ptr [rbp-0x1D0], rax mov rsi, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_METHOD - mov rcx, rax - jmp G_M38819_IG48 - ;; size=23 bbWeight=0.40 PerfScore 1.40 -G_M38819_IG63: - mov rdi, r13 + mov rdx, rax + jmp G_M38819_IG49 + ;; size=30 bbWeight=0.40 PerfScore 1.80 +G_M38819_IG64: + mov rdi, rax mov rsi, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov rdi, rax - jmp G_M38819_IG50 + jmp G_M38819_IG51 ;; size=26 bbWeight=0.40 PerfScore 1.50 -G_M38819_IG64: +G_M38819_IG65: cmp eax, 1 - jne G_M38819_IG58 - jmp G_M38819_IG53 + jne G_M38819_IG59 + jmp G_M38819_IG54 ;; size=14 bbWeight=2 PerfScore 6.50 -G_M38819_IG65: +G_M38819_IG66: mov rsi, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS mov rsi, rax - jmp G_M38819_IG55 + jmp G_M38819_IG56 ;; size=23 bbWeight=1.60 PerfScore 5.60 -G_M38819_IG66: - mov r8, gword ptr [rbp-0x1E8] - mov rdi, qword ptr [r8] +G_M38819_IG67: + mov rdi, qword ptr [r13] mov rsi, qword ptr [rdi+0x30] mov rsi, qword ptr [rsi] mov rax, qword ptr [rsi+0x80] test rax, rax - je SHORT G_M38819_IG68 - ;; size=29 bbWeight=1 PerfScore 10.25 -G_M38819_IG67: - jmp SHORT G_M38819_IG69 - ;; size=2 bbWeight=0.80 PerfScore 1.60 + je SHORT G_M38819_IG69 + ;; size=23 bbWeight=1 PerfScore 9.25 G_M38819_IG68: + jmp SHORT G_M38819_IG70 + ;; size=2 bbWeight=0.80 PerfScore 1.60 +G_M38819_IG69: mov rsi, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS ;; size=15 bbWeight=0.20 PerfScore 0.25 -G_M38819_IG69: +G_M38819_IG70: lea rdi, [rbp-0xB8] call rax nop ;; size=10 bbWeight=1 PerfScore 3.75 -G_M38819_IG70: +G_M38819_IG71: vzeroupper - add rsp, 568 + add rsp, 600 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=21 bbWeight=1 PerfScore 5.25 -G_M38819_IG71: +G_M38819_IG72: call CORINFO_HELP_OVERFLOW int3 ;; size=6 bbWeight=0 PerfScore 0.00 -G_M38819_IG72: +G_M38819_IG73: mov edi, 0x497 mov rsi, 0xD1FFAB1E call CORINFO_HELP_STRCNS mov rdi, rax mov rax, 0xD1FFAB1E ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String) call [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String) int3 ;; size=36 bbWeight=0 PerfScore 0.00 -G_M38819_IG73: +G_M38819_IG74: mov edi, 0x4A3 mov rsi, 0xD1FFAB1E call CORINFO_HELP_STRCNS mov rdi, rax xor rsi, rsi mov rax, 0xD1FFAB1E ; code for System.Collections.Immutable.Requires:FailRange(System.String,System.String) call [rax]System.Collections.Immutable.Requires:FailRange(System.String,System.String) int3 ;; size=38 bbWeight=0 PerfScore 0.00 -G_M38819_IG74: +G_M38819_IG75: mov edi, 0x45F mov rsi, 0xD1FFAB1E call CORINFO_HELP_STRCNS mov rdi, rax mov rax, 0xD1FFAB1E ; code for System.Collections.Immutable.Requires:FailArgumentNullException(System.String) call [rax]System.Collections.Immutable.Requires:FailArgumentNullException(System.String) int3 ;; size=36 bbWeight=0 PerfScore 0.00 -G_M38819_IG75: +G_M38819_IG76: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 72 mov rbp, qword ptr [rdi+0x38] mov qword ptr [rsp+0x38], rbp - lea rbp, [rbp+0x260] + lea rbp, [rbp+0x280] ;; size=30 bbWeight=0 PerfScore 0.00 -G_M38819_IG76: - mov r8, gword ptr [rbp-0x1E8] - mov rdi, qword ptr [r8] +G_M38819_IG77: + mov r13, gword ptr [rbp-0x1F8] + mov rdi, qword ptr [r13] mov rsi, qword ptr [rdi+0x30] mov rsi, qword ptr [rsi] mov rax, qword ptr [rsi+0x80] test rax, rax - je SHORT G_M38819_IG77 - jmp SHORT G_M38819_IG78 - ;; size=31 bbWeight=0 PerfScore 0.00 -G_M38819_IG77: + je SHORT G_M38819_IG78 + jmp SHORT G_M38819_IG79 + ;; size=32 bbWeight=0 PerfScore 0.00 +G_M38819_IG78: mov rsi, 0xD1FFAB1E ; global ptr call CORINFO_HELP_RUNTIMEHANDLE_CLASS ;; size=15 bbWeight=0 PerfScore 0.00 -G_M38819_IG78: +G_M38819_IG79: lea rdi, [rbp-0xB8] call rax nop ;; size=10 bbWeight=0 PerfScore 0.00 -G_M38819_IG79: +G_M38819_IG80: vzeroupper add rsp, 72 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=18 bbWeight=0 PerfScore 0.00 -; Total bytes of code 2276, prolog size 91, PerfScore 704.94, instruction count 503, allocated bytes for code 2276 (MethodHash=5858685c) for method System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) +; Total bytes of code 2350, prolog size 88, PerfScore 697.24, instruction count 512, allocated bytes for code 2350 (MethodHash=5858685c) for method System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]:System.Collections.ICollection.CopyTo(System.Array,int):this (FullOpts) ```

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

MihuBot commented 5 months ago

Top method improvements

-223 (-30.26 % of base) - System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__6:MoveNext():ubyte:this ```diff ; Assembly listing for method System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__6:MoveNext():ubyte:this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 5 single block inlinees; 2 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T03] ( 14, 20 ) ref -> [rbp-0x130] this class-hnd EH-live single-def d__6> -; V01 loc0 [V01,T09] ( 4, 6 ) ubyte -> rax -; V02 loc1 [V02,T14] ( 3, 2.50) int -> rdi +; V00 this [V00,T05] ( 14, 20 ) ref -> [rbp-0x130] this class-hnd EH-live single-def d__6> +; V01 loc0 [V01,T11] ( 4, 6 ) ubyte -> rax +; V02 loc1 [V02,T17] ( 3, 2.50) int -> rsi ;* V03 loc2 [V03 ] ( 0, 0 ) struct (264) zero-ref do-not-enreg[SF] ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V05 tmp1 [V05,T12] ( 3, 3 ) ref -> rbx class-hnd single-def "Inlining Arg" -; V06 tmp2 [V06,T13] ( 3, 3 ) struct (280) [rbp-0x128] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" +; V05 tmp1 [V05,T14] ( 3, 3 ) ref -> rbx class-hnd single-def "Inlining Arg" +; V06 tmp2 [V06,T16] ( 3, 3 ) struct (280) [rbp-0x128] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" ;* V07 tmp3 [V07 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" -;* V08 tmp4 [V08,T07] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" -; V09 tmp5 [V09,T00] ( 9, 72 ) byref -> r8 "Inlining Arg" -; V10 tmp6 [V10,T04] ( 4, 16 ) ref -> rdi class-hnd "Inline stloc first use temp" -; V11 tmp7 [V11,T10] ( 3, 4.50) ref -> rsi "V03.[008..016)" +;* V08 tmp4 [V08,T09] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" +; V09 tmp5 [V09,T00] ( 9, 72 ) byref -> rbx "Inlining Arg" +; V10 tmp6 [V10,T06] ( 4, 16 ) ref -> rsi class-hnd "Inline stloc first use temp" +; V11 tmp7 [V11,T12] ( 3, 4.50) ref -> rsi "V03.[008..016)" ;* V12 tmp8 [V12 ] ( 0, 0 ) ref -> zero-ref single-def "V06.[000..008)" ;* V13 tmp9 [V13 ] ( 0, 0 ) int -> zero-ref "V06.[008..012)" -; V14 tmp10 [V14,T15] ( 2, 1 ) int -> r15 "V06.[012..016)" -; V15 tmp11 [V15,T11] ( 4, 4 ) byref -> r8 single-def "Spilling address for field-by-field copy" -; V16 tmp12 [V16,T01] ( 3, 24 ) ref -> rdi "arr expr" -; V17 tmp13 [V17,T02] ( 3, 24 ) int -> rsi "index expr" -; V18 PSPSym [V18,T16] ( 1, 1 ) long -> [rbp-0x140] do-not-enreg[V] "PSPSym" -; V19 cse0 [V19,T06] ( 3, 12 ) int -> rsi "CSE #02: aggressive" -; V20 cse1 [V20,T08] ( 2, 8 ) int -> rsi "CSE #03: aggressive" -; V21 cse2 [V21,T05] ( 3, 12 ) ref -> r9 "CSE #04: aggressive" +; V14 tmp10 [V14,T18] ( 2, 1 ) int -> r15 "V06.[012..016)" +; V15 tmp11 [V15,T13] ( 4, 4 ) byref -> rbx single-def "Spilling address for field-by-field copy" +; V16 tmp12 [V16,T01] ( 3, 24 ) ref -> rsi "arr expr" +; V17 tmp13 [V17,T04] ( 3, 24 ) int -> rdx "index expr" +; V18 PSPSym [V18,T19] ( 1, 1 ) long -> [rbp-0x140] do-not-enreg[V] "PSPSym" +; V19 cse0 [V19,T08] ( 3, 12 ) int -> rdx "CSE #02: aggressive" +; V20 cse1 [V20,T10] ( 2, 8 ) int -> rdx "CSE #03: aggressive" +; V21 cse2 [V21,T07] ( 3, 12 ) ref -> r15 "CSE #04: aggressive" +; V22 rat0 [V22,T15] ( 3, 3 ) byref -> rsi "ReplaceWithLclVar is creating a new local variable" +; V23 rat1 [V23,T02] ( 3, 24 ) byref -> rdx "ReplaceWithLclVar is creating a new local variable" +; V24 rat2 [V24,T03] ( 3, 24 ) byref -> rsi "ReplaceWithLclVar is creating a new local variable" ; ; Lcl frame size = 304 G_M24674_IG01: push rbp push r15 push rbx sub rsp, 304 lea rbp, [rsp+0x140] xor eax, eax mov qword ptr [rbp-0x128], rax vxorps xmm8, xmm8, xmm8 vmovdqa xmmword ptr [rbp-0x120], xmm8 vmovdqa xmmword ptr [rbp-0x110], xmm8 mov rax, -240 vmovdqa xmmword ptr [rbp+rax-0x10], xmm8 vmovdqa xmmword ptr [rax+rbp], xmm8 vmovdqa xmmword ptr [rbp+rax+0x10], xmm8 add rax, 48 jne SHORT -5 instr mov qword ptr [rbp-0x140], rsp mov gword ptr [rbp-0x130], rdi - mov rdx, rdi - ;; size=99 bbWeight=1 PerfScore 19.08 + ;; size=96 bbWeight=1 PerfScore 18.83 G_M24674_IG02: - mov edi, dword ptr [rdx+0x20] - test edi, edi + mov esi, dword ptr [rdi+0x20] + test esi, esi je SHORT G_M24674_IG04 ;; size=7 bbWeight=1 PerfScore 3.25 G_M24674_IG03: - cmp edi, 1 - je G_M24674_IG16 + cmp esi, 1 + je G_M24674_IG14 xor eax, eax - jmp G_M24674_IG17 + jmp G_M24674_IG15 ;; size=16 bbWeight=0.50 PerfScore 1.75 G_M24674_IG04: - mov dword ptr [rdx+0x20], -1 - mov rbx, gword ptr [rdx+0x10] + mov dword ptr [rdi+0x20], -1 + mov rbx, gword ptr [rdi+0x10] mov r15d, dword ptr [rbx+0x14] mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_MEMZERO lea rdi, bword ptr [rbp-0x118] mov esi, 264 call [rax]CORINFO_HELP_MEMZERO mov gword ptr [rbp-0x128], rbx - mov rdx, gword ptr [rbp-0x130] - lea r8, bword ptr [rdx+0x28] - mov rdi, r8 - lea rsi, bword ptr [rbp-0x128] - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - ;; size=152 bbWeight=0.50 PerfScore 17.62 -G_M24674_IG05: - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq + mov rdi, gword ptr [rbp-0x130] + lea rbx, bword ptr [rdi+0x28] + mov rsi, rbx + cmp byte ptr [rsi], sil + mov rdi, rsi + lea rsi, [rbp-0x128] + mov edx, 280 + call CORINFO_HELP_ASSIGN_STRUCT xor edi, edi - mov dword ptr [r8+0x08], edi - mov dword ptr [r8+0x0C], r15d - jmp G_M24674_IG16 - ;; size=60 bbWeight=0.50 PerfScore 8.12 -G_M24674_IG06: - mov rsi, gword ptr [rdx+0x40] + mov dword ptr [rbx+0x08], edi + mov dword ptr [rbx+0x0C], r15d + mov rdi, gword ptr [rbp-0x130] + jmp G_M24674_IG14 + ;; size=104 bbWeight=0.50 PerfScore 11.00 +G_M24674_IG05: + mov rdi, gword ptr [rbp-0x130] + mov rsi, gword ptr [rdi+0x40] test rsi, rsi - jne G_M24674_IG15 - ;; size=13 bbWeight=2 PerfScore 6.50 + jne G_M24674_IG13 + ;; size=20 bbWeight=2 PerfScore 8.50 +G_M24674_IG06: + lea rbx, bword ptr [rdi+0x28] + mov r15, gword ptr [rbx] + mov rsi, r15 + mov edx, dword ptr [rbx+0x0C] + cmp edx, dword ptr [rsi+0x14] + jne SHORT G_M24674_IG07 + mov edx, dword ptr [rbx+0x08] + cmp edx, dword ptr [rsi+0x10] + jae SHORT G_M24674_IG09 + mov rsi, gword ptr [rsi+0x08] + cmp edx, dword ptr [rsi+0x08] + jae SHORT G_M24674_IG08 + imul rdx, rdx, 264 + lea rsi, bword ptr [rsi+rdx+0x10] + cmp byte ptr [rsi], sil + lea rdx, bword ptr [rbx+0x10] + cmp byte ptr [rdx], dl + mov rdi, rdx + mov edx, 264 + call CORINFO_HELP_ASSIGN_STRUCT + inc dword ptr [rbx+0x08] + jmp SHORT G_M24674_IG05 + ;; size=74 bbWeight=4 PerfScore 147.00 G_M24674_IG07: - lea r8, bword ptr [rdx+0x28] - mov r9, gword ptr [r8] - mov rdi, r9 - mov esi, dword ptr [r8+0x0C] - cmp esi, dword ptr [rdi+0x14] - jne G_M24674_IG09 - mov esi, dword ptr [r8+0x08] - cmp esi, dword ptr [rdi+0x10] - jae G_M24674_IG11 - mov rdi, gword ptr [rdi+0x08] - cmp esi, dword ptr [rdi+0x08] - jae G_M24674_IG10 - imul rsi, rsi, 264 - lea rsi, bword ptr [rdi+rsi+0x10] - lea rdi, bword ptr [r8+0x10] - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - ;; size=141 bbWeight=4 PerfScore 177.00 -G_M24674_IG08: - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - inc dword ptr [r8+0x08] - jmp G_M24674_IG06 - ;; size=56 bbWeight=4 PerfScore 72.00 -G_M24674_IG09: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion() call [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -G_M24674_IG10: +G_M24674_IG08: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 -G_M24674_IG11: - mov esi, dword ptr [r9+0x10] +G_M24674_IG09: + mov esi, dword ptr [r15+0x10] inc esi - mov dword ptr [r8+0x08], esi - add r8, 16 - xor edi, edi - mov qword ptr [r8], rdi - mov esi, 256 - ;; size=24 bbWeight=4 PerfScore 20.00 -G_M24674_IG12: - mov qword ptr [r8+rsi], rdi - sub rsi, 8 - jne SHORT G_M24674_IG12 - mov dword ptr [rdx+0x20], -1 - lea rdi, bword ptr [rdx+0x28] + mov dword ptr [rbx+0x08], esi + add rbx, 16 xor esi, esi - mov qword ptr [rdi], rsi - mov eax, 272 - ;; size=31 bbWeight=4 PerfScore 21.00 -G_M24674_IG13: - mov qword ptr [rdi+rax], rsi + mov qword ptr [rbx], rsi + mov eax, 256 + ;; size=23 bbWeight=4 PerfScore 20.00 +G_M24674_IG10: + mov qword ptr [rbx+rax], rsi sub rax, 8 - jne SHORT G_M24674_IG13 - ;; size=10 bbWeight=4 PerfScore 9.00 -G_M24674_IG14: + jne SHORT G_M24674_IG10 + mov rdi, gword ptr [rbp-0x130] + mov dword ptr [rdi+0x20], -1 + lea rsi, bword ptr [rdi+0x28] xor eax, eax - jmp SHORT G_M24674_IG17 - ;; size=4 bbWeight=4 PerfScore 9.00 -G_M24674_IG15: - lea rdi, bword ptr [rdx+0x08] + mov qword ptr [rsi], rax + mov ecx, 272 + ;; size=38 bbWeight=4 PerfScore 25.00 +G_M24674_IG11: + mov qword ptr [rsi+rcx], rax + sub rcx, 8 + jne SHORT G_M24674_IG11 + ;; size=10 bbWeight=4 PerfScore 9.00 +G_M24674_IG12: + jmp SHORT G_M24674_IG15 + ;; size=2 bbWeight=4 PerfScore 8.00 +G_M24674_IG13: + lea rdi, bword ptr [rdi+0x08] call CORINFO_HELP_ASSIGN_REF - mov rdx, gword ptr [rbp-0x130] - mov dword ptr [rdx+0x20], 1 + mov rdi, gword ptr [rbp-0x130] + mov dword ptr [rdi+0x20], 1 mov eax, 1 - jmp SHORT G_M24674_IG17 + jmp SHORT G_M24674_IG15 ;; size=30 bbWeight=0.50 PerfScore 2.88 -G_M24674_IG16: - mov dword ptr [rdx+0x20], -3 - jmp G_M24674_IG07 +G_M24674_IG14: + mov dword ptr [rdi+0x20], -3 + jmp G_M24674_IG06 ;; size=12 bbWeight=0.50 PerfScore 1.50 -G_M24674_IG17: +G_M24674_IG15: add rsp, 304 pop rbx pop r15 pop rbp ret ;; size=12 bbWeight=1 PerfScore 2.75 -G_M24674_IG18: +G_M24674_IG16: push rbp push r15 push rbx sub rsp, 16 mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x140] ;; size=22 bbWeight=0 PerfScore 0.00 -G_M24674_IG19: +G_M24674_IG17: mov rdi, gword ptr [rbp-0x130] mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__6:System.IDisposable.Dispose():this call [rax]System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__6:System.IDisposable.Dispose():this nop ;; size=20 bbWeight=0 PerfScore 0.00 -G_M24674_IG20: +G_M24674_IG18: add rsp, 16 pop rbx pop r15 pop rbp ret ;; size=9 bbWeight=0 PerfScore 0.00 -; Total bytes of code 737, prolog size 99, PerfScore 371.46, instruction count 184, allocated bytes for code 737 (MethodHash=50d49f9d) for method System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__6:MoveNext():ubyte:this (FullOpts) +; Total bytes of code 514, prolog size 96, PerfScore 259.46, instruction count 126, allocated bytes for code 514 (MethodHash=50d49f9d) for method System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__6:MoveNext():ubyte:this (FullOpts) ```
-220 (-23.53 % of base) - System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__8:MoveNext():ubyte:this ```diff ; Assembly listing for method System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__8:MoveNext():ubyte:this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 12 single block inlinees; 3 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T03] ( 14, 20 ) ref -> [rbp-0x140] this class-hnd EH-live single-def d__8> -; V01 loc0 [V01,T10] ( 4, 6 ) ubyte -> rax -; V02 loc1 [V02,T20] ( 3, 2.50) int -> rdi +; V00 this [V00,T05] ( 14, 20 ) ref -> [rbp-0x140] this class-hnd EH-live single-def d__8> +; V01 loc0 [V01,T12] ( 4, 6 ) ubyte -> rax +; V02 loc1 [V02,T23] ( 3, 2.50) int -> rsi ;* V03 loc2 [V03 ] ( 0, 0 ) struct (264) zero-ref do-not-enreg[SF] ld-addr-op ;* V04 loc3 [V04 ] ( 0, 0 ) struct (16) zero-ref ;* V05 loc4 [V05 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op ;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V07 tmp1 [V07,T16] ( 3, 3 ) ref -> r15 class-hnd exact "NewObj constructor temp" -; V08 tmp2 [V08,T17] ( 3, 3 ) ref -> rbx class-hnd single-def "Inlining Arg" -; V09 tmp3 [V09,T18] ( 3, 3 ) struct (280) [rbp-0x138] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" +; V07 tmp1 [V07,T18] ( 3, 3 ) ref -> r14 class-hnd exact "NewObj constructor temp" +; V08 tmp2 [V08,T19] ( 3, 3 ) ref -> rbx class-hnd single-def "Inlining Arg" +; V09 tmp3 [V09,T21] ( 3, 3 ) struct (280) [rbp-0x138] do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" ;* V10 tmp4 [V10 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V11 tmp5 [V11 ] ( 0, 0 ) struct (16) zero-ref "Inline return value spill temp" -; V12 tmp6 [V12,T14] ( 6, 3 ) byref -> r14 "Inline stloc first use temp" -; V13 tmp7 [V13,T15] ( 6, 3 ) int -> r13 "Inline stloc first use temp" +; V12 tmp6 [V12,T16] ( 6, 3 ) byref -> rbx "Inline stloc first use temp" +; V13 tmp7 [V13,T17] ( 6, 3 ) int -> r15 "Inline stloc first use temp" ;* V14 tmp8 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" ;* V15 tmp9 [V15 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" ;* V16 tmp10 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" ;* V17 tmp11 [V17 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" ;* V18 tmp12 [V18 ] ( 0, 0 ) struct (16) zero-ref multireg-ret ld-addr-op "Inline stloc first use temp" -; V19 tmp13 [V19,T23] ( 3, 1.50) long -> rdi "Inline stloc first use temp" +; V19 tmp13 [V19,T26] ( 3, 1.50) long -> rax "Inline stloc first use temp" ;* V20 tmp14 [V20 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V21 tmp15 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" ;* V22 tmp16 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd "updating class info" -; V23 tmp17 [V23,T22] ( 2, 2 ) byref -> rax "Inlining Arg" +; V23 tmp17 [V23,T25] ( 2, 2 ) byref -> rax "Inlining Arg" ;* V24 tmp18 [V24 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" -;* V25 tmp19 [V25,T08] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" -; V26 tmp20 [V26,T00] ( 9, 72 ) byref -> r8 "Inlining Arg" -; V27 tmp21 [V27,T05] ( 4, 16 ) ref -> rdi class-hnd "Inline stloc first use temp" +;* V25 tmp19 [V25,T10] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" +; V26 tmp20 [V26,T00] ( 9, 72 ) byref -> rbx "Inlining Arg" +; V27 tmp21 [V27,T07] ( 4, 16 ) ref -> rsi class-hnd "Inline stloc first use temp" ;* V28 tmp22 [V28 ] ( 0, 0 ) byref -> zero-ref "field V04._reference (fldOffset=0x0)" P-INDEP ;* V29 tmp23 [V29 ] ( 0, 0 ) int -> zero-ref "field V04._length (fldOffset=0x8)" P-INDEP ;* V30 tmp24 [V30 ] ( 0, 0 ) ref -> zero-ref "field V05._object (fldOffset=0x0)" P-INDEP ;* V31 tmp25 [V31 ] ( 0, 0 ) int -> zero-ref "field V05._index (fldOffset=0x8)" P-INDEP ;* V32 tmp26 [V32 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0xc)" P-INDEP ;* V33 tmp27 [V33 ] ( 0, 0 ) byref -> zero-ref "field V11._reference (fldOffset=0x0)" P-INDEP ;* V34 tmp28 [V34 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP -; V35 tmp29 [V35,T24] ( 2, 1 ) byref -> rbx "field V15._reference (fldOffset=0x0)" P-INDEP -; V36 tmp30 [V36,T26] ( 2, 1 ) int -> r13 "field V15._length (fldOffset=0x8)" P-INDEP +; V35 tmp29 [V35,T27] ( 2, 1 ) byref -> rbx "field V15._reference (fldOffset=0x0)" P-INDEP +; V36 tmp30 [V36,T29] ( 2, 1 ) int -> r15 "field V15._length (fldOffset=0x8)" P-INDEP ;* V37 tmp31 [V37 ] ( 0, 0 ) byref -> zero-ref "field V17._reference (fldOffset=0x0)" P-DEP ;* V38 tmp32 [V38 ] ( 0, 0 ) int -> zero-ref "field V17._length (fldOffset=0x8)" P-DEP -; V39 tmp33 [V39,T25] ( 2, 1 ) byref -> r14 "field V18._reference (fldOffset=0x0)" P-INDEP -; V40 tmp34 [V40,T27] ( 2, 1 ) int -> r13 "field V18._length (fldOffset=0x8)" P-INDEP +; V39 tmp33 [V39,T28] ( 2, 1 ) byref -> rbx "field V18._reference (fldOffset=0x0)" P-INDEP +; V40 tmp34 [V40,T30] ( 2, 1 ) int -> r15 "field V18._length (fldOffset=0x8)" P-INDEP ;* V41 tmp35 [V41 ] ( 0, 0 ) byref -> zero-ref "field V24._reference (fldOffset=0x0)" P-INDEP ;* V42 tmp36 [V42 ] ( 0, 0 ) int -> zero-ref "field V24._length (fldOffset=0x8)" P-INDEP -; V43 tmp37 [V43,T13] ( 2, 4 ) ubyte -> r8 "V03.[240..241)" -; V44 tmp38 [V44,T11] ( 7, 5 ) ref -> rdi "V03.[248..256)" -; V45 tmp39 [V45,T21] ( 2, 2.50) int -> rbx "V03.[256..260)" -; V46 tmp40 [V46,T19] ( 3, 3 ) int -> r15 "V03.[260..264)" +; V43 tmp37 [V43,T15] ( 2, 4 ) ubyte -> rcx "V03.[240..241)" +; V44 tmp38 [V44,T13] ( 7, 5 ) ref -> rdx "V03.[248..256)" +; V45 tmp39 [V45,T24] ( 2, 2.50) int -> r14 "V03.[256..260)" +; V46 tmp40 [V46,T22] ( 3, 3 ) int -> r13 "V03.[260..264)" ;* V47 tmp41 [V47 ] ( 0, 0 ) ref -> zero-ref single-def "V09.[000..008)" ;* V48 tmp42 [V48 ] ( 0, 0 ) int -> zero-ref "V09.[008..012)" -; V49 tmp43 [V49,T28] ( 2, 1 ) int -> r15 "V09.[012..016)" -; V50 tmp44 [V50,T12] ( 4, 4 ) byref -> r8 single-def "Spilling address for field-by-field copy" -; V51 tmp45 [V51,T04] ( 5, 20 ) byref -> r9 "Spilling address for field-by-field copy" -; V52 tmp46 [V52,T01] ( 3, 24 ) ref -> rdi "arr expr" -; V53 tmp47 [V53,T02] ( 3, 24 ) int -> rsi "index expr" -; V54 PSPSym [V54,T29] ( 1, 1 ) long -> [rbp-0x150] do-not-enreg[V] "PSPSym" -; V55 cse0 [V55,T07] ( 3, 12 ) int -> rsi "CSE #02: aggressive" -; V56 cse1 [V56,T09] ( 2, 8 ) int -> rsi "CSE #03: aggressive" -; V57 cse2 [V57,T06] ( 3, 12 ) ref -> r9 "CSE #04: aggressive" +; V49 tmp43 [V49,T31] ( 2, 1 ) int -> r15 "V09.[012..016)" +; V50 tmp44 [V50,T14] ( 4, 4 ) byref -> rbx single-def "Spilling address for field-by-field copy" +; V51 tmp45 [V51,T06] ( 5, 20 ) byref -> rax "Spilling address for field-by-field copy" +; V52 tmp46 [V52,T01] ( 3, 24 ) ref -> rsi "arr expr" +; V53 tmp47 [V53,T04] ( 3, 24 ) int -> rdx "index expr" +; V54 PSPSym [V54,T32] ( 1, 1 ) long -> [rbp-0x150] do-not-enreg[V] "PSPSym" +; V55 cse0 [V55,T09] ( 3, 12 ) int -> rdx "CSE #02: aggressive" +; V56 cse1 [V56,T11] ( 2, 8 ) int -> rdx "CSE #03: aggressive" +; V57 cse2 [V57,T08] ( 3, 12 ) ref -> r15 "CSE #04: aggressive" +; V58 rat0 [V58,T20] ( 3, 3 ) byref -> rsi "ReplaceWithLclVar is creating a new local variable" +; V59 rat1 [V59,T02] ( 3, 24 ) byref -> rdx "ReplaceWithLclVar is creating a new local variable" +; V60 rat2 [V60,T03] ( 3, 24 ) byref -> rsi "ReplaceWithLclVar is creating a new local variable" ; ; Lcl frame size = 304 G_M43288_IG01: push rbp push r15 push r14 push r13 push rbx sub rsp, 304 lea rbp, [rsp+0x150] xor eax, eax mov qword ptr [rbp-0x138], rax vxorps xmm8, xmm8, xmm8 vmovdqa xmmword ptr [rbp-0x130], xmm8 vmovdqa xmmword ptr [rbp-0x120], xmm8 mov rax, -240 vmovdqa xmmword ptr [rbp+rax-0x20], xmm8 vmovdqa xmmword ptr [rbp+rax-0x10], xmm8 vmovdqa xmmword ptr [rax+rbp], xmm8 add rax, 48 jne SHORT -5 instr mov qword ptr [rbp-0x150], rsp mov gword ptr [rbp-0x140], rdi - mov rdx, rdi - ;; size=103 bbWeight=1 PerfScore 21.08 + ;; size=100 bbWeight=1 PerfScore 20.83 G_M43288_IG02: - mov edi, dword ptr [rdx+0x20] - test edi, edi + mov esi, dword ptr [rdi+0x20] + test esi, esi je SHORT G_M43288_IG04 ;; size=7 bbWeight=1 PerfScore 3.25 G_M43288_IG03: - cmp edi, 1 - je G_M43288_IG20 + cmp esi, 1 + je G_M43288_IG18 xor eax, eax - jmp G_M43288_IG21 + jmp G_M43288_IG19 ;; size=16 bbWeight=0.50 PerfScore 1.75 G_M43288_IG04: - mov dword ptr [rdx+0x20], -1 - mov rbx, gword ptr [rdx+0x10] + mov dword ptr [rdi+0x20], -1 + mov rbx, gword ptr [rdi+0x10] mov r15d, dword ptr [rbx+0x14] mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_MEMZERO lea rdi, bword ptr [rbp-0x128] mov esi, 264 call [rax]CORINFO_HELP_MEMZERO mov gword ptr [rbp-0x138], rbx - mov rdx, gword ptr [rbp-0x140] - lea r8, bword ptr [rdx+0x28] - mov rdi, r8 - lea rsi, bword ptr [rbp-0x138] - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - ;; size=152 bbWeight=0.50 PerfScore 17.62 -G_M43288_IG05: - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq + mov rdi, gword ptr [rbp-0x140] + lea rbx, bword ptr [rdi+0x28] + mov rsi, rbx + cmp byte ptr [rsi], sil + mov rdi, rsi + lea rsi, [rbp-0x138] + mov edx, 280 + call CORINFO_HELP_ASSIGN_STRUCT xor edi, edi - mov dword ptr [r8+0x08], edi - mov dword ptr [r8+0x0C], r15d - jmp G_M43288_IG20 - ;; size=60 bbWeight=0.50 PerfScore 8.12 + mov dword ptr [rbx+0x08], edi + mov dword ptr [rbx+0x0C], r15d + mov rdi, gword ptr [rbp-0x140] + jmp G_M43288_IG18 + ;; size=104 bbWeight=0.50 PerfScore 11.00 +G_M43288_IG05: + mov rdi, gword ptr [rbp-0x140] + lea rax, bword ptr [rdi+0x38] + movzx rcx, byte ptr [rax+0xF0] + mov rdx, gword ptr [rax+0xF8] + mov r14d, dword ptr [rax+0x100] + mov r13d, dword ptr [rax+0x104] + test ecx, ecx + jne G_M43288_IG14 + ;; size=47 bbWeight=2 PerfScore 21.50 G_M43288_IG06: - lea r9, bword ptr [rdx+0x38] - movzx r8, byte ptr [r9+0xF0] - mov rdi, gword ptr [r9+0xF8] - mov ebx, dword ptr [r9+0x100] - mov r15d, dword ptr [r9+0x104] - test r8d, r8d - jne G_M43288_IG16 - ;; size=42 bbWeight=2 PerfScore 19.50 + lea rbx, bword ptr [rdi+0x28] + mov r15, gword ptr [rbx] + mov rsi, r15 + mov edx, dword ptr [rbx+0x0C] + cmp edx, dword ptr [rsi+0x14] + jne SHORT G_M43288_IG07 + mov edx, dword ptr [rbx+0x08] + cmp edx, dword ptr [rsi+0x10] + jae SHORT G_M43288_IG10 + mov rsi, gword ptr [rsi+0x08] + cmp edx, dword ptr [rsi+0x08] + jae SHORT G_M43288_IG09 + imul rdx, rdx, 264 + lea rsi, bword ptr [rsi+rdx+0x10] + cmp byte ptr [rsi], sil + lea rdx, bword ptr [rbx+0x10] + cmp byte ptr [rdx], dl + mov rdi, rdx + mov edx, 264 + call CORINFO_HELP_ASSIGN_STRUCT + inc dword ptr [rbx+0x08] + jmp SHORT G_M43288_IG05 + ;; size=74 bbWeight=4 PerfScore 147.00 G_M43288_IG07: - lea r8, bword ptr [rdx+0x28] - mov r9, gword ptr [r8] - mov rdi, r9 - mov esi, dword ptr [r8+0x0C] - cmp esi, dword ptr [rdi+0x14] - jne G_M43288_IG09 - mov esi, dword ptr [r8+0x08] - cmp esi, dword ptr [rdi+0x10] - jae G_M43288_IG12 - mov rdi, gword ptr [rdi+0x08] - cmp esi, dword ptr [rdi+0x08] - jae G_M43288_IG11 - imul rsi, rsi, 264 - lea rsi, bword ptr [rdi+rsi+0x10] - lea rdi, bword ptr [r8+0x10] - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - ;; size=141 bbWeight=4 PerfScore 177.00 -G_M43288_IG08: - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - inc dword ptr [r8+0x08] - jmp G_M43288_IG06 - ;; size=56 bbWeight=4 PerfScore 72.00 -G_M43288_IG09: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion() call [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -G_M43288_IG10: +G_M43288_IG08: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException() call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -G_M43288_IG11: +G_M43288_IG09: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 +G_M43288_IG10: + mov edx, dword ptr [r15+0x10] + inc edx + mov dword ptr [rbx+0x08], edx + add rbx, 16 + xor eax, eax + mov qword ptr [rbx], rax + mov ecx, 256 + ;; size=23 bbWeight=4 PerfScore 20.00 +G_M43288_IG11: + mov qword ptr [rbx+rcx], rax + sub rcx, 8 + jne SHORT G_M43288_IG11 + mov rdi, gword ptr [rbp-0x140] + mov dword ptr [rdi+0x20], -1 + lea rax, bword ptr [rdi+0x28] + xor ecx, ecx + mov qword ptr [rax], rcx + mov edx, 272 + ;; size=38 bbWeight=4 PerfScore 25.00 G_M43288_IG12: - mov edi, dword ptr [r9+0x10] - inc edi - mov dword ptr [r8+0x08], edi - add r8, 16 - xor edi, edi - mov qword ptr [r8], rdi - mov eax, 256 - ;; size=24 bbWeight=4 PerfScore 20.00 + mov qword ptr [rax+rdx], rcx + sub rdx, 8 + jne SHORT G_M43288_IG12 + ;; size=10 bbWeight=4 PerfScore 9.00 G_M43288_IG13: - mov qword ptr [r8+rax], rdi - sub rax, 8 - jne SHORT G_M43288_IG13 - mov dword ptr [rdx+0x20], -1 - lea rdi, bword ptr [rdx+0x28] xor eax, eax - mov qword ptr [rdi], rax - mov ecx, 272 - ;; size=31 bbWeight=4 PerfScore 21.00 + jmp G_M43288_IG19 + ;; size=7 bbWeight=4 PerfScore 9.00 G_M43288_IG14: - mov qword ptr [rdi+rcx], rax - sub rcx, 8 - jne SHORT G_M43288_IG14 - ;; size=10 bbWeight=4 PerfScore 9.00 -G_M43288_IG15: - jmp G_M43288_IG21 - ;; size=5 bbWeight=4 PerfScore 8.00 -G_M43288_IG16: - xor r14, r14 - xor r13d, r13d - test rdi, rdi - je SHORT G_M43288_IG19 - mov rax, qword ptr [rdi] - test dword ptr [rax], 0xD1FFAB1E + xor rbx, rbx + xor r15d, r15d + test rdx, rdx je SHORT G_M43288_IG17 - lea r14, bword ptr [rdi+0x10] - mov r13d, dword ptr [rdi+0x08] - jmp SHORT G_M43288_IG18 - ;; size=32 bbWeight=0.50 PerfScore 6.12 -G_M43288_IG17: - mov rax, qword ptr [rdi] + mov rax, qword ptr [rdx] + test dword ptr [rax], 0xD1FFAB1E + je SHORT G_M43288_IG15 + lea rbx, bword ptr [rdx+0x10] + mov r15d, dword ptr [rdx+0x08] + jmp SHORT G_M43288_IG16 + ;; size=31 bbWeight=0.50 PerfScore 6.12 +G_M43288_IG15: + mov rdi, rdx + mov rax, qword ptr [rdx] mov rax, qword ptr [rax+0x40] call [rax+0x28]System.Buffers.MemoryManager`1[ubyte]:GetSpan():System.Span`1[ubyte]:this - mov r14, rax - mov r13d, edx - mov rdx, gword ptr [rbp-0x140] - ;; size=23 bbWeight=0.50 PerfScore 4.25 -G_M43288_IG18: - and ebx, 0xD1FFAB1E - mov edi, ebx - mov eax, r15d - add rax, rdi + mov rbx, rax + mov r15d, edx + mov rdi, gword ptr [rbp-0x140] + ;; size=26 bbWeight=0.50 PerfScore 4.38 +G_M43288_IG16: + and r14d, 0xD1FFAB1E + mov eax, r14d mov ecx, r13d - cmp rax, rcx - ja G_M43288_IG10 - add r14, rdi - mov r13d, r15d - ;; size=32 bbWeight=0.50 PerfScore 1.50 -G_M43288_IG19: - mov rbx, r14 + add rcx, rax + mov edx, r15d + cmp rcx, rdx + ja G_M43288_IG08 + add rbx, rax + mov r15d, r13d + ;; size=34 bbWeight=0.50 PerfScore 1.50 +G_M43288_IG17: mov rdi, 0xD1FFAB1E ; System.Net.IPAddress call CORINFO_HELP_NEWSFAST - mov r15, rax + mov r14, rax mov rsi, rbx - mov edx, r13d - mov rdi, r15 + mov edx, r15d + mov rdi, r14 mov rax, 0xD1FFAB1E ; code for System.Net.IPAddress:.ctor(System.ReadOnlySpan`1[ubyte]):this call [rax]System.Net.IPAddress:.ctor(System.ReadOnlySpan`1[ubyte]):this - mov rdx, gword ptr [rbp-0x140] - lea rdi, bword ptr [rdx+0x08] - mov rsi, r15 + mov rdi, gword ptr [rbp-0x140] + lea rdi, bword ptr [rdi+0x08] + mov rsi, r14 call CORINFO_HELP_ASSIGN_REF - mov rdx, gword ptr [rbp-0x140] - mov dword ptr [rdx+0x20], 1 + mov rdi, gword ptr [rbp-0x140] + mov dword ptr [rdi+0x20], 1 mov eax, 1 - jmp SHORT G_M43288_IG21 - ;; size=82 bbWeight=0.50 PerfScore 6.38 -G_M43288_IG20: - mov dword ptr [rdx+0x20], -3 - jmp G_M43288_IG07 + jmp SHORT G_M43288_IG19 + ;; size=79 bbWeight=0.50 PerfScore 6.25 +G_M43288_IG18: + mov dword ptr [rdi+0x20], -3 + jmp G_M43288_IG06 ;; size=12 bbWeight=0.50 PerfScore 1.50 -G_M43288_IG21: +G_M43288_IG19: add rsp, 304 pop rbx pop r13 pop r14 pop r15 pop rbp ret ;; size=16 bbWeight=1 PerfScore 3.75 -G_M43288_IG22: +G_M43288_IG20: push rbp push r15 push r14 push r13 push rbx sub rsp, 16 mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x150] ;; size=26 bbWeight=0 PerfScore 0.00 -G_M43288_IG23: +G_M43288_IG21: mov rdi, gword ptr [rbp-0x140] mov rax, 0xD1FFAB1E ; code for System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__8:System.IDisposable.Dispose():this call [rax]System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__8:System.IDisposable.Dispose():this nop ;; size=20 bbWeight=0 PerfScore 0.00 -G_M43288_IG24: +G_M43288_IG22: add rsp, 16 pop rbx pop r13 pop r14 pop r15 pop rbp ret ;; size=13 bbWeight=0 PerfScore 0.00 -; Total bytes of code 935, prolog size 103, PerfScore 401.83, instruction count 234, allocated bytes for code 935 (MethodHash=572a56e7) for method System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__8:MoveNext():ubyte:this (FullOpts) +; Total bytes of code 715, prolog size 100, PerfScore 291.83, instruction count 178, allocated bytes for code 715 (MethodHash=572a56e7) for method System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__8:MoveNext():ubyte:this (FullOpts) ```
-164 (-81.19 % of base) - System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo:.ctor(ubyte[],System.Security.Cryptography.Pkcs.Asn1.Rfc3161TstInfo):this ```diff ; Assembly listing for method System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo:.ctor(ubyte[],System.Security.Cryptography.Pkcs.Asn1.Rfc3161TstInfo):this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rsp based frame ; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T00] ( 4, 4 ) ref -> rbx this class-hnd single-def -; V01 arg1 [V01,T01] ( 3, 3 ) ref -> rsi class-hnd single-def -; V02 arg2 [V02,T02] ( 1, 1 ) struct (432) [rsp+0x10] do-not-enreg[S] single-def +; V01 arg1 [V01,T02] ( 3, 3 ) ref -> rsi class-hnd single-def +; V02 arg2 [V02,T03] ( 1, 1 ) struct (432) [rsp+0x10] do-not-enreg[S] single-def ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" +; V04 rat0 [V04,T01] ( 3, 6 ) byref -> rdi "ReplaceWithLclVar is creating a new local variable" ; ; Lcl frame size = 0 G_M49801_IG01: push rbx mov rbx, rdi ;; size=4 bbWeight=1 PerfScore 1.25 G_M49801_IG02: lea rdi, bword ptr [rbx+0x08] call CORINFO_HELP_ASSIGN_REF lea rdi, bword ptr [rbx+0x20] - lea rsi, bword ptr [rsp+0x10] - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - mov ecx, 8 - rep movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - ;; size=127 bbWeight=1 PerfScore 55.75 + cmp byte ptr [rdi], dil + lea rsi, [rsp+0x10] + mov edx, 432 + call CORINFO_HELP_ASSIGN_STRUCT + nop + ;; size=32 bbWeight=1 PerfScore 7.00 G_M49801_IG03: - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - call CORINFO_HELP_ASSIGN_BYREF - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - movsq - call CORINFO_HELP_ASSIGN_BYREF - movsq - ;; size=69 bbWeight=1 PerfScore 18.00 -G_M49801_IG04: pop rbx ret ;; size=2 bbWeight=1 PerfScore 1.50 -; Total bytes of code 202, prolog size 1, PerfScore 76.50, instruction count 56, allocated bytes for code 202 (MethodHash=a53d3d76) for method System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo:.ctor(ubyte[],System.Security.Cryptography.Pkcs.Asn1.Rfc3161TstInfo):this (FullOpts) +; Total bytes of code 38, prolog size 1, PerfScore 9.75, instruction count 12, allocated bytes for code 38 (MethodHash=a53d3d76) for method System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo:.ctor(ubyte[],System.Security.Cryptography.Pkcs.Asn1.Rfc3161TstInfo):this (FullOpts) ```

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

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

MihuBot commented 5 months ago

@EgorBo