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] [EgorBo] JIT: Skip more covariance checks #579

Open
MihuBot opened this issue Aug 29, 2024 · 3 comments
Open

[JitDiff X64] [EgorBo] JIT: Skip more covariance checks #579

MihuBot opened this issue Aug 29, 2024 · 3 comments

Comments

@MihuBot
Copy link
Owner

MihuBot commented Aug 29, 2024

Job completed in 19 minutes.
dotnet/runtime#107116

Diffs

Diffs
Found 291 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 39254256
Total bytes of diff: 39251957
Total bytes of delta: -2299 (-0.01 % of base)
Total relative delta: -3.87
    diff is an improvement.
    relative diff is an improvement.


Top file regressions (bytes):
         428 : System.Text.RegularExpressions.dasm (0.06 % of base)
         262 : System.Collections.dasm (0.06 % of base)
          73 : System.Linq.Expressions.dasm (0.01 % of base)
          48 : System.Data.Common.dasm (0.00 % of base)
          26 : System.Diagnostics.Process.dasm (0.03 % of base)
          25 : System.Text.Encoding.CodePages.dasm (0.03 % of base)
          24 : System.Threading.RateLimiting.dasm (0.01 % of base)
          17 : System.Data.Odbc.dasm (0.01 % of base)
          16 : System.Resources.Extensions.dasm (0.03 % of base)
          16 : System.Reflection.Metadata.dasm (0.00 % of base)
          13 : System.Net.Security.dasm (0.01 % of base)
          11 : System.ComponentModel.Composition.dasm (0.00 % of base)
           9 : System.Formats.Nrbf.dasm (0.02 % of base)
           9 : System.Configuration.ConfigurationManager.dasm (0.00 % of base)
           9 : Microsoft.CSharp.dasm (0.00 % of base)
           1 : Microsoft.Extensions.DependencyInjection.Abstractions.dasm (0.00 % of base)

Top file improvements (bytes):
       -2078 : System.Private.Xml.dasm (-0.05 % of base)
        -456 : System.Composition.TypedParts.dasm (-0.95 % of base)
        -267 : System.Private.CoreLib.dasm (-0.00 % of base)
        -152 : System.Linq.Queryable.dasm (-0.04 % of base)
        -144 : System.Threading.Tasks.Dataflow.dasm (-0.01 % of base)
         -41 : System.ComponentModel.Annotations.dasm (-0.08 % of base)
         -39 : System.Diagnostics.DiagnosticSource.dasm (-0.01 % of base)
         -37 : System.Private.DataContractSerialization.dasm (-0.00 % of base)
         -24 : System.Net.Requests.dasm (-0.02 % of base)
         -12 : System.Text.Json.dasm (-0.00 % of base)
         -11 : Microsoft.Extensions.Http.dasm (-0.02 % of base)
          -8 : System.Net.Http.dasm (-0.00 % of base)
          -8 : System.Composition.Hosting.dasm (-0.01 % of base)
          -8 : System.Net.Quic.dasm (-0.01 % of base)
          -1 : System.IO.Packaging.dasm (-0.00 % of base)

31 total files with Code Size differences (15 improved, 16 regressed), 228 unchanged.

