MihuBot / runtime-utils

0 stars 0 forks source link

[X64] [EgorBo] JIT: Pass field's owner to getFieldType #219

Open MihuBot opened 5 months ago

MihuBot commented 5 months ago

Build completed in 1 hour 44 minutes. https://github.com/dotnet/runtime/pull/96794

CoreLib diffs

Found 2 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 7284651
Total bytes of diff: 7284722
Total bytes of delta: 71 (0.00 % of base)
Total relative delta: 0.14
    diff is a regression.
    relative diff is a regression.

Top file regressions (bytes):
          71 : System.Private.CoreLib.dasm (0.00 % of base)

1 total files with Code Size differences (0 improved, 1 regressed), 0 unchanged.

Top method regressions (bytes):
          30 (3.65 % of base) : System.Private.CoreLib.dasm - System.Globalization.CalendarData:FixDefaultShortDatePattern(System.Collections.Generic.List`1[System.String]) (FullOpts)
          28 (9.21 % of base) : System.Private.CoreLib.dasm - System.Globalization.CalendarData:EnumDatePatterns(System.String,ushort,int,byref):ubyte (FullOpts)
          13 (1.21 % of base) : System.Private.CoreLib.dasm - System.Threading.TimerQueue:TimerThread() (FullOpts)

Top method regressions (percentages):
          28 (9.21 % of base) : System.Private.CoreLib.dasm - System.Globalization.CalendarData:EnumDatePatterns(System.String,ushort,int,byref):ubyte (FullOpts)
          30 (3.65 % of base) : System.Private.CoreLib.dasm - System.Globalization.CalendarData:FixDefaultShortDatePattern(System.Collections.Generic.List`1[System.String]) (FullOpts)
          13 (1.21 % of base) : System.Private.CoreLib.dasm - System.Threading.TimerQueue:TimerThread() (FullOpts)

3 total methods with Code Size differences (0 improved, 3 regressed), 55872 unchanged.

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

Frameworks diffs

