MihuBot / runtime-utils

0 stars 0 forks source link

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

Open MihuBot opened 10 months ago

MihuBot commented 10 months ago

Build completed in 1 hour 37 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: 7277526
Total bytes of diff: 7277220
Total bytes of delta: -306 (-0.00 % of base)
Total relative delta: -0.51
    diff is an improvement.
    relative diff is an improvement.

Top file improvements (bytes):
        -306 : System.Private.CoreLib.dasm (-0.00 % of base)

1 total files with Code Size differences (1 improved, 0 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 improvements (bytes):
         -86 (-23.69 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1+Partitions[System.__Canon]:TryPop():System.__Canon[]:this (FullOpts)
         -83 (-21.34 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1+Partitions[System.__Canon]:TryPush(System.__Canon[]):ubyte:this (FullOpts)
         -78 (-8.15 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Return(System.__Canon[],ubyte):this (FullOpts)
         -66 (-6.80 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Rent(int):System.__Canon[]:this (FullOpts)
         -32 (-2.87 % of base) : System.Private.CoreLib.dasm - System.String:Join(System.String,System.Collections.Generic.IEnumerable`1[System.String]):System.String (FullOpts)
         -32 (-2.69 % of base) : System.Private.CoreLib.dasm - System.String:JoinCore[System.__Canon](System.ReadOnlySpan`1[ushort],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.String (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)

Top method improvements (percentages):
         -86 (-23.69 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1+Partitions[System.__Canon]:TryPop():System.__Canon[]:this (FullOpts)
         -83 (-21.34 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1+Partitions[System.__Canon]:TryPush(System.__Canon[]):ubyte:this (FullOpts)
         -78 (-8.15 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Return(System.__Canon[],ubyte):this (FullOpts)
         -66 (-6.80 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Rent(int):System.__Canon[]:this (FullOpts)
         -32 (-2.87 % of base) : System.Private.CoreLib.dasm - System.String:Join(System.String,System.Collections.Generic.IEnumerable`1[System.String]):System.String (FullOpts)
         -32 (-2.69 % of base) : System.Private.CoreLib.dasm - System.String:JoinCore[System.__Canon](System.ReadOnlySpan`1[ushort],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.String (FullOpts)

9 total methods with Code Size differences (6 improved, 3 regressed), 55849 unchanged.

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

Frameworks diffs

Diffs ``` Found 343 files with textual diffs. Summary of Code Size diffs: (Lower is better) Total bytes of base: 38558251 Total bytes of diff: 38550728 Total bytes of delta: -7523 (-0.02 % of base) Total relative delta: -2.71 diff is an improvement. relative diff is an improvement. Total byte diff includes -6959 bytes from reconciling methods Base had 10 unique methods, 6959 unique bytes Diff had 0 unique methods, 0 unique bytes Top file regressions (bytes): 263 : System.Data.Common.dasm (0.02 % of base) 73 : System.Net.Security.dasm (0.03 % 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): -3481 : System.Collections.dasm (-0.60 % of base) -1702 : System.Private.Xml.dasm (-0.04 % of base) -662 : System.Threading.RateLimiting.dasm (-0.39 % of base) -603 : System.Linq.Parallel.dasm (-0.03 % of base) -358 : System.Composition.Convention.dasm (-0.30 % of base) -306 : System.Private.CoreLib.dasm (-0.00 % of base) -280 : System.ComponentModel.Composition.Registration.dasm (-0.28 % of base) -264 : System.Text.RegularExpressions.dasm (-0.04 % of base) -80 : Microsoft.Extensions.Options.dasm (-0.24 % of base) -74 : System.ComponentModel.Composition.dasm (-0.02 % of base) -61 : Microsoft.Extensions.Options.DataAnnotations.dasm (-1.36 % of base) -39 : System.Threading.Tasks.Dataflow.dasm (-0.00 % of base) -11 : Microsoft.Extensions.Http.dasm (-0.02 % of base) -7 : System.Net.HttpListener.dasm (-0.01 % of base) 21 total files with Code Size differences (14 improved, 7 regressed), 235 unchanged. Top method regressions (bytes): 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) 73 (2.74 % of base) : System.Net.Security.dasm - System.Net.Security.SslStreamCertificateContext+d__31:MoveNext():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) 34 (2.72 % 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) 34 (2.74 % 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 (4.64 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.DefaultMergeHelper`2[System.__Canon,System.Nullable`1[int]]:GetResultsAsArray():System.__Canon[]:this (FullOpts) 30 (1.41 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:EliminateEndingBacktracking():this (FullOpts) (2 methods) 28 (9.21 % of base) : System.Private.CoreLib.dasm - System.Globalization.CalendarData:EnumDatePatterns(System.String,ushort,int,byref):ubyte (FullOpts) 27 (2.19 % 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) 27 (2.13 % 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) 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) 14 (1.61 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`2+<>c__DisplayClass12_0[double,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.61 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`2+<>c__DisplayClass12_0[int,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.61 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`2+<>c__DisplayClass12_0[long,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.61 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`2+<>c__DisplayClass12_0[short,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.42 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`2+<>c__DisplayClass12_0[System.__Canon,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.61 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`2+<>c__DisplayClass12_0[System.Nullable`1[int],System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.61 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`2+<>c__DisplayClass12_0[System.Numerics.Vector`1[float],System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.61 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`2+<>c__DisplayClass12_0[ubyte,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.72 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingSpoolingTask`2+<>c__DisplayClass3_0[double,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.72 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingSpoolingTask`2+<>c__DisplayClass3_0[int,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.72 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingSpoolingTask`2+<>c__DisplayClass3_0[long,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.72 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingSpoolingTask`2+<>c__DisplayClass3_0[short,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.54 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingSpoolingTask`2+<>c__DisplayClass3_0[System.__Canon,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.72 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingSpoolingTask`2+<>c__DisplayClass3_0[System.Nullable`1[int],System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.72 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingSpoolingTask`2+<>c__DisplayClass3_0[System.Numerics.Vector`1[float],System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.72 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingSpoolingTask`2+<>c__DisplayClass3_0[ubyte,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (3.66 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.QueryTask:RunAsynchronously(System.Threading.Tasks.TaskScheduler):System.Threading.Tasks.Task:this (FullOpts) 14 (3.77 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.QueryTask:RunSynchronously(System.Threading.Tasks.TaskScheduler):System.Threading.Tasks.Task:this (FullOpts) 14 (1.67 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[double,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.67 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[int,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.67 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[long,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.67 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[short,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.48 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[System.__Canon,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.67 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[System.Nullable`1[int],System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.67 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.67 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[ubyte,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (2.09 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[double,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (2.09 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[int,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (2.09 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[long,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (2.09 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[short,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.88 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[System.__Canon,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (2.09 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[System.Nullable`1[int],System.Nullable`1[int]]:b__0():this (FullOpts) 14 (2.09 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:b__0():this (FullOpts) 14 (2.09 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[ubyte,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.83 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[double,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.83 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[int,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.83 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[long,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.83 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[short,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.64 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[System.__Canon,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.83 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[System.Nullable`1[int],System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.83 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.83 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[ubyte,System.Nullable`1[int]]:b__0():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) Top method improvements (bytes): -1581 (-100.00 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.QilGenerator:CreateGeneralKeyFunction():System.Xml.Xsl.Qil.QilFunction:this (FullOpts) (1 base, 0 diff methods) -1221 (-100.00 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.AsynchronousChannelMergeEnumerator`1[System.__Canon]:MoveNextSlowPath():ubyte:this (FullOpts) (1 base, 0 diff methods) -601 (-100.00 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+Node[System.__Canon]:DeepClone(int):System.Collections.Generic.SortedSet`1+Node[System.__Canon]:this (FullOpts) (1 base, 0 diff methods) -508 (-100.00 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+Node[double]:DeepClone(int):System.Collections.Generic.SortedSet`1+Node[double]:this (FullOpts) (1 base, 0 diff methods) -508 (-100.00 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+Node[int]:DeepClone(int):System.Collections.Generic.SortedSet`1+Node[int]:this (FullOpts) (1 base, 0 diff methods) -508 (-100.00 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+Node[long]:DeepClone(int):System.Collections.Generic.SortedSet`1+Node[long]:this (FullOpts) (1 base, 0 diff methods) -508 (-100.00 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+Node[short]:DeepClone(int):System.Collections.Generic.SortedSet`1+Node[short]:this (FullOpts) (1 base, 0 diff methods) -508 (-100.00 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+Node[System.Nullable`1[int]]:DeepClone(int):System.Collections.Generic.SortedSet`1+Node[System.Nullable`1[int]]:this (FullOpts) (1 base, 0 diff methods) -508 (-100.00 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+Node[System.Numerics.Vector`1[float]]:DeepClone(int):System.Collections.Generic.SortedSet`1+Node[System.Numerics.Vector`1[float]]:this (FullOpts) (1 base, 0 diff methods) -508 (-100.00 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+Node[ubyte]:DeepClone(int):System.Collections.Generic.SortedSet`1+Node[ubyte]:this (FullOpts) (1 base, 0 diff methods) -159 (-18.03 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.ExportBuilder:BuildAttributes(System.Type,byref):this (FullOpts) -116 (-15.16 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.ExportConventionBuilder:BuildAttributes(System.Type,byref):this (FullOpts) -90 (-7.69 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Regex:Split(System.Text.RegularExpressions.Regex,System.String,int,int):System.String[] (FullOpts) -90 (-25.42 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Regex+<>c:b__107_0(byref,System.Text.RegularExpressions.Match):ubyte:this (FullOpts) -90 (-25.14 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Regex+<>c:b__107_1(byref,System.Text.RegularExpressions.Match):ubyte:this (FullOpts) -86 (-23.69 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1+Partitions[System.__Canon]:TryPop():System.__Canon[]:this (FullOpts) -83 (-21.34 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1+Partitions[System.__Canon]:TryPush(System.__Canon[]):ubyte:this (FullOpts) -81 (-10.24 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.ImportConventionBuilder:BuildAttributes(System.Type,byref):this (FullOpts) -78 (-8.15 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Return(System.__Canon[],ubyte):this (FullOpts) -78 (-3.28 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__23[double,System.Nullable`1[int]]:MoveNext():this (FullOpts) -78 (-3.28 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__23[int,System.Nullable`1[int]]:MoveNext():this (FullOpts) -78 (-3.28 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__23[long,System.Nullable`1[int]]:MoveNext():this (FullOpts) -78 (-3.28 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__23[short,System.Nullable`1[int]]:MoveNext():this (FullOpts) -78 (-3.13 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__23[System.__Canon,System.Nullable`1[int]]:MoveNext():this (FullOpts) -78 (-3.28 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__23[System.Nullable`1[int],System.Nullable`1[int]]:MoveNext():this (FullOpts) -78 (-3.28 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__23[System.Numerics.Vector`1[float],System.Nullable`1[int]]:MoveNext():this (FullOpts) -78 (-3.28 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__23[ubyte,System.Nullable`1[int]]:MoveNext():this (FullOpts) -75 (-10.62 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.PartBuilder:ConfigureConstructorAttributes(System.Reflection.ConstructorInfo,byref,System.Action`2[System.Reflection.ParameterInfo,System.ComponentModel.Composition.Registration.ImportBuilder]) (FullOpts) -74 (-6.18 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.Hosting.DirectoryCatalog:DiffChanges(System.String[],System.String[],byref,byref):this (FullOpts) -72 (-9.96 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder:ConfigureConstructorAttributes(System.Reflection.ConstructorInfo,byref,System.Action`2[System.Reflection.ParameterInfo,System.Composition.Convention.ImportConventionBuilder]) (FullOpts) -70 (-2.23 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexParser:AssignNameSlots():this (FullOpts) (2 methods) -66 (-6.80 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Rent(int):System.__Canon[]:this (FullOpts) -64 (-4.61 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:g__Compute|5_0(System.String):System.Text.RegularExpressions.Symbolic.BDD:this (FullOpts) -61 (-1.69 % of base) : Microsoft.Extensions.Options.DataAnnotations.dasm - Microsoft.Extensions.Options.DataAnnotationValidateOptions`1[System.__Canon]:TryValidateOptions(System.Object,System.String,System.Collections.Generic.List`1[System.ComponentModel.DataAnnotations.ValidationResult],byref,byref):ubyte (FullOpts) -57 (-66.28 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+<>c[double]:b__21_0(int,System.ValueTuple`2[System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]):this (FullOpts) -57 (-66.28 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+<>c[int]:b__21_0(int,System.ValueTuple`2[System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]):this (FullOpts) -57 (-66.28 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+<>c[long]:b__21_0(int,System.ValueTuple`2[System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]):this (FullOpts) -57 (-66.28 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+<>c[short]:b__21_0(int,System.ValueTuple`2[System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]):this (FullOpts) -57 (-66.28 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+<>c[ubyte]:b__21_0(int,System.ValueTuple`2[System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]):this (FullOpts) -50 (-4.24 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder:BuildOnImportsSatisfiedNotification(System.Type,byref):this (FullOpts) -50 (-1.18 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteEnumMethod(System.Xml.Serialization.EnumMapping):this (FullOpts) -50 (-3.22 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.XsltLoader:LoadKey(System.Xml.Xsl.Xslt.NsDecl):this (FullOpts) -46 (-2.72 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.PartBuilder:BuildPropertyAttributes(System.Type,byref):this (FullOpts) -40 (-23.39 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.StaticDataManager:DeclareGlobalValue(System.String):int:this (FullOpts) -39 (-2.10 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder:BuildPropertyAttributes(System.Type,byref):this (FullOpts) -39 (-12.38 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.Common:AddException(byref,System.Exception,ubyte) (FullOpts) -35 (-11.74 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexParser:NoteCaptureName(System.String,int):this (FullOpts) -35 (-1.25 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteEnumMethod(System.Xml.Serialization.EnumMapping):this (FullOpts) -35 (-0.38 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteLiteralStructMethod(System.Xml.Serialization.StructMapping):this (FullOpts) -32 (-2.87 % of base) : System.Private.CoreLib.dasm - System.String:Join(System.String,System.Collections.Generic.IEnumerable`1[System.String]):System.String (FullOpts) -32 (-2.69 % of base) : System.Private.CoreLib.dasm - System.String:JoinCore[System.__Canon](System.ReadOnlySpan`1[ushort],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.String (FullOpts) -11 (-8.40 % of base) : Microsoft.Extensions.Http.dasm - Microsoft.Extensions.Http.DefaultHttpClientFactory:CreateHandler(System.String):System.Net.Http.HttpMessageHandler:this (FullOpts) -11 (-0.57 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__20[double,System.Nullable`1[int]]:MoveNext():this (FullOpts) -11 (-0.57 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__20[int,System.Nullable`1[int]]:MoveNext():this (FullOpts) -11 (-0.57 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__20[long,System.Nullable`1[int]]:MoveNext():this (FullOpts) -11 (-0.57 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__20[short,System.Nullable`1[int]]:MoveNext():this (FullOpts) -11 (-0.54 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__20[System.__Canon,System.Nullable`1[int]]:MoveNext():this (FullOpts) -11 (-0.57 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__20[System.Nullable`1[int],System.Nullable`1[int]]:MoveNext():this (FullOpts) -11 (-0.57 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__20[System.Numerics.Vector`1[float],System.Nullable`1[int]]:MoveNext():this (FullOpts) -11 (-0.57 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__20[ubyte,System.Nullable`1[int]]:MoveNext():this (FullOpts) -10 (-1.62 % of base) : Microsoft.Extensions.Options.dasm - Microsoft.Extensions.Options.OptionsCache`1[System.__Canon]:GetOrAdd[double](System.String,System.Func`3[System.__Canon,double,System.__Canon],double):System.__Canon:this (FullOpts) -10 (-1.64 % of base) : Microsoft.Extensions.Options.dasm - Microsoft.Extensions.Options.OptionsCache`1[System.__Canon]:GetOrAdd[int](System.String,System.Func`3[System.__Canon,int,System.__Canon],int):System.__Canon:this (FullOpts) -10 (-1.64 % of base) : Microsoft.Extensions.Options.dasm - Microsoft.Extensions.Options.OptionsCache`1[System.__Canon]:GetOrAdd[long](System.String,System.Func`3[System.__Canon,long,System.__Canon],long):System.__Canon:this (FullOpts) -10 (-1.62 % of base) : Microsoft.Extensions.Options.dasm - Microsoft.Extensions.Options.OptionsCache`1[System.__Canon]:GetOrAdd[short](System.String,System.Func`3[System.__Canon,short,System.__Canon],short):System.__Canon:this (FullOpts) -10 (-1.62 % of base) : Microsoft.Extensions.Options.dasm - Microsoft.Extensions.Options.OptionsCache`1[System.__Canon]:GetOrAdd[System.__Canon](System.String,System.Func`3[System.__Canon,System.__Canon,System.__Canon],System.__Canon):System.__Canon:this (FullOpts) -10 (-1.58 % of base) : Microsoft.Extensions.Options.dasm - Microsoft.Extensions.Options.OptionsCache`1[System.__Canon]:GetOrAdd[System.Nullable`1[int]](System.String,System.Func`3[System.__Canon,System.Nullable`1[int],System.__Canon],System.Nullable`1[int]):System.__Canon:this (FullOpts) -10 (-1.48 % of base) : Microsoft.Extensions.Options.dasm - Microsoft.Extensions.Options.OptionsCache`1[System.__Canon]:GetOrAdd[System.Numerics.Vector`1[float]](System.String,System.Func`3[System.__Canon,System.Numerics.Vector`1[float],System.__Canon],System.Numerics.Vector`1[float]):System.__Canon:this (FullOpts) -10 (-1.63 % of base) : Microsoft.Extensions.Options.dasm - Microsoft.Extensions.Options.OptionsCache`1[System.__Canon]:GetOrAdd[ubyte](System.String,System.Func`3[System.__Canon,ubyte,System.__Canon],ubyte):System.__Canon:this (FullOpts) -9 (-1.08 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2[double,System.Nullable`1[int]]:Dispose(ubyte):this (FullOpts) -9 (-1.08 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2[int,System.Nullable`1[int]]:Dispose(ubyte):this (FullOpts) -9 (-1.08 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2[long,System.Nullable`1[int]]:Dispose(ubyte):this (FullOpts) -9 (-1.08 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2[short,System.Nullable`1[int]]:Dispose(ubyte):this (FullOpts) -9 (-1.08 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2[System.__Canon,System.Nullable`1[int]]:Dispose(ubyte):this (FullOpts) -9 (-1.08 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2[System.Nullable`1[int],System.Nullable`1[int]]:Dispose(ubyte):this (FullOpts) -9 (-1.08 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:Dispose(ubyte):this (FullOpts) -9 (-1.08 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2[ubyte,System.Nullable`1[int]]:Dispose(ubyte):this (FullOpts) -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) -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) 30 (4.64 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.DefaultMergeHelper`2[System.__Canon,System.Nullable`1[int]]:GetResultsAsArray():System.__Canon[]: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) 14 (3.77 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.QueryTask:RunSynchronously(System.Threading.Tasks.TaskScheduler):System.Threading.Tasks.Task:this (FullOpts) 9 (3.67 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcParameterCollection:Replace(int,System.Object):this (FullOpts) 14 (3.66 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.QueryTask:RunAsynchronously(System.Threading.Tasks.TaskScheduler):System.Threading.Tasks.Task: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) 73 (2.74 % of base) : System.Net.Security.dasm - System.Net.Security.SslStreamCertificateContext+d__31:MoveNext():this (FullOpts) 34 (2.74 % 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) 34 (2.72 % 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) 27 (2.19 % 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) 27 (2.13 % 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) 14 (2.09 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[double,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (2.09 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[int,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (2.09 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[long,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (2.09 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[short,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (2.09 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[System.Nullable`1[int],System.Nullable`1[int]]:b__0():this (FullOpts) 14 (2.09 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:b__0():this (FullOpts) 14 (2.09 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[ubyte,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.88 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[System.__Canon,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.83 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[double,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.83 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[int,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.83 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[long,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.83 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[short,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.83 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[System.Nullable`1[int],System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.83 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.83 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[ubyte,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.72 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingSpoolingTask`2+<>c__DisplayClass3_0[double,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.72 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingSpoolingTask`2+<>c__DisplayClass3_0[int,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.72 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingSpoolingTask`2+<>c__DisplayClass3_0[long,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.72 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingSpoolingTask`2+<>c__DisplayClass3_0[short,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.72 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingSpoolingTask`2+<>c__DisplayClass3_0[System.Nullable`1[int],System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.72 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingSpoolingTask`2+<>c__DisplayClass3_0[System.Numerics.Vector`1[float],System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.72 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingSpoolingTask`2+<>c__DisplayClass3_0[ubyte,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.67 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[double,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.67 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[int,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.67 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[long,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.67 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[short,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.67 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[System.Nullable`1[int],System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.67 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.67 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[ubyte,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.64 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[System.__Canon,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.61 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`2+<>c__DisplayClass12_0[double,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.61 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`2+<>c__DisplayClass12_0[int,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.61 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`2+<>c__DisplayClass12_0[long,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.61 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`2+<>c__DisplayClass12_0[short,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.61 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`2+<>c__DisplayClass12_0[System.Nullable`1[int],System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.61 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`2+<>c__DisplayClass12_0[System.Numerics.Vector`1[float],System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.61 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`2+<>c__DisplayClass12_0[ubyte,System.Nullable`1[int]]:b__0():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) 14 (1.54 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingSpoolingTask`2+<>c__DisplayClass3_0[System.__Canon,System.Nullable`1[int]]:b__0():this (FullOpts) 8 (1.48 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexNode:ReduceExpressionConditional():System.Text.RegularExpressions.RegexNode:this (FullOpts) 14 (1.48 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[System.__Canon,System.Nullable`1[int]]:b__0():this (FullOpts) 14 (1.42 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.OrderPreservingPipeliningSpoolingTask`2+<>c__DisplayClass12_0[System.__Canon,System.Nullable`1[int]]:b__0():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) Top method improvements (percentages): -508 (-100.00 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+Node[double]:DeepClone(int):System.Collections.Generic.SortedSet`1+Node[double]:this (FullOpts) (1 base, 0 diff methods) -508 (-100.00 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+Node[int]:DeepClone(int):System.Collections.Generic.SortedSet`1+Node[int]:this (FullOpts) (1 base, 0 diff methods) -508 (-100.00 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+Node[long]:DeepClone(int):System.Collections.Generic.SortedSet`1+Node[long]:this (FullOpts) (1 base, 0 diff methods) -508 (-100.00 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+Node[short]:DeepClone(int):System.Collections.Generic.SortedSet`1+Node[short]:this (FullOpts) (1 base, 0 diff methods) -601 (-100.00 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+Node[System.__Canon]:DeepClone(int):System.Collections.Generic.SortedSet`1+Node[System.__Canon]:this (FullOpts) (1 base, 0 diff methods) -508 (-100.00 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+Node[System.Nullable`1[int]]:DeepClone(int):System.Collections.Generic.SortedSet`1+Node[System.Nullable`1[int]]:this (FullOpts) (1 base, 0 diff methods) -508 (-100.00 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+Node[System.Numerics.Vector`1[float]]:DeepClone(int):System.Collections.Generic.SortedSet`1+Node[System.Numerics.Vector`1[float]]:this (FullOpts) (1 base, 0 diff methods) -508 (-100.00 % of base) : System.Collections.dasm - System.Collections.Generic.SortedSet`1+Node[ubyte]:DeepClone(int):System.Collections.Generic.SortedSet`1+Node[ubyte]:this (FullOpts) (1 base, 0 diff methods) -1221 (-100.00 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.AsynchronousChannelMergeEnumerator`1[System.__Canon]:MoveNextSlowPath():ubyte:this (FullOpts) (1 base, 0 diff methods) -1581 (-100.00 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.QilGenerator:CreateGeneralKeyFunction():System.Xml.Xsl.Qil.QilFunction:this (FullOpts) (1 base, 0 diff methods) -57 (-66.28 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+<>c[double]:b__21_0(int,System.ValueTuple`2[System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]):this (FullOpts) -57 (-66.28 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+<>c[int]:b__21_0(int,System.ValueTuple`2[System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]):this (FullOpts) -57 (-66.28 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+<>c[long]:b__21_0(int,System.ValueTuple`2[System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]):this (FullOpts) -57 (-66.28 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+<>c[short]:b__21_0(int,System.ValueTuple`2[System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]):this (FullOpts) -57 (-66.28 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+<>c[ubyte]:b__21_0(int,System.ValueTuple`2[System.Collections.Generic.List`1[System.ValueTuple`2[int,System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]],System.Text.RegularExpressions.Symbolic.DerivativeEffect[]]):this (FullOpts) -90 (-25.42 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Regex+<>c:b__107_0(byref,System.Text.RegularExpressions.Match):ubyte:this (FullOpts) -90 (-25.14 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Regex+<>c:b__107_1(byref,System.Text.RegularExpressions.Match):ubyte:this (FullOpts) -86 (-23.69 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1+Partitions[System.__Canon]:TryPop():System.__Canon[]:this (FullOpts) -40 (-23.39 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.StaticDataManager:DeclareGlobalValue(System.String):int:this (FullOpts) -83 (-21.34 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1+Partitions[System.__Canon]:TryPush(System.__Canon[]):ubyte:this (FullOpts) -159 (-18.03 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.ExportBuilder:BuildAttributes(System.Type,byref):this (FullOpts) -116 (-15.16 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.ExportConventionBuilder:BuildAttributes(System.Type,byref):this (FullOpts) -39 (-12.38 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.Common:AddException(byref,System.Exception,ubyte) (FullOpts) -35 (-11.74 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexParser:NoteCaptureName(System.String,int):this (FullOpts) -75 (-10.62 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.PartBuilder:ConfigureConstructorAttributes(System.Reflection.ConstructorInfo,byref,System.Action`2[System.Reflection.ParameterInfo,System.ComponentModel.Composition.Registration.ImportBuilder]) (FullOpts) -81 (-10.24 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.ImportConventionBuilder:BuildAttributes(System.Type,byref):this (FullOpts) -72 (-9.96 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder:ConfigureConstructorAttributes(System.Reflection.ConstructorInfo,byref,System.Action`2[System.Reflection.ParameterInfo,System.Composition.Convention.ImportConventionBuilder]) (FullOpts) -11 (-8.40 % of base) : Microsoft.Extensions.Http.dasm - Microsoft.Extensions.Http.DefaultHttpClientFactory:CreateHandler(System.String):System.Net.Http.HttpMessageHandler:this (FullOpts) -78 (-8.15 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Return(System.__Canon[],ubyte):this (FullOpts) -90 (-7.69 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Regex:Split(System.Text.RegularExpressions.Regex,System.String,int,int):System.String[] (FullOpts) -66 (-6.80 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Rent(int):System.__Canon[]:this (FullOpts) -74 (-6.18 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.Hosting.DirectoryCatalog:DiffChanges(System.String[],System.String[],byref,byref):this (FullOpts) -64 (-4.61 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeConverter:g__Compute|5_0(System.String):System.Text.RegularExpressions.Symbolic.BDD:this (FullOpts) -50 (-4.24 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder:BuildOnImportsSatisfiedNotification(System.Type,byref):this (FullOpts) -78 (-3.28 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__23[double,System.Nullable`1[int]]:MoveNext():this (FullOpts) -78 (-3.28 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__23[int,System.Nullable`1[int]]:MoveNext():this (FullOpts) -78 (-3.28 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__23[long,System.Nullable`1[int]]:MoveNext():this (FullOpts) -78 (-3.28 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__23[short,System.Nullable`1[int]]:MoveNext():this (FullOpts) -78 (-3.28 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__23[System.Nullable`1[int],System.Nullable`1[int]]:MoveNext():this (FullOpts) -78 (-3.28 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__23[System.Numerics.Vector`1[float],System.Nullable`1[int]]:MoveNext():this (FullOpts) -78 (-3.28 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__23[ubyte,System.Nullable`1[int]]:MoveNext():this (FullOpts) -50 (-3.22 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Xslt.XsltLoader:LoadKey(System.Xml.Xsl.Xslt.NsDecl):this (FullOpts) -78 (-3.13 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__23[System.__Canon,System.Nullable`1[int]]:MoveNext():this (FullOpts) -32 (-2.87 % of base) : System.Private.CoreLib.dasm - System.String:Join(System.String,System.Collections.Generic.IEnumerable`1[System.String]):System.String (FullOpts) -46 (-2.72 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.PartBuilder:BuildPropertyAttributes(System.Type,byref):this (FullOpts) -32 (-2.69 % of base) : System.Private.CoreLib.dasm - System.String:JoinCore[System.__Canon](System.ReadOnlySpan`1[ushort],System.Collections.Generic.IEnumerable`1[System.__Canon]):System.String (FullOpts) -4 (-2.25 % of base) : System.Data.Common.dasm - System.Data.Index:ListChangedRemove(System.Data.DataViewListener):this (FullOpts) -70 (-2.23 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexParser:AssignNameSlots():this (FullOpts) (2 methods) -39 (-2.10 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder:BuildPropertyAttributes(System.Type,byref):this (FullOpts) -61 (-1.69 % of base) : Microsoft.Extensions.Options.DataAnnotations.dasm - Microsoft.Extensions.Options.DataAnnotationValidateOptions`1[System.__Canon]:TryValidateOptions(System.Object,System.String,System.Collections.Generic.List`1[System.ComponentModel.DataAnnotations.ValidationResult],byref,byref):ubyte (FullOpts) -10 (-1.64 % of base) : Microsoft.Extensions.Options.dasm - Microsoft.Extensions.Options.OptionsCache`1[System.__Canon]:GetOrAdd[int](System.String,System.Func`3[System.__Canon,int,System.__Canon],int):System.__Canon:this (FullOpts) -10 (-1.64 % of base) : Microsoft.Extensions.Options.dasm - Microsoft.Extensions.Options.OptionsCache`1[System.__Canon]:GetOrAdd[long](System.String,System.Func`3[System.__Canon,long,System.__Canon],long):System.__Canon:this (FullOpts) -10 (-1.63 % of base) : Microsoft.Extensions.Options.dasm - Microsoft.Extensions.Options.OptionsCache`1[System.__Canon]:GetOrAdd[ubyte](System.String,System.Func`3[System.__Canon,ubyte,System.__Canon],ubyte):System.__Canon:this (FullOpts) -10 (-1.62 % of base) : Microsoft.Extensions.Options.dasm - Microsoft.Extensions.Options.OptionsCache`1[System.__Canon]:GetOrAdd[short](System.String,System.Func`3[System.__Canon,short,System.__Canon],short):System.__Canon:this (FullOpts) -10 (-1.62 % of base) : Microsoft.Extensions.Options.dasm - Microsoft.Extensions.Options.OptionsCache`1[System.__Canon]:GetOrAdd[double](System.String,System.Func`3[System.__Canon,double,System.__Canon],double):System.__Canon:this (FullOpts) -10 (-1.62 % of base) : Microsoft.Extensions.Options.dasm - Microsoft.Extensions.Options.OptionsCache`1[System.__Canon]:GetOrAdd[System.__Canon](System.String,System.Func`3[System.__Canon,System.__Canon,System.__Canon],System.__Canon):System.__Canon:this (FullOpts) -10 (-1.58 % of base) : Microsoft.Extensions.Options.dasm - Microsoft.Extensions.Options.OptionsCache`1[System.__Canon]:GetOrAdd[System.Nullable`1[int]](System.String,System.Func`3[System.__Canon,System.Nullable`1[int],System.__Canon],System.Nullable`1[int]):System.__Canon:this (FullOpts) -10 (-1.48 % of base) : Microsoft.Extensions.Options.dasm - Microsoft.Extensions.Options.OptionsCache`1[System.__Canon]:GetOrAdd[System.Numerics.Vector`1[float]](System.String,System.Func`3[System.__Canon,System.Numerics.Vector`1[float],System.__Canon],System.Numerics.Vector`1[float]):System.__Canon: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) -35 (-1.25 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteEnumMethod(System.Xml.Serialization.EnumMapping):this (FullOpts) -50 (-1.18 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteEnumMethod(System.Xml.Serialization.EnumMapping):this (FullOpts) -9 (-1.08 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2[double,System.Nullable`1[int]]:Dispose(ubyte):this (FullOpts) -9 (-1.08 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2[int,System.Nullable`1[int]]:Dispose(ubyte):this (FullOpts) -9 (-1.08 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2[long,System.Nullable`1[int]]:Dispose(ubyte):this (FullOpts) -9 (-1.08 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2[short,System.Nullable`1[int]]:Dispose(ubyte):this (FullOpts) -9 (-1.08 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2[System.__Canon,System.Nullable`1[int]]:Dispose(ubyte):this (FullOpts) -9 (-1.08 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2[System.Nullable`1[int],System.Nullable`1[int]]:Dispose(ubyte):this (FullOpts) -9 (-1.08 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:Dispose(ubyte):this (FullOpts) -9 (-1.08 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2[ubyte,System.Nullable`1[int]]:Dispose(ubyte):this (FullOpts) -11 (-0.57 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__20[double,System.Nullable`1[int]]:MoveNext():this (FullOpts) -11 (-0.57 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__20[int,System.Nullable`1[int]]:MoveNext():this (FullOpts) -11 (-0.57 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__20[long,System.Nullable`1[int]]:MoveNext():this (FullOpts) -11 (-0.57 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__20[short,System.Nullable`1[int]]:MoveNext():this (FullOpts) -11 (-0.57 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__20[System.Nullable`1[int],System.Nullable`1[int]]:MoveNext():this (FullOpts) -11 (-0.57 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__20[System.Numerics.Vector`1[float],System.Nullable`1[int]]:MoveNext():this (FullOpts) -11 (-0.57 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__20[ubyte,System.Nullable`1[int]]:MoveNext():this (FullOpts) -11 (-0.54 % of base) : System.Threading.RateLimiting.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2+d__20[System.__Canon,System.Nullable`1[int]]:MoveNext():this (FullOpts) -3 (-0.45 % of base) : System.Net.HttpListener.dasm - System.Net.HttpListener:RegisterContext(System.Net.HttpListenerContext):this (FullOpts) -35 (-0.38 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteLiteralStructMethod(System.Xml.Serialization.StructMapping):this (FullOpts) 253 total methods with Code Size differences (80 improved, 173 regressed), 236482 unchanged. -------------------------------------------------------------------------------- ```

Artifacts:

MihuBot commented 10 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, 902 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 10 months ago

Top method improvements

-86 (-23.69 % of base) - System.Buffers.SharedArrayPool`1+Partitions[System.__Canon]:TryPop():System.__Canon[]:this ```diff ; Assembly listing for method System.Buffers.SharedArrayPool`1+Partitions[System.__Canon]:TryPop():System.__Canon[]:this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame -; fully interruptible +; partially interruptible ; No PGO data -; 0 inlinees with PGO data; 0 single block inlinees; 3 inlinees without PGO data +; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T13] ( 3, 3 ) ref -> rdi this class-hnd single-def +; V00 this [V00,T09] ( 3, 3 ) ref -> rdi this class-hnd single-def ;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd -; V02 loc1 [V02,T10] ( 3, 6 ) ref -> rbx class-hnd single-def -; V03 loc2 [V03,T01] ( 7, 23 ) int -> r14 -; V04 loc3 [V04,T05] ( 4, 13 ) int -> r15 +; V02 loc1 [V02,T06] ( 3, 6 ) ref -> rbx class-hnd single-def +; V03 loc2 [V03,T00] ( 7, 23 ) int -> r14 +; V04 loc3 [V04,T04] ( 4, 13 ) int -> r15 ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -;* V06 tmp1 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd "dup spill" +; V06 tmp1 [V06,T01] ( 3, 17 ) ref -> rax class-hnd "dup spill" ; V07 tmp2 [V07,T02] ( 2, 16 ) int -> r14 "dup spill" ;* V08 tmp3 [V08 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" -; V09 tmp4 [V09,T16] ( 3, 2 ) int -> r14 "Inline return value spill temp" -; V10 tmp5 [V10,T09] ( 4, 7 ) int -> r15 "dup spill" +; V09 tmp4 [V09,T12] ( 3, 2 ) int -> r14 "Inline return value spill temp" +; V10 tmp5 [V10,T05] ( 4, 7 ) int -> r15 "dup spill" ;* V11 tmp6 [V11 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V12 tmp7 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" -; V13 tmp8 [V13,T07] ( 4, 10.50) ref -> [rbp-0x30] class-hnd "Inline stloc first use temp" -; V14 tmp9 [V14,T00] ( 7, 52 ) ref -> r12 class-hnd "Inlining Arg" -; V15 tmp10 [V15,T06] ( 4, 12 ) ref -> rdi class-hnd "Inline stloc first use temp" -; V16 tmp11 [V16,T03] ( 5, 14 ) int -> rax "Inline stloc first use temp" -; V17 cse0 [V17,T15] ( 3, 3 ) long -> rax "CSE - moderate" -; V18 cse1 [V18,T04] ( 5, 14 ) int -> r13 "CSE - moderate" -; V19 cse2 [V19,T08] ( 2, 8 ) int -> rcx "CSE - moderate" -; V20 rat0 [V20,T14] ( 3, 4 ) long -> rax "TLS field access" -; V21 rat1 [V21,T11] ( 3, 6 ) long -> rax "TLS access" -; V22 rat2 [V22,T12] ( 3, 6 ) long -> rax "ThreadStaticBlockBase access" +; V12 cse0 [V12,T11] ( 3, 3 ) long -> rax "CSE - moderate" +; V13 cse1 [V13,T03] ( 5, 14 ) int -> r13 "CSE - aggressive" +; V14 rat0 [V14,T10] ( 3, 4 ) long -> rax "TLS field access" +; V15 rat1 [V15,T07] ( 3, 6 ) long -> rax "TLS access" +; V16 rat2 [V16,T08] ( 3, 6 ) long -> rax "ThreadStaticBlockBase access" ; -; Lcl frame size = 8 +; Lcl frame size = 0 G_M34950_IG01: push rbp push r15 push r14 push r13 - push r12 push rbx - push rax - lea rbp, [rsp+0x30] - ;; size=16 bbWeight=1 PerfScore 7.50 + lea rbp, [rsp+0x20] + ;; size=13 bbWeight=1 PerfScore 5.50 G_M34950_IG02: mov rbx, gword ptr [rdi+0x08] mov rdi, 0xD1FFAB1E mov rax, 0xD1FFAB1E ; function address call rax cmp dword ptr [rax], 2 - jl G_M34950_IG18 + jl G_M34950_IG15 mov rax, qword ptr [rax+0x08] mov rax, qword ptr [rax+0x10] test rax, rax - je G_M34950_IG18 + je G_M34950_IG15 ;; size=52 bbWeight=1 PerfScore 14.75 G_M34950_IG03: mov r15d, dword ptr [rax+0x0A0C] lea ecx, [r15-0x01] mov dword ptr [rax+0x0A0C], ecx movzx rax, r15w test eax, eax jne SHORT G_M34950_IG05 ;; size=25 bbWeight=1 PerfScore 5.00 G_M34950_IG04: mov rax, 0xD1FFAB1E ; code for System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int call [rax]System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int mov r14d, eax jmp SHORT G_M34950_IG06 ;; size=17 bbWeight=0.50 PerfScore 2.75 G_M34950_IG05: mov r14d, r15d sar r14d, 16 ;; size=7 bbWeight=0.50 PerfScore 0.38 G_M34950_IG06: mov rax, 0xD1FFAB1E ; global ptr test byte ptr [rax], 1 - je G_M34950_IG19 - ;; size=19 bbWeight=1 PerfScore 4.25 + je SHORT G_M34950_IG16 + ;; size=15 bbWeight=1 PerfScore 4.25 G_M34950_IG07: mov rdi, 0xD1FFAB1E ; data for System.Buffers.SharedArrayPoolStatics:s_partitionCount mov eax, r14d xor edx, edx div edx:eax, dword ptr [rdi] mov r14d, edx xor r15d, r15d mov r13d, dword ptr [rbx+0x08] test r13d, r13d - jle SHORT G_M34950_IG13 + jle SHORT G_M34950_IG11 ;; size=32 bbWeight=1 PerfScore 29.50 G_M34950_IG08: cmp r14d, r13d - jae G_M34950_IG17 + jae SHORT G_M34950_IG14 mov edi, r14d - mov r12, gword ptr [rbx+8*rdi+0x10] - cmp byte ptr [r12], r12b - xor rax, rax - mov gword ptr [rbp-0x30], rax - mov rdi, r12 - call System.Threading.Monitor:Enter(System.Object) - mov rdi, gword ptr [r12+0x08] - mov eax, dword ptr [r12+0x10] - dec eax - mov ecx, dword ptr [rdi+0x08] - cmp ecx, eax - jbe SHORT G_M34950_IG10 - ;; size=54 bbWeight=4 PerfScore 66.00 -G_M34950_IG09: - mov ecx, eax - mov rcx, gword ptr [rdi+8*rcx+0x10] - mov gword ptr [rbp-0x30], rcx - mov edx, eax - xor rsi, rsi - mov gword ptr [rdi+8*rdx+0x10], rsi - mov dword ptr [r12+0x10], eax - ;; size=25 bbWeight=2 PerfScore 11.50 -G_M34950_IG10: - mov rdi, r12 - call System.Threading.Monitor:Exit(System.Object) - mov r12, gword ptr [rbp-0x30] - test r12, r12 - jne SHORT G_M34950_IG15 + mov rdi, gword ptr [rbx+8*rdi+0x10] + mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1+Partition[System.__Canon]:TryPop():System.__Canon[]:this + cmp dword ptr [rdi], edi + call [rax]System.Buffers.SharedArrayPool`1+Partition[System.__Canon]:TryPop():System.__Canon[]:this + test rax, rax + jne SHORT G_M34950_IG13 inc r14d cmp r13d, r14d - jne SHORT G_M34950_IG12 - ;; size=25 bbWeight=4 PerfScore 20.00 -G_M34950_IG11: + jne SHORT G_M34950_IG10 + ;; size=40 bbWeight=4 PerfScore 50.00 +G_M34950_IG09: xor r14d, r14d ;; size=3 bbWeight=2 PerfScore 0.50 -G_M34950_IG12: +G_M34950_IG10: inc r15d cmp r13d, r15d jg SHORT G_M34950_IG08 ;; size=8 bbWeight=4 PerfScore 6.00 -G_M34950_IG13: +G_M34950_IG11: xor rax, rax ;; size=2 bbWeight=0.50 PerfScore 0.12 -G_M34950_IG14: - add rsp, 8 +G_M34950_IG12: pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp ret - ;; size=15 bbWeight=0.50 PerfScore 2.12 -G_M34950_IG15: - mov rax, r12 - ;; size=3 bbWeight=0.50 PerfScore 0.12 -G_M34950_IG16: - add rsp, 8 + ;; size=9 bbWeight=0.50 PerfScore 1.75 +G_M34950_IG13: pop rbx - pop r12 pop r13 pop r14 pop r15 pop rbp ret - ;; size=15 bbWeight=0.50 PerfScore 2.12 -G_M34950_IG17: + ;; size=9 bbWeight=0.50 PerfScore 1.75 +G_M34950_IG14: call CORINFO_HELP_RNGCHKFAIL ;; size=5 bbWeight=0 PerfScore 0.00 -G_M34950_IG18: +G_M34950_IG15: mov edi, 2 call CORINFO_HELP_GETSHARED_NONGCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED jmp G_M34950_IG03 ;; size=15 bbWeight=0 PerfScore 0.00 -G_M34950_IG19: +G_M34950_IG16: mov rdi, 0xD1FFAB1E mov esi, 658 call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE jmp G_M34950_IG07 ;; size=25 bbWeight=0 PerfScore 0.00 -; Total bytes of code 363, prolog size 16, PerfScore 208.93, instruction count 102, allocated bytes for code 363 (MethodHash=a09e7779) for method System.Buffers.SharedArrayPool`1+Partitions[System.__Canon]:TryPop():System.__Canon[]:this (FullOpts) +; Total bytes of code 277, prolog size 13, PerfScore 149.95, instruction count 77, allocated bytes for code 277 (MethodHash=a09e7779) for method System.Buffers.SharedArrayPool`1+Partitions[System.__Canon]:TryPop():System.__Canon[]:this (FullOpts) ```
-83 (-21.34 % of base) - System.Buffers.SharedArrayPool`1+Partitions[System.__Canon]:TryPush(System.__Canon[]):ubyte:this ```diff ; Assembly listing for method System.Buffers.SharedArrayPool`1+Partitions[System.__Canon]:TryPush(System.__Canon[]):ubyte:this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame -; fully interruptible +; partially interruptible ; No PGO data -; 0 inlinees with PGO data; 0 single block inlinees; 3 inlinees without PGO data +; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T13] ( 3, 3 ) ref -> rdi this class-hnd single-def -; V01 arg1 [V01,T09] ( 3, 4 ) ref -> rbx class-hnd single-def -; V02 loc0 [V02,T10] ( 3, 6 ) ref -> r15 class-hnd single-def -; V03 loc1 [V03,T01] ( 7, 23 ) int -> r13 -; V04 loc2 [V04,T05] ( 4, 13 ) int -> r14 +; V00 this [V00,T09] ( 3, 3 ) ref -> rdi this class-hnd single-def +; V01 arg1 [V01,T04] ( 3, 6 ) ref -> rbx class-hnd single-def +; V02 loc0 [V02,T06] ( 3, 6 ) ref -> r15 class-hnd single-def +; V03 loc1 [V03,T00] ( 7, 23 ) int -> r13 +; V04 loc2 [V04,T03] ( 4, 13 ) int -> r14 ;# V05 OutArgs [V05 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V06 tmp1 [V06,T02] ( 2, 16 ) int -> r13 "dup spill" +; V06 tmp1 [V06,T01] ( 2, 16 ) int -> r13 "dup spill" ;* V07 tmp2 [V07 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" -; V08 tmp3 [V08,T16] ( 3, 2 ) int -> r13 "Inline return value spill temp" -; V09 tmp4 [V09,T08] ( 4, 7 ) int -> r14 "dup spill" +; V08 tmp3 [V08,T12] ( 3, 2 ) int -> r13 "Inline return value spill temp" +; V09 tmp4 [V09,T05] ( 4, 7 ) int -> r14 "dup spill" ;* V10 tmp5 [V10 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V11 tmp6 [V11 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" -; V12 tmp7 [V12,T07] ( 3, 10 ) ubyte -> [rbp-0x2C] "Inline stloc first use temp" -; V13 tmp8 [V13,T00] ( 8, 56 ) ref -> [rbp-0x38] class-hnd spill-single-def "Inlining Arg" -; V14 tmp9 [V14,T06] ( 3, 10 ) ref -> rdi class-hnd "Inline stloc first use temp" -; V15 tmp10 [V15,T03] ( 5, 14 ) int -> [rbp-0x30] spill-single-def "Inline stloc first use temp" -; V16 cse0 [V16,T15] ( 3, 3 ) long -> rax "CSE - moderate" -; V17 cse1 [V17,T04] ( 5, 14 ) int -> r12 "CSE - aggressive" -; V18 rat0 [V18,T14] ( 3, 4 ) long -> rax "TLS field access" -; V19 rat1 [V19,T11] ( 3, 6 ) long -> rax "TLS access" -; V20 rat2 [V20,T12] ( 3, 6 ) long -> rax "ThreadStaticBlockBase access" +; V11 cse0 [V11,T11] ( 3, 3 ) long -> rax "CSE - aggressive" +; V12 cse1 [V12,T02] ( 5, 14 ) int -> r12 "CSE - aggressive" +; V13 rat0 [V13,T10] ( 3, 4 ) long -> rax "TLS field access" +; V14 rat1 [V14,T07] ( 3, 6 ) long -> rax "TLS access" +; V15 rat2 [V15,T08] ( 3, 6 ) long -> rax "ThreadStaticBlockBase access" ; -; Lcl frame size = 24 +; Lcl frame size = 8 G_M29896_IG01: push rbp push r15 push r14 push r13 push r12 push rbx - sub rsp, 24 - lea rbp, [rsp+0x40] + push rax + lea rbp, [rsp+0x30] mov rbx, rsi - ;; size=22 bbWeight=1 PerfScore 7.00 + ;; size=19 bbWeight=1 PerfScore 7.75 G_M29896_IG02: mov r15, gword ptr [rdi+0x08] mov rdi, 0xD1FFAB1E mov rax, 0xD1FFAB1E ; function address call rax cmp dword ptr [rax], 2 - jl G_M29896_IG20 + jl G_M29896_IG16 mov rax, qword ptr [rax+0x08] mov rax, qword ptr [rax+0x10] test rax, rax - je G_M29896_IG20 + je G_M29896_IG16 ;; size=52 bbWeight=1 PerfScore 14.75 G_M29896_IG03: mov r14d, dword ptr [rax+0x0A0C] lea ecx, [r14-0x01] mov dword ptr [rax+0x0A0C], ecx movzx rax, r14w test eax, eax jne SHORT G_M29896_IG05 ;; size=25 bbWeight=1 PerfScore 5.00 G_M29896_IG04: mov rax, 0xD1FFAB1E ; code for System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int call [rax]System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int mov r13d, eax jmp SHORT G_M29896_IG06 ;; size=17 bbWeight=0.50 PerfScore 2.75 G_M29896_IG05: mov r13d, r14d sar r13d, 16 ;; size=7 bbWeight=0.50 PerfScore 0.38 G_M29896_IG06: mov rax, 0xD1FFAB1E ; global ptr test byte ptr [rax], 1 - je G_M29896_IG21 + je G_M29896_IG17 ;; size=19 bbWeight=1 PerfScore 4.25 G_M29896_IG07: mov rdi, 0xD1FFAB1E ; data for System.Buffers.SharedArrayPoolStatics:s_partitionCount mov eax, r13d xor edx, edx div edx:eax, dword ptr [rdi] mov r13d, edx xor r14d, r14d mov r12d, dword ptr [r15+0x08] test r12d, r12d - jle G_M29896_IG14 - ;; size=36 bbWeight=1 PerfScore 29.50 + jle SHORT G_M29896_IG11 + ;; size=32 bbWeight=1 PerfScore 29.50 G_M29896_IG08: cmp r13d, r12d - jae G_M29896_IG19 + jae SHORT G_M29896_IG15 mov edi, r13d - mov rax, gword ptr [r15+8*rdi+0x10] - mov gword ptr [rbp-0x38], rax - cmp byte ptr [rax], al - xor ecx, ecx - mov dword ptr [rbp-0x2C], ecx - mov rdi, rax - call System.Threading.Monitor:Enter(System.Object) - mov rax, gword ptr [rbp-0x38] - mov rdi, gword ptr [rax+0x08] - mov ecx, dword ptr [rax+0x10] - mov dword ptr [rbp-0x30], ecx - cmp dword ptr [rdi+0x08], ecx - jbe SHORT G_M29896_IG11 - ;; size=55 bbWeight=4 PerfScore 80.00 -G_M29896_IG09: - test ecx, ecx - jne SHORT G_M29896_IG16 - xor esi, esi - mov dword ptr [rax+0x14], esi - ;; size=9 bbWeight=2 PerfScore 5.00 -G_M29896_IG10: - movsxd rsi, ecx - mov rdx, rbx - call CORINFO_HELP_ARRADDR_ST - mov edi, dword ptr [rbp-0x30] - inc edi - mov rax, gword ptr [rbp-0x38] - mov dword ptr [rax+0x10], edi - mov dword ptr [rbp-0x2C], 1 - ;; size=30 bbWeight=2 PerfScore 11.50 -G_M29896_IG11: - mov rdi, rax - call System.Threading.Monitor:Exit(System.Object) - cmp dword ptr [rbp-0x2C], 0 - jne SHORT G_M29896_IG17 + mov rdi, gword ptr [r15+8*rdi+0x10] + mov rsi, rbx + mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1+Partition[System.__Canon]:TryPush(System.__Canon[]):ubyte:this + cmp dword ptr [rdi], edi + call [rax]System.Buffers.SharedArrayPool`1+Partition[System.__Canon]:TryPush(System.__Canon[]):ubyte:this + test eax, eax + jne SHORT G_M29896_IG13 inc r13d cmp r12d, r13d - jne SHORT G_M29896_IG13 - ;; size=22 bbWeight=4 PerfScore 23.00 -G_M29896_IG12: + jne SHORT G_M29896_IG10 + ;; size=42 bbWeight=4 PerfScore 51.00 +G_M29896_IG09: xor r13d, r13d ;; size=3 bbWeight=2 PerfScore 0.50 -G_M29896_IG13: +G_M29896_IG10: inc r14d cmp r12d, r14d jg SHORT G_M29896_IG08 ;; size=8 bbWeight=4 PerfScore 6.00 -G_M29896_IG14: +G_M29896_IG11: xor eax, eax ;; size=2 bbWeight=0.50 PerfScore 0.12 -G_M29896_IG15: - add rsp, 24 +G_M29896_IG12: + add rsp, 8 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0.50 PerfScore 2.12 -G_M29896_IG16: - jmp SHORT G_M29896_IG10 - ;; size=2 bbWeight=1 PerfScore 2.00 -G_M29896_IG17: +G_M29896_IG13: mov eax, 1 ;; size=5 bbWeight=0.50 PerfScore 0.12 -G_M29896_IG18: - add rsp, 24 +G_M29896_IG14: + add rsp, 8 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0.50 PerfScore 2.12 -G_M29896_IG19: +G_M29896_IG15: call CORINFO_HELP_RNGCHKFAIL ;; size=5 bbWeight=0 PerfScore 0.00 -G_M29896_IG20: +G_M29896_IG16: mov edi, 2 call CORINFO_HELP_GETSHARED_NONGCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED jmp G_M29896_IG03 ;; size=15 bbWeight=0 PerfScore 0.00 -G_M29896_IG21: +G_M29896_IG17: mov rdi, 0xD1FFAB1E mov esi, 658 call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE jmp G_M29896_IG07 ;; size=25 bbWeight=0 PerfScore 0.00 -; Total bytes of code 389, prolog size 22, PerfScore 235.03, instruction count 109, allocated bytes for code 389 (MethodHash=289d8b37) for method System.Buffers.SharedArrayPool`1+Partitions[System.__Canon]:TryPush(System.__Canon[]):ubyte:this (FullOpts) +; Total bytes of code 306, prolog size 16, PerfScore 156.98, instruction count 86, allocated bytes for code 306 (MethodHash=289d8b37) for method System.Buffers.SharedArrayPool`1+Partitions[System.__Canon]:TryPush(System.__Canon[]):ubyte:this (FullOpts) ```
-78 (-8.15 % of base) - System.Buffers.SharedArrayPool`1[System.__Canon]:Return(System.__Canon[],ubyte):this ```diff ; Assembly listing for method System.Buffers.SharedArrayPool`1[System.__Canon]:Return(System.__Canon[],ubyte):this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX512 - Unix ; FullOpts code ; optimized code ; rbp based frame -; fully interruptible +; partially interruptible ; No PGO data -; 0 inlinees with PGO data; 11 single block inlinees; 5 inlinees without PGO data +; 0 inlinees with PGO data; 11 single block inlinees; 4 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T09] ( 9, 6 ) ref -> r15 this class-hnd single-def -; V01 arg1 [V01,T08] ( 8, 6 ) ref -> rbx class-hnd single-def -; V02 arg2 [V02,T12] ( 3, 2.50) ubyte -> r14 single-def -; V03 loc0 [V03,T10] ( 8, 5 ) int -> r12 +; V00 this [V00,T05] ( 9, 6 ) ref -> r15 this class-hnd single-def +; V01 arg1 [V01,T04] ( 8, 6 ) ref -> rbx class-hnd single-def +; V02 arg2 [V02,T09] ( 3, 2.50) ubyte -> r14 single-def +; V03 loc0 [V03,T06] ( 8, 5 ) int -> r12 ;* V04 loc1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def -; V05 loc2 [V05,T23] ( 4, 2.50) ubyte -> [rbp-0x34] -; V06 loc3 [V06,T28] ( 3, 2 ) ubyte -> [rbp-0x38] -; V07 loc4 [V07,T17] ( 4, 3 ) ref -> r14 class-hnd exact single-def -; V08 loc5 [V08,T26] ( 4, 2 ) byref -> r14 single-def -; V09 loc6 [V09,T18] ( 3, 3 ) ref -> [rbp-0x60] class-hnd spill-single-def +; V05 loc2 [V05,T19] ( 4, 2.50) ubyte -> [rbp-0x34] +; V06 loc3 [V06,T24] ( 3, 2 ) ubyte -> [rbp-0x38] +; V07 loc4 [V07,T14] ( 4, 3 ) ref -> r14 class-hnd exact single-def +; V08 loc5 [V08,T22] ( 4, 2 ) byref -> r14 single-def +; V09 loc6 [V09,T07] ( 3, 5 ) ref -> [rbp-0x58] class-hnd spill-single-def ;* V10 loc7 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd ;# V11 OutArgs [V11 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V12 tmp1 [V12,T16] ( 2, 4 ) ref -> rax class-hnd exact single-def "dup spill" -; V13 tmp2 [V13,T14] ( 5, 4 ) ref -> [rbp-0x68] -; V14 tmp3 [V14,T31] ( 2, 2 ) int -> [rbp-0x3C] spill-single-def "impAppendStmt" -; V15 tmp4 [V15,T32] ( 2, 2 ) int -> [rbp-0x40] spill-single-def "impAppendStmt" -; V16 tmp5 [V16,T33] ( 2, 2 ) int -> rbx "impAppendStmt" -; V17 tmp6 [V17,T34] ( 2, 2 ) int -> r13 "impAppendStmt" +; V12 tmp1 [V12,T13] ( 2, 4 ) ref -> rax class-hnd exact single-def "dup spill" +; V13 tmp2 [V13,T11] ( 5, 4 ) ref -> [rbp-0x60] +; V14 tmp3 [V14,T27] ( 2, 2 ) int -> [rbp-0x3C] spill-single-def "impAppendStmt" +; V15 tmp4 [V15,T28] ( 2, 2 ) int -> [rbp-0x40] spill-single-def "impAppendStmt" +; V16 tmp5 [V16,T29] ( 2, 2 ) int -> rbx "impAppendStmt" +; V17 tmp6 [V17,T30] ( 2, 2 ) int -> r13 "impAppendStmt" ;* V18 tmp7 [V18 ] ( 0, 0 ) ref -> zero-ref single-def ;* V19 tmp8 [V19 ] ( 0, 0 ) int -> zero-ref ;* V20 tmp9 [V20 ] ( 0, 0 ) int -> zero-ref -; V21 tmp10 [V21,T41] ( 2, 1 ) int -> rcx +; V21 tmp10 [V21,T37] ( 2, 1 ) int -> rcx ;* V22 tmp11 [V22 ] ( 0, 0 ) ref -> zero-ref single-def ;* V23 tmp12 [V23 ] ( 0, 0 ) int -> zero-ref ;* V24 tmp13 [V24 ] ( 0, 0 ) int -> zero-ref ;* V25 tmp14 [V25 ] ( 0, 0 ) int -> zero-ref -; V26 tmp15 [V26,T36] ( 3, 1.50) int -> r8 +; V26 tmp15 [V26,T32] ( 3, 1.50) int -> r8 ;* V27 tmp16 [V27 ] ( 0, 0 ) ref -> zero-ref single-def ;* V28 tmp17 [V28 ] ( 0, 0 ) int -> zero-ref ;* V29 tmp18 [V29 ] ( 0, 0 ) int -> zero-ref ;* V30 tmp19 [V30 ] ( 0, 0 ) int -> zero-ref ;* V31 tmp20 [V31 ] ( 0, 0 ) int -> zero-ref ;* V32 tmp21 [V32 ] ( 0, 0 ) ref -> zero-ref single-def ;* V33 tmp22 [V33 ] ( 0, 0 ) int -> zero-ref ;* V34 tmp23 [V34 ] ( 0, 0 ) int -> zero-ref ;* V35 tmp24 [V35 ] ( 0, 0 ) int -> zero-ref ;* V36 tmp25 [V36 ] ( 0, 0 ) int -> zero-ref -; V37 tmp26 [V37,T37] ( 3, 1.50) int -> r9 +; V37 tmp26 [V37,T33] ( 3, 1.50) int -> r9 ;* V38 tmp27 [V38 ] ( 0, 0 ) int -> zero-ref "impAppendStmt" ;* V39 tmp28 [V39 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V40 tmp29 [V40 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" -; V41 tmp30 [V41,T30] ( 2, 2 ) ref -> rax class-hnd single-def "dup spill" -; V42 tmp31 [V42,T27] ( 4, 2 ) ref -> rax -; V43 tmp32 [V43,T45] ( 3, 0 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" +; V41 tmp30 [V41,T26] ( 2, 2 ) ref -> rax class-hnd single-def "dup spill" +; V42 tmp31 [V42,T23] ( 4, 2 ) ref -> rax +; V43 tmp32 [V43,T41] ( 3, 0 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" ;* V44 tmp33 [V44 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V45 tmp34 [V45 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" ;* V46 tmp35 [V46 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V47 tmp36 [V47 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -; V48 tmp37 [V48,T38] ( 3, 1.50) ubyte -> rdx "Inline return value spill temp" -; V49 tmp38 [V49,T11] ( 3, 5 ) ref -> [rbp-0x70] class-hnd spill-single-def "Inline stloc first use temp" -; V50 tmp39 [V50,T01] ( 7, 22.50) int -> [rbp-0x44] "Inline stloc first use temp" -; V51 tmp40 [V51,T05] ( 4, 12.50) int -> [rbp-0x48] "Inline stloc first use temp" -; V52 tmp41 [V52,T02] ( 2, 16 ) int -> rax "dup spill" +; V48 tmp37 [V48,T34] ( 3, 1.50) ubyte -> rdx "Inline return value spill temp" +; V49 tmp38 [V49,T08] ( 3, 5 ) ref -> [rbp-0x68] class-hnd spill-single-def "Inline stloc first use temp" +; V50 tmp39 [V50,T00] ( 7, 22.50) int -> [rbp-0x44] "Inline stloc first use temp" +; V51 tmp40 [V51,T03] ( 4, 12.50) int -> [rbp-0x48] "Inline stloc first use temp" +; V52 tmp41 [V52,T01] ( 2, 16 ) int -> rax "dup spill" ;* V53 tmp42 [V53 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" -; V54 tmp43 [V54,T39] ( 3, 1.50) int -> [rbp-0x4C] "Inline return value spill temp" -; V55 tmp44 [V55,T15] ( 4, 4 ) int -> rcx "dup spill" +; V54 tmp43 [V54,T35] ( 3, 1.50) int -> [rbp-0x4C] "Inline return value spill temp" +; V55 tmp44 [V55,T12] ( 4, 4 ) int -> rcx "dup spill" ;* V56 tmp45 [V56 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" -;* V57 tmp46 [V57 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" -; V58 tmp47 [V58,T07] ( 3, 10 ) ubyte -> [rbp-0x50] "Inline stloc first use temp" -; V59 tmp48 [V59,T00] ( 8, 56 ) ref -> [rbp-0x78] class-hnd spill-single-def "Inlining Arg" -; V60 tmp49 [V60,T06] ( 3, 10 ) ref -> rdi class-hnd "Inline stloc first use temp" -; V61 tmp50 [V61,T03] ( 5, 14 ) int -> [rbp-0x54] spill-single-def "Inline stloc first use temp" -; V62 tmp51 [V62,T35] ( 2, 2 ) int -> r8 "Inlining Arg" -;* V63 tmp52 [V63,T43] ( 0, 0 ) ref -> zero-ref single-def "field V39.Array (fldOffset=0x0)" P-INDEP -;* V64 tmp53 [V64,T44] ( 0, 0 ) int -> zero-ref "field V39.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP -; V65 tmp54 [V65,T19] ( 3, 3 ) ref -> rdi single-def "arr expr" -; V66 tmp55 [V66,T46] ( 2, 0 ) ref -> rbx single-def "argument with side effect" -; V67 tmp56 [V67,T47] ( 2, 0 ) ref -> rdx single-def "argument with side effect" -; V68 cse0 [V68,T40] ( 3, 1.50) long -> rax "CSE - moderate" -; V69 cse1 [V69,T04] ( 5, 13 ) int -> [rbp-0x58] spill-single-def "CSE - aggressive" -; V70 cse2 [V70,T13] ( 6, 4 ) int -> r13 "CSE - moderate" -; V71 rat0 [V71,T24] ( 2, 2 ) long -> rdi "Spilling to split statement for tree" -;* V72 rat1 [V72,T42] ( 0, 0 ) long -> zero-ref "runtime lookup" -; V73 rat2 [V73,T22] ( 2, 2 ) long -> rdi "spilling expr" -;* V74 rat3 [V74,T25] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" -; V75 rat4 [V75,T29] ( 3, 2 ) long -> rax "TLS field access" -; V76 rat5 [V76,T20] ( 3, 3 ) long -> rax "TLS access" -; V77 rat6 [V77,T21] ( 3, 3 ) long -> rax "ThreadStaticBlockBase access" +; V57 tmp46 [V57,T31] ( 2, 2 ) int -> r8 "Inlining Arg" +;* V58 tmp47 [V58,T39] ( 0, 0 ) ref -> zero-ref single-def "field V39.Array (fldOffset=0x0)" P-INDEP +;* V59 tmp48 [V59,T40] ( 0, 0 ) int -> zero-ref "field V39.MillisecondsTimeStamp (fldOffset=0x8)" P-INDEP +; V60 tmp49 [V60,T15] ( 3, 3 ) ref -> rdi single-def "arr expr" +; V61 tmp50 [V61,T42] ( 2, 0 ) ref -> rbx single-def "argument with side effect" +; V62 tmp51 [V62,T43] ( 2, 0 ) ref -> rdx single-def "argument with side effect" +; V63 cse0 [V63,T36] ( 3, 1.50) long -> rax "CSE - moderate" +; V64 cse1 [V64,T02] ( 5, 13 ) int -> [rbp-0x50] spill-single-def "CSE - aggressive" +; V65 cse2 [V65,T10] ( 6, 4 ) int -> r13 "CSE - moderate" +; V66 rat0 [V66,T20] ( 2, 2 ) long -> rdi "Spilling to split statement for tree" +;* V67 rat1 [V67,T38] ( 0, 0 ) long -> zero-ref "runtime lookup" +; V68 rat2 [V68,T18] ( 2, 2 ) long -> rdi "spilling expr" +;* V69 rat3 [V69,T21] ( 0, 0 ) long -> zero-ref "fgMakeTemp is creating a new local variable" +; V70 rat4 [V70,T25] ( 3, 2 ) long -> rax "TLS field access" +; V71 rat5 [V71,T16] ( 3, 3 ) long -> rax "TLS access" +; V72 rat6 [V72,T17] ( 3, 3 ) long -> rax "ThreadStaticBlockBase access" ; -; Lcl frame size = 88 +; Lcl frame size = 72 G_M26159_IG01: push rbp push r15 push r14 push r13 push r12 push rbx - sub rsp, 88 - lea rbp, [rsp+0x80] + sub rsp, 72 + lea rbp, [rsp+0x70] mov qword ptr [rbp-0x30], rdi mov r15, rdi mov rbx, rsi mov r14d, edx - ;; size=35 bbWeight=1 PerfScore 8.50 + ;; size=32 bbWeight=1 PerfScore 8.50 G_M26159_IG02: test rbx, rbx - je G_M26159_IG33 + je G_M26159_IG29 mov r13d, dword ptr [rbx+0x08] lea edi, [r13-0x01] or edi, 15 xor r12d, r12d lzcnt r12d, edi xor r12d, 31 add r12d, -3 mov rdi, qword ptr [r15] call CORINFO_HELP_GETGENERICS_GCTHREADSTATIC_BASE mov rax, gword ptr [rax] test rax, rax jne SHORT G_M26159_IG04 ;; size=52 bbWeight=1 PerfScore 13.00 G_M26159_IG03: mov rdi, r15 mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[System.__Canon]:InitializeTlsBucketsAndTrimming():System.Buffers.SharedArrayPool`1+ThreadLocalArray[System.__Canon][]:this call [rax]System.Buffers.SharedArrayPool`1[System.__Canon]:InitializeTlsBucketsAndTrimming():System.Buffers.SharedArrayPool`1+ThreadLocalArray[System.__Canon][]:this ;; size=15 bbWeight=0.50 PerfScore 1.75 G_M26159_IG04: xor ecx, ecx mov dword ptr [rbp-0x38], 1 - mov gword ptr [rbp-0x68], rax + mov gword ptr [rbp-0x60], rax cmp dword ptr [rax+0x08], r12d - jbe G_M26159_IG24 + jbe G_M26159_IG20 ;; size=23 bbWeight=1 PerfScore 6.25 G_M26159_IG05: mov dword ptr [rbp-0x34], 1 test r14b, r14b je SHORT G_M26159_IG06 mov rdi, rbx mov rsi, 0xD1FFAB1E ; code for System.Array:Clear(System.Array) call [rsi]System.Array:Clear(System.Array) ;; size=27 bbWeight=0.50 PerfScore 2.88 G_M26159_IG06: mov edi, 16 shlx edi, edi, r12d cmp r13d, edi - jne G_M26159_IG34 + jne G_M26159_IG30 mov edi, r12d shl rdi, 4 - mov rax, gword ptr [rbp-0x68] + mov rax, gword ptr [rbp-0x60] lea r14, bword ptr [rax+rdi+0x10] mov rax, gword ptr [r14] - mov gword ptr [rbp-0x60], rax + mov gword ptr [rbp-0x58], rax mov rdi, qword ptr [r15] mov rdi, qword ptr [rdi+0x30] mov rdi, qword ptr [rdi+0x08] cmp qword ptr [rdi+0x08], 64 jle SHORT G_M26159_IG07 ;; size=60 bbWeight=0.50 PerfScore 8.88 G_M26159_IG07: mov rdi, r14 mov rsi, rbx call CORINFO_HELP_CHECKED_ASSIGN_REF xor edi, edi mov dword ptr [r14+0x08], edi - mov r14, gword ptr [rbp-0x60] + mov r14, gword ptr [rbp-0x58] test r14, r14 je G_M26159_IG10 mov rdi, gword ptr [r15+0x10] cmp r12d, dword ptr [rdi+0x08] - jae G_M26159_IG32 + jae G_M26159_IG28 mov esi, r12d mov rax, gword ptr [rdi+8*rsi+0x10] test rax, rax jne SHORT G_M26159_IG08 mov rdi, r15 mov esi, r12d mov rax, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1[System.__Canon]:CreatePerCorePartitions(int):System.Buffers.SharedArrayPool`1+Partitions[System.__Canon]:this call [rax]System.Buffers.SharedArrayPool`1[System.__Canon]:CreatePerCorePartitions(int):System.Buffers.SharedArrayPool`1+Partitions[System.__Canon]:this ;; size=75 bbWeight=0.50 PerfScore 9.12 G_M26159_IG08: mov rax, gword ptr [rax+0x08] - mov gword ptr [rbp-0x70], rax + mov gword ptr [rbp-0x68], rax mov rdi, 0xD1FFAB1E mov rcx, 0xD1FFAB1E ; function address call rcx cmp dword ptr [rax], 2 - jl G_M26159_IG35 + jl G_M26159_IG31 mov rax, qword ptr [rax+0x08] mov rax, qword ptr [rax+0x10] test rax, rax - je G_M26159_IG35 + je G_M26159_IG31 ;; size=56 bbWeight=0.50 PerfScore 7.88 G_M26159_IG09: mov ecx, dword ptr [rax+0x0A0C] lea edx, [rcx-0x01] mov dword ptr [rax+0x0A0C], edx movzx rax, cx test eax, eax jne SHORT G_M26159_IG11 mov rax, 0xD1FFAB1E ; code for System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int call [rax]System.Threading.ProcessorIdCache:RefreshCurrentProcessorId():int mov edx, eax jmp SHORT G_M26159_IG12 ;; size=38 bbWeight=0.50 PerfScore 5.25 G_M26159_IG10: mov ecx, dword ptr [rbp-0x34] - jmp G_M26159_IG24 + jmp G_M26159_IG20 ;; size=8 bbWeight=0.25 PerfScore 0.75 G_M26159_IG11: mov edx, ecx sar edx, 16 ;; size=5 bbWeight=0.50 PerfScore 0.38 G_M26159_IG12: mov rax, 0xD1FFAB1E ; global ptr test byte ptr [rax], 1 - je G_M26159_IG36 + je G_M26159_IG32 ;; size=19 bbWeight=0.50 PerfScore 2.12 G_M26159_IG13: mov rdi, 0xD1FFAB1E ; data for System.Buffers.SharedArrayPoolStatics:s_partitionCount mov eax, edx xor edx, edx div edx:eax, dword ptr [rdi] mov eax, edx xor ecx, ecx mov dword ptr [rbp-0x48], ecx - mov rdx, gword ptr [rbp-0x70] - mov esi, dword ptr [rdx+0x08] - mov dword ptr [rbp-0x58], esi - test esi, esi - jle G_M26159_IG20 - ;; size=41 bbWeight=0.50 PerfScore 16.25 + mov rdx, gword ptr [rbp-0x68] + mov r8d, dword ptr [rdx+0x08] + mov dword ptr [rbp-0x50], r8d + test r8d, r8d + jle SHORT G_M26159_IG17 + ;; size=40 bbWeight=0.50 PerfScore 16.25 G_M26159_IG14: - cmp eax, esi - jae G_M26159_IG32 + cmp eax, r8d + jae G_M26159_IG28 mov dword ptr [rbp-0x44], eax mov edi, eax - mov r8, gword ptr [rdx+8*rdi+0x10] - mov gword ptr [rbp-0x78], r8 - cmp byte ptr [r8], r8b - xor r9d, r9d - mov dword ptr [rbp-0x50], r9d - mov rdi, r8 - call System.Threading.Monitor:Enter(System.Object) - mov rax, gword ptr [rbp-0x78] - mov rdi, gword ptr [rax+0x08] - mov ecx, dword ptr [rax+0x10] - mov dword ptr [rbp-0x54], ecx - cmp dword ptr [rdi+0x08], ecx - jbe SHORT G_M26159_IG17 - ;; size=59 bbWeight=4 PerfScore 84.00 -G_M26159_IG15: - test ecx, ecx - jne SHORT G_M26159_IG21 - xor esi, esi - mov dword ptr [rax+0x14], esi - ;; size=9 bbWeight=2 PerfScore 5.00 -G_M26159_IG16: - movsxd rsi, ecx - mov rdx, r14 - call CORINFO_HELP_ARRADDR_ST - mov edi, dword ptr [rbp-0x54] - inc edi - mov rax, gword ptr [rbp-0x78] - mov dword ptr [rax+0x10], edi - mov dword ptr [rbp-0x50], 1 - ;; size=30 bbWeight=2 PerfScore 11.50 -G_M26159_IG17: - mov rdi, rax - call System.Threading.Monitor:Exit(System.Object) - cmp dword ptr [rbp-0x50], 0 - jne SHORT G_M26159_IG22 + mov rdi, gword ptr [rdx+8*rdi+0x10] + mov rsi, r14 + mov r9, 0xD1FFAB1E ; code for System.Buffers.SharedArrayPool`1+Partition[System.__Canon]:TryPush(System.__Canon[]):ubyte:this + cmp dword ptr [rdi], edi + call [r9]System.Buffers.SharedArrayPool`1+Partition[System.__Canon]:TryPush(System.__Canon[]):ubyte:this + test eax, eax + jne SHORT G_M26159_IG18 mov eax, dword ptr [rbp-0x44] inc eax mov edi, eax - mov esi, dword ptr [rbp-0x58] - cmp esi, edi - jne SHORT G_M26159_IG19 - ;; size=28 bbWeight=4 PerfScore 32.00 -G_M26159_IG18: + mov r8d, dword ptr [rbp-0x50] + cmp r8d, edi + jne SHORT G_M26159_IG16 + ;; size=57 bbWeight=4 PerfScore 64.00 +G_M26159_IG15: xor edi, edi ;; size=2 bbWeight=2 PerfScore 0.50 -G_M26159_IG19: +G_M26159_IG16: mov ecx, dword ptr [rbp-0x48] inc ecx - cmp esi, ecx + cmp r8d, ecx mov dword ptr [rbp-0x48], ecx mov eax, edi - mov rdx, gword ptr [rbp-0x70] - jg G_M26159_IG14 - ;; size=22 bbWeight=4 PerfScore 19.00 -G_M26159_IG20: + mov rdx, gword ptr [rbp-0x68] + jg SHORT G_M26159_IG14 + ;; size=19 bbWeight=4 PerfScore 19.00 +G_M26159_IG17: xor edx, edx - jmp SHORT G_M26159_IG23 + jmp SHORT G_M26159_IG19 ;; size=4 bbWeight=0.50 PerfScore 1.12 -G_M26159_IG21: - jmp SHORT G_M26159_IG16 - ;; size=2 bbWeight=1 PerfScore 2.00 -G_M26159_IG22: +G_M26159_IG18: mov edx, 1 ;; size=5 bbWeight=0.50 PerfScore 0.12 -G_M26159_IG23: +G_M26159_IG19: mov dword ptr [rbp-0x38], edx mov ecx, dword ptr [rbp-0x34] ;; size=6 bbWeight=0.50 PerfScore 1.00 -G_M26159_IG24: +G_M26159_IG20: mov rdi, 0xD1FFAB1E ; const ptr mov r14, gword ptr [rdi] cmp byte ptr [r14+0x9D], 0 - je G_M26159_IG30 + je G_M26159_IG26 ;; size=27 bbWeight=1 PerfScore 6.25 -G_M26159_IG25: +G_M26159_IG21: test r13d, r13d mov dword ptr [rbp-0x34], ecx - je G_M26159_IG30 + je G_M26159_IG26 mov rdi, rbx call System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int mov dword ptr [rbp-0x3C], eax mov dword ptr [rbp-0x40], r13d mov rdi, r15 call System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int mov r8d, eax mov rdi, r14 mov edx, dword ptr [rbp-0x3C] mov ecx, dword ptr [rbp-0x40] mov esi, 3 mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,int,int,int):this mov eax, dword ptr [rbp-0x34] test eax, dword ptr [rbp-0x38] - jne SHORT G_M26159_IG30 + jne SHORT G_M26159_IG26 mov rdi, rbx call System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int mov ebx, eax mov rdi, r15 call System.Runtime.CompilerServices.RuntimeHelpers:GetHashCode(System.Object):int mov ecx, eax cmp dword ptr [rbp-0x34], 0 - jne SHORT G_M26159_IG26 + jne SHORT G_M26159_IG22 mov r8d, -1 - jmp SHORT G_M26159_IG27 + jmp SHORT G_M26159_IG23 ;; size=106 bbWeight=0.50 PerfScore 12.50 -G_M26159_IG26: +G_M26159_IG22: mov r8d, r12d - jmp SHORT G_M26159_IG28 + jmp SHORT G_M26159_IG24 ;; size=5 bbWeight=0.50 PerfScore 1.12 -G_M26159_IG27: +G_M26159_IG23: mov r9d, 1 - jmp SHORT G_M26159_IG29 + jmp SHORT G_M26159_IG25 ;; size=8 bbWeight=0.50 PerfScore 1.12 -G_M26159_IG28: +G_M26159_IG24: xor r9d, r9d ;; size=3 bbWeight=0.50 PerfScore 0.12 -G_M26159_IG29: +G_M26159_IG25: mov rdi, r14 mov esi, ebx mov edx, r13d mov rax, 0xD1FFAB1E ; code for System.Buffers.ArrayPoolEventSource:BufferDropped(int,int,int,int,int):this call [rax]System.Buffers.ArrayPoolEventSource:BufferDropped(int,int,int,int,int):this ;; size=20 bbWeight=0.50 PerfScore 2.00 -G_M26159_IG30: +G_M26159_IG26: nop ;; size=1 bbWeight=1 PerfScore 0.25 -G_M26159_IG31: - add rsp, 88 +G_M26159_IG27: + add rsp, 72 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.25 -G_M26159_IG32: +G_M26159_IG28: call CORINFO_HELP_RNGCHKFAIL ;; size=5 bbWeight=0 PerfScore 0.00 -G_M26159_IG33: +G_M26159_IG29: mov edi, 2 mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int) call [rax]System.ThrowHelper:ThrowArgumentNullException(int) int3 ;; size=18 bbWeight=0 PerfScore 0.00 -G_M26159_IG34: +G_M26159_IG30: mov rdi, 0xD1FFAB1E ; System.ArgumentException call CORINFO_HELP_NEWSFAST mov r12, rax mov rax, 0xD1FFAB1E ; code for System.SR:get_ArgumentException_BufferNotFromPool():System.String call [rax]System.SR:get_ArgumentException_BufferNotFromPool():System.String mov rbx, rax mov edi, 987 mov rsi, 0xD1FFAB1E call CORINFO_HELP_STRCNS mov rdx, rax mov rsi, rbx mov rdi, r12 mov rax, 0xD1FFAB1E ; code for System.ArgumentException:.ctor(System.String,System.String):this call [rax]System.ArgumentException:.ctor(System.String,System.String):this mov rdi, r12 call CORINFO_HELP_THROW ;; size=82 bbWeight=0 PerfScore 0.00 -G_M26159_IG35: +G_M26159_IG31: mov edi, 2 call CORINFO_HELP_GETSHARED_NONGCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED jmp G_M26159_IG09 ;; size=15 bbWeight=0 PerfScore 0.00 -G_M26159_IG36: +G_M26159_IG32: mov dword ptr [rbp-0x4C], edx mov rdi, 0xD1FFAB1E mov esi, 658 call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE mov edx, dword ptr [rbp-0x4C] jmp G_M26159_IG13 ;; size=31 bbWeight=0 PerfScore 0.00 -; Total bytes of code 957, prolog size 35, PerfScore 362.58, instruction count 249, allocated bytes for code 957 (MethodHash=d01d99d0) for method System.Buffers.SharedArrayPool`1[System.__Canon]:Return(System.__Canon[],ubyte):this (FullOpts) +; Total bytes of code 879, prolog size 23, PerfScore 284.28, instruction count 226, allocated bytes for code 879 (MethodHash=d01d99d0) for method System.Buffers.SharedArrayPool`1[System.__Canon]:Return(System.__Canon[],ubyte):this (FullOpts) ```

Larger list of diffs: https://gist.github.com/MihuBot/758fe6d8c8229b958a9252c76a8fcd07

MihuBot commented 10 months ago

@EgorBo