Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

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

Open
MihuBot opened this issue May 1, 2024 · 3 comments
Open

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

MihuBot opened this issue May 1, 2024 · 3 comments

Comments

@MihuBot
Copy link
Owner

MihuBot commented May 1, 2024

Build completed in 32 minutes.
dotnet/runtime#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<T>.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<T>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<T>.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<T>.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<T>.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+<EnumerateDnsNames>d__6:MoveNext():ubyte:this (FullOpts)
        -220 (-23.53 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+<EnumerateIPAddresses>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+<get_Keys>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+<get_Values>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+<get_Keys>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+<get_Keys>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+<get_Keys>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+<get_Keys>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+<get_Keys>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+<get_Keys>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+<get_Values>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+<get_Values>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+<get_Values>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+<get_Values>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+<get_Values>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+<get_Values>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+<get_Values>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+<get_Keys>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:<TryAdvanceWithOptionalReadAhead>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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<T>.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<T>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<T>.CopyTo(int[],int):this (FullOpts)
           5 (0.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[long]:System.Collections.Generic.ICollection<T>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<T>.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<T>.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<T>.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<T>.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<T>.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<T>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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+<EnumerateDnsNames>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+<EnumerateIPAddresses>d__8:MoveNext():ubyte:this (FullOpts)
         -53 (-21.54 % of base) : System.Text.Json.dasm - System.Text.Json.JsonHelpers:<TryAdvanceWithOptionalReadAhead>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:<ExportParameters>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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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<System.Collections.Generic.KeyValuePair<TKey,TValue>>.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:<ExportParameters>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
Copy link
Owner Author

MihuBot commented May 2, 2024

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
 ; 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 <System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]>
+;  V00 this         [V00,T04] ( 10, 16   )     ref  ->  [rbp-0x1F8]  this class-hnd EH-live single-def <System.Collections.Immutable.ImmutableDictionary`2+Builder[System.__Canon,System.Nullable`1[int]]>
 ;  V01 arg1         [V01,T07] (  8, 12   )     ref  ->  rbx         class-hnd single-def <System.Array>
 ;  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 <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
 ;* V04 loc1         [V04    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]>
 ;  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" <System.__Canon>
 ;  V12 tmp7         [V12    ] (  3, 12   )  struct ( 8) [rbp-0xC0]  do-not-enreg[XS] addr-exposed "location for address-of(RValue)" <System.Nullable`1[int]>
 ;* V13 tmp8         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.DictionaryEntry>
-;  V14 tmp9         [V14,T05] (  4, 16   )     ref  ->  [rbp-0x1F0]  class-hnd exact spill-single-def "Single-def Box Helper" <System.Collections.DictionaryEntry>
+;  V14 tmp9         [V14,T05] (  4, 16   )     ref  ->  [rbp-0x200]  class-hnd exact spill-single-def "Single-def Box Helper" <System.Collections.DictionaryEntry>
 ;  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" <System.Collections.Immutable.ImmutableDictionary`2+Enumerator[System.__Canon,System.Nullable`1[int]]>
 ;* 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" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
 ;  V23 tmp18        [V23    ] ( 14, 20   )  struct (32) [rbp-0x168]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
-;  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" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
-;  V33 tmp28        [V33,T60] (  3,  3   )     ref  ->  [rbp-0x1F8]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]>
+;  V33 tmp28        [V33,T60] (  3,  3   )     ref  ->  [rbp-0x208]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.Stack`1[System.Collections.Immutable.RefAsValueType`1[System.__Canon]]>
 ;* 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" <System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
 ;* 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" <System.Collections.Immutable.SortedInt32KeyNode`1+Enumerator[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.__Canon,System.Nullable`1[int]]]>
 ;  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" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  V45 tmp40        [V45,T70] (  2,  2   )     ref  ->  [rbp-0x210]  class-hnd exact spill-single-def "non-inline candidate call" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
 ;  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" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  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" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
 ;  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" <System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]>
 ;  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" <System.InvalidOperationException>
 ;* V62 tmp57        [V62    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;  V63 tmp58        [V63,T83] (  3,  0   )     ref  ->  rbx         class-hnd exact "NewObj constructor temp" <System.InvalidOperationException>
-;  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" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
+;  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" <System.Collections.Immutable.SecurePooledObject`1[System.__Canon]>
 ;  V71 tmp66        [V71,T30] (  2,  8   )     ref  ->  rsi         class-hnd exact "Inlining Arg" <System.Collections.Immutable.ImmutableList`1+Node[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]]>
 ;  V72 tmp67        [V72,T31] (  2,  8   )     ref  ->  rax         class-hnd exact "Inlining Arg" <System.Int32>
 ;* V73 tmp68        [V73    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.Collections.DictionaryEntry>
 ;  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
Copy link
Owner Author

MihuBot commented May 2, 2024

Top method improvements

-223 (-30.26 % of base) - System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__6:MoveNext():ubyte:this
 ; Assembly listing for method System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+<EnumerateDnsNames>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 <System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+<EnumerateDnsNames>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 <System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+<EnumerateDnsNames>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] <System.Security.Cryptography.Asn1.GeneralNameAsn>
 ;# 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" <System.Collections.Generic.List`1[System.Security.Cryptography.Asn1.GeneralNameAsn]>
-;  V06 tmp2         [V06,T13] (  3,  3   )  struct (280) [rbp-0x128]  do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Security.Cryptography.Asn1.GeneralNameAsn]>
+;  V05 tmp1         [V05,T14] (  3,  3   )     ref  ->  rbx         class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.Asn1.GeneralNameAsn]>
+;  V06 tmp2         [V06,T16] (  3,  3   )  struct (280) [rbp-0x128]  do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Security.Cryptography.Asn1.GeneralNameAsn]>
 ;* 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" <System.Collections.Generic.List`1[System.Security.Cryptography.Asn1.GeneralNameAsn]>