Diffs ``` Found 339 files with textual diffs. Summary of Code Size diffs: (Lower is better) Total bytes of base: 38613881 Total bytes of diff: 38615709 Total bytes of delta: 1828 (0.00 % of base) Total relative delta: 3.04 diff is a regression. relative diff is a regression. Top file regressions (bytes): 676 : System.Collections.dasm (0.12 % of base) 456 : System.Text.RegularExpressions.dasm (0.06 % of base) 263 : System.Data.Common.dasm (0.02 % of base) 130 : System.Threading.RateLimiting.dasm (0.08 % of base) 89 : System.Private.Xml.dasm (0.00 % of base) 81 : System.Net.Security.dasm (0.04 % of base) 71 : System.Private.CoreLib.dasm (0.00 % of base) 40 : System.Diagnostics.Process.dasm (0.04 % of base) 12 : Microsoft.Extensions.DependencyModel.dasm (0.01 % of base) 9 : System.Data.Odbc.dasm (0.00 % of base) 6 : System.Configuration.ConfigurationManager.dasm (0.00 % of base) 2 : System.Diagnostics.TraceSource.dasm (0.00 % of base) Top file improvements (bytes): -7 : System.Net.HttpListener.dasm (-0.01 % of base) 13 total files with Code Size differences (1 improved, 12 regressed), 243 unchanged. Top method regressions (bytes): 81 (2.64 % of base) : System.Net.Security.dasm - System.Net.Security.SslStreamCertificateContext+d__32:MoveNext():this (FullOpts) 78 (3.79 % of base) : System.Private.Xml.dasm - System.Xml.Schema.ParticleContentValidator:BuildTransitionTable(System.Xml.Schema.BitSet,System.Xml.Schema.BitSet[],int):int[][]:this (FullOpts) 74 (4.12 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:g__ReduceSingleLetterAndNestedAlternations|41_0():this (FullOpts) 74 (5.18 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentStrings():this (FullOpts) 50 (14.01 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1[double]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[double]):ubyte:this (FullOpts) 50 (14.01 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1[int]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[int]):ubyte:this (FullOpts) 50 (14.01 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1[long]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[long]):ubyte:this (FullOpts) 50 (14.01 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1[short]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[short]):ubyte:this (FullOpts) 50 (14.01 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1[System.Nullable`1[int]]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[System.Nullable`1[int]]):ubyte:this (FullOpts) 50 (14.01 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1[System.Numerics.Vector`1[float]]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[System.Numerics.Vector`1[float]]):ubyte:this (FullOpts) 50 (14.01 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1[ubyte]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[ubyte]):ubyte:this (FullOpts) 48 (9.86 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[int]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[int]):ubyte:this (FullOpts) 48 (9.82 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[long]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[long]):ubyte:this (FullOpts) 48 (9.72 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[short]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[short]):ubyte:this (FullOpts) 48 (9.82 % 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) 48 (9.72 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[ubyte]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[ubyte]):ubyte:this (FullOpts) 47 (9.31 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[double]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[double]):ubyte:this (FullOpts) 39 (7.10 % 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) 36 (2.84 % 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) 36 (2.86 % 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) 30 (3.65 % of base) : System.Private.CoreLib.dasm - System.Globalization.CalendarData:FixDefaultShortDatePattern(System.Collections.Generic.List`1[System.String]) (FullOpts) 30 (1.41 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts) (2 methods) 29 (2.32 % 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) 29 (2.26 % 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) 28 (9.21 % of base) : System.Private.CoreLib.dasm - System.Globalization.CalendarData:EnumDatePatterns(System.String,ushort,int,byref):ubyte (FullOpts) 22 (3.30 % of base) : System.Diagnostics.Process.dasm - System.Diagnostics.AsyncStreamReader:MoveLinesFromStringBuilderToMessageQueue():this (FullOpts) 18 (0.98 % of base) : System.Diagnostics.Process.dasm - System.Diagnostics.AsyncStreamReader+d__16:MoveNext():this (FullOpts) 17 (8.85 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:ReplaceChild(int,System.Text.RegularExpressions.RegexNode):this (FullOpts) 17 (1.57 % 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) 17 (1.58 % 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) 17 (1.58 % 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) 17 (1.58 % 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) 17 (1.58 % 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) 13 (0.73 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentLoops():this (FullOpts) 13 (0.81 % 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.80 % 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.80 % 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.80 % 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.80 % 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 (1.21 % of base) : System.Private.CoreLib.dasm - System.Threading.TimerQueue:TimerThread() (FullOpts) 12 (0.62 % of base) : Microsoft.Extensions.DependencyModel.dasm - Microsoft.Extensions.DependencyModel.Resolution.AppBaseCompilationAssemblyResolver:TryResolveAssemblyPaths(Microsoft.Extensions.DependencyModel.CompilationLibrary,System.Collections.Generic.List`1[System.String]):ubyte:this (FullOpts) 12 (0.90 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:ReduceAtomic():System.Text.RegularExpressions.RegexNode:this (FullOpts) 11 (4.49 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:g__RemoveRedundantEmptiesAndNothings|41_2(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (FullOpts) 11 (3.93 % 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) 11 (3.93 % 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) 11 (3.93 % 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) 11 (3.93 % 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) 11 (3.93 % 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) 11 (1.23 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.XsltOld.TemplateAction:AnalyzePriority(System.Xml.Xsl.XsltOld.Compiler):this (FullOpts) 10 (0.58 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:FinalOptimize():System.Text.RegularExpressions.RegexNode:this (FullOpts) (2 methods) 9 (3.67 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcParameterCollection:Replace(int,System.Object):this (FullOpts) 8 (1.48 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:ReduceExpressionConditional():System.Text.RegularExpressions.RegexNode:this (FullOpts) 6 (1.31 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.SectionRecord:AddLocationInputImpl(System.Configuration.SectionInput,ubyte):this (FullOpts) 6 (0.45 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:g__ExtractCommonPrefixOneNotoneSet|41_1(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (FullOpts) 4 (0.85 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:Clone():System.Data.SortExpressionBuilder`1[double]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:CloneCast[long]():System.Data.SortExpressionBuilder`1[long]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]:this (FullOpts) 4 (0.52 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:CloneCast[System.__Canon]():System.Data.SortExpressionBuilder`1[System.__Canon]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:CloneCast[System.Nullable`1[int]]():System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:CloneCast[System.Numerics.Vector`1[float]]():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:CloneCast[ubyte]():System.Data.SortExpressionBuilder`1[ubyte]:this (FullOpts) 4 (0.85 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:Clone():System.Data.SortExpressionBuilder`1[int]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:CloneCast[long]():System.Data.SortExpressionBuilder`1[long]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]:this (FullOpts) 4 (0.52 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:CloneCast[System.__Canon]():System.Data.SortExpressionBuilder`1[System.__Canon]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:CloneCast[System.Nullable`1[int]]():System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:CloneCast[System.Numerics.Vector`1[float]]():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:CloneCast[ubyte]():System.Data.SortExpressionBuilder`1[ubyte]:this (FullOpts) 4 (0.85 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:Clone():System.Data.SortExpressionBuilder`1[long]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:CloneCast[long]():System.Data.SortExpressionBuilder`1[long]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]:this (FullOpts) 4 (0.52 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:CloneCast[System.__Canon]():System.Data.SortExpressionBuilder`1[System.__Canon]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:CloneCast[System.Nullable`1[int]]():System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:CloneCast[System.Numerics.Vector`1[float]]():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:CloneCast[ubyte]():System.Data.SortExpressionBuilder`1[ubyte]:this (FullOpts) 4 (0.85 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:Clone():System.Data.SortExpressionBuilder`1[short]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:CloneCast[long]():System.Data.SortExpressionBuilder`1[long]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]:this (FullOpts) 4 (0.52 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:CloneCast[System.__Canon]():System.Data.SortExpressionBuilder`1[System.__Canon]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:CloneCast[System.Nullable`1[int]]():System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:CloneCast[System.Numerics.Vector`1[float]]():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:CloneCast[ubyte]():System.Data.SortExpressionBuilder`1[ubyte]:this (FullOpts) 4 (0.85 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:Clone():System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:CloneCast[long]():System.Data.SortExpressionBuilder`1[long]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]:this (FullOpts) 4 (0.52 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:CloneCast[System.__Canon]():System.Data.SortExpressionBuilder`1[System.__Canon]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:CloneCast[System.Nullable`1[int]]():System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:CloneCast[System.Numerics.Vector`1[float]]():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:CloneCast[ubyte]():System.Data.SortExpressionBuilder`1[ubyte]:this (FullOpts) 4 (0.85 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:Clone():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this (FullOpts) Top method improvements (bytes): -5 (-1.38 % of base) : System.Data.Common.dasm - System.Data.DataViewListener:UnregisterListChangedEvent():this (FullOpts) -4 (-2.25 % of base) : System.Data.Common.dasm - System.Data.Index:ListChangedRemove(System.Data.DataViewListener):this (FullOpts) -4 (-1.48 % of base) : System.Net.HttpListener.dasm - System.Net.HttpListener:GetContextFromQueue():System.Net.HttpListenerContext:this (FullOpts) -4 (-0.13 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexParser:AssignNameSlots():this (FullOpts) (2 methods) -3 (-0.45 % of base) : System.Net.HttpListener.dasm - System.Net.HttpListener:RegisterContext(System.Net.HttpListenerContext):this (FullOpts) Top method regressions (percentages): 50 (14.01 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1[double]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[double]):ubyte:this (FullOpts) 50 (14.01 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1[int]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[int]):ubyte:this (FullOpts) 50 (14.01 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1[long]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[long]):ubyte:this (FullOpts) 50 (14.01 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1[short]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[short]):ubyte:this (FullOpts) 50 (14.01 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1[System.Nullable`1[int]]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[System.Nullable`1[int]]):ubyte:this (FullOpts) 50 (14.01 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1[System.Numerics.Vector`1[float]]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[System.Numerics.Vector`1[float]]):ubyte:this (FullOpts) 50 (14.01 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1[ubyte]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[ubyte]):ubyte:this (FullOpts) 48 (9.86 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[int]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[int]):ubyte:this (FullOpts) 48 (9.82 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[long]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[long]):ubyte:this (FullOpts) 48 (9.82 % 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) 48 (9.72 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[short]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[short]):ubyte:this (FullOpts) 48 (9.72 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[ubyte]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[ubyte]):ubyte:this (FullOpts) 47 (9.31 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+TreeSubSet[double]:BreadthFirstTreeWalk(System.Collections.Generic.TreeWalkPredicate`1[double]):ubyte:this (FullOpts) 28 (9.21 % of base) : System.Private.CoreLib.dasm - System.Globalization.CalendarData:EnumDatePatterns(System.String,ushort,int,byref):ubyte (FullOpts) 17 (8.85 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:ReplaceChild(int,System.Text.RegularExpressions.RegexNode):this (FullOpts) 39 (7.10 % 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) 74 (5.18 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentStrings():this (FullOpts) 11 (4.49 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:g__RemoveRedundantEmptiesAndNothings|41_2(System.Text.RegularExpressions.RegexNode):System.Text.RegularExpressions.RegexNode (FullOpts) 74 (4.12 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:g__ReduceSingleLetterAndNestedAlternations|41_0():this (FullOpts) 11 (3.93 % 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) 11 (3.93 % 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) 11 (3.93 % 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) 11 (3.93 % 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) 11 (3.93 % 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) 78 (3.79 % of base) : System.Private.Xml.dasm - System.Xml.Schema.ParticleContentValidator:BuildTransitionTable(System.Xml.Schema.BitSet,System.Xml.Schema.BitSet[],int):int[][]:this (FullOpts) 9 (3.67 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcParameterCollection:Replace(int,System.Object):this (FullOpts) 30 (3.65 % of base) : System.Private.CoreLib.dasm - System.Globalization.CalendarData:FixDefaultShortDatePattern(System.Collections.Generic.List`1[System.String]) (FullOpts) 22 (3.30 % of base) : System.Diagnostics.Process.dasm - System.Diagnostics.AsyncStreamReader:MoveLinesFromStringBuilderToMessageQueue():this (FullOpts) 36 (2.86 % 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) 36 (2.84 % 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) 81 (2.64 % of base) : System.Net.Security.dasm - System.Net.Security.SslStreamCertificateContext+d__32:MoveNext():this (FullOpts) 29 (2.32 % 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) 29 (2.26 % 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) 17 (1.58 % 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) 17 (1.58 % 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) 17 (1.58 % 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) 17 (1.58 % 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) 17 (1.57 % 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) 8 (1.48 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:ReduceExpressionConditional():System.Text.RegularExpressions.RegexNode:this (FullOpts) 30 (1.41 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts) (2 methods) 6 (1.31 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.SectionRecord:AddLocationInputImpl(System.Configuration.SectionInput,ubyte):this (FullOpts) 11 (1.23 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.XsltOld.TemplateAction:AnalyzePriority(System.Xml.Xsl.XsltOld.Compiler):this (FullOpts) 13 (1.21 % of base) : System.Private.CoreLib.dasm - System.Threading.TimerQueue:TimerThread() (FullOpts) 18 (0.98 % of base) : System.Diagnostics.Process.dasm - System.Diagnostics.AsyncStreamReader+d__16:MoveNext():this (FullOpts) 12 (0.90 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:ReduceAtomic():System.Text.RegularExpressions.RegexNode:this (FullOpts) 4 (0.85 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:Clone():System.Data.SortExpressionBuilder`1[double]:this (FullOpts) 4 (0.85 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:Clone():System.Data.SortExpressionBuilder`1[int]:this (FullOpts) 4 (0.85 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:Clone():System.Data.SortExpressionBuilder`1[long]:this (FullOpts) 4 (0.85 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:Clone():System.Data.SortExpressionBuilder`1[short]:this (FullOpts) 4 (0.85 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:Clone():System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:this (FullOpts) 4 (0.85 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:Clone():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this (FullOpts) 4 (0.85 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[ubyte]:Clone():System.Data.SortExpressionBuilder`1[ubyte]:this (FullOpts) 13 (0.81 % 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.80 % 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.80 % 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.80 % 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.80 % 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.73 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:ReduceConcatenationWithAdjacentLoops():this (FullOpts) 1 (0.69 % of base) : System.Data.Common.dasm - System.Data.Common.DataColumnMappingCollection:Replace(int,System.Data.Common.DataColumnMapping):this (FullOpts) 1 (0.69 % of base) : System.Data.Common.dasm - System.Data.Common.DataTableMappingCollection:Replace(int,System.Data.Common.DataTableMapping):this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:CloneCast[long]():System.Data.SortExpressionBuilder`1[long]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:CloneCast[System.Nullable`1[int]]():System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:CloneCast[System.Numerics.Vector`1[float]]():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:CloneCast[ubyte]():System.Data.SortExpressionBuilder`1[ubyte]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:CloneCast[long]():System.Data.SortExpressionBuilder`1[long]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:CloneCast[System.Nullable`1[int]]():System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:CloneCast[System.Numerics.Vector`1[float]]():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:CloneCast[ubyte]():System.Data.SortExpressionBuilder`1[ubyte]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:CloneCast[long]():System.Data.SortExpressionBuilder`1[long]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:CloneCast[System.Nullable`1[int]]():System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:CloneCast[System.Numerics.Vector`1[float]]():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:CloneCast[ubyte]():System.Data.SortExpressionBuilder`1[ubyte]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:CloneCast[long]():System.Data.SortExpressionBuilder`1[long]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:CloneCast[System.Nullable`1[int]]():System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:CloneCast[System.Numerics.Vector`1[float]]():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:CloneCast[ubyte]():System.Data.SortExpressionBuilder`1[ubyte]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:CloneCast[long]():System.Data.SortExpressionBuilder`1[long]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:CloneCast[System.Nullable`1[int]]():System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:CloneCast[System.Numerics.Vector`1[float]]():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:CloneCast[ubyte]():System.Data.SortExpressionBuilder`1[ubyte]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:CloneCast[long]():System.Data.SortExpressionBuilder`1[long]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]:this (FullOpts) 4 (0.64 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:CloneCast[System.Nullable`1[int]]():System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:this (FullOpts) Top method improvements (percentages): -4 (-2.25 % of base) : System.Data.Common.dasm - System.Data.Index:ListChangedRemove(System.Data.DataViewListener):this (FullOpts) -4 (-1.48 % of base) : System.Net.HttpListener.dasm - System.Net.HttpListener:GetContextFromQueue():System.Net.HttpListenerContext:this (FullOpts) -5 (-1.38 % of base) : System.Data.Common.dasm - System.Data.DataViewListener:UnregisterListChangedEvent():this (FullOpts) -3 (-0.45 % of base) : System.Net.HttpListener.dasm - System.Net.HttpListener:RegisterContext(System.Net.HttpListenerContext):this (FullOpts) -4 (-0.13 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexParser:AssignNameSlots():this (FullOpts) (2 methods) 135 total methods with Code Size differences (5 improved, 130 regressed), 236805 unchanged. -------------------------------------------------------------------------------- ```

Artifacts:

MihuBot commented 5 months ago

Top method regressions

30 (3.65 % of base) - System.Globalization.CalendarData:FixDefaultShortDatePattern(System.Collections.Generic.List`1[System.String]) ```diff ; Assembly listing for method System.Globalization.CalendarData:FixDefaultShortDatePattern(System.Collections.Generic.List`1[System.String]) (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 7 single block inlinees; 8 inlinees without PGO data ; Final local variable assignments ; -; V00 arg0 [V00,T07] ( 22, 23 ) ref -> rbx class-hnd single-def +; V00 arg0 [V00,T07] ( 21, 22.50) ref -> rbx class-hnd single-def ; V01 loc0 [V01,T02] ( 13, 47.50) ref -> r15 class-hnd exact single-def -; V02 loc1 [V02 ] ( 19, 53.50) struct (16) [rbp-0x28] do-not-enreg[XS] must-init addr-exposed ld-addr-op +; V02 loc1 [V02 ] ( 19, 53.50) struct (16) [rbp-0x30] do-not-enreg[XS] must-init addr-exposed ld-addr-op ; V03 loc2 [V03,T00] ( 36,151.08) int -> rax -; V04 loc3 [V04,T20] ( 4, 2 ) int -> rcx +; V04 loc3 [V04,T22] ( 4, 2 ) int -> rcx ;* V05 loc4 [V05 ] ( 0, 0 ) struct (16) zero-ref -; V06 loc5 [V06,T06] ( 9, 25.50) int -> r14 +; V06 loc5 [V06,T06] ( 10, 26 ) int -> r13 ;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V08 tmp1 [V08 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ; V09 tmp2 [V09,T04] ( 5, 28 ) ref -> rdi class-hnd exact "impAppendStmt" -; V10 tmp3 [V10,T24] ( 2, 2 ) long -> rax "Inlining Arg" -; V11 tmp4 [V11,T23] ( 2, 2 ) ref -> rdx class-hnd exact single-def "Inlining Arg" -; V12 tmp5 [V12,T05] ( 5, 28 ) ref -> rsi class-hnd "Inlining Arg" +; V10 tmp3 [V10,T26] ( 2, 2 ) long -> rax "Inlining Arg" +; V11 tmp4 [V11,T25] ( 2, 2 ) ref -> rax class-hnd exact single-def "Inlining Arg" +; V12 tmp5 [V12,T05] ( 5, 28 ) ref -> rsi class-hnd exact "Inlining Arg" ; V13 tmp6 [V13,T14] ( 2, 4 ) ubyte -> rax "Inline return value spill temp" ; V14 tmp7 [V14,T15] ( 2, 8 ) byref -> rdi "impAppendStmt" -; V15 tmp8 [V15,T25] ( 3, 1.50) ref -> rdi class-hnd single-def "Inline stloc first use temp" -; V16 tmp9 [V16,T21] ( 4, 2 ) int -> rsi "Inline stloc first use temp" -; V17 tmp10 [V17 ] ( 10, 27 ) byref -> [rbp-0x28] do-not-enreg[X] addr-exposed "field V02._reference (fldOffset=0x0)" P-DEP -; V18 tmp11 [V18 ] ( 10, 27 ) int -> [rbp-0x20] do-not-enreg[X] addr-exposed "field V02._length (fldOffset=0x8)" P-DEP +; V15 tmp8 [V15,T27] ( 3, 1.50) ref -> rdi class-hnd exact single-def "Inline stloc first use temp" +; V16 tmp9 [V16,T23] ( 4, 2 ) int -> rsi "Inline stloc first use temp" +; V17 tmp10 [V17 ] ( 10, 27 ) byref -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V02._reference (fldOffset=0x0)" P-DEP +; V18 tmp11 [V18 ] ( 10, 27 ) int -> [rbp-0x28] do-not-enreg[X] addr-exposed "field V02._length (fldOffset=0x8)" P-DEP ;* V19 tmp12 [V19 ] ( 0, 0 ) byref -> zero-ref "field V05._reference (fldOffset=0x0)" P-INDEP ;* V20 tmp13 [V20 ] ( 0, 0 ) int -> zero-ref "field V05._length (fldOffset=0x8)" P-INDEP -; V21 tmp14 [V21,T28] ( 2, 1 ) byref -> rax single-def "field V08._reference (fldOffset=0x0)" P-INDEP -; V22 tmp15 [V22,T29] ( 2, 1 ) int -> rcx "field V08._length (fldOffset=0x8)" P-INDEP +; V21 tmp14 [V21,T31] ( 2, 1 ) byref -> rax single-def "field V08._reference (fldOffset=0x0)" P-INDEP +; V22 tmp15 [V22,T32] ( 2, 1 ) int -> rcx "field V08._length (fldOffset=0x8)" P-INDEP ; V23 tmp16 [V23,T19] ( 3, 3 ) ref -> rax single-def "arr expr" -; V24 tmp17 [V24,T08] ( 3, 24 ) ref -> rdi "arr expr" -; V25 tmp18 [V25,T09] ( 2, 16 ) ref -> rsi "arr expr" -; V26 GsCookie [V26 ] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[X] addr-exposed "GSSecurityCookie" -; V27 cse0 [V27,T13] ( 3, 10 ) int -> rcx "CSE - moderate" -; V28 cse1 [V28,T30] ( 2, 1 ) int -> rax "CSE - moderate" -; V29 cse2 [V29,T11] ( 3, 12 ) int -> rdx "CSE - moderate" -; V30 cse3 [V30,T10] ( 3, 12 ) ref -> rsi "CSE - moderate" -; V31 cse4 [V31,T26] ( 3, 1.50) long -> rdx "CSE - moderate" -; V32 cse5 [V32,T03] ( 15, 30.54) int -> rdi "CSE - aggressive" -; V33 cse6 [V33,T16] ( 2, 8 ) int -> rax "CSE - moderate" -; V34 cse7 [V34,T12] ( 3, 11.88) int -> rcx "CSE - moderate" -; V35 cse8 [V35,T18] ( 7, 3.50) int -> rsi "CSE - moderate" -; V36 cse9 [V36,T17] ( 3, 6 ) int -> rdx "CSE - moderate" -; V37 cse10 [V37,T22] ( 4, 2 ) int -> rcx "CSE - moderate" -; V38 cse11 [V38,T27] ( 3, 1.50) int -> rax "CSE - moderate" -; V39 cse12 [V39,T01] ( 3, 48 ) long -> rdx "CSE - aggressive" +; V24 tmp17 [V24,T20] ( 3, 3 ) ref -> rdi single-def "arr expr" +; V25 tmp18 [V25,T08] ( 3, 24 ) ref -> rdi "arr expr" +; V26 tmp19 [V26,T09] ( 2, 16 ) ref -> rsi "arr expr" +; V27 tmp20 [V27,T21] ( 3, 3 ) ref -> rdi single-def "arr expr" +; V28 GsCookie [V28 ] ( 1, 1 ) long -> [rbp-0x38] do-not-enreg[X] addr-exposed "GSSecurityCookie" +; V29 cse0 [V29,T13] ( 3, 10 ) int -> rcx "CSE - moderate" +; V30 cse1 [V30,T33] ( 2, 1 ) int -> rax "CSE - moderate" +; V31 cse2 [V31,T11] ( 3, 12 ) int -> rdx "CSE - moderate" +; V32 cse3 [V32,T10] ( 3, 12 ) ref -> rsi "CSE - moderate" +; V33 cse4 [V33,T28] ( 3, 1.50) long -> rdx "CSE - moderate" +; V34 cse5 [V34,T29] ( 3, 1.50) int -> r14 "CSE - moderate" +; V35 cse6 [V35,T03] ( 15, 30.54) int -> rdi "CSE - aggressive" +; V36 cse7 [V36,T16] ( 2, 8 ) int -> rax "CSE - moderate" +; V37 cse8 [V37,T12] ( 3, 11.88) int -> rcx "CSE - moderate" +; V38 cse9 [V38,T18] ( 7, 3.50) int -> rsi "CSE - moderate" +; V39 cse10 [V39,T17] ( 3, 6 ) int -> rdx "CSE - moderate" +; V40 cse11 [V40,T24] ( 4, 2 ) int -> rcx "CSE - moderate" +; V41 cse12 [V41,T30] ( 3, 1.50) int -> rax "CSE - moderate" +; V42 cse13 [V42,T01] ( 3, 48 ) long -> rdx "CSE - aggressive" ; -; Lcl frame size = 24 +; Lcl frame size = 32 G_M28069_IG01: push rbp push r15 push r14 + push r13 push rbx - sub rsp, 24 - lea rbp, [rsp+0x30] + sub rsp, 32 + lea rbp, [rsp+0x40] xor eax, eax - mov qword ptr [rbp-0x28], rax - mov qword ptr [rbp-0x30], 0xD1FFAB1E + mov qword ptr [rbp-0x30], rax + mov qword ptr [rbp-0x38], 0xD1FFAB1E mov rbx, rdi - ;; size=32 bbWeight=1 PerfScore 7.25 + ;; size=34 bbWeight=1 PerfScore 8.25 G_M28069_IG02: cmp dword ptr [rbx+0x10], 0 je G_M28069_IG26 ;; size=10 bbWeight=1 PerfScore 4.00 G_M28069_IG03: mov rax, gword ptr [rbx+0x08] cmp dword ptr [rax+0x08], 0 jbe G_M28069_IG30 mov r15, gword ptr [rax+0x10] mov edi, dword ptr [r15+0x08] cmp edi, 100 jg G_M28069_IG26 lea ecx, [rdi+0x02] mov eax, ecx mov esi, 2 mul rdx:rax, rsi jb G_M28069_IG29 test rax, rax je SHORT G_M28069_IG05 mov rdx, rax add rdx, 15 and rdx, -16 neg rdx add rdx, rsp jb SHORT G_M28069_IG04 xor edx, edx ;; size=76 bbWeight=0.50 PerfScore 10.00 G_M28069_IG04: test dword ptr [rsp], esp sub rsp, 0x1000 cmp rsp, rdx jae SHORT G_M28069_IG04 mov rsp, rdx lea rax, [rsp] ;; size=22 bbWeight=0.50 PerfScore 2.62 G_M28069_IG05: test ecx, ecx jl G_M28069_IG31 - mov bword ptr [rbp-0x28], rax - mov dword ptr [rbp-0x20], ecx + mov bword ptr [rbp-0x30], rax + mov dword ptr [rbp-0x28], ecx xor eax, eax test edi, edi jle G_M28069_IG14 ;; size=25 bbWeight=0.50 PerfScore 2.38 G_M28069_IG06: mov ecx, eax movzx rcx, word ptr [r15+2*rcx+0x0C] cmp ecx, 39 jne SHORT G_M28069_IG10 jmp SHORT G_M28069_IG07 align [0 bytes for IG07] ;; size=15 bbWeight=4 PerfScore 22.00 G_M28069_IG07: - cmp eax, dword ptr [rbp-0x20] + cmp eax, dword ptr [rbp-0x28] jae G_M28069_IG30 - mov rcx, bword ptr [rbp-0x28] + mov rcx, bword ptr [rbp-0x30] mov edx, eax movzx rsi, word ptr [r15+2*rdx+0x0C] mov word ptr [rcx+2*rdx], si inc eax cmp edi, eax jle SHORT G_M28069_IG08 mov ecx, eax cmp word ptr [r15+2*rcx+0x0C], 39 jne SHORT G_M28069_IG07 ;; size=42 bbWeight=16 PerfScore 208.00 G_M28069_IG08: cmp edi, eax jg SHORT G_M28069_IG11 ;; size=4 bbWeight=2 PerfScore 2.50 G_M28069_IG09: jmp G_M28069_IG26 align [0 bytes for IG16] ;; size=5 bbWeight=0.50 PerfScore 1.00 G_M28069_IG10: cmp ecx, 121 je SHORT G_M28069_IG13 ;; size=5 bbWeight=2 PerfScore 2.50 G_M28069_IG11: - cmp eax, dword ptr [rbp-0x20] + cmp eax, dword ptr [rbp-0x28] jae G_M28069_IG30 - mov rcx, bword ptr [rbp-0x28] + mov rcx, bword ptr [rbp-0x30] mov edx, eax mov esi, eax movzx rsi, word ptr [r15+2*rsi+0x0C] mov word ptr [rcx+2*rdx], si inc eax cmp edi, eax jg SHORT G_M28069_IG06 ;; size=33 bbWeight=4 PerfScore 36.00 G_M28069_IG12: jmp SHORT G_M28069_IG14 ;; size=2 bbWeight=0.50 PerfScore 1.00 G_M28069_IG13: - cmp eax, dword ptr [rbp-0x20] + cmp eax, dword ptr [rbp-0x28] jae G_M28069_IG30 - mov rcx, bword ptr [rbp-0x28] + mov rcx, bword ptr [rbp-0x30] mov edx, eax mov word ptr [rcx+2*rdx], 121 ;; size=21 bbWeight=0.50 PerfScore 2.62 G_M28069_IG14: lea ecx, [rdi-0x01] cmp ecx, eax jle G_M28069_IG26 lea ecx, [rax+0x01] cmp ecx, edi jae G_M28069_IG30 mov edx, ecx cmp word ptr [r15+2*rdx+0x0C], 121 jne G_M28069_IG26 lea esi, [rax+0x02] cmp edi, esi jle SHORT G_M28069_IG15 cmp esi, edi jae G_M28069_IG30 mov r8d, esi cmp word ptr [r15+2*r8+0x0C], 121 je G_M28069_IG26 ;; size=68 bbWeight=0.50 PerfScore 7.50 G_M28069_IG15: - cmp ecx, dword ptr [rbp-0x20] + cmp ecx, dword ptr [rbp-0x28] jae G_M28069_IG30 - mov rcx, bword ptr [rbp-0x28] + mov rcx, bword ptr [rbp-0x30] mov word ptr [rcx+2*rdx], 121 - cmp esi, dword ptr [rbp-0x20] + cmp esi, dword ptr [rbp-0x28] jae G_M28069_IG30 - mov rcx, bword ptr [rbp-0x28] + mov rcx, bword ptr [rbp-0x30] mov edx, esi mov word ptr [rcx+2*rdx], 121 add eax, 3 - cmp eax, dword ptr [rbp-0x20] + cmp eax, dword ptr [rbp-0x28] jae G_M28069_IG30 - mov rcx, bword ptr [rbp-0x28] + mov rcx, bword ptr [rbp-0x30] mov word ptr [rcx+2*rax], 121 mov eax, esi cmp edi, eax jle SHORT G_M28069_IG19 test eax, eax jl SHORT G_M28069_IG18 ;; size=72 bbWeight=0.50 PerfScore 9.12 G_M28069_IG16: lea ecx, [rax+0x02] - cmp ecx, dword ptr [rbp-0x20] + cmp ecx, dword ptr [rbp-0x28] jae G_M28069_IG30 - mov rdx, bword ptr [rbp-0x28] + mov rdx, bword ptr [rbp-0x30] mov esi, eax movzx rsi, word ptr [r15+2*rsi+0x0C] mov word ptr [rdx+2*rcx], si inc eax cmp edi, eax jg SHORT G_M28069_IG16 ;; size=34 bbWeight=3.96 PerfScore 36.63 G_M28069_IG17: jmp SHORT G_M28069_IG19 ;; size=2 bbWeight=0.50 PerfScore 1.00 G_M28069_IG18: lea ecx, [rax+0x02] - cmp ecx, dword ptr [rbp-0x20] + cmp ecx, dword ptr [rbp-0x28] jae G_M28069_IG30 - mov rcx, bword ptr [rbp-0x28] + mov rcx, bword ptr [rbp-0x30] lea edx, [rax+0x02] cmp eax, edi jae G_M28069_IG30 mov esi, eax movzx rsi, word ptr [r15+2*rsi+0x0C] mov word ptr [rcx+2*rdx], si inc eax cmp edi, eax jg SHORT G_M28069_IG18 ;; size=45 bbWeight=0.04 PerfScore 0.44 G_M28069_IG19: - lea rdi, [rbp-0x28] + lea rdi, [rbp-0x30] mov rax, 0xD1FFAB1E ; code for System.Span`1[ushort]:ToString():System.String:this call [rax]System.Span`1[ushort]:ToString():System.String:this - mov rdx, rax - cmp dword ptr [rbx+0x10], 0 + mov r14d, dword ptr [rbx+0x10] + test r14d, r14d je G_M28069_IG32 mov rdi, gword ptr [rbx+0x08] - xor esi, esi - call CORINFO_HELP_ARRADDR_ST + cmp dword ptr [rdi+0x08], 0 + jbe G_M28069_IG30 + lea rdi, bword ptr [rdi+0x10] + mov rsi, rax + call CORINFO_HELP_ASSIGN_REF inc dword ptr [rbx+0x14] - mov r14d, 1 - cmp dword ptr [rbx+0x10], 1 + mov r13d, 1 + cmp r14d, 1 jle SHORT G_M28069_IG23 - ;; size=55 bbWeight=0.50 PerfScore 9.25 + ;; size=70 bbWeight=0.50 PerfScore 9.62 G_M28069_IG20: mov edx, dword ptr [rbx+0x10] - cmp r14d, edx + cmp r13d, edx jae G_M28069_IG32 mov rsi, gword ptr [rbx+0x08] mov rdi, rsi mov eax, dword ptr [rdi+0x08] - cmp r14d, eax + cmp r13d, eax jae G_M28069_IG30 - mov eax, r14d + mov eax, r13d mov rdi, gword ptr [rdi+8*rax+0x10] test edx, edx je G_M28069_IG32 mov rsi, gword ptr [rsi+0x10] cmp rdi, rsi je SHORT G_M28069_IG24 ;; size=56 bbWeight=4 PerfScore 62.00 G_M28069_IG21: test rdi, rdi je SHORT G_M28069_IG22 test rsi, rsi je SHORT G_M28069_IG22 mov edx, dword ptr [rdi+0x08] cmp edx, dword ptr [rsi+0x08] jne SHORT G_M28069_IG22 add rdi, 12 add edx, edx add rsi, 12 mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte call [rax]System.SpanHelpers:SequenceEqual(byref,byref,ulong):ubyte test eax, eax jne SHORT G_M28069_IG24 ;; size=44 bbWeight=2 PerfScore 27.50 G_M28069_IG22: - inc r14d - cmp r14d, dword ptr [rbx+0x10] + inc r13d + cmp r13d, dword ptr [rbx+0x10] jl SHORT G_M28069_IG20 ;; size=9 bbWeight=4 PerfScore 17.00 G_M28069_IG23: inc dword ptr [rbx+0x14] mov rdi, gword ptr [rbx+0x08] mov esi, dword ptr [rbx+0x10] mov eax, dword ptr [rdi+0x08] cmp eax, esi jbe SHORT G_M28069_IG25 lea eax, [rsi+0x01] mov dword ptr [rbx+0x10], eax lea rdi, bword ptr [rdi+8*rsi+0x10] mov rsi, r15 call CORINFO_HELP_ASSIGN_REF jmp SHORT G_M28069_IG26 ;; size=38 bbWeight=0.50 PerfScore 8.00 G_M28069_IG24: - cmp r14d, dword ptr [rbx+0x10] + cmp r13d, dword ptr [rbx+0x10] jae SHORT G_M28069_IG32 mov rdi, gword ptr [rbx+0x08] - movsxd rsi, r14d - mov rdx, r15 - call CORINFO_HELP_ARRADDR_ST + cmp r13d, dword ptr [rdi+0x08] + jae SHORT G_M28069_IG30 + mov esi, r13d + lea rdi, bword ptr [rdi+8*rsi+0x10] + mov rsi, r15 + call CORINFO_HELP_ASSIGN_REF inc dword ptr [rbx+0x14] jmp SHORT G_M28069_IG26 - ;; size=26 bbWeight=0.50 PerfScore 6.25 + ;; size=37 bbWeight=0.50 PerfScore 8.75 G_M28069_IG25: mov rdi, rbx mov rsi, r15 mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this call [rax]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this ;; size=18 bbWeight=0.50 PerfScore 1.88 G_M28069_IG26: - cmp qword ptr [rbp-0x30], 0xD1FFAB1E + cmp qword ptr [rbp-0x38], 0xD1FFAB1E je SHORT G_M28069_IG27 call CORINFO_HELP_FAIL_FAST ;; size=15 bbWeight=1 PerfScore 4.00 G_M28069_IG27: nop ;; size=1 bbWeight=1 PerfScore 0.25 G_M28069_IG28: - lea rsp, [rbp-0x18] + lea rsp, [rbp-0x20] pop rbx + pop r13 pop r14 pop r15 pop rbp ret - ;; size=11 bbWeight=1 PerfScore 3.50 + ;; size=13 bbWeight=1 PerfScore 4.00 G_M28069_IG29: call CORINFO_HELP_OVERFLOW ;; size=5 bbWeight=0 PerfScore 0.00 G_M28069_IG30: call CORINFO_HELP_RNGCHKFAIL ;; size=5 bbWeight=0 PerfScore 0.00 G_M28069_IG31: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRangeException() call [rax]System.ThrowHelper:ThrowArgumentOutOfRangeException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 G_M28069_IG32: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -; Total bytes of code 822, prolog size 32, PerfScore 578.80, instruction count 233, allocated bytes for code 826 (MethodHash=bd52925a) for method System.Globalization.CalendarData:FixDefaultShortDatePattern(System.Collections.Generic.List`1[System.String]) (FullOpts) +; Total bytes of code 852, prolog size 34, PerfScore 586.17, instruction count 241, allocated bytes for code 856 (MethodHash=bd52925a) for method System.Globalization.CalendarData:FixDefaultShortDatePattern(System.Collections.Generic.List`1[System.String]) (FullOpts) ```
28 (9.21 % of base) - System.Globalization.CalendarData:EnumDatePatterns(System.String,ushort,int,byref):ubyte ```diff ; Assembly listing for method System.Globalization.CalendarData:EnumDatePatterns(System.String,ushort,int,byref):ubyte (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 5 single block inlinees; 2 inlinees without PGO data ; Final local variable assignments ; -; V00 arg0 [V00,T07] ( 3, 3 ) ref -> r14 class-hnd single-def -; V01 arg1 [V01,T08] ( 3, 3 ) ushort -> r13 single-def -; V02 arg2 [V02,T06] ( 4, 3.50) int -> r15 single-def -; V03 arg3 [V03,T05] ( 4, 3.50) byref -> rbx single-def +; V00 arg0 [V00,T10] ( 3, 3 ) ref -> r14 class-hnd single-def +; V01 arg1 [V01,T11] ( 3, 3 ) ushort -> r13 single-def +; V02 arg2 [V02,T09] ( 4, 3.50) int -> r15 single-def +; V03 arg3 [V03,T08] ( 4, 3.50) byref -> rbx single-def ; V04 loc0 [V04 ] ( 5, 4.50) struct (16) [rbp-0x38] do-not-enreg[XS] addr-exposed ld-addr-op -; V05 loc1 [V05,T09] ( 3, 3 ) ubyte -> r14 -; V06 loc2 [V06,T01] ( 11, 30 ) ref -> r13 class-hnd single-def +; V05 loc1 [V05,T12] ( 3, 3 ) ubyte -> r14 +; V06 loc2 [V06,T01] ( 10, 26 ) ref -> r13 class-hnd single-def ; V07 loc3 [V07,T00] ( 9, 32.50) int -> r12 ;# V08 OutArgs [V08 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V09 tmp1 [V09,T04] ( 3, 6 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" +; V09 tmp1 [V09,T07] ( 3, 6 ) ref -> rax class-hnd exact single-def "NewObj constructor temp" ;* V10 tmp2 [V10 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -; V11 tmp3 [V11,T03] ( 2, 16 ) ref -> rdx class-hnd exact "Inlining Arg" +; V11 tmp3 [V11,T04] ( 2, 16 ) ref -> rax class-hnd exact "Inlining Arg" ; V12 tmp4 [V12 ] ( 4, 3.50) ref -> [rbp-0x38] do-not-enreg[X] addr-exposed "field V04.Results (fldOffset=0x0)" P-DEP ; V13 tmp5 [V13 ] ( 3, 3 ) ubyte -> [rbp-0x30] do-not-enreg[X] addr-exposed "field V04.DisallowDuplicates (fldOffset=0x8)" P-DEP ; V14 tmp6 [V14,T02] ( 3, 24 ) ref -> rdi "arr expr" +; V15 tmp7 [V15,T03] ( 3, 24 ) ref -> rdi "arr expr" +; V16 cse0 [V16,T05] ( 3, 12 ) int -> [rbp-0x3C] spill-single-def "CSE - aggressive" +; V17 cse1 [V17,T06] ( 3, 12 ) long -> [rbp-0x48] spill-single-def "CSE - aggressive" ; -; Lcl frame size = 24 +; Lcl frame size = 40 G_M35446_IG01: push rbp push r15 push r14 push r13 push r12 push rbx - sub rsp, 24 + sub rsp, 40 vzeroupper - lea rbp, [rsp+0x40] + lea rbp, [rsp+0x50] mov r14, rdi mov r13d, esi mov r15d, edx mov rbx, rcx ;; size=34 bbWeight=1 PerfScore 8.75 G_M35446_IG02: xor rdi, rdi mov gword ptr [rbx], rdi vxorps xmm0, xmm0, xmm0 vmovdqu xmmword ptr [rbp-0x38], xmm0 mov rdi, 0xD1FFAB1E ; System.Collections.Generic.List`1[System.String] call CORINFO_HELP_NEWSFAST mov rdx, 0xD1FFAB1E ; 'System.String[]' mov gword ptr [rax+0x08], rdx mov gword ptr [rbp-0x38], rax mov byte ptr [rbp-0x30], 1 movzx rdx, r13w lea r8, [rbp-0x38] mov rsi, r14 mov ecx, r15d mov rdi, 0xD1FFAB1E ; code for System.Globalization.CalendarData:EnumCalendarInfoCallback(ulong,long) mov rax, 0xD1FFAB1E ; code for Interop+Globalization:EnumCalendarInfo(long,System.String,ushort,int,long):ubyte call [rax]Interop+Globalization:EnumCalendarInfo(long,System.String,ushort,int,long):ubyte mov r14d, eax test r14d, r14d je G_M35446_IG07 ;; size=99 bbWeight=1 PerfScore 13.33 G_M35446_IG03: mov r13, gword ptr [rbp-0x38] xor r12d, r12d cmp dword ptr [r13+0x10], 0 jle SHORT G_M35446_IG05 ;; size=14 bbWeight=0.50 PerfScore 2.62 G_M35446_IG04: cmp r12d, dword ptr [r13+0x10] jae G_M35446_IG10 mov rdi, gword ptr [r13+0x08] cmp r12d, dword ptr [rdi+0x08] - jae SHORT G_M35446_IG09 + jae G_M35446_IG09 mov eax, r12d + mov qword ptr [rbp-0x48], rax mov rdi, gword ptr [rdi+8*rax+0x10] - mov rax, 0xD1FFAB1E ; code for System.Globalization.CalendarData:NormalizeDatePattern(System.String):System.String - call [rax]System.Globalization.CalendarData:NormalizeDatePattern(System.String):System.String - mov rdx, rax - cmp r12d, dword ptr [r13+0x10] + mov rcx, 0xD1FFAB1E ; code for System.Globalization.CalendarData:NormalizeDatePattern(System.String):System.String + call [rcx]System.Globalization.CalendarData:NormalizeDatePattern(System.String):System.String + mov ecx, dword ptr [r13+0x10] + mov dword ptr [rbp-0x3C], ecx + cmp r12d, ecx jae SHORT G_M35446_IG10 mov rdi, gword ptr [r13+0x08] - movsxd rsi, r12d - call CORINFO_HELP_ARRADDR_ST + cmp r12d, dword ptr [rdi+0x08] + jae SHORT G_M35446_IG09 + mov rsi, qword ptr [rbp-0x48] + lea rdi, bword ptr [rdi+8*rsi+0x10] + mov rsi, rax + call CORINFO_HELP_ASSIGN_REF inc dword ptr [r13+0x14] inc r12d - cmp r12d, dword ptr [r13+0x10] + mov edi, dword ptr [rbp-0x3C] + cmp r12d, edi jl SHORT G_M35446_IG04 - ;; size=74 bbWeight=4 PerfScore 121.00 + ;; size=102 bbWeight=4 PerfScore 142.00 G_M35446_IG05: cmp r15d, 3 jne SHORT G_M35446_IG06 mov rdi, r13 mov rax, 0xD1FFAB1E ; code for System.Globalization.CalendarData:FixDefaultShortDatePattern(System.Collections.Generic.List`1[System.String]) call [rax]System.Globalization.CalendarData:FixDefaultShortDatePattern(System.Collections.Generic.List`1[System.String]) ;; size=21 bbWeight=0.50 PerfScore 2.38 G_M35446_IG06: mov rdi, r13 mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:ToArray():System.__Canon[]:this call [rax]System.Collections.Generic.List`1[System.__Canon]:ToArray():System.__Canon[]:this mov rsi, rax mov rdi, rbx call CORINFO_HELP_CHECKED_ASSIGN_REF ;; size=26 bbWeight=0.50 PerfScore 2.50 G_M35446_IG07: mov eax, r14d ;; size=3 bbWeight=1 PerfScore 0.25 G_M35446_IG08: - add rsp, 24 + add rsp, 40 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.25 G_M35446_IG09: call CORINFO_HELP_RNGCHKFAIL ;; size=5 bbWeight=0 PerfScore 0.00 G_M35446_IG10: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -; Total bytes of code 304, prolog size 22, PerfScore 185.48, instruction count 80, allocated bytes for code 304 (MethodHash=99757589) for method System.Globalization.CalendarData:EnumDatePatterns(System.String,ushort,int,byref):ubyte (FullOpts) +; Total bytes of code 332, prolog size 22, PerfScore 209.28, instruction count 87, allocated bytes for code 332 (MethodHash=99757589) for method System.Globalization.CalendarData:EnumDatePatterns(System.String,ushort,int,byref):ubyte (FullOpts) ```
13 (1.21 % of base) - System.Threading.TimerQueue:TimerThread() ```diff ; Assembly listing for method System.Threading.TimerQueue:TimerThread() (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 17 single block inlinees; 15 inlinees without PGO data ; Final local variable assignments ; -; V00 loc0 [V00,T21] ( 7, 196 ) ref -> rbx class-hnd exact single-def +; V00 loc0 [V00,T22] ( 7, 196 ) ref -> rbx class-hnd exact single-def ; V01 loc1 [V01,T00] ( 16,1249 ) ref -> r15 class-hnd single-def ; V02 loc2 [V02,T05] ( 9, 641 ) ref -> r14 class-hnd single-def ; V03 loc3 [V03,T11] ( 8, 392 ) int -> registers -; V04 loc4 [V04,T35] ( 2, 0 ) ref -> [rbp-0x50] class-hnd exact EH-live single-def +; V04 loc4 [V04,T37] ( 2, 0 ) ref -> [rbp-0x50] class-hnd exact EH-live single-def ; V05 loc5 [V05 ] ( 5, 4 ) ubyte -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op -; V06 loc6 [V06,T25] ( 2, 192 ) long -> r13 -; V07 loc7 [V07,T28] ( 3, 80 ) ref -> [rbp-0x58] do-not-enreg[Z] class-hnd exact EH-live +; V06 loc6 [V06,T27] ( 2, 192 ) long -> r13 +; V07 loc7 [V07,T30] ( 3, 80 ) ref -> [rbp-0x58] do-not-enreg[Z] class-hnd exact EH-live ; V08 loc8 [V08 ] ( 5, 256 ) ubyte -> [rbp-0x38] do-not-enreg[X] addr-exposed ld-addr-op -; V09 loc9 [V09,T01] ( 11,1088 ) int -> [rbp-0x3C] +; V09 loc9 [V09,T01] ( 12,1152 ) int -> [rbp-0x3C] ; V10 loc10 [V10,T09] ( 5, 448 ) ref -> rsi class-hnd exact ; V11 loc11 [V11,T13] ( 4, 384 ) long -> rcx ; V12 loc12 [V12,T12] ( 6, 384 ) int -> [rbp-0x40] spill-single-def ;* V13 loc13 [V13 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op ;* V14 loc14 [V14 ] ( 0, 0 ) ref -> zero-ref class-hnd exact ;# V15 OutArgs [V15 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V16 tmp1 [V16 ] ( 0, 0 ) int -> zero-ref ld-addr-op "Inlining Arg" -;* V17 tmp2 [V17,T29] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" -; V18 tmp3 [V18,T22] ( 3, 192 ) ref -> rdi class-hnd "Inline stloc first use temp" +;* V17 tmp2 [V17,T31] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" +; V18 tmp3 [V18,T23] ( 3, 192 ) ref -> rdi class-hnd exact "Inline stloc first use temp" ; V19 tmp4 [V19,T17] ( 4, 256 ) int -> rcx "Inline stloc first use temp" -; V20 tmp5 [V20,T19] ( 2, 256 ) ref -> rdx class-hnd "Inlining Arg" +; V20 tmp5 [V20,T19] ( 2, 256 ) ref -> rdx class-hnd exact "Inlining Arg" ;* V21 tmp6 [V21 ] ( 0, 0 ) struct (24) zero-ref ld-addr-op "NewObj constructor temp" ; V22 tmp7 [V22,T06] ( 5, 640 ) ref -> [rbp-0x60] class-hnd exact spill-single-def "Inlining Arg" ;* V23 tmp8 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" ; V24 tmp9 [V24,T14] ( 3, 384 ) ref -> [rbp-0x68] class-hnd spill-single-def "Inlining Arg" ; V25 tmp10 [V25,T07] ( 5, 640 ) ref -> [rbp-0x70] class-hnd exact "Inlining Arg" ;* V26 tmp11 [V26 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" ;* V27 tmp12 [V27 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" -;* V28 tmp13 [V28,T20] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" +;* V28 tmp13 [V28,T21] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V29 tmp14 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline stloc first use temp" ; V30 tmp15 [V30,T16] ( 3, 272 ) int -> rdx "Inline stloc first use temp" -;* V31 tmp16 [V31,T32] ( 0, 0 ) ref -> zero-ref "field V13._list (fldOffset=0x0)" P-INDEP +;* V31 tmp16 [V31,T34] ( 0, 0 ) ref -> zero-ref "field V13._list (fldOffset=0x0)" P-INDEP ; V32 tmp17 [V32,T10] ( 4, 320 ) ref -> [rbp-0x78] spill-single-def "field V13._current (fldOffset=0x8)" P-INDEP ; V33 tmp18 [V33,T02] ( 6, 656 ) int -> [rbp-0x44] "field V13._index (fldOffset=0x10)" P-INDEP -; V34 tmp19 [V34,T26] ( 2, 144 ) int -> r13 "field V13._version (fldOffset=0x14)" P-INDEP -; V35 tmp20 [V35,T30] ( 2, 32 ) ref -> rdi "field V21._list (fldOffset=0x0)" P-INDEP +; V34 tmp19 [V34,T28] ( 2, 144 ) int -> r13 "field V13._version (fldOffset=0x14)" P-INDEP +; V35 tmp20 [V35,T32] ( 2, 32 ) ref -> rdi "field V21._list (fldOffset=0x0)" P-INDEP ;* V36 tmp21 [V36 ] ( 0, 0 ) ref -> zero-ref "field V21._current (fldOffset=0x8)" P-INDEP -;* V37 tmp22 [V37,T33] ( 0, 0 ) int -> zero-ref "field V21._index (fldOffset=0x10)" P-INDEP -; V38 tmp23 [V38,T31] ( 2, 32 ) int -> r13 "field V21._version (fldOffset=0x14)" P-INDEP -; V39 tmp24 [V39,T36] ( 2, 0 ) ref -> rdx "argument with side effect" +;* V37 tmp22 [V37,T35] ( 0, 0 ) int -> zero-ref "field V21._index (fldOffset=0x10)" P-INDEP +; V38 tmp23 [V38,T33] ( 2, 32 ) int -> r13 "field V21._version (fldOffset=0x14)" P-INDEP +; V39 tmp24 [V39,T38] ( 2, 0 ) ref -> rdx "argument with side effect" ; V40 tmp25 [V40,T03] ( 3, 768 ) ref -> rdi "arr expr" ; V41 tmp26 [V41,T15] ( 3, 384 ) ref -> rdx "arr expr" -; V42 tmp27 [V42,T04] ( 3, 768 ) ref -> rsi "arr expr" -; V43 PSPSym [V43,T34] ( 1, 1 ) long -> [rbp-0x80] do-not-enreg[V] "PSPSym" -; V44 cse0 [V44,T23] ( 3, 192 ) ref -> rsi "CSE - moderate" -; V45 cse1 [V45,T08] ( 3, 384 ) int -> rdx "CSE - moderate" -; V46 cse2 [V46,T18] ( 4, 256 ) int -> rdi "CSE - moderate" -; V47 cse3 [V47,T24] ( 3, 192 ) ref -> rsi "CSE - moderate" -; V48 cse4 [V48,T27] ( 2, 128 ) int -> rdx "CSE - moderate" +; V42 tmp27 [V42,T20] ( 2, 256 ) ref -> rsi "arr expr" +; V43 tmp28 [V43,T04] ( 3, 768 ) ref -> rsi "arr expr" +; V44 PSPSym [V44,T36] ( 1, 1 ) long -> [rbp-0x80] do-not-enreg[V] "PSPSym" +; V45 cse0 [V45,T24] ( 3, 192 ) ref -> rsi "CSE - moderate" +; V46 cse1 [V46,T08] ( 3, 384 ) int -> rdx "CSE - moderate" +; V47 cse2 [V47,T18] ( 4, 256 ) int -> rdi "CSE - moderate" +; V48 cse3 [V48,T25] ( 3, 192 ) ref -> rsi "CSE - moderate" +; V49 cse4 [V49,T29] ( 2, 128 ) int -> rdx "CSE - moderate" +; V50 cse5 [V50,T26] ( 3, 192 ) int -> r8 "CSE - moderate" ; ; Lcl frame size = 88 G_M45973_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 88 lea rbp, [rsp+0x80] mov qword ptr [rbp-0x80], rsp ;; size=26 bbWeight=1 PerfScore 7.75 G_M45973_IG02: mov rsi, 0xD1FFAB1E ; const ptr mov rbx, gword ptr [rsi] mov rsi, 0xD1FFAB1E ; data for System.Threading.TimerQueue:s_scheduledTimersToFire mov r15, gword ptr [rsi] mov gword ptr [rbp-0x50], rbx xor esi, esi mov dword ptr [rbp-0x30], esi ;; size=35 bbWeight=1 PerfScore 6.75 G_M45973_IG03: cmp byte ptr [rbp-0x30], 0 jne SHORT G_M45973_IG04 lea rsi, [rbp-0x30] mov rdi, rbx call System.Threading.Monitor:ReliableEnter(System.Object,byref) mov rdi, 0xD1FFAB1E ; data for System.Threading.TimerQueue:s_scheduledTimers mov r14, gword ptr [rdi] jmp SHORT G_M45973_IG05 ;; size=33 bbWeight=1 PerfScore 9.00 G_M45973_IG04: mov rax, 0xD1FFAB1E ; code for System.Threading.Monitor:ThrowLockTakenException() call [rax]System.Threading.Monitor:ThrowLockTakenException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 G_M45973_IG05: cmp byte ptr [rbp-0x30], 0 je SHORT G_M45973_IG06 mov rdi, rbx call System.Threading.Monitor:Exit(System.Object) ;; size=14 bbWeight=1 PerfScore 4.25 G_M45973_IG06: mov r13d, -1 ;; size=6 bbWeight=8 PerfScore 2.00 G_M45973_IG07: cmp r13d, -1 jl G_M45973_IG37 mov rdi, rbx mov esi, r13d xor rdx, rdx xor ecx, ecx mov rax, 0xD1FFAB1E ; code for System.Threading.WaitHandle:WaitOneNoCheck(int,System.Object,ubyte):ubyte:this call [rax]System.Threading.WaitHandle:WaitOneNoCheck(int,System.Object,ubyte):ubyte:this call System.Environment:get_TickCount64():long mov r13, rax mov r12d, 0xD1FFAB1E mov gword ptr [rbp-0x58], rbx xor esi, esi mov dword ptr [rbp-0x38], esi ;; size=55 bbWeight=64 PerfScore 592.00 G_M45973_IG08: cmp byte ptr [rbp-0x38], 0 jne G_M45973_IG20 lea rsi, [rbp-0x38] mov rdi, rbx call System.Threading.Monitor:ReliableEnter(System.Object,byref) mov eax, dword ptr [r14+0x10] dec eax js G_M45973_IG21 ;; size=34 bbWeight=64 PerfScore 512.00 G_M45973_IG09: cmp eax, dword ptr [r14+0x10] jae G_M45973_IG16 mov rdi, gword ptr [r14+0x08] cmp eax, dword ptr [rdi+0x08] jae G_M45973_IG19 mov dword ptr [rbp-0x3C], eax mov esi, eax mov rsi, gword ptr [rdi+8*rsi+0x10] mov rcx, qword ptr [rsi+0x30] sub rcx, r13 test rcx, rcx jg G_M45973_IG18 ;; size=49 bbWeight=128 PerfScore 2144.00 G_M45973_IG10: mov byte ptr [rsi+0x3D], 0 inc dword ptr [r15+0x14] mov rdi, gword ptr [r15+0x08] mov ecx, dword ptr [r15+0x10] mov edx, dword ptr [rdi+0x08] cmp edx, ecx jbe G_M45973_IG17 lea edx, [rcx+0x01] mov dword ptr [r15+0x10], edx lea rdi, bword ptr [rdi+8*rcx+0x10] call CORINFO_HELP_ASSIGN_REF ;; size=44 bbWeight=64 PerfScore 944.00 G_M45973_IG11: mov edi, dword ptr [r14+0x10] lea eax, [rdi-0x01] mov dword ptr [rbp-0x40], eax mov ecx, dword ptr [rbp-0x3C] cmp ecx, eax je SHORT G_M45973_IG15 cmp eax, edi jae SHORT G_M45973_IG16 mov rsi, gword ptr [r14+0x08] mov rdx, rsi - cmp eax, dword ptr [rdx+0x08] + mov r8d, dword ptr [rdx+0x08] + cmp eax, r8d jae SHORT G_M45973_IG19 - mov r8d, eax - mov rdx, gword ptr [rdx+8*r8+0x10] + mov r9d, eax + mov rdx, gword ptr [rdx+8*r9+0x10] cmp ecx, edi jae SHORT G_M45973_IG16 - mov rdi, rsi + cmp ecx, r8d + jae SHORT G_M45973_IG19 mov dword ptr [rbp-0x3C], ecx - movsxd rsi, ecx - call CORINFO_HELP_ARRADDR_ST + mov edi, ecx + lea rdi, bword ptr [rsi+8*rdi+0x10] + mov rsi, rdx + call CORINFO_HELP_ASSIGN_REF inc dword ptr [r14+0x14] mov eax, dword ptr [rbp-0x40] - ;; size=66 bbWeight=64 PerfScore 1488.00 + ;; size=79 bbWeight=64 PerfScore 1584.00 G_M45973_IG12: mov rdi, r14 mov esi, eax mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this call [rax]System.Collections.Generic.List`1[System.__Canon]:RemoveAt(int):this ;; size=17 bbWeight=64 PerfScore 240.00 G_M45973_IG13: mov eax, dword ptr [rbp-0x3C] dec eax jns G_M45973_IG09 ;; size=11 bbWeight=128 PerfScore 288.00 G_M45973_IG14: jmp SHORT G_M45973_IG21 ;; size=2 bbWeight=16 PerfScore 32.00 G_M45973_IG15: mov dword ptr [rbp-0x3C], ecx jmp SHORT G_M45973_IG12 ;; size=5 bbWeight=32 PerfScore 96.00 G_M45973_IG16: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_IndexMustBeLessException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 G_M45973_IG17: mov rdi, r15 mov rcx, 0xD1FFAB1E ; code for System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this call [rcx]System.Collections.Generic.List`1[System.__Canon]:AddWithResize(System.__Canon):this jmp G_M45973_IG11 ;; size=20 bbWeight=64 PerfScore 352.00 G_M45973_IG18: movsxd rdi, r12d cmp rcx, rdi jge SHORT G_M45973_IG13 mov r12d, ecx jmp SHORT G_M45973_IG13 ;; size=13 bbWeight=64 PerfScore 240.00 G_M45973_IG19: call CORINFO_HELP_RNGCHKFAIL ;; size=5 bbWeight=0 PerfScore 0.00 G_M45973_IG20: mov rax, 0xD1FFAB1E ; code for System.Threading.Monitor:ThrowLockTakenException() call [rax]System.Threading.Monitor:ThrowLockTakenException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 G_M45973_IG21: cmp byte ptr [rbp-0x38], 0 je SHORT G_M45973_IG23 ;; size=6 bbWeight=64 PerfScore 192.00 G_M45973_IG22: mov rdi, gword ptr [rbp-0x58] call System.Threading.Monitor:Exit(System.Object) ;; size=9 bbWeight=16 PerfScore 32.00 G_M45973_IG23: cmp dword ptr [r15+0x10], 0 jle G_M45973_IG33 ;; size=11 bbWeight=64 PerfScore 256.00 G_M45973_IG24: mov rdi, r15 mov r13d, dword ptr [rdi+0x14] xor edi, edi jmp G_M45973_IG29 ;; size=14 bbWeight=16 PerfScore 72.00 G_M45973_IG25: mov rsi, 0xD1FFAB1E ; const ptr mov rcx, gword ptr [rsi] mov gword ptr [rbp-0x60], rcx cmp byte ptr [rcx+0x34], 0 je SHORT G_M45973_IG26 mov rsi, 0xD1FFAB1E ; const ptr mov rsi, gword ptr [rsi] cmp byte ptr [rsi+0x9D], 0 je SHORT G_M45973_IG26 mov rdi, rsi mov rsi, rax mov rdx, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.FrameworkEventSource:ThreadPoolEnqueueWorkObject(System.Object):this call [rdx]System.Diagnostics.Tracing.FrameworkEventSource:ThreadPoolEnqueueWorkObject(System.Object):this mov rax, gword ptr [rbp-0x78] ;; size=67 bbWeight=64 PerfScore 1168.00 G_M45973_IG26: mov rcx, gword ptr [rbp-0x60] mov rdx, gword ptr [rcx+0x10] mov gword ptr [rbp-0x68], rdx mov rdi, gword ptr [rdx+0x10] mov rsi, rax mov r8, 0xD1FFAB1E ; code for System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryEnqueue(System.__Canon):ubyte:this cmp dword ptr [rdi], edi call [r8]System.Collections.Concurrent.ConcurrentQueueSegment`1[System.__Canon]:TryEnqueue(System.__Canon):ubyte:this test eax, eax jne SHORT G_M45973_IG27 mov rdi, gword ptr [rbp-0x68] mov rsi, gword ptr [rbp-0x78] mov rax, 0xD1FFAB1E ; code for System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:EnqueueSlow(System.__Canon):this call [rax]System.Collections.Concurrent.ConcurrentQueue`1[System.__Canon]:EnqueueSlow(System.__Canon):this ;; size=58 bbWeight=64 PerfScore 1216.00 G_M45973_IG27: mov rdi, gword ptr [rbp-0x60] mov dword ptr [rdi+0x30], 1 add rdi, 116 mov ecx, 1 xor eax, eax lock cmpxchg dword ptr [rdi], ecx test eax, eax mov edi, dword ptr [rbp-0x44] jne SHORT G_M45973_IG29 mov rax, 0xD1FFAB1E ; global ptr test byte ptr [rax], 1 mov dword ptr [rbp-0x44], edi je G_M45973_IG36 ;; size=55 bbWeight=64 PerfScore 1808.00 G_M45973_IG28: mov rax, 0xD1FFAB1E ; data for System.Threading.PortableThreadPool:ThreadPoolInstance mov rax, gword ptr [rax] lea rcx, bword ptr [rax+0x160] lock inc dword ptr [rcx] mov gword ptr [rbp-0x70], rax mov rdi, rax mov rcx, 0xD1FFAB1E ; code for System.Threading.PortableThreadPool+WorkerThread:MaybeAddWorkingWorker(System.Threading.PortableThreadPool) call [rcx]System.Threading.PortableThreadPool+WorkerThread:MaybeAddWorkingWorker(System.Threading.PortableThreadPool) mov rax, gword ptr [rbp-0x70] cmp dword ptr [rax+0x164], 6 je SHORT G_M45973_IG30 mov rdi, rax mov rax, 0xD1FFAB1E ; code for System.Threading.PortableThreadPool+GateThread:EnsureRunningSlow(System.Threading.PortableThreadPool) call [rax]System.Threading.PortableThreadPool+GateThread:EnsureRunningSlow(System.Threading.PortableThreadPool) mov edi, dword ptr [rbp-0x44] ;; size=73 bbWeight=64 PerfScore 2096.00 G_M45973_IG29: cmp r13d, dword ptr [r15+0x14] jne G_M45973_IG38 mov edx, dword ptr [r15+0x10] cmp edi, edx jae SHORT G_M45973_IG31 mov rsi, gword ptr [r15+0x08] cmp edi, dword ptr [rsi+0x08] jae SHORT G_M45973_IG35 mov eax, edi mov rax, gword ptr [rsi+8*rax+0x10] mov gword ptr [rbp-0x78], rax inc edi mov dword ptr [rbp-0x44], edi jmp G_M45973_IG25 ;; size=48 bbWeight=128 PerfScore 2528.00 G_M45973_IG30: mov edi, dword ptr [rbp-0x44] jmp SHORT G_M45973_IG29 ;; size=5 bbWeight=32 PerfScore 96.00 G_M45973_IG31: inc dword ptr [r15+0x14] xor edi, edi mov dword ptr [r15+0x10], edi test edx, edx jle SHORT G_M45973_IG33 ;; size=14 bbWeight=128 PerfScore 704.00 G_M45973_IG32: mov rdi, gword ptr [r15+0x08] xor esi, esi mov rax, 0xD1FFAB1E ; code for System.Array:Clear(System.Array,int,int) call [rax]System.Array:Clear(System.Array,int,int) ;; size=18 bbWeight=16 PerfScore 88.00 G_M45973_IG33: cmp r12d, 0xD1FFAB1E mov r13d, r12d jne G_M45973_IG07 ;; size=16 bbWeight=64 PerfScore 96.00 G_M45973_IG34: jmp G_M45973_IG06 ;; size=5 bbWeight=8 PerfScore 16.00 G_M45973_IG35: call CORINFO_HELP_RNGCHKFAIL ;; size=5 bbWeight=0 PerfScore 0.00 G_M45973_IG36: mov rdi, 0xD1FFAB1E mov esi, 901 call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE jmp G_M45973_IG28 ;; size=25 bbWeight=0 PerfScore 0.00 G_M45973_IG37: mov edi, 0x961 mov rsi, 0xD1FFAB1E call CORINFO_HELP_STRCNS mov rdx, rax mov edi, r13d mov esi, -1 mov rax, 0xD1FFAB1E ; code for System.ArgumentOutOfRangeException:ThrowLess[int](int,int,System.String) call [rax]System.ArgumentOutOfRangeException:ThrowLess[int](int,int,System.String) int3 ;; size=44 bbWeight=0 PerfScore 0.00 G_M45973_IG38: mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion() call [rax]System.ThrowHelper:ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion() int3 ;; size=13 bbWeight=0 PerfScore 0.00 G_M45973_IG39: push rbp push r15 push r14 push r13 push r12 push rbx push rax mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x80] ;; size=25 bbWeight=0 PerfScore 0.00 G_M45973_IG40: cmp byte ptr [rbp-0x30], 0 je SHORT G_M45973_IG41 mov rdi, gword ptr [rbp-0x50] call System.Threading.Monitor:Exit(System.Object) ;; size=15 bbWeight=0 PerfScore 0.00 G_M45973_IG41: nop ;; size=1 bbWeight=0 PerfScore 0.00 G_M45973_IG42: add rsp, 8 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0 PerfScore 0.00 G_M45973_IG43: push rbp push r15 push r14 push r13 push r12 push rbx push rax mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x80] ;; size=25 bbWeight=0 PerfScore 0.00 G_M45973_IG44: cmp byte ptr [rbp-0x38], 0 je SHORT G_M45973_IG45 mov rdi, gword ptr [rbp-0x58] call System.Threading.Monitor:Exit(System.Object) ;; size=15 bbWeight=0 PerfScore 0.00 G_M45973_IG45: nop ;; size=1 bbWeight=0 PerfScore 0.00 G_M45973_IG46: add rsp, 8 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0 PerfScore 0.00 -; Total bytes of code 1072, prolog size 26, PerfScore 17432.95, instruction count 285, allocated bytes for code 1072 (MethodHash=b6f44c6a) for method System.Threading.TimerQueue:TimerThread() (FullOpts) +; Total bytes of code 1085, prolog size 26, PerfScore 17530.25, instruction count 289, allocated bytes for code 1085 (MethodHash=b6f44c6a) for method System.Threading.TimerQueue:TimerThread() (FullOpts) ```
MihuBot commented 5 months ago

@EgorBo