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

[JitDiff X64] [hez2010] JIT: Propagate assertions into natural loops in global morph #809

Open
MihuBot opened this issue Dec 9, 2024 · 3 comments

Comments

@MihuBot
Copy link
Owner

MihuBot commented Dec 9, 2024

Job completed in 14 minutes 44 seconds.
dotnet/runtime#110501

Diffs

Diffs
Found 378 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 40200067
Total bytes of diff: 40198375
Total bytes of delta: -1692 (-0.00 % of base)
Total relative delta: -25.32
    diff is an improvement.
    relative diff is an improvement.


Top file regressions (bytes):
        1326 : System.Numerics.Tensors.dasm (0.07 % of base)
         894 : System.Reflection.Metadata.dasm (0.16 % of base)
         873 : System.Security.Cryptography.dasm (0.08 % of base)
         693 : System.Reflection.Emit.dasm (0.54 % of base)
         660 : System.Private.Xml.dasm (0.02 % of base)
         646 : System.Linq.Expressions.dasm (0.07 % of base)
         591 : System.Text.Encoding.CodePages.dasm (0.80 % of base)
         498 : System.Text.RegularExpressions.dasm (0.07 % of base)
         474 : System.Text.Json.dasm (0.04 % of base)
         465 : System.Net.Http.dasm (0.06 % of base)
         431 : System.Data.Common.dasm (0.03 % of base)
         405 : System.Private.DataContractSerialization.dasm (0.04 % of base)
         399 : System.Linq.dasm (0.03 % of base)
         325 : System.ObjectModel.dasm (0.49 % of base)
         313 : System.ComponentModel.Composition.dasm (0.07 % of base)
         294 : System.Memory.dasm (0.10 % of base)
         278 : System.Collections.dasm (0.07 % of base)
         267 : System.Threading.RateLimiting.dasm (0.16 % of base)
         254 : System.Composition.Convention.dasm (0.21 % of base)
         241 : System.CodeDom.dasm (0.12 % of base)
         221 : Microsoft.CSharp.dasm (0.06 % of base)
         200 : ILCompiler.Reflection.ReadyToRun.dasm (0.09 % of base)
         176 : System.Net.Mail.dasm (0.10 % of base)
         151 : System.Threading.Tasks.Dataflow.dasm (0.01 % of base)
         137 : System.DirectoryServices.Protocols.dasm (0.09 % of base)
         133 : Microsoft.Extensions.Logging.dasm (0.38 % of base)
         130 : System.Security.Cryptography.Pkcs.dasm (0.03 % of base)
         117 : Microsoft.VisualBasic.Core.dasm (0.02 % of base)
         113 : System.Web.HttpUtility.dasm (0.59 % of base)
         111 : System.Diagnostics.DiagnosticSource.dasm (0.04 % of base)
         108 : System.Net.HttpListener.dasm (0.10 % of base)
         100 : System.IO.Packaging.dasm (0.09 % of base)
          90 : System.Reflection.MetadataLoadContext.dasm (0.04 % of base)
          85 : System.Security.Cryptography.Xml.dasm (0.04 % of base)
          84 : Microsoft.Extensions.FileSystemGlobbing.dasm (0.33 % of base)
          82 : System.Net.Security.dasm (0.03 % of base)
          77 : System.Data.Odbc.dasm (0.03 % of base)
          76 : Microsoft.Extensions.Hosting.dasm (0.11 % of base)
          69 : System.ComponentModel.Composition.Registration.dasm (0.06 % of base)
          62 : System.Net.WebProxy.dasm (1.13 % of base)
          58 : System.ComponentModel.Annotations.dasm (0.11 % of base)
          56 : System.Runtime.Caching.dasm (0.10 % of base)
          52 : runincontext.dasm (0.35 % of base)
          48 : System.ComponentModel.TypeConverter.dasm (0.02 % of base)
          47 : System.IO.Hashing.dasm (0.19 % of base)
          45 : System.Resources.Extensions.dasm (0.09 % of base)
          43 : System.Private.Xml.Linq.dasm (0.02 % of base)
          42 : System.Net.WebSockets.Client.dasm (0.19 % of base)
          40 : System.Security.Cryptography.Cose.dasm (0.06 % of base)
          31 : System.Net.Sockets.dasm (0.01 % of base)
          31 : System.Threading.Channels.dasm (0.01 % of base)
          31 : System.IO.Compression.ZipFile.dasm (0.22 % of base)
          26 : Microsoft.Extensions.DependencyInjection.dasm (0.04 % of base)
          25 : Microsoft.Extensions.Options.DataAnnotations.dasm (0.60 % of base)
          25 : System.Runtime.Serialization.Formatters.dasm (0.12 % of base)
          25 : System.IO.FileSystem.Watcher.dasm (0.09 % of base)
          23 : System.Composition.Hosting.dasm (0.02 % of base)
          23 : Microsoft.Extensions.Configuration.Ini.dasm (0.69 % of base)
          22 : System.Net.Requests.dasm (0.02 % of base)
          22 : System.Composition.TypedParts.dasm (0.05 % of base)
          21 : System.Resources.Writer.dasm (0.23 % of base)
          19 : Microsoft.Extensions.Configuration.dasm (0.12 % of base)
          19 : System.Text.Encodings.Web.dasm (0.08 % of base)
          19 : Microsoft.Extensions.Caching.Memory.dasm (0.11 % of base)
          19 : System.Diagnostics.Process.dasm (0.02 % of base)
          15 : System.Security.Claims.dasm (0.11 % of base)
          11 : System.Formats.Cbor.dasm (0.02 % of base)
          10 : System.Net.WebClient.dasm (0.02 % of base)
          10 : Microsoft.Extensions.Logging.EventLog.dasm (0.05 % of base)
           7 : Microsoft.Extensions.Logging.EventSource.dasm (0.03 % of base)
           7 : System.Net.NetworkInformation.dasm (0.01 % of base)
           7 : Microsoft.Extensions.Configuration.Json.dasm (0.13 % of base)
           7 : System.Drawing.Primitives.dasm (0.02 % of base)
           6 : Microsoft.Extensions.Http.dasm (0.01 % of base)
           6 : System.Runtime.Serialization.Schema.dasm (0.01 % of base)
           5 : System.Threading.Tasks.Parallel.dasm (0.00 % of base)
           4 : System.Diagnostics.TraceSource.dasm (0.01 % of base)
           1 : Microsoft.Extensions.Hosting.WindowsServices.dasm (0.02 % of base)

Top file improvements (bytes):
       -8375 : System.Linq.Parallel.dasm (-0.37 % of base)
       -4222 : System.Collections.Immutable.dasm (-0.20 % of base)
       -1026 : System.IO.FileSystem.DriveInfo.dasm (-4.09 % of base)
        -706 : System.Private.CoreLib.dasm (-0.01 % of base)
        -238 : Microsoft.Extensions.DependencyModel.dasm (-0.32 % of base)
        -155 : System.Runtime.Numerics.dasm (-0.13 % of base)
         -99 : System.Collections.Concurrent.dasm (-0.03 % of base)
         -94 : System.Private.Uri.dasm (-0.09 % of base)
         -61 : System.Configuration.ConfigurationManager.dasm (-0.02 % of base)
         -58 : System.Formats.Asn1.dasm (-0.07 % of base)
         -26 : System.ComponentModel.Primitives.dasm (-0.16 % of base)
         -25 : Microsoft.Extensions.FileProviders.Physical.dasm (-0.15 % of base)
         -21 : System.Threading.dasm (-0.13 % of base)
         -20 : Microsoft.Extensions.Logging.Console.dasm (-0.03 % of base)
         -15 : System.Formats.Nrbf.dasm (-0.03 % of base)
         -15 : System.Net.Primitives.dasm (-0.01 % of base)
         -14 : Microsoft.Extensions.Configuration.Binder.dasm (-0.06 % of base)
         -12 : System.Formats.Tar.dasm (-0.01 % of base)
         -11 : System.IO.Compression.dasm (-0.01 % of base)
         -10 : System.Net.Quic.dasm (-0.01 % of base)
          -8 : System.IO.Ports.dasm (-0.02 % of base)
          -7 : System.ServiceModel.Syndication.dasm (-0.00 % of base)
          -6 : System.Net.Ping.dasm (-0.01 % of base)
          -6 : Microsoft.Extensions.Options.dasm (-0.02 % of base)
          -6 : System.Net.NameResolution.dasm (-0.01 % of base)
          -5 : System.Console.dasm (-0.01 % of base)
          -4 : Microsoft.Extensions.DependencyInjection.Abstractions.dasm (-0.01 % of base)
          -2 : Microsoft.Extensions.Diagnostics.dasm (-0.01 % of base)
          -1 : Microsoft.Extensions.Logging.Abstractions.dasm (-0.00 % of base)
          -1 : Microsoft.Extensions.Primitives.dasm (-0.00 % of base)

108 total files with Code Size differences (30 improved, 78 regressed), 151 unchanged.

Top method regressions (bytes):
         325 (2.74 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:ConvertToSymbolicRegexNode(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BDD]:this (FullOpts)
         261 (9.27 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.MethodTypeInferrer:Fix(int):ubyte:this (FullOpts)
         226 (7.10 % of base) : System.Text.Encoding.CodePages.dasm - System.Text.ISO2022Encoding:GetBytesCP5022xJP(ulong,int,ulong,int,System.Text.ISO2022Encoding+ISO2022Encoder):int:this (FullOpts)
         188 (10.39 % of base) : System.Memory.dasm - System.Buffers.ReadOnlySequenceDebugView`1[System.__Canon]:.ctor(System.Buffers.ReadOnlySequence`1[System.__Canon]):this (FullOpts)
         164 (9.51 % of base) : System.Text.Encoding.CodePages.dasm - System.Text.ISO2022Encoding:GetBytesCP50225KR(ulong,int,ulong,int,System.Text.ISO2022Encoding+ISO2022Encoder):int:this (FullOpts)
         137 (9.78 % of base) : System.Web.HttpUtility.dasm - System.Web.Util.HttpEncoder:<JavaScriptStringEncode>g__EncodeCore|12_0(System.ReadOnlySpan`1[ushort],int,ubyte):System.String (FullOpts)
         135 (5.36 % of base) : System.Net.Http.dasm - System.Net.Http.QPack.QPackDecoder:DecodeInternal(System.ReadOnlySpan`1[ubyte],System.Net.Http.IHttpStreamHeadersHandler):this (FullOpts)
         126 (2.71 % of base) : System.Data.Common.dasm - System.Data.XSDSchema:InstantiateTable(System.Xml.Schema.XmlSchemaElement,System.Xml.Schema.XmlSchemaComplexType,ubyte):System.Data.DataTable:this (FullOpts)
         117 (5.27 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.SchemaImporter:CreateSchemaObjects():System.Collections.Generic.Dictionary`2[System.Xml.XmlQualifiedName,System.Runtime.Serialization.SchemaObjectInfo]:this (FullOpts)
         113 (3.80 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this (FullOpts)
         111 (2.80 % of base) : System.Net.Mail.dasm - System.Net.Mail.MailMessage:SetContent(ubyte):this (FullOpts)
         109 (5.51 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:LookupProperty(System.Object,System.ReadOnlySpan`1[ubyte],byref,System.Text.Json.JsonSerializerOptions,byref,ubyte):System.Text.Json.Serialization.Metadata.JsonPropertyInfo (FullOpts)
         107 (4.50 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperSpanInTInSpanOut[double](byref,double,byref,System.Numerics.Tensors.Tensor+PerformCalculationSpanInTInSpanOut`1[double]):byref (FullOpts)
         107 (4.50 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperSpanInTInSpanOut[System.Nullable`1[int]](byref,System.Nullable`1[int],byref,System.Numerics.Tensors.Tensor+PerformCalculationSpanInTInSpanOut`1[System.Nullable`1[int]]):byref (FullOpts)
         103 (4.33 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.ConversionResolution:ResolveConversion(System.Type,System.Type,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],ubyte,byref):System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method] (FullOpts)
          94 (5.19 % of base) : System.Text.Encoding.CodePages.dasm - System.Text.ISO2022Encoding:GetBytesCP52936(ulong,int,ulong,int,System.Text.ISO2022Encoding+ISO2022Encoder):int:this (FullOpts)
          91 (3.85 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperSpanInSpanOut[double,System.Nullable`1[int]](byref,byref,System.Numerics.Tensors.Tensor+PerformCalculationSpanInSpanOut`2[double,System.Nullable`1[int]]):byref (FullOpts)
          91 (3.85 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperSpanInSpanOut[int,System.Nullable`1[int]](byref,byref,System.Numerics.Tensors.Tensor+PerformCalculationSpanInSpanOut`2[int,System.Nullable`1[int]]):byref (FullOpts)
          91 (3.85 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperSpanInSpanOut[long,System.Nullable`1[int]](byref,byref,System.Numerics.Tensors.Tensor+PerformCalculationSpanInSpanOut`2[long,System.Nullable`1[int]]):byref (FullOpts)
          91 (3.85 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperSpanInSpanOut[short,System.Nullable`1[int]](byref,byref,System.Numerics.Tensors.Tensor+PerformCalculationSpanInSpanOut`2[short,System.Nullable`1[int]]):byref (FullOpts)
          91 (3.85 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperSpanInSpanOut[System.Nullable`1[int],System.Nullable`1[int]](byref,byref,System.Numerics.Tensors.Tensor+PerformCalculationSpanInSpanOut`2[System.Nullable`1[int],System.Nullable`1[int]]):byref (FullOpts)
          91 (3.83 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperSpanInSpanOut[System.Numerics.Vector`1[float],System.Nullable`1[int]](byref,byref,System.Numerics.Tensors.Tensor+PerformCalculationSpanInSpanOut`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]):byref (FullOpts)
          91 (3.85 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperSpanInSpanOut[ubyte,System.Nullable`1[int]](byref,byref,System.Numerics.Tensors.Tensor+PerformCalculationSpanInSpanOut`2[ubyte,System.Nullable`1[int]]):byref (FullOpts)
          90 (3.62 % of base) : System.CodeDom.dasm - Microsoft.VisualBasic.VBCodeGenerator:GetBaseTypeOutput(System.CodeDom.CodeTypeReference,ubyte):System.String:this (FullOpts)
          89 (3.85 % of base) : System.DirectoryServices.Protocols.dasm - System.DirectoryServices.Protocols.BerConverter:TryDecode(System.String,ubyte[],byref):System.Object[] (FullOpts)
          89 (2.64 % of base) : System.Private.CoreLib.dasm - System.Globalization.IdnMapping:PunycodeDecode(System.String):System.String (FullOpts)
          87 (3.64 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperSpanInTInSpanOut[System.Numerics.Vector`1[float]](byref,System.Numerics.Vector`1[float],byref,System.Numerics.Tensors.Tensor+PerformCalculationSpanInTInSpanOut`1[System.Numerics.Vector`1[float]]):byref (FullOpts)
          85 (6.87 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.XxHashShared:Append(byref,System.ReadOnlySpan`1[ubyte]) (FullOpts)
          83 (4.59 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedDictionary`2+Node[System.__Canon,System.Nullable`1[int]]:CopyTo(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]][],int,int):this (FullOpts)
          83 (5.75 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo:GetProperty(System.ReadOnlySpan`1[ubyte],byref,byref):System.Text.Json.Serialization.Metadata.JsonPropertyInfo:this (FullOpts)
          82 (2.25 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.ILGeneratorImpl:AddExceptionBlocks():this (FullOpts)
          82 (6.25 % of base) : System.Text.Encoding.CodePages.dasm - System.Text.ISO2022Encoding:GetCharsCP52936(ulong,int,ulong,int,System.Text.ISO2022Encoding+ISO2022Decoder):int:this (FullOpts)
          81 (5.52 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:<CreateBDDFromSetString>g__Compute|5_0(System.String):System.Text.RegularExpressions.Symbolic.BDD:this (FullOpts)
          75 (5.01 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.MatcherBuilder:BuildMatcher(System.Xml.Xsl.Qil.QilIterator,System.Collections.Generic.IList`1[System.Xml.Xsl.Xslt.XslNode],System.Xml.Xsl.Qil.QilNode):System.Xml.Xsl.Qil.QilNode:this (FullOpts)
          74 (3.91 % of base) : Microsoft.Extensions.FileSystemGlobbing.dasm - Microsoft.Extensions.FileSystemGlobbing.Internal.MatcherContext:Match(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase,System.String):this (FullOpts)
          74 (2.40 % of base) : System.Data.Common.dasm - System.Xml.XmlDataDocument:OnColumnValueChanged(System.Data.DataRow,System.Data.DataColumn,System.Xml.XmlBoundElement):this (FullOpts)
          73 (1.88 % of base) : System.Data.Common.dasm - System.Data.DataTable:ReadXmlSchema(System.Xml.XmlReader,ubyte):this (FullOpts)
          73 (4.16 % of base) : System.Linq.dasm - System.Linq.Enumerable+IEnumerableSkipTakeIterator`1[System.__Canon]:ToArray():System.__Canon[]:this (FullOpts)
          73 (5.06 % of base) : System.Text.Json.dasm - System.Text.Json.Utf8JsonReader:ConsumeStringNextSegment():ubyte:this (FullOpts)
          71 (5.47 % of base) : System.Data.Common.dasm - System.Data.XDRSchema:InstantiateTable(System.Data.DataSet,System.Xml.XmlElement,System.Xml.XmlElement):System.Data.DataTable:this (FullOpts)
          71 (2.89 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperSpanInSpanOut[System.__Canon,System.Nullable`1[int]](byref,byref,System.Numerics.Tensors.Tensor+PerformCalculationSpanInSpanOut`2[System.__Canon,System.Nullable`1[int]]):byref (FullOpts)
          68 (7.78 % of base) : System.Net.Mail.dasm - System.Net.Mime.MailBnfHelper:ReadQuotedString(System.String,byref,System.Text.StringBuilder,ubyte,ubyte):System.String (FullOpts)
          68 (2.34 % of base) : System.Text.Encoding.CodePages.dasm - System.Text.GB18030Encoding:GetChars(ulong,int,ulong,int,System.Text.DecoderNLS):int:this (FullOpts)
          65 (2.63 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder:BuildTypeAttributes(System.Type):System.Collections.Generic.IEnumerable`1[System.Attribute]:this (FullOpts)
          65 (0.76 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.ManifestBuilder:CreateManifestString():System.String:this (FullOpts)
          65 (3.97 % of base) : System.Net.Http.dasm - System.Net.Http.HPack.HPackDecoder:DecodeInternal(System.ReadOnlySpan`1[ubyte],System.Net.Http.IHttpStreamHeadersHandler):this (FullOpts)
          65 (4.38 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigInteger:Add(System.ReadOnlySpan`1[uint],int,System.ReadOnlySpan`1[uint],int):System.Numerics.BigInteger (FullOpts)
          65 (2.52 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperSpanInTInSpanOut[System.__Canon](byref,System.__Canon,byref,System.Numerics.Tensors.Tensor+PerformCalculationSpanInTInSpanOut`1[System.__Canon]):byref (FullOpts)
          65 (2.89 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.ModuleBuilderImpl:WriteMethods(System.Collections.Generic.List`1[System.Reflection.Emit.MethodBuilderImpl],System.Collections.Generic.List`1[System.Reflection.Emit.GenericTypeParameterBuilderImpl],System.Reflection.Metadata.Ecma335.MethodBodyStreamEncoder):this (FullOpts)
          64 (2.32 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.ReflectTypeDescriptionProvider:ReflectGetExtendedProperties(System.ComponentModel.IExtenderProvider):System.ComponentModel.PropertyDescriptor[] (FullOpts)
          64 (1.18 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperTwoSpanInSpanOut[double](byref,byref,byref,System.Numerics.Tensors.Tensor+PerformCalculationTwoSpanInSpanOut`1[double]):byref (FullOpts)
          64 (1.17 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperTwoSpanInSpanOut[int](byref,byref,byref,System.Numerics.Tensors.Tensor+PerformCalculationTwoSpanInSpanOut`1[int]):byref (FullOpts)
          64 (1.17 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperTwoSpanInSpanOut[long](byref,byref,byref,System.Numerics.Tensors.Tensor+PerformCalculationTwoSpanInSpanOut`1[long]):byref (FullOpts)
          64 (1.17 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperTwoSpanInSpanOut[short](byref,byref,byref,System.Numerics.Tensors.Tensor+PerformCalculationTwoSpanInSpanOut`1[short]):byref (FullOpts)
          64 (1.16 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperTwoSpanInSpanOut[System.Numerics.Vector`1[float]](byref,byref,byref,System.Numerics.Tensors.Tensor+PerformCalculationTwoSpanInSpanOut`1[System.Numerics.Vector`1[float]]):byref (FullOpts)
          64 (1.17 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperTwoSpanInSpanOut[ubyte](byref,byref,byref,System.Numerics.Tensors.Tensor+PerformCalculationTwoSpanInSpanOut`1[ubyte]):byref (FullOpts)
          63 (3.93 % of base) : System.CodeDom.dasm - Microsoft.CSharp.CSharpCodeGenerator:QuoteSnippetStringCStyle(System.String):System.String:this (FullOpts)
          63 (4.38 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.ReflectionXmlSerializationWriter:WriteElements(System.Object,System.Xml.Serialization.ElementAccessor[],System.Xml.Serialization.TextAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,ubyte,ubyte):this (FullOpts)
          61 (2.46 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcDataReader:BuildMetaDataInfo():this (FullOpts)
          61 (4.71 % of base) : System.IO.Packaging.dasm - System.IO.Packaging.ZipPackage:GetPartsCore():System.IO.Packaging.PackagePart[]:this (FullOpts)
          60 (2.46 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperSpanInTInSpanOut[int](byref,int,byref,System.Numerics.Tensors.Tensor+PerformCalculationSpanInTInSpanOut`1[int]):byref (FullOpts)
          60 (2.46 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperSpanInTInSpanOut[short](byref,short,byref,System.Numerics.Tensors.Tensor+PerformCalculationSpanInTInSpanOut`1[short]):byref (FullOpts)
          60 (2.46 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperSpanInTInSpanOut[ubyte](byref,ubyte,byref,System.Numerics.Tensors.Tensor+PerformCalculationSpanInTInSpanOut`1[ubyte]):byref (FullOpts)
          60 (1.63 % of base) : System.Text.Json.dasm - System.Text.Json.Schema.JsonSchema:ToJsonNode(System.Text.Json.Schema.JsonSchemaExporterOptions):System.Text.Json.Nodes.JsonNode:this (FullOpts)
          59 (2.94 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]:IndexOf(System.__Canon,int,int,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):int:this (FullOpts)
          59 (2.91 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.Hosting.CompositionServices:TryExportMetadataForMember(System.Reflection.MemberInfo,byref) (FullOpts)
          59 (2.52 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.XmlUtil:FormatXmlElement(System.String,int,int,ubyte):System.String (FullOpts)
          59 (2.42 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:TensorPrimitivesHelperSpanInTInSpanOut[long](byref,long,byref,System.Numerics.Tensors.Tensor+PerformCalculationSpanInTInSpanOut`1[long]):byref (FullOpts)
          59 (2.81 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.XPathConvert+BigNumber:DblToRgbPrecise(double,ubyte[],byref,byref) (FullOpts)
          58 (5.84 % of base) : System.Collections.Immutable.dasm - System.Collections.Frozen.KeyAnalyzer:TryUseSubstring(System.ReadOnlySpan`1[System.String],ubyte,ubyte,int,int,byref):ubyte (FullOpts)
          58 (2.78 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse:TryParseByFormat(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,byref):ubyte (FullOpts)
          58 (1.57 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexPrefixAnalyzer:<FindPrefixes>g__FindPrefixesCore|0_1(System.Text.RegularExpressions.RegexNode,System.Collections.Generic.List`1[System.Text.StringBuilder],ubyte):ubyte (FullOpts)
          57 (2.47 % of base) : System.CodeDom.dasm - Microsoft.CSharp.CSharpCodeGenerator:GetBaseTypeOutput(System.CodeDom.CodeTypeReference,ubyte):System.String:this (FullOpts)
          57 (6.65 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,long]:TryInsert(System.__Canon,long,ubyte):ubyte:this (FullOpts)
          57 (6.53 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:TryInsert(System.__Canon,System.__Canon,ubyte):ubyte:this (FullOpts)
          57 (6.58 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.Nullable`1[int]]:TryInsert(System.__Canon,System.Nullable`1[int],ubyte):ubyte:this (FullOpts)
          57 (2.87 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.PartBuilder:BuildTypeAttributes(System.Type):System.Collections.Generic.IEnumerable`1[System.Attribute]:this (FullOpts)
          57 (3.11 % of base) : System.Private.CoreLib.dasm - System.Reflection.AssemblyName:EscapeString(System.String,int,int,ushort[],byref,ubyte,ushort,ushort,ushort):ushort[] (FullOpts)
          56 (2.65 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder:BuildPropertyAttributes(System.Type,byref):this (FullOpts)
          56 (1.78 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:TryEmitHashtableSwitch(System.Linq.Expressions.SwitchExpression,int):ubyte:this (FullOpts)
          54 (4.20 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.OverloadResolution:ReportOverloadResolutionFailure(System.String,System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],System.Object[],System.String[],System.Type[],System.String,int,Microsoft.VisualBasic.CompilerServices.OverloadResolution+ArgumentDetector,Microsoft.VisualBasic.CompilerServices.OverloadResolution+CandidateProperty):System.Exception (FullOpts)
          54 (2.37 % of base) : System.CodeDom.dasm - Microsoft.VisualBasic.VBCodeGenerator:QuoteSnippetString(System.String):System.String:this (FullOpts)
          54 (2.91 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]:CopyTo(int,System.__Canon[],int,int):this (FullOpts)
          54 (12.62 % of base) : System.Linq.dasm - System.Linq.Enumerable+IEnumerableWhereIterator`1[System.__Canon]:TryGetLast(byref):System.__Canon:this (FullOpts)
          53 (0.74 % of base) : System.Text.Json.dasm - System.Text.Json.Schema.JsonSchemaExporter:MapJsonSchemaCore(byref,System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Text.Json.Serialization.Metadata.JsonPropertyInfo,System.Text.Json.Serialization.JsonConverter,System.Nullable`1[int],System.Text.Json.Serialization.Metadata.JsonTypeInfo,ubyte,ubyte,System.Nullable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Text.Json.Schema.JsonSchema]],ubyte):System.Text.Json.Schema.JsonSchema (FullOpts)
          52 (0.50 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexFindOptimizations:TryFindNextStartingPositionLeftToRight(System.ReadOnlySpan`1[ushort],byref,int):ubyte:this (FullOpts) (2 methods)
          52 (3.11 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.Task:WaitAllCore(System.ReadOnlySpan`1[System.Threading.Tasks.Task],int,System.Threading.CancellationToken):ubyte (FullOpts)
          51 (5.42 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcDataReader:internalGetBytes(int):System.Object:this (FullOpts)
          51 (3.38 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.ModuleBuilderImpl:WriteEvents(System.Reflection.Emit.TypeBuilderImpl):this (FullOpts)
          51 (13.42 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.Compiler:MergeGlobalVarPars(System.Xml.Xsl.Xslt.Stylesheet):this (FullOpts)
          50 (11.01 % of base) : System.Linq.dasm - System.Linq.Enumerable+IEnumerableWhereSelectIterator`2[System.__Canon,System.Nullable`1[int]]:TryGetLast(byref):System.Nullable`1[int]:this (FullOpts)
          50 (1.51 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Expression:Switch(System.Type,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Reflection.MethodInfo,System.Collections.Generic.IEnumerable`1[System.Linq.Expressions.SwitchCase]):System.Linq.Expressions.SwitchExpression (FullOpts)
          49 (1.18 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoType:GetMemberImpl(System.String,int,int):System.Reflection.MemberInfo[]:this (FullOpts)
          48 (3.46 % of base) : System.Net.WebProxy.dasm - System.Net.WebProxy:IsMatchInBypassList(System.Uri):ubyte:this (FullOpts)
          48 (1.38 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeTypeBuilder:CreateTypeNoLock():System.Reflection.TypeInfo:this (FullOpts)
          47 (2.22 % of base) : System.Linq.dasm - System.Linq.Enumerable+AppendPrependN`1[System.__Canon]:LazyToArray():System.__Canon[]:this (FullOpts)
          46 (3.21 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.ConventionBuilder:GetCustomAttributes(System.Type,System.Reflection.MemberInfo):System.Collections.Generic.IEnumerable`1[System.Attribute]:this (FullOpts)
          45 (2.60 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcCommandBuilder:DeriveParametersFromStoredProcedure(System.Data.Odbc.OdbcConnection,System.Data.Odbc.OdbcCommand):System.Data.Odbc.OdbcParameter[] (FullOpts)
          45 (2.08 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:TryEmitSwitchInstruction(System.Linq.Expressions.SwitchExpression,int):ubyte:this (FullOpts)
          45 (3.09 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection:WriteHeaderCollection(System.Net.Http.HttpRequestMessage,System.Net.Http.Headers.HttpHeaders,byref):int:this (FullOpts)

Top method improvements (bytes):
       -1026 (-6.24 % of base) : System.IO.FileSystem.DriveInfo.dasm - Interop+Sys:GetDriveType(System.String):int (FullOpts)
        -241 (-13.11 % of base) : Microsoft.Extensions.DependencyModel.dasm - Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadCompilationOptions(byref):Microsoft.Extensions.DependencyModel.CompilationOptions (FullOpts)
        -194 (-3.72 % of base) : System.Data.Common.dasm - System.Data.DataTableReader:GetSchemaTableFromDataTable(System.Data.DataTable):System.Data.DataTable (FullOpts)
        -141 (-9.55 % of base) : System.Private.CoreLib.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (FullOpts)
        -125 (-5.49 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling:Error(int,Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[]):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
        -118 (-2.56 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexPrefixAnalyzer:FindLiteralFollowingLeadingLoop(System.Text.RegularExpressions.RegexNode):System.Nullable`1[System.ValueTuple`2[System.Text.RegularExpressions.RegexNode,System.ValueTuple`4[ushort,System.String,int,ushort[]]]] (FullOpts) (2 methods)
        -112 (-5.44 % of base) : System.IO.Packaging.dasm - System.IO.Packaging.InternalRelationshipCollection:ParseRelationshipPart(System.IO.Packaging.PackagePart):this (FullOpts)
        -108 (-6.31 % of base) : System.Private.CoreLib.dasm - System.Reflection.MethodBaseInvoker:InvokeWithOneArg(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (FullOpts)
        -104 (-2.59 % of base) : System.Private.CoreLib.dasm - System.Reflection.MethodBaseInvoker:InvokeWithManyArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (FullOpts)
         -97 (-14.48 % of base) : System.Linq.dasm - System.Linq.Enumerable+OrderedIterator`2[System.__Canon,System.Nullable`1[int]]:TryGetFirst(byref):System.__Canon:this (FullOpts)
         -97 (-14.48 % of base) : System.Linq.dasm - System.Linq.Enumerable+OrderedIterator`2[System.__Canon,System.Nullable`1[int]]:TryGetLast(byref):System.__Canon:this (FullOpts)
         -96 (-2.17 % of base) : System.Data.Common.dasm - System.Data.Common.DbDataAdapter:Update(System.Data.DataRow[],System.Data.Common.DataTableMapping):int:this (FullOpts)
         -92 (-54.76 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:Fill[System.Numerics.Vector`1[float]](byref,ulong,System.Numerics.Vector`1[float]) (FullOpts)
         -78 (-4.14 % of base) : System.Private.CoreLib.dasm - System.Reflection.MethodInvoker:InvokeWithManyArgs(System.Object,System.Span`1[System.Object]):System.Object:this (FullOpts)
         -76 (-6.24 % of base) : System.Linq.dasm - System.Linq.Enumerable+ImplicitlyStableOrderedIterator`1[System.__Canon]:TryGetFirstOrLast(byref,ubyte):System.__Canon:this (FullOpts)
         -73 (-2.83 % of base) : System.Private.Uri.dasm - System.Uri:CheckAuthorityHelper(ulong,int,int,byref,byref,System.UriParser,byref):int:this (FullOpts)
         -72 (-4.24 % of base) : System.Data.Common.dasm - System.Data.Common.DbProviderFactories:GetFactoryClasses():System.Data.DataTable (FullOpts)
         -72 (-15.45 % of base) : System.Private.CoreLib.dasm - System.Threading.ThreadLocal`1+FinalizationHelper[System.__Canon]:Finalize():this (FullOpts)
         -66 (-12.82 % of base) : System.Collections.Concurrent.dasm - System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:PushRange(System.__Canon[],int,int):this (FullOpts)
         -64 (-2.60 % of base) : System.Data.Odbc.dasm - System.Data.ProviderBase.DbMetaDataFactory:ExecuteCommand(System.Data.DataRow,System.String[],System.Data.Common.DbConnection):System.Data.DataTable:this (FullOpts)
         -63 (-3.44 % of base) : System.Private.CoreLib.dasm - System.Reflection.ConstructorInvoker:InvokeWithManyArgs(System.Span`1[System.Object]):System.Object:this (FullOpts)
         -62 (-3.32 % of base) : System.Private.Uri.dasm - System.Net.IPv6AddressHelper:ParseCanonicalName(System.ReadOnlySpan`1[ushort],byref,byref):System.String (FullOpts)
         -60 (-0.44 % of base) : System.Data.Common.dasm - System.Data.XmlTreeGen:HandleTable(System.Data.DataTable,System.Xml.XmlDocument,System.Xml.XmlElement,ubyte):System.Xml.XmlElement:this (FullOpts)
         -57 (-5.58 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.Array,int):this (FullOpts)
         -56 (-0.75 % of base) : System.Formats.Asn1.dasm - System.Formats.Asn1.WellKnownOids:GetContents(System.ReadOnlySpan`1[ushort]):System.ReadOnlySpan`1[ubyte] (FullOpts)
         -56 (-19.05 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:SequenceEqual[System.__Canon](System.ReadOnlySpan`1[System.__Canon],System.ReadOnlySpan`1[System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):ubyte (FullOpts)
         -56 (-6.30 % of base) : System.Private.CoreLib.dasm - System.Net.WebUtility:UrlDecodeInternal(System.String,System.Text.Encoding):System.String (FullOpts)
         -55 (-4.15 % of base) : System.Private.DataContractSerialization.dasm - System.Xml.EncodingStreamWrapper:.ctor(System.IO.Stream,System.Text.Encoding):this (FullOpts)
         -52 (-2.65 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.FileIO.TextFieldParser:ParseDelimitedLine():System.String[]:this (FullOpts)
         -51 (-2.20 % of base) : System.Text.Encoding.CodePages.dasm - System.Text.GB18030Encoding:GetBytes(ulong,int,ulong,int,System.Text.EncoderNLS):int:this (FullOpts)
         -50 (-5.25 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:CopyTo(System.__Canon[],int):this (FullOpts)
         -49 (-5.42 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.TakeOrSkipQueryOperator`1[System.__Canon]:WrapHelper[double](System.Linq.Parallel.PartitionedStream`2[System.__Canon,double],System.Linq.Parallel.IPartitionedStreamRecipient`1[System.__Canon],System.Linq.Parallel.QuerySettings):this (FullOpts)
         -49 (-5.42 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.TakeOrSkipQueryOperator`1[System.__Canon]:WrapHelper[int](System.Linq.Parallel.PartitionedStream`2[System.__Canon,int],System.Linq.Parallel.IPartitionedStreamRecipient`1[System.__Canon],System.Linq.Parallel.QuerySettings):this (FullOpts)
         -49 (-5.42 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.TakeOrSkipQueryOperator`1[System.__Canon]:WrapHelper[long](System.Linq.Parallel.PartitionedStream`2[System.__Canon,long],System.Linq.Parallel.IPartitionedStreamRecipient`1[System.__Canon],System.Linq.Parallel.QuerySettings):this (FullOpts)
         -49 (-5.42 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.TakeOrSkipQueryOperator`1[System.__Canon]:WrapHelper[short](System.Linq.Parallel.PartitionedStream`2[System.__Canon,short],System.Linq.Parallel.IPartitionedStreamRecipient`1[System.__Canon],System.Linq.Parallel.QuerySettings):this (FullOpts)
         -49 (-5.42 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.TakeOrSkipQueryOperator`1[System.__Canon]:WrapHelper[System.Nullable`1[int]](System.Linq.Parallel.PartitionedStream`2[System.__Canon,System.Nullable`1[int]],System.Linq.Parallel.IPartitionedStreamRecipient`1[System.__Canon],System.Linq.Parallel.QuerySettings):this (FullOpts)
         -49 (-5.42 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.TakeOrSkipQueryOperator`1[System.__Canon]:WrapHelper[System.Numerics.Vector`1[float]](System.Linq.Parallel.PartitionedStream`2[System.__Canon,System.Numerics.Vector`1[float]],System.Linq.Parallel.IPartitionedStreamRecipient`1[System.__Canon],System.Linq.Parallel.QuerySettings):this (FullOpts)
         -49 (-5.42 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.TakeOrSkipQueryOperator`1[System.__Canon]:WrapHelper[ubyte](System.Linq.Parallel.PartitionedStream`2[System.__Canon,ubyte],System.Linq.Parallel.IPartitionedStreamRecipient`1[System.__Canon],System.Linq.Parallel.QuerySettings):this (FullOpts)
         -46 (-0.46 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ConfigurationElement:DeserializeElement(System.Xml.XmlReader,ubyte):this (FullOpts)
         -46 (-4.85 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.TakeOrSkipQueryOperator`1[double]:WrapHelper[System.__Canon](System.Linq.Parallel.PartitionedStream`2[double,System.__Canon],System.Linq.Parallel.IPartitionedStreamRecipient`1[double],System.Linq.Parallel.QuerySettings):this (FullOpts)
         -46 (-4.85 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.TakeOrSkipQueryOperator`1[int]:WrapHelper[System.__Canon](System.Linq.Parallel.PartitionedStream`2[int,System.__Canon],System.Linq.Parallel.IPartitionedStreamRecipient`1[int],System.Linq.Parallel.QuerySettings):this (FullOpts)
         -46 (-4.85 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.TakeOrSkipQueryOperator`1[long]:WrapHelper[System.__Canon](System.Linq.Parallel.PartitionedStream`2[long,System.__Canon],System.Linq.Parallel.IPartitionedStreamRecipient`1[long],System.Linq.Parallel.QuerySettings):this (FullOpts)
         -46 (-4.85 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.TakeOrSkipQueryOperator`1[short]:WrapHelper[System.__Canon](System.Linq.Parallel.PartitionedStream`2[short,System.__Canon],System.Linq.Parallel.IPartitionedStreamRecipient`1[short],System.Linq.Parallel.QuerySettings):this (FullOpts)
         -46 (-4.60 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.TakeOrSkipQueryOperator`1[System.__Canon]:WrapHelper[System.__Canon](System.Linq.Parallel.PartitionedStream`2[System.__Canon,System.__Canon],System.Linq.Parallel.IPartitionedStreamRecipient`1[System.__Canon],System.Linq.Parallel.QuerySettings):this (FullOpts)
         -46 (-4.85 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.TakeOrSkipQueryOperator`1[System.Nullable`1[int]]:WrapHelper[System.__Canon](System.Linq.Parallel.PartitionedStream`2[System.Nullable`1[int],System.__Canon],System.Linq.Parallel.IPartitionedStreamRecipient`1[System.Nullable`1[int]],System.Linq.Parallel.QuerySettings):this (FullOpts)
         -46 (-4.85 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.TakeOrSkipQueryOperator`1[System.Numerics.Vector`1[float]]:WrapHelper[System.__Canon](System.Linq.Parallel.PartitionedStream`2[System.Numerics.Vector`1[float],System.__Canon],System.Linq.Parallel.IPartitionedStreamRecipient`1[System.Numerics.Vector`1[float]],System.Linq.Parallel.QuerySettings):this (FullOpts)
         -46 (-4.85 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.TakeOrSkipQueryOperator`1[ubyte]:WrapHelper[System.__Canon](System.Linq.Parallel.PartitionedStream`2[ubyte,System.__Canon],System.Linq.Parallel.IPartitionedStreamRecipient`1[ubyte],System.Linq.Parallel.QuerySettings):this (FullOpts)
         -41 (-2.93 % of base) : System.Memory.dasm - System.Buffers.SequenceReader`1[short]:TryReadToAny(byref,System.ReadOnlySpan`1[short],ubyte):ubyte:this (FullOpts) (2 methods)
         -41 (-17.98 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigIntegerCalculator:Subtract(System.ReadOnlySpan`1[uint],uint,System.Span`1[uint]) (FullOpts)
         -40 (-2.97 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (FullOpts)
         -40 (-9.85 % of base) : System.Linq.dasm - System.Linq.Enumerable+IEnumerableSelectIterator`2[System.__Canon,System.Nullable`1[int]]:TryGetLast(byref):System.Nullable`1[int]:this (FullOpts)
         -38 (-8.26 % of base) : System.Linq.dasm - System.Linq.Enumerable+OrderedIterator`1[System.__Canon]:TryGetLast(byref):System.__Canon:this (FullOpts)
         -38 (-5.31 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.ExceptQueryOperator`1[double]:WrapPartitionedStreamHelper[int,System.Nullable`1[int]](System.Linq.Parallel.PartitionedStream`2[System.Linq.Parallel.Pair`2[double,System.Linq.Parallel.NoKeyMemoizationRequired],int],System.Linq.Parallel.PartitionedStream`2[double,System.Nullable`1[int]],System.Linq.Parallel.IPartitionedStreamRecipient`1[double],System.Threading.CancellationToken):this (FullOpts)
         -38 (-5.31 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.ExceptQueryOperator`1[int]:WrapPartitionedStreamHelper[int,System.Nullable`1[int]](System.Linq.Parallel.PartitionedStream`2[System.Linq.Parallel.Pair`2[int,System.Linq.Parallel.NoKeyMemoizationRequired],int],System.Linq.Parallel.PartitionedStream`2[int,System.Nullable`1[int]],System.Linq.Parallel.IPartitionedStreamRecipient`1[int],System.Threading.CancellationToken):this (FullOpts)
         -38 (-5.31 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.ExceptQueryOperator`1[long]:WrapPartitionedStreamHelper[int,System.Nullable`1[int]](System.Linq.Parallel.PartitionedStream`2[System.Linq.Parallel.Pair`2[long,System.Linq.Parallel.NoKeyMemoizationRequired],int],System.Linq.Parallel.PartitionedStream`2[long,System.Nullable`1[int]],System.Linq.Parallel.IPartitionedStreamRecipient`1[long],System.Threading.CancellationToken):this (FullOpts)
         -38 (-5.31 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.ExceptQueryOperator`1[short]:WrapPartitionedStreamHelper[int,System.Nullable`1[int]](System.Linq.Parallel.PartitionedStream`2[System.Linq.Parallel.Pair`2[short,System.Linq.Parallel.NoKeyMemoizationRequired],int],System.Linq.Parallel.PartitionedStream`2[short,System.Nullable`1[int]],System.Linq.Parallel.IPartitionedStreamRecipient`1[short],System.Threading.CancellationToken):this (FullOpts)
         -38 (-5.31 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.ExceptQueryOperator`1[System.Nullable`1[int]]:WrapPartitionedStreamHelper[int,System.Nullable`1[int]](System.Linq.Parallel.PartitionedStream`2[System.Linq.Parallel.Pair`2[System.Nullable`1[int],System.Linq.Parallel.NoKeyMemoizationRequired],int],System.Linq.Parallel.PartitionedStream`2[System.Nullable`1[int],System.Nullable`1[int]],System.Linq.Parallel.IPartitionedStreamRecipient`1[System.Nullable`1[int]],System.Threading.CancellationToken):this (FullOpts)
         -38 (-5.31 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.ExceptQueryOperator`1[System.Numerics.Vector`1[float]]:WrapPartitionedStreamHelper[int,System.Nullable`1[int]](System.Linq.Parallel.PartitionedStream`2[System.Linq.Parallel.Pair`2[System.Numerics.Vector`1[float],System.Linq.Parallel.NoKeyMemoizationRequired],int],System.Linq.Parallel.PartitionedStream`2[System.Numerics.Vector`1[float],System.Nullable`1[int]],System.Linq.Parallel.IPartitionedStreamRecipient`1[System.Numerics.Vector`1[float]],System.Threading.CancellationToken):this (FullOpts)
         -38 (-5.31 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.ExceptQueryOperator`1[ubyte]:WrapPartitionedStreamHelper[int,System.Nullable`1[int]](System.Linq.Parallel.PartitionedStream`2[System.Linq.Parallel.Pair`2[ubyte,System.Linq.Parallel.NoKeyMemoizationRequired],int],System.Linq.Parallel.PartitionedStream`2[ubyte,System.Nullable`1[int]],System.Linq.Parallel.IPartitionedStreamRecipient`1[ubyte],System.Threading.CancellationToken):this (FullOpts)
         -37 (-5.77 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.__Canon]:Clone():System.Data.SortExpressionBuilder`1[System.__Canon]:this (FullOpts)
         -36 (-0.66 % of base) : System.Private.CoreLib.dasm - System.Globalization.TimeSpanParse:ProcessTerminal_HM_S_D(byref,ubyte,byref):ubyte (FullOpts)
         -35 (-2.01 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ConcatenateOnDimension[double](int,System.ReadOnlySpan`1[System.Numerics.Tensors.Tensor`1[double]]):System.Numerics.Tensors.Tensor`1[double] (FullOpts)
         -35 (-2.01 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ConcatenateOnDimension[int](int,System.ReadOnlySpan`1[System.Numerics.Tensors.Tensor`1[int]]):System.Numerics.Tensors.Tensor`1[int] (FullOpts)
         -35 (-2.01 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ConcatenateOnDimension[long](int,System.ReadOnlySpan`1[System.Numerics.Tensors.Tensor`1[long]]):System.Numerics.Tensors.Tensor`1[long] (FullOpts)
         -35 (-2.01 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ConcatenateOnDimension[short](int,System.ReadOnlySpan`1[System.Numerics.Tensors.Tensor`1[short]]):System.Numerics.Tensors.Tensor`1[short] (FullOpts)
         -35 (-2.01 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ConcatenateOnDimension[System.Nullable`1[int]](int,System.ReadOnlySpan`1[System.Numerics.Tensors.Tensor`1[System.Nullable`1[int]]]):System.Numerics.Tensors.Tensor`1[System.Nullable`1[int]] (FullOpts)
         -35 (-2.01 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ConcatenateOnDimension[System.Numerics.Vector`1[float]](int,System.ReadOnlySpan`1[System.Numerics.Tensors.Tensor`1[System.Numerics.Vector`1[float]]]):System.Numerics.Tensors.Tensor`1[System.Numerics.Vector`1[float]] (FullOpts)
         -35 (-2.01 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ConcatenateOnDimension[ubyte](int,System.ReadOnlySpan`1[System.Numerics.Tensors.Tensor`1[ubyte]]):System.Numerics.Tensors.Tensor`1[ubyte] (FullOpts)
         -35 (-1.71 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ToString[double](byref,System.Text.StringBuilder,System.ReadOnlySpan`1[long]) (FullOpts)
         -35 (-1.71 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ToString[int](byref,System.Text.StringBuilder,System.ReadOnlySpan`1[long]) (FullOpts)
         -35 (-1.71 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ToString[long](byref,System.Text.StringBuilder,System.ReadOnlySpan`1[long]) (FullOpts)
         -35 (-1.71 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ToString[short](byref,System.Text.StringBuilder,System.ReadOnlySpan`1[long]) (FullOpts)
         -35 (-1.71 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ToString[System.Nullable`1[int]](byref,System.Text.StringBuilder,System.ReadOnlySpan`1[long]) (FullOpts)
         -35 (-1.71 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ToString[System.Numerics.Vector`1[float]](byref,System.Text.StringBuilder,System.ReadOnlySpan`1[long]) (FullOpts)
         -35 (-1.71 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.Tensor:ToString[ubyte](byref,System.Text.StringBuilder,System.ReadOnlySpan`1[long]) (FullOpts)
         -34 (-2.00 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportMembersMapping(System.Xml.Serialization.XmlReflectionMember[],System.String,ubyte,ubyte,ubyte,System.Xml.Serialization.RecursionLimiter):System.Xml.Serialization.MembersMapping:this (FullOpts)
         -33 (-7.99 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[double]:.ctor(double[]):this (FullOpts)
         -33 (-7.99 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[int]:.ctor(int[]):this (FullOpts)
         -33 (-7.99 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[long]:.ctor(long[]):this (FullOpts)
         -33 (-7.99 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[short]:.ctor(short[]):this (FullOpts)
         -33 (-7.99 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Nullable`1[int]]:.ctor(System.Nullable`1[int][]):this (FullOpts)
         -33 (-7.99 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[System.Numerics.Vector`1[float]]:.ctor(System.Numerics.Vector`1[float][]):this (FullOpts)
         -33 (-7.99 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[ubyte]:.ctor(ubyte[]):this (FullOpts)
         -33 (-7.99 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[double]:.ctor(double[]):this (FullOpts)
         -33 (-7.99 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[int]:.ctor(int[]):this (FullOpts)
         -33 (-7.99 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[long]:.ctor(long[]):this (FullOpts)
         -33 (-7.99 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[short]:.ctor(short[]):this (FullOpts)
         -33 (-7.99 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.Nullable`1[int]]:.ctor(System.Nullable`1[int][]):this (FullOpts)
         -33 (-7.99 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[System.Numerics.Vector`1[float]]:.ctor(System.Numerics.Vector`1[float][]):this (FullOpts)
         -33 (-7.99 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorSpan`1[ubyte]:.ctor(ubyte[]):this (FullOpts)
         -33 (-5.40 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1[System.Numerics.Vector`1[float]]:DecodeArrayArgument(byref,System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1+ArgumentTypeInfo[System.Numerics.Vector`1[float]]):System.Nullable`1[System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.CustomAttributeTypedArgument`1[System.Numerics.Vector`1[float]]]]:this (FullOpts)
         -33 (-1.51 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.DataContracts.DataContract+DataContractCriticalHelper:GetBuiltInDataContract(System.String):System.Runtime.Serialization.DataContracts.DataContract (FullOpts)
         -32 (-10.70 % of base) : Microsoft.Extensions.Logging.Console.dasm - Microsoft.Extensions.Logging.Console.SimpleConsoleFormatter:GetLogLevelConsoleColors(int):Microsoft.Extensions.Logging.Console.SimpleConsoleFormatter+ConsoleColors:this (FullOpts)
         -32 (-3.81 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.IntersectQueryOperator`1[double]:WrapPartitionedStreamHelper[int,System.Nullable`1[int]](System.Linq.Parallel.PartitionedStream`2[System.Linq.Parallel.Pair`2[double,System.Linq.Parallel.NoKeyMemoizationRequired],int],System.Linq.Parallel.PartitionedStream`2[double,System.Nullable`1[int]],System.Linq.Parallel.IPartitionedStreamRecipient`1[double],System.Threading.CancellationToken):this (FullOpts)
         -32 (-3.81 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.IntersectQueryOperator`1[int]:WrapPartitionedStreamHelper[int,System.Nullable`1[int]](System.Linq.Parallel.PartitionedStream`2[System.Linq.Parallel.Pair`2[int,System.Linq.Parallel.NoKeyMemoizationRequired],int],System.Linq.Parallel.PartitionedStream`2[int,System.Nullable`1[int]],System.Linq.Parallel.IPartitionedStreamRecipient`1[int],System.Threading.CancellationToken):this (FullOpts)
         -32 (-3.81 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.IntersectQueryOperator`1[long]:WrapPartitionedStreamHelper[int,System.Nullable`1[int]](System.Linq.Parallel.PartitionedStream`2[System.Linq.Parallel.Pair`2[long,System.Linq.Parallel.NoKeyMemoizationRequired],int],System.Linq.Parallel.PartitionedStream`2[long,System.Nullable`1[int]],System.Linq.Parallel.IPartitionedStreamRecipient`1[long],System.Threading.CancellationToken):this (FullOpts)
         -32 (-3.81 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.IntersectQueryOperator`1[short]:WrapPartitionedStreamHelper[int,System.Nullable`1[int]](System.Linq.Parallel.PartitionedStream`2[System.Linq.Parallel.Pair`2[short,System.Linq.Parallel.NoKeyMemoizationRequired],int],System.Linq.Parallel.PartitionedStream`2[short,System.Nullable`1[int]],System.Linq.Parallel.IPartitionedStreamRecipient`1[short],System.Threading.CancellationToken):this (FullOpts)
         -32 (-3.81 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.IntersectQueryOperator`1[System.Nullable`1[int]]:WrapPartitionedStreamHelper[int,System.Nullable`1[int]](System.Linq.Parallel.PartitionedStream`2[System.Linq.Parallel.Pair`2[System.Nullable`1[int],System.Linq.Parallel.NoKeyMemoizationRequired],int],System.Linq.Parallel.PartitionedStream`2[System.Nullable`1[int],System.Nullable`1[int]],System.Linq.Parallel.IPartitionedStreamRecipient`1[System.Nullable`1[int]],System.Threading.CancellationToken):this (FullOpts)
         -32 (-3.81 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.IntersectQueryOperator`1[System.Numerics.Vector`1[float]]:WrapPartitionedStreamHelper[int,System.Nullable`1[int]](System.Linq.Parallel.PartitionedStream`2[System.Linq.Parallel.Pair`2[System.Numerics.Vector`1[float],System.Linq.Parallel.NoKeyMemoizationRequired],int],System.Linq.Parallel.PartitionedStream`2[System.Numerics.Vector`1[float],System.Nullable`1[int]],System.Linq.Parallel.IPartitionedStreamRecipient`1[System.Numerics.Vector`1[float]],System.Threading.CancellationToken):this (FullOpts)
         -32 (-3.81 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.IntersectQueryOperator`1[ubyte]:WrapPartitionedStreamHelper[int,System.Nullable`1[int]](System.Linq.Parallel.PartitionedStream`2[System.Linq.Parallel.Pair`2[ubyte,System.Linq.Parallel.NoKeyMemoizationRequired],int],System.Linq.Parallel.PartitionedStream`2[ubyte,System.Nullable`1[int]],System.Linq.Parallel.IPartitionedStreamRecipient`1[ubyte],System.Threading.CancellationToken):this (FullOpts)

Top method regressions (percentages):
          24 (18.18 % of base) : System.Net.HttpListener.dasm - System.Net.ServiceNameStore:Contains(System.String):ubyte:this (FullOpts)
          18 (17.82 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitWriteBack(System.Collections.Generic.List`1[System.Linq.Expressions.Compiler.LambdaCompiler+WriteBack]):this (FullOpts)
          18 (17.82 % of base) : System.Net.Security.dasm - System.Security.Authentication.ExtendedProtection.ServiceNameCollection:AddIfNew(System.Collections.Generic.List`1[System.String]):this (FullOpts)
          22 (16.54 % of base) : System.Data.Common.dasm - System.Data.DataTable:EvaluateDependentExpressions(System.Data.DataColumn):this (FullOpts)
          22 (16.18 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:IsConvInTable(System.Collections.Generic.List`1[Microsoft.CSharp.RuntimeBinder.Semantics.UdConvInfo],Microsoft.CSharp.RuntimeBinder.Semantics.MethodSymbol,Microsoft.CSharp.RuntimeBinder.Semantics.AggregateType,ubyte,ubyte):ubyte (FullOpts)
          18 (15.38 % of base) : System.Runtime.Caching.dasm - System.Runtime.Caching.MemoryCacheEntryChangeMonitor:Dispose(ubyte):this (FullOpts)
          18 (14.63 % of base) : System.IO.Packaging.dasm - System.IO.Packaging.PackagePart:Flush():this (FullOpts)
          14 (14.29 % of base) : System.Linq.dasm - System.Linq.Enumerable+ConcatNIterator`1[System.__Canon]:GetEnumerable(int):System.Collections.Generic.IEnumerable`1[System.__Canon]:this (FullOpts)
           9 (14.29 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.ModuleBuilderImpl:PopulateMethodDefinitionHandles(System.Collections.Generic.List`1[System.Reflection.Emit.MethodBuilderImpl]):this (FullOpts)
          18 (13.74 % of base) : System.Composition.Hosting.dasm - System.Composition.Hosting.Core.CompositionOperation:Complete():this (FullOpts)
           9 (13.64 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.ModuleBuilderImpl:PopulateEventDefinitionHandles(System.Collections.Generic.List`1[System.Reflection.Emit.EventBuilderImpl]):this (FullOpts)
           9 (13.64 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.ModuleBuilderImpl:PopulateFieldDefinitionHandles(System.Collections.Generic.List`1[System.Reflection.Emit.FieldBuilderImpl]):this (FullOpts)
           9 (13.64 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.ModuleBuilderImpl:PopulatePropertyDefinitionHandles(System.Collections.Generic.List`1[System.Reflection.Emit.PropertyBuilderImpl]):this (FullOpts)
          39 (13.45 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.TypeBuilderImpl:GetNestedTypes(int):System.Type[]:this (FullOpts)
          51 (13.42 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.Compiler:MergeGlobalVarPars(System.Xml.Xsl.Xslt.Stylesheet):this (FullOpts)
          18 (12.68 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarReader:Dispose():this (FullOpts)
          54 (12.62 % of base) : System.Linq.dasm - System.Linq.Enumerable+IEnumerableWhereIterator`1[System.__Canon]:TryGetLast(byref):System.__Canon:this (FullOpts)
          43 (12.01 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.Meter:GetPublishedInstruments():System.Collections.Generic.List`1[System.Diagnostics.Metrics.Instrument] (FullOpts)
          24 (11.94 % of base) : System.ComponentModel.Annotations.dasm - System.ComponentModel.DataAnnotations.Validator:TryValidateValue(System.Object,System.ComponentModel.DataAnnotations.ValidationContext,System.Collections.Generic.ICollection`1[System.ComponentModel.DataAnnotations.ValidationResult],System.Collections.Generic.IEnumerable`1[System.ComponentModel.DataAnnotations.ValidationAttribute]):ubyte (FullOpts)
          33 (11.46 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.ModuleBuilderImpl:GetNestedTypeBuilders(System.Reflection.Emit.TypeBuilderImpl):System.Collections.Generic.List`1[System.Reflection.Emit.TypeBuilderImpl]:this (FullOpts)
          18 (11.39 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.CertificatePolicyChain:MatchesApplicationPolicies(System.Security.Cryptography.OidCollection):ubyte:this (FullOpts)
          18 (11.39 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.CertificatePolicyChain:MatchesCertificatePolicies(System.Security.Cryptography.OidCollection):ubyte:this (FullOpts)
          27 (11.25 % of base) : System.Runtime.Serialization.Formatters.dasm - System.Runtime.Serialization.SerializationEvents:AddOnDelegate(System.Object,System.Runtime.Serialization.SerializationEventHandler,System.Collections.Generic.List`1[System.Reflection.MethodInfo]):System.Runtime.Serialization.SerializationEventHandler (FullOpts)
          16 (11.11 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializerOptions:GetConverterFromList(System.Type):System.Text.Json.Serialization.JsonConverter:this (FullOpts)
          50 (11.01 % of base) : System.Linq.dasm - System.Linq.Enumerable+IEnumerableWhereSelectIterator`2[System.__Canon,System.Nullable`1[int]]:TryGetLast(byref):System.Nullable`1[int]:this (FullOpts)
          21 (10.99 % of base) : System.IO.FileSystem.Watcher.dasm - System.IO.FileSystemWatcher+RunningInstance:RemoveWatchedDirectoryUnlocked(System.IO.FileSystemWatcher+RunningInstance+WatchedDirectory,ubyte):this (FullOpts)
          13 (10.92 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.CompositionException:WritePaths(System.Text.StringBuilder,System.Collections.Generic.List`1[System.Collections.Generic.Stack`1[System.ComponentModel.Composition.CompositionError]]) (FullOpts)
          18 (10.91 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.ModuleBuilderImpl:FindTypeBuilderWithName(System.String,ubyte):System.Reflection.Emit.TypeBuilderImpl:this (FullOpts)
          20 (10.81 % of base) : System.IO.Packaging.dasm - System.IO.Packaging.ZipPackage+IgnoredItemHelper:DeleteCore(System.String):this (FullOpts)
          21 (10.71 % of base) : System.Net.Http.dasm - System.Net.Http.MultipartContent:Dispose(ubyte):this (FullOpts)
          18 (10.65 % of base) : Microsoft.Extensions.DependencyModel.dasm - Microsoft.Extensions.DependencyModel.CompilationLibrary:ResolveReferencePaths(Microsoft.Extensions.DependencyModel.Resolution.ICompilationAssemblyResolver[]):System.Collections.Generic.IEnumerable`1[System.String]:this (FullOpts)
          28 (10.57 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeStandAloneSigTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (FullOpts)
          28 (10.57 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeTypeSpecTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (FullOpts)
          40 (10.39 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.TypeBuilderImpl:GetConstructors(int):System.Reflection.ConstructorInfo[]:this (FullOpts)
         188 (10.39 % of base) : System.Memory.dasm - System.Buffers.ReadOnlySequenceDebugView`1[System.__Canon]:.ctor(System.Buffers.ReadOnlySequence`1[System.__Canon]):this (FullOpts)
          18 (10.11 % of base) : System.Data.Common.dasm - System.Data.EnumerableRowCollection`1+<>c__DisplayClass16_0[long]:<GetLinqDataView>b__2(System.Data.DataRow):ubyte:this (FullOpts)
          18 (10.11 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.QilGenerator:CreateGlobalVarPars():this (FullOpts)
          32 (10.09 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeModuleRefTable(System.Reflection.Metadata.BlobBuilder,System.Collections.Immutable.ImmutableArray`1[int],System.Reflection.Metadata.Ecma335.MetadataSizes):this (FullOpts)
          35 (10.06 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.TypeBuilderImpl:GetFields(int):System.Reflection.FieldInfo[]:this (FullOpts)
          35 (10.06 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.TypeBuilderImpl:GetProperties(int):System.Reflection.PropertyInfo[]:this (FullOpts)
          18 (10.06 % of base) : System.Data.Common.dasm - System.Data.EnumerableRowCollection`1+<>c__DisplayClass16_0[double]:<GetLinqDataView>b__2(System.Data.DataRow):ubyte:this (FullOpts)
          18 (10.06 % of base) : System.Data.Common.dasm - System.Data.EnumerableRowCollection`1+<>c__DisplayClass16_0[short]:<GetLinqDataView>b__2(System.Data.DataRow):ubyte:this (FullOpts)
          18 (10.06 % of base) : System.Data.Common.dasm - System.Data.EnumerableRowCollection`1+<>c__DisplayClass16_0[ubyte]:<GetLinqDataView>b__2(System.Data.DataRow):ubyte:this (FullOpts)
          24 (10.04 % of base) : System.ComponentModel.Annotations.dasm - System.ComponentModel.DataAnnotations.Validator:TryValidateProperty(System.Object,System.ComponentModel.DataAnnotations.ValidationContext,System.Collections.Generic.ICollection`1[System.ComponentModel.DataAnnotations.ValidationResult]):ubyte (FullOpts)
          24 (10.04 % of base) : runincontext.dasm - TestRunner:VerifyAssembliesUnloaded(System.Collections.Generic.List`1[System.WeakReference]):ubyte:this (FullOpts)
          18 (9.78 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.SchemaImporter:ImportKnownTypes(System.Xml.XmlQualifiedName):this (FullOpts)
         137 (9.78 % of base) : System.Web.HttpUtility.dasm - System.Web.Util.HttpEncoder:<JavaScriptStringEncode>g__EncodeCore|12_0(System.ReadOnlySpan`1[ushort],int,ubyte):System.String (FullOpts)
          24 (9.72 % of base) : System.Resources.Extensions.dasm - System.Resources.Extensions.BinaryFormat.SerializationEvents:AddOnDelegate(System.Object,System.Collections.Generic.List`1[System.Reflection.MethodInfo]):System.Action`1[System.Runtime.Serialization.StreamingContext] (FullOpts)
          24 (9.68 % of base) : System.IO.Packaging.dasm - System.IO.Packaging.PackagePart:Close():this (FullOpts)
          14 (9.66 % of base) : Microsoft.Extensions.Hosting.dasm - Microsoft.Extensions.Hosting.HostApplicationBuilder+HostBuilderAdapter+<>c__DisplayClass7_0:<ApplyChanges>b__1(System.Object):this (FullOpts)
         164 (9.51 % of base) : System.Text.Encoding.CodePages.dasm - System.Text.ISO2022Encoding:GetBytesCP50225KR(ulong,int,ulong,int,System.Text.ISO2022Encoding+ISO2022Encoder):int:this (FullOpts)
         261 (9.27 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.MethodTypeInferrer:Fix(int):ubyte:this (FullOpts)
          18 (9.23 % of base) : Microsoft.Extensions.Http.dasm - Microsoft.Extensions.Http.DefaultHttpClientFactory+<>c__DisplayClass17_0:<CreateHandlerEntry>g__Configure|0(Microsoft.Extensions.Http.HttpMessageHandlerBuilder):this (FullOpts)
          18 (9.05 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.Hosting.ImportEngine+EngineContext:Complete():this (FullOpts)
          19 (8.96 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.ManagedCertificateFinder:FindExtension(System.Security.Cryptography.X509Certificates.X509Certificate2,System.String):System.Security.Cryptography.X509Certificates.X509Extension (FullOpts)
          14 (8.64 % of base) : System.IO.Packaging.dasm - System.IO.Packaging.ZipPackage+IgnoredItemHelper:DeleteItemsWithSimilarExtension(System.String):this (FullOpts)
          14 (8.59 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeEncMapTable(System.Reflection.Metadata.BlobBuilder):this (FullOpts)
          44 (8.56 % of base) : System.Private.CoreLib.dasm - System.Number+Grisu3:TryDigitGenShortest(byref,byref,byref,System.Span`1[ubyte],byref,byref):ubyte (FullOpts)
          16 (8.42 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.X509ExtensionCollection:get_Item(System.String):System.Security.Cryptography.X509Certificates.X509Extension:this (FullOpts)
          35 (8.33 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.ModuleBuilderImpl:GetLocalVariableHandle(System.Collections.Generic.List`1[System.Reflection.Emit.LocalBuilder],System.Reflection.Metadata.LocalVariableHandle):System.Reflection.Metadata.LocalVariableHandle:this (FullOpts)
          38 (8.28 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.XsltLoader:CheckWithParam(System.Collections.Generic.List`1[System.Xml.Xsl.Xslt.XslNode],System.Xml.Xsl.Xslt.XslNode):this (FullOpts)
           8 (8.16 % of base) : Microsoft.Extensions.Configuration.dasm - Microsoft.Extensions.Configuration.ConfigurationManager:DisposeRegistrations():this (FullOpts)
           8 (8.16 % of base) : System.Composition.Hosting.dasm - System.Composition.Hosting.Core.CompositionOperation:RunAndClearActions():this (FullOpts)
          10 (8.06 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.TraceLoggingMetadataCollector+Impl:Encode(ubyte[]):int:this (FullOpts)
          14 (7.91 % of base) : System.Data.Common.dasm - System.Data.EnumerableRowCollection`1+<>c__DisplayClass16_0[int]:<GetLinqDataView>b__2(System.Data.DataRow):ubyte:this (FullOpts)
          34 (7.91 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.Hosting.ImportEngine+RecompositionManager:UpdateImportIndex():this (FullOpts)
          24 (7.87 % of base) : System.ComponentModel.Annotations.dasm - System.ComponentModel.DataAnnotations.Validator:TryValidateObject(System.Object,System.ComponentModel.DataAnnotations.ValidationContext,System.Collections.Generic.ICollection`1[System.ComponentModel.DataAnnotations.ValidationResult],ubyte):ubyte (FullOpts)
          33 (7.84 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.AsymmetricAlgorithm:ExportArray(System.Security.Cryptography.AsymmetricAlgorithm+TryExport):ubyte[] (FullOpts)
          42 (7.79 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1[short]:DecodeArrayArgument(byref,System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1+ArgumentTypeInfo[short]):System.Nullable`1[System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.CustomAttributeTypedArgument`1[short]]]:this (FullOpts)
          68 (7.78 % of base) : System.Net.Mail.dasm - System.Net.Mime.MailBnfHelper:ReadQuotedString(System.String,byref,System.Text.StringBuilder,ubyte,ubyte):System.String (FullOpts)
          18 (7.76 % of base) : System.IO.Packaging.dasm - System.IO.Packaging.Package:CopyPartDictionaryToPartList(System.Collections.Generic.Dictionary`2[System.String,System.Collections.Generic.KeyValuePair`2[System.IO.Packaging.PackUriHelper+ValidatedPartUri,System.IO.Packaging.PackagePart]],System.Collections.Generic.List`1[System.String]):this (FullOpts)
          27 (7.65 % of base) : System.ObjectModel.dasm - System.Collections.ObjectModel.KeyedCollection`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:TryGetValue(System.Numerics.Vector`1[float],byref):ubyte:this (FullOpts)
          14 (7.53 % of base) : Microsoft.Extensions.Hosting.dasm - Microsoft.Extensions.Hosting.HostBuilder:InitializeHostConfiguration():this (FullOpts)
          40 (7.50 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1[ubyte]:DecodeArrayArgument(byref,System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1+ArgumentTypeInfo[ubyte]):System.Nullable`1[System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.CustomAttributeTypedArgument`1[ubyte]]]:this (FullOpts)
          16 (7.48 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Interpreter.InstructionList:BuildRuntimeLabels():System.Linq.Expressions.Interpreter.RuntimeLabel[]:this (FullOpts)
          26 (7.47 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlDecimal:AddULong(uint):this (FullOpts)
          18 (7.47 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.Scope:GetAllLocals():System.Collections.Generic.List`1[System.Reflection.Emit.LocalBuilder]:this (FullOpts)
          35 (7.42 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.OverloadResolution:MostSpecificProcedure(System.Collections.Generic.List`1[Microsoft.VisualBasic.CompilerServices.Symbols+Method],byref,System.Object[],System.String[]):Microsoft.VisualBasic.CompilerServices.Symbols+Method (FullOpts)
           8 (7.41 % of base) : System.IO.Packaging.dasm - System.IO.Packaging.ZipPackage:DeleteInterleavedPartOrStream(System.Collections.Generic.List`1[System.IO.Packaging.ZipPackagePartPiece]) (FullOpts)
           6 (7.41 % of base) : System.Private.DataContractSerialization.dasm - System.Xml.XmlBufferReader:Equals2(int,int,int,int):ubyte:this (FullOpts)
          22 (7.36 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.Task:AddExceptionsFromChildren(System.Threading.Tasks.Task+ContingentProperties):this (FullOpts)
          26 (7.32 % of base) : System.Formats.Nrbf.dasm - System.Formats.Nrbf.SZArrayOfRecords:ToArray(ubyte):System.Formats.Nrbf.SerializationRecord[]:this (FullOpts)
           7 (7.22 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigIntegerCalculator:<Multiply>g__Naive|57_1(System.ReadOnlySpan`1[uint],System.ReadOnlySpan`1[uint],System.Span`1[uint]) (FullOpts)
          32 (7.13 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeEventMapTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (FullOpts)
          32 (7.13 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeGenericParamConstraintTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (FullOpts)
         226 (7.10 % of base) : System.Text.Encoding.CodePages.dasm - System.Text.ISO2022Encoding:GetBytesCP5022xJP(ulong,int,ulong,int,System.Text.ISO2022Encoding+ISO2022Encoder):int:this (FullOpts)
          19 (7.09 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.ManagedCertificateFinder+<>c:<FindByApplicationPolicy>b__16_0(System.String,System.Security.Cryptography.X509Certificates.X509Certificate2):ubyte:this (FullOpts)
          25 (7.08 % of base) : System.Net.Security.dasm - Interop+Ssl:SerializeAlpnProtocolList(System.Collections.Generic.List`1[System.Net.Security.SslApplicationProtocol],System.Span`1[ubyte]) (FullOpts)
           8 (7.08 % of base) : System.ComponentModel.Annotations.dasm - System.ComponentModel.DataAnnotations.PhoneAttribute:MatchesExtension(System.ReadOnlySpan`1[ushort]):ubyte (FullOpts)
          32 (7.08 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeInterfaceImplTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (FullOpts)
          32 (7.08 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeNestedClassTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (FullOpts)
          32 (7.08 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializePropertyMapTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (FullOpts)
          32 (7.08 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeStateMachineMethodTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (FullOpts)
          25 (7.02 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.Ecma335.MetadataBuilder:SerializeFieldLayoutTable(System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.Ecma335.MetadataSizes):this (FullOpts)
          14 (6.97 % of base) : System.Data.Common.dasm - System.Data.EnumerableRowCollection`1+<>c__DisplayClass16_0[System.Numerics.Vector`1[float]]:<GetLinqDataView>b__2(System.Data.DataRow):ubyte:this (FullOpts)
          19 (6.91 % of base) : System.Net.HttpListener.dasm - System.Net.HttpEndPointListener:MatchFromList(System.String,System.Collections.Generic.List`1[System.Net.ListenerPrefix],byref):System.Net.HttpListener (FullOpts)
          85 (6.87 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.XxHashShared:Append(byref,System.ReadOnlySpan`1[ubyte]) (FullOpts)
          25 (6.72 % of base) : Microsoft.Extensions.Logging.dasm - Microsoft.Extensions.Logging.LoggerRuleSelector:Select(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Type,System.String,byref,byref) (FullOpts)
          18 (6.67 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.X509Certificates.ECDsaCertificateExtensions:HasECDsaKeyUsage(System.Security.Cryptography.X509Certificates.X509Certificate2):ubyte (FullOpts)
          57 (6.65 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,long]:TryInsert(System.__Canon,long,ubyte):ubyte:this (FullOpts)

Top method improvements (percentages):
         -92 (-54.76 % of base) : System.Private.CoreLib.dasm - System.SpanHelpers:Fill[System.Numerics.Vector`1[float]](byref,ulong,System.Numerics.Vector`1[float]) (FullOpts)
         -18 (-24.66 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:HammingBitDistance[long](System.ReadOnlySpan`1[long],System.ReadOnlySpan`1[long]):long (FullOpts)
         -18 (-23.68 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:HammingBitDistance[int](System.ReadOnlySpan`1[int],System.ReadOnlySpan`1[int]):long (FullOpts)
         -26 (-23.01 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:CountUnequalElements[System.Nullable`1[int]](System.ReadOnlySpan`1[System.Nullable`1[int]],System.ReadOnlySpan`1[System.Nullable`1[int]]):int (FullOpts)
         -15 (-19.23 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:HammingBitDistance[short](System.ReadOnlySpan`1[short],System.ReadOnlySpan`1[short]):long (FullOpts)
         -20 (-19.05 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Interpreter.HybridReferenceDictionary`2[System.__Canon,System.Nullable`1[int]]:ContainsKey(System.__Canon):ubyte:this (FullOpts)
         -56 (-19.05 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:SequenceEqual[System.__Canon](System.ReadOnlySpan`1[System.__Canon],System.ReadOnlySpan`1[System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):ubyte (FullOpts)
         -21 (-18.75 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:CountUnequalElements[System.Numerics.Vector`1[float]](System.ReadOnlySpan`1[System.Numerics.Vector`1[float]],System.ReadOnlySpan`1[System.Numerics.Vector`1[float]]):int (FullOpts)
         -14 (-18.67 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:HammingBitDistance[ubyte](System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):long (FullOpts)
         -41 (-17.98 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigIntegerCalculator:Subtract(System.ReadOnlySpan`1[uint],uint,System.Span`1[uint]) (FullOpts)
         -72 (-15.45 % of base) : System.Private.CoreLib.dasm - System.Threading.ThreadLocal`1+FinalizationHelper[System.__Canon]:Finalize():this (FullOpts)
         -97 (-14.48 % of base) : System.Linq.dasm - System.Linq.Enumerable+OrderedIterator`2[System.__Canon,System.Nullable`1[int]]:TryGetFirst(byref):System.__Canon:this (FullOpts)
         -97 (-14.48 % of base) : System.Linq.dasm - System.Linq.Enumerable+OrderedIterator`2[System.__Canon,System.Nullable`1[int]]:TryGetLast(byref):System.__Canon:this (FullOpts)
          -7 (-13.73 % of base) : System.Private.CoreLib.dasm - System.Globalization.DateTimeFormatInfoScanner:ScanRepeatChar(System.String,ushort,int,byref):int (FullOpts)
         -26 (-13.68 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[double]:RemoveRange(int,int):this (FullOpts)
         -26 (-13.68 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[int]:RemoveRange(int,int):this (FullOpts)
         -26 (-13.68 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[long]:RemoveRange(int,int):this (FullOpts)
         -26 (-13.68 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[short]:RemoveRange(int,int):this (FullOpts)
         -26 (-13.68 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[System.Nullable`1[int]]:RemoveRange(int,int):this (FullOpts)
         -26 (-13.68 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[System.Numerics.Vector`1[float]]:RemoveRange(int,int):this (FullOpts)
         -26 (-13.68 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[ubyte]:RemoveRange(int,int):this (FullOpts)
         -26 (-13.54 % of base) : System.Private.CoreLib.dasm - System.DefaultBinder:CompareMethodSig(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte (FullOpts)
         -16 (-13.11 % of base) : System.Private.CoreLib.dasm - System.IO.Path:GetExtension(System.ReadOnlySpan`1[ushort]):System.ReadOnlySpan`1[ushort] (FullOpts)
        -241 (-13.11 % of base) : Microsoft.Extensions.DependencyModel.dasm - Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadCompilationOptions(byref):Microsoft.Extensions.DependencyModel.CompilationOptions (FullOpts)
         -12 (-13.04 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.Crc32:UpdateScalarArm32(uint,System.ReadOnlySpan`1[ubyte]):uint (FullOpts)
         -12 (-12.90 % of base) : System.IO.Hashing.dasm - System.IO.Hashing.Crc32:UpdateScalarArm64(uint,System.ReadOnlySpan`1[ubyte]):uint (FullOpts)
         -66 (-12.82 % of base) : System.Collections.Concurrent.dasm - System.Collections.Concurrent.ConcurrentStack`1[System.__Canon]:PushRange(System.__Canon[],int,int):this (FullOpts)
         -15 (-12.61 % of base) : System.Private.CoreLib.dasm - System.IO.Stream:ReadExactly(System.Span`1[ubyte]):this (FullOpts)
         -16 (-12.40 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Internal.StreamExtensions:TryReadAll(System.IO.Stream,System.Span`1[ubyte]):int (FullOpts)
          -5 (-12.20 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:get_IsActualValueType():ubyte:this (FullOpts)
          -5 (-12.20 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:get_IsByRefLike():ubyte:this (FullOpts)
          -5 (-12.20 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:get_IsInterface():ubyte:this (FullOpts)
          -5 (-12.20 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:get_IsNullableOfT():ubyte:this (FullOpts)
         -31 (-11.74 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigIntegerCalculator:Subtract(System.ReadOnlySpan`1[uint],System.ReadOnlySpan`1[uint],System.Span`1[uint]) (FullOpts)
          -7 (-11.48 % of base) : System.Private.CoreLib.dasm - System.Globalization.CalendarData:CountOccurrences(System.String,ushort,byref):int (FullOpts)
         -25 (-11.47 % of base) : System.Runtime.Numerics.dasm - System.Numerics.BigIntegerCalculator:Add(System.ReadOnlySpan`1[uint],uint,System.Span`1[uint]) (FullOpts)
          -8 (-10.96 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Node[double]:ItemRef(int):byref:this (FullOpts)
          -8 (-10.96 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Node[int]:ItemRef(int):byref:this (FullOpts)
          -8 (-10.96 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Node[long]:ItemRef(int):byref:this (FullOpts)
          -8 (-10.96 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Node[short]:ItemRef(int):byref:this (FullOpts)
          -8 (-10.96 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.__Canon]:ItemRef(int):byref:this (FullOpts)
          -8 (-10.96 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Nullable`1[int]]:ItemRef(int):byref:this (FullOpts)
          -8 (-10.96 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Numerics.Vector`1[float]]:ItemRef(int):byref:this (FullOpts)
          -8 (-10.96 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Node[ubyte]:ItemRef(int):byref:this (FullOpts)
          -8 (-10.96 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[double]:ItemRef(int):byref:this (FullOpts)
          -8 (-10.96 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[int]:ItemRef(int):byref:this (FullOpts)
          -8 (-10.96 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[long]:ItemRef(int):byref:this (FullOpts)
          -8 (-10.96 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[short]:ItemRef(int):byref:this (FullOpts)
          -8 (-10.96 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.__Canon]:ItemRef(int):byref:this (FullOpts)
          -8 (-10.96 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.Nullable`1[int]]:ItemRef(int):byref:this (FullOpts)
          -8 (-10.96 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[System.Numerics.Vector`1[float]]:ItemRef(int):byref:this (FullOpts)
          -8 (-10.96 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1+Node[ubyte]:ItemRef(int):byref:this (FullOpts)
          -8 (-10.96 % of base) : System.Data.Common.dasm - System.Data.SqlTypes.SqlBoolean:op_Explicit(System.Data.SqlTypes.SqlDecimal):System.Data.SqlTypes.SqlBoolean (FullOpts)
         -12 (-10.81 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:Shuffle[int](System.Span`1[int]) (FullOpts)
         -32 (-10.70 % of base) : Microsoft.Extensions.Logging.Console.dasm - Microsoft.Extensions.Logging.Console.SimpleConsoleFormatter:GetLogLevelConsoleColors(int):Microsoft.Extensions.Logging.Console.SimpleConsoleFormatter+ConsoleColors:this (FullOpts)
          -4 (-10.53 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:get_IsGenericTypeDefinition():ubyte:this (FullOpts)
         -23 (-10.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1[double]:RemoveRange(int,int):System.Collections.Immutable.ImmutableList`1[double]:this (FullOpts)
         -23 (-10.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1[int]:RemoveRange(int,int):System.Collections.Immutable.ImmutableList`1[int]:this (FullOpts)
         -23 (-10.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1[long]:RemoveRange(int,int):System.Collections.Immutable.ImmutableList`1[long]:this (FullOpts)
         -23 (-10.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1[short]:RemoveRange(int,int):System.Collections.Immutable.ImmutableList`1[short]:this (FullOpts)
         -23 (-10.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1[System.__Canon]:RemoveRange(int,int):System.Collections.Immutable.ImmutableList`1[System.__Canon]:this (FullOpts)
         -23 (-10.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1[System.Nullable`1[int]]:RemoveRange(int,int):System.Collections.Immutable.ImmutableList`1[System.Nullable`1[int]]:this (FullOpts)
         -23 (-10.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1[System.Numerics.Vector`1[float]]:RemoveRange(int,int):System.Collections.Immutable.ImmutableList`1[System.Numerics.Vector`1[float]]:this (FullOpts)
         -23 (-10.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1[ubyte]:RemoveRange(int,int):System.Collections.Immutable.ImmutableList`1[ubyte]:this (FullOpts)
         -13 (-10.48 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:Shuffle[System.Nullable`1[int]](System.Span`1[System.Nullable`1[int]]) (FullOpts)
         -12 (-10.43 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:Shuffle[long](System.Span`1[long]) (FullOpts)
         -12 (-10.43 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:Shuffle[ubyte](System.Span`1[ubyte]) (FullOpts)
         -12 (-10.26 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:Shuffle[short](System.Span`1[short]) (FullOpts)
         -12 (-10.08 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:Shuffle[double](System.Span`1[double]) (FullOpts)
         -11 (-10.00 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[int]:LastIndexOf(int,int):int:this (FullOpts)
         -11 (-10.00 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[long]:LastIndexOf(long,int):int:this (FullOpts)
         -13 (-10.00 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RandomNumberGenerator:Shuffle[System.Numerics.Vector`1[float]](System.Span`1[System.Numerics.Vector`1[float]]) (FullOpts)
         -40 (-9.85 % of base) : System.Linq.dasm - System.Linq.Enumerable+IEnumerableSelectIterator`2[System.__Canon,System.Nullable`1[int]]:TryGetLast(byref):System.Nullable`1[int]:this (FullOpts)
        -141 (-9.55 % of base) : System.Private.CoreLib.dasm - System.Reflection.MethodBaseInvoker:InvokePropertySetter(System.Object,int,System.Reflection.Binder,System.Object,System.Globalization.CultureInfo):this (FullOpts)
         -26 (-9.49 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:SequenceEqual[double](System.ReadOnlySpan`1[double],System.ReadOnlySpan`1[double],System.Collections.Generic.IEqualityComparer`1[double]):ubyte (FullOpts)
         -22 (-9.28 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:RemoveRange(int,int):this (FullOpts)
         -22 (-9.28 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Builder[double]:RemoveRange(int,int):this (FullOpts)
         -22 (-9.28 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Builder[int]:RemoveRange(int,int):this (FullOpts)
         -22 (-9.28 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Builder[long]:RemoveRange(int,int):this (FullOpts)
         -22 (-9.28 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Builder[short]:RemoveRange(int,int):this (FullOpts)
         -22 (-9.28 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Builder[System.__Canon]:RemoveRange(int,int):this (FullOpts)
         -22 (-9.28 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Builder[System.Nullable`1[int]]:RemoveRange(int,int):this (FullOpts)
         -22 (-9.28 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Builder[System.Numerics.Vector`1[float]]:RemoveRange(int,int):this (FullOpts)
         -22 (-9.28 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Builder[ubyte]:RemoveRange(int,int):this (FullOpts)
         -25 (-9.26 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:SequenceEqual[System.Nullable`1[int]](System.ReadOnlySpan`1[System.Nullable`1[int]],System.ReadOnlySpan`1[System.Nullable`1[int]],System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]):ubyte (FullOpts)
         -22 (-8.87 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.Common:ReleaseAllPostponedMessages[double](System.Threading.Tasks.Dataflow.ITargetBlock`1[double],System.Threading.Tasks.Dataflow.Internal.QueuedMap`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[double],System.Threading.Tasks.Dataflow.DataflowMessageHeader],byref) (FullOpts)
         -22 (-8.87 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.Common:ReleaseAllPostponedMessages[int](System.Threading.Tasks.Dataflow.ITargetBlock`1[int],System.Threading.Tasks.Dataflow.Internal.QueuedMap`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[int],System.Threading.Tasks.Dataflow.DataflowMessageHeader],byref) (FullOpts)
         -22 (-8.87 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.Common:ReleaseAllPostponedMessages[long](System.Threading.Tasks.Dataflow.ITargetBlock`1[long],System.Threading.Tasks.Dataflow.Internal.QueuedMap`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[long],System.Threading.Tasks.Dataflow.DataflowMessageHeader],byref) (FullOpts)
         -22 (-8.87 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.Common:ReleaseAllPostponedMessages[short](System.Threading.Tasks.Dataflow.ITargetBlock`1[short],System.Threading.Tasks.Dataflow.Internal.QueuedMap`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[short],System.Threading.Tasks.Dataflow.DataflowMessageHeader],byref) (FullOpts)
         -22 (-8.87 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.Common:ReleaseAllPostponedMessages[System.Nullable`1[int]](System.Threading.Tasks.Dataflow.ITargetBlock`1[System.Nullable`1[int]],System.Threading.Tasks.Dataflow.Internal.QueuedMap`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[System.Nullable`1[int]],System.Threading.Tasks.Dataflow.DataflowMessageHeader],byref) (FullOpts)
         -22 (-8.87 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.Common:ReleaseAllPostponedMessages[System.Numerics.Vector`1[float]](System.Threading.Tasks.Dataflow.ITargetBlock`1[System.Numerics.Vector`1[float]],System.Threading.Tasks.Dataflow.Internal.QueuedMap`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[System.Numerics.Vector`1[float]],System.Threading.Tasks.Dataflow.DataflowMessageHeader],byref) (FullOpts)
         -22 (-8.87 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.Common:ReleaseAllPostponedMessages[ubyte](System.Threading.Tasks.Dataflow.ITargetBlock`1[ubyte],System.Threading.Tasks.Dataflow.Internal.QueuedMap`2[System.Threading.Tasks.Dataflow.ISourceBlock`1[ubyte],System.Threading.Tasks.Dataflow.DataflowMessageHeader],byref) (FullOpts)
         -18 (-8.82 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.TensorPrimitives:CountUnequalElements[System.__Canon](System.ReadOnlySpan`1[System.__Canon],System.ReadOnlySpan`1[System.__Canon]):int (FullOpts)
         -16 (-8.79 % of base) : System.Private.CoreLib.dasm - System.Buffers.StringSearchValues:<Create>g__RemoveUnreachableValues|3_2(System.Span`1[System.String],System.Collections.Generic.HashSet`1[System.String]):System.Span`1[System.String] (FullOpts)
         -19 (-8.72 % of base) : System.Private.Xml.dasm - System.Xml.Schema.XsdDuration:TryParseDigits(System.String,byref,ubyte,byref,byref):System.String (FullOpts)
         -27 (-8.68 % of base) : System.Private.CoreLib.dasm - System.MemoryExtensions:SequenceEqual[System.Numerics.Vector`1[float]](System.ReadOnlySpan`1[System.Numerics.Vector`1[float]],System.ReadOnlySpan`1[System.Numerics.Vector`1[float]],System.Collections.Generic.IEqualityComparer`1[System.Numerics.Vector`1[float]]):ubyte (FullOpts)
         -32 (-8.63 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[double]:.ctor(ulong,long):this (FullOpts)
         -32 (-8.63 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[int]:.ctor(ulong,long):this (FullOpts)
         -32 (-8.63 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[long]:.ctor(ulong,long):this (FullOpts)
         -32 (-8.63 % of base) : System.Numerics.Tensors.dasm - System.Numerics.Tensors.ReadOnlyTensorSpan`1[short]:.ctor(ulong,long):this (FullOpts)

3799 total methods with Code Size differences (2242 improved, 1557 regressed), 229125 unchanged.

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

Artifacts:

@MihuBot
Copy link
Owner Author

MihuBot commented Dec 9, 2024

Top method regressions

164 (9.51 % of base) - System.Text.ISO2022Encoding:GetBytesCP50225KR(ulong,int,ulong,int,System.Text.ISO2022Encoding+ISO2022Encoder):int:this
 ; Assembly listing for method System.Text.ISO2022Encoding:GetBytesCP50225KR(ulong,int,ulong,int,System.Text.ISO2022Encoding+ISO2022Encoder):int:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 10 single block inlinees; 25 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T19] (  4,  5   )     ref  ->  r15         this class-hnd single-def <System.Text.ISO2022Encoding>
+;  V00 this         [V00,T20] (  4,  5   )     ref  ->  r15         this class-hnd single-def <System.Text.ISO2022Encoding>
 ;  V01 arg1         [V01,T40] (  3,  3   )    long  ->  r13         single-def
 ;  V02 arg2         [V02,T41] (  3,  3   )     int  ->  r12         single-def
-;  V03 arg3         [V03,T21] (  4,  4   )    long  ->  r14         single-def
+;  V03 arg3         [V03,T22] (  4,  4   )    long  ->  r14         single-def
 ;  V04 arg4         [V04,T42] (  3,  3   )     int  ->  [rbp-0x2C]  single-def
-;  V05 arg5         [V05,T04] ( 17, 10.50)     ref  ->  rbx         class-hnd single-def <System.Text.ISO2022Encoding+ISO2022Encoder>
-;  V06 loc0         [V06,T00] (156,197   )     ref  ->  r13         class-hnd exact single-def <System.Text.EncodingByteBuffer>
-;  V07 loc1         [V07,T09] (  9, 11.50)     int  ->  r12        
-;  V08 loc2         [V08,T20] (  5,  6   )     int  ->  [rbp-0x30] 
+;  V05 arg5         [V05,T05] ( 17, 10.50)     ref  ->  rbx         class-hnd single-def <System.Text.ISO2022Encoding+ISO2022Encoder>
+;  V06 loc0         [V06,T01] ( 85, 51   )     ref  ->  r12         class-hnd exact single-def <System.Text.EncodingByteBuffer>
+;  V07 loc1         [V07,T10] (  9, 11.50)     int  ->  [rbp-0x30] 
+;  V08 loc2         [V08,T21] (  5,  6   )     int  ->  [rbp-0x34] 
 ;  V09 loc3         [V09,T56] (  3,  1.50)  ushort  ->  rsi        
 ;* V10 loc4         [V10    ] (  0,  0   )  ushort  ->  zero-ref   
-;  V11 loc5         [V11,T10] (  4,  8   )  ushort  ->  rdi        
-;  V12 loc6         [V12,T23] (  3,  6   )   ubyte  ->  [rbp-0x34]  spill-single-def
-;  V13 loc7         [V13,T24] (  3,  6   )   ubyte  ->  [rbp-0x38]  spill-single-def
+;  V11 loc5         [V11,T11] (  4,  8   )  ushort  ->  rdi        
+;  V12 loc6         [V12,T23] (  3,  6   )   ubyte  ->  [rbp-0x38]  spill-single-def
+;  V13 loc7         [V13,T24] (  3,  6   )   ubyte  ->  [rbp-0x3C]  spill-single-def
 ;  V14 OutArgs      [V14    ] (  1,  1   )  struct ( 8) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V15 tmp1         [V15,T22] (  3,  6   )     ref  ->  [rbp-0x40]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.EncodingByteBuffer>
-;  V16 tmp2         [V16,T05] (  6, 12   )  ushort  ->  rsi         "Inline stloc first use temp"
+;  V15 tmp1         [V15,T00] ( 74,298   )     ref  ->  [rbp-0x48]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Text.EncodingByteBuffer>
+;  V16 tmp2         [V16,T06] (  6, 12   )  ushort  ->  rsi         "Inline stloc first use temp"
 ;  V17 tmp3         [V17,T25] (  3,  6   )    long  ->  rdi         "Inline stloc first use temp"
-;  V18 tmp4         [V18,T03] (  4, 16   )   byref  ->  [rbp-0x48]  spill-single-def "Inlining Arg"
-;  V19 tmp5         [V19,T11] (  4,  8   )  ushort  ->  rsi         "Inline stloc first use temp"
+;  V18 tmp4         [V18,T04] (  4, 16   )   byref  ->  [rbp-0x50]  spill-single-def "Inlining Arg"
+;  V19 tmp5         [V19,T12] (  4,  8   )  ushort  ->  rsi         "Inline stloc first use temp"
 ;  V20 tmp6         [V20,T43] (  2,  4   )   ubyte  ->  rsi         "Inline return value spill temp"
 ;* V21 tmp7         [V21    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V22 tmp8         [V22,T26] (  3,  6   )    long  ->  rdi         "Inline stloc first use temp"
 ;* V23 tmp9         [V23    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V24 tmp10        [V24,T27] (  3,  6   )    long  ->  rdi         "Inline stloc first use temp"
 ;* V25 tmp11        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V26 tmp12        [V26,T28] (  3,  6   )    long  ->  rdi         "Inline stloc first use temp"
 ;  V27 tmp13        [V27,T29] (  3,  6   )   ubyte  ->  rsi         "Inline return value spill temp"
 ;  V28 tmp14        [V28,T30] (  3,  6   )    long  ->  rdi         "Inline stloc first use temp"
 ;* V29 tmp15        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V30 tmp16        [V30,T31] (  3,  6   )    long  ->  rdi         "Inline stloc first use temp"
 ;  V31 tmp17        [V31,T44] (  2,  4   )   ubyte  ->  rax         "Inline return value spill temp"
 ;* V32 tmp18        [V32    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V33 tmp19        [V33,T32] (  3,  6   )    long  ->  rdi         "Inline stloc first use temp"
 ;  V34 tmp20        [V34,T33] (  3,  6   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V35 tmp21        [V35,T34] (  3,  6   )    long  ->  rdi         "Inline stloc first use temp"
 ;* V36 tmp22        [V36    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V37 tmp23        [V37,T35] (  3,  6   )    long  ->  rdi         "Inline stloc first use temp"
 ;* V38 tmp24        [V38    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V39 tmp25        [V39,T36] (  3,  6   )    long  ->  rdi         "Inline stloc first use temp"
 ;* V40 tmp26        [V40,T45] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V41 tmp27        [V41    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V42 tmp28        [V42,T57] (  3,  1.50)    long  ->  rdi         "Inline stloc first use temp"
-;  V43 tmp29        [V43,T01] (  3, 48   )     ref  ->  rdi         "argument with side effect"
-;  V44 tmp30        [V44,T06] (  3, 12   )     ref  ->  rdi         "argument with side effect"
+;  V43 tmp29        [V43,T02] (  3, 48   )     ref  ->  rdi         "argument with side effect"
+;  V44 tmp30        [V44,T07] (  3, 12   )     ref  ->  rdi         "argument with side effect"
 ;  V45 tmp31        [V45,T47] (  3,  3   )     ref  ->  rdi         "argument with side effect"
 ;  V46 tmp32        [V46,T48] (  3,  3   )     ref  ->  rdi         "argument with side effect"
 ;  V47 tmp33        [V47,T49] (  3,  3   )     ref  ->  rdi         "argument with side effect"
 ;  V48 tmp34        [V48,T50] (  3,  3   )     ref  ->  rdi         "argument with side effect"
 ;  V49 tmp35        [V49,T51] (  3,  3   )     ref  ->  rdi         "argument with side effect"
-;  V50 tmp36        [V50,T07] (  3, 12   )     ref  ->  rdi         "argument with side effect"
+;  V50 tmp36        [V50,T08] (  3, 12   )     ref  ->  rdi         "argument with side effect"
 ;  V51 tmp37        [V51,T52] (  3,  3   )     ref  ->  rdi         "argument with side effect"
 ;  V52 tmp38        [V52,T53] (  3,  3   )     ref  ->  rdi         "argument with side effect"
-;  V53 tmp39        [V53,T08] (  3, 12   )     ref  ->  rdi         "argument with side effect"
+;  V53 tmp39        [V53,T09] (  3, 12   )     ref  ->  rdi         "argument with side effect"
 ;  V54 tmp40        [V54,T54] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V55 cse0         [V55,T02] (  8, 16   )    long  ->  rdi         multi-def "CSE #03: aggressive"
-;  V56 cse1         [V56,T12] (  4,  8   )    long  ->  rdi         "CSE #04: moderate"
-;  V57 cse2         [V57,T13] (  4,  8   )    long  ->  rdi         "CSE #05: moderate"
-;  V58 cse3         [V58,T14] (  4,  8   )    long  ->  rdi         "CSE #06: moderate"
-;  V59 cse4         [V59,T15] (  4,  8   )    long  ->  rdi         "CSE #08: moderate"
-;  V60 cse5         [V60,T16] (  4,  8   )    long  ->  rdi         "CSE #09: moderate"
-;  V61 cse6         [V61,T17] (  4,  8   )    long  ->  rdi         "CSE #10: moderate"
-;  V62 cse7         [V62,T18] (  4,  8   )    long  ->  rdi         "CSE #14: moderate"
+;  V55 cse0         [V55,T03] (  8, 16   )    long  ->  rdi         multi-def "CSE #03: aggressive"
+;  V56 cse1         [V56,T13] (  4,  8   )    long  ->  rdi         "CSE #04: moderate"
+;  V57 cse2         [V57,T14] (  4,  8   )    long  ->  rdi         "CSE #05: moderate"
+;  V58 cse3         [V58,T15] (  4,  8   )    long  ->  rdi         "CSE #06: moderate"
+;  V59 cse4         [V59,T16] (  4,  8   )    long  ->  rdi         "CSE #08: moderate"
+;  V60 cse5         [V60,T17] (  4,  8   )    long  ->  rdi         "CSE #09: moderate"
+;  V61 cse6         [V61,T18] (  4,  8   )    long  ->  rdi         "CSE #10: moderate"
+;  V62 cse7         [V62,T19] (  4,  8   )    long  ->  rdi         "CSE #14: moderate"
 ;  V63 cse8         [V63,T37] (  3,  6   )    long  ->  rdi         "CSE #02: moderate"
 ;  V64 cse9         [V64,T38] (  3,  6   )    long  ->  rdi         "CSE #07: moderate"
 ;  V65 cse10        [V65,T39] (  3,  6   )    long  ->  rdi         "CSE #11: moderate"
 ;  V66 cse11        [V66,T55] (  4,  2   )    long  ->  rdi         "CSE #29: conservative"
 ;  V67 cse12        [V67,T46] (  6,  3   )    long  ->  r15         multi-def "CSE #16: conservative"
 ;  V68 cse13        [V68,T58] (  3,  1.50)    long  ->  rdi         "CSE #17: conservative"
 ;  V69 cse14        [V69,T59] (  3,  1.50)    long  ->  rdi         "CSE #18: conservative"
 ;  V70 cse15        [V70,T60] (  3,  1.50)    long  ->  rdi         "CSE #19: conservative"
 ;  V71 cse16        [V71,T61] (  3,  1.50)    long  ->  rdi         "CSE #20: conservative"
 ;  V72 cse17        [V72,T62] (  3,  1.50)    long  ->  rdi         "CSE #28: conservative"
 ;  V73 cse18        [V73,T63] (  3,  1.50)    long  ->  rdi         "CSE #30: conservative"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 56
 
 G_M16009_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 40
-       lea      rbp, [rsp+0x50]
+       sub      rsp, 56
+       lea      rbp, [rsp+0x60]
        mov      dword ptr [rbp-0x2C], r8d
        mov      r15, rdi
        mov      r13, rsi
        mov      r12d, edx
        mov      r14, rcx
        mov      rbx, r9
 						;; size=38 bbWeight=1 PerfScore 9.00
 G_M16009_IG02:
        mov      rdi, 0xD1FFAB1E      ; System.Text.EncodingByteBuffer
        call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x40], rax
+       mov      gword ptr [rbp-0x48], rax
        mov      dword ptr [rsp], r12d
        mov      rdi, rax
        mov      rsi, r15
        mov      rdx, rbx
        mov      rcx, r14
        mov      r8d, dword ptr [rbp-0x2C]
        mov      r9, r13
        mov      r10, 0xD1FFAB1E      ; code for System.Text.EncodingByteBuffer:.ctor(System.Text.EncodingNLS,System.Text.EncoderNLS,ulong,int,ulong,int):this
        call     [r10]System.Text.EncodingByteBuffer:.ctor(System.Text.EncodingNLS,System.Text.EncoderNLS,ulong,int,ulong,int):this
-       mov      r13, gword ptr [rbp-0x40]
-       mov      r12d, 11
+       mov      r13, gword ptr [rbp-0x48]
+       mov      r12, r13
        mov      eax, 11
+       mov      ecx, 11
        test     rbx, rbx
        mov      dword ptr [rbp-0x30], eax
+       mov      dword ptr [rbp-0x34], ecx
        je       SHORT G_M16009_IG05
-						;; size=78 bbWeight=1 PerfScore 12.50
+						;; size=83 bbWeight=1 PerfScore 13.75
 G_M16009_IG03:
        movzx    rsi, word  ptr [rbx+0x34]
-       mov      r12d, dword ptr [rbx+0x38]
-       mov      eax, dword ptr [rbx+0x3C]
+       mov      eax, dword ptr [rbx+0x38]
        mov      dword ptr [rbp-0x30], eax
+       mov      ecx, dword ptr [rbx+0x3C]
+       mov      dword ptr [rbp-0x34], ecx
        test     esi, esi
        jle      SHORT G_M16009_IG05
-       lea      rdi, bword ptr [r13+0x58]
-       lea      rdx, bword ptr [r13+0x38]
-       mov      rcx, 0xD1FFAB1E      ; code for System.Text.EncoderFallbackBufferHelper:InternalFallback(ushort,byref):ubyte:this
-       call     [rcx]System.Text.EncoderFallbackBufferHelper:InternalFallback(ushort,byref):ubyte:this
+       lea      rdi, bword ptr [r12+0x58]
+       lea      rdx, bword ptr [r12+0x38]
+       mov      r8, 0xD1FFAB1E      ; code for System.Text.EncoderFallbackBufferHelper:InternalFallback(ushort,byref):ubyte:this
+       call     [r8]System.Text.EncoderFallbackBufferHelper:InternalFallback(ushort,byref):ubyte:this
        jmp      SHORT G_M16009_IG05
-						;; size=40 bbWeight=0.50 PerfScore 7.25
+						;; size=45 bbWeight=0.50 PerfScore 7.75
 G_M16009_IG04:
        lea      rdi, bword ptr [r13+0x58]
        lea      rdx, bword ptr [r13+0x38]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.EncoderFallbackBufferHelper:InternalFallback(ushort,byref):ubyte:this
        call     [rax]System.Text.EncoderFallbackBufferHelper:InternalFallback(ushort,byref):ubyte:this
 						;; size=20 bbWeight=2 PerfScore 8.50
 G_M16009_IG05:
-       mov      rdi, gword ptr [r13+0x18]
-       mov      rcx, qword ptr [rdi]
-       mov      rcx, qword ptr [rcx+0x48]
-       call     [rcx]System.Text.EncoderFallbackBuffer:get_Remaining():int:this
+       mov      rdi, gword ptr [r12+0x18]
+       mov      rdx, qword ptr [rdi]
+       mov      rdx, qword ptr [rdx+0x48]
+       call     [rdx]System.Text.EncoderFallbackBuffer:get_Remaining():int:this
        test     eax, eax
        jg       SHORT G_M16009_IG07
-						;; size=17 bbWeight=8 PerfScore 82.00
+						;; size=18 bbWeight=8 PerfScore 82.00
 G_M16009_IG06:
        mov      rdi, qword ptr [r13+0x38]
        cmp      rdi, qword ptr [r13+0x48]
-       jae      G_M16009_IG34
+       jae      G_M16009_IG36
 						;; size=14 bbWeight=4 PerfScore 24.00
 G_M16009_IG07:
        lea      rax, bword ptr [r13+0x58]
-       mov      bword ptr [rbp-0x48], rax
+       mov      bword ptr [rbp-0x50], rax
        mov      rdi, gword ptr [rax+0x08]
        mov      rcx, qword ptr [rdi]
        mov      rcx, qword ptr [rcx+0x40]
        call     [rcx+0x30]System.Text.EncoderFallbackBuffer:GetNextChar():ushort:this
        mov      esi, eax
        test     esi, esi
        setne    dil
-       mov      rdx, bword ptr [rbp-0x48]
+       mov      rdx, bword ptr [rbp-0x50]
        mov      byte  ptr [rdx+0x26], dil
        test     esi, esi
        jne      SHORT G_M16009_IG08
        xor      edi, edi
        mov      dword ptr [rdx+0x20], edi
 						;; size=47 bbWeight=2 PerfScore 33.00
 G_M16009_IG08:
        test     esi, esi
        jne      SHORT G_M16009_IG09
        mov      rdi, qword ptr [r13+0x38]
        cmp      rdi, qword ptr [r13+0x48]
        jae      SHORT G_M16009_IG09
        lea      rsi, [rdi+0x02]
        mov      qword ptr [r13+0x38], rsi
        movzx    rsi, word  ptr [rdi]
 						;; size=25 bbWeight=2 PerfScore 21.50
 G_M16009_IG09:
        mov      rdi, qword ptr [r15+0x70]
        mov      edx, esi
        movzx    rdi, word  ptr [rdi+2*rdx]
        mov      edx, edi
        sar      edx, 8
        movzx    rax, dl
-       mov      dword ptr [rbp-0x34], eax
+       mov      dword ptr [rbp-0x38], eax
        movzx    rcx, dil
-       mov      dword ptr [rbp-0x38], ecx
+       mov      dword ptr [rbp-0x3C], ecx
        test     eax, eax
        jne      SHORT G_M16009_IG14
        test     edi, edi
        jne      SHORT G_M16009_IG10
        test     esi, esi
        jne      G_M16009_IG04
 						;; size=44 bbWeight=2 PerfScore 22.50
 G_M16009_IG10:
-       cmp      r12d, 11
+       mov      eax, dword ptr [rbp-0x30]
+       cmp      eax, 11
        je       SHORT G_M16009_IG12
        mov      rdi, qword ptr [r13+0x20]
        test     rdi, rdi
        je       SHORT G_M16009_IG11
        cmp      rdi, qword ptr [r13+0x30]
-       jae      G_M16009_IG40
+       jae      G_M16009_IG44
        lea      rax, [rdi+0x01]
        mov      qword ptr [r13+0x20], rax
        mov      byte  ptr [rdi], 15
-						;; size=36 bbWeight=2 PerfScore 22.00
+						;; size=38 bbWeight=2 PerfScore 24.00
 G_M16009_IG11:
        inc      dword ptr [r13+0x50]
-       mov      r12d, 11
-						;; size=10 bbWeight=2 PerfScore 6.50
+       mov      eax, 11
+						;; size=9 bbWeight=2 PerfScore 6.50
 G_M16009_IG12:
        mov      rdi, qword ptr [r13+0x20]
        test     rdi, rdi
        je       SHORT G_M16009_IG13
        cmp      rdi, qword ptr [r13+0x30]
-       jae      G_M16009_IG37
-       lea      rax, [rdi+0x01]
-       mov      qword ptr [r13+0x20], rax
+       jae      G_M16009_IG39
+       lea      rdx, [rdi+0x01]
+       mov      qword ptr [r13+0x20], rdx
        mov      byte  ptr [rdi], cl
 						;; size=29 bbWeight=2 PerfScore 19.50
 G_M16009_IG13:
        inc      dword ptr [r13+0x50]
+       mov      dword ptr [rbp-0x30], eax
        jmp      G_M16009_IG05
-						;; size=9 bbWeight=2 PerfScore 10.00
+						;; size=12 bbWeight=2 PerfScore 12.00
 G_M16009_IG14:
-       cmp      dword ptr [rbp-0x30], 5
+       cmp      dword ptr [rbp-0x34], 5
        je       G_M16009_IG25
        mov      rdi, qword ptr [r13+0x20]
        test     rdi, rdi
        je       SHORT G_M16009_IG15
        mov      rsi, qword ptr [r13+0x30]
        add      rsi, -3
        cmp      rdi, rsi
-       jae      G_M16009_IG55
+       jae      G_M16009_IG65
        lea      rsi, [rdi+0x01]
        mov      qword ptr [r13+0x20], rsi
        mov      byte  ptr [rdi], 27
 						;; size=47 bbWeight=2 PerfScore 24.50
 G_M16009_IG15:
        inc      dword ptr [r13+0x50]
        mov      rdi, qword ptr [r13+0x20]
        test     rdi, rdi
        je       SHORT G_M16009_IG16
        mov      rsi, qword ptr [r13+0x30]
        add      rsi, -2
        cmp      rdi, rsi
-       jae      G_M16009_IG52
+       jae      G_M16009_IG62
        lea      rsi, [rdi+0x01]
        mov      qword ptr [r13+0x20], rsi
        mov      byte  ptr [rdi], 36
 						;; size=41 bbWeight=2 PerfScore 24.50
 G_M16009_IG16:
        inc      dword ptr [r13+0x50]
        mov      rdi, qword ptr [r13+0x20]
        test     rdi, rdi
        je       SHORT G_M16009_IG17
        mov      rsi, qword ptr [r13+0x30]
        dec      rsi
        cmp      rdi, rsi
-       jae      G_M16009_IG49
+       jae      G_M16009_IG59
        lea      rsi, [rdi+0x01]
        mov      qword ptr [r13+0x20], rsi
        mov      byte  ptr [rdi], 41
 						;; size=40 bbWeight=2 PerfScore 24.50
 G_M16009_IG17:
        inc      dword ptr [r13+0x50]
        mov      rdi, qword ptr [r13+0x20]
        test     rdi, rdi
        je       SHORT G_M16009_IG18
        cmp      rdi, qword ptr [r13+0x30]
        jae      SHORT G_M16009_IG19
        lea      rsi, [rdi+0x01]
        mov      qword ptr [r13+0x20], rsi
        mov      byte  ptr [rdi], 67
 						;; size=30 bbWeight=2 PerfScore 25.50
 G_M16009_IG18:
        inc      dword ptr [r13+0x50]
        mov      esi, 1
        jmp      SHORT G_M16009_IG24
 						;; size=11 bbWeight=2 PerfScore 10.50
 G_M16009_IG19:
        cmp      byte  ptr [r13+0x7E], 0
        jne      SHORT G_M16009_IG22
        mov      rdi, qword ptr [r13+0x38]
        cmp      rdi, qword ptr [r13+0x40]
        ja       SHORT G_M16009_IG21
 						;; size=17 bbWeight=2 PerfScore 20.00
 G_M16009_IG20:
        jmp      SHORT G_M16009_IG23
 						;; size=2 bbWeight=1 PerfScore 2.00
 G_M16009_IG21:
        add      rdi, -2
        mov      qword ptr [r13+0x38], rdi
        jmp      SHORT G_M16009_IG23
 						;; size=10 bbWeight=2 PerfScore 6.50
 G_M16009_IG22:
        mov      rdi, gword ptr [r13+0x18]
        mov      rsi, qword ptr [rdi]
        mov      rsi, qword ptr [rsi+0x40]
        call     [rsi+0x38]System.Text.EncoderFallbackBuffer:MovePrevious():ubyte:this
 						;; size=14 bbWeight=2 PerfScore 18.00
 G_M16009_IG23:
        mov      rdx, qword ptr [r13+0x20]
        cmp      rdx, qword ptr [r13+0x28]
        sete     dl
        movzx    rdx, dl
        mov      rsi, gword ptr [r13+0x10]
        mov      rdi, gword ptr [r13+0x08]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
        xor      esi, esi
-       mov      ecx, dword ptr [rbp-0x38]
+       mov      ecx, dword ptr [rbp-0x3C]
 						;; size=41 bbWeight=2 PerfScore 35.50
 G_M16009_IG24:
        test     esi, esi
-       je       G_M16009_IG34
-       mov      dword ptr [rbp-0x30], 5
+       je       G_M16009_IG36
+       mov      dword ptr [rbp-0x34], 5
 						;; size=15 bbWeight=2 PerfScore 4.50
 G_M16009_IG25:
-       cmp      r12d, 5
+       mov      esi, dword ptr [rbp-0x30]
+       cmp      esi, 5
        je       SHORT G_M16009_IG27
        mov      rdi, qword ptr [r13+0x20]
        test     rdi, rdi
        je       SHORT G_M16009_IG26
        cmp      rdi, qword ptr [r13+0x30]
-       jae      G_M16009_IG46
+       jae      G_M16009_IG54
        lea      rsi, [rdi+0x01]
        mov      qword ptr [r13+0x20], rsi
        mov      byte  ptr [rdi], 14
-						;; size=36 bbWeight=2 PerfScore 22.00
+						;; size=38 bbWeight=2 PerfScore 24.00
 G_M16009_IG26:
        inc      dword ptr [r13+0x50]
-       mov      r12d, 5
-						;; size=10 bbWeight=2 PerfScore 6.50
+       mov      dword ptr [rbp-0x30], 5
+       mov      esi, dword ptr [rbp-0x30]
+						;; size=14 bbWeight=2 PerfScore 10.00
 G_M16009_IG27:
        mov      rdi, qword ptr [r13+0x20]
        test     rdi, rdi
        je       SHORT G_M16009_IG28
-       mov      rsi, qword ptr [r13+0x30]
-       dec      rsi
-       cmp      rdi, rsi
-       jae      G_M16009_IG43
-       lea      rsi, [rdi+0x01]
-       mov      qword ptr [r13+0x20], rsi
-       mov      eax, dword ptr [rbp-0x34]
+       mov      r8, qword ptr [r13+0x30]
+       dec      r8
+       cmp      rdi, r8
+       jae      G_M16009_IG49
+       lea      r8, [rdi+0x01]
+       mov      qword ptr [r13+0x20], r8
+       mov      eax, dword ptr [rbp-0x38]
        mov      byte  ptr [rdi], al
 						;; size=38 bbWeight=2 PerfScore 20.50
 G_M16009_IG28:
        inc      dword ptr [r13+0x50]
        mov      rdi, qword ptr [r13+0x20]
        test     rdi, rdi
        je       SHORT G_M16009_IG29
        cmp      rdi, qword ptr [r13+0x30]
        jae      SHORT G_M16009_IG30
        lea      rax, [rdi+0x01]
        mov      qword ptr [r13+0x20], rax
        mov      byte  ptr [rdi], cl
 						;; size=29 bbWeight=2 PerfScore 25.50
 G_M16009_IG29:
        inc      dword ptr [r13+0x50]
        mov      eax, 1
-       jmp      SHORT G_M16009_IG33
+       jmp      SHORT G_M16009_IG35
 						;; size=11 bbWeight=2 PerfScore 10.50
 G_M16009_IG30:
        cmp      byte  ptr [r13+0x7E], 0
-       jne      SHORT G_M16009_IG31
+       jne      SHORT G_M16009_IG33
        mov      rdi, qword ptr [r13+0x38]
        cmp      rdi, qword ptr [r13+0x40]
-       jbe      SHORT G_M16009_IG32
+       ja       SHORT G_M16009_IG32
+						;; size=17 bbWeight=2 PerfScore 20.00
+G_M16009_IG31:
+       mov      dword ptr [rbp-0x30], esi
+       jmp      SHORT G_M16009_IG34
+						;; size=5 bbWeight=1 PerfScore 3.00
+G_M16009_IG32:
        add      rdi, -2
        mov      qword ptr [r13+0x38], rdi
-       jmp      SHORT G_M16009_IG32
-						;; size=27 bbWeight=2 PerfScore 26.50
-G_M16009_IG31:
+       mov      dword ptr [rbp-0x30], esi
+       jmp      SHORT G_M16009_IG34
+						;; size=13 bbWeight=2 PerfScore 8.50
+G_M16009_IG33:
+       mov      dword ptr [rbp-0x30], esi
        mov      rdi, gword ptr [r13+0x18]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x38]System.Text.EncoderFallbackBuffer:MovePrevious():ubyte:this
-						;; size=14 bbWeight=2 PerfScore 18.00
-G_M16009_IG32:
+						;; size=17 bbWeight=2 PerfScore 20.00
+G_M16009_IG34:
        mov      rdx, qword ptr [r13+0x20]
        cmp      rdx, qword ptr [r13+0x28]
        sete     dl
        movzx    rdx, dl
        mov      rsi, gword ptr [r13+0x10]
        mov      rdi, gword ptr [r13+0x08]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
        xor      eax, eax
-						;; size=38 bbWeight=2 PerfScore 33.50
-G_M16009_IG33:
-       test     eax, eax
-       jne      G_M16009_IG05
-						;; size=8 bbWeight=2 PerfScore 2.50
-G_M16009_IG34:
-       cmp      r12d, 11
-       je       G_M16009_IG62
-						;; size=10 bbWeight=1 PerfScore 1.25
+       mov      esi, dword ptr [rbp-0x30]
+						;; size=41 bbWeight=2 PerfScore 35.50
 G_M16009_IG35:
-       test     rbx, rbx
-       je       SHORT G_M16009_IG36
-       cmp      byte  ptr [rbx+0x36], 0
-       je       G_M16009_IG62
-						;; size=15 bbWeight=0.50 PerfScore 2.62
+       test     eax, eax
+       mov      dword ptr [rbp-0x30], esi
+       jne      G_M16009_IG05
+						;; size=11 bbWeight=2 PerfScore 4.50
 G_M16009_IG36:
-       mov      rdi, qword ptr [r13+0x20]
-       test     rdi, rdi
-       je       G_M16009_IG59
-       cmp      rdi, qword ptr [r13+0x30]
-       jb       G_M16009_IG58
-       cmp      byte  ptr [r13+0x7E], 0
-       je       G_M16009_IG60
-       mov      rdi, gword ptr [r13+0x18]
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x40]
-       call     [rax+0x38]System.Text.EncoderFallbackBuffer:MovePrevious():ubyte:this
-       jmp      G_M16009_IG61
-						;; size=53 bbWeight=0.50 PerfScore 11.12
+       mov      r15d, dword ptr [rbp-0x30]
+       cmp      r15d, 11
+       je       G_M16009_IG72
+						;; size=14 bbWeight=1 PerfScore 2.25
 G_M16009_IG37:
-       cmp      byte  ptr [r13+0x7E], 0
-       jne      SHORT G_M16009_IG38
-       mov      rdi, qword ptr [r13+0x38]
-       cmp      rdi, qword ptr [r13+0x40]
-       jbe      SHORT G_M16009_IG39
-       add      rdi, -2
-       mov      qword ptr [r13+0x38], rdi
-       jmp      SHORT G_M16009_IG39
-						;; size=27 bbWeight=0.50 PerfScore 6.62
+       test     rbx, rbx
+       je       SHORT G_M16009_IG38
+       cmp      byte  ptr [rbx+0x36], 0
+       je       G_M16009_IG72
+						;; size=15 bbWeight=0.50 PerfScore 2.62
 G_M16009_IG38:
-       mov      rdi, gword ptr [r13+0x18]
+       mov      rdi, qword ptr [r12+0x20]
+       test     rdi, rdi
+       je       G_M16009_IG69
+       cmp      rdi, qword ptr [r12+0x30]
+       jb       G_M16009_IG68
+       cmp      byte  ptr [r12+0x7E], 0
+       je       G_M16009_IG70
+       mov      rdi, gword ptr [r12+0x18]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x38]System.Text.EncoderFallbackBuffer:MovePrevious():ubyte:this
-						;; size=14 bbWeight=0.50 PerfScore 4.50
+       jmp      G_M16009_IG71
+						;; size=57 bbWeight=0.50 PerfScore 11.12
 G_M16009_IG39:
-       mov      rdx, qword ptr [r13+0x20]
-       cmp      rdx, qword ptr [r13+0x28]
-       sete     dl
-       movzx    rdx, dl
-       mov      rsi, gword ptr [r13+0x10]
-       mov      rdi, gword ptr [r13+0x08]
-       mov      rax, 0xD1FFAB1E      ; code for System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
-       cmp      dword ptr [rdi], edi
-       call     [rax]System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
-       jmp      G_M16009_IG34
-						;; size=41 bbWeight=0.50 PerfScore 9.25
+       cmp      byte  ptr [r12+0x7E], 0
+       jne      SHORT G_M16009_IG42
+       mov      rdi, qword ptr [r12+0x38]
+       cmp      rdi, qword ptr [r12+0x40]
+       ja       SHORT G_M16009_IG41
+						;; size=20 bbWeight=0.50 PerfScore 5.00
 G_M16009_IG40:
-       cmp      byte  ptr [r13+0x7E], 0
-       jne      SHORT G_M16009_IG41
-       mov      r15, qword ptr [r13+0x38]
-       cmp      r15, qword ptr [r13+0x40]
-       jbe      SHORT G_M16009_IG42
-       add      r15, -2
-       mov      qword ptr [r13+0x38], r15
-       jmp      SHORT G_M16009_IG42
-						;; size=27 bbWeight=0.50 PerfScore 6.62
+       mov      dword ptr [rbp-0x30], eax
+       jmp      SHORT G_M16009_IG43
+						;; size=5 bbWeight=0.25 PerfScore 0.75
 G_M16009_IG41:
-       mov      rdi, gword ptr [r13+0x18]
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x40]
-       call     [rax+0x38]System.Text.EncoderFallbackBuffer:MovePrevious():ubyte:this
-						;; size=14 bbWeight=0.50 PerfScore 4.50
+       add      rdi, -2
+       mov      qword ptr [r12+0x38], rdi
+       mov      dword ptr [rbp-0x30], eax
+       jmp      SHORT G_M16009_IG43
+						;; size=14 bbWeight=0.50 PerfScore 2.12
 G_M16009_IG42:
-       mov      rdx, qword ptr [r13+0x20]
-       cmp      rdx, qword ptr [r13+0x28]
-       sete     dl
-       movzx    rdx, dl
-       mov      rsi, gword ptr [r13+0x10]
-       mov      rdi, gword ptr [r13+0x08]
-       mov      rax, 0xD1FFAB1E      ; code for System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
-       cmp      dword ptr [rdi], edi
-       call     [rax]System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
-       jmp      G_M16009_IG34
-						;; size=41 bbWeight=0.50 PerfScore 9.25
+       mov      dword ptr [rbp-0x30], eax
+       mov      rdi, gword ptr [r12+0x18]
+       mov      rcx, qword ptr [rdi]
+       mov      rcx, qword ptr [rcx+0x40]
+       call     [rcx+0x38]System.Text.EncoderFallbackBuffer:MovePrevious():ubyte:this
+						;; size=18 bbWeight=0.50 PerfScore 5.00
 G_M16009_IG43:
-       cmp      byte  ptr [r13+0x7E], 0
-       jne      SHORT G_M16009_IG44
-       mov      rdi, qword ptr [r13+0x38]
-       cmp      rdi, qword ptr [r13+0x40]
-       jbe      SHORT G_M16009_IG45
-       add      rdi, -2
-       mov      qword ptr [r13+0x38], rdi
-       jmp      SHORT G_M16009_IG45
-						;; size=27 bbWeight=0.50 PerfScore 6.62
+       mov      rdx, qword ptr [r12+0x20]
+       cmp      rdx, qword ptr [r12+0x28]
+       sete     dl
+       movzx    rdx, dl
+       mov      rsi, gword ptr [r12+0x10]
+       mov      rdi, gword ptr [r12+0x08]
+       mov      rax, 0xD1FFAB1E      ; code for System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
+       cmp      dword ptr [rdi], edi
+       call     [rax]System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
+       jmp      G_M16009_IG36
+						;; size=45 bbWeight=0.50 PerfScore 9.25
 G_M16009_IG44:
-       mov      rdi, gword ptr [r13+0x18]
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x40]
-       call     [rax+0x38]System.Text.EncoderFallbackBuffer:MovePrevious():ubyte:this
-						;; size=14 bbWeight=0.50 PerfScore 4.50
-G_M16009_IG45:
-       mov      rdx, qword ptr [r13+0x20]
-       cmp      rdx, qword ptr [r13+0x28]
-       sete     dl
-       movzx    rdx, dl
-       mov      rsi, gword ptr [r13+0x10]
-       mov      rdi, gword ptr [r13+0x08]
-       mov      rax, 0xD1FFAB1E      ; code for System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
-       cmp      dword ptr [rdi], edi
-       call     [rax]System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
-       jmp      G_M16009_IG34
-						;; size=41 bbWeight=0.50 PerfScore 9.25
-G_M16009_IG46:
-       cmp      byte  ptr [r13+0x7E], 0
+       cmp      byte  ptr [r12+0x7E], 0
        jne      SHORT G_M16009_IG47
-       mov      rdi, qword ptr [r13+0x38]
-       cmp      rdi, qword ptr [r13+0x40]
-       jbe      SHORT G_M16009_IG48
-       add      rdi, -2
-       mov      qword ptr [r13+0x38], rdi
+       mov      r15, qword ptr [r12+0x38]
+       cmp      r15, qword ptr [r12+0x40]
+       ja       SHORT G_M16009_IG46
+						;; size=20 bbWeight=0.50 PerfScore 5.00
+G_M16009_IG45:
+       mov      dword ptr [rbp-0x30], eax
        jmp      SHORT G_M16009_IG48
-						;; size=27 bbWeight=0.50 PerfScore 6.62
+						;; size=5 bbWeight=0.25 PerfScore 0.75
+G_M16009_IG46:
+       add      r15, -2
+       mov      qword ptr [r12+0x38], r15
+       mov      dword ptr [rbp-0x30], eax
+       jmp      SHORT G_M16009_IG48
+						;; size=14 bbWeight=0.50 PerfScore 2.12
 G_M16009_IG47:
-       mov      rdi, gword ptr [r13+0x18]
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x40]
-       call     [rax+0x38]System.Text.EncoderFallbackBuffer:MovePrevious():ubyte:this
-						;; size=14 bbWeight=0.50 PerfScore 4.50
+       mov      dword ptr [rbp-0x30], eax
+       mov      rdi, gword ptr [r12+0x18]
+       mov      rcx, qword ptr [rdi]
+       mov      rcx, qword ptr [rcx+0x40]
+       call     [rcx+0x38]System.Text.EncoderFallbackBuffer:MovePrevious():ubyte:this
+						;; size=18 bbWeight=0.50 PerfScore 5.00
 G_M16009_IG48:
-       mov      rdx, qword ptr [r13+0x20]
-       cmp      rdx, qword ptr [r13+0x28]
+       mov      rdx, qword ptr [r12+0x20]
+       cmp      rdx, qword ptr [r12+0x28]
        sete     dl
        movzx    rdx, dl
-       mov      rsi, gword ptr [r13+0x10]
-       mov      rdi, gword ptr [r13+0x08]
+       mov      rsi, gword ptr [r12+0x10]
+       mov      rdi, gword ptr [r12+0x08]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
-       jmp      G_M16009_IG34
-						;; size=41 bbWeight=0.50 PerfScore 9.25
+       jmp      G_M16009_IG36
+						;; size=45 bbWeight=0.50 PerfScore 9.25
 G_M16009_IG49:
-       cmp      byte  ptr [r13+0x7E], 0
-       jne      SHORT G_M16009_IG50
-       mov      rdi, qword ptr [r13+0x38]
-       cmp      rdi, qword ptr [r13+0x40]
-       jbe      SHORT G_M16009_IG51
-       add      rdi, -2
-       mov      qword ptr [r13+0x38], rdi
-       jmp      SHORT G_M16009_IG51
-						;; size=27 bbWeight=0.50 PerfScore 6.62
+       cmp      byte  ptr [r12+0x7E], 0
+       jne      SHORT G_M16009_IG52
+       mov      rdi, qword ptr [r12+0x38]
+       cmp      rdi, qword ptr [r12+0x40]
+       ja       SHORT G_M16009_IG51
+						;; size=20 bbWeight=0.50 PerfScore 5.00
 G_M16009_IG50:
-       mov      rdi, gword ptr [r13+0x18]
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x40]
-       call     [rax+0x38]System.Text.EncoderFallbackBuffer:MovePrevious():ubyte:this
-						;; size=14 bbWeight=0.50 PerfScore 4.50
+       mov      dword ptr [rbp-0x30], esi
+       jmp      SHORT G_M16009_IG53
+						;; size=5 bbWeight=0.25 PerfScore 0.75
 G_M16009_IG51:
-       mov      rdx, qword ptr [r13+0x20]
-       cmp      rdx, qword ptr [r13+0x28]
-       sete     dl
-       movzx    rdx, dl
-       mov      rsi, gword ptr [r13+0x10]
-       mov      rdi, gword ptr [r13+0x08]
-       mov      rax, 0xD1FFAB1E      ; code for System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
-       cmp      dword ptr [rdi], edi
-       call     [rax]System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
-       jmp      G_M16009_IG34
-						;; size=41 bbWeight=0.50 PerfScore 9.25
-G_M16009_IG52:
-       cmp      byte  ptr [r13+0x7E], 0
-       jne      SHORT G_M16009_IG53
-       mov      rdi, qword ptr [r13+0x38]
-       cmp      rdi, qword ptr [r13+0x40]
-       jbe      SHORT G_M16009_IG54
        add      rdi, -2
-       mov      qword ptr [r13+0x38], rdi
-       jmp      SHORT G_M16009_IG54
-						;; size=27 bbWeight=0.50 PerfScore 6.62
+       mov      qword ptr [r12+0x38], rdi
+       mov      dword ptr [rbp-0x30], esi
+       jmp      SHORT G_M16009_IG53
+						;; size=14 bbWeight=0.50 PerfScore 2.12
+G_M16009_IG52:
+       mov      dword ptr [rbp-0x30], esi
+       mov      rdi, gword ptr [r12+0x18]
+       mov      rax, qword ptr [rdi]
+       mov      rax, qword ptr [rax+0x40]
+       call     [rax+0x38]System.Text.EncoderFallbackBuffer:MovePrevious():ubyte:this
+						;; size=18 bbWeight=0.50 PerfScore 5.00
 G_M16009_IG53:
-       mov      rdi, gword ptr [r13+0x18]
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x40]
-       call     [rax+0x38]System.Text.EncoderFallbackBuffer:MovePrevious():ubyte:this
-						;; size=14 bbWeight=0.50 PerfScore 4.50
+       mov      rdx, qword ptr [r12+0x20]
+       cmp      rdx, qword ptr [r12+0x28]
+       sete     dl
+       movzx    rdx, dl
+       mov      rsi, gword ptr [r12+0x10]
+       mov      rdi, gword ptr [r12+0x08]
+       mov      rax, 0xD1FFAB1E      ; code for System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
+       cmp      dword ptr [rdi], edi
+       call     [rax]System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
+       jmp      G_M16009_IG36
+						;; size=45 bbWeight=0.50 PerfScore 9.25
 G_M16009_IG54:
-       mov      rdx, qword ptr [r13+0x20]
-       cmp      rdx, qword ptr [r13+0x28]
-       sete     dl
-       movzx    rdx, dl
-       mov      rsi, gword ptr [r13+0x10]
-       mov      rdi, gword ptr [r13+0x08]
-       mov      rax, 0xD1FFAB1E      ; code for System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
-       cmp      dword ptr [rdi], edi
-       call     [rax]System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
-       jmp      G_M16009_IG34
-						;; size=41 bbWeight=0.50 PerfScore 9.25
+       cmp      byte  ptr [r12+0x7E], 0
+       jne      SHORT G_M16009_IG57
+       mov      rdi, qword ptr [r12+0x38]
+       cmp      rdi, qword ptr [r12+0x40]
+       ja       SHORT G_M16009_IG56
+						;; size=20 bbWeight=0.50 PerfScore 5.00
 G_M16009_IG55:
-       cmp      byte  ptr [r13+0x7E], 0
-       jne      SHORT G_M16009_IG56
-       mov      r15, qword ptr [r13+0x38]
-       cmp      r15, qword ptr [r13+0x40]
-       jbe      SHORT G_M16009_IG57
-       lea      rdi, [r15-0x02]
-       mov      qword ptr [r13+0x38], rdi
-       jmp      SHORT G_M16009_IG57
-						;; size=27 bbWeight=0.50 PerfScore 6.75
+       mov      dword ptr [rbp-0x30], esi
+       jmp      SHORT G_M16009_IG58
+						;; size=5 bbWeight=0.25 PerfScore 0.75
 G_M16009_IG56:
-       mov      rdi, gword ptr [r13+0x18]
+       add      rdi, -2
+       mov      qword ptr [r12+0x38], rdi
+       mov      dword ptr [rbp-0x30], esi
+       jmp      SHORT G_M16009_IG58
+						;; size=14 bbWeight=0.50 PerfScore 2.12
+G_M16009_IG57:
+       mov      dword ptr [rbp-0x30], esi
+       mov      rdi, gword ptr [r12+0x18]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x40]
        call     [rax+0x38]System.Text.EncoderFallbackBuffer:MovePrevious():ubyte:this
-						;; size=14 bbWeight=0.50 PerfScore 4.50
-G_M16009_IG57:
-       mov      rdx, qword ptr [r13+0x20]
-       cmp      rdx, qword ptr [r13+0x28]
+						;; size=18 bbWeight=0.50 PerfScore 5.00
+G_M16009_IG58:
+       mov      rdx, qword ptr [r12+0x20]
+       cmp      rdx, qword ptr [r12+0x28]
        sete     dl
        movzx    rdx, dl
-       mov      rsi, gword ptr [r13+0x10]
-       mov      rdi, gword ptr [r13+0x08]
+       mov      rsi, gword ptr [r12+0x10]
+       mov      rdi, gword ptr [r12+0x08]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
-       jmp      G_M16009_IG34
-						;; size=41 bbWeight=0.50 PerfScore 9.25
-G_M16009_IG58:
-       lea      rax, [rdi+0x01]
-       mov      qword ptr [r13+0x20], rax
-       mov      byte  ptr [rdi], 15
-						;; size=11 bbWeight=0.50 PerfScore 1.25
+       jmp      G_M16009_IG36
+						;; size=45 bbWeight=0.50 PerfScore 9.25
 G_M16009_IG59:
-       inc      dword ptr [r13+0x50]
-       mov      r12d, 11
-       jmp      SHORT G_M16009_IG62
-						;; size=12 bbWeight=0.50 PerfScore 2.62
-G_M16009_IG60:
-       mov      rdi, qword ptr [r13+0x38]
-       cmp      rdi, qword ptr [r13+0x40]
+       cmp      byte  ptr [r12+0x7E], 0
+       jne      SHORT G_M16009_IG60
+       mov      rdi, qword ptr [r12+0x38]
+       cmp      rdi, qword ptr [r12+0x40]
        jbe      SHORT G_M16009_IG61
        add      rdi, -2
-       mov      qword ptr [r13+0x38], rdi
-						;; size=18 bbWeight=0.50 PerfScore 3.62
+       mov      qword ptr [r12+0x38], rdi
+       jmp      SHORT G_M16009_IG61
+						;; size=31 bbWeight=0.50 PerfScore 6.62
+G_M16009_IG60:
+       mov      rdi, gword ptr [r12+0x18]
+       mov      rax, qword ptr [rdi]
+       mov      rax, qword ptr [rax+0x40]
+       call     [rax+0x38]System.Text.EncoderFallbackBuffer:MovePrevious():ubyte:this
+						;; size=15 bbWeight=0.50 PerfScore 4.50
 G_M16009_IG61:
-       mov      rdx, qword ptr [r13+0x20]
-       cmp      rdx, qword ptr [r13+0x28]
+       mov      rdx, qword ptr [r12+0x20]
+       cmp      rdx, qword ptr [r12+0x28]
        sete     dl
        movzx    rdx, dl
-       mov      rsi, gword ptr [r13+0x10]
-       mov      rdi, gword ptr [r13+0x08]
+       mov      rsi, gword ptr [r12+0x10]
+       mov      rdi, gword ptr [r12+0x08]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
-       mov      rdi, r13
+       jmp      G_M16009_IG36
+						;; size=45 bbWeight=0.50 PerfScore 9.25
+G_M16009_IG62:
+       cmp      byte  ptr [r12+0x7E], 0
+       jne      SHORT G_M16009_IG63
+       mov      rdi, qword ptr [r12+0x38]
+       cmp      rdi, qword ptr [r12+0x40]
+       jbe      SHORT G_M16009_IG64
+       add      rdi, -2
+       mov      qword ptr [r12+0x38], rdi
+       jmp      SHORT G_M16009_IG64
+						;; size=31 bbWeight=0.50 PerfScore 6.62
+G_M16009_IG63:
+       mov      rdi, gword ptr [r12+0x18]
+       mov      rax, qword ptr [rdi]
+       mov      rax, qword ptr [rax+0x40]
+       call     [rax+0x38]System.Text.EncoderFallbackBuffer:MovePrevious():ubyte:this
+						;; size=15 bbWeight=0.50 PerfScore 4.50
+G_M16009_IG64:
+       mov      rdx, qword ptr [r12+0x20]
+       cmp      rdx, qword ptr [r12+0x28]
+       sete     dl
+       movzx    rdx, dl
+       mov      rsi, gword ptr [r12+0x10]
+       mov      rdi, gword ptr [r12+0x08]
+       mov      rax, 0xD1FFAB1E      ; code for System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
+       cmp      dword ptr [rdi], edi
+       call     [rax]System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
+       jmp      G_M16009_IG36
+						;; size=45 bbWeight=0.50 PerfScore 9.25
+G_M16009_IG65:
+       cmp      byte  ptr [r12+0x7E], 0
+       jne      SHORT G_M16009_IG66
+       mov      r15, qword ptr [r12+0x38]
+       cmp      r15, qword ptr [r12+0x40]
+       jbe      SHORT G_M16009_IG67
+       lea      rdi, [r15-0x02]
+       mov      qword ptr [r12+0x38], rdi
+       jmp      SHORT G_M16009_IG67
+						;; size=31 bbWeight=0.50 PerfScore 6.75
+G_M16009_IG66:
+       mov      rdi, gword ptr [r12+0x18]
+       mov      rax, qword ptr [rdi]
+       mov      rax, qword ptr [rax+0x40]
+       call     [rax+0x38]System.Text.EncoderFallbackBuffer:MovePrevious():ubyte:this
+						;; size=15 bbWeight=0.50 PerfScore 4.50
+G_M16009_IG67:
+       mov      rdx, qword ptr [r12+0x20]
+       cmp      rdx, qword ptr [r12+0x28]
+       sete     dl
+       movzx    rdx, dl
+       mov      rsi, gword ptr [r12+0x10]
+       mov      rdi, gword ptr [r12+0x08]
+       mov      rax, 0xD1FFAB1E      ; code for System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
+       cmp      dword ptr [rdi], edi
+       call     [rax]System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
+       jmp      G_M16009_IG36
+						;; size=45 bbWeight=0.50 PerfScore 9.25
+G_M16009_IG68:
+       lea      rax, [rdi+0x01]
+       mov      qword ptr [r12+0x20], rax
+       mov      byte  ptr [rdi], 15
+						;; size=12 bbWeight=0.50 PerfScore 1.25
+G_M16009_IG69:
+       inc      dword ptr [r12+0x50]
+       mov      r15d, 11
+       jmp      SHORT G_M16009_IG72
+						;; size=13 bbWeight=0.50 PerfScore 2.62
+G_M16009_IG70:
+       mov      rdi, qword ptr [r12+0x38]
+       cmp      rdi, qword ptr [r12+0x40]
+       jbe      SHORT G_M16009_IG71
+       add      rdi, -2
+       mov      qword ptr [r12+0x38], rdi
+						;; size=21 bbWeight=0.50 PerfScore 3.62
+G_M16009_IG71:
+       mov      rdx, qword ptr [r12+0x20]
+       cmp      rdx, qword ptr [r12+0x28]
+       sete     dl
+       movzx    rdx, dl
+       mov      rsi, gword ptr [r12+0x10]
+       mov      rdi, gword ptr [r12+0x08]
+       mov      rax, 0xD1FFAB1E      ; code for System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
+       cmp      dword ptr [rdi], edi
+       call     [rax]System.Text.EncodingNLS:ThrowBytesOverflow(System.Text.EncoderNLS,ubyte):this
+       mov      rdi, r12
        mov      rax, 0xD1FFAB1E      ; code for System.Text.EncodingByteBuffer:GetNextChar():ushort:this
        call     [rax]System.Text.EncodingByteBuffer:GetNextChar():ushort:this
-						;; size=51 bbWeight=0.50 PerfScore 10.00
-G_M16009_IG62:
+						;; size=55 bbWeight=0.50 PerfScore 10.00
+G_M16009_IG72:
        test     r14, r14
-       je       SHORT G_M16009_IG67
+       je       SHORT G_M16009_IG77
 						;; size=5 bbWeight=1 PerfScore 1.25
-G_M16009_IG63:
+G_M16009_IG73:
        test     rbx, rbx
-       je       SHORT G_M16009_IG67
-       cmp      byte  ptr [r13+0x7D], 0
-       jne      SHORT G_M16009_IG64
+       je       SHORT G_M16009_IG77
+       cmp      byte  ptr [r12+0x7D], 0
+       jne      SHORT G_M16009_IG74
        mov      word  ptr [rbx+0x34], 0
-						;; size=18 bbWeight=0.50 PerfScore 3.12
-G_M16009_IG64:
-       mov      dword ptr [rbx+0x38], r12d
+						;; size=19 bbWeight=0.50 PerfScore 3.12
+G_M16009_IG74:
+       mov      dword ptr [rbx+0x38], r15d
        cmp      byte  ptr [rbx+0x36], 0
-       je       SHORT G_M16009_IG65
+       je       SHORT G_M16009_IG75
        cmp      word  ptr [rbx+0x34], 0
-       jne      SHORT G_M16009_IG65
+       jne      SHORT G_M16009_IG75
        mov      dword ptr [rbx+0x3C], 11
-       jmp      SHORT G_M16009_IG66
+       jmp      SHORT G_M16009_IG76
 						;; size=26 bbWeight=0.50 PerfScore 6.00
-G_M16009_IG65:
-       mov      r15d, dword ptr [rbp-0x30]
+G_M16009_IG75:
+       mov      r15d, dword ptr [rbp-0x34]
        mov      dword ptr [rbx+0x3C], r15d
 						;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M16009_IG66:
-       mov      rdi, r13
+G_M16009_IG76:
+       mov      rdi, r12
        mov      rax, 0xD1FFAB1E      ; code for System.Text.EncodingByteBuffer:get_CharsUsed():int:this
        call     [rax]System.Text.EncodingByteBuffer:get_CharsUsed():int:this
        mov      dword ptr [rbx+0x30], eax
 						;; size=18 bbWeight=0.50 PerfScore 2.25
-G_M16009_IG67:
-       mov      eax, dword ptr [r13+0x50]
-						;; size=4 bbWeight=1 PerfScore 2.00
-G_M16009_IG68:
-       add      rsp, 40
+G_M16009_IG77:
+       mov      eax, dword ptr [r12+0x50]
+						;; size=5 bbWeight=1 PerfScore 2.00
+G_M16009_IG78:
+       add      rsp, 56
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=1 PerfScore 4.25
 
-; Total bytes of code 1724, prolog size 19, PerfScore 834.88, instruction count 472, allocated bytes for code 1724 (MethodHash=3c3bc176) for method System.Text.ISO2022Encoding:GetBytesCP50225KR(ulong,int,ulong,int,System.Text.ISO2022Encoding+ISO2022Encoder):int:this (FullOpts)
+; Total bytes of code 1888, prolog size 19, PerfScore 865.12, instruction count 502, allocated bytes for code 1888 (MethodHash=3c3bc176) for method System.Text.ISO2022Encoding:GetBytesCP50225KR(ulong,int,ulong,int,System.Text.ISO2022Encoding+ISO2022Encoder):int: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/14586e7f36505142869fbbbf3044577c

@MihuBot
Copy link
Owner Author

MihuBot commented Dec 9, 2024

Top method improvements

-241 (-13.11 % of base) - Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadCompilationOptions(byref):Microsoft.Extensions.DependencyModel.CompilationOptions
 ; Assembly listing for method Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadCompilationOptions(byref):Microsoft.Extensions.DependencyModel.CompilationOptions (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 25 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] ( 28,101   )   byref  ->  rbx         single-def
 ;  V01 loc0         [V01,T25] (  3,  4   )     ref  ->  r15         class-hnd <System.Collections.Generic.IEnumerable`1[System.String]>
 ;  V02 loc1         [V02,T26] (  3,  4   )     ref  ->  r14         class-hnd <System.String>
 ;  V03 loc2         [V03,T27] (  3,  4   )     ref  ->  r13         class-hnd <System.String>
-;  V04 loc3         [V04    ] (  5,  6   )  struct ( 8) [rbp-0x30]  do-not-enreg[SB] must-init ld-addr-op <System.Nullable`1[ubyte]>
-;  V05 loc4         [V05    ] (  5,  6   )  struct ( 8) [rbp-0x38]  do-not-enreg[SB] must-init ld-addr-op <System.Nullable`1[ubyte]>
-;  V06 loc5         [V06    ] (  5,  6   )  struct ( 8) [rbp-0x40]  do-not-enreg[SB] must-init ld-addr-op <System.Nullable`1[ubyte]>
+;  V04 loc3         [V04    ] (  4,  5   )  struct ( 8) [rbp-0x30]  do-not-enreg[SB] must-init ld-addr-op <System.Nullable`1[ubyte]>
+;  V05 loc4         [V05    ] (  4,  5   )  struct ( 8) [rbp-0x38]  do-not-enreg[SB] must-init ld-addr-op <System.Nullable`1[ubyte]>
+;  V06 loc5         [V06    ] (  4,  5   )  struct ( 8) [rbp-0x40]  do-not-enreg[SB] must-init ld-addr-op <System.Nullable`1[ubyte]>
 ;  V07 loc6         [V07,T28] (  3,  4   )     ref  ->  r12         class-hnd <System.String>
-;  V08 loc7         [V08    ] (  5,  6   )  struct ( 8) [rbp-0x48]  do-not-enreg[SB] must-init ld-addr-op <System.Nullable`1[ubyte]>
-;  V09 loc8         [V09    ] (  5,  6   )  struct ( 8) [rbp-0x50]  do-not-enreg[SB] must-init ld-addr-op <System.Nullable`1[ubyte]>
-;  V10 loc9         [V10,T29] (  3,  4   )     ref  ->  [rbp-0xA8]  class-hnd <System.String>
-;  V11 loc10        [V11    ] (  5,  6   )  struct ( 8) [rbp-0x58]  do-not-enreg[SB] must-init ld-addr-op <System.Nullable`1[ubyte]>
-;  V12 loc11        [V12    ] (  5,  6   )  struct ( 8) [rbp-0x60]  do-not-enreg[SB] must-init ld-addr-op <System.Nullable`1[ubyte]>
+;  V08 loc7         [V08    ] (  4,  5   )  struct ( 8) [rbp-0x48]  do-not-enreg[SB] must-init ld-addr-op <System.Nullable`1[ubyte]>
+;  V09 loc8         [V09    ] (  4,  5   )  struct ( 8) [rbp-0x50]  do-not-enreg[SB] must-init ld-addr-op <System.Nullable`1[ubyte]>
+;  V10 loc9         [V10,T29] (  3,  4   )     ref  ->  [rbp-0x70]  class-hnd <System.String>
+;  V11 loc10        [V11    ] (  4,  5   )  struct ( 8) [rbp-0x58]  do-not-enreg[SB] must-init ld-addr-op <System.Nullable`1[ubyte]>
+;  V12 loc11        [V12    ] (  4,  5   )  struct ( 8) [rbp-0x60]  do-not-enreg[SB] must-init ld-addr-op <System.Nullable`1[ubyte]>
 ;  V13 loc12        [V13,T02] ( 27, 45   )     ref  ->  rax         class-hnd exact <System.String>
 ;* V14 loc13        [V14    ] (  0,  0   )     int  ->  zero-ref   
 ;  V15 loc14        [V15,T07] (  9, 18   )  ushort  ->  rdx        
 ;# V16 OutArgs      [V16    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V17 tmp1         [V17,T19] (  6,  6   )     ref  ->  r15        
-;  V18 tmp2         [V18,T03] ( 21, 42   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <Microsoft.Extensions.DependencyModel.CompilationOptions>
+;  V18 tmp2         [V18,T05] ( 14, 28   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <Microsoft.Extensions.DependencyModel.CompilationOptions>
 ;* V19 tmp3         [V19    ] (  0,  0   )     ref  ->  zero-ref    "spilling varStr"
 ;* V20 tmp4         [V20    ] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
 ;* V21 tmp5         [V21    ] (  0,  0   )     ref  ->  zero-ref    "spilling varStr"
 ;* V22 tmp6         [V22    ] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
 ;* V23 tmp7         [V23    ] (  0,  0   )     ref  ->  zero-ref    "spilling varStr"
 ;  V24 tmp8         [V24,T10] (  2,  8   )     int  ->  rdi         "spilling unroll qmark"
 ;* V25 tmp9         [V25    ] (  0,  0   )     ref  ->  zero-ref    "spilling varStr"
 ;  V26 tmp10        [V26,T11] (  2,  8   )     int  ->  rdi         "spilling unroll qmark"
 ;* V27 tmp11        [V27    ] (  0,  0   )     ref  ->  zero-ref    "spilling varStr"
 ;  V28 tmp12        [V28,T12] (  2,  8   )     int  ->  rdi         "spilling unroll qmark"
 ;* V29 tmp13        [V29    ] (  0,  0   )     ref  ->  zero-ref    "spilling varStr"
 ;  V30 tmp14        [V30,T13] (  2,  8   )     int  ->  rdi         "spilling unroll qmark"
 ;* V31 tmp15        [V31    ] (  0,  0   )     ref  ->  zero-ref    "spilling varStr"
 ;  V32 tmp16        [V32,T14] (  2,  8   )     int  ->  rdi         "spilling unroll qmark"
 ;* V33 tmp17        [V33    ] (  0,  0   )     ref  ->  zero-ref    "spilling varStr"
 ;  V34 tmp18        [V34,T15] (  2,  8   )     int  ->  rdi         "spilling unroll qmark"
 ;* V35 tmp19        [V35    ] (  0,  0   )     ref  ->  zero-ref    "spilling varStr"
 ;  V36 tmp20        [V36,T16] (  2,  8   )     int  ->  rdi         "spilling unroll qmark"
 ;* V37 tmp21        [V37    ] (  0,  0   )     ref  ->  zero-ref    "spilling varStr"
 ;  V38 tmp22        [V38,T17] (  2,  8   )     int  ->  rdi         "spilling unroll qmark"
 ;* V39 tmp23        [V39    ] (  0,  0   )     ref  ->  zero-ref    "spilling varStr"
 ;  V40 tmp24        [V40,T18] (  2,  8   )     int  ->  rdi         "spilling unroll qmark"
 ;* V41 tmp25        [V41    ] (  0,  0   )     ref  ->  zero-ref    "spilling varStr"
 ;* V42 tmp26        [V42    ] (  0,  0   )     int  ->  zero-ref    "spilling unroll qmark"
 ;  V43 tmp27        [V43,T20] (  3,  6   )   ubyte  ->  rax         "Inline stloc first use temp"
 ;* V44 tmp28        [V44    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;  V45 tmp29        [V45,T08] (  2, 18   )     int  ->  [rbp-0x64]  spill-single-def "Inline stloc first use temp"
 ;* V46 tmp30        [V46    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.BitStack>
 ;  V47 tmp31        [V47,T21] (  3,  6   )     int  ->  rcx         "Inline stloc first use temp"
 ;  V48 tmp32        [V48,T22] (  3,  6   )   ubyte  ->  rdi         "Inline stloc first use temp"
 ;* V49 tmp33        [V49    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V50 tmp34        [V50    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Text.Json.BitStack>
 ;  V51 tmp35        [V51,T01] (  4, 48   )     int  ->  rax         "Inline stloc first use temp"
-;  V52 tmp36        [V52,T04] (  3, 40   )   ubyte  ->  rcx         "Inline stloc first use temp"
+;  V52 tmp36        [V52,T03] (  3, 40   )   ubyte  ->  rcx         "Inline stloc first use temp"
 ;* V53 tmp37        [V53    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
 ;* V54 tmp38        [V54    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Nullable`1[ubyte]>
 ;* V55 tmp39        [V55    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Nullable`1[ubyte]>
 ;* V56 tmp40        [V56    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Nullable`1[ubyte]>
 ;* V57 tmp41        [V57    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Nullable`1[ubyte]>
 ;* V58 tmp42        [V58    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Nullable`1[ubyte]>
 ;* V59 tmp43        [V59    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Nullable`1[ubyte]>
 ;* V60 tmp44        [V60    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Nullable`1[ubyte]>
 ;  V61 tmp45        [V61,T30] (  3,  4   )   ubyte  ->  [rbp-0x30]  do-not-enreg[] single-def "field V04.hasValue (fldOffset=0x0)" P-DEP
 ;  V62 tmp46        [V62,T31] (  3,  4   )   ubyte  ->  [rbp-0x2F]  do-not-enreg[] single-def "field V04.value (fldOffset=0x1)" P-DEP
 ;  V63 tmp47        [V63,T32] (  3,  4   )   ubyte  ->  [rbp-0x38]  do-not-enreg[] single-def "field V05.hasValue (fldOffset=0x0)" P-DEP
 ;  V64 tmp48        [V64,T33] (  3,  4   )   ubyte  ->  [rbp-0x37]  do-not-enreg[] single-def "field V05.value (fldOffset=0x1)" P-DEP
 ;  V65 tmp49        [V65,T34] (  3,  4   )   ubyte  ->  [rbp-0x40]  do-not-enreg[] single-def "field V06.hasValue (fldOffset=0x0)" P-DEP
 ;  V66 tmp50        [V66,T35] (  3,  4   )   ubyte  ->  [rbp-0x3F]  do-not-enreg[] single-def "field V06.value (fldOffset=0x1)" P-DEP
 ;  V67 tmp51        [V67,T36] (  3,  4   )   ubyte  ->  [rbp-0x48]  do-not-enreg[] single-def "field V08.hasValue (fldOffset=0x0)" P-DEP
 ;  V68 tmp52        [V68,T37] (  3,  4   )   ubyte  ->  [rbp-0x47]  do-not-enreg[] single-def "field V08.value (fldOffset=0x1)" P-DEP
 ;  V69 tmp53        [V69,T38] (  3,  4   )   ubyte  ->  [rbp-0x50]  do-not-enreg[] single-def "field V09.hasValue (fldOffset=0x0)" P-DEP
 ;  V70 tmp54        [V70,T39] (  3,  4   )   ubyte  ->  [rbp-0x4F]  do-not-enreg[] single-def "field V09.value (fldOffset=0x1)" P-DEP
 ;  V71 tmp55        [V71,T40] (  3,  4   )   ubyte  ->  [rbp-0x58]  do-not-enreg[] single-def "field V11.hasValue (fldOffset=0x0)" P-DEP
 ;  V72 tmp56        [V72,T41] (  3,  4   )   ubyte  ->  [rbp-0x57]  do-not-enreg[] single-def "field V11.value (fldOffset=0x1)" P-DEP
 ;  V73 tmp57        [V73,T42] (  3,  4   )   ubyte  ->  [rbp-0x60]  do-not-enreg[] single-def "field V12.hasValue (fldOffset=0x0)" P-DEP
 ;  V74 tmp58        [V74,T43] (  3,  4   )   ubyte  ->  [rbp-0x5F]  do-not-enreg[] single-def "field V12.value (fldOffset=0x1)" P-DEP
 ;* V75 tmp59        [V75    ] (  0,  0   )     ref  ->  zero-ref    "field V46._array (fldOffset=0x0)" P-INDEP
 ;* V76 tmp60        [V76    ] (  0,  0   )    long  ->  zero-ref    "field V46._allocationFreeContainer (fldOffset=0x8)" P-INDEP
 ;  V77 tmp61        [V77,T23] (  3,  6   )     int  ->  rax         "field V46._currentDepth (fldOffset=0x10)" P-INDEP
 ;* V78 tmp62        [V78    ] (  0,  0   )     ref  ->  zero-ref    "field V50._array (fldOffset=0x0)" P-INDEP
 ;* V79 tmp63        [V79    ] (  0,  0   )    long  ->  zero-ref    "field V50._allocationFreeContainer (fldOffset=0x8)" P-INDEP
-;  V80 tmp64        [V80,T05] (  2, 32   )     int  ->  rax         "field V50._currentDepth (fldOffset=0x10)" P-INDEP
-;  V81 tmp65        [V81,T44] (  2,  2   )   ubyte  ->  [rbp-0x68]  spill-single-def "field V54.hasValue (fldOffset=0x0)" P-INDEP
-;  V82 tmp66        [V82,T45] (  2,  2   )   ubyte  ->  [rbp-0x6C]  spill-single-def "field V54.value (fldOffset=0x1)" P-INDEP
-;  V83 tmp67        [V83,T46] (  2,  2   )   ubyte  ->  [rbp-0x70]  spill-single-def "field V55.hasValue (fldOffset=0x0)" P-INDEP
-;  V84 tmp68        [V84,T47] (  2,  2   )   ubyte  ->  [rbp-0x74]  spill-single-def "field V55.value (fldOffset=0x1)" P-INDEP
-;  V85 tmp69        [V85,T48] (  2,  2   )   ubyte  ->  [rbp-0x78]  spill-single-def "field V56.hasValue (fldOffset=0x0)" P-INDEP
-;  V86 tmp70        [V86,T49] (  2,  2   )   ubyte  ->  [rbp-0x7C]  spill-single-def "field V56.value (fldOffset=0x1)" P-INDEP
-;  V87 tmp71        [V87,T50] (  2,  2   )   ubyte  ->  [rbp-0x80]  spill-single-def "field V57.hasValue (fldOffset=0x0)" P-INDEP
-;  V88 tmp72        [V88,T51] (  2,  2   )   ubyte  ->  [rbp-0x84]  spill-single-def "field V57.value (fldOffset=0x1)" P-INDEP
-;  V89 tmp73        [V89,T52] (  2,  2   )   ubyte  ->  [rbp-0x88]  spill-single-def "field V58.hasValue (fldOffset=0x0)" P-INDEP
-;  V90 tmp74        [V90,T53] (  2,  2   )   ubyte  ->  [rbp-0x8C]  spill-single-def "field V58.value (fldOffset=0x1)" P-INDEP
-;  V91 tmp75        [V91,T54] (  2,  2   )   ubyte  ->  [rbp-0x90]  spill-single-def "field V59.hasValue (fldOffset=0x0)" P-INDEP
-;  V92 tmp76        [V92,T55] (  2,  2   )   ubyte  ->  [rbp-0x94]  spill-single-def "field V59.value (fldOffset=0x1)" P-INDEP
-;  V93 tmp77        [V93,T56] (  2,  2   )   ubyte  ->  [rbp-0x98]  spill-single-def "field V60.hasValue (fldOffset=0x0)" P-INDEP
-;  V94 tmp78        [V94,T57] (  2,  2   )   ubyte  ->  [rbp-0x9C]  spill-single-def "field V60.value (fldOffset=0x1)" P-INDEP
+;  V80 tmp64        [V80,T04] (  2, 32   )     int  ->  rax         "field V50._currentDepth (fldOffset=0x10)" P-INDEP
+;* V81 tmp65        [V81    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V54.hasValue (fldOffset=0x0)" P-INDEP
+;* V82 tmp66        [V82    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V54.value (fldOffset=0x1)" P-INDEP
+;* V83 tmp67        [V83    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V55.hasValue (fldOffset=0x0)" P-INDEP
+;* V84 tmp68        [V84    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V55.value (fldOffset=0x1)" P-INDEP
+;* V85 tmp69        [V85    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V56.hasValue (fldOffset=0x0)" P-INDEP
+;* V86 tmp70        [V86    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V56.value (fldOffset=0x1)" P-INDEP
+;* V87 tmp71        [V87    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V57.hasValue (fldOffset=0x0)" P-INDEP
+;* V88 tmp72        [V88    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V57.value (fldOffset=0x1)" P-INDEP
+;* V89 tmp73        [V89    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V58.hasValue (fldOffset=0x0)" P-INDEP
+;* V90 tmp74        [V90    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V58.value (fldOffset=0x1)" P-INDEP
+;* V91 tmp75        [V91    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V59.hasValue (fldOffset=0x0)" P-INDEP
+;* V92 tmp76        [V92    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V59.value (fldOffset=0x1)" P-INDEP
+;* V93 tmp77        [V93    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V60.hasValue (fldOffset=0x0)" P-INDEP
+;* V94 tmp78        [V94    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V60.value (fldOffset=0x1)" P-INDEP
 ;  V95 cse0         [V95,T24] (  3,  6   )     int  ->  rdi         "CSE #08: moderate"
 ;  V96 cse1         [V96,T06] ( 17, 22   )     int  ->  rcx         "CSE #01: aggressive"
 ;  V97 rat0         [V97,T09] (  3, 11.67)     int  ->  rdi         "ReplaceWithLclVar is creating a new local variable"
-;  V98 rat1         [V98,T58] (  3, 12   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
-;  V99 rat2         [V99,T59] (  3, 12   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
-;  V100 rat3        [V100,T60] (  3, 12   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
-;  V101 rat4        [V101,T61] (  3, 12   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
-;  V102 rat5        [V102,T62] (  3, 12   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
-;  V103 rat6        [V103,T63] (  3, 12   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
-;  V104 rat7        [V104,T64] (  3, 12   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
-;  V105 rat8        [V105,T65] (  3, 12   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
-;  V106 rat9        [V106,T66] (  3, 12   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V98 rat1         [V98,T44] (  3, 12   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V99 rat2         [V99,T45] (  3, 12   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V100 rat3        [V100,T46] (  3, 12   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V101 rat4        [V101,T47] (  3, 12   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V102 rat5        [V102,T48] (  3, 12   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V103 rat6        [V103,T49] (  3, 12   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V104 rat7        [V104,T50] (  3, 12   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V105 rat8        [V105,T51] (  3, 12   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V106 rat9        [V106,T52] (  3, 12   )  simd16  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
 ;
-; Lcl frame size = 136
+; Lcl frame size = 72
 
 G_M47278_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 136
-       lea      rbp, [rsp+0xB0]
+       sub      rsp, 72
+       lea      rbp, [rsp+0x70]
        vxorps   xmm8, xmm8, xmm8
        vmovdqu  ymmword ptr [rbp-0x60], ymm8
        vmovdqa  xmmword ptr [rbp-0x40], xmm8
        xor      eax, eax
        mov      qword ptr [rbp-0x30], rax
        mov      rbx, rdi
-						;; size=49 bbWeight=1 PerfScore 12.58
+						;; size=43 bbWeight=1 PerfScore 12.58
 G_M47278_IG02:
        xor      r15, r15
        xor      r14, r14
        xor      r13, r13
        mov      byte  ptr [rbp-0x30], 0
        mov      byte  ptr [rbp-0x2F], 0
        mov      byte  ptr [rbp-0x38], 0
        mov      byte  ptr [rbp-0x37], 0
        mov      byte  ptr [rbp-0x40], 0
        mov      byte  ptr [rbp-0x3F], 0
        xor      r12, r12
        mov      byte  ptr [rbp-0x48], 0
        mov      byte  ptr [rbp-0x47], 0
        mov      byte  ptr [rbp-0x50], 0
        mov      byte  ptr [rbp-0x4F], 0
        xor      rax, rax
-       mov      gword ptr [rbp-0xA8], rax
+       mov      gword ptr [rbp-0x70], rax
        mov      byte  ptr [rbp-0x58], 0
        mov      byte  ptr [rbp-0x57], 0
        mov      byte  ptr [rbp-0x60], 0
        mov      byte  ptr [rbp-0x5F], 0
        mov      rdi, rbx
        mov      rcx, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:Read():ubyte:this
        call     [rcx]System.Text.Json.Utf8JsonReader:Read():ubyte:this
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:CheckStartObject(byref)
        call     [rax]Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:CheckStartObject(byref)
        jmp      G_M47278_IG17
-						;; size=112 bbWeight=1 PerfScore 25.25
+						;; size=109 bbWeight=1 PerfScore 25.25
 G_M47278_IG03:
        cmp      ecx, 16
        jne      SHORT G_M47278_IG08
 						;; size=5 bbWeight=1 PerfScore 1.25
 G_M47278_IG04:
        vmovups  ymm0, ymmword ptr [rax+0x0C]
        vpxor    ymm0, ymm0, ymmword ptr [reloc @RWD00]
        vptest   ymm0, ymm0
        sete     dil
        movzx    rdi, dil
        test     edi, edi
        je       SHORT G_M47278_IG08
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadAsNullableBoolean(byref):System.Nullable`1[ubyte]
        call     [rax]Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadAsNullableBoolean(byref):System.Nullable`1[ubyte]
        mov      word  ptr [rbp-0x38], ax
        jmp      G_M47278_IG17
 						;; size=54 bbWeight=2 PerfScore 42.00
 G_M47278_IG05:
        cmp      byte  ptr [rbx+0x28], 5
        jne      G_M47278_IG18
 						;; size=10 bbWeight=4 PerfScore 16.00
 G_M47278_IG06:
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:GetString():System.String:this
        call     [rax]System.Text.Json.Utf8JsonReader:GetString():System.String:this
        test     rax, rax
        je       SHORT G_M47278_IG08
        mov      ecx, dword ptr [rax+0x08]
        lea      edi, [rcx-0x06]
        cmp      edi, 10
        ja       SHORT G_M47278_IG08
 						;; size=31 bbWeight=2 PerfScore 17.00
 G_M47278_IG07:
        mov      edi, edi
        lea      rdx, [reloc @RWD32]
        mov      edx, dword ptr [rdx+4*rdi]
        lea      rsi, G_M47278_IG02
        add      rdx, rsi
        jmp      rdx
 						;; size=24 bbWeight=1.83 PerfScore 11.00
 G_M47278_IG08:
        cmp      byte  ptr [rbx+0x24], 0
-       je       G_M47278_IG52
+       je       G_M47278_IG51
        cmp      byte  ptr [rbx+0x28], 5
        jne      SHORT G_M47278_IG09
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:Read():ubyte:this
        call     [rax]System.Text.Json.Utf8JsonReader:Read():ubyte:this
 						;; size=31 bbWeight=2 PerfScore 23.00
 G_M47278_IG09:
        movzx    rdi, byte  ptr [rbx+0x28]
        mov      eax, edi
        cmp      eax, 1
        je       SHORT G_M47278_IG10
        cmp      eax, 3
        jne      SHORT G_M47278_IG17
 						;; size=17 bbWeight=2 PerfScore 9.50
 G_M47278_IG10:
        mov      eax, dword ptr [rbx+0x58]
        mov      ecx, eax
        cmp      edi, 1
        je       SHORT G_M47278_IG11
        cmp      edi, 3
        jne      SHORT G_M47278_IG12
 						;; size=15 bbWeight=2 PerfScore 9.50
 G_M47278_IG11:
        lea      ecx, [rax-0x01]
 						;; size=3 bbWeight=2 PerfScore 1.00
 G_M47278_IG12:
        mov      dword ptr [rbp-0x64], ecx
 						;; size=3 bbWeight=2 PerfScore 2.00
 G_M47278_IG13:
        mov      rdi, rbx
        mov      rcx, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:Read():ubyte:this
        call     [rcx]System.Text.Json.Utf8JsonReader:Read():ubyte:this
        mov      eax, dword ptr [rbx+0x58]
        movzx    rcx, byte  ptr [rbx+0x28]
        cmp      ecx, 1
        je       SHORT G_M47278_IG15
 						;; size=27 bbWeight=16 PerfScore 140.00
 G_M47278_IG14:
        cmp      ecx, 3
        jne      SHORT G_M47278_IG16
 						;; size=5 bbWeight=8 PerfScore 10.00
 G_M47278_IG15:
        dec      eax
 						;; size=2 bbWeight=8 PerfScore 2.00
 G_M47278_IG16:
        mov      ecx, dword ptr [rbp-0x64]
        cmp      ecx, eax
        jl       SHORT G_M47278_IG13
 						;; size=7 bbWeight=16 PerfScore 36.00
 G_M47278_IG17:
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.Utf8JsonReader:Read():ubyte:this
        call     [rax]System.Text.Json.Utf8JsonReader:Read():ubyte:this
        test     eax, eax
        jne      G_M47278_IG05
 						;; size=23 bbWeight=8 PerfScore 38.00
 G_M47278_IG18:
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:CheckEndObject(byref)
        call     [rax]Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:CheckEndObject(byref)
        mov      rdi, 0xD1FFAB1E      ; const ptr
        test     r15, r15
        cmove    r15, gword ptr [rdi]
        mov      rdi, 0xD1FFAB1E      ; Microsoft.Extensions.DependencyModel.CompilationOptions
        call     CORINFO_HELP_NEWSFAST
        mov      rbx, rax
-       movzx    rax, byte  ptr [rbp-0x30]
-       mov      byte  ptr [rbp-0x68], al
-       movzx    rcx, byte  ptr [rbp-0x2F]
-       mov      byte  ptr [rbp-0x6C], cl
-       movzx    rdx, byte  ptr [rbp-0x38]
-       mov      byte  ptr [rbp-0x70], dl
-       movzx    r8, byte  ptr [rbp-0x37]
-       mov      byte  ptr [rbp-0x74], r8b
-       movzx    r9, byte  ptr [rbp-0x40]
-       mov      byte  ptr [rbp-0x78], r9b
-       movzx    r10, byte  ptr [rbp-0x3F]
-       mov      byte  ptr [rbp-0x7C], r10b
-       movzx    r11, byte  ptr [rbp-0x48]
-       mov      byte  ptr [rbp-0x80], r11b
-       movzx    rdi, byte  ptr [rbp-0x47]
-       mov      byte  ptr [rbp-0x84], dil
-       movzx    rsi, byte  ptr [rbp-0x50]
-       mov      byte  ptr [rbp-0x88], sil
-       movzx    rax, byte  ptr [rbp-0x4F]
-       mov      byte  ptr [rbp-0x8C], al
-       movzx    rax, byte  ptr [rbp-0x58]
-       mov      byte  ptr [rbp-0x90], al
-       movzx    rax, byte  ptr [rbp-0x57]
-       mov      byte  ptr [rbp-0x94], al
-       movzx    rax, byte  ptr [rbp-0x60]
-       mov      byte  ptr [rbp-0x98], al
-       movzx    rax, byte  ptr [rbp-0x5F]
-       mov      byte  ptr [rbp-0x9C], al
        test     r15, r15
-       je       G_M47278_IG53
+       je       G_M47278_IG52
        mov      rsi, r15
        mov      rdi, 0xD1FFAB1E      ; System.Linq.Enumerable:ToArray[System.String](System.Collections.Generic.IEnumerable`1[System.String]):System.String[]
-       mov      r15, 0xD1FFAB1E      ; code for System.Linq.Enumerable:ToArray[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon]):System.__Canon[]
-       call     [r15]System.Linq.Enumerable:ToArray[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon]):System.__Canon[]
+       mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable:ToArray[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon]):System.__Canon[]
+       call     [rax]System.Linq.Enumerable:ToArray[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon]):System.__Canon[]
        lea      rdi, bword ptr [rbx+0x08]
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
        lea      rdi, bword ptr [rbx+0x10]
        mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
        lea      rdi, bword ptr [rbx+0x18]
-						;; size=244 bbWeight=1 PerfScore 45.50
-G_M47278_IG19:
        mov      rsi, r13
        call     CORINFO_HELP_ASSIGN_REF
-       movzx    r15, byte  ptr [rbp-0x68]
-       mov      byte  ptr [rbx+0x30], r15b
-       movzx    r15, byte  ptr [rbp-0x6C]
-       mov      byte  ptr [rbx+0x31], r15b
-       movzx    r15, byte  ptr [rbp-0x70]
-       mov      byte  ptr [rbx+0x32], r15b
-       movzx    r15, byte  ptr [rbp-0x74]
-       mov      byte  ptr [rbx+0x33], r15b
-       movzx    r15, byte  ptr [rbp-0x78]
-       mov      byte  ptr [rbx+0x34], r15b
-       movzx    r15, byte  ptr [rbp-0x7C]
-       mov      byte  ptr [rbx+0x35], r15b
+       movzx    rdi, word  ptr [rbp-0x30]
+       mov      word  ptr [rbx+0x30], di
+       movzx    rdi, word  ptr [rbp-0x38]
+       mov      word  ptr [rbx+0x32], di
+       movzx    rdi, word  ptr [rbp-0x40]
+       mov      word  ptr [rbx+0x34], di
        lea      rdi, bword ptr [rbx+0x20]
        mov      rsi, r12
        call     CORINFO_HELP_ASSIGN_REF
-       movzx    r15, byte  ptr [rbp-0x80]
-       mov      byte  ptr [rbx+0x36], r15b
-       movzx    r15, byte  ptr [rbp-0x84]
-       mov      byte  ptr [rbx+0x37], r15b
-       movzx    r15, byte  ptr [rbp-0x88]
-       mov      byte  ptr [rbx+0x38], r15b
-       movzx    r15, byte  ptr [rbp-0x8C]
-       mov      byte  ptr [rbx+0x39], r15b
+       movzx    rdi, word  ptr [rbp-0x48]
+       mov      word  ptr [rbx+0x36], di
+       movzx    rdi, word  ptr [rbp-0x50]
+       mov      word  ptr [rbx+0x38], di
        lea      rdi, bword ptr [rbx+0x28]
-       mov      rsi, gword ptr [rbp-0xA8]
+       mov      rsi, gword ptr [rbp-0x70]
        call     CORINFO_HELP_ASSIGN_REF
-       movzx    r15, byte  ptr [rbp-0x90]
-       mov      byte  ptr [rbx+0x3A], r15b
-       movzx    r15, byte  ptr [rbp-0x94]
-       mov      byte  ptr [rbx+0x3B], r15b
-       movzx    r15, byte  ptr [rbp-0x98]
-       mov      byte  ptr [rbx+0x3C], r15b
-       movzx    r15, byte  ptr [rbp-0x9C]
-       mov      byte  ptr [rbx+0x3D], r15b
+       movzx    rax, word  ptr [rbp-0x58]
+       mov      word  ptr [rbx+0x3A], ax
+       movzx    rax, word  ptr [rbp-0x60]
+       mov      word  ptr [rbx+0x3C], ax
        mov      rax, rbx
-						;; size=186 bbWeight=1 PerfScore 33.75
-G_M47278_IG20:
+						;; size=204 bbWeight=1 PerfScore 37.25
+G_M47278_IG19:
        vzeroupper 
-       add      rsp, 136
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=21 bbWeight=1 PerfScore 5.25
-G_M47278_IG21:
+						;; size=18 bbWeight=1 PerfScore 5.25
+G_M47278_IG20:
        cmp      ecx, 15
        jne      G_M47278_IG08
 						;; size=9 bbWeight=1 PerfScore 1.25
-G_M47278_IG22:
+G_M47278_IG21:
        vmovups  xmm0, xmmword ptr [rax+0x0C]
        vmovups  xmm1, xmmword ptr [rax+0x1A]
        vpxor    xmm1, xmm1, xmmword ptr [reloc @RWD80]
        vpternlogq xmm0, xmm1, xmmword ptr [reloc @RWD96], -34
        vptest   xmm0, xmm0
        sete     dil
        movzx    rdi, dil
        test     edi, edi
        je       G_M47278_IG08
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadAsString(byref):System.String
        call     [rax]Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadAsString(byref):System.String
        mov      r14, rax
        jmp      G_M47278_IG17
 						;; size=73 bbWeight=2 PerfScore 46.50
-G_M47278_IG23:
+G_M47278_IG22:
        cmp      ecx, 14
        jne      G_M47278_IG08
 						;; size=9 bbWeight=1 PerfScore 1.25
-G_M47278_IG24:
+G_M47278_IG23:
        vmovups  xmm0, xmmword ptr [rax+0x0C]
        vmovups  xmm1, xmmword ptr [rax+0x18]
        vpxor    xmm1, xmm1, xmmword ptr [reloc @RWD112]
        vpternlogq xmm0, xmm1, xmmword ptr [reloc @RWD128], -34
        vptest   xmm0, xmm0
        sete     dil
        movzx    rdi, dil
        test     edi, edi
        je       G_M47278_IG08
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadAsNullableBoolean(byref):System.Nullable`1[ubyte]
        call     [rax]Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadAsNullableBoolean(byref):System.Nullable`1[ubyte]
        mov      word  ptr [rbp-0x58], ax
        jmp      G_M47278_IG17
 						;; size=74 bbWeight=2 PerfScore 48.00
-G_M47278_IG25:
+G_M47278_IG24:
        cmp      ecx, 11
        jne      G_M47278_IG08
 						;; size=9 bbWeight=1 PerfScore 1.25
-G_M47278_IG26:
+G_M47278_IG25:
        vmovups  xmm0, xmmword ptr [rax+0x0C]
        vmovups  xmm1, xmmword ptr [rax+0x12]
        vpxor    xmm1, xmm1, xmmword ptr [reloc @RWD144]
        vpternlogq xmm0, xmm1, xmmword ptr [reloc @RWD160], -34
        vptest   xmm0, xmm0
        sete     dil
        movzx    rdi, dil
        test     edi, edi
        je       G_M47278_IG08
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadAsNullableBoolean(byref):System.Nullable`1[ubyte]
        call     [rax]Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadAsNullableBoolean(byref):System.Nullable`1[ubyte]
        mov      word  ptr [rbp-0x30], ax
        jmp      G_M47278_IG17
 						;; size=74 bbWeight=2 PerfScore 48.00
-G_M47278_IG27:
+G_M47278_IG26:
        cmp      ecx, 10
        jne      G_M47278_IG08
 						;; size=9 bbWeight=1 PerfScore 1.25
-G_M47278_IG28:
+G_M47278_IG27:
        vmovups  xmm0, xmmword ptr [rax+0x0C]
        vmovups  xmm1, xmmword ptr [rax+0x10]
        vpxor    xmm1, xmm1, xmmword ptr [reloc @RWD176]
        vpternlogq xmm0, xmm1, xmmword ptr [reloc @RWD192], -34
        vptest   xmm0, xmm0
        sete     dil
        movzx    rdi, dil
        test     edi, edi
        je       G_M47278_IG08
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadAsNullableBoolean(byref):System.Nullable`1[ubyte]
        call     [rax]Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadAsNullableBoolean(byref):System.Nullable`1[ubyte]
        mov      word  ptr [rbp-0x50], ax
        jmp      G_M47278_IG17
 						;; size=74 bbWeight=2 PerfScore 48.00
-G_M47278_IG29:
+G_M47278_IG28:
        cmp      ecx, 2
-       jbe      G_M47278_IG54
+       jbe      G_M47278_IG53
        movzx    rdx, word  ptr [rax+0x10]
        cmp      edx, 98
-       jne      SHORT G_M47278_IG32
+       jne      SHORT G_M47278_IG31
 						;; size=18 bbWeight=2 PerfScore 9.00
-G_M47278_IG30:
+G_M47278_IG29:
        cmp      ecx, 9
        jne      G_M47278_IG08
 						;; size=9 bbWeight=1 PerfScore 1.25
-G_M47278_IG31:
+G_M47278_IG30:
        vmovups  xmm0, xmmword ptr [rax+0x0C]
        vmovups  xmm1, xmmword ptr [rax+0x0E]
        vpxor    xmm1, xmm1, xmmword ptr [reloc @RWD208]
        vpternlogq xmm0, xmm1, xmmword ptr [reloc @RWD224], -34
        vptest   xmm0, xmm0
        sete     dil
        movzx    rdi, dil
        test     edi, edi
        je       G_M47278_IG08
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadAsString(byref):System.String
        call     [rax]Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadAsString(byref):System.String
-       mov      gword ptr [rbp-0xA8], rax
+       mov      gword ptr [rbp-0x70], rax
        jmp      G_M47278_IG17
-						;; size=77 bbWeight=2 PerfScore 48.00
-G_M47278_IG32:
+						;; size=74 bbWeight=2 PerfScore 48.00
+G_M47278_IG31:
        cmp      edx, 108
        jne      G_M47278_IG08
 						;; size=9 bbWeight=2 PerfScore 2.50
-G_M47278_IG33:
+G_M47278_IG32:
        cmp      ecx, 9
        jne      G_M47278_IG08
 						;; size=9 bbWeight=1 PerfScore 1.25
-G_M47278_IG34:
+G_M47278_IG33:
        vmovups  xmm0, xmmword ptr [rax+0x0C]
        vmovups  xmm1, xmmword ptr [rax+0x0E]
        vpxor    xmm1, xmm1, xmmword ptr [reloc @RWD240]
        vpternlogq xmm0, xmm1, xmmword ptr [reloc @RWD256], -34
        vptest   xmm0, xmm0
        sete     dil
        movzx    rdi, dil
        test     edi, edi
        je       G_M47278_IG08
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadAsNullableBoolean(byref):System.Nullable`1[ubyte]
        call     [rax]Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadAsNullableBoolean(byref):System.Nullable`1[ubyte]
        mov      word  ptr [rbp-0x48], ax
        jmp      G_M47278_IG17
 						;; size=74 bbWeight=2 PerfScore 48.00
-G_M47278_IG35:
+G_M47278_IG34:
        test     ecx, ecx
-       je       G_M47278_IG54
+       je       G_M47278_IG53
        movzx    rdx, word  ptr [rax+0x0C]
        cmp      edx, 111
-       jne      SHORT G_M47278_IG38
+       jne      SHORT G_M47278_IG37
 						;; size=17 bbWeight=2 PerfScore 9.00
-G_M47278_IG36:
+G_M47278_IG35:
        cmp      ecx, 8
        jne      G_M47278_IG08
 						;; size=9 bbWeight=1 PerfScore 1.25
-G_M47278_IG37:
+G_M47278_IG36:
        vmovups  xmm0, xmmword ptr [rax+0x0C]
        vpxor    xmm0, xmm0, xmmword ptr [reloc @RWD272]
        vptest   xmm0, xmm0
        sete     dil
        movzx    rdi, dil
        test     edi, edi
        je       G_M47278_IG08
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadAsNullableBoolean(byref):System.Nullable`1[ubyte]
        call     [rax]Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadAsNullableBoolean(byref):System.Nullable`1[ubyte]
        mov      word  ptr [rbp-0x40], ax
        jmp      G_M47278_IG17
 						;; size=58 bbWeight=2 PerfScore 36.00
-G_M47278_IG38:
+G_M47278_IG37:
        cmp      edx, 112
        jne      G_M47278_IG08
 						;; size=9 bbWeight=2 PerfScore 2.50
-G_M47278_IG39:
+G_M47278_IG38:
        cmp      ecx, 8
        jne      G_M47278_IG08
 						;; size=9 bbWeight=1 PerfScore 1.25
-G_M47278_IG40:
+G_M47278_IG39:
        vmovups  xmm0, xmmword ptr [rax+0x0C]
        vpxor    xmm0, xmm0, xmmword ptr [reloc @RWD288]
        vptest   xmm0, xmm0
        sete     dil
        movzx    rdi, dil
        test     edi, edi
        je       G_M47278_IG08
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadAsString(byref):System.String
        call     [rax]Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadAsString(byref):System.String
        mov      r13, rax
        jmp      G_M47278_IG17
 						;; size=57 bbWeight=2 PerfScore 34.50
-G_M47278_IG41:
+G_M47278_IG40:
        test     ecx, ecx
-       je       G_M47278_IG54
+       je       G_M47278_IG53
        movzx    rdx, word  ptr [rax+0x0C]
        cmp      edx, 100
-       jne      SHORT G_M47278_IG45
+       jne      SHORT G_M47278_IG44
 						;; size=17 bbWeight=2 PerfScore 9.00
-G_M47278_IG42:
+G_M47278_IG41:
        cmp      ecx, 7
        jne      G_M47278_IG08
 						;; size=9 bbWeight=1 PerfScore 1.25
-G_M47278_IG43:
+G_M47278_IG42:
        mov      rdi, 0xD1FFAB1E
        xor      rdi, qword ptr [rax+0x0C]
        mov      rcx, 0xD1FFAB1E
        xor      rcx, qword ptr [rax+0x12]
        or       rdi, rcx
        jne      G_M47278_IG08
 						;; size=37 bbWeight=0.50 PerfScore 3.88
-G_M47278_IG44:
+G_M47278_IG43:
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadStringArray(byref):System.String[]
        call     [rax]Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadStringArray(byref):System.String[]
        mov      r15, rax
        jmp      G_M47278_IG17
 						;; size=23 bbWeight=2 PerfScore 11.50
-G_M47278_IG45:
+G_M47278_IG44:
        cmp      edx, 107
        jne      G_M47278_IG08
 						;; size=9 bbWeight=2 PerfScore 2.50
-G_M47278_IG46:
+G_M47278_IG45:
        cmp      ecx, 7
        jne      G_M47278_IG08
 						;; size=9 bbWeight=1 PerfScore 1.25
-G_M47278_IG47:
+G_M47278_IG46:
        mov      rdi, 0xD1FFAB1E
        xor      rdi, qword ptr [rax+0x0C]
        mov      rcx, 0xD1FFAB1E
        xor      rcx, qword ptr [rax+0x12]
        or       rdi, rcx
        jne      G_M47278_IG08
 						;; size=37 bbWeight=0.50 PerfScore 3.88
-G_M47278_IG48:
+G_M47278_IG47:
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadAsString(byref):System.String
        call     [rax]Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadAsString(byref):System.String
        mov      r12, rax
        jmp      G_M47278_IG17
 						;; size=23 bbWeight=2 PerfScore 11.50
-G_M47278_IG49:
+G_M47278_IG48:
        cmp      ecx, 6
        jne      G_M47278_IG08
 						;; size=9 bbWeight=1 PerfScore 1.25
-G_M47278_IG50:
+G_M47278_IG49:
        mov      rdi, 0xD1FFAB1E
        xor      rdi, qword ptr [rax+0x0C]
        mov      eax, dword ptr [rax+0x14]
        xor      eax, 0xD1FFAB1E
        or       rdi, rax
        jne      G_M47278_IG08
 						;; size=31 bbWeight=0.50 PerfScore 3.38
-G_M47278_IG51:
+G_M47278_IG50:
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadAsNullableBoolean(byref):System.Nullable`1[ubyte]
        call     [rax]Microsoft.Extensions.DependencyModel.Utf8JsonReaderExtensions:ReadAsNullableBoolean(byref):System.Nullable`1[ubyte]
        mov      word  ptr [rbp-0x60], ax
        jmp      G_M47278_IG17
 						;; size=24 bbWeight=2 PerfScore 13.00
-G_M47278_IG52:
+G_M47278_IG51:
        mov      rax, 0xD1FFAB1E      ; code for System.Text.Json.ThrowHelper:ThrowInvalidOperationException_CannotSkipOnPartial()
        call     [rax]System.Text.Json.ThrowHelper:ThrowInvalidOperationException_CannotSkipOnPartial()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
-G_M47278_IG53:
+G_M47278_IG52:
        mov      edi, 453
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_STRCNS
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:Throw(System.String)
        call     [rax]System.ThrowHelper:Throw(System.String)
        int3     
 						;; size=36 bbWeight=0 PerfScore 0.00
-G_M47278_IG54:
+G_M47278_IG53:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 RWD00  	dq	006E007200610077h, 00730067006E0069h, 0072004500730041h, 00730072006F0072h
-RWD32  	dd	G_M47278_IG49 - G_M47278_IG02
-       	dd	G_M47278_IG41 - G_M47278_IG02
-       	dd	G_M47278_IG35 - G_M47278_IG02
-       	dd	G_M47278_IG29 - G_M47278_IG02
-       	dd	G_M47278_IG27 - G_M47278_IG02
-       	dd	G_M47278_IG25 - G_M47278_IG02
+RWD32  	dd	G_M47278_IG48 - G_M47278_IG02
+       	dd	G_M47278_IG40 - G_M47278_IG02
+       	dd	G_M47278_IG34 - G_M47278_IG02
+       	dd	G_M47278_IG28 - G_M47278_IG02
+       	dd	G_M47278_IG26 - G_M47278_IG02
+       	dd	G_M47278_IG24 - G_M47278_IG02
        	dd	G_M47278_IG08 - G_M47278_IG02
        	dd	G_M47278_IG08 - G_M47278_IG02
-       	dd	G_M47278_IG23 - G_M47278_IG02
-       	dd	G_M47278_IG21 - G_M47278_IG02
+       	dd	G_M47278_IG22 - G_M47278_IG02
+       	dd	G_M47278_IG20 - G_M47278_IG02
        	dd	G_M47278_IG03 - G_M47278_IG02
 RWD76  	dd	00000000h
 RWD80  	dq	0072006500560065h, 006E006F00690073h
 RWD96  	dq	0067006E0061006Ch, 0065006700610075h
 RWD112 	dq	0050007900720074h, 0074006E0069006Fh
 RWD128 	dq	00740069006D0065h, 00720074006E0045h
 RWD144 	dq	006E00550077006Fh, 0065006600610073h
 RWD160 	dq	006F006C006C0061h, 0073006E00550077h
 RWD176 	dq	00630069006C0062h, 006E006700690053h
 RWD192 	dq	006C006200750070h, 0069005300630069h
 RWD208 	dq	0067007500620065h, 0065007000790054h
 RWD224 	dq	0075006200650064h, 0070007900540067h
 RWD240 	dq	00790061006C0065h, 006E006700690053h
 RWD256 	dq	0061006C00650064h, 0067006900530079h
 RWD272 	dq	006900740070006Fh, 0065007A0069006Dh
 RWD288 	dq	00740061006C0070h, 006D0072006F0066h
 
 
-; Total bytes of code 1838, prolog size 46, PerfScore 932.96, instruction count 403, allocated bytes for code 1838 (MethodHash=fe2d4751) for method Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadCompilationOptions(byref):Microsoft.Extensions.DependencyModel.CompilationOptions (FullOpts)
+; Total bytes of code 1597, prolog size 40, PerfScore 890.96, instruction count 361, allocated bytes for code 1597 (MethodHash=fe2d4751) for method Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadCompilationOptions(byref):Microsoft.Extensions.DependencyModel.CompilationOptions (FullOpts)
 ; ============================================================
-97 (-14.48 % of base) - System.Linq.Enumerable+OrderedIterator`2[System.__Canon,System.Nullable`1[int]]:TryGetFirst(byref):System.__Canon:this
 ; Assembly listing for method System.Linq.Enumerable+OrderedIterator`2[System.__Canon,System.Nullable`1[int]]:TryGetFirst(byref):System.__Canon:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX512 - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T04] ( 12, 12.50)     ref  ->  [rbp-0x50]  this class-hnd EH-live single-def <System.Linq.Enumerable+OrderedIterator`2[System.__Canon,System.Nullable`1[int]]>
-;  V01 arg1         [V01,T16] (  5,  3.50)   byref  ->  rbx         single-def
-;  V02 loc0         [V02,T03] ( 10, 15.50)     ref  ->  [rbp-0x58]  class-hnd EH-live spill-single-def <System.Collections.Generic.IEnumerator`1[System.__Canon]>
-;  V03 loc1         [V03,T13] (  3,  6.50)     ref  ->  r15         class-hnd single-def <System.Collections.Generic.IComparer`1[System.Nullable`1[int]]>
-;  V04 loc2         [V04,T05] (  7, 13.50)     ref  ->  r14         class-hnd single-def <System.Func`2[System.__Canon,System.Nullable`1[int]]>
-;  V05 loc3         [V05,T12] (  5,  7.50)     ref  ->  r13         class-hnd <System.__Canon>
-;  V06 loc4         [V06,T06] (  5, 12.50)  struct ( 8) [rbp-0x38]  do-not-enreg[SR] multireg-ret <System.Nullable`1[int]>
-;  V07 loc5         [V07,T08] (  3, 12   )     ref  ->  r12         class-hnd <System.__Canon>
-;  V08 loc6         [V08,T09] (  3, 12   )  struct ( 8) [rbp-0x40]  do-not-enreg[SR] multireg-ret <System.Nullable`1[int]>
-;  V09 loc7         [V09,T14] (  3,  6   )     ref  ->  r12         class-hnd <System.__Canon>
-;  V10 loc8         [V10,T15] (  3,  6   )  struct ( 8) [rbp-0x48]  do-not-enreg[SR] multireg-ret <System.Nullable`1[int]>
-;  V11 loc9         [V11,T23] (  3,  1.50)     ref  ->  r15         class-hnd <System.__Canon>
+;  V00 this         [V00,T07] ( 10,  6.50)     ref  ->  [rbp-0x50]  this class-hnd EH-live single-def <System.Linq.Enumerable+OrderedIterator`2[System.__Canon,System.Nullable`1[int]]>
+;  V01 arg1         [V01,T13] (  5,  3.50)   byref  ->  rbx         single-def
+;  V02 loc0         [V02,T01] ( 10, 15.50)     ref  ->  [rbp-0x58]  class-hnd EH-live spill-single-def <System.Collections.Generic.IEnumerator`1[System.__Canon]>
+;  V03 loc1         [V03,T10] (  3,  6.50)     ref  ->  r15         class-hnd single-def <System.Collections.Generic.IComparer`1[System.Nullable`1[int]]>
+;  V04 loc2         [V04,T02] (  7, 13.50)     ref  ->  r14         class-hnd single-def <System.Func`2[System.__Canon,System.Nullable`1[int]]>
+;  V05 loc3         [V05,T08] (  5,  7.50)     ref  ->  r12         class-hnd <System.__Canon>
+;  V06 loc4         [V06,T03] (  5, 12.50)  struct ( 8) [rbp-0x38]  do-not-enreg[SR] multireg-ret <System.Nullable`1[int]>
+;  V07 loc5         [V07,T04] (  3, 12   )     ref  ->  [rbp-0x60]  class-hnd <System.__Canon>
+;  V08 loc6         [V08,T05] (  3, 12   )  struct ( 8) [rbp-0x40]  do-not-enreg[SR] multireg-ret <System.Nullable`1[int]>
+;  V09 loc7         [V09,T11] (  3,  6   )     ref  ->  [rbp-0x68]  class-hnd <System.__Canon>
+;  V10 loc8         [V10,T12] (  3,  6   )  struct ( 8) [rbp-0x48]  do-not-enreg[SR] multireg-ret <System.Nullable`1[int]>
+;  V11 loc9         [V11,T21] (  3,  1.50)     ref  ->  r15         class-hnd <System.__Canon>
 ;* V12 loc10        [V12    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd <System.__Canon>
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V15 tmp2         [V15,T17] (  4,  3   )    long  ->  r11         "VirtualCall with runtime lookup"
+;  V15 tmp2         [V15,T14] (  4,  3   )    long  ->  r11         "VirtualCall with runtime lookup"
 ;* V16 tmp3         [V16    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V17 tmp4         [V17,T18] (  4,  3   )    long  ->  r11         "VirtualCall with runtime lookup"
+;  V17 tmp4         [V17,T15] (  3,  3   )    long  ->  r11         "VirtualCall with runtime lookup"
 ;* V18 tmp5         [V18    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V19 tmp6         [V19,T07] (  4, 12   )    long  ->  r11         "VirtualCall with runtime lookup"
+;  V19 tmp6         [V19,T06] (  3, 12   )    long  ->  r11         "VirtualCall with runtime lookup"
 ;* V20 tmp7         [V20    ] (  0,  0   )    long  ->  zero-ref    "spilling helperCall"
-;  V21 tmp8         [V21,T00] (  4, 24   )    long  ->  r11         "VirtualCall with runtime lookup"
-;  V22 PSPSym       [V22,T24] (  1,  1   )    long  ->  [rbp-0x60]  do-not-enreg[V] "PSPSym"
-;  V23 rat0         [V23,T21] (  3,  2.20)    long  ->  rsi         "Spilling to split statement for tree"
-;  V24 rat1         [V24,T19] (  3,  2.80)    long  ->  r11         "fgMakeTemp is creating a new local variable"
-;  V25 rat2         [V25,T22] (  3,  2.20)    long  ->  rsi         "Spilling to split statement for tree"
-;  V26 rat3         [V26,T20] (  3,  2.80)    long  ->  r11         "fgMakeTemp is creating a new local variable"
-;  V27 rat4         [V27,T02] (  3, 17.60)    long  ->  rsi         "Spilling to split statement for tree"
-;  V28 rat5         [V28,T01] (  3, 22.40)    long  ->  r11         "fgMakeTemp is creating a new local variable"
-;  V29 rat6         [V29,T11] (  3,  8.80)    long  ->  rsi         "Spilling to split statement for tree"
-;  V30 rat7         [V30,T10] (  3, 11.20)    long  ->  r11         "fgMakeTemp is creating a new local variable"
+;  V21 tmp8         [V21,T00] (  3, 24   )    long  ->  r11         "VirtualCall with runtime lookup"
+;  V22 PSPSym       [V22,T22] (  1,  1   )    long  ->  [rbp-0x70]  do-not-enreg[V] "PSPSym"
+;  V23 cse0         [V23,T09] (  4,  7   )    long  ->  r13         "CSE #02: moderate"
+;  V24 rat0         [V24,T18] (  3,  2.20)    long  ->  rsi         "Spilling to split statement for tree"
+;  V25 rat1         [V25,T16] (  3,  2.80)    long  ->  r11         "fgMakeTemp is creating a new local variable"
+;  V26 rat2         [V26,T19] (  3,  2.20)    long  ->  rsi         "Spilling to split statement for tree"
+;  V27 rat3         [V27,T20] (  3,  2   )    long  ->  r13         "runtime lookup"
+;  V28 rat4         [V28,T17] (  3,  2.80)    long  ->  r13         "fgMakeTemp is creating a new local variable"
 ;
-; Lcl frame size = 56
+; Lcl frame size = 72
 
 G_M62063_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 56
-       lea      rbp, [rsp+0x60]
-       mov      qword ptr [rbp-0x60], rsp
+       sub      rsp, 72
+       lea      rbp, [rsp+0x70]
+       mov      qword ptr [rbp-0x70], rsp
        mov      qword ptr [rbp-0x30], rdi
        mov      gword ptr [rbp-0x50], rdi
        mov      rbx, rsi
 						;; size=34 bbWeight=1 PerfScore 10.00
 G_M62063_IG02:
        cmp      gword ptr [rdi+0x20], 0
-       jne      G_M62063_IG21
+       jne      G_M62063_IG17
 						;; size=11 bbWeight=1 PerfScore 4.00
 G_M62063_IG03:
        mov      rsi, qword ptr [rdi]
        mov      rax, qword ptr [rsi+0x30]
        mov      rax, qword ptr [rax+0x10]
        mov      r11, qword ptr [rax+0x18]
        test     r11, r11
-       je       G_M62063_IG23
+       je       G_M62063_IG19
 						;; size=24 bbWeight=0.50 PerfScore 4.62
 G_M62063_IG04:
        mov      rdi, gword ptr [rbp-0x50]
        mov      rdi, gword ptr [rdi+0x18]
        call     [r11]
        mov      rdi, rax
        mov      gword ptr [rbp-0x58], rdi
 						;; size=18 bbWeight=0.50 PerfScore 3.62
 G_M62063_IG05:
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
        call     [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
        test     eax, eax
        jne      SHORT G_M62063_IG06
        mov      byte  ptr [rbx], 0
        xor      r15, r15
-       jmp      G_M62063_IG19
+       jmp      G_M62063_IG15
 						;; size=28 bbWeight=0.50 PerfScore 3.88
 G_M62063_IG06:
        mov      rdi, gword ptr [rbp-0x50]
        mov      r15, gword ptr [rdi+0x30]
        mov      r14, gword ptr [rdi+0x28]
        mov      rsi, qword ptr [rdi]
        mov      rax, qword ptr [rsi+0x30]
        mov      rax, qword ptr [rax+0x10]
-       mov      r11, qword ptr [rax+0x20]
-       test     r11, r11
+       mov      r13, qword ptr [rax+0x20]
+       test     r13, r13
        je       SHORT G_M62063_IG08
 						;; size=32 bbWeight=0.50 PerfScore 7.12
 G_M62063_IG07:
+       mov      r11, r13
        mov      rdi, gword ptr [rbp-0x58]
        call     [r11]
-       mov      r13, rax
-       mov      rsi, r13
+       mov      r12, rax
+       mov      rsi, r12
        mov      rdi, gword ptr [r14+0x08]
        call     [r14+0x18]System.Func`2[System.__Canon,System.Nullable`1[int]]:Invoke(System.__Canon):System.Nullable`1[int]:this
        mov      qword ptr [rbp-0x38], rax
        mov      rdi, gword ptr [rbp-0x50]
        cmp      byte  ptr [rdi+0x48], 0
        je       SHORT G_M62063_IG10
-       jmp      G_M62063_IG16
-						;; size=40 bbWeight=0.50 PerfScore 8.75
+       jmp      G_M62063_IG13
+						;; size=43 bbWeight=0.50 PerfScore 8.88
 G_M62063_IG08:
        mov      rdi, rsi
        mov      rsi, 0xD1FFAB1E      ; global ptr
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_CLASS
        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_CLASS
-       mov      r11, rax
+       mov      r13, rax
        jmp      SHORT G_M62063_IG07
 						;; size=30 bbWeight=0.10 PerfScore 0.60
 G_M62063_IG09:
+       mov      r12, gword ptr [rbp-0x68]
        mov      r11, qword ptr [rbp-0x48]
        mov      qword ptr [rbp-0x38], r11
-       mov      r13, r12
-						;; size=11 bbWeight=2 PerfScore 4.50
+						;; size=12 bbWeight=2 PerfScore 6.00
 G_M62063_IG10:
        mov      rdi, gword ptr [rbp-0x58]
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
        call     [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
        test     eax, eax
-       je       G_M62063_IG17
+       je       G_M62063_IG14
 						;; size=25 bbWeight=4 PerfScore 22.00
 G_M62063_IG11:
-       mov      rdi, gword ptr [rbp-0x50]
-       mov      rsi, qword ptr [rdi]
-       mov      rax, qword ptr [rsi+0x30]
-       mov      rax, qword ptr [rax+0x10]
-       mov      r11, qword ptr [rax+0x20]
-       test     r11, r11
-       je       SHORT G_M62063_IG13
-						;; size=24 bbWeight=2 PerfScore 20.50
-G_M62063_IG12:
+       mov      r11, r13
        mov      rdi, gword ptr [rbp-0x58]
        call     [r11]
-       mov      r12, rax
-       mov      rsi, r12
+       mov      gword ptr [rbp-0x68], rax
+       mov      rsi, rax
        mov      rdi, gword ptr [r14+0x08]
        call     [r14+0x18]System.Func`2[System.__Canon,System.Nullable`1[int]]:Invoke(System.__Canon):System.Nullable`1[int]:this
        mov      qword ptr [rbp-0x48], rax
        mov      rdi, r15
        mov      rdx, qword ptr [rbp-0x38]
        mov      rsi, qword ptr [rbp-0x48]
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IComparer`1[System.Nullable`1[int]]:Compare(System.Nullable`1[int],System.Nullable`1[int]):int:this
        call     [r11]System.Collections.Generic.IComparer`1[System.Nullable`1[int]]:Compare(System.Nullable`1[int],System.Nullable`1[int]):int:this
        test     eax, eax
        jge      SHORT G_M62063_IG10
        jmp      SHORT G_M62063_IG09
-						;; size=55 bbWeight=2 PerfScore 38.50
-G_M62063_IG13:
-       mov      rdi, rsi
-       mov      rsi, 0xD1FFAB1E      ; global ptr
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_CLASS
-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_CLASS
-       mov      r11, rax
-       jmp      SHORT G_M62063_IG12
-						;; size=30 bbWeight=0.40 PerfScore 2.40
-G_M62063_IG14:
-       mov      rdi, gword ptr [rbp-0x50]
-       mov      rsi, qword ptr [rdi]
-       mov      rax, qword ptr [rsi+0x30]
-       mov      rax, qword ptr [rax+0x10]
-       mov      r11, qword ptr [rax+0x20]
-       test     r11, r11
-       je       SHORT G_M62063_IG18
-						;; size=24 bbWeight=4 PerfScore 41.00
-G_M62063_IG15:
+						;; size=59 bbWeight=2 PerfScore 40.50
+G_M62063_IG12:
+       mov      r11, r13
        mov      rdi, gword ptr [rbp-0x58]
        call     [r11]
-       mov      r12, rax
-       mov      rsi, r12
+       mov      gword ptr [rbp-0x60], rax
+       mov      rsi, rax
        mov      rdi, gword ptr [r14+0x08]
        call     [r14+0x18]System.Func`2[System.__Canon,System.Nullable`1[int]]:Invoke(System.__Canon):System.Nullable`1[int]:this
        mov      qword ptr [rbp-0x40], rax
        mov      rdi, r15
        mov      rdx, qword ptr [rbp-0x38]
        mov      rsi, qword ptr [rbp-0x40]
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.Generic.IComparer`1[System.Nullable`1[int]]:Compare(System.Nullable`1[int],System.Nullable`1[int]):int:this
        call     [r11]System.Collections.Generic.IComparer`1[System.Nullable`1[int]]:Compare(System.Nullable`1[int],System.Nullable`1[int]):int:this
        test     eax, eax
-       jle      SHORT G_M62063_IG16
+       jle      SHORT G_M62063_IG13
+       mov      r12, gword ptr [rbp-0x60]
        mov      r11, qword ptr [rbp-0x40]
        mov      qword ptr [rbp-0x38], r11
-       mov      r13, r12
-						;; size=64 bbWeight=4 PerfScore 78.00
-G_M62063_IG16:
+						;; size=69 bbWeight=4 PerfScore 85.00
+G_M62063_IG13:
        mov      rdi, gword ptr [rbp-0x58]
        mov      r11, 0xD1FFAB1E      ; code for System.Collections.IEnumerator:MoveNext():ubyte:this
        call     [r11]System.Collections.IEnumerator:MoveNext():ubyte:this
        test     eax, eax
-       jne      SHORT G_M62063_IG14
+       jne      SHORT G_M62063_IG12
 						;; size=21 bbWeight=4 PerfScore 22.00
-G_M62063_IG17:
+G_M62063_IG14:
        mov      byte  ptr [rbx], 1
-       mov      r15, r13
-       jmp      SHORT G_M62063_IG19
-						;; size=8 bbWeight=0.50 PerfScore 1.62
-G_M62063_IG18:
-       mov      rdi, rsi
-       mov      rsi, 0xD1FFAB1E      ; global ptr
-       mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_CLASS
-       call     [rax]CORINFO_HELP_RUNTIMEHANDLE_CLASS
-       mov      r11, rax
-       jmp      SHORT G_M62063_IG15
-						;; size=30 bbWeight=0.80 PerfScore 4.80
-G_M62063_IG19:
+       mov      r15, r12
+						;; size=6 bbWeight=0.50 PerfScore 0.62
+G_M62063_IG15:
        mov      rdi, gword ptr [rbp-0x58]
        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this
        call     [r11]System.IDisposable:Dispose():this
        mov      rax, r15
 						;; size=20 bbWeight=0.50 PerfScore 2.25
-G_M62063_IG20:
-       add      rsp, 56
+G_M62063_IG16:
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M62063_IG21:
+G_M62063_IG17:
        mov      rsi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Linq.Enumerable+OrderedIterator`1[System.__Canon]:TryGetFirst(byref):System.__Canon:this
        call     [rax]System.Linq.Enumerable+OrderedIterator`1[System.__Canon]:TryGetFirst(byref):System.__Canon:this
        nop      
 						;; size=16 bbWeight=0.50 PerfScore 1.88
-G_M62063_IG22:
-       add      rsp, 56
+G_M62063_IG18:
+       add      rsp, 72
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M62063_IG23:
+G_M62063_IG19:
        mov      rdi, rsi
        mov      rsi, 0xD1FFAB1E      ; global ptr
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_RUNTIMEHANDLE_CLASS
        call     [rax]CORINFO_HELP_RUNTIMEHANDLE_CLASS
        mov      r11, rax
        jmp      G_M62063_IG04
 						;; size=33 bbWeight=0.10 PerfScore 0.60
-G_M62063_IG24:
+G_M62063_IG20:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        push     rax
        mov      rbp, qword ptr [rdi]
        mov      qword ptr [rsp], rbp
-       lea      rbp, [rbp+0x60]
+       lea      rbp, [rbp+0x70]
 						;; size=22 bbWeight=0 PerfScore 0.00
-G_M62063_IG25:
+G_M62063_IG21:
        cmp      gword ptr [rbp-0x58], 0
-       je       SHORT G_M62063_IG26
+       je       SHORT G_M62063_IG22
        mov      rdi, gword ptr [rbp-0x58]
        mov      r11, 0xD1FFAB1E      ; code for System.IDisposable:Dispose():this
        call     [r11]System.IDisposable:Dispose():this
 						;; size=24 bbWeight=0 PerfScore 0.00
-G_M62063_IG26:
+G_M62063_IG22:
        nop      
 						;; size=1 bbWeight=0 PerfScore 0.00
-G_M62063_IG27:
+G_M62063_IG23:
        add      rsp, 8
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=15 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 670, prolog size 34, PerfScore 286.90, instruction count 186, allocated bytes for code 670 (MethodHash=37e00d90) for method System.Linq.Enumerable+OrderedIterator`2[System.__Canon,System.Nullable`1[int]]:TryGetFirst(byref):System.__Canon:this (FullOpts)
+; Total bytes of code 573, prolog size 34, PerfScore 227.83, instruction count 162, allocated bytes for code 573 (MethodHash=37e00d90) for method System.Linq.Enumerable+OrderedIterator`2[System.__Canon,System.Nullable`1[int]]:TryGetFirst(byref):System.__Canon: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/5e7c7227a0da5bf4e0e3739e015bf64b

@MihuBot
Copy link
Owner Author

MihuBot commented Dec 9, 2024

@hez2010

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