-;  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" <System.Collections.Generic.List`1[System.Security.Cryptography.Asn1.GeneralNameAsn]>
+;  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+<EnumerateDnsNames>d__6:System.IDisposable.Dispose():this
        call     [rax]System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+<EnumerateDnsNames>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+<EnumerateDnsNames>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+<EnumerateDnsNames>d__6:MoveNext():ubyte:this (FullOpts)
-220 (-23.53 % of base) - System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+d__8:MoveNext():ubyte:this
 ; Assembly listing for method System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+<EnumerateIPAddresses>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 <System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+<EnumerateIPAddresses>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 <System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+<EnumerateIPAddresses>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 <System.Security.Cryptography.Asn1.GeneralNameAsn>
 ;* V04 loc3         [V04    ] (  0,  0   )  struct (16) zero-ref    <System.ReadOnlySpan`1[ubyte]>
 ;* V05 loc4         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlyMemory`1[ubyte]>
 ;# 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" <System.Net.IPAddress>
-;  V08 tmp2         [V08,T17] (  3,  3   )     ref  ->  rbx         class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.Asn1.GeneralNameAsn]>
-;  V09 tmp3         [V09,T18] (  3,  3   )  struct (280) [rbp-0x138]  do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Security.Cryptography.Asn1.GeneralNameAsn]>
+;  V07 tmp1         [V07,T18] (  3,  3   )     ref  ->  r14         class-hnd exact "NewObj constructor temp" <System.Net.IPAddress>
+;  V08 tmp2         [V08,T19] (  3,  3   )     ref  ->  rbx         class-hnd single-def "Inlining Arg" <System.Collections.Generic.List`1[System.Security.Cryptography.Asn1.GeneralNameAsn]>
+;  V09 tmp3         [V09,T21] (  3,  3   )  struct (280) [rbp-0x138]  do-not-enreg[SF] must-init ld-addr-op "NewObj constructor temp" <System.Collections.Generic.List`1+Enumerator[System.Security.Cryptography.Asn1.GeneralNameAsn]>
 ;* V10 tmp4         [V10    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V11 tmp5         [V11    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ubyte]>
-;  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" <System.Object>
 ;* V15 tmp9         [V15    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V16 tmp10        [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <System.Buffers.MemoryManager`1[ubyte]>
 ;* V17 tmp11        [V17    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SBR] multireg-ret "Return value temp for multireg return" <System.Span`1[ubyte]>
 ;* V18 tmp12        [V18    ] (  0,  0   )  struct (16) zero-ref    multireg-ret ld-addr-op "Inline stloc first use temp" <System.Span`1[ubyte]>
-;  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" <ubyte[]>
 ;* V22 tmp16        [V22    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "updating class info" <ubyte[]>
-;  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" <System.Span`1[ubyte]>
-;* 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" <System.Collections.Generic.List`1[System.Security.Cryptography.Asn1.GeneralNameAsn]>
+;* 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" <System.Collections.Generic.List`1[System.Security.Cryptography.Asn1.GeneralNameAsn]>
 ;* 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+<EnumerateIPAddresses>d__8:System.IDisposable.Dispose():this
        call     [rax]System.Security.Cryptography.X509Certificates.X509SubjectAlternativeNameExtension+<EnumerateIPAddresses>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+<EnumerateIPAddresses>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+<EnumerateIPAddresses>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
 ; 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 <System.Security.Cryptography.Pkcs.Rfc3161TimestampTokenInfo>
-;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->  rsi         class-hnd single-def <ubyte[]>
-;  V02 arg2         [V02,T02] (  1,  1   )  struct (432) [rsp+0x10]  do-not-enreg[S] single-def <System.Security.Cryptography.Pkcs.Asn1.Rfc3161TstInfo>
+;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->  rsi         class-hnd single-def <ubyte[]>
+;  V02 arg2         [V02,T03] (  1,  1   )  struct (432) [rsp+0x10]  do-not-enreg[S] single-def <System.Security.Cryptography.Pkcs.Asn1.Rfc3161TstInfo>
 ;# 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
Copy link
Owner Author

MihuBot commented May 2, 2024

@EgorBo

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

No branches or pull requests

1 participant