Top method regressions (bytes):
          97 (6.79 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ReduceSingleLetterAndNestedAlternations|42_0():this (FullOpts)
          89 (4.40 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.UnaryExpression:ReduceIndex():System.Linq.Expressions.Expression:this (FullOpts)
          68 (3.17 % of base) : System.Private.Xml.dasm - System.Xml.Schema.ParticleContentValidator:BuildTransitionTable(System.Xml.Schema.BitSet,System.Xml.Schema.BitSet[],int):int[][]:this (FullOpts)
          61 (3.00 % of base) : System.Data.Common.dasm - System.Data.XmlDataLoader:LoadTopMostTable(System.Data.DataTable):this (FullOpts)
          56 (3.73 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentStrings():this (FullOpts)
          40 (7.71 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[int]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[int]):ubyte:this (FullOpts)
          40 (7.68 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[long]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[long]):ubyte:this (FullOpts)
          40 (7.60 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[short]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[short]):ubyte:this (FullOpts)
          40 (7.68 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[System.Nullable`1[int]]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[System.Nullable`1[int]]):ubyte:this (FullOpts)
          40 (7.60 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[ubyte]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[ubyte]):ubyte:this (FullOpts)
          31 (5.72 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[double]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[double]):ubyte:this (FullOpts)
          31 (5.36 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[System.Numerics.Vector`1[float]]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[System.Numerics.Vector`1[float]]):ubyte:this (FullOpts)
          29 (4.15 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:RearrangeNamedArguments(Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,Microsoft.CSharp.RuntimeBinder.Semantics.MethPropWithInst,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.ArgInfos):Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray (FullOpts)
          26 (1.12 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts) (2 methods)
          25 (3.52 % of base) : System.Text.Encoding.CodePages.dasm - System.Text.BaseCodePageEncoding:GetEncodings(System.Text.CodePagesEncodingProvider):System.Text.EncodingInfo[] (FullOpts)
          23 (2.50 % of base) : System.Private.CoreLib.dasm - System.Globalization.CalendarData:FixDefaultShortDatePattern(System.Collections.Generic.List`1[System.String]) (FullOpts)
          22 (1.35 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.Hosting.CompositionContainer:.ctor(System.ComponentModel.Composition.Primitives.ComposablePartCatalog,int,System.ComponentModel.Composition.Hosting.ExportProvider[]):this (FullOpts)
          22 (0.63 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventPipePayloadDecoder:DecodePayload(byref,System.ReadOnlySpan`1[ubyte]):System.Object[] (FullOpts)
          17 (6.09 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcParameterCollection:Replace(int,System.Object):this (FullOpts)
          16 (1.02 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.TypeNameParser:ParseNextTypeName(ubyte,byref):System.Reflection.Metadata.TypeName:this (FullOpts)
          16 (2.84 % of base) : System.Resources.Extensions.dasm - System.Resources.Extensions.BinaryFormat.Deserializer.Deserializer:Deserialize():System.Object:this (FullOpts)
          15 (7.21 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:ReplaceChild(int,System.Text.RegularExpressions.RegexNode):this (FullOpts)
          15 (1.36 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double]:StripEffects(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[double]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double]:this (FullOpts)
          15 (1.36 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[int]:StripEffects(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[int]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[int]:this (FullOpts)
          15 (1.36 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[long]:StripEffects(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[long]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[long]:this (FullOpts)
          15 (1.36 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[short]:StripEffects(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[short]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[short]:this (FullOpts)
          15 (1.36 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]:StripEffects(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ubyte]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]:this (FullOpts)
          15 (4.82 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.XsltOld.Compiler:ResolvePrefixes(System.String):System.String[]:this (FullOpts)
          14 (0.77 % of base) : System.Diagnostics.Process.dasm - System.Diagnostics.AsyncStreamReader+<ReadBufferAsync>d__16:MoveNext():this (FullOpts)
          14 (4.27 % of base) : System.Private.CoreLib.dasm - System.Globalization.CalendarData:EnumDatePatterns(System.String,ushort,int,byref):ubyte (FullOpts)
          14 (6.33 % of base) : System.Private.CoreLib.dasm - System.Reflection.Assembly:get_DefinedTypes():System.Collections.Generic.IEnumerable`1[System.Reflection.TypeInfo]:this (FullOpts)
          13 (0.39 % of base) : System.Net.Security.dasm - System.Net.Security.SslStreamCertificateContext+<>c__DisplayClass42_0+<<FetchOcspAsync>g__FetchOcspAsyncCore|0>d:MoveNext():this (FullOpts)
          13 (0.92 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|42_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (FullOpts)
          13 (4.21 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[double]:Alternate(System.Collections.Generic.List`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double]]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double]:this (FullOpts)
          13 (4.21 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[int]:Alternate(System.Collections.Generic.List`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[int]]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[int]:this (FullOpts)
          13 (4.21 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[long]:Alternate(System.Collections.Generic.List`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[long]]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[long]:this (FullOpts)
          13 (4.21 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[short]:Alternate(System.Collections.Generic.List`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[short]]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[short]:this (FullOpts)
          13 (4.21 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ubyte]:Alternate(System.Collections.Generic.List`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]:this (FullOpts)
          13 (0.77 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double]:CreateAlternate(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[double],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double],ubyte,ubyte):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double] (FullOpts)
          13 (0.75 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[int]:CreateAlternate(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[int],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[int],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[int],ubyte,ubyte):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[int] (FullOpts)
          13 (0.75 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[long]:CreateAlternate(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[long],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[long],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[long],ubyte,ubyte):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[long] (FullOpts)
          13 (0.75 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[short]:CreateAlternate(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[short],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[short],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[short],ubyte,ubyte):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[short] (FullOpts)
          13 (0.75 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]:CreateAlternate(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ubyte],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte],ubyte,ubyte):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte] (FullOpts)
          12 (1.78 % of base) : System.Diagnostics.Process.dasm - System.Diagnostics.AsyncStreamReader:MoveLinesFromStringBuilderToMessageQueue():this (FullOpts)
           9 (1.97 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.SectionRecord:AddLocationInputImpl(System.Configuration.SectionInput,ubyte):this (FullOpts)
           9 (2.39 % of base) : System.Formats.Nrbf.dasm - System.Formats.Nrbf.ArraySingleObjectRecord:ToArray(ubyte):System.Object[]:this (FullOpts)
           9 (1.17 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.XsltOld.TemplateAction:AnalyzePriority(System.Xml.Xsl.XsltOld.Compiler):this (FullOpts)
           8 (5.26 % of base) : System.Data.Common.dasm - System.Data.Common.DataColumnMappingCollection:Replace(int,System.Data.Common.DataColumnMapping):this (FullOpts)
           8 (5.26 % of base) : System.Data.Common.dasm - System.Data.Common.DataTableMappingCollection:Replace(int,System.Data.Common.DataTableMapping):this (FullOpts)
           7 (1.08 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventSource:WriteToAllListeners(System.Diagnostics.Tracing.EventWrittenEventArgs,int,ulong):this (FullOpts)
           7 (1.06 % of base) : System.IO.Packaging.dasm - System.IO.Packaging.InterleavedZipPackagePartStream+PieceDirectory:UpdatePhysicalEndIfNecessary():this (FullOpts)
           7 (0.45 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:ReduceAtomic():System.Text.RegularExpressions.RegexNode:this (FullOpts)
           7 (1.20 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:ReduceExpressionConditional():System.Text.RegularExpressions.RegexNode:this (FullOpts)
           6 (0.45 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.ConcurrencyLimiter:AcquireAsyncCore(int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Threading.RateLimiting.RateLimitLease]:this (FullOpts)
           6 (0.44 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.FixedWindowRateLimiter:AcquireAsyncCore(int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Threading.RateLimiting.RateLimitLease]:this (FullOpts)
           6 (0.44 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.SlidingWindowRateLimiter:AcquireAsyncCore(int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Threading.RateLimiting.RateLimitLease]:this (FullOpts)
           6 (0.44 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.TokenBucketRateLimiter:AcquireAsyncCore(int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Threading.RateLimiting.RateLimitLease]:this (FullOpts)
           2 (0.11 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:FinalOptimize():System.Text.RegularExpressions.RegexNode:this (FullOpts) (2 methods)
           1 (0.27 % of base) : Microsoft.Extensions.DependencyInjection.Abstractions.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:ReflectionFactoryCanonicalSpan(System.Reflection.ConstructorInvoker,Microsoft.Extensions.DependencyInjection.ActivatorUtilities+FactoryParameterContext[],System.Type,System.IServiceProvider,System.Object[]):System.Object (FullOpts)

Top method improvements (bytes):
        -176 (-3.22 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanAttlist2():int:this (FullOpts)
        -176 (-2.98 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ScanAttlist2Async>d__183:MoveNext():this (FullOpts)
        -160 (-2.85 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ScanSubsetContentAsync>d__174:MoveNext():this (FullOpts)
        -141 (-2.90 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanSubsetContent():int:this (FullOpts)
        -109 (-2.70 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ParseSubset():this (FullOpts)
         -96 (-2.51 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ScanAttlist6Async>d__184:MoveNext():this (FullOpts)
         -90 (-2.88 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanAttlist6():int:this (FullOpts)
         -80 (-2.22 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ParseElementOnlyContent(System.Xml.Schema.ParticleContentValidator,int):this (FullOpts)
         -80 (-1.77 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ParseElementOnlyContentAsync>d__164:MoveNext():this (FullOpts)
         -75 (-8.89 % of base) : System.Private.CoreLib.dasm - System.Threading.TimerQueueTimer:get_DisplayString():System.String:this (FullOpts)
         -48 (-0.99 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ParseSubsetAsync>d__159:MoveNext():this (FullOpts)
         -45 (-2.47 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ParseNotationDecl():this (FullOpts)
         -42 (-2.02 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ScanCondSection1Async>d__193:MoveNext():this (FullOpts)
         -42 (-2.16 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ScanDoctype1Async>d__178:MoveNext():this (FullOpts)
         -42 (-2.23 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ScanNotation1Async>d__186:MoveNext():this (FullOpts)
         -41 (-6.05 % of base) : System.ComponentModel.Annotations.dasm - System.ComponentModel.DataAnnotations.CustomValidationAttribute:IsValid(System.Object,System.ComponentModel.DataAnnotations.ValidationContext):System.ComponentModel.DataAnnotations.ValidationResult:this (FullOpts)
         -39 (-2.87 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.DsesFilterAndTransform:CreateTransform(System.Diagnostics.DiagnosticSourceEventSource,System.String,int,int,System.Diagnostics.DsesFilterAndTransform):System.Diagnostics.DsesFilterAndTransform (FullOpts)
         -39 (-2.18 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanCondSection1():int:this (FullOpts)
         -39 (-2.91 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanDoctype1():int:this (FullOpts)
         -39 (-2.93 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanEntity2():int:this (FullOpts)
         -39 (-3.09 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanNotation1():int:this (FullOpts)
         -37 (-3.87 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.DataContracts.DataContractSet:InternalAdd(System.Xml.XmlQualifiedName,System.Runtime.Serialization.DataContracts.DataContract):this (FullOpts)
         -32 (-10.70 % of base) : System.Private.CoreLib.dasm - System.ValueTuple`2[double,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -32 (-11.85 % of base) : System.Private.CoreLib.dasm - System.ValueTuple`2[int,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -32 (-11.81 % of base) : System.Private.CoreLib.dasm - System.ValueTuple`2[long,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -32 (-11.76 % of base) : System.Private.CoreLib.dasm - System.ValueTuple`2[short,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -32 (-10.36 % of base) : System.Private.CoreLib.dasm - System.ValueTuple`2[System.__Canon,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -32 (-9.82 % of base) : System.Private.CoreLib.dasm - System.ValueTuple`2[System.Nullable`1[int],System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -32 (-10.74 % of base) : System.Private.CoreLib.dasm - System.ValueTuple`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -32 (-11.76 % of base) : System.Private.CoreLib.dasm - System.ValueTuple`2[ubyte,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -30 (-4.93 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Runtime.XmlQueryOutput:WriteNamespaceDeclaration(System.String,System.String):this (FullOpts)
         -29 (-1.00 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ParseAttlistDeclAsync>d__160:MoveNext():this (FullOpts)
         -26 (-1.39 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ParseAttlistDecl():this (FullOpts)
         -26 (-1.77 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ParseEntityDecl():this (FullOpts)
         -26 (-2.38 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ParseInDocumentDtd(ubyte):this (FullOpts)
         -26 (-2.14 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanElement1():int:this (FullOpts)
         -26 (-2.36 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanElement2():int:this (FullOpts)
         -26 (-2.13 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanQName(ubyte):this (FullOpts)
         -26 (-1.75 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ScanElement1Async>d__179:MoveNext():this (FullOpts)
         -26 (-1.89 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ScanElement2Async>d__180:MoveNext():this (FullOpts)
         -26 (-1.43 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ScanEntity2Async>d__189:MoveNext():this (FullOpts)
         -22 (-1.06 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ParseInDocumentDtdAsync>d__155:MoveNext():this (FullOpts)
         -22 (-1.05 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ScanQNameAsync>d__197:MoveNext():this (FullOpts)
         -22 (-1.11 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSchemas:GetSchemaItem(System.Xml.Schema.XmlSchemaObject,System.String,System.String):System.String (FullOpts)
         -20 (-2.59 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.MemberLookup:ReportBogus(Microsoft.CSharp.RuntimeBinder.Semantics.SymWithType):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         -19 (-8.88 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType0`2[double,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-8.88 % of base) : System.Linq.Queryable.dasm - <>f__AnonymousType0`2[double,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.27 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType0`2[int,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.27 % of base) : System.Linq.Queryable.dasm - <>f__AnonymousType0`2[int,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.22 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType0`2[long,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.22 % of base) : System.Linq.Queryable.dasm - <>f__AnonymousType0`2[long,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.16 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType0`2[short,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.16 % of base) : System.Linq.Queryable.dasm - <>f__AnonymousType0`2[short,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-9.55 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType0`2[System.__Canon,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-9.84 % of base) : System.Linq.Queryable.dasm - <>f__AnonymousType0`2[System.__Canon,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-8.37 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType0`2[System.Nullable`1[int],System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-8.60 % of base) : System.Linq.Queryable.dasm - <>f__AnonymousType0`2[System.Nullable`1[int],System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-8.48 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType0`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-8.48 % of base) : System.Linq.Queryable.dasm - <>f__AnonymousType0`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.16 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType0`2[ubyte,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.16 % of base) : System.Linq.Queryable.dasm - <>f__AnonymousType0`2[ubyte,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-8.88 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType1`2[double,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.27 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType1`2[int,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.22 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType1`2[long,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.16 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType1`2[short,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-9.55 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType1`2[System.__Canon,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-8.37 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType1`2[System.Nullable`1[int],System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-8.48 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType1`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.16 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType1`2[ubyte,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-8.88 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType2`2[double,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.27 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType2`2[int,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.22 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType2`2[long,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.16 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType2`2[short,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-9.55 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType2`2[System.__Canon,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-8.37 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType2`2[System.Nullable`1[int],System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-8.48 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType2`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.16 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType2`2[ubyte,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-1.04 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.JoinBlock`2[double,System.Nullable`1[int]]:.ctor(System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions):this (FullOpts)
         -19 (-1.04 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.JoinBlock`2[int,System.Nullable`1[int]]:.ctor(System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions):this (FullOpts)
         -19 (-1.04 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.JoinBlock`2[long,System.Nullable`1[int]]:.ctor(System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions):this (FullOpts)
         -19 (-1.04 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.JoinBlock`2[short,System.Nullable`1[int]]:.ctor(System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions):this (FullOpts)
         -19 (-1.04 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.JoinBlock`2[System.Nullable`1[int],System.Nullable`1[int]]:.ctor(System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions):this (FullOpts)
         -19 (-1.04 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.JoinBlock`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:.ctor(System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions):this (FullOpts)
         -19 (-1.04 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.JoinBlock`2[ubyte,System.Nullable`1[int]]:.ctor(System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions):this (FullOpts)
         -16 (-4.62 % of base) : System.Data.Common.dasm - System.Data.DataRelation:.ctor(System.String,System.Data.DataColumn,System.Data.DataColumn,ubyte):this (FullOpts)
         -16 (-1.37 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventSource:ThrowEventSourceException(System.String,System.Exception):this (FullOpts)
         -16 (-8.08 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Interpreter.NewInstruction:ToString():System.String:this (FullOpts)
         -16 (-0.62 % of base) : System.Net.Requests.dasm - System.Net.FtpControlStream:PipelineCallback(System.Net.CommandStream+PipelineEntry,System.Net.ResponseDescription,ubyte,byref):int:this (FullOpts)
         -16 (-0.43 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ParseAttlistType(System.Xml.Schema.SchemaAttDef,System.Xml.Schema.SchemaElementDecl,ubyte):this (FullOpts)
         -16 (-0.55 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ParseElementMixedContent(System.Xml.Schema.ParticleContentValidator,int):this (FullOpts)
         -16 (-0.55 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanLiteral(int):int:this (FullOpts)
         -16 (-0.45 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ParseElementMixedContentAsync>d__166:MoveNext():this (FullOpts)
         -16 (-0.36 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ScanLiteralAsync>d__185:MoveNext():this (FullOpts)
         -13 (-0.13 % of base) : System.Data.Common.dasm - System.Data.XmlTreeGen:SchemaTree(System.Xml.XmlDocument,System.Xml.XmlWriter,System.Data.DataSet,System.Data.DataTable,ubyte):this (FullOpts)
         -13 (-0.60 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:GetToken(ubyte):int:this (FullOpts)
         -13 (-1.59 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:HandleEntityReference(System.Xml.XmlQualifiedName,ubyte,ubyte,ubyte):ubyte:this (FullOpts)
         -13 (-3.48 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:OnUnexpectedError():this (FullOpts)
         -13 (-1.25 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ParseAttlistDefault(System.Xml.Schema.SchemaAttDef,ubyte):this (FullOpts)
         -13 (-0.72 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ParseCondSection():this (FullOpts)
         -13 (-0.81 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ParseElementDecl():this (FullOpts)

Top method regressions (percentages):
          40 (7.71 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[int]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[int]):ubyte:this (FullOpts)
          40 (7.68 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[long]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[long]):ubyte:this (FullOpts)
          40 (7.68 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[System.Nullable`1[int]]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[System.Nullable`1[int]]):ubyte:this (FullOpts)
          40 (7.60 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[short]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[short]):ubyte:this (FullOpts)
          40 (7.60 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[ubyte]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[ubyte]):ubyte:this (FullOpts)
          15 (7.21 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:ReplaceChild(int,System.Text.RegularExpressions.RegexNode):this (FullOpts)
          97 (6.79 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ReduceSingleLetterAndNestedAlternations|42_0():this (FullOpts)
          14 (6.33 % of base) : System.Private.CoreLib.dasm - System.Reflection.Assembly:get_DefinedTypes():System.Collections.Generic.IEnumerable`1[System.Reflection.TypeInfo]:this (FullOpts)
          17 (6.09 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcParameterCollection:Replace(int,System.Object):this (FullOpts)
          31 (5.72 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[double]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[double]):ubyte:this (FullOpts)
          31 (5.36 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[System.Numerics.Vector`1[float]]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[System.Numerics.Vector`1[float]]):ubyte:this (FullOpts)
           8 (5.26 % of base) : System.Data.Common.dasm - System.Data.Common.DataColumnMappingCollection:Replace(int,System.Data.Common.DataColumnMapping):this (FullOpts)
           8 (5.26 % of base) : System.Data.Common.dasm - System.Data.Common.DataTableMappingCollection:Replace(int,System.Data.Common.DataTableMapping):this (FullOpts)
          15 (4.82 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.XsltOld.Compiler:ResolvePrefixes(System.String):System.String[]:this (FullOpts)
          89 (4.40 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.UnaryExpression:ReduceIndex():System.Linq.Expressions.Expression:this (FullOpts)
          14 (4.27 % of base) : System.Private.CoreLib.dasm - System.Globalization.CalendarData:EnumDatePatterns(System.String,ushort,int,byref):ubyte (FullOpts)
          13 (4.21 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[double]:Alternate(System.Collections.Generic.List`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double]]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double]:this (FullOpts)
          13 (4.21 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[int]:Alternate(System.Collections.Generic.List`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[int]]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[int]:this (FullOpts)
          13 (4.21 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[long]:Alternate(System.Collections.Generic.List`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[long]]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[long]:this (FullOpts)
          13 (4.21 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[short]:Alternate(System.Collections.Generic.List`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[short]]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[short]:this (FullOpts)
          13 (4.21 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ubyte]:Alternate(System.Collections.Generic.List`1[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]:this (FullOpts)
          29 (4.15 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:RearrangeNamedArguments(Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray,Microsoft.CSharp.RuntimeBinder.Semantics.MethPropWithInst,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.ArgInfos):Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray (FullOpts)
          56 (3.73 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentStrings():this (FullOpts)
          25 (3.52 % of base) : System.Text.Encoding.CodePages.dasm - System.Text.BaseCodePageEncoding:GetEncodings(System.Text.CodePagesEncodingProvider):System.Text.EncodingInfo[] (FullOpts)
          68 (3.17 % of base) : System.Private.Xml.dasm - System.Xml.Schema.ParticleContentValidator:BuildTransitionTable(System.Xml.Schema.BitSet,System.Xml.Schema.BitSet[],int):int[][]:this (FullOpts)
          61 (3.00 % of base) : System.Data.Common.dasm - System.Data.XmlDataLoader:LoadTopMostTable(System.Data.DataTable):this (FullOpts)
          16 (2.84 % of base) : System.Resources.Extensions.dasm - System.Resources.Extensions.BinaryFormat.Deserializer.Deserializer:Deserialize():System.Object:this (FullOpts)
          23 (2.50 % of base) : System.Private.CoreLib.dasm - System.Globalization.CalendarData:FixDefaultShortDatePattern(System.Collections.Generic.List`1[System.String]) (FullOpts)
           9 (2.39 % of base) : System.Formats.Nrbf.dasm - System.Formats.Nrbf.ArraySingleObjectRecord:ToArray(ubyte):System.Object[]:this (FullOpts)
           9 (1.97 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.SectionRecord:AddLocationInputImpl(System.Configuration.SectionInput,ubyte):this (FullOpts)
          12 (1.78 % of base) : System.Diagnostics.Process.dasm - System.Diagnostics.AsyncStreamReader:MoveLinesFromStringBuilderToMessageQueue():this (FullOpts)
          15 (1.36 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[int]:StripEffects(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[int]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[int]:this (FullOpts)
          15 (1.36 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[long]:StripEffects(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[long]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[long]:this (FullOpts)
          15 (1.36 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]:StripEffects(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ubyte]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]:this (FullOpts)
          15 (1.36 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double]:StripEffects(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[double]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double]:this (FullOpts)
          15 (1.36 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[short]:StripEffects(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[short]):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[short]:this (FullOpts)
          22 (1.35 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.Hosting.CompositionContainer:.ctor(System.ComponentModel.Composition.Primitives.ComposablePartCatalog,int,System.ComponentModel.Composition.Hosting.ExportProvider[]):this (FullOpts)
           7 (1.20 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:ReduceExpressionConditional():System.Text.RegularExpressions.RegexNode:this (FullOpts)
           9 (1.17 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.XsltOld.TemplateAction:AnalyzePriority(System.Xml.Xsl.XsltOld.Compiler):this (FullOpts)
          26 (1.12 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts) (2 methods)
           7 (1.08 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventSource:WriteToAllListeners(System.Diagnostics.Tracing.EventWrittenEventArgs,int,ulong):this (FullOpts)
           7 (1.06 % of base) : System.IO.Packaging.dasm - System.IO.Packaging.InterleavedZipPackagePartStream+PieceDirectory:UpdatePhysicalEndIfNecessary():this (FullOpts)
          16 (1.02 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.TypeNameParser:ParseNextTypeName(ubyte,byref):System.Reflection.Metadata.TypeName:this (FullOpts)
          13 (0.92 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ExtractCommonPrefixOneNotoneSet|42_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (FullOpts)
          13 (0.77 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double]:CreateAlternate(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[double],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double],ubyte,ubyte):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[double] (FullOpts)
          14 (0.77 % of base) : System.Diagnostics.Process.dasm - System.Diagnostics.AsyncStreamReader+<ReadBufferAsync>d__16:MoveNext():this (FullOpts)
          13 (0.75 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[int]:CreateAlternate(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[int],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[int],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[int],ubyte,ubyte):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[int] (FullOpts)
          13 (0.75 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[long]:CreateAlternate(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[long],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[long],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[long],ubyte,ubyte):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[long] (FullOpts)
          13 (0.75 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte]:CreateAlternate(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[ubyte],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte],ubyte,ubyte):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[ubyte] (FullOpts)
          13 (0.75 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[short]:CreateAlternate(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1[short],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[short],System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[short],ubyte,ubyte):System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[short] (FullOpts)
          22 (0.63 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventPipePayloadDecoder:DecodePayload(byref,System.ReadOnlySpan`1[ubyte]):System.Object[] (FullOpts)
           6 (0.45 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.ConcurrencyLimiter:AcquireAsyncCore(int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Threading.RateLimiting.RateLimitLease]:this (FullOpts)
           7 (0.45 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:ReduceAtomic():System.Text.RegularExpressions.RegexNode:this (FullOpts)
           6 (0.44 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.SlidingWindowRateLimiter:AcquireAsyncCore(int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Threading.RateLimiting.RateLimitLease]:this (FullOpts)
           6 (0.44 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.FixedWindowRateLimiter:AcquireAsyncCore(int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Threading.RateLimiting.RateLimitLease]:this (FullOpts)
           6 (0.44 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.TokenBucketRateLimiter:AcquireAsyncCore(int,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Threading.RateLimiting.RateLimitLease]:this (FullOpts)
          13 (0.39 % of base) : System.Net.Security.dasm - System.Net.Security.SslStreamCertificateContext+<>c__DisplayClass42_0+<<FetchOcspAsync>g__FetchOcspAsyncCore|0>d:MoveNext():this (FullOpts)
           1 (0.27 % of base) : Microsoft.Extensions.DependencyInjection.Abstractions.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:ReflectionFactoryCanonicalSpan(System.Reflection.ConstructorInvoker,Microsoft.Extensions.DependencyInjection.ActivatorUtilities+FactoryParameterContext[],System.Type,System.IServiceProvider,System.Object[]):System.Object (FullOpts)
           2 (0.11 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:FinalOptimize():System.Text.RegularExpressions.RegexNode:this (FullOpts) (2 methods)

Top method improvements (percentages):
         -32 (-11.85 % of base) : System.Private.CoreLib.dasm - System.ValueTuple`2[int,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -32 (-11.81 % of base) : System.Private.CoreLib.dasm - System.ValueTuple`2[long,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -32 (-11.76 % of base) : System.Private.CoreLib.dasm - System.ValueTuple`2[short,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -32 (-11.76 % of base) : System.Private.CoreLib.dasm - System.ValueTuple`2[ubyte,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -32 (-10.74 % of base) : System.Private.CoreLib.dasm - System.ValueTuple`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -32 (-10.70 % of base) : System.Private.CoreLib.dasm - System.ValueTuple`2[double,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -32 (-10.36 % of base) : System.Private.CoreLib.dasm - System.ValueTuple`2[System.__Canon,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.27 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType0`2[int,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.27 % of base) : System.Linq.Queryable.dasm - <>f__AnonymousType0`2[int,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.27 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType1`2[int,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.27 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType2`2[int,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.22 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType0`2[long,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.22 % of base) : System.Linq.Queryable.dasm - <>f__AnonymousType0`2[long,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.22 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType1`2[long,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.22 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType2`2[long,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.16 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType0`2[short,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.16 % of base) : System.Linq.Queryable.dasm - <>f__AnonymousType0`2[short,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.16 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType0`2[ubyte,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.16 % of base) : System.Linq.Queryable.dasm - <>f__AnonymousType0`2[ubyte,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.16 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType1`2[short,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.16 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType1`2[ubyte,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.16 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType2`2[short,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-10.16 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType2`2[ubyte,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-9.84 % of base) : System.Linq.Queryable.dasm - <>f__AnonymousType0`2[System.__Canon,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -32 (-9.82 % of base) : System.Private.CoreLib.dasm - System.ValueTuple`2[System.Nullable`1[int],System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-9.55 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType0`2[System.__Canon,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-9.55 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType1`2[System.__Canon,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-9.55 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType2`2[System.__Canon,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -75 (-8.89 % of base) : System.Private.CoreLib.dasm - System.Threading.TimerQueueTimer:get_DisplayString():System.String:this (FullOpts)
         -19 (-8.88 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType0`2[double,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-8.88 % of base) : System.Linq.Queryable.dasm - <>f__AnonymousType0`2[double,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-8.88 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType1`2[double,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-8.88 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType2`2[double,System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-8.60 % of base) : System.Linq.Queryable.dasm - <>f__AnonymousType0`2[System.Nullable`1[int],System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-8.48 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType0`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-8.48 % of base) : System.Linq.Queryable.dasm - <>f__AnonymousType0`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-8.48 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType1`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-8.48 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType2`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-8.37 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType0`2[System.Nullable`1[int],System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-8.37 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType1`2[System.Nullable`1[int],System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -19 (-8.37 % of base) : System.Composition.TypedParts.dasm - <>f__AnonymousType2`2[System.Nullable`1[int],System.Nullable`1[int]]:ToString():System.String:this (FullOpts)
         -16 (-8.08 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Interpreter.NewInstruction:ToString():System.String:this (FullOpts)
         -41 (-6.05 % of base) : System.ComponentModel.Annotations.dasm - System.ComponentModel.DataAnnotations.CustomValidationAttribute:IsValid(System.Object,System.ComponentModel.DataAnnotations.ValidationContext):System.ComponentModel.DataAnnotations.ValidationResult:this (FullOpts)
         -30 (-4.93 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Runtime.XmlQueryOutput:WriteNamespaceDeclaration(System.String,System.String):this (FullOpts)
         -16 (-4.62 % of base) : System.Data.Common.dasm - System.Data.DataRelation:.ctor(System.String,System.Data.DataColumn,System.Data.DataColumn,ubyte):this (FullOpts)
         -37 (-3.87 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.DataContracts.DataContractSet:InternalAdd(System.Xml.XmlQualifiedName,System.Runtime.Serialization.DataContracts.DataContract):this (FullOpts)
         -13 (-3.64 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:Throw(int,System.String):this (FullOpts)
         -13 (-3.48 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:OnUnexpectedError():this (FullOpts)
        -176 (-3.22 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanAttlist2():int:this (FullOpts)
         -11 (-3.19 % of base) : Microsoft.Extensions.Http.dasm - Microsoft.Extensions.DependencyInjection.SocketsHttpHandlerBuilderExtensions+<>c__DisplayClass0_0:<Configure>b__1(Microsoft.Extensions.Http.HttpMessageHandlerBuilder):this (FullOpts)
         -39 (-3.09 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanNotation1():int:this (FullOpts)
        -176 (-2.98 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ScanAttlist2Async>d__183:MoveNext():this (FullOpts)
         -39 (-2.93 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanEntity2():int:this (FullOpts)
         -39 (-2.91 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanDoctype1():int:this (FullOpts)
        -141 (-2.90 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanSubsetContent():int:this (FullOpts)
         -90 (-2.88 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanAttlist6():int:this (FullOpts)
         -39 (-2.87 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.DsesFilterAndTransform:CreateTransform(System.Diagnostics.DiagnosticSourceEventSource,System.String,int,int,System.Diagnostics.DsesFilterAndTransform):System.Diagnostics.DsesFilterAndTransform (FullOpts)
        -160 (-2.85 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ScanSubsetContentAsync>d__174:MoveNext():this (FullOpts)
         -11 (-2.81 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ExportServices:CreateStronglyTypedLazyFactory(System.Type,System.Type):System.Func`2[System.ComponentModel.Composition.Primitives.Export,System.Object] (FullOpts)
        -109 (-2.70 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ParseSubset():this (FullOpts)
         -13 (-2.63 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanDoctype2():int:this (FullOpts)
         -20 (-2.59 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.MemberLookup:ReportBogus(Microsoft.CSharp.RuntimeBinder.Semantics.SymWithType):Microsoft.CSharp.RuntimeBinder.RuntimeBinderException (FullOpts)
         -13 (-2.54 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanElement4():int:this (FullOpts)
          -8 (-2.53 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:Throw(System.String,System.String,int,int):this (FullOpts)
         -96 (-2.51 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ScanAttlist6Async>d__184:MoveNext():this (FullOpts)
         -45 (-2.47 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ParseNotationDecl():this (FullOpts)
         -26 (-2.38 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ParseInDocumentDtd(ubyte):this (FullOpts)
         -26 (-2.36 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanElement2():int:this (FullOpts)
         -13 (-2.28 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanElement5():int:this (FullOpts)
          -8 (-2.28 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:Throw(int,System.String,System.String):this (FullOpts)
         -42 (-2.23 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ScanNotation1Async>d__186:MoveNext():this (FullOpts)
         -80 (-2.22 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ParseElementOnlyContent(System.Xml.Schema.ParticleContentValidator,int):this (FullOpts)
         -12 (-2.21 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo:CreatePropertyUsingReflection(System.Type,System.Type):System.Text.Json.Serialization.Metadata.JsonPropertyInfo:this (FullOpts)
         -39 (-2.18 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanCondSection1():int:this (FullOpts)
         -42 (-2.16 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ScanDoctype1Async>d__178:MoveNext():this (FullOpts)
         -26 (-2.14 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanElement1():int:this (FullOpts)
         -26 (-2.13 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanQName(ubyte):this (FullOpts)
         -42 (-2.02 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ScanCondSection1Async>d__193:MoveNext():this (FullOpts)
         -26 (-1.89 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ScanElement2Async>d__180:MoveNext():this (FullOpts)
          -8 (-1.83 % of base) : System.Composition.Hosting.dasm - System.Composition.Hosting.Providers.CurrentScope.CurrentScopeExportDescriptorProvider:GetExportDescriptors(System.Composition.Hosting.Core.CompositionContract,System.Composition.Hosting.Core.DependencyAccessor):System.Collections.Generic.IEnumerable`1[System.Composition.Hosting.Core.ExportDescriptorPromise]:this (FullOpts)
          -8 (-1.80 % of base) : System.IO.Packaging.dasm - System.IO.Packaging.ZipPackagePartPiece:Create(System.IO.Compression.ZipArchive,System.IO.Packaging.PackUriHelper+ValidatedPartUri,System.String,int,ubyte):System.IO.Packaging.ZipPackagePartPiece (FullOpts)
         -26 (-1.77 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ParseEntityDecl():this (FullOpts)
         -80 (-1.77 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ParseElementOnlyContentAsync>d__164:MoveNext():this (FullOpts)
         -26 (-1.75 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ScanElement1Async>d__179:MoveNext():this (FullOpts)
         -13 (-1.59 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:HandleEntityReference(System.Xml.XmlQualifiedName,ubyte,ubyte,ubyte):ubyte:this (FullOpts)
         -13 (-1.58 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanNmtoken():this (FullOpts)
          -8 (-1.54 % of base) : System.Net.Http.dasm - System.Net.Http.PreAuthCredentialCache:GetCredential(System.Uri,System.String):System.Nullable`1[System.ValueTuple`2[System.Uri,System.Net.NetworkCredential]]:this (FullOpts)
         -26 (-1.43 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ScanEntity2Async>d__189:MoveNext():this (FullOpts)
         -26 (-1.39 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ParseAttlistDecl():this (FullOpts)
         -16 (-1.37 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventSource:ThrowEventSourceException(System.String,System.Exception):this (FullOpts)
         -11 (-1.31 % of base) : System.Private.Xml.dasm - System.Xml.XmlTextReaderImpl:PushExternalEntityOrSubset(System.String,System.String,System.Uri,System.String):this (FullOpts)
         -13 (-1.25 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ParseAttlistDefault(System.Xml.Schema.SchemaAttDef,ubyte):this (FullOpts)
         -22 (-1.11 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSchemas:GetSchemaItem(System.Xml.Schema.XmlSchemaObject,System.String,System.String):System.String (FullOpts)
         -13 (-1.06 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser:ScanCondSection3():int:this (FullOpts)
         -22 (-1.06 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ParseInDocumentDtdAsync>d__155:MoveNext():this (FullOpts)
         -22 (-1.05 % of base) : System.Private.Xml.dasm - System.Xml.DtdParser+<ScanQNameAsync>d__197:MoveNext():this (FullOpts)
         -19 (-1.04 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.JoinBlock`2[double,System.Nullable`1[int]]:.ctor(System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions):this (FullOpts)
         -19 (-1.04 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.JoinBlock`2[int,System.Nullable`1[int]]:.ctor(System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions):this (FullOpts)
         -19 (-1.04 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.JoinBlock`2[long,System.Nullable`1[int]]:.ctor(System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions):this (FullOpts)
         -19 (-1.04 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.JoinBlock`2[short,System.Nullable`1[int]]:.ctor(System.Threading.Tasks.Dataflow.GroupingDataflowBlockOptions):this (FullOpts)

182 total methods with Code Size differences (123 improved, 59 regressed), 231882 unchanged.

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

Artifacts:

@MihuBot
Copy link
Owner Author

MihuBot commented Aug 29, 2024

Top method regressions

97 (6.79 % of base) - System.Text.RegularExpressions.RegexNode:g__ReduceSingleLetterAndNestedAlternations|42_0():this
 ; Assembly listing for method System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ReduceSingleLetterAndNestedAlternations|42_0():this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; fully interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 32 single block inlinees; 12 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T19] (  5, 21   )     ref  ->  rbx         this class-hnd single-def <System.Text.RegularExpressions.RegexNode>
+;  V00 this         [V00,T18] (  5, 21   )     ref  ->  rbx         this class-hnd single-def <System.Text.RegularExpressions.RegexNode>
 ;  V01 loc0         [V01,T05] (  6, 39   )   ubyte  ->  r15        
 ;  V02 loc1         [V02,T06] (  6, 39   )   ubyte  ->  r14        
 ;  V03 loc2         [V03,T20] (  4, 19   )     int  ->  r13        
-;  V04 loc3         [V04,T13] (  4, 26   )     int  ->  rdx        
-;  V05 loc4         [V05,T55] (  4,  2.75)     int  ->  rdx        
-;  V06 loc5         [V06,T04] ( 16, 45   )     int  ->  [rbp-0x2C] 
-;  V07 loc6         [V07,T09] ( 11, 32   )     ref  ->  [rbp-0x60]  class-hnd exact spill-single-def <System.Text.RegularExpressions.RegexNode>
-;  V08 loc7         [V08,T22] (  8, 16   )     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def <System.Text.RegularExpressions.RegexNode>
-;  V09 loc8         [V09,T11] ( 14, 30.50)     ref  ->  r12         class-hnd single-def <System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]>
-;  V10 loc9         [V10,T17] (  5, 24   )     ref  ->  [rbp-0x70]  class-hnd spill-single-def <System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]>
-;* V11 loc10        [V11,T57] (  0,  0   )     int  ->  zero-ref   
-;  V12 loc11        [V12,T44] (  3,  6   )     ref  ->  [rbp-0x78]  class-hnd exact spill-single-def <System.Text.RegularExpressions.RegexNode>
-;  V13 loc12        [V13,T03] (  3, 48   )   ubyte  ->  rsi        
+;  V04 loc3         [V04,T12] (  4, 26   )     int  ->  r10        
+;  V05 loc4         [V05,T59] (  4,  2.75)     int  ->  rdx        
+;  V06 loc5         [V06,T04] ( 17, 47   )     int  ->  [rbp-0x2C] 
+;  V07 loc6         [V07,T09] ( 11, 32   )     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def <System.Text.RegularExpressions.RegexNode>
+;  V08 loc7         [V08,T22] (  8, 16   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def <System.Text.RegularExpressions.RegexNode>
+;  V09 loc8         [V09,T19] ( 10, 22.50)     ref  ->  r12         class-hnd single-def <System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]>
+;  V10 loc9         [V10,T16] (  5, 24   )     ref  ->  [rbp-0x78]  class-hnd spill-single-def <System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]>
+;* V11 loc10        [V11,T61] (  0,  0   )     int  ->  zero-ref   
+;  V12 loc11        [V12,T48] (  3,  6   )     ref  ->  [rbp-0x80]  class-hnd exact spill-single-def <System.Text.RegularExpressions.RegexNode>
+;  V13 loc12        [V13,T03] (  3, 48   )   ubyte  ->  r10        
 ;* V14 loc13        [V14    ] (  0,  0   )   ubyte  ->  zero-ref   
-;  V15 loc14        [V15,T23] (  8, 16   )     ref  ->  [rbp-0x80]  class-hnd <System.Text.RegularExpressions.RegexCharClass>
+;  V15 loc14        [V15,T23] (  8, 16   )     ref  ->  [rbp-0x88]  class-hnd <System.Text.RegularExpressions.RegexCharClass>
 ;* V16 loc15        [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.Text.RegularExpressions.RegexCharClass>
 ;# V17 OutArgs      [V17    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V18 tmp1         [V18,T10] (  3, 32   )     int  ->  rdi        
 ;* V19 tmp2         [V19    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "NewObj constructor temp" <System.Text.RegularExpressions.RegexCharClass>
-;  V20 tmp3         [V20,T48] (  3,  6   )     int  ->  rdi        
-;* V21 tmp4         [V21,T58] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V22 tmp5         [V22,T14] (  6, 24   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.String>
-;  V23 tmp6         [V23,T49] (  3,  6   )   ubyte  ->  r14         "Inline return value spill temp"
-;  V24 tmp7         [V24,T15] (  6, 24   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.String>
-;  V25 tmp8         [V25,T31] (  2,  8   )  ushort  ->  [rbp-0x30]  spill-single-def "Inlining Arg"
+;  V20 tmp3         [V20,T52] (  3,  6   )     int  ->  rdi        
+;* V21 tmp4         [V21,T62] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V22 tmp5         [V22,T13] (  6, 24   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.String>
+;  V23 tmp6         [V23,T53] (  3,  6   )   ubyte  ->  r14         "Inline return value spill temp"
+;  V24 tmp7         [V24,T14] (  6, 24   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <System.String>
+;  V25 tmp8         [V25,T33] (  2,  8   )  ushort  ->  [rbp-0x30]  spill-single-def "Inlining Arg"
 ;* V26 tmp9         [V26    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ushort,ushort]>
 ;* V27 tmp10        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
-;  V28 tmp11        [V28,T39] (  2,  8   )     ref  ->  rdi         class-hnd "dup spill" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
+;  V28 tmp11        [V28,T41] (  2,  8   )     ref  ->  rdi         class-hnd "dup spill" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
 ;  V29 tmp12        [V29,T21] (  9, 18   )     ref  ->  rdi        
-;  V30 tmp13        [V30,T25] (  4, 16   )     ref  ->  [rbp-0x88]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
+;  V30 tmp13        [V30,T25] (  4, 16   )     ref  ->  [rbp-0x90]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
 ;* V31 tmp14        [V31    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline stloc first use temp" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
-;  V32 tmp15        [V32,T45] (  3,  6   )     ref  ->   r8         class-hnd exact "Inline stloc first use temp" <System.ValueTuple`2[ushort,ushort][]>
-;  V33 tmp16        [V33,T36] (  4,  8   )     int  ->   r9         "Inline stloc first use temp"
+;  V32 tmp15        [V32,T49] (  3,  6   )     ref  ->   r8         class-hnd exact "Inline stloc first use temp" <System.ValueTuple`2[ushort,ushort][]>
+;  V33 tmp16        [V33,T38] (  4,  8   )     int  ->   r9         "Inline stloc first use temp"
 ;* V34 tmp17        [V34    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.ValueTuple`2[ushort,ushort]>
 ;* V35 tmp18        [V35    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;  V36 tmp19        [V36,T32] (  2,  8   )  ushort  ->  [rbp-0x34]  spill-single-def "Inlining Arg"
+;  V36 tmp19        [V36,T34] (  2,  8   )  ushort  ->  [rbp-0x34]  spill-single-def "Inlining Arg"
 ;* V37 tmp20        [V37    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.ValueTuple`2[ushort,ushort]>
-;  V38 tmp21        [V38,T12] (  7, 28   )     ref  ->  rdi         class-hnd "impAppendStmt" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
-;  V39 tmp22        [V39,T40] (  2,  8   )     ref  ->  rdi         class-hnd "dup spill" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
-;  V40 tmp23        [V40,T35] (  4,  8   )     ref  ->  rdi        
-;  V41 tmp24        [V41,T27] (  3, 12   )     ref  ->  [rbp-0x90]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
-;  V42 tmp25        [V42,T46] (  3,  6   )     ref  ->  [rbp-0x98]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
-;  V43 tmp26        [V43,T47] (  3,  6   )     ref  ->   r8         class-hnd exact "Inline stloc first use temp" <System.ValueTuple`2[ushort,ushort][]>
-;  V44 tmp27        [V44,T37] (  4,  8   )     int  ->   r9         "Inline stloc first use temp"
+;  V38 tmp21        [V38,T11] (  7, 28   )     ref  ->  rdi         class-hnd "impAppendStmt" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
+;  V39 tmp22        [V39,T42] (  2,  8   )     ref  ->  rdi         class-hnd "dup spill" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
+;  V40 tmp23        [V40,T37] (  4,  8   )     ref  ->  rdi        
+;  V41 tmp24        [V41,T30] (  3, 12   )     ref  ->  [rbp-0x98]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
+;  V42 tmp25        [V42,T50] (  3,  6   )     ref  ->  [rbp-0xA0]  class-hnd exact spill-single-def "Inline stloc first use temp" <System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]>
+;  V43 tmp26        [V43,T51] (  3,  6   )     ref  ->   r8         class-hnd exact "Inline stloc first use temp" <System.ValueTuple`2[ushort,ushort][]>
+;  V44 tmp27        [V44,T39] (  4,  8   )     int  ->   r9         "Inline stloc first use temp"
 ;* V45 tmp28        [V45    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.ValueTuple`2[ushort,ushort]>
 ;* V46 tmp29        [V46    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.String>
-;  V47 tmp30        [V47,T41] (  2,  8   )     ref  ->  rax         class-hnd exact "Inlining Arg" <System.String>
-;* V48 tmp31        [V48,T59] (  0,  0   )  ushort  ->  zero-ref    "field V26.Item1 (fldOffset=0x0)" P-INDEP
-;  V49 tmp32        [V49,T33] (  5, 10   )  ushort  ->  rdx         "field V26.Item2 (fldOffset=0x2)" P-INDEP
+;  V47 tmp30        [V47,T43] (  2,  8   )     ref  ->  rax         class-hnd exact "Inlining Arg" <System.String>
+;* V48 tmp31        [V48,T63] (  0,  0   )  ushort  ->  zero-ref    "field V26.Item1 (fldOffset=0x0)" P-INDEP
+;  V49 tmp32        [V49,T35] (  5, 10   )  ushort  ->  rdx         "field V26.Item2 (fldOffset=0x2)" P-INDEP
 ;* V50 tmp33        [V50    ] (  0,  0   )  ushort  ->  zero-ref    "field V34.Item1 (fldOffset=0x0)" P-INDEP
 ;* V51 tmp34        [V51    ] (  0,  0   )  ushort  ->  zero-ref    "field V34.Item2 (fldOffset=0x2)" P-INDEP
-;* V52 tmp35        [V52,T60] (  0,  0   )  ushort  ->  zero-ref    "field V37.Item1 (fldOffset=0x0)" P-INDEP
-;  V53 tmp36        [V53,T53] (  2,  4   )  ushort  ->  rdx         "field V37.Item2 (fldOffset=0x2)" P-INDEP
-;  V54 tmp37        [V54,T54] (  2,  4   )  ushort  ->  rdx         "field V45.Item1 (fldOffset=0x0)" P-INDEP
-;  V55 tmp38        [V55,T34] (  5, 10   )  ushort  ->  rdx         "field V45.Item2 (fldOffset=0x2)" P-INDEP
-;  V56 tmp39        [V56,T18] (  3, 24   )     ref  ->  rdi         "arr expr"
-;  V57 tmp40        [V57,T01] (  3, 96   )     ref  ->  rdi         "arr expr"
-;  V58 tmp41        [V58,T28] (  3, 12   )     ref  ->  rdi         "arr expr"
-;  V59 tmp42        [V59,T16] (  6, 24   )  struct ( 8) [rbp-0x40]  do-not-enreg[SF] "by-value struct argument" <System.ValueTuple`2[ushort,ushort]>
-;  V60 tmp43        [V60,T29] (  3, 12   )   byref  ->  rdi         "BlockOp address local"
-;  V61 tmp44        [V61,T42] (  2,  8   )     ref  ->  rsi         "argument with side effect"
-;  V62 tmp45        [V62,T30] (  3, 12   )   byref  ->  rdi         "BlockOp address local"
-;  V63 cse0         [V63,T02] (  5, 48   )     int  ->  rdi         "CSE #06: aggressive"
-;  V64 cse1         [V64,T07] (  4, 36   )     int  ->  [rbp-0x44]  spill-single-def "CSE #03: moderate"
-;  V65 cse2         [V65,T50] (  3,  6   )     int  ->  rdi         "CSE #23: conservative"
-;  V66 cse3         [V66,T24] (  8, 16   )     int  ->  rsi         multi-def "CSE #07: moderate"
-;  V67 rat0         [V67,T08] ( 11, 33.25)    long  ->  [rbp-0x50]  "Widened IV V05"
-;  V68 rat1         [V68,T00] (  7, 98   )    long  ->  [rbp-0x58]  "Widened IV V11"
-;  V69 rat2         [V69,T51] (  3,  4.50)     ref  ->  rsi         "Spilling to split statement for tree"
-;  V70 rat3         [V70,T43] (  5,  7.50)     ref  ->  r12         "replacement local"
-;  V71 rat4         [V71,T56] (  3,  2.50)    long  ->  rdi         "CSE for expectedClsNode"
-;  V72 rat5         [V72,T38] (  3,  8   )     ref  ->  rsi         "Spilling to split statement for tree"
-;  V73 rat6         [V73,T26] (  4, 14   )     ref  ->  rax         "replacement local"
-;  V74 rat7         [V74,T52] (  3,  4   )    long  ->  rdi         "CSE for expectedClsNode"
+;* V52 tmp35        [V52,T64] (  0,  0   )  ushort  ->  zero-ref    "field V37.Item1 (fldOffset=0x0)" P-INDEP
+;  V53 tmp36        [V53,T57] (  2,  4   )  ushort  ->  rdx         "field V37.Item2 (fldOffset=0x2)" P-INDEP
+;  V54 tmp37        [V54,T58] (  2,  4   )  ushort  ->  rdx         "field V45.Item1 (fldOffset=0x0)" P-INDEP
+;  V55 tmp38        [V55,T36] (  5, 10   )  ushort  ->  rdx         "field V45.Item2 (fldOffset=0x2)" P-INDEP
+;  V56 tmp39        [V56,T17] (  3, 24   )     ref  ->  rdi         "arr expr"
+;  V57 tmp40        [V57,T44] (  2,  8   )     ref  ->  rdi         "arr expr"
+;  V58 tmp41        [V58,T01] (  3, 96   )     ref  ->  rdi         "arr expr"
+;  V59 tmp42        [V59,T45] (  2,  8   )     ref  ->   r8         "arr expr"
+;  V60 tmp43        [V60,T15] (  6, 24   )  struct ( 8) [rbp-0x40]  do-not-enreg[SF] "by-value struct argument" <System.ValueTuple`2[ushort,ushort]>
+;  V61 tmp44        [V61,T31] (  3, 12   )   byref  ->  rdi         "BlockOp address local"
+;  V62 tmp45        [V62,T46] (  2,  8   )     ref  ->  rsi         "argument with side effect"
+;  V63 tmp46        [V63,T32] (  3, 12   )   byref  ->  rdi         "BlockOp address local"
+;  V64 cse0         [V64,T02] (  5, 48   )     int  ->  rdi         "CSE #08: aggressive"
+;  V65 cse1         [V65,T07] (  4, 36   )     int  ->  [rbp-0x44]  spill-single-def "CSE #05: moderate"
+;  V66 cse2         [V66,T28] (  4, 12   )     int  ->  [rbp-0x48]  spill-single-def "CSE #01: moderate"
+;  V67 cse3         [V67,T27] (  4, 12   )     ref  ->  [rbp-0xA8]  spill-single-def "CSE #02: moderate"
+;  V68 cse4         [V68,T54] (  3,  6   )     int  ->  rdi         "CSE #25: conservative"
+;  V69 cse5         [V69,T24] (  8, 16   )     int  ->  r11         multi-def "CSE #09: moderate"
+;  V70 cse6         [V70,T29] (  4, 12   )     int  ->  [rbp-0x4C]  spill-single-def "CSE #03: moderate"
+;  V71 rat0         [V71,T08] ( 11, 33.25)    long  ->  [rbp-0x58]  "Widened IV V05"
+;  V72 rat1         [V72,T00] (  7, 98   )    long  ->  [rbp-0x60]  "Widened IV V11"
+;  V73 rat2         [V73,T55] (  3,  4.50)     ref  ->  rsi         "Spilling to split statement for tree"
+;  V74 rat3         [V74,T47] (  5,  7.50)     ref  ->  r12         "replacement local"
+;  V75 rat4         [V75,T60] (  3,  2.50)    long  ->  rdi         "CSE for expectedClsNode"
+;  V76 rat5         [V76,T40] (  3,  8   )     ref  ->  rsi         "Spilling to split statement for tree"
+;  V77 rat6         [V77,T26] (  4, 14   )     ref  ->  rax         "replacement local"
+;  V78 rat7         [V78,T56] (  3,  4   )    long  ->  rdi         "CSE for expectedClsNode"
 ;
-; Lcl frame size = 120
+; Lcl frame size = 136
 
 G_M52860_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
-       sub      rsp, 120
-       lea      rbp, [rsp+0xA0]
+       sub      rsp, 136
+       lea      rbp, [rsp+0xB0]
        mov      rbx, rdi
-						;; size=25 bbWeight=1 PerfScore 7.00
+						;; size=28 bbWeight=1 PerfScore 7.00
 G_M52860_IG02:
        xor      r15d, r15d
        xor      r14d, r14d
        xor      r13d, r13d
        mov      rsi, gword ptr [rbx+0x08]
        mov      r12, rsi
        test     r12, r12
        je       SHORT G_M52860_IG05
 						;; size=21 bbWeight=1 PerfScore 4.25
 G_M52860_IG03:
        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]
        cmp      qword ptr [r12], rdi
        je       SHORT G_M52860_IG05
 						;; size=16 bbWeight=0.50 PerfScore 2.12
 G_M52860_IG04:
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL
        call     [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL
        mov      r12, rax
 						;; size=15 bbWeight=0.25 PerfScore 0.88
 G_M52860_IG05:
        xor      edx, edx
        xor      eax, eax
        xor      ecx, ecx
        cmp      dword ptr [r12+0x10], 0
        jle      G_M52860_IG47
 						;; size=18 bbWeight=1 PerfScore 4.75
 G_M52860_IG06:
-       cmp      eax, dword ptr [r12+0x10]
+       mov      edx, dword ptr [r12+0x10]
+       mov      dword ptr [rbp-0x48], edx
+       cmp      eax, edx
        jae      G_M52860_IG53
-       mov      rdi, gword ptr [r12+0x08]
-       cmp      eax, dword ptr [rdi+0x08]
+       mov      r8, gword ptr [r12+0x08]
+       mov      gword ptr [rbp-0xA8], r8
+       mov      rdi, r8
+       mov      r9d, dword ptr [rdi+0x08]
+       mov      dword ptr [rbp-0x4C], r9d
+       cmp      eax, r9d
        jae      G_M52860_IG54
-       mov      r8, gword ptr [rdi+8*rax+0x10]
-       mov      gword ptr [rbp-0x60], r8
-       mov      qword ptr [rbp-0x50], rax
+       mov      r10, gword ptr [rdi+8*rax+0x10]
+       mov      rsi, r10
+       mov      gword ptr [rbp-0x68], rsi
+       mov      qword ptr [rbp-0x58], rax
        cmp      ecx, eax
        jge      SHORT G_M52860_IG08
-						;; size=42 bbWeight=4 PerfScore 61.00
+						;; size=68 bbWeight=4 PerfScore 69.00
 G_M52860_IG07:
-       cmp      ecx, dword ptr [r12+0x10]
+       cmp      ecx, edx
        jae      G_M52860_IG53
-       mov      rdi, gword ptr [r12+0x08]
+       mov      rdi, r8
+       movsxd   r10, ecx
+       mov      r11d, r9d
+       cmp      r10, r11
+       jae      G_M52860_IG54
        mov      dword ptr [rbp-0x2C], ecx
-       movsxd   rsi, ecx
-       mov      rdx, r8
-       mov      r9, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST
-       call     [r9]CORINFO_HELP_ARRADDR_ST
+       movsxd   r10, ecx
+       lea      rdi, bword ptr [rdi+8*r10+0x10]
+       call     CORINFO_HELP_ASSIGN_REF
        inc      dword ptr [r12+0x14]
        mov      ecx, dword ptr [rbp-0x2C]
-       mov      r8, gword ptr [rbp-0x60]
-						;; size=50 bbWeight=2 PerfScore 31.50
+       mov      edx, dword ptr [rbp-0x48]
+       mov      rsi, gword ptr [rbp-0x68]
+       mov      r8, gword ptr [rbp-0xA8]
+       mov      r9d, dword ptr [rbp-0x4C]
+						;; size=68 bbWeight=2 PerfScore 29.00
 G_M52860_IG08:
-       movzx    rdi, byte  ptr [r8+0x2E]
+       movzx    rdi, byte  ptr [rsi+0x2E]
        cmp      edi, 24
        je       G_M52860_IG36
 						;; size=14 bbWeight=4 PerfScore 13.00
 G_M52860_IG09:
-       mov      esi, edi
-       cmp      esi, 9
+       mov      r10d, edi
+       cmp      r10d, 9
        je       SHORT G_M52860_IG11
-       cmp      esi, 11
+       cmp      r10d, 11
        je       SHORT G_M52860_IG11
        cmp      edi, 22
        je       G_M52860_IG44
-						;; size=21 bbWeight=16 PerfScore 64.00
+						;; size=24 bbWeight=16 PerfScore 64.00
 G_M52860_IG10:
        xor      r15d, r15d
        xor      r14d, r14d
        jmp      G_M52860_IG45
 						;; size=11 bbWeight=2 PerfScore 5.00
 G_M52860_IG11:
-       mov      edx, dword ptr [r8+0x28]
-       and      edx, 65
+       mov      r10d, dword ptr [rsi+0x28]
+       and      r10d, 65
        cmp      edi, 11
        je       SHORT G_M52860_IG17
-						;; size=12 bbWeight=8 PerfScore 28.00
+						;; size=13 bbWeight=8 PerfScore 28.00
 G_M52860_IG12:
        test     r15d, r15d
        jne      SHORT G_M52860_IG14
 						;; size=5 bbWeight=16 PerfScore 20.00
 G_M52860_IG13:
        mov      edi, 1
        jmp      SHORT G_M52860_IG15
 						;; size=7 bbWeight=8 PerfScore 18.00
 G_M52860_IG14:
-       cmp      r13d, edx
+       cmp      r13d, r10d
        setne    dil
        movzx    rdi, dil
 						;; size=11 bbWeight=8 PerfScore 12.00
 G_M52860_IG15:
        or       edi, r14d
        je       G_M52860_IG22
        mov      r15d, 1
        xor      r14d, r14d
 						;; size=18 bbWeight=16 PerfScore 28.00
 G_M52860_IG16:
-       mov      r13d, edx
+       mov      r13d, r10d
        jmp      G_M52860_IG45
 						;; size=8 bbWeight=8 PerfScore 18.00
 G_M52860_IG17:
        test     r15d, r15d
        jne      SHORT G_M52860_IG18
        mov      edi, 1
        jmp      SHORT G_M52860_IG19
 						;; size=12 bbWeight=2 PerfScore 7.00
 G_M52860_IG18:
-       cmp      r13d, edx
+       cmp      r13d, r10d
        setne    dil
        movzx    rdi, dil
 						;; size=11 bbWeight=2 PerfScore 3.00
 G_M52860_IG19:
        or       edi, r14d
        jne      SHORT G_M52860_IG20
-       mov      rdi, gword ptr [r8+0x10]
+       mov      rdi, gword ptr [rsi+0x10]
        test     rdi, rdi
        je       SHORT G_M52860_IG20
-       mov      esi, dword ptr [rdi+0x08]
-       test     esi, esi
+       mov      r11d, dword ptr [rdi+0x08]
+       test     r11d, r11d
        je       G_M52860_IG54
        cmp      word  ptr [rdi+0x0C], 1
        jne      SHORT G_M52860_IG21
-						;; size=32 bbWeight=2 PerfScore 23.50
+						;; size=34 bbWeight=2 PerfScore 23.50
 G_M52860_IG20:
        mov      r15d, 1
-       mov      rdi, gword ptr [r8+0x10]
+       mov      rdi, gword ptr [rsi+0x10]
        test     rdi, rdi
        je       G_M52860_IG34
-       mov      esi, dword ptr [rdi+0x08]
-       test     esi, esi
+       mov      r11d, dword ptr [rdi+0x08]
+       test     r11d, r11d
        je       G_M52860_IG54
        cmp      word  ptr [rdi+0x0C], 1
        je       G_M52860_IG34
-       cmp      esi, 2
+       cmp      r11d, 2
        jbe      G_M52860_IG54
-       movzx    r8, word  ptr [rdi+0x10]
-       movzx    rdi, word  ptr [rdi+0x0E]
-       lea      edi, [r8+rdi+0x03]
-       cmp      edi, esi
+       movzx    rdx, word  ptr [rdi+0x10]
+       movzx    r8, word  ptr [rdi+0x0E]
+       lea      r9d, [rdx+r8+0x03]
+       cmp      r9d, r11d
        setge    r14b
        movzx    r14, r14b
        jmp      G_M52860_IG35
-						;; size=79 bbWeight=2 PerfScore 41.00
+						;; size=83 bbWeight=2 PerfScore 41.00
 G_M52860_IG21:
-       cmp      esi, 2
+       cmp      r11d, 2
        jbe      G_M52860_IG54
        movzx    r9, word  ptr [rdi+0x10]
        movzx    rdi, word  ptr [rdi+0x0E]
        lea      edi, [r9+rdi+0x03]
-       cmp      edi, esi
+       cmp      edi, r11d
+       mov      r9d, dword ptr [rbp-0x4C]
        jl       SHORT G_M52860_IG20
-						;; size=27 bbWeight=2 PerfScore 15.00
+						;; size=33 bbWeight=2 PerfScore 17.00
 G_M52860_IG22:
        dec      ecx
-       cmp      ecx, dword ptr [r12+0x10]
+       cmp      ecx, edx
        jae      G_M52860_IG53
-       mov      rdi, gword ptr [r12+0x08]
-       cmp      ecx, dword ptr [rdi+0x08]
+       cmp      ecx, r9d
        jae      G_M52860_IG54
        mov      dword ptr [rbp-0x2C], ecx
-       mov      esi, ecx
-       mov      rdx, gword ptr [rdi+8*rsi+0x10]
-       mov      gword ptr [rbp-0x68], rdx
+       mov      edi, ecx
+       mov      rdx, gword ptr [r8+8*rdi+0x10]
+       mov      gword ptr [rbp-0x70], rdx
        cmp      byte  ptr [rdx+0x2E], 9
        je       SHORT G_M52860_IG23
        mov      rdi, gword ptr [rdx+0x10]
        xor      esi, esi
-       mov      r9, 0xD1FFAB1E      ; code for System.Text.RegularExpressions.RegexCharClass:ParseRecursive(System.String,int):System.Text.RegularExpressions.RegexCharClass
-       call     [r9]System.Text.RegularExpressions.RegexCharClass:ParseRecursive(System.String,int):System.Text.RegularExpressions.RegexCharClass
+       mov      r8, 0xD1FFAB1E      ; code for System.Text.RegularExpressions.RegexCharClass:ParseRecursive(System.String,int):System.Text.RegularExpressions.RegexCharClass
+       call     [r8]System.Text.RegularExpressions.RegexCharClass:ParseRecursive(System.String,int):System.Text.RegularExpressions.RegexCharClass
        jmp      G_M52860_IG26
-						;; size=71 bbWeight=2 PerfScore 52.00
+						;; size=63 bbWeight=2 PerfScore 37.00
 G_M52860_IG23:
        mov      rdi, 0xD1FFAB1E      ; System.Text.RegularExpressions.RegexCharClass
        call     CORINFO_HELP_NEWSFAST
-       mov      rcx, gword ptr [rbp-0x68]
+       mov      rcx, gword ptr [rbp-0x70]
        movzx    rdx, word  ptr [rcx+0x2C]
        mov      dword ptr [rbp-0x30], edx
-       mov      gword ptr [rbp-0x80], rax
+       mov      gword ptr [rbp-0x88], rax
        mov      rdi, gword ptr [rax+0x08]
        test     rdi, rdi
        jne      SHORT G_M52860_IG24
        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]
        call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x88], rax
+       mov      gword ptr [rbp-0x90], rax
        mov      rdi, 0xD1FFAB1E      ; System.ValueTuple`2[ushort,ushort][]
        mov      esi, 6
        call     CORINFO_HELP_NEWARR_1_VC
-       mov      rdi, gword ptr [rbp-0x88]
+       mov      rdi, gword ptr [rbp-0x90]
        lea      rdi, bword ptr [rdi+0x08]
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
-       mov      rax, gword ptr [rbp-0x80]
+       mov      rax, gword ptr [rbp-0x88]
        lea      rdi, bword ptr [rax+0x08]
-       mov      rsi, gword ptr [rbp-0x88]
+       mov      rsi, gword ptr [rbp-0x90]
        call     CORINFO_HELP_ASSIGN_REF
-       mov      rdi, gword ptr [rbp-0x88]
-						;; size=127 bbWeight=2 PerfScore 41.00
+       mov      rdi, gword ptr [rbp-0x90]
+						;; size=133 bbWeight=2 PerfScore 41.00
 G_M52860_IG24:
        mov      edx, dword ptr [rbp-0x30]
        inc      dword ptr [rdi+0x14]
        mov      r8, gword ptr [rdi+0x08]
        mov      r9d, dword ptr [rdi+0x10]
        cmp      dword ptr [r8+0x08], r9d
        ja       SHORT G_M52860_IG25
        mov      word  ptr [rbp-0x40], dx
        mov      word  ptr [rbp-0x3E], dx
        mov      esi, dword ptr [rbp-0x40]
        mov      rdx, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]:AddWithResize(System.ValueTuple`2[ushort,ushort]):this
        call     [rdx]System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]:AddWithResize(System.ValueTuple`2[ushort,ushort]):this
-       mov      rax, gword ptr [rbp-0x80]
+       mov      rax, gword ptr [rbp-0x88]
        jmp      SHORT G_M52860_IG26
-						;; size=49 bbWeight=2 PerfScore 42.50
+						;; size=52 bbWeight=2 PerfScore 42.50
 G_M52860_IG25:
        lea      esi, [r9+0x01]
        mov      dword ptr [rdi+0x10], esi
        mov      edi, r9d
        lea      rdi, bword ptr [r8+4*rdi+0x10]
        mov      word  ptr [rdi], dx
        mov      word  ptr [rdi+0x02], dx
-       mov      rax, gword ptr [rbp-0x80]
-						;; size=26 bbWeight=2 PerfScore 11.50
+       mov      rax, gword ptr [rbp-0x88]
+						;; size=29 bbWeight=2 PerfScore 11.50
 G_M52860_IG26:
-       mov      rdx, gword ptr [rbp-0x60]
+       mov      rdx, gword ptr [rbp-0x68]
        cmp      byte  ptr [rdx+0x2E], 9
        je       SHORT G_M52860_IG27
-       mov      gword ptr [rbp-0x80], rax
+       mov      gword ptr [rbp-0x88], rax
        mov      rdi, gword ptr [rdx+0x10]
        xor      esi, esi
        mov      rdx, 0xD1FFAB1E      ; code for System.Text.RegularExpressions.RegexCharClass:ParseRecursive(System.String,int):System.Text.RegularExpressions.RegexCharClass
        call     [rdx]System.Text.RegularExpressions.RegexCharClass:ParseRecursive(System.String,int):System.Text.RegularExpressions.RegexCharClass
        mov      rsi, rax
-       mov      rdi, gword ptr [rbp-0x80]
+       mov      rdi, gword ptr [rbp-0x88]
        mov      rax, 0xD1FFAB1E      ; code for System.Text.RegularExpressions.RegexCharClass:AddCharClass(System.Text.RegularExpressions.RegexCharClass):this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Text.RegularExpressions.RegexCharClass:AddCharClass(System.Text.RegularExpressions.RegexCharClass):this
-       mov      rax, gword ptr [rbp-0x80]
+       mov      rax, gword ptr [rbp-0x88]
        jmp      G_M52860_IG32
-						;; size=62 bbWeight=2 PerfScore 44.00
+						;; size=71 bbWeight=2 PerfScore 44.00
 G_M52860_IG27:
        movzx    rdx, word  ptr [rdx+0x2C]
        mov      dword ptr [rbp-0x34], edx
-       mov      gword ptr [rbp-0x80], rax
+       mov      gword ptr [rbp-0x88], rax
        mov      rdi, gword ptr [rax+0x08]
        test     rdi, rdi
        jne      G_M52860_IG29
        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]
        call     CORINFO_HELP_NEWSFAST
-       mov      gword ptr [rbp-0x90], rax
+       mov      gword ptr [rbp-0x98], rax
        mov      rdi, 0xD1FFAB1E      ; System.ValueTuple`2[ushort,ushort][]
        mov      esi, 6
        call     CORINFO_HELP_NEWARR_1_VC
-       mov      rcx, gword ptr [rbp-0x90]
+       mov      rcx, gword ptr [rbp-0x98]
        lea      rdi, bword ptr [rcx+0x08]
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
-       mov      rax, gword ptr [rbp-0x90]
-       mov      gword ptr [rbp-0x98], rax
-       mov      rax, gword ptr [rbp-0x80]
+       mov      rax, gword ptr [rbp-0x98]
+       mov      gword ptr [rbp-0xA0], rax
+       mov      rax, gword ptr [rbp-0x88]
        lea      rdi, bword ptr [rax+0x08]
-       mov      rsi, gword ptr [rbp-0x98]
+       mov      rsi, gword ptr [rbp-0xA0]
        call     CORINFO_HELP_ASSIGN_REF
-       mov      rdi, gword ptr [rbp-0x98]
-       mov      rax, gword ptr [rbp-0x80]
-						;; size=130 bbWeight=2 PerfScore 42.50
+       mov      rdi, gword ptr [rbp-0xA0]
+       mov      rax, gword ptr [rbp-0x88]
+						;; size=139 bbWeight=2 PerfScore 42.50
 G_M52860_IG28:
        mov      edx, dword ptr [rbp-0x34]
        inc      dword ptr [rdi+0x14]
        mov      r8, gword ptr [rdi+0x08]
        mov      r9d, dword ptr [rdi+0x10]
        cmp      dword ptr [r8+0x08], r9d
        jbe      SHORT G_M52860_IG30
        jmp      SHORT G_M52860_IG31
 						;; size=22 bbWeight=2 PerfScore 28.00
 G_M52860_IG29:
-       mov      rax, gword ptr [rbp-0x80]
+       mov      rax, gword ptr [rbp-0x88]
        jmp      SHORT G_M52860_IG28
        align    [0 bytes for IG40]
-						;; size=6 bbWeight=1 PerfScore 3.00
+						;; size=9 bbWeight=1 PerfScore 3.00
 G_M52860_IG30:
-       mov      gword ptr [rbp-0x80], rax
+       mov      gword ptr [rbp-0x88], rax
        mov      word  ptr [rbp-0x40], dx
        mov      word  ptr [rbp-0x3E], dx
        mov      esi, dword ptr [rbp-0x40]
        mov      rdx, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]:AddWithResize(System.ValueTuple`2[ushort,ushort]):this
        call     [rdx]System.Collections.Generic.List`1[System.ValueTuple`2[ushort,ushort]]:AddWithResize(System.ValueTuple`2[ushort,ushort]):this
-       mov      rax, gword ptr [rbp-0x80]
+       mov      rax, gword ptr [rbp-0x88]
        jmp      SHORT G_M52860_IG32
-						;; size=33 bbWeight=2 PerfScore 20.50
+						;; size=39 bbWeight=2 PerfScore 20.50
 G_M52860_IG31:
        lea      esi, [r9+0x01]
        mov      dword ptr [rdi+0x10], esi
        mov      edi, r9d
        lea      rdi, bword ptr [r8+4*rdi+0x10]
        mov      word  ptr [rdi], dx
        mov      word  ptr [rdi+0x02], dx
 						;; size=22 bbWeight=2 PerfScore 9.50
 G_M52860_IG32:
-       mov      rcx, gword ptr [rbp-0x68]
+       mov      rcx, gword ptr [rbp-0x70]
        mov      byte  ptr [rcx+0x2E], 11
        mov      rdi, rax
        mov      rax, 0xD1FFAB1E      ; code for System.Text.RegularExpressions.RegexCharClass:ToStringClass():System.String:this
        call     [rax]System.Text.RegularExpressions.RegexCharClass:ToStringClass():System.String:this
-       mov      rcx, gword ptr [rbp-0x68]
+       mov      rcx, gword ptr [rbp-0x70]
        lea      rdi, bword ptr [rcx+0x10]
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
-       mov      rsi, gword ptr [rbp-0x68]
+       mov      rsi, gword ptr [rbp-0x70]
        mov      edi, dword ptr [rsi+0x28]
        test     dil, 1
        je       SHORT G_M52860_IG33
        and      edi, -2
        mov      dword ptr [rsi+0x28], edi
        mov      ecx, dword ptr [rbp-0x2C]
        jmp      G_M52860_IG45
 						;; size=66 bbWeight=2 PerfScore 33.50
 G_M52860_IG33:
        mov      ecx, dword ptr [rbp-0x2C]
        jmp      G_M52860_IG45
 						;; size=8 bbWeight=1 PerfScore 3.00
 G_M52860_IG34:
        xor      r14d, r14d
 						;; size=3 bbWeight=2 PerfScore 0.50
 G_M52860_IG35:
        test     r14d, r14d
        sete     r14b
        movzx    r14, r14b
        jmp      G_M52860_IG16
 						;; size=16 bbWeight=2 PerfScore 7.00
 G_M52860_IG36:
        mov      dword ptr [rbp-0x2C], ecx
-       mov      rsi, gword ptr [r8+0x08]
+       mov      rsi, gword ptr [rsi+0x08]
        mov      rdi, 0xD1FFAB1E      ; System.Collections.Generic.List`1[System.Text.RegularExpressions.RegexNode]
        mov      rdx, 0xD1FFAB1E      ; code for CORINFO_HELP_ISINSTANCEOFCLASS
        call     [rdx]CORINFO_HELP_ISINSTANCEOFCLASS
-       mov      gword ptr [rbp-0x70], rax
+       mov      gword ptr [rbp-0x78], rax
        test     rax, rax
        jne      SHORT G_M52860_IG39
-       mov      rdi, gword ptr [rbp-0x60]
-       mov      rsi, gword ptr [rdi+0x08]
+       mov      rsi, gword ptr [rbp-0x68]
+       mov      rsi, gword ptr [rsi+0x08]
        mov      rax, rsi
        test     rax, rax
        je       SHORT G_M52860_IG38
 						;; size=54 bbWeight=2 PerfScore 26.50
 G_M52860_IG37:
        mov      rdi, 0xD1FFAB1E      ; System.Text.RegularExpressions.RegexNode
        cmp      qword ptr [rax], rdi
        jne      G_M52860_IG52
 						;; size=19 bbWeight=1 PerfScore 4.25
 G_M52860_IG38:
-       mov      gword ptr [rbp-0x78], rax
+       mov      gword ptr [rbp-0x80], rax
        lea      rdi, bword ptr [rax+0x18]
        mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
-       mov      rax, qword ptr [rbp-0x50]
+       mov      rax, qword ptr [rbp-0x58]
        lea      esi, [rax+0x01]
        mov      rdi, r12
-       mov      rdx, gword ptr [rbp-0x78]
+       mov      rdx, gword ptr [rbp-0x80]
        mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.__Canon]:Insert(int,System.__Canon):this
        call     [rcx]System.Collections.Generic.List`1[System.__Canon]:Insert(int,System.__Canon):this
        mov      ecx, dword ptr [rbp-0x2C]
        jmp      SHORT G_M52860_IG44
 						;; size=47 bbWeight=2 PerfScore 23.50
 G_M52860_IG39:
        xor      ecx, ecx
        mov      edx, dword ptr [rax+0x10]
        mov      dword ptr [rbp-0x44], edx
        test     edx, edx
        jle      SHORT G_M52860_IG41
 						;; size=12 bbWeight=2 PerfScore 9.00
 G_M52860_IG40:
        cmp      ecx, edx
        jb       SHORT G_M52860_IG42
        jmp      G_M52860_IG53
 						;; size=9 bbWeight=16 PerfScore 52.00
 G_M52860_IG41:
        jmp      SHORT G_M52860_IG43
 						;; size=2 bbWeight=1 PerfScore 2.00
 G_M52860_IG42:
        mov      rdi, gword ptr [rax+0x08]
        cmp      ecx, dword ptr [rdi+0x08]
        jae      G_M52860_IG54
-       mov      qword ptr [rbp-0x58], rcx
+       mov      qword ptr [rbp-0x60], rcx
        mov      rdi, gword ptr [rdi+8*rcx+0x10]
        lea      rdi, bword ptr [rdi+0x18]
        mov      rsi, rbx
        call     CORINFO_HELP_ASSIGN_REF
-       mov      rsi, qword ptr [rbp-0x58]
+       mov      rsi, qword ptr [rbp-0x60]
        inc      esi
        mov      edi, dword ptr [rbp-0x44]
        cmp      esi, edi
        mov      rcx, rsi
        mov      edx, edi
        jl       SHORT G_M52860_IG51
 						;; size=52 bbWeight=16 PerfScore 236.00
 G_M52860_IG43:
-       mov      rax, qword ptr [rbp-0x50]
+       mov      rax, qword ptr [rbp-0x58]
        lea      esi, [rax+0x01]
        mov      rdi, r12
-       mov      rdx, gword ptr [rbp-0x70]
+       mov      rdx, gword ptr [rbp-0x78]
        mov      rcx, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.__Canon]:InsertRange(int,System.Collections.Generic.IEnumerable`1[System.__Canon]):this
        call     [rcx]System.Collections.Generic.List`1[System.__Canon]:InsertRange(int,System.Collections.Generic.IEnumerable`1[System.__Canon]):this
        mov      ecx, dword ptr [rbp-0x2C]
 						;; size=29 bbWeight=2 PerfScore 14.00
 G_M52860_IG44:
        dec      ecx
 						;; size=2 bbWeight=8 PerfScore 2.00
 G_M52860_IG45:
-       mov      rax, qword ptr [rbp-0x50]
+       mov      rax, qword ptr [rbp-0x58]
        inc      eax
        mov      rdx, rax
        inc      ecx
        cmp      edx, dword ptr [r12+0x10]
        mov      rax, rdx
        jl       G_M52860_IG06
 						;; size=25 bbWeight=4 PerfScore 24.00
 G_M52860_IG46:
        mov      edx, eax
 						;; size=2 bbWeight=0.25 PerfScore 0.06
 G_M52860_IG47:
        cmp      ecx, edx
        jge      SHORT G_M52860_IG49
 						;; size=4 bbWeight=1 PerfScore 1.25
 G_M52860_IG48:
        sub      edx, ecx
        mov      rdi, r12
        mov      esi, ecx
        mov      rax, 0xD1FFAB1E      ; code for System.Collections.Generic.List`1[System.__Canon]:RemoveRange(int,int):this
        call     [rax]System.Collections.Generic.List`1[System.__Canon]:RemoveRange(int,int):this
 						;; size=19 bbWeight=0.50 PerfScore 2.00
 G_M52860_IG49:
        nop      
 						;; size=1 bbWeight=1 PerfScore 0.25
 G_M52860_IG50:
-       add      rsp, 120
+       add      rsp, 136
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-						;; size=15 bbWeight=1 PerfScore 4.25
+						;; size=18 bbWeight=1 PerfScore 4.25
 G_M52860_IG51:
-       mov      rax, gword ptr [rbp-0x70]
+       mov      rax, gword ptr [rbp-0x78]
        jmp      G_M52860_IG40
 						;; size=9 bbWeight=8 PerfScore 24.00
 G_M52860_IG52:
        mov      rax, 0xD1FFAB1E      ; code for CORINFO_HELP_CHKCASTCLASS
        call     [rax]CORINFO_HELP_CHKCASTCLASS
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M52860_IG53:
        mov      rax, 0xD1FFAB1E      ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
        call     [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException()
        int3     
 						;; size=13 bbWeight=0 PerfScore 0.00
 G_M52860_IG54:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1429, prolog size 25, PerfScore 1170.56, instruction count 362, allocated bytes for code 1429 (MethodHash=f4b73183) for method System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ReduceSingleLetterAndNestedAlternations|42_0():this (FullOpts)
+; Total bytes of code 1526, prolog size 28, PerfScore 1163.06, instruction count 375, allocated bytes for code 1526 (MethodHash=f4b73183) for method System.Text.RegularExpressions.RegexNode:<ReduceAlternation>g__ReduceSingleLetterAndNestedAlternations|42_0():this (FullOpts)

Larger list of diffs: https://gist.github.com/MihuBot/5992eca0ba699cc84a8d8469e093b6b8

@MihuBot
Copy link
Owner Author

MihuBot commented Aug 29, 2024

Top method improvements

-90 (-2.88 % of base) - System.Xml.DtdParser:ScanAttlist6():int:this
 ; Assembly listing for method System.Xml.DtdParser:ScanAttlist6():int:this (FullOpts)
 ; Emitting BLENDED_CODE for X64 with AVX - Unix
 ; FullOpts code
 ; optimized code
 ; rbp based frame
 ; partially interruptible
 ; No PGO data
 ; 0 inlinees with PGO data; 74 single block inlinees; 8 inlinees without PGO data
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] ( 57,109   )     ref  ->  rbx         this class-hnd single-def <System.Xml.DtdParser>
 ;  V01 loc0         [V01,T12] (  4, 22   )  ushort  ->  r12        
 ;  V02 loc1         [V02,T34] (  4,  8   )  ushort  ->  r12        
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V04 tmp1         [V04,T18] (  2, 16   )     int  ->  r15         "impAppendStmt"
 ;  V05 tmp2         [V05,T105] (  2,  2   )     int  ->  r14         "impAppendStmt"
 ;  V06 tmp3         [V06,T106] (  2,  2   )     int  ->  r12         "impAppendStmt"
 ;  V07 tmp4         [V07,T43] (  2,  8   )     int  ->  r15         "impAppendStmt"
 ;  V08 tmp5         [V08,T107] (  2,  2   )     int  ->  r14         "impAppendStmt"
 ;  V09 tmp6         [V09,T44] (  2,  8   )     int  ->  r15         "impAppendStmt"
 ;  V10 tmp7         [V10,T56] (  3,  3   )     ref  ->  r15         class-hnd exact "Inlining Arg" <System.String>
 ;  V11 tmp8         [V11,T79] (  4,  2   )     ref  ->  r14         class-hnd "Inline stloc first use temp" <System.Uri>
 ;  V12 tmp9         [V12,T82] (  2,  2   )     ref  ->  r13         class-hnd "impAppendStmt" <System.Xml.IDtdParserAdapter>
 ;  V13 tmp10        [V13,T59] (  3,  3   )     int  ->  r12         "impAppendStmt"
 ;* V14 tmp11        [V14    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V15 tmp12        [V15    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V16 tmp13        [V16    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V17 tmp14        [V17    ] (  0,  0   )     int  ->  zero-ref   
 ;  V18 tmp15        [V18,T118] (  3,  1.50)     int  ->  [rbp-0x2C]  spill-single-def
 ;* V19 tmp16        [V19    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V20 tmp17        [V20    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V21 tmp18        [V21    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V22 tmp19        [V22    ] (  0,  0   )     int  ->  zero-ref   
 ;* V23 tmp20        [V23    ] (  0,  0   )     int  ->  zero-ref   
 ;  V24 tmp21        [V24,T112] (  3,  1.50)     ref  ->  r14        
 ;  V25 tmp22        [V25,T29] ( 11, 11   )     ref  ->  [rbp-0x60]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.XmlException>
 ;  V26 tmp23        [V26,T108] (  2,  2   )     int  ->  [rbp-0x30]  spill-single-def "non-inline candidate call"
 ;  V27 tmp24        [V27,T53] (  4,  4   )     ref  ->  [rbp-0x68]  class-hnd exact spill-single-def "dup spill" <System.String[]>
 ;  V28 tmp25        [V28,T83] (  2,  2   )     ref  ->  rax         class-hnd exact "Inlining Arg" <System.String>
 ;  V29 tmp26        [V29,T57] (  3,  3   )     ref  ->  r14         class-hnd exact "Inlining Arg" <System.String>
 ;  V30 tmp27        [V30,T80] (  4,  2   )     ref  ->  r15         class-hnd "Inline stloc first use temp" <System.Uri>
 ;  V31 tmp28        [V31,T84] (  2,  2   )     ref  ->  r13         class-hnd "impAppendStmt" <System.Xml.IDtdParserAdapter>
 ;  V32 tmp29        [V32,T60] (  3,  3   )     int  ->  r12         "impAppendStmt"
 ;* V33 tmp30        [V33    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V34 tmp31        [V34    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V35 tmp32        [V35    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V36 tmp33        [V36    ] (  0,  0   )     int  ->  zero-ref   
 ;  V37 tmp34        [V37,T119] (  3,  1.50)     int  ->  [rbp-0x34]  spill-single-def
 ;* V38 tmp35        [V38    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V39 tmp36        [V39    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V40 tmp37        [V40    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V41 tmp38        [V41    ] (  0,  0   )     int  ->  zero-ref   
 ;* V42 tmp39        [V42    ] (  0,  0   )     int  ->  zero-ref   
 ;  V43 tmp40        [V43,T113] (  3,  1.50)     ref  ->  r15        
 ;  V44 tmp41        [V44,T30] ( 11, 11   )     ref  ->  [rbp-0x70]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.XmlException>
 ;  V45 tmp42        [V45,T109] (  2,  2   )     int  ->  [rbp-0x38]  spill-single-def "non-inline candidate call"
 ;  V46 tmp43        [V46,T54] (  4,  4   )     ref  ->  [rbp-0x78]  class-hnd exact spill-single-def "dup spill" <System.String[]>
 ;  V47 tmp44        [V47,T85] (  2,  2   )     ref  ->  rax         class-hnd exact "Inlining Arg" <System.String>
 ;  V48 tmp45        [V48,T58] (  3,  3   )     ref  ->  r12         class-hnd exact "Inlining Arg" <System.String>
 ;  V49 tmp46        [V49,T81] (  4,  2   )     ref  ->  r13         class-hnd "Inline stloc first use temp" <System.Uri>
 ;  V50 tmp47        [V50,T86] (  2,  2   )     ref  ->  r15         class-hnd "impAppendStmt" <System.Xml.IDtdParserAdapter>
 ;  V51 tmp48        [V51,T61] (  3,  3   )     int  ->  r14         "impAppendStmt"
 ;* V52 tmp49        [V52    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V53 tmp50        [V53    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V54 tmp51        [V54    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V55 tmp52        [V55    ] (  0,  0   )     int  ->  zero-ref   
 ;  V56 tmp53        [V56,T120] (  3,  1.50)     int  ->  [rbp-0x3C]  spill-single-def
 ;* V57 tmp54        [V57    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V58 tmp55        [V58    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V59 tmp56        [V59    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V60 tmp57        [V60    ] (  0,  0   )     int  ->  zero-ref   
 ;* V61 tmp58        [V61    ] (  0,  0   )     int  ->  zero-ref   
 ;  V62 tmp59        [V62,T114] (  3,  1.50)     ref  ->  r13        
 ;  V63 tmp60        [V63,T31] ( 11, 11   )     ref  ->  [rbp-0x80]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.XmlException>
 ;  V64 tmp61        [V64,T110] (  2,  2   )     int  ->  [rbp-0x40]  spill-single-def "non-inline candidate call"
 ;  V65 tmp62        [V65,T55] (  4,  4   )     ref  ->  [rbp-0x88]  class-hnd exact spill-single-def "dup spill" <System.String[]>
 ;  V66 tmp63        [V66,T87] (  2,  2   )     ref  ->  rax         class-hnd exact "Inlining Arg" <System.String>
 ;  V67 tmp64        [V67,T22] (  3, 12   )     ref  ->  r14         class-hnd exact "Inlining Arg" <System.String>
 ;  V68 tmp65        [V68,T32] (  4,  8   )     ref  ->  r13         class-hnd "Inline stloc first use temp" <System.Uri>
 ;  V69 tmp66        [V69,T38] (  2,  8   )     ref  ->  r15         class-hnd "impAppendStmt" <System.Xml.IDtdParserAdapter>
 ;  V70 tmp67        [V70,T25] (  3, 12   )     int  ->  r12         "impAppendStmt"
 ;* V71 tmp68        [V71    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V72 tmp69        [V72    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V73 tmp70        [V73    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V74 tmp71        [V74    ] (  0,  0   )     int  ->  zero-ref   
 ;  V75 tmp72        [V75,T51] (  3,  6   )     int  ->  [rbp-0x44]  spill-single-def
 ;* V76 tmp73        [V76    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V77 tmp74        [V77    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V78 tmp75        [V78    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V79 tmp76        [V79    ] (  0,  0   )     int  ->  zero-ref   
 ;* V80 tmp77        [V80    ] (  0,  0   )     int  ->  zero-ref   
 ;  V81 tmp78        [V81,T47] (  3,  6   )     ref  ->  r13        
 ;  V82 tmp79        [V82,T04] ( 11, 44   )     ref  ->  [rbp-0x90]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.XmlException>
 ;  V83 tmp80        [V83,T45] (  2,  8   )     int  ->  [rbp-0x48]  spill-single-def "non-inline candidate call"
 ;  V84 tmp81        [V84,T13] (  4, 16   )     ref  ->  [rbp-0x98]  class-hnd exact spill-single-def "dup spill" <System.String[]>
 ;  V85 tmp82        [V85,T39] (  2,  8   )     ref  ->  rax         class-hnd exact "Inlining Arg" <System.String>
 ;  V86 tmp83        [V86,T23] (  3, 12   )     ref  ->  r14         class-hnd exact "Inlining Arg" <System.String>
 ;  V87 tmp84        [V87,T33] (  4,  8   )     ref  ->  r15         class-hnd "Inline stloc first use temp" <System.Uri>
 ;  V88 tmp85        [V88,T40] (  2,  8   )     ref  ->  r13         class-hnd "impAppendStmt" <System.Xml.IDtdParserAdapter>
 ;  V89 tmp86        [V89,T26] (  3, 12   )     int  ->  r12         "impAppendStmt"
 ;* V90 tmp87        [V90    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V91 tmp88        [V91    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V92 tmp89        [V92    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V93 tmp90        [V93    ] (  0,  0   )     int  ->  zero-ref   
 ;  V94 tmp91        [V94,T52] (  3,  6   )     int  ->  [rbp-0x4C]  spill-single-def
 ;* V95 tmp92        [V95    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V96 tmp93        [V96    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V97 tmp94        [V97    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V98 tmp95        [V98    ] (  0,  0   )     int  ->  zero-ref   
 ;* V99 tmp96        [V99    ] (  0,  0   )     int  ->  zero-ref   
 ;  V100 tmp97       [V100,T48] (  3,  6   )     ref  ->  r15        
 ;  V101 tmp98       [V101,T05] ( 11, 44   )     ref  ->  [rbp-0xA0]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.XmlException>
 ;  V102 tmp99       [V102,T46] (  2,  8   )     int  ->  [rbp-0x50]  spill-single-def "non-inline candidate call"
 ;  V103 tmp100      [V103,T14] (  4, 16   )     ref  ->  [rbp-0xA8]  class-hnd exact spill-single-def "dup spill" <System.String[]>
 ;  V104 tmp101      [V104,T41] (  2,  8   )     ref  ->  rax         class-hnd exact "Inlining Arg" <System.String>
 ;  V105 tmp102      [V105,T19] (  2, 16   )     int  ->  r15         "impAppendStmt"
 ;  V106 tmp103      [V106,T35] (  4,  8   )     int  ->  rax         "Inline stloc first use temp"
 ;  V107 tmp104      [V107,T15] (  3, 16   )     int  ->  r15         "Inlining Arg"
 ;* V108 tmp105      [V108,T111] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;  V109 tmp106      [V109,T10] (  3, 24   )     ref  ->  r14         class-hnd exact "Inlining Arg" <System.String>
 ;  V110 tmp107      [V110,T21] (  4, 12   )     ref  ->  r15         class-hnd "Inline stloc first use temp" <System.Uri>
 ;  V111 tmp108      [V111,T16] (  2, 16   )     ref  ->  r13         class-hnd "impAppendStmt" <System.Xml.IDtdParserAdapter>
 ;  V112 tmp109      [V112,T11] (  3, 24   )     int  ->  r12         "impAppendStmt"
 ;* V113 tmp110      [V113    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V114 tmp111      [V114    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V115 tmp112      [V115    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V116 tmp113      [V116    ] (  0,  0   )     int  ->  zero-ref   
 ;  V117 tmp114      [V117,T27] (  3, 12   )     int  ->  [rbp-0x54]  spill-single-def
 ;* V118 tmp115      [V118    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V119 tmp116      [V119    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V120 tmp117      [V120    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V121 tmp118      [V121    ] (  0,  0   )     int  ->  zero-ref   
 ;* V122 tmp119      [V122    ] (  0,  0   )     int  ->  zero-ref   
 ;  V123 tmp120      [V123,T37] (  3,  8   )     ref  ->  r15        
 ;  V124 tmp121      [V124,T01] ( 11, 88   )     ref  ->  [rbp-0xB0]  class-hnd exact spill-single-def "NewObj constructor temp" <System.Xml.XmlException>
 ;  V125 tmp122      [V125,T20] (  2, 16   )     int  ->  [rbp-0x58]  spill-single-def "non-inline candidate call"
 ;  V126 tmp123      [V126,T07] (  4, 32   )     ref  ->  [rbp-0xB8]  class-hnd exact spill-single-def "dup spill" <System.String[]>
 ;  V127 tmp124      [V127,T17] (  2, 16   )     ref  ->  rax         class-hnd exact "Inlining Arg" <System.String>
 ;  V128 tmp125      [V128,T02] (  3, 48   )     ref  ->  rdi         "arr expr"
 ;  V129 tmp126      [V129,T03] (  3, 48   )     int  ->  rax         "index expr"
 ;  V130 tmp127      [V130,T42] (  2,  8   )     ref  ->  rdi         "arr expr"
 ;  V131 tmp128      [V131,T28] (  3, 12   )     int  ->  rcx         "index expr"
 ;  V132 tmp129      [V132,T88] (  2,  2   )     ref  ->  rdi         "arr expr"
 ;  V133 tmp130      [V133,T62] (  3,  3   )     int  ->  rax         "index expr"
 ;  V134 tmp131      [V134,T89] (  2,  2   )     ref  ->  rdi         "arr expr"
 ;  V135 tmp132      [V135,T63] (  3,  3   )     int  ->  rax         "index expr"
 ;  V136 tmp133      [V136,T90] (  2,  2   )     ref  ->  rdi         "arr expr"
 ;  V137 tmp134      [V137,T64] (  3,  3   )     int  ->  rax         "index expr"
 ;  V138 tmp135      [V138,T91] (  2,  2   )     ref  ->  r15         "arr expr"
 ;  V139 tmp136      [V139,T65] (  3,  3   )     int  ->  rdi         "index expr"
 ;  V140 tmp137      [V140,T92] (  2,  2   )     ref  ->  rdi         "arr expr"
 ;  V141 tmp138      [V141,T66] (  3,  3   )     int  ->  rax         "index expr"
 ;  V142 tmp139      [V142,T93] (  2,  2   )     ref  ->  rdi         "arr expr"
 ;  V143 tmp140      [V143,T67] (  3,  3   )     int  ->  rax         "index expr"
 ;  V144 tmp141      [V144,T94] (  2,  2   )     ref  ->  rdi         "arr expr"
 ;  V145 tmp142      [V145,T68] (  3,  3   )     int  ->  rax         "index expr"
 ;  V146 tmp143      [V146,T95] (  2,  2   )     ref  ->  rdi         "arr expr"
 ;  V147 tmp144      [V147,T69] (  3,  3   )     int  ->  rax         "index expr"
 ;  V148 tmp145      [V148,T96] (  2,  2   )     ref  ->  rdi         "arr expr"
 ;  V149 tmp146      [V149,T70] (  3,  3   )     int  ->  rax         "index expr"
 ;  V150 tmp147      [V150,T97] (  2,  2   )     ref  ->  rdi         "arr expr"
 ;  V151 tmp148      [V151,T71] (  3,  3   )     int  ->  rax         "index expr"
 ;  V152 tmp149      [V152,T98] (  2,  2   )     ref  ->  rdi         "arr expr"
 ;  V153 tmp150      [V153,T72] (  3,  3   )     int  ->  rax         "index expr"
 ;  V154 tmp151      [V154,T99] (  2,  2   )     ref  ->  rdi         "arr expr"
 ;  V155 tmp152      [V155,T73] (  3,  3   )     int  ->  rax         "index expr"
 ;  V156 tmp153      [V156,T100] (  2,  2   )     ref  ->  rdi         "arr expr"
 ;  V157 tmp154      [V157,T74] (  3,  3   )     int  ->  rax         "index expr"
 ;  V158 tmp155      [V158,T101] (  2,  2   )     ref  ->  rdi         "arr expr"
 ;  V159 tmp156      [V159,T75] (  3,  3   )     int  ->  rax         "index expr"
 ;  V160 tmp157      [V160,T102] (  2,  2   )     ref  ->  rdi         "arr expr"
 ;  V161 tmp158      [V161,T76] (  3,  3   )     int  ->  rax         "index expr"
 ;  V162 tmp159      [V162,T103] (  2,  2   )     ref  ->  rdi         "arr expr"
 ;  V163 tmp160      [V163,T77] (  3,  3   )     int  ->  rax         "index expr"
 ;  V164 tmp161      [V164,T104] (  2,  2   )     ref  ->  rdi         "arr expr"
 ;  V165 tmp162      [V165,T78] (  3,  3   )     int  ->  rax         "index expr"
 ;  V166 cse0        [V166,T36] (  4,  8   )     int  ->  rax         "CSE #05: conservative"
 ;  V167 cse1        [V167,T06] ( 26, 34   )     int  ->  r14         "CSE #01: moderate"
 ;  V168 cse2        [V168,T08] ( 20, 26.50)     ref  ->  r15         "CSE #02: moderate"
 ;  V169 cse3        [V169,T24] (  3, 12   )     ref  ->  rdi         "CSE #13: moderate"
 ;  V170 cse4        [V170,T49] (  3,  6   )     ref  ->  rdi         "CSE #06: conservative"
 ;  V171 cse5        [V171,T50] (  3,  6   )     ref  ->  rdi         "CSE #08: conservative"
 ;  V172 cse6        [V172,T115] (  3,  1.50)     ref  ->  rdi         "CSE #14: conservative"
 ;  V173 cse7        [V173,T116] (  3,  1.50)     ref  ->  rdi         "CSE #39: conservative"
 ;  V174 cse8        [V174,T117] (  3,  1.50)     ref  ->  rdi         "CSE #40: conservative"
 ;  V175 cse9        [V175,T09] ( 20, 26.50)     int  ->  r13         "CSE #03: moderate"
 ;
 ; Lcl frame size = 152
 
 G_M15793_IG01:
        push     rbp
        push     r15
        push     r14
        push     r13
        push     r12
        push     rbx
        sub      rsp, 152
        lea      rbp, [rsp+0xC0]
        mov      rbx, rdi
 						;; size=28 bbWeight=8 PerfScore 56.00
 G_M15793_IG02:
        mov      r15, gword ptr [rbx+0x38]
        mov      rdi, r15
        mov      r14d, dword ptr [rbx+0x74]
        mov      eax, r14d
        mov      r13d, dword ptr [rdi+0x08]
        cmp      eax, r13d
        jae      G_M15793_IG39
        movzx    r12, word  ptr [rdi+2*rax+0x10]
        cmp      r12d, 34
        je       G_M15793_IG37
 						;; size=43 bbWeight=8 PerfScore 88.00
 G_M15793_IG03:
        cmp      r12d, 35
        jne      G_M15793_IG28
 						;; size=10 bbWeight=4 PerfScore 5.00
 G_M15793_IG04:
        mov      eax, dword ptr [rbx+0x70]
        sub      eax, r14d
        cmp      eax, 6
        jl       G_M15793_IG31
        mov      rdi, r15
        lea      ecx, [r14+0x01]
        cmp      ecx, r13d
        jae      G_M15793_IG39
        movzx    r12, word  ptr [rdi+2*rcx+0x10]
        cmp      r12d, 70
        jne      G_M15793_IG11
 						;; size=47 bbWeight=2 PerfScore 17.50
 G_M15793_IG05:
        mov      rdi, r15
        lea      eax, [r14+0x02]
        cmp      eax, r13d
        jae      G_M15793_IG39
        cmp      word  ptr [rdi+2*rax+0x10], 73
        jne      SHORT G_M15793_IG06
        mov      rdi, r15
        lea      eax, [r14+0x03]
        cmp      eax, r13d
        jae      G_M15793_IG39
        cmp      word  ptr [rdi+2*rax+0x10], 88
        jne      SHORT G_M15793_IG06
        mov      rdi, r15
        lea      eax, [r14+0x04]
        cmp      eax, r13d
        jae      G_M15793_IG39
        cmp      word  ptr [rdi+2*rax+0x10], 69
        jne      SHORT G_M15793_IG06
        lea      edi, [r14+0x05]
        cmp      edi, r13d
        jae      G_M15793_IG39
        cmp      word  ptr [r15+2*rdi+0x10], 68
        je       G_M15793_IG09
 						;; size=98 bbWeight=0.50 PerfScore 11.88
 G_M15793_IG06:
        mov      rdi, 0xD1FFAB1E      ; 'Xml_ExpectAttType'
        mov      rax, 0xD1FFAB1E      ; code for System.SR:GetResourceString(System.String):System.String
        call     [rax]System.SR:GetResourceString(System.String):System.String
        mov      r12, rax
        mov      dword ptr [rbx+0x74], r14d
        mov      rdi, gword ptr [rbx+0x08]
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
        call     [r11]System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
        mov      r13, rax
        mov      rdi, gword ptr [rbx+0x08]
        mov      r15, rdi
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:get_LineNo():int:this
        call     [r11]System.Xml.IDtdParserAdapter:get_LineNo():int:this
        mov      r14d, eax
        mov      eax, dword ptr [rbx+0x74]
        mov      dword ptr [rbp-0x40], eax
        mov      rdi, gword ptr [rbx+0x08]
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
        call     [r11]System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
        mov      ecx, dword ptr [rbp-0x40]
        sub      ecx, eax
        mov      dword ptr [rbp-0x3C], ecx
        test     r13, r13
        je       SHORT G_M15793_IG07
        mov      rdi, r13
        mov      rcx, qword ptr [r13]
        mov      rcx, qword ptr [rcx+0x40]
        call     [rcx+0x08]System.Object:ToString():System.String:this
        mov      r13, rax
        jmp      SHORT G_M15793_IG08
 						;; size=127 bbWeight=0.50 PerfScore 18.62
 G_M15793_IG07:
        xor      r13, r13
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M15793_IG08:
        mov      rdi, 0xD1FFAB1E      ; System.Xml.XmlException
        call     CORINFO_HELP_NEWSFAST
        mov      gword ptr [rbp-0x80], rax
        mov      rdi, 0xD1FFAB1E      ; System.String[]
        mov      esi, 1
        call     CORINFO_HELP_NEWARR_1_OBJ
        mov      gword ptr [rbp-0x88], rax
-       mov      rdi, rax
-       xor      esi, esi
-       mov      rdx, 0xD1FFAB1E      ; ''
-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST
-       call     [rcx]CORINFO_HELP_ARRADDR_ST
+       mov      rdi, 0xD1FFAB1E      ; ''
+       mov      gword ptr [rax+0x10], rdi
        mov      rdi, r12
-       mov      rsi, gword ptr [rbp-0x88]
+       mov      rsi, rax
        mov      edx, r14d
        mov      ecx, dword ptr [rbp-0x3C]
-       mov      rax, 0xD1FFAB1E      ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
-       call     [rax]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+       mov      r8, 0xD1FFAB1E      ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+       call     [r8]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
        mov      rdi, 0xD1FFAB1E
        mov      rcx, gword ptr [rbp-0x80]
        mov      qword ptr [rcx+0x68], rdi
        lea      rdi, bword ptr [rcx+0x10]
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
        xor      rdi, rdi
        mov      rax, gword ptr [rbp-0x80]
        mov      gword ptr [rax+0x20], rdi
        mov      dword ptr [rax+0x6C], 0xD1FFAB1E
        lea      rdi, bword ptr [rax+0x70]
        mov      rsi, r12
        call     CORINFO_HELP_ASSIGN_REF
        mov      r12, gword ptr [rbp-0x80]
        lea      rdi, bword ptr [r12+0x78]
        mov      rsi, gword ptr [rbp-0x88]
        call     CORINFO_HELP_ASSIGN_REF
        lea      rdi, bword ptr [r12+0x80]
        mov      rsi, r13
        call     CORINFO_HELP_ASSIGN_REF
        mov      dword ptr [r12+0x90], r14d
        mov      r14d, dword ptr [rbp-0x3C]
        mov      dword ptr [r12+0x94], r14d
        mov      rdi, r15
        mov      rsi, r12
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:Throw(System.Exception):this
        call     [r11]System.Xml.IDtdParserAdapter:Throw(System.Exception):this
-						;; size=236 bbWeight=0.50 PerfScore 17.75
+						;; size=220 bbWeight=0.50 PerfScore 16.00
 G_M15793_IG09:
        add      dword ptr [rbx+0x74], 6
        mov      dword ptr [rbx+0x78], 19
        mov      eax, 22
 						;; size=16 bbWeight=0.50 PerfScore 2.12
 G_M15793_IG10:
        add      rsp, 152
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=18 bbWeight=0.50 PerfScore 2.12
 G_M15793_IG11:
        cmp      r12d, 73
        jne      G_M15793_IG18
        cmp      eax, 8
        jl       G_M15793_IG31
 						;; size=19 bbWeight=2 PerfScore 5.00
 G_M15793_IG12:
        mov      rdi, r15
        lea      eax, [r14+0x02]
        cmp      eax, r13d
        jae      G_M15793_IG39
        cmp      word  ptr [rdi+2*rax+0x10], 77
        jne      G_M15793_IG13
        mov      rdi, r15
        lea      eax, [r14+0x03]
        cmp      eax, r13d
        jae      G_M15793_IG39
        cmp      word  ptr [rdi+2*rax+0x10], 80
        jne      SHORT G_M15793_IG13
        mov      rdi, r15
        lea      eax, [r14+0x04]
        cmp      eax, r13d
        jae      G_M15793_IG39
        cmp      word  ptr [rdi+2*rax+0x10], 76
        jne      SHORT G_M15793_IG13
        mov      rdi, r15
        lea      eax, [r14+0x05]
        cmp      eax, r13d
        jae      G_M15793_IG39
        cmp      word  ptr [rdi+2*rax+0x10], 73
        jne      SHORT G_M15793_IG13
        mov      rdi, r15
        lea      eax, [r14+0x06]
        cmp      eax, r13d
        jae      G_M15793_IG39
        cmp      word  ptr [rdi+2*rax+0x10], 69
        jne      SHORT G_M15793_IG13
        mov      rdi, r15
        lea      eax, [r14+0x07]
        cmp      eax, r13d
        jae      G_M15793_IG39
        cmp      word  ptr [rdi+2*rax+0x10], 68
        je       G_M15793_IG16
 						;; size=152 bbWeight=0.50 PerfScore 18.00
 G_M15793_IG13:
        mov      r12d, r14d
        mov      rdi, 0xD1FFAB1E      ; 'Xml_ExpectAttType'
        mov      rax, 0xD1FFAB1E      ; code for System.SR:GetResourceString(System.String):System.String
        call     [rax]System.SR:GetResourceString(System.String):System.String
        mov      r14, rax
        mov      dword ptr [rbx+0x74], r12d
        mov      rdi, gword ptr [rbx+0x08]
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
        call     [r11]System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
        mov      r15, rax
        mov      rdi, gword ptr [rbx+0x08]
        mov      r13, rdi
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:get_LineNo():int:this
        call     [r11]System.Xml.IDtdParserAdapter:get_LineNo():int:this
        mov      r12d, eax
        mov      eax, dword ptr [rbx+0x74]
        mov      dword ptr [rbp-0x38], eax
        mov      rdi, gword ptr [rbx+0x08]
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
        call     [r11]System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
        mov      ecx, dword ptr [rbp-0x38]
        sub      ecx, eax
        mov      dword ptr [rbp-0x34], ecx
        test     r15, r15
        je       SHORT G_M15793_IG14
        mov      rdi, r15
        mov      rcx, qword ptr [r15]
        mov      rcx, qword ptr [rcx+0x40]
        call     [rcx+0x08]System.Object:ToString():System.String:this
        mov      r15, rax
        jmp      SHORT G_M15793_IG15
 						;; size=129 bbWeight=0.50 PerfScore 18.75
 G_M15793_IG14:
        xor      r15, r15
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M15793_IG15:
        mov      rdi, 0xD1FFAB1E      ; System.Xml.XmlException
        call     CORINFO_HELP_NEWSFAST
        mov      gword ptr [rbp-0x70], rax
        mov      rdi, 0xD1FFAB1E      ; System.String[]
        mov      esi, 1
        call     CORINFO_HELP_NEWARR_1_OBJ
        mov      gword ptr [rbp-0x78], rax
-       mov      rdi, rax
-       xor      esi, esi
-       mov      rdx, 0xD1FFAB1E      ; ''
-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST
-       call     [rcx]CORINFO_HELP_ARRADDR_ST
+       mov      rdi, 0xD1FFAB1E      ; ''
+       mov      gword ptr [rax+0x10], rdi
        mov      rdi, r14
-       mov      rsi, gword ptr [rbp-0x78]
+       mov      rsi, rax
        mov      edx, r12d
        mov      ecx, dword ptr [rbp-0x34]
-       mov      rax, 0xD1FFAB1E      ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
-       call     [rax]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+       mov      r8, 0xD1FFAB1E      ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+       call     [r8]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
        mov      rdi, 0xD1FFAB1E
        mov      rcx, gword ptr [rbp-0x70]
        mov      qword ptr [rcx+0x68], rdi
        lea      rdi, bword ptr [rcx+0x10]
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
        xor      rdi, rdi
        mov      rax, gword ptr [rbp-0x70]
        mov      gword ptr [rax+0x20], rdi
        mov      dword ptr [rax+0x6C], 0xD1FFAB1E
        lea      rdi, bword ptr [rax+0x70]
        mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
        mov      r14, gword ptr [rbp-0x70]
        lea      rdi, bword ptr [r14+0x78]
        mov      rsi, gword ptr [rbp-0x78]
        call     CORINFO_HELP_ASSIGN_REF
        lea      rdi, bword ptr [r14+0x80]
        mov      rsi, r15
        call     CORINFO_HELP_ASSIGN_REF
        mov      dword ptr [r14+0x90], r12d
        mov      r15d, dword ptr [rbp-0x34]
        mov      dword ptr [r14+0x94], r15d
        mov      rdi, r13
        mov      rsi, r14
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:Throw(System.Exception):this
        call     [r11]System.Xml.IDtdParserAdapter:Throw(System.Exception):this
-						;; size=223 bbWeight=0.50 PerfScore 17.75
+						;; size=210 bbWeight=0.50 PerfScore 16.00
 G_M15793_IG16:
        add      dword ptr [rbx+0x74], 8
        mov      dword ptr [rbx+0x78], 13
        mov      eax, 21
 						;; size=16 bbWeight=0.50 PerfScore 2.12
 G_M15793_IG17:
        add      rsp, 152
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=18 bbWeight=0.50 PerfScore 2.12
 G_M15793_IG18:
        cmp      r12d, 82
        je       G_M15793_IG21
        mov      r15d, r14d
        mov      rdi, 0xD1FFAB1E      ; 'Xml_ExpectAttType'
        mov      rax, 0xD1FFAB1E      ; code for System.SR:GetResourceString(System.String):System.String
        call     [rax]System.SR:GetResourceString(System.String):System.String
        mov      r14, rax
        mov      dword ptr [rbx+0x74], r15d
        mov      rdi, gword ptr [rbx+0x08]
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
        call     [r11]System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
        mov      r13, rax
        mov      rdi, gword ptr [rbx+0x08]
        mov      r15, rdi
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:get_LineNo():int:this
        call     [r11]System.Xml.IDtdParserAdapter:get_LineNo():int:this
        mov      r12d, eax
        mov      eax, dword ptr [rbx+0x74]
        mov      dword ptr [rbp-0x48], eax
        mov      rdi, gword ptr [rbx+0x08]
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
        call     [r11]System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
        mov      ecx, dword ptr [rbp-0x48]
        sub      ecx, eax
        mov      dword ptr [rbp-0x44], ecx
        test     r13, r13
        je       SHORT G_M15793_IG19
        mov      rdi, r13
        mov      rcx, qword ptr [r13]
        mov      rcx, qword ptr [rcx+0x40]
        call     [rcx+0x08]System.Object:ToString():System.String:this
        mov      r13, rax
        jmp      SHORT G_M15793_IG20
 						;; size=140 bbWeight=2 PerfScore 77.50
 G_M15793_IG19:
        xor      r13, r13
 						;; size=3 bbWeight=2 PerfScore 0.50
 G_M15793_IG20:
        mov      rdi, 0xD1FFAB1E      ; System.Xml.XmlException
        call     CORINFO_HELP_NEWSFAST
        mov      gword ptr [rbp-0x90], rax
        mov      rdi, 0xD1FFAB1E      ; System.String[]
        mov      esi, 1
        call     CORINFO_HELP_NEWARR_1_OBJ
        mov      gword ptr [rbp-0x98], rax
-       mov      rdi, rax
-       xor      esi, esi
-       mov      rdx, 0xD1FFAB1E      ; ''
-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST
-       call     [rcx]CORINFO_HELP_ARRADDR_ST
+       mov      rdi, 0xD1FFAB1E      ; ''
+       mov      gword ptr [rax+0x10], rdi
        mov      rdi, r14
-       mov      rsi, gword ptr [rbp-0x98]
+       mov      rsi, rax
        mov      edx, r12d
        mov      ecx, dword ptr [rbp-0x44]
-       mov      rax, 0xD1FFAB1E      ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
-       call     [rax]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+       mov      r8, 0xD1FFAB1E      ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+       call     [r8]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
        mov      rdi, 0xD1FFAB1E
        mov      rcx, gword ptr [rbp-0x90]
        mov      qword ptr [rcx+0x68], rdi
        lea      rdi, bword ptr [rcx+0x10]
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
        xor      rdi, rdi
        mov      rax, gword ptr [rbp-0x90]
        mov      gword ptr [rax+0x20], rdi
        mov      dword ptr [rax+0x6C], 0xD1FFAB1E
        lea      rdi, bword ptr [rax+0x70]
        mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
        mov      r14, gword ptr [rbp-0x90]
        lea      rdi, bword ptr [r14+0x78]
        mov      rsi, gword ptr [rbp-0x98]
        call     CORINFO_HELP_ASSIGN_REF
        lea      rdi, bword ptr [r14+0x80]
        mov      rsi, r13
        call     CORINFO_HELP_ASSIGN_REF
        mov      dword ptr [r14+0x90], r12d
        mov      r13d, dword ptr [rbp-0x44]
        mov      dword ptr [r14+0x94], r13d
        mov      rdi, r15
        mov      rsi, r14
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:Throw(System.Exception):this
        call     [r11]System.Xml.IDtdParserAdapter:Throw(System.Exception):this
        jmp      G_M15793_IG31
-						;; size=249 bbWeight=2 PerfScore 75.00
+						;; size=233 bbWeight=2 PerfScore 68.00
 G_M15793_IG21:
        cmp      eax, 9
        jl       G_M15793_IG31
 						;; size=9 bbWeight=2 PerfScore 2.50
 G_M15793_IG22:
        mov      rdi, r15
        lea      eax, [r14+0x02]
        cmp      eax, r13d
        jae      G_M15793_IG39
        cmp      word  ptr [rdi+2*rax+0x10], 69
        jne      G_M15793_IG23
        mov      rdi, r15
        lea      eax, [r14+0x03]
        cmp      eax, r13d
        jae      G_M15793_IG39
        cmp      word  ptr [rdi+2*rax+0x10], 81
        jne      G_M15793_IG23
        mov      rdi, r15
        lea      eax, [r14+0x04]
        cmp      eax, r13d
        jae      G_M15793_IG39
        cmp      word  ptr [rdi+2*rax+0x10], 85
        jne      SHORT G_M15793_IG23
        mov      rdi, r15
        lea      eax, [r14+0x05]
        cmp      eax, r13d
        jae      G_M15793_IG39
        cmp      word  ptr [rdi+2*rax+0x10], 73
        jne      SHORT G_M15793_IG23
        mov      rdi, r15
        lea      eax, [r14+0x06]
        cmp      eax, r13d
        jae      G_M15793_IG39
        cmp      word  ptr [rdi+2*rax+0x10], 82
        jne      SHORT G_M15793_IG23
        mov      rdi, r15
        lea      eax, [r14+0x07]
        cmp      eax, r13d
        jae      G_M15793_IG39
        cmp      word  ptr [rdi+2*rax+0x10], 69
        jne      SHORT G_M15793_IG23
        mov      rdi, r15
        lea      eax, [r14+0x08]
        cmp      eax, r13d
        jae      G_M15793_IG39
        cmp      word  ptr [rdi+2*rax+0x10], 68
        je       G_M15793_IG26
 						;; size=180 bbWeight=0.50 PerfScore 21.00
 G_M15793_IG23:
        mov      rdi, 0xD1FFAB1E      ; 'Xml_ExpectAttType'
        mov      rax, 0xD1FFAB1E      ; code for System.SR:GetResourceString(System.String):System.String
        call     [rax]System.SR:GetResourceString(System.String):System.String
        mov      r15, rax
        mov      dword ptr [rbx+0x74], r14d
        mov      rdi, gword ptr [rbx+0x08]
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
        call     [r11]System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
        mov      r14, rax
        mov      rdi, gword ptr [rbx+0x08]
        mov      r13, rdi
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:get_LineNo():int:this
        call     [r11]System.Xml.IDtdParserAdapter:get_LineNo():int:this
        mov      r12d, eax
        mov      eax, dword ptr [rbx+0x74]
        mov      dword ptr [rbp-0x30], eax
        mov      rdi, gword ptr [rbx+0x08]
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
        call     [r11]System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
        mov      ecx, dword ptr [rbp-0x30]
        sub      ecx, eax
        mov      dword ptr [rbp-0x2C], ecx
        test     r14, r14
        je       SHORT G_M15793_IG24
        mov      rdi, r14
        mov      rcx, qword ptr [r14]
        mov      rcx, qword ptr [rcx+0x40]
        call     [rcx+0x08]System.Object:ToString():System.String:this
        mov      r14, rax
        jmp      SHORT G_M15793_IG25
 						;; size=126 bbWeight=0.50 PerfScore 18.62
 G_M15793_IG24:
        xor      r14, r14
 						;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M15793_IG25:
        mov      rdi, 0xD1FFAB1E      ; System.Xml.XmlException
        call     CORINFO_HELP_NEWSFAST
        mov      gword ptr [rbp-0x60], rax
        mov      rdi, 0xD1FFAB1E      ; System.String[]
        mov      esi, 1
        call     CORINFO_HELP_NEWARR_1_OBJ
        mov      gword ptr [rbp-0x68], rax
-       mov      rdi, rax
-       xor      esi, esi
-       mov      rdx, 0xD1FFAB1E      ; ''
-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST
-       call     [rcx]CORINFO_HELP_ARRADDR_ST
+       mov      rdi, 0xD1FFAB1E      ; ''
+       mov      gword ptr [rax+0x10], rdi
        mov      rdi, r15
-       mov      rsi, gword ptr [rbp-0x68]
+       mov      rsi, rax
        mov      edx, r12d
        mov      ecx, dword ptr [rbp-0x2C]
-       mov      rax, 0xD1FFAB1E      ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
-       call     [rax]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+       mov      r8, 0xD1FFAB1E      ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+       call     [r8]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
        mov      rdi, 0xD1FFAB1E
        mov      rcx, gword ptr [rbp-0x60]
        mov      qword ptr [rcx+0x68], rdi
        lea      rdi, bword ptr [rcx+0x10]
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
        xor      rdi, rdi
        mov      rax, gword ptr [rbp-0x60]
        mov      gword ptr [rax+0x20], rdi
        mov      dword ptr [rax+0x6C], 0xD1FFAB1E
        lea      rdi, bword ptr [rax+0x70]
        mov      rsi, r15
        call     CORINFO_HELP_ASSIGN_REF
        mov      r15, gword ptr [rbp-0x60]
        lea      rdi, bword ptr [r15+0x78]
        mov      rsi, gword ptr [rbp-0x68]
        call     CORINFO_HELP_ASSIGN_REF
        lea      rdi, bword ptr [r15+0x80]
        mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
        mov      dword ptr [r15+0x90], r12d
        mov      r14d, dword ptr [rbp-0x2C]
        mov      dword ptr [r15+0x94], r14d
        mov      rdi, r13
        mov      rsi, r15
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:Throw(System.Exception):this
        call     [r11]System.Xml.IDtdParserAdapter:Throw(System.Exception):this
-						;; size=223 bbWeight=0.50 PerfScore 17.75
+						;; size=210 bbWeight=0.50 PerfScore 16.00
 G_M15793_IG26:
        add      dword ptr [rbx+0x74], 9
        mov      dword ptr [rbx+0x78], 13
        mov      eax, 20
 						;; size=16 bbWeight=0.50 PerfScore 2.12
 G_M15793_IG27:
        add      rsp, 152
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=18 bbWeight=0.50 PerfScore 2.12
 G_M15793_IG28:
        cmp      r12d, 39
        je       G_M15793_IG37
        mov      r15d, r14d
        mov      rdi, 0xD1FFAB1E      ; 'Xml_ExpectAttType'
        mov      rax, 0xD1FFAB1E      ; code for System.SR:GetResourceString(System.String):System.String
        call     [rax]System.SR:GetResourceString(System.String):System.String
        mov      r14, rax
        mov      dword ptr [rbx+0x74], r15d
        mov      rdi, gword ptr [rbx+0x08]
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
        call     [r11]System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
        mov      r15, rax
        mov      rdi, gword ptr [rbx+0x08]
        mov      r13, rdi
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:get_LineNo():int:this
        call     [r11]System.Xml.IDtdParserAdapter:get_LineNo():int:this
        mov      r12d, eax
        mov      eax, dword ptr [rbx+0x74]
        mov      dword ptr [rbp-0x50], eax
        mov      rdi, gword ptr [rbx+0x08]
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
        call     [r11]System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
        mov      ecx, dword ptr [rbp-0x50]
        sub      ecx, eax
        mov      dword ptr [rbp-0x4C], ecx
        test     r15, r15
        je       SHORT G_M15793_IG29
        mov      rdi, r15
        mov      rcx, qword ptr [r15]
        mov      rcx, qword ptr [rcx+0x40]
        call     [rcx+0x08]System.Object:ToString():System.String:this
        mov      r15, rax
        jmp      SHORT G_M15793_IG30
 						;; size=139 bbWeight=2 PerfScore 77.50
 G_M15793_IG29:
        xor      r15, r15
 						;; size=3 bbWeight=2 PerfScore 0.50
 G_M15793_IG30:
        mov      rdi, 0xD1FFAB1E      ; System.Xml.XmlException
        call     CORINFO_HELP_NEWSFAST
        mov      gword ptr [rbp-0xA0], rax
        mov      rdi, 0xD1FFAB1E      ; System.String[]
        mov      esi, 1
        call     CORINFO_HELP_NEWARR_1_OBJ
        mov      gword ptr [rbp-0xA8], rax
-       mov      rdi, rax
-       xor      esi, esi
-       mov      rdx, 0xD1FFAB1E      ; ''
-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST
-       call     [rcx]CORINFO_HELP_ARRADDR_ST
+       mov      rdi, 0xD1FFAB1E      ; ''
+       mov      gword ptr [rax+0x10], rdi
        mov      rdi, r14
-       mov      rsi, gword ptr [rbp-0xA8]
+       mov      rsi, rax
        mov      edx, r12d
        mov      ecx, dword ptr [rbp-0x4C]
-       mov      rax, 0xD1FFAB1E      ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
-       call     [rax]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+       mov      r8, 0xD1FFAB1E      ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+       call     [r8]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
        mov      rdi, 0xD1FFAB1E
        mov      rcx, gword ptr [rbp-0xA0]
        mov      qword ptr [rcx+0x68], rdi
        lea      rdi, bword ptr [rcx+0x10]
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
        xor      rdi, rdi
        mov      rax, gword ptr [rbp-0xA0]
        mov      gword ptr [rax+0x20], rdi
        mov      dword ptr [rax+0x6C], 0xD1FFAB1E
        lea      rdi, bword ptr [rax+0x70]
        mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
        mov      r14, gword ptr [rbp-0xA0]
        lea      rdi, bword ptr [r14+0x78]
        mov      rsi, gword ptr [rbp-0xA8]
        call     CORINFO_HELP_ASSIGN_REF
        lea      rdi, bword ptr [r14+0x80]
        mov      rsi, r15
        call     CORINFO_HELP_ASSIGN_REF
        mov      dword ptr [r14+0x90], r12d
        mov      r15d, dword ptr [rbp-0x4C]
        mov      dword ptr [r14+0x94], r15d
        mov      rdi, r13
        mov      rsi, r14
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:Throw(System.Exception):this
        call     [r11]System.Xml.IDtdParserAdapter:Throw(System.Exception):this
-						;; size=244 bbWeight=2 PerfScore 71.00
+						;; size=228 bbWeight=2 PerfScore 64.00
 G_M15793_IG31:
        mov      r15d, dword ptr [rbx+0x74]
        mov      rdi, gword ptr [rbx+0x08]
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:get_EntityStackLength():int:this
        call     [r11]System.Xml.IDtdParserAdapter:get_EntityStackLength():int:this
        test     eax, eax
        jne      SHORT G_M15793_IG33
 						;; size=25 bbWeight=4 PerfScore 34.00
 G_M15793_IG32:
        cmp      gword ptr [rbx+0x40], 0
        je       SHORT G_M15793_IG33
        mov      rdi, gword ptr [rbx+0x08]
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:get_CurrentPosition():int:this
        call     [r11]System.Xml.IDtdParserAdapter:get_CurrentPosition():int:this
        mov      ecx, r15d
        sub      ecx, eax
        test     ecx, ecx
        jle      SHORT G_M15793_IG33
        mov      ecx, r15d
        sub      ecx, eax
        mov      rsi, gword ptr [rbx+0x38]
        mov      rdi, gword ptr [rbx+0x40]
        mov      edx, eax
        mov      rax, 0xD1FFAB1E      ; code for System.Text.StringBuilder:Append(ushort[],int,int):System.Text.StringBuilder:this
        cmp      dword ptr [rdi], edi
        call     [rax]System.Text.StringBuilder:Append(ushort[],int,int):System.Text.StringBuilder:this
 						;; size=62 bbWeight=2 PerfScore 44.00
 G_M15793_IG33:
        mov      rdi, gword ptr [rbx+0x08]
        mov      esi, dword ptr [rbx+0x74]
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:set_CurrentPosition(int):this
        call     [r11]System.Xml.IDtdParserAdapter:set_CurrentPosition(int):this
        mov      rdi, gword ptr [rbx+0x08]
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:ReadData():int:this
        call     [r11]System.Xml.IDtdParserAdapter:ReadData():int:this
        mov      r15d, eax
        mov      rdi, rbx
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.DtdParser:LoadParsingBuffer():this
        call     [rax]System.Xml.DtdParser:LoadParsingBuffer():this
        test     r15d, r15d
        jne      G_M15793_IG02
        mov      r15d, dword ptr [rbx+0x74]
        mov      rdi, 0xD1FFAB1E      ; 'Xml_IncompleteDtdContent'
        mov      rax, 0xD1FFAB1E      ; code for System.SR:GetResourceString(System.String):System.String
        call     [rax]System.SR:GetResourceString(System.String):System.String
        mov      r14, rax
        mov      dword ptr [rbx+0x74], r15d
        mov      rdi, gword ptr [rbx+0x08]
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
        call     [r11]System.Xml.IDtdParserAdapter:get_BaseUri():System.Uri:this
        mov      r15, rax
        mov      rdi, gword ptr [rbx+0x08]
        mov      r13, rdi
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:get_LineNo():int:this
        call     [r11]System.Xml.IDtdParserAdapter:get_LineNo():int:this
        mov      r12d, eax
        mov      eax, dword ptr [rbx+0x74]
        mov      dword ptr [rbp-0x58], eax
        mov      rdi, gword ptr [rbx+0x08]
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
        call     [r11]System.Xml.IDtdParserAdapter:get_LineStartPosition():int:this
        mov      ecx, dword ptr [rbp-0x58]
        sub      ecx, eax
        mov      dword ptr [rbp-0x54], ecx
        test     r15, r15
        je       SHORT G_M15793_IG35
 						;; size=176 bbWeight=4 PerfScore 189.00
 G_M15793_IG34:
        mov      rdi, r15
        mov      rcx, qword ptr [r15]
        mov      rcx, qword ptr [rcx+0x40]
        call     [rcx+0x08]System.Object:ToString():System.String:this
        mov      r15, rax
        jmp      SHORT G_M15793_IG36
 						;; size=18 bbWeight=2 PerfScore 19.00
 G_M15793_IG35:
        xor      r15, r15
 						;; size=3 bbWeight=2 PerfScore 0.50
 G_M15793_IG36:
        mov      rdi, 0xD1FFAB1E      ; System.Xml.XmlException
        call     CORINFO_HELP_NEWSFAST
        mov      gword ptr [rbp-0xB0], rax
        mov      rdi, 0xD1FFAB1E      ; System.String[]
        mov      esi, 1
        call     CORINFO_HELP_NEWARR_1_OBJ
        mov      gword ptr [rbp-0xB8], rax
-       mov      rdi, rax
-       xor      esi, esi
-       mov      rdx, 0xD1FFAB1E      ; ''
-       mov      rcx, 0xD1FFAB1E      ; code for CORINFO_HELP_ARRADDR_ST
-       call     [rcx]CORINFO_HELP_ARRADDR_ST
+       mov      rdi, 0xD1FFAB1E      ; ''
+       mov      gword ptr [rax+0x10], rdi
        mov      rdi, r14
-       mov      rsi, gword ptr [rbp-0xB8]
+       mov      rsi, rax
        mov      edx, r12d
        mov      ecx, dword ptr [rbp-0x54]
-       mov      rax, 0xD1FFAB1E      ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
-       call     [rax]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+       mov      r8, 0xD1FFAB1E      ; code for System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
+       call     [r8]System.Xml.XmlException:CreateMessage(System.String,System.String[],int,int):System.String
        mov      rdi, 0xD1FFAB1E
        mov      rcx, gword ptr [rbp-0xB0]
        mov      qword ptr [rcx+0x68], rdi
        lea      rdi, bword ptr [rcx+0x10]
        mov      rsi, rax
        call     CORINFO_HELP_ASSIGN_REF
        xor      rdi, rdi
        mov      rax, gword ptr [rbp-0xB0]
        mov      gword ptr [rax+0x20], rdi
        mov      dword ptr [rax+0x6C], 0xD1FFAB1E
        lea      rdi, bword ptr [rax+0x70]
        mov      rsi, r14
        call     CORINFO_HELP_ASSIGN_REF
        mov      r14, gword ptr [rbp-0xB0]
        lea      rdi, bword ptr [r14+0x78]
        mov      rsi, gword ptr [rbp-0xB8]
        call     CORINFO_HELP_ASSIGN_REF
        lea      rdi, bword ptr [r14+0x80]
        mov      rsi, r15
        call     CORINFO_HELP_ASSIGN_REF
        mov      dword ptr [r14+0x90], r12d
        mov      r15d, dword ptr [rbp-0x54]
        mov      dword ptr [r14+0x94], r15d
        mov      rdi, r13
        mov      rsi, r14
        mov      r11, 0xD1FFAB1E      ; code for System.Xml.IDtdParserAdapter:Throw(System.Exception):this
        call     [r11]System.Xml.IDtdParserAdapter:Throw(System.Exception):this
        jmp      G_M15793_IG02
-						;; size=249 bbWeight=4 PerfScore 150.00
+						;; size=233 bbWeight=4 PerfScore 136.00
 G_M15793_IG37:
        mov      rdi, rbx
        xor      esi, esi
        mov      rax, 0xD1FFAB1E      ; code for System.Xml.DtdParser:ScanLiteral(int):int:this
        call     [rax]System.Xml.DtdParser:ScanLiteral(int):int:this
        mov      dword ptr [rbx+0x78], 13
        mov      eax, 35
 						;; size=29 bbWeight=0.50 PerfScore 2.50
 G_M15793_IG38:
        add      rsp, 152
        pop      rbx
        pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
 						;; size=18 bbWeight=0.50 PerfScore 2.12
 G_M15793_IG39:
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 3125, prolog size 25, PerfScore 1090.38, instruction count 690, allocated bytes for code 3125 (MethodHash=f65cc24e) for method System.Xml.DtdParser:ScanAttlist6():int:this (FullOpts)
+; Total bytes of code 3035, prolog size 25, PerfScore 1057.12, instruction count 672, allocated bytes for code 3035 (MethodHash=f65cc24e) for method System.Xml.DtdParser:ScanAttlist6():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/fbb5a6d28c85cb5d365022f9fd2adc1a

@MihuBot
Copy link
Owner Author

MihuBot commented Aug 29, 2024

@EgorBo

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

No branches or pull requests

1 participant