MihuBot / runtime-utils

0 stars 0 forks source link

[X64] [EgorBo] Implement getStaticFieldCurrentClass for NAOT #220

Open MihuBot opened 8 months ago

MihuBot commented 8 months ago

Build completed in 2 hours 4 minutes. https://github.com/dotnet/runtime/pull/96982

CoreLib diffs

Diffs ``` Found 2 files with textual diffs. Summary of Code Size diffs: (Lower is better) Total bytes of base: 6789092 Total bytes of diff: 6794295 Total bytes of delta: 5203 (0.08 % of base) Total relative delta: 16.84 diff is a regression. relative diff is a regression. Top file regressions (bytes): 5203 : System.Private.CoreLib.dasm (0.08 % of base) 1 total files with Code Size differences (0 improved, 1 regressed), 0 unchanged. Top method regressions (bytes): 238 (11.35 % of base) : System.Private.CoreLib.dasm - System.Version:ParseVersion(System.ReadOnlySpan`1[ushort],ubyte):System.Version (FullOpts) 181 (6.75 % of base) : System.Private.CoreLib.dasm - System.TimeZoneInfo+StringSerializer:SerializeTransitionTime(System.TimeZoneInfo+TransitionTime,byref) (FullOpts) 125 (16.94 % of base) : System.Private.CoreLib.dasm - System.String:Replace(System.String,System.String,int):System.String:this (FullOpts) 123 (4.27 % of base) : System.Private.CoreLib.dasm - System.TimeZoneInfo+StringSerializer:GetSerializedString(System.TimeZoneInfo):System.String (FullOpts) 99 (23.40 % of base) : System.Private.CoreLib.dasm - System.Globalization.CultureData:GetNativeDigits():System.String[]:this (FullOpts) 63 (14.06 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:WriteAsync(ushort[],int,int):System.Threading.Tasks.Task:this (FullOpts) 63 (14.06 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:WriteLineAsync(ushort[],int,int):System.Threading.Tasks.Task:this (FullOpts) 46 (0.84 % of base) : System.Private.CoreLib.dasm - System.DateTimeFormat:FormatCustomized[ubyte](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (FullOpts) 46 (10.87 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:WriteAsync(System.String):System.Threading.Tasks.Task:this (FullOpts) 46 (11.06 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:WriteAsync(ushort):System.Threading.Tasks.Task:this (FullOpts) 46 (10.87 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:WriteLineAsync(System.String):System.Threading.Tasks.Task:this (FullOpts) 46 (11.06 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:WriteLineAsync(ushort):System.Threading.Tasks.Task:this (FullOpts) 45 (2.98 % of base) : System.Private.CoreLib.dasm - System.Environment:ReadXdgDirectory(System.String,System.String,System.String):System.String (FullOpts) 44 (12.26 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventPipeEventDispatcher:StartDispatchTask(ulong,System.DateTime,long,long):this (FullOpts) 44 (7.87 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:WriteAsync(System.ReadOnlyMemory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts) 44 (7.86 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:WriteLineAsync(System.ReadOnlyMemory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts) 43 (11.38 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:FlushAsync():System.Threading.Tasks.Task:this (FullOpts) 43 (10.31 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.Task:ThrowAsync(System.Exception,System.Threading.SynchronizationContext) (FullOpts) 42 (10.94 % of base) : System.Private.CoreLib.dasm - System.IO.Stream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts) 41 (1.42 % of base) : System.Private.CoreLib.dasm - System.Reflection.AssemblyNameFormatter:ComputeDisplayName(System.String,System.Version,System.String,ubyte[],int,int):System.String (FullOpts) 38 (3.49 % of base) : System.Private.CoreLib.dasm - System.Net.WebUtility:HtmlDecode(System.ReadOnlySpan`1[ushort],byref) (FullOpts) 38 (14.23 % of base) : System.Private.CoreLib.dasm - System.Version:TryParseComponent(System.ReadOnlySpan`1[ushort],System.String,ubyte,byref):ubyte (FullOpts) 36 (9.11 % of base) : System.Private.CoreLib.dasm - System.Buffers.StringSearchValues:AnalyzeValues(System.ReadOnlySpan`1[System.String],byref,byref,byref,byref,byref) (FullOpts) 36 (4.69 % of base) : System.Private.CoreLib.dasm - System.Buffers.StringSearchValues:TryGetTeddyAcceleratedValues(System.ReadOnlySpan`1[System.String],System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte,ubyte,int):System.Buffers.SearchValues`1[System.String] (FullOpts) 31 (5.12 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.FormattingHelpers:TryFormat[long](long,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (FullOpts) 30 (2.02 % of base) : System.Private.CoreLib.dasm - System.TimeZoneInfo:GetFullValueForDisplayNameField(System.String,System.TimeSpan,byref) (FullOpts) 29 (10.03 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSetEqualityComparer`1[int]:Equals(System.Collections.Generic.HashSet`1[int],System.Collections.Generic.HashSet`1[int]):ubyte:this (FullOpts) 29 (9.93 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSetEqualityComparer`1[long]:Equals(System.Collections.Generic.HashSet`1[long],System.Collections.Generic.HashSet`1[long]):ubyte:this (FullOpts) 29 (9.73 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSetEqualityComparer`1[short]:Equals(System.Collections.Generic.HashSet`1[short],System.Collections.Generic.HashSet`1[short]):ubyte:this (FullOpts) 29 (9.86 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSetEqualityComparer`1[ubyte]:Equals(System.Collections.Generic.HashSet`1[ubyte],System.Collections.Generic.HashSet`1[ubyte]):ubyte:this (FullOpts) 29 (2.78 % of base) : System.Private.CoreLib.dasm - System.IO.FileSystem:RemoveDirectoryRecursive(System.String) (FullOpts) 29 (11.93 % of base) : System.Private.CoreLib.dasm - System.Security.SecurityElement:GetUnescapeSequence(System.String,int,byref):System.String (FullOpts) 28 (8.19 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSetEqualityComparer`1[System.Nullable`1[int]]:Equals(System.Collections.Generic.HashSet`1[System.Nullable`1[int]],System.Collections.Generic.HashSet`1[System.Nullable`1[int]]):ubyte:this (FullOpts) 27 (4.65 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.FormattingHelpers:TryFormat[int](int,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (FullOpts) 27 (4.64 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.FormattingHelpers:TryFormat[short](short,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (FullOpts) 27 (3.49 % of base) : System.Private.CoreLib.dasm - System.Globalization.CompareInfo:IndexOfOrdinalIgnoreCaseHelper(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int,ulong,ubyte):int:this (FullOpts) 27 (5.65 % of base) : System.Private.CoreLib.dasm - System.IO.Stream:RunReadWriteTaskWhenReady(System.Threading.Tasks.Task,System.IO.Stream+ReadWriteTask) (FullOpts) 27 (4.61 % of base) : System.Private.CoreLib.dasm - System.IO.TextReader:ReadAsync(System.Memory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) 27 (5.52 % of base) : System.Private.CoreLib.dasm - System.IO.TextReader:ReadAsyncInternal(System.Memory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) 27 (4.61 % of base) : System.Private.CoreLib.dasm - System.IO.TextReader:ReadBlockAsync(System.Memory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) 27 (6.41 % of base) : System.Private.CoreLib.dasm - System.IO.TextReader:ReadLineCoreAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.String]:this (FullOpts) 27 (13.78 % of base) : System.Private.CoreLib.dasm - System.Text.SpanLineEnumerator:MoveNext():ubyte:this (FullOpts) 25 (5.84 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSetEqualityComparer`1[System.Numerics.Vector`1[float]]:Equals(System.Collections.Generic.HashSet`1[System.Numerics.Vector`1[float]],System.Collections.Generic.HashSet`1[System.Numerics.Vector`1[float]]):ubyte:this (FullOpts) 24 (2.33 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Utf8Formatter:TryFormat(int,int,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (FullOpts) 24 (6.90 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSetEqualityComparer`1[double]:Equals(System.Collections.Generic.HashSet`1[double],System.Collections.Generic.HashSet`1[double]):ubyte:this (FullOpts) 24 (4.19 % of base) : System.Private.CoreLib.dasm - System.DateTimeFormat:FormatFraction[ubyte](byref,int,System.ReadOnlySpan`1[ushort]) (FullOpts) 23 (12.64 % of base) : System.Private.CoreLib.dasm - System.Buffers.StringSearchValues:g__NormalizeIfNeeded|2_1(System.String,ubyte):System.String (FullOpts) 23 (63.89 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64+Base64ByteValidatable:IndexOfAnyExcept(System.ReadOnlySpan`1[ubyte]):int (FullOpts) 23 (63.89 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64+Base64CharValidatable:IndexOfAnyExcept(System.ReadOnlySpan`1[ushort]):int (FullOpts) 23 (2.57 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Utf8Formatter:TryFormat(uint,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (FullOpts) 23 (3.73 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.Task:AssignCancellationToken(System.Threading.CancellationToken,System.Threading.Tasks.Task,System.Threading.Tasks.TaskContinuation):this (FullOpts) 22 (3.00 % of base) : System.Private.CoreLib.dasm - System.Threading.CancellationTokenSource:CancelAsync():System.Threading.Tasks.Task:this (FullOpts) 22 (2.55 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.Task:AddTaskContinuationComplex(System.Object,ubyte):ubyte:this (FullOpts) 22 (5.66 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.Task:FinishSlow(ubyte):this (FullOpts) 22 (7.17 % of base) : System.Private.CoreLib.dasm - System.Threading.Timer:.ctor(System.Threading.TimerCallback):this (FullOpts) 20 (1.72 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Utf8Formatter:TryFormat(long,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (FullOpts) 20 (2.36 % of base) : System.Private.CoreLib.dasm - System.Number:TryNegativeInt128ToDecStr[ubyte](System.Int128,int,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts) 19 (9.50 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.FormattingHelpers:TryFormat[double](double,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (FullOpts) 19 (9.45 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Utf8Formatter:TryFormat(double,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (FullOpts) 19 (9.45 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Utf8Formatter:TryFormat(float,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (FullOpts) 19 (7.76 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Utf8Formatter:TryFormat(System.Decimal,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (FullOpts) 19 (8.60 % of base) : System.Private.CoreLib.dasm - System.Convert:ToString(int,int):System.String (FullOpts) 19 (8.48 % of base) : System.Private.CoreLib.dasm - System.Convert:ToString(short,int):System.String (FullOpts) 19 (0.86 % of base) : System.Private.CoreLib.dasm - System.Number:g__TryFormatUInt128Slow|52_0[ubyte](System.UInt128,System.ReadOnlySpan`1[ushort],System.IFormatProvider,System.Span`1[ubyte],byref):ubyte (FullOpts) 19 (4.48 % of base) : System.Private.CoreLib.dasm - System.Number:NegativeInt64ToDecStr(long,int,System.String):System.String (FullOpts) 19 (5.25 % of base) : System.Private.CoreLib.dasm - System.Number:TryNegativeInt64ToDecStr[ubyte](long,int,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts) 19 (2.25 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.YieldAwaitable+YieldAwaiter:System.Runtime.CompilerServices.IStateMachineBoxAwareAwaiter.AwaitUnsafeOnCompleted(System.Runtime.CompilerServices.IAsyncStateMachineBox):this (FullOpts) 19 (11.11 % of base) : System.Private.CoreLib.dasm - System.TimeZoneInfo+StringSerializer:GetNextInt32Value():int:this (FullOpts) 17 (3.70 % of base) : System.Private.CoreLib.dasm - System.Threading.Timer:.ctor(System.Threading.TimerCallback,System.Object,int,int):this (FullOpts) 17 (2.79 % of base) : System.Private.CoreLib.dasm - System.Threading.Timer:.ctor(System.Threading.TimerCallback,System.Object,long,long):this (FullOpts) 17 (6.14 % of base) : System.Private.CoreLib.dasm - System.UInt32:TryFormat(System.Span`1[ubyte],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):ubyte:this (FullOpts) 16 (1.54 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Utf8Formatter:TryFormat(ulong,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (FullOpts) 16 (17.02 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[double,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (18.39 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[int,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[int,System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (12.80 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[int,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair`2[int,System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (17.98 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[long,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (12.70 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[long,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (17.98 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[short,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[short,System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (12.70 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[short,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair`2[short,System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (15.38 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (12.12 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (17.98 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[System.Nullable`1[int],System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (12.70 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair`2[System.Nullable`1[int],System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (17.78 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (17.98 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[ubyte,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[ubyte,System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (12.70 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[ubyte,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair`2[ubyte,System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (1.30 % of base) : System.Private.CoreLib.dasm - System.Number:TryUInt128ToDecStr[ubyte](System.UInt128,int,System.Span`1[ubyte],byref):ubyte (FullOpts) 16 (2.41 % of base) : System.Private.CoreLib.dasm - System.Range:ToString():System.String:this (FullOpts) 16 (2.81 % of base) : System.Private.CoreLib.dasm - System.Runtime.CompilerServices.YieldAwaitable+YieldAwaiter:QueueContinuation(System.Action,ubyte) (FullOpts) 16 (6.67 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCoreShared:g__ScheduleTaskScheduler|2_1(System.Threading.Tasks.TaskScheduler,System.Action`1[System.Object],System.Object) (FullOpts) 16 (2.21 % of base) : System.Private.CoreLib.dasm - System.Threading.Timer:.ctor(System.Threading.TimerCallback,System.Object,System.TimeSpan,System.TimeSpan):this (FullOpts) 16 (4.48 % of base) : System.Private.CoreLib.dasm - System.Threading.Timer:.ctor(System.Threading.TimerCallback,System.Object,uint,uint):this (FullOpts) 16 (5.76 % of base) : System.Private.CoreLib.dasm - System.UInt16:TryFormat(System.Span`1[ubyte],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):ubyte:this (FullOpts) 15 (5.38 % of base) : System.Private.CoreLib.dasm - System.Byte:TryFormat(System.Span`1[ubyte],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):ubyte:this (FullOpts) 15 (11.63 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[double,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):ubyte:this (FullOpts) 15 (11.54 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]):ubyte:this (FullOpts) 15 (5.81 % of base) : System.Private.CoreLib.dasm - System.Decimal+DecCalc:SearchScale(byref,int):int (FullOpts) 14 (6.22 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1+Partitions[double]:.ctor():this (FullOpts) 14 (6.22 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1+Partitions[int]:.ctor():this (FullOpts) 14 (6.22 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1+Partitions[long]:.ctor():this (FullOpts) Top method improvements (bytes): -16 (-17.78 % of base) : System.Private.CoreLib.dasm - System.Globalization.UmAlQuraCalendar:RealGetDaysInYear(int):int (FullOpts) -4 (-1.67 % of base) : System.Private.CoreLib.dasm - System.Number:Int32ToNumber(int,byref) (FullOpts) -3 (-2.38 % of base) : System.Private.CoreLib.dasm - System.Globalization.UmAlQuraCalendar:GetDaysInMonth(int,int,int):int:this (FullOpts) -3 (-5.08 % of base) : System.Private.CoreLib.dasm - System.Number:UInt32ToDecStrForKnownSmallNumber(uint):System.String (FullOpts) -2 (-2.67 % of base) : System.Private.CoreLib.dasm - System.Number:g__CreateAndCacheString|70_0(uint):System.String (FullOpts) -2 (-0.42 % of base) : System.Private.CoreLib.dasm - System.Text.StringBuilder:AppendJoinCore[ubyte](byref,int,System.Collections.Generic.IEnumerable`1[ubyte]):System.Text.StringBuilder:this (FullOpts) -1 (-0.57 % of base) : System.Private.CoreLib.dasm - System.Globalization.HebrewNumber:ParseByChar(ushort,byref):int (FullOpts) Top method regressions (percentages): 23 (63.89 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64+Base64ByteValidatable:IndexOfAnyExcept(System.ReadOnlySpan`1[ubyte]):int (FullOpts) 23 (63.89 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64+Base64CharValidatable:IndexOfAnyExcept(System.ReadOnlySpan`1[ushort]):int (FullOpts) 12 (52.17 % of base) : System.Private.CoreLib.dasm - System.IO.StreamReader+NullStreamReader:ReadAsync(ushort[],int,int):System.Threading.Tasks.Task`1[int]:this (FullOpts) 12 (52.17 % of base) : System.Private.CoreLib.dasm - System.IO.StreamReader+NullStreamReader:ReadBlockAsync(ushort[],int,int):System.Threading.Tasks.Task`1[int]:this (FullOpts) 99 (23.40 % of base) : System.Private.CoreLib.dasm - System.Globalization.CultureData:GetNativeDigits():System.String[]:this (FullOpts) 12 (22.64 % of base) : System.Private.CoreLib.dasm - System.IO.Stream+NullStream:ReadAsync(ubyte[],int,int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[int]:this (FullOpts) 16 (18.39 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[int,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[int,System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (17.98 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[long,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (17.98 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[short,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[short,System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (17.98 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[System.Nullable`1[int],System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (17.98 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[ubyte,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[ubyte,System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (17.78 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (17.02 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[double,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):ubyte:this (FullOpts) 125 (16.94 % of base) : System.Private.CoreLib.dasm - System.String:Replace(System.String,System.String,int):System.String:this (FullOpts) 16 (15.38 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Contains(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]):ubyte:this (FullOpts) 38 (14.23 % of base) : System.Private.CoreLib.dasm - System.Version:TryParseComponent(System.ReadOnlySpan`1[ushort],System.String,ubyte,byref):ubyte (FullOpts) 63 (14.06 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:WriteAsync(ushort[],int,int):System.Threading.Tasks.Task:this (FullOpts) 63 (14.06 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:WriteLineAsync(ushort[],int,int):System.Threading.Tasks.Task:this (FullOpts) 27 (13.78 % of base) : System.Private.CoreLib.dasm - System.Text.SpanLineEnumerator:MoveNext():ubyte:this (FullOpts) 16 (12.80 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[int,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair`2[int,System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (12.70 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[long,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair`2[long,System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (12.70 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[short,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair`2[short,System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (12.70 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair`2[System.Nullable`1[int],System.Nullable`1[int]]):ubyte:this (FullOpts) 16 (12.70 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[ubyte,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair`2[ubyte,System.Nullable`1[int]]):ubyte:this (FullOpts) 23 (12.64 % of base) : System.Private.CoreLib.dasm - System.Buffers.StringSearchValues:g__NormalizeIfNeeded|2_1(System.String,ubyte):System.String (FullOpts) 44 (12.26 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Tracing.EventPipeEventDispatcher:StartDispatchTask(ulong,System.DateTime,long,long):this (FullOpts) 16 (12.12 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.Nullable`1[int]]):ubyte:this (FullOpts) 13 (12.04 % of base) : System.Private.CoreLib.dasm - System.Globalization.TaiwanLunisolarCalendar:.ctor():this (FullOpts) 13 (12.04 % of base) : System.Private.CoreLib.dasm - System.Globalization.ThaiBuddhistCalendar:.ctor():this (FullOpts) 29 (11.93 % of base) : System.Private.CoreLib.dasm - System.Security.SecurityElement:GetUnescapeSequence(System.String,int,byref):System.String (FullOpts) 15 (11.63 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[double,System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair`2[double,System.Nullable`1[int]]):ubyte:this (FullOpts) 15 (11.54 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.Dictionary`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]):ubyte:this (FullOpts) 43 (11.38 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:FlushAsync():System.Threading.Tasks.Task:this (FullOpts) 238 (11.35 % of base) : System.Private.CoreLib.dasm - System.Version:ParseVersion(System.ReadOnlySpan`1[ushort],ubyte):System.Version (FullOpts) 19 (11.11 % of base) : System.Private.CoreLib.dasm - System.TimeZoneInfo+StringSerializer:GetNextInt32Value():int:this (FullOpts) 46 (11.06 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:WriteAsync(ushort):System.Threading.Tasks.Task:this (FullOpts) 46 (11.06 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:WriteLineAsync(ushort):System.Threading.Tasks.Task:this (FullOpts) 42 (10.94 % of base) : System.Private.CoreLib.dasm - System.IO.Stream:FlushAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts) 46 (10.87 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:WriteAsync(System.String):System.Threading.Tasks.Task:this (FullOpts) 46 (10.87 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:WriteLineAsync(System.String):System.Threading.Tasks.Task:this (FullOpts) 8 (10.53 % of base) : System.Private.CoreLib.dasm - System.Globalization.HebrewNumber:IsDigit(ushort):ubyte (FullOpts) 43 (10.31 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.Task:ThrowAsync(System.Exception,System.Threading.SynchronizationContext) (FullOpts) 12 (10.26 % of base) : System.Private.CoreLib.dasm - System.Security.SecurityElement:GetEscapeSequence(ushort):System.String (FullOpts) 29 (10.03 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSetEqualityComparer`1[int]:Equals(System.Collections.Generic.HashSet`1[int],System.Collections.Generic.HashSet`1[int]):ubyte:this (FullOpts) 29 (9.93 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSetEqualityComparer`1[long]:Equals(System.Collections.Generic.HashSet`1[long],System.Collections.Generic.HashSet`1[long]):ubyte:this (FullOpts) 29 (9.86 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSetEqualityComparer`1[ubyte]:Equals(System.Collections.Generic.HashSet`1[ubyte],System.Collections.Generic.HashSet`1[ubyte]):ubyte:this (FullOpts) 29 (9.73 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSetEqualityComparer`1[short]:Equals(System.Collections.Generic.HashSet`1[short],System.Collections.Generic.HashSet`1[short]):ubyte:this (FullOpts) 19 (9.50 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.FormattingHelpers:TryFormat[double](double,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (FullOpts) 19 (9.45 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Utf8Formatter:TryFormat(double,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (FullOpts) 19 (9.45 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Utf8Formatter:TryFormat(float,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (FullOpts) 36 (9.11 % of base) : System.Private.CoreLib.dasm - System.Buffers.StringSearchValues:AnalyzeValues(System.ReadOnlySpan`1[System.String],byref,byref,byref,byref,byref) (FullOpts) 19 (8.60 % of base) : System.Private.CoreLib.dasm - System.Convert:ToString(int,int):System.String (FullOpts) 19 (8.48 % of base) : System.Private.CoreLib.dasm - System.Convert:ToString(short,int):System.String (FullOpts) 28 (8.19 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSetEqualityComparer`1[System.Nullable`1[int]]:Equals(System.Collections.Generic.HashSet`1[System.Nullable`1[int]],System.Collections.Generic.HashSet`1[System.Nullable`1[int]]):ubyte:this (FullOpts) 44 (7.87 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:WriteAsync(System.ReadOnlyMemory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts) 44 (7.86 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:WriteLineAsync(System.ReadOnlyMemory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.Task:this (FullOpts) 19 (7.76 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Utf8Formatter:TryFormat(System.Decimal,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (FullOpts) 2 (7.69 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.ObjectComparer`1[System.__Canon]:Compare(System.__Canon,System.__Canon):int:this (FullOpts) 2 (7.69 % of base) : System.Private.CoreLib.dasm - System.Number:WriteTwoDigits[ubyte](uint,ulong) (FullOpts) 2 (7.69 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.ThreadPoolTaskScheduler:NotifyWorkItemProgress():this (FullOpts) 14 (7.61 % of base) : System.Private.CoreLib.dasm - System.Threading.Timer:get_ActiveCount():long (FullOpts) 22 (7.17 % of base) : System.Private.CoreLib.dasm - System.Threading.Timer:.ctor(System.Threading.TimerCallback):this (FullOpts) 24 (6.90 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSetEqualityComparer`1[double]:Equals(System.Collections.Generic.HashSet`1[double],System.Collections.Generic.HashSet`1[double]):ubyte:this (FullOpts) 2 (6.90 % of base) : System.Private.CoreLib.dasm - System.Threading.ThreadPool:UnsafeQueueHighPriorityWorkItemInternal(System.Threading.IThreadPoolWorkItem) (FullOpts) 181 (6.75 % of base) : System.Private.CoreLib.dasm - System.TimeZoneInfo+StringSerializer:SerializeTransitionTime(System.TimeZoneInfo+TransitionTime,byref) (FullOpts) 16 (6.67 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCoreShared:g__ScheduleTaskScheduler|2_1(System.Threading.Tasks.TaskScheduler,System.Action`1[System.Object],System.Object) (FullOpts) 27 (6.41 % of base) : System.Private.CoreLib.dasm - System.IO.TextReader:ReadLineCoreAsync(System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.String]:this (FullOpts) 2 (6.25 % of base) : System.Private.CoreLib.dasm - System.Numerics.BitOperations+Crc32Fallback:Crc32C(uint,ubyte):uint (FullOpts) 14 (6.22 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1+Partitions[double]:.ctor():this (FullOpts) 14 (6.22 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1+Partitions[int]:.ctor():this (FullOpts) 14 (6.22 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1+Partitions[long]:.ctor():this (FullOpts) 14 (6.22 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1+Partitions[short]:.ctor():this (FullOpts) 14 (6.22 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1+Partitions[System.Nullable`1[int]]:.ctor():this (FullOpts) 14 (6.22 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1+Partitions[System.Numerics.Vector`1[float]]:.ctor():this (FullOpts) 14 (6.22 % of base) : System.Private.CoreLib.dasm - System.Buffers.SharedArrayPool`1+Partitions[ubyte]:.ctor():this (FullOpts) 17 (6.14 % of base) : System.Private.CoreLib.dasm - System.UInt32:TryFormat(System.Span`1[ubyte],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):ubyte:this (FullOpts) 25 (5.84 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.HashSetEqualityComparer`1[System.Numerics.Vector`1[float]]:Equals(System.Collections.Generic.HashSet`1[System.Numerics.Vector`1[float]],System.Collections.Generic.HashSet`1[System.Numerics.Vector`1[float]]):ubyte:this (FullOpts) 15 (5.81 % of base) : System.Private.CoreLib.dasm - System.Decimal+DecCalc:SearchScale(byref,int):int (FullOpts) 16 (5.76 % of base) : System.Private.CoreLib.dasm - System.UInt16:TryFormat(System.Span`1[ubyte],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):ubyte:this (FullOpts) 22 (5.66 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.Task:FinishSlow(ubyte):this (FullOpts) 27 (5.65 % of base) : System.Private.CoreLib.dasm - System.IO.Stream:RunReadWriteTaskWhenReady(System.Threading.Tasks.Task,System.IO.Stream+ReadWriteTask) (FullOpts) 27 (5.52 % of base) : System.Private.CoreLib.dasm - System.IO.TextReader:ReadAsyncInternal(System.Memory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) 2 (5.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.InteropServices.OSPlatform:GetHashCode():int:this (FullOpts) 15 (5.38 % of base) : System.Private.CoreLib.dasm - System.Byte:TryFormat(System.Span`1[ubyte],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):ubyte:this (FullOpts) 19 (5.25 % of base) : System.Private.CoreLib.dasm - System.Number:TryNegativeInt64ToDecStr[ubyte](long,int,System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],byref):ubyte (FullOpts) 7 (5.19 % of base) : System.Private.CoreLib.dasm - System.Number:UInt32ToDecChars[ubyte](ulong,uint,int):ulong (FullOpts) 31 (5.12 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.FormattingHelpers:TryFormat[long](long,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (FullOpts) 2 (5.00 % of base) : System.Private.CoreLib.dasm - System.Threading.ThreadPool:UnsafeQueueUserWorkItemInternal(System.Object,ubyte) (FullOpts) 36 (4.69 % of base) : System.Private.CoreLib.dasm - System.Buffers.StringSearchValues:TryGetTeddyAcceleratedValues(System.ReadOnlySpan`1[System.String],System.Collections.Generic.HashSet`1[System.String],ubyte,ubyte,ubyte,ubyte,int):System.Buffers.SearchValues`1[System.String] (FullOpts) 27 (4.65 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.FormattingHelpers:TryFormat[int](int,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (FullOpts) 27 (4.64 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.FormattingHelpers:TryFormat[short](short,System.Span`1[ubyte],byref,System.Buffers.StandardFormat):ubyte (FullOpts) 27 (4.61 % of base) : System.Private.CoreLib.dasm - System.IO.TextReader:ReadAsync(System.Memory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) 27 (4.61 % of base) : System.Private.CoreLib.dasm - System.IO.TextReader:ReadBlockAsync(System.Memory`1[ushort],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[int]:this (FullOpts) 16 (4.48 % of base) : System.Private.CoreLib.dasm - System.Threading.Timer:.ctor(System.Threading.TimerCallback,System.Object,uint,uint):this (FullOpts) 19 (4.48 % of base) : System.Private.CoreLib.dasm - System.Number:NegativeInt64ToDecStr(long,int,System.String):System.String (FullOpts) 123 (4.27 % of base) : System.Private.CoreLib.dasm - System.TimeZoneInfo+StringSerializer:GetSerializedString(System.TimeZoneInfo):System.String (FullOpts) 24 (4.19 % of base) : System.Private.CoreLib.dasm - System.DateTimeFormat:FormatFraction[ubyte](byref,int,System.ReadOnlySpan`1[ushort]) (FullOpts) 2 (4.17 % of base) : System.Private.CoreLib.dasm - Internal.Runtime.InteropServices.ComponentActivator:g__LoadAssemblyBytesLocal|16_0(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]) (FullOpts) 9 (3.96 % of base) : System.Private.CoreLib.dasm - System.Globalization.CalendricalCalculationsHelper:EphemerisCorrection(double):double (FullOpts) 2 (3.77 % of base) : System.Private.CoreLib.dasm - System.Numerics.BitOperations+Crc32Fallback:Crc32C(uint,ushort):uint (FullOpts) Top method improvements (percentages): -16 (-17.78 % of base) : System.Private.CoreLib.dasm - System.Globalization.UmAlQuraCalendar:RealGetDaysInYear(int):int (FullOpts) -3 (-5.08 % of base) : System.Private.CoreLib.dasm - System.Number:UInt32ToDecStrForKnownSmallNumber(uint):System.String (FullOpts) -2 (-2.67 % of base) : System.Private.CoreLib.dasm - System.Number:g__CreateAndCacheString|70_0(uint):System.String (FullOpts) -3 (-2.38 % of base) : System.Private.CoreLib.dasm - System.Globalization.UmAlQuraCalendar:GetDaysInMonth(int,int,int):int:this (FullOpts) -4 (-1.67 % of base) : System.Private.CoreLib.dasm - System.Number:Int32ToNumber(int,byref) (FullOpts) -1 (-0.57 % of base) : System.Private.CoreLib.dasm - System.Globalization.HebrewNumber:ParseByChar(ushort,byref):int (FullOpts) -2 (-0.42 % of base) : System.Private.CoreLib.dasm - System.Text.StringBuilder:AppendJoinCore[ubyte](byref,int,System.Collections.Generic.IEnumerable`1[ubyte]):System.Text.StringBuilder:this (FullOpts) 609 total methods with Code Size differences (7 improved, 602 regressed), 55266 unchanged. -------------------------------------------------------------------------------- ```

Frameworks diffs

Diffs ``` Found 370 files with textual diffs. Summary of Code Size diffs: (Lower is better) Total bytes of base: 38127101 Total bytes of diff: 38184279 Total bytes of delta: 57178 (0.15 % of base) Total relative delta: 182.02 diff is a regression. relative diff is a regression. Top file regressions (bytes): 12882 : System.Threading.Tasks.Dataflow.dasm (0.97 % of base) 5400 : System.Collections.Immutable.dasm (0.26 % of base) 5203 : System.Private.CoreLib.dasm (0.08 % of base) 5083 : System.Private.Xml.dasm (0.12 % of base) 2858 : System.Net.Http.dasm (0.36 % of base) 2303 : System.Text.Json.dasm (0.18 % of base) 2169 : System.Data.Common.dasm (0.13 % of base) 1684 : System.Linq.Parallel.dasm (0.08 % of base) 1025 : System.IO.Packaging.dasm (1.07 % of base) 1025 : System.IO.Pipes.dasm (2.66 % of base) 1021 : System.Net.Mail.dasm (0.55 % of base) 898 : System.Private.DataContractSerialization.dasm (0.09 % of base) 833 : System.Configuration.ConfigurationManager.dasm (0.20 % of base) 820 : System.Security.Cryptography.dasm (0.08 % of base) 755 : System.Formats.Asn1.dasm (0.88 % of base) 679 : System.Linq.Expressions.dasm (0.07 % of base) 643 : System.ComponentModel.TypeConverter.dasm (0.21 % of base) 568 : System.Data.Odbc.dasm (0.24 % of base) 514 : System.CodeDom.dasm (0.25 % of base) 505 : System.Net.NetworkInformation.dasm (0.97 % of base) 451 : Microsoft.CSharp.dasm (0.13 % of base) 409 : System.IO.Compression.dasm (0.43 % of base) 407 : System.Diagnostics.DiagnosticSource.dasm (0.17 % of base) 389 : System.Diagnostics.Process.dasm (0.40 % of base) 381 : System.Net.Security.dasm (0.17 % of base) 373 : Microsoft.Extensions.DependencyModel.dasm (0.46 % of base) 369 : System.Net.Requests.dasm (0.26 % of base) 353 : System.Reflection.MetadataLoadContext.dasm (0.15 % of base) 322 : System.Formats.Tar.dasm (0.26 % of base) 317 : System.Runtime.Serialization.Formatters.dasm (0.29 % of base) 293 : System.Private.Uri.dasm (0.32 % of base) 287 : System.Net.WebClient.dasm (0.52 % of base) 276 : System.Net.Http.Json.dasm (0.09 % of base) 268 : System.Threading.Channels.dasm (0.12 % of base) 259 : System.Composition.Hosting.dasm (0.25 % of base) 248 : System.Resources.Extensions.dasm (0.74 % of base) 239 : System.IO.Pipelines.dasm (0.30 % of base) 231 : System.Net.HttpListener.dasm (0.22 % of base) 230 : System.Net.Sockets.dasm (0.09 % of base) 220 : System.Net.WebSockets.dasm (0.19 % of base) 219 : System.Net.Primitives.dasm (0.25 % of base) 219 : Microsoft.Extensions.DependencyInjection.dasm (0.28 % of base) 201 : System.Net.Ping.dasm (0.42 % of base) 188 : System.Text.RegularExpressions.dasm (0.03 % of base) 184 : Microsoft.Extensions.FileProviders.Physical.dasm (0.89 % of base) 177 : System.Reflection.Metadata.dasm (0.03 % of base) 174 : System.Net.Quic.dasm (0.14 % of base) 159 : System.Diagnostics.TextWriterTraceListener.dasm (0.88 % of base) 153 : System.Web.HttpUtility.dasm (1.19 % of base) 151 : Microsoft.Extensions.Hosting.dasm (0.21 % of base) 132 : System.Threading.Tasks.Parallel.dasm (0.05 % of base) 126 : System.Security.Cryptography.Pkcs.dasm (0.03 % of base) 121 : System.Resources.Writer.dasm (1.25 % of base) 107 : System.Composition.TypedParts.dasm (0.20 % of base) 98 : System.ComponentModel.Primitives.dasm (0.57 % of base) 88 : System.Composition.Convention.dasm (0.07 % of base) 84 : System.IO.IsolatedStorage.dasm (0.37 % of base) 82 : System.Collections.NonGeneric.dasm (0.31 % of base) 82 : Microsoft.Extensions.Logging.Console.dasm (0.09 % of base) 76 : System.Private.Xml.Linq.dasm (0.04 % of base) 75 : Microsoft.VisualBasic.Core.dasm (0.01 % of base) 75 : System.ServiceModel.Syndication.dasm (0.05 % of base) 74 : System.Net.NameResolution.dasm (0.19 % of base) 73 : System.Security.Cryptography.Xml.dasm (0.03 % of base) 66 : Microsoft.Extensions.Caching.Memory.dasm (0.32 % of base) 66 : System.Net.WebSockets.Client.dasm (0.29 % of base) 60 : System.ComponentModel.Composition.dasm (0.01 % of base) 48 : System.Runtime.InteropServices.dasm (0.19 % of base) 47 : System.Console.dasm (0.05 % of base) 46 : System.Text.Encoding.CodePages.dasm (0.06 % of base) 46 : System.DirectoryServices.Protocols.dasm (0.03 % of base) 45 : System.Reflection.Emit.dasm (0.05 % of base) 40 : System.Diagnostics.TraceSource.dasm (0.08 % of base) 36 : Microsoft.Extensions.Logging.EventSource.dasm (0.15 % of base) 35 : System.Transactions.Local.dasm (0.02 % of base) 27 : System.IO.Ports.dasm (0.05 % of base) 25 : System.ComponentModel.Annotations.dasm (0.05 % of base) 22 : System.Collections.Specialized.dasm (0.08 % of base) 20 : System.Threading.RateLimiting.dasm (0.01 % of base) 19 : System.ComponentModel.EventBasedAsync.dasm (0.45 % of base) 19 : Microsoft.Extensions.Configuration.Xml.dasm (0.19 % of base) 19 : runincontext.dasm (0.13 % of base) 18 : System.Runtime.Numerics.dasm (0.01 % of base) 16 : System.Memory.dasm (0.01 % of base) 16 : Microsoft.Extensions.Logging.Debug.dasm (0.28 % of base) 14 : System.Runtime.Caching.dasm (0.02 % of base) 14 : Microsoft.Extensions.Diagnostics.dasm (0.07 % of base) 12 : Microsoft.Extensions.Logging.dasm (0.03 % of base) 12 : Microsoft.Extensions.Configuration.dasm (0.06 % of base) 12 : tieringtest.dasm (0.18 % of base) 12 : Microsoft.Extensions.DependencyInjection.Abstractions.dasm (0.02 % of base) 9 : Microsoft.Extensions.Logging.Abstractions.dasm (0.01 % of base) 9 : Microsoft.Extensions.Hosting.Abstractions.dasm (0.10 % of base) 9 : System.Reflection.DispatchProxy.dasm (0.05 % of base) 4 : System.Security.Claims.dasm (0.02 % of base) 4 : Microsoft.Extensions.Options.DataAnnotations.dasm (0.09 % of base) 4 : System.Security.Cryptography.Cose.dasm (0.01 % of base) 3 : System.ComponentModel.Composition.Registration.dasm (0.00 % of base) 3 : System.Drawing.Primitives.dasm (0.01 % of base) 3 : Microsoft.Extensions.Diagnostics.Abstractions.dasm (0.04 % of base) Top file improvements (bytes): -15 : System.Runtime.Serialization.Schema.dasm (-0.03 % of base) 113 total files with Code Size differences (1 improved, 112 regressed), 143 unchanged. Top method regressions (bytes): 982 (117.32 % of base) : System.IO.Pipes.dasm - System.IO.Pipes.PipeStream:GetPipePath(System.String,System.String):System.String (FullOpts) 747 (181.31 % of base) : System.IO.Packaging.dasm - System.IO.Packaging.ContentType:GetLengthOfParameterValue(System.ReadOnlySpan`1[ushort],int):int (FullOpts) 409 (53.96 % of base) : System.Formats.Asn1.dasm - System.Formats.Asn1.AsnCharacterStringEncodings:.cctor() (FullOpts) 297 (6.02 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.ReflectTypeDescriptionProvider+<>c:b__24_0():System.Collections.Generic.Dictionary`2[System.Object,System.ComponentModel.ReflectTypeDescriptionProvider+IntrinsicTypeConverterData]:this (FullOpts) 285 (6.82 % of base) : System.Net.NetworkInformation.dasm - System.Net.NetworkInformation.StringParsingHelpers:ParseInterfaceStatisticsTableFromFile(System.String,System.String):System.Net.NetworkInformation.IPInterfaceStatisticsTable (FullOpts) 238 (11.35 % of base) : System.Private.CoreLib.dasm - System.Version:ParseVersion(System.ReadOnlySpan`1[ushort],ubyte):System.Version (FullOpts) 237 (5.54 % of base) : System.Private.Xml.dasm - System.Xml.Schema.XsdDuration:TryFormat(System.Span`1[ushort],byref,int):ubyte:this (FullOpts) 199 (5.78 % of base) : System.Private.Xml.dasm - System.Xml.Schema.XmlAnyConverter:ChangeType(System.Object,System.Type,System.Xml.IXmlNamespaceResolver):System.Object:this (FullOpts) 181 (6.75 % of base) : System.Private.CoreLib.dasm - System.TimeZoneInfo+StringSerializer:SerializeTransitionTime(System.TimeZoneInfo+TransitionTime,byref) (FullOpts) 171 (9.78 % of base) : System.Runtime.Serialization.Formatters.dasm - System.Runtime.Serialization.Formatters.Binary.PrimitiveArray:SetValue(System.String,int):this (FullOpts) 148 (6.68 % of base) : System.Net.Mail.dasm - System.Net.Mail.Message:PrepareHeaders(ubyte):this (FullOpts) 130 (57.78 % of base) : System.Formats.Asn1.dasm - System.Formats.Asn1.RestrictedAsciiStringEncoding:.ctor(System.String):this (FullOpts) 128 (8.32 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+ReceiveTarget`1[double]:CleanupAndComplete(int):this (FullOpts) 128 (8.32 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+ReceiveTarget`1[int]:CleanupAndComplete(int):this (FullOpts) 128 (8.32 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+ReceiveTarget`1[long]:CleanupAndComplete(int):this (FullOpts) 128 (8.32 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+ReceiveTarget`1[short]:CleanupAndComplete(int):this (FullOpts) 128 (8.32 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+ReceiveTarget`1[System.Nullable`1[int]]:CleanupAndComplete(int):this (FullOpts) 128 (8.32 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+ReceiveTarget`1[System.Numerics.Vector`1[float]]:CleanupAndComplete(int):this (FullOpts) 128 (8.32 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+ReceiveTarget`1[ubyte]:CleanupAndComplete(int):this (FullOpts) 128 (7.66 % of base) : System.Private.Xml.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts) 125 (50.20 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Activity:GenerateRootId():System.String (FullOpts) 125 (11.48 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Metrics.MetricsEventSource+CommandHandler:TransmitMetricValue(System.Diagnostics.Metrics.Instrument,System.Diagnostics.Metrics.LabeledAggregationStatistics,System.String) (FullOpts) 125 (16.94 % of base) : System.Private.CoreLib.dasm - System.String:Replace(System.String,System.String,int):System.String:this (FullOpts) 123 (124.24 % of base) : Microsoft.Extensions.DependencyModel.dasm - Microsoft.Extensions.DependencyModel.Resolution.AppBaseCompilationAssemblyResolver:.ctor():this (FullOpts) 123 (4.27 % of base) : System.Private.CoreLib.dasm - System.TimeZoneInfo+StringSerializer:GetSerializedString(System.TimeZoneInfo):System.String (FullOpts) 108 (21.01 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[double](System.Collections.Generic.IEnumerable`1[double]):System.Collections.Immutable.ImmutableHashSet`1[double] (FullOpts) 108 (21.01 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[int](System.Collections.Generic.IEnumerable`1[int]):System.Collections.Immutable.ImmutableHashSet`1[int] (FullOpts) 108 (21.01 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[long](System.Collections.Generic.IEnumerable`1[long]):System.Collections.Immutable.ImmutableHashSet`1[long] (FullOpts) 108 (21.01 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[short](System.Collections.Generic.IEnumerable`1[short]):System.Collections.Immutable.ImmutableHashSet`1[short] (FullOpts) 108 (21.01 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[System.Nullable`1[int]](System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]]):System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]] (FullOpts) 108 (21.01 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[System.Numerics.Vector`1[float]](System.Collections.Generic.IEnumerable`1[System.Numerics.Vector`1[float]]):System.Collections.Immutable.ImmutableHashSet`1[System.Numerics.Vector`1[float]] (FullOpts) 108 (21.01 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[ubyte](System.Collections.Generic.IEnumerable`1[ubyte]):System.Collections.Immutable.ImmutableHashSet`1[ubyte] (FullOpts) 101 (2.17 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationWriter:WriteTypedPrimitive(System.String,System.String,System.Object,ubyte):this (FullOpts) 100 (4.21 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1[System.Nullable`1[int]]:SymmetricExcept(System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]]):System.Collections.Immutable.ImmutableSortedSet`1[System.Nullable`1[int]]:this (FullOpts) 99 (4.58 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1[double]:SymmetricExcept(System.Collections.Generic.IEnumerable`1[double]):System.Collections.Immutable.ImmutableSortedSet`1[double]:this (FullOpts) 99 (4.61 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1[int]:SymmetricExcept(System.Collections.Generic.IEnumerable`1[int]):System.Collections.Immutable.ImmutableSortedSet`1[int]:this (FullOpts) 99 (4.60 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1[long]:SymmetricExcept(System.Collections.Generic.IEnumerable`1[long]):System.Collections.Immutable.ImmutableSortedSet`1[long]:this (FullOpts) 99 (4.60 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1[short]:SymmetricExcept(System.Collections.Generic.IEnumerable`1[short]):System.Collections.Immutable.ImmutableSortedSet`1[short]:this (FullOpts) 99 (4.00 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1[System.Numerics.Vector`1[float]]:SymmetricExcept(System.Collections.Generic.IEnumerable`1[System.Numerics.Vector`1[float]]):System.Collections.Immutable.ImmutableSortedSet`1[System.Numerics.Vector`1[float]]:this (FullOpts) 99 (4.60 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableSortedSet`1[ubyte]:SymmetricExcept(System.Collections.Generic.IEnumerable`1[ubyte]):System.Collections.Immutable.ImmutableSortedSet`1[ubyte]:this (FullOpts) 99 (23.40 % of base) : System.Private.CoreLib.dasm - System.Globalization.CultureData:GetNativeDigits():System.String[]:this (FullOpts) 99 (0.94 % of base) : System.Net.Http.dasm - System.Net.Http.HttpConnection+d__57:MoveNext():this (FullOpts) 95 (1.14 % of base) : System.Data.Common.dasm - System.Data.Common.SqlConvert:ChangeTypeForXML(System.Object,System.Type):System.Object (FullOpts) 90 (6.45 % of base) : System.Resources.Extensions.dasm - System.Resources.Extensions.TypeNameComparer:Equals(System.String,System.String):ubyte:this (FullOpts) 90 (32.37 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RSACryptoServiceProvider:VerifyHash(ubyte[],System.String,ubyte[]):ubyte:this (FullOpts) 89 (5.77 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+ReceiveTarget`1[System.__Canon]:CleanupAndComplete(int):this (FullOpts) 85 (40.48 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.ImportConventionBuilder:IsSupportedImportManyType(System.Reflection.TypeInfo):ubyte (FullOpts) 83 (17.40 % of base) : System.Net.Mail.dasm - System.Net.Mime.MimeBasePart:get_Headers():System.Collections.Specialized.NameValueCollection:this (FullOpts) 82 (63.08 % of base) : Microsoft.Extensions.DependencyModel.dasm - Microsoft.Extensions.DependencyModel.Resolution.AppBaseCompilationAssemblyResolver:.ctor(System.String):this (FullOpts) 82 (74.55 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Comparers[double,System.Nullable`1[int]]:.cctor() (FullOpts) 82 (74.55 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Comparers[int,System.Nullable`1[int]]:.cctor() (FullOpts) 82 (74.55 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Comparers[long,System.Nullable`1[int]]:.cctor() (FullOpts) 82 (74.55 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Comparers[short,System.Nullable`1[int]]:.cctor() (FullOpts) 82 (74.55 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Comparers[System.Numerics.Vector`1[float],System.Nullable`1[int]]:.cctor() (FullOpts) 82 (74.55 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Comparers[ubyte,System.Nullable`1[int]]:.cctor() (FullOpts) 80 (4.76 % of base) : System.CodeDom.dasm - Microsoft.CSharp.CSharpCodeGenerator:GeneratePrimitiveExpression(System.CodeDom.CodePrimitiveExpression):this (FullOpts) 76 (5.28 % of base) : System.Private.Xml.Linq.dasm - System.Xml.Linq.XContainer:GetStringValue(System.Object):System.String (FullOpts) 76 (1.60 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:WriteValue(System.Object):this (FullOpts) 74 (6.16 % of base) : System.Private.Xml.dasm - System.Xml.Schema.XsdBuilder:ParseBlockFinalEnum(System.String,System.String):int:this (FullOpts) 73 (38.02 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:ValidateMetadataForObjectConverter(byref) (FullOpts) 72 (9.99 % of base) : System.Net.NetworkInformation.dasm - System.Net.NetworkInformation.NetworkChange:add_NetworkAvailabilityChanged(System.Net.NetworkInformation.NetworkAvailabilityChangedEventHandler) (FullOpts) 70 (3.90 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:TryHandleReferenceFromJsonElement(byref,byref,System.Text.Json.JsonElement,byref):ubyte (FullOpts) 69 (6.19 % of base) : System.CodeDom.dasm - System.CodeDom.Compiler.CodeGenerator:GeneratePrimitiveExpression(System.CodeDom.CodePrimitiveExpression):this (FullOpts) 68 (1.59 % of base) : System.Net.Http.dasm - System.Net.Http.RedirectHandler+d__4:MoveNext():this (FullOpts) 68 (18.23 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.TargetCore`1[double]:CompleteBlockIfPossible_Slow():this (FullOpts) 68 (18.23 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.TargetCore`1[int]:CompleteBlockIfPossible_Slow():this (FullOpts) 68 (18.23 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.TargetCore`1[long]:CompleteBlockIfPossible_Slow():this (FullOpts) 68 (18.23 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.TargetCore`1[short]:CompleteBlockIfPossible_Slow():this (FullOpts) 68 (18.23 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.TargetCore`1[System.Nullable`1[int]]:CompleteBlockIfPossible_Slow():this (FullOpts) 68 (18.23 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.TargetCore`1[System.Numerics.Vector`1[float]]:CompleteBlockIfPossible_Slow():this (FullOpts) 68 (18.23 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.TargetCore`1[ubyte]:CompleteBlockIfPossible_Slow():this (FullOpts) 67 (155.81 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ConfigurationValues:.ctor():this (FullOpts) 67 (155.81 % of base) : System.Net.Mail.dasm - System.Net.Mime.HeaderCollection:.ctor():this (FullOpts) 67 (155.81 % of base) : System.Web.HttpUtility.dasm - System.Web.HttpUtility+HttpQSCollection:.ctor():this (FullOpts) 66 (6.70 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.TargetCore`1[double]:ProcessAsyncIfNecessary_Slow(ubyte):this (FullOpts) 66 (6.70 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.TargetCore`1[int]:ProcessAsyncIfNecessary_Slow(ubyte):this (FullOpts) 66 (6.70 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.TargetCore`1[long]:ProcessAsyncIfNecessary_Slow(ubyte):this (FullOpts) 66 (6.70 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.TargetCore`1[short]:ProcessAsyncIfNecessary_Slow(ubyte):this (FullOpts) 66 (6.70 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.TargetCore`1[System.Nullable`1[int]]:ProcessAsyncIfNecessary_Slow(ubyte):this (FullOpts) 66 (6.70 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.TargetCore`1[System.Numerics.Vector`1[float]]:ProcessAsyncIfNecessary_Slow(ubyte):this (FullOpts) 66 (6.70 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.Internal.TargetCore`1[ubyte]:ProcessAsyncIfNecessary_Slow(ubyte):this (FullOpts) 64 (6.34 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.LegacyPropagator:TryExtractBaggage(System.String,byref):ubyte (FullOpts) 64 (3.38 % of base) : System.Net.Http.dasm - System.Net.Http.Http2Connection+Http2Stream+d__46:MoveNext():this (FullOpts) 63 (14.06 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:WriteAsync(ushort[],int,int):System.Threading.Tasks.Task:this (FullOpts) 63 (14.06 % of base) : System.Private.CoreLib.dasm - System.IO.TextWriter:WriteLineAsync(ushort[],int,int):System.Threading.Tasks.Task:this (FullOpts) 62 (12.25 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ConfigurationSectionCollection:.ctor(System.Configuration.MgmtConfigurationRecord,System.Configuration.ConfigurationSectionGroup):this (FullOpts) 62 (12.18 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ConfigurationSectionGroupCollection:.ctor(System.Configuration.MgmtConfigurationRecord,System.Configuration.ConfigurationSectionGroup):this (FullOpts) 62 (6.81 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.NameValueSectionHandler:CreateStatic(System.Object,System.Xml.XmlNode,System.String,System.String):System.Object (FullOpts) 62 (13.11 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.PropertyInformationCollection:.ctor(System.Configuration.ConfigurationElement):this (FullOpts) 62 (10.39 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ProviderSettings:get_Parameters():System.Collections.Specialized.NameValueCollection:this (FullOpts) 62 (26.61 % of base) : System.Net.Mail.dasm - System.Net.Mail.Message:get_EnvelopeHeaders():System.Net.Mime.HeaderCollection:this (FullOpts) 62 (26.61 % of base) : System.Net.Mail.dasm - System.Net.Mail.Message:get_Headers():System.Net.Mime.HeaderCollection:this (FullOpts) 62 (11.99 % of base) : System.Web.HttpUtility.dasm - System.Web.HttpUtility:ParseQueryString(System.String,System.Text.Encoding):System.Collections.Specialized.NameValueCollection (FullOpts) 60 (2.74 % of base) : System.Net.Requests.dasm - System.Net.TimerThread:ThreadProc() (FullOpts) 57 (6.10 % of base) : System.Diagnostics.Process.dasm - Interop+cgroups:TryGetMemoryStatField(System.String,byref):ubyte (FullOpts) 57 (5.54 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryUpdate[System.Numerics.Vector`1[float],System.Nullable`1[int]](byref,System.Numerics.Vector`1[float],System.Nullable`1[int],System.Nullable`1[int]):ubyte (FullOpts) 57 (11.54 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Numerics.Vector`1[float]]:Add(System.Numerics.Vector`1[float]):System.Collections.Immutable.ImmutableList`1+Node[System.Numerics.Vector`1[float]]:this (FullOpts) 57 (0.67 % of base) : System.Data.Common.dasm - System.Data.XmlTreeGen:SchemaTree(System.Xml.XmlDocument,System.Xml.XmlWriter,System.Data.DataSet,System.Data.DataTable,ubyte):this (FullOpts) 57 (1.74 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.ExtensionDataReader:MoveToText(System.Type,System.Runtime.Serialization.IDataNode,ubyte):ubyte:this (FullOpts) 56 (5.92 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Runtime.XsltFunctions:SystemProperty(System.Xml.XmlQualifiedName):System.Xml.XPath.XPathItem (FullOpts) Top method improvements (bytes): -16 (-17.78 % of base) : System.Private.CoreLib.dasm - System.Globalization.UmAlQuraCalendar:RealGetDaysInYear(int):int (FullOpts) -12 (-0.34 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.VB6File:InternalWriteHelper(System.Object[]):this (FullOpts) -12 (-0.34 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.VB6File:Print(System.Object[]):this (FullOpts) -10 (-1.12 % of base) : System.Net.Mail.dasm - System.Net.Mime.MailBnfHelper:ReadQuotedString(System.String,byref,System.Text.StringBuilder,ubyte,ubyte):System.String (FullOpts) -10 (-5.92 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketAsyncEngine:TryRegisterSocket(long,System.Net.Sockets.SocketAsyncContext,byref,byref):ubyte (FullOpts) -9 (-0.99 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.SubjectIdentifier:.ctor(System.Nullable`1[System.Security.Cryptography.Pkcs.Asn1.IssuerAndSerialNumberAsn],System.Nullable`1[System.ReadOnlyMemory`1[ubyte]]):this (FullOpts) -6 (-3.37 % of base) : System.IO.IsolatedStorage.dasm - System.IO.IsolatedStorage.IsolatedStorageFile:GetFullPath(System.String):System.String:this (FullOpts) -4 (-0.49 % of base) : System.Net.Http.dasm - System.Net.Http.HPack.Huffman:Decode(System.ReadOnlySpan`1[ubyte],byref):int (FullOpts) -4 (-1.67 % of base) : System.Private.CoreLib.dasm - System.Number:Int32ToNumber(int,byref) (FullOpts) -3 (-0.28 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcParameterCollection:Validate(int,System.Object):this (FullOpts) -3 (-3.09 % of base) : System.Drawing.Primitives.dasm - System.Drawing.Color:get_Name():System.String:this (FullOpts) -3 (-7.14 % of base) : System.Drawing.Primitives.dasm - System.Drawing.KnownColorNames:KnownColorToName(int):System.String (FullOpts) -3 (-2.38 % of base) : System.Private.CoreLib.dasm - System.Globalization.UmAlQuraCalendar:GetDaysInMonth(int,int,int):int:this (FullOpts) -3 (-1.26 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Interpreter.GotoInstruction:Create(int,ubyte,ubyte,ubyte):System.Linq.Expressions.Interpreter.GotoInstruction (FullOpts) -3 (-0.44 % of base) : System.Net.Mail.dasm - System.Net.Mime.MailBnfHelper:GetTokenOrQuotedString(System.String,System.Text.StringBuilder,ubyte) (FullOpts) -3 (-5.08 % of base) : System.Private.CoreLib.dasm - System.Number:UInt32ToDecStrForKnownSmallNumber(uint):System.String (FullOpts) -3 (-0.61 % of base) : System.Runtime.Serialization.Schema.dasm - System.Runtime.Serialization.CodeExporter:AddNamespaceFragment(System.Text.StringBuilder,int,int,System.Collections.Generic.Dictionary`2[System.String,System.Object]) (FullOpts) -3 (-0.27 % of base) : System.Runtime.Serialization.Schema.dasm - System.Runtime.Serialization.CodeExporter:GenerateType(System.Runtime.Serialization.DataContracts.DataContract,System.Runtime.Serialization.ContractCodeDomInfo):this (FullOpts) -3 (-0.50 % of base) : System.Runtime.Serialization.Schema.dasm - System.Runtime.Serialization.CodeExporter:GetClrNamespace(System.Runtime.Serialization.DataContracts.DataContract,System.Runtime.Serialization.ContractCodeDomInfo):System.String:this (FullOpts) -3 (-0.48 % of base) : System.Runtime.Serialization.Schema.dasm - System.Runtime.Serialization.CodeExporter:GetMemberName(System.String,System.Runtime.Serialization.ContractCodeDomInfo):System.String (FullOpts) -3 (-0.31 % of base) : System.Runtime.Serialization.Schema.dasm - System.Runtime.Serialization.CodeExporter:GetNestedType(System.Runtime.Serialization.DataContracts.DataContract,System.Runtime.Serialization.ContractCodeDomInfo):System.CodeDom.CodeTypeDeclaration:this (FullOpts) -3 (-0.96 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Regex:GetGroupNames():System.String[]:this (FullOpts) -3 (-2.13 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.CharSetSolver:CreateBDDFromChar(ushort):System.Text.RegularExpressions.Symbolic.BDD:this (FullOpts) -2 (-4.26 % of base) : System.Data.Common.dasm - System.Data.Operators:ToString(int):System.String (FullOpts) -2 (-2.67 % of base) : System.Private.CoreLib.dasm - System.Number:g__CreateAndCacheString|70_0(uint):System.String (FullOpts) -2 (-0.06 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexParser:AssignNameSlots():this (FullOpts) (2 methods) -2 (-0.42 % of base) : System.Private.CoreLib.dasm - System.Text.StringBuilder:AppendJoinCore[ubyte](byref,int,System.Collections.Generic.IEnumerable`1[ubyte]):System.Text.StringBuilder:this (FullOpts) -1 (-0.10 % of base) : System.Drawing.Primitives.dasm - System.Drawing.Color:get_NameAndARGBValue():System.String:this (FullOpts) -1 (-0.09 % of base) : System.Drawing.Primitives.dasm - System.Drawing.Color:ToString():System.String:this (FullOpts) -1 (-0.10 % of base) : System.Drawing.Primitives.dasm - System.Drawing.ColorTranslator:ToHtml(System.Drawing.Color):System.String (FullOpts) -1 (-0.57 % of base) : System.Private.CoreLib.dasm - System.Globalization.HebrewNumber:ParseByChar(ushort,byref):int (FullOpts) Top method regressions (percentages): 15 (500.00 % of base) : System.Net.Quic.dasm - System.Net.Quic.MsQuicApi:IsWindowsVersionSupported():ubyte (FullOpts) 11 (183.33 % of base) : System.Net.Http.dasm - System.Net.Http.HPack.H2StaticTable:get_Count():int (FullOpts) 747 (181.31 % of base) : System.IO.Packaging.dasm - System.IO.Packaging.ContentType:GetLengthOfParameterValue(System.ReadOnlySpan`1[ushort],int):int (FullOpts) 67 (155.81 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ConfigurationValues:.ctor():this (FullOpts) 67 (155.81 % of base) : System.Net.Mail.dasm - System.Net.Mime.HeaderCollection:.ctor():this (FullOpts) 67 (155.81 % of base) : System.Web.HttpUtility.dasm - System.Web.HttpUtility+HttpQSCollection:.ctor():this (FullOpts) 123 (124.24 % of base) : Microsoft.Extensions.DependencyModel.dasm - Microsoft.Extensions.DependencyModel.Resolution.AppBaseCompilationAssemblyResolver:.ctor():this (FullOpts) 982 (117.32 % of base) : System.IO.Pipes.dasm - System.IO.Pipes.PipeStream:GetPipePath(System.String,System.String):System.String (FullOpts) 82 (74.55 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Comparers[double,System.Nullable`1[int]]:.cctor() (FullOpts) 82 (74.55 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Comparers[int,System.Nullable`1[int]]:.cctor() (FullOpts) 82 (74.55 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Comparers[long,System.Nullable`1[int]]:.cctor() (FullOpts) 82 (74.55 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Comparers[short,System.Nullable`1[int]]:.cctor() (FullOpts) 82 (74.55 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Comparers[System.Numerics.Vector`1[float],System.Nullable`1[int]]:.cctor() (FullOpts) 82 (74.55 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Comparers[ubyte,System.Nullable`1[int]]:.cctor() (FullOpts) 41 (66.13 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucketByValueEqualityComparer[double]:.cctor() (FullOpts) 41 (66.13 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucketByValueEqualityComparer[int]:.cctor() (FullOpts) 41 (66.13 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucketByValueEqualityComparer[long]:.cctor() (FullOpts) 41 (66.13 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucketByValueEqualityComparer[short]:.cctor() (FullOpts) 41 (66.13 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucketByValueEqualityComparer[System.Nullable`1[int]]:.cctor() (FullOpts) 41 (66.13 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucketByValueEqualityComparer[System.Numerics.Vector`1[float]]:.cctor() (FullOpts) 41 (66.13 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1+HashBucketByValueEqualityComparer[ubyte]:.cctor() (FullOpts) 41 (66.13 % of base) : System.Reflection.Metadata.dasm - System.Reflection.Metadata.MetadataStringDecoder:.cctor() (FullOpts) 23 (63.89 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64+Base64ByteValidatable:IndexOfAnyExcept(System.ReadOnlySpan`1[ubyte]):int (FullOpts) 23 (63.89 % of base) : System.Private.CoreLib.dasm - System.Buffers.Text.Base64+Base64CharValidatable:IndexOfAnyExcept(System.ReadOnlySpan`1[ushort]):int (FullOpts) 23 (63.89 % of base) : System.Text.Json.dasm - System.Text.Json.JsonReaderHelper:IndexOfQuoteOrAnyControlOrBackSlash(System.ReadOnlySpan`1[ubyte]):int (FullOpts) 23 (63.89 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexParser:IndexOfMetachar(System.ReadOnlySpan`1[ushort]):int (FullOpts) 23 (63.89 % of base) : System.Private.Xml.dasm - System.Xml.XmlCharType:IsOnlyWhitespaceWithPos(System.ReadOnlySpan`1[ushort]):int (FullOpts) 82 (63.08 % of base) : Microsoft.Extensions.DependencyModel.dasm - Microsoft.Extensions.DependencyModel.Resolution.AppBaseCompilationAssemblyResolver:.ctor(System.String):this (FullOpts) 23 (60.53 % of base) : System.Net.Http.dasm - System.Net.Http.HttpRuleParser:IsToken(System.ReadOnlySpan`1[ubyte]):ubyte (FullOpts) 23 (60.53 % of base) : System.Net.Http.dasm - System.Net.Http.HttpRuleParser:IsToken(System.ReadOnlySpan`1[ushort]):ubyte (FullOpts) 23 (60.53 % of base) : System.Net.Security.dasm - System.Net.Security.TargetHostNameHelper:IsSafeDnsString(System.ReadOnlySpan`1[ushort]):ubyte (FullOpts) 23 (60.53 % of base) : System.Net.Quic.dasm - System.Net.Security.TargetHostNameHelper:IsSafeDnsString(System.ReadOnlySpan`1[ushort]):ubyte (FullOpts) 23 (60.53 % of base) : System.Private.Xml.dasm - System.Xml.XmlCharType:IsOnlyWhitespace(System.ReadOnlySpan`1[ushort]):ubyte (FullOpts) 23 (60.53 % of base) : System.Private.DataContractSerialization.dasm - System.Xml.XmlConverter:IsWhitespace(System.ReadOnlySpan`1[ushort]):ubyte (FullOpts) 130 (57.78 % of base) : System.Formats.Asn1.dasm - System.Formats.Asn1.RestrictedAsciiStringEncoding:.ctor(System.String):this (FullOpts) 23 (57.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Frozen.KeyAnalyzer:ContainsAnyLetters(System.ReadOnlySpan`1[ushort]):ubyte (FullOpts) 53 (54.08 % of base) : System.Net.Http.dasm - System.Net.Http.HttpRequestMessage:.ctor():this (FullOpts) 409 (53.96 % of base) : System.Formats.Asn1.dasm - System.Formats.Asn1.AsnCharacterStringEncodings:.cctor() (FullOpts) 23 (52.27 % of base) : System.Text.Json.dasm - System.Text.Json.JsonReaderHelper:ContainsSpecialCharacters(System.ReadOnlySpan`1[ushort]):ubyte (FullOpts) 12 (52.17 % of base) : System.Private.CoreLib.dasm - System.IO.StreamReader+NullStreamReader:ReadAsync(ushort[],int,int):System.Threading.Tasks.Task`1[int]:this (FullOpts) 12 (52.17 % of base) : System.Private.CoreLib.dasm - System.IO.StreamReader+NullStreamReader:ReadBlockAsync(ushort[],int,int):System.Threading.Tasks.Task`1[int]:this (FullOpts) 34 (50.75 % of base) : System.Formats.Asn1.dasm - System.Formats.Asn1.BMPEncoding:.ctor():this (FullOpts) 34 (50.75 % of base) : System.Formats.Asn1.dasm - System.Formats.Asn1.SpanBasedEncoding:.ctor():this (FullOpts) 125 (50.20 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.Activity:GenerateRootId():System.String (FullOpts) 14 (48.28 % of base) : System.ComponentModel.Primitives.dasm - System.ComponentModel.DesignerSerializationVisibilityAttribute:IsDefaultAttribute():ubyte:this (FullOpts) 14 (48.28 % of base) : System.ComponentModel.Primitives.dasm - System.ComponentModel.RefreshPropertiesAttribute:IsDefaultAttribute():ubyte:this (FullOpts) 14 (46.67 % of base) : System.ComponentModel.Primitives.dasm - System.ComponentModel.BrowsableAttribute:IsDefaultAttribute():ubyte:this (FullOpts) 14 (46.67 % of base) : System.ComponentModel.Primitives.dasm - System.ComponentModel.ImmutableObjectAttribute:IsDefaultAttribute():ubyte:this (FullOpts) 14 (46.67 % of base) : System.ComponentModel.Primitives.dasm - System.ComponentModel.MergablePropertyAttribute:IsDefaultAttribute():ubyte:this (FullOpts) 14 (46.67 % of base) : System.ComponentModel.Primitives.dasm - System.ComponentModel.NotifyParentPropertyAttribute:IsDefaultAttribute():ubyte:this (FullOpts) 14 (46.67 % of base) : System.ComponentModel.Primitives.dasm - System.ComponentModel.ParenthesizePropertyNameAttribute:IsDefaultAttribute():ubyte:this (FullOpts) 14 (46.67 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.PasswordPropertyTextAttribute:IsDefaultAttribute():ubyte:this (FullOpts) 41 (46.59 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2+Comparers[System.Nullable`1[int],System.Nullable`1[int]]:.cctor() (FullOpts) 55 (45.45 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ConfigurationElement:.ctor():this (FullOpts) 21 (42.86 % of base) : System.IO.Packaging.dasm - System.IO.Packaging.ContentType:IsAllowedCharacter(ushort):ubyte (FullOpts) 23 (41.82 % of base) : System.Private.DataContractSerialization.dasm - System.Xml.XmlConverter:IsWhitespace(System.ReadOnlySpan`1[ubyte]):ubyte (FullOpts) 41 (41.00 % of base) : System.Net.Http.dasm - System.Net.Http.HttpContent+LimitArrayPoolWriteStream:BeginWrite(ubyte[],int,int,System.AsyncCallback,System.Object):System.IAsyncResult:this (FullOpts) 41 (40.59 % of base) : Microsoft.Extensions.DependencyModel.dasm - Microsoft.Extensions.DependencyModel.Resolution.PackageCompilationAssemblyResolver:.ctor(System.String):this (FullOpts) 85 (40.48 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.ImportConventionBuilder:IsSupportedImportManyType(System.Reflection.TypeInfo):ubyte (FullOpts) 23 (39.66 % of base) : System.Net.Primitives.dasm - System.Net.Cookie:DomainCharsTest(System.String):ubyte (FullOpts) 23 (38.98 % of base) : System.Private.Xml.dasm - System.Xml.XmlCharType:IsPublicId(System.String):int (FullOpts) 73 (38.02 % of base) : System.Text.Json.dasm - System.Text.Json.JsonSerializer:ValidateMetadataForObjectConverter(byref) (FullOpts) 23 (37.70 % of base) : System.Private.Xml.dasm - System.Xml.XmlCharacterData:CheckOnData(System.String):ubyte (FullOpts) 41 (37.61 % of base) : System.Collections.NonGeneric.dasm - System.Collections.CaseInsensitiveComparer:get_DefaultInvariant():System.Collections.CaseInsensitiveComparer (FullOpts) 41 (37.61 % of base) : System.Collections.NonGeneric.dasm - System.Collections.CaseInsensitiveHashCodeProvider:get_DefaultInvariant():System.Collections.CaseInsensitiveHashCodeProvider (FullOpts) 23 (36.51 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.Helpers:TypeNameContainsTypeParserMetacharacters(System.String):ubyte (FullOpts) 23 (35.94 % of base) : Microsoft.Extensions.FileProviders.Physical.dasm - Microsoft.Extensions.FileProviders.Physical.Internal.PathUtils:HasInvalidFilterChars(System.String):ubyte (FullOpts) 23 (35.94 % of base) : Microsoft.Extensions.FileProviders.Physical.dasm - Microsoft.Extensions.FileProviders.Physical.Internal.PathUtils:HasInvalidPathChars(System.String):ubyte (FullOpts) 21 (35.59 % of base) : System.IO.Packaging.dasm - System.IO.Packaging.ContentType:IsLinearWhiteSpaceChar(ushort):ubyte (FullOpts) 41 (34.17 % of base) : Microsoft.Extensions.DependencyModel.dasm - Microsoft.Extensions.DependencyModel.Resolution.ReferenceAssemblyPathResolver:.ctor(System.String,System.String[]):this (FullOpts) 38 (32.48 % of base) : System.Formats.Tar.dasm - System.Formats.Tar.TarHelpers:CreatePendingModesDictionary():System.Collections.Generic.SortedDictionary`2[System.String,int] (FullOpts) 90 (32.37 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.RSACryptoServiceProvider:VerifyHash(ubyte[],System.String,ubyte[]):ubyte:this (FullOpts) 23 (31.51 % of base) : System.Private.Uri.dasm - System.Uri:CheckSchemeName(System.String):ubyte (FullOpts) 41 (30.83 % of base) : Microsoft.Extensions.DependencyModel.dasm - Microsoft.Extensions.DependencyModel.Resolution.PackageCompilationAssemblyResolver:.ctor():this (FullOpts) 16 (30.77 % of base) : System.Private.Xml.dasm - System.Xml.XmlConvert:SplitString(System.String,int):System.String[] (FullOpts) 40 (30.08 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Node[int]:CreateLeaf(int):System.Collections.Immutable.ImmutableList`1+Node[int] (FullOpts) 40 (30.08 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Node[ubyte]:CreateLeaf(ubyte):System.Collections.Immutable.ImmutableList`1+Node[ubyte] (FullOpts) 40 (29.85 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Node[long]:CreateLeaf(long):System.Collections.Immutable.ImmutableList`1+Node[long] (FullOpts) 40 (29.85 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Node[short]:CreateLeaf(short):System.Collections.Immutable.ImmutableList`1+Node[short] (FullOpts) 40 (29.85 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Nullable`1[int]]:CreateLeaf(System.Nullable`1[int]):System.Collections.Immutable.ImmutableList`1+Node[System.Nullable`1[int]] (FullOpts) 16 (29.09 % of base) : System.Private.Xml.dasm - System.Xml.XmlConvert:SplitString(System.String):System.String[] (FullOpts) 30 (28.57 % of base) : System.Security.Cryptography.dasm - System.Security.Cryptography.HashProviderDispenser:KmacSupported(System.String):ubyte (FullOpts) 41 (28.47 % of base) : System.Linq.Expressions.dasm - System.Dynamic.DynamicObject+MetaDynamic:.ctor(System.Linq.Expressions.Expression,System.Dynamic.DynamicObject):this (FullOpts) 41 (28.47 % of base) : System.Linq.Expressions.dasm - System.Dynamic.ExpandoObject+MetaExpando:.ctor(System.Linq.Expressions.Expression,System.Dynamic.ExpandoObject):this (FullOpts) 40 (28.37 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Node[System.Numerics.Vector`1[float]]:CreateLeaf(System.Numerics.Vector`1[float]):System.Collections.Immutable.ImmutableList`1+Node[System.Numerics.Vector`1[float]] (FullOpts) 40 (27.97 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableList`1+Node[double]:CreateLeaf(double):System.Collections.Immutable.ImmutableList`1+Node[double] (FullOpts) 45 (26.79 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:.ctor(System.Collections.Generic.IEqualityComparer`1[double]):this (FullOpts) 45 (26.79 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:.ctor(System.Collections.Generic.IEqualityComparer`1[int]):this (FullOpts) 45 (26.79 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[long]:.ctor(System.Collections.Generic.IEqualityComparer`1[long]):this (FullOpts) 45 (26.79 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[short]:.ctor(System.Collections.Generic.IEqualityComparer`1[short]):this (FullOpts) 45 (26.79 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]):this (FullOpts) 45 (26.79 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Numerics.Vector`1[float]]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.Numerics.Vector`1[float]]):this (FullOpts) 45 (26.79 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[ubyte]:.ctor(System.Collections.Generic.IEqualityComparer`1[ubyte]):this (FullOpts) 62 (26.61 % of base) : System.Net.Mail.dasm - System.Net.Mail.Message:get_EnvelopeHeaders():System.Net.Mime.HeaderCollection:this (FullOpts) 62 (26.61 % of base) : System.Net.Mail.dasm - System.Net.Mail.Message:get_Headers():System.Net.Mime.HeaderCollection:this (FullOpts) 19 (25.68 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializer:Serialize(System.IO.Stream,System.Object):this (FullOpts) 19 (25.68 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSerializer:Serialize(System.IO.TextWriter,System.Object):this (FullOpts) 41 (25.47 % of base) : System.Linq.Expressions.dasm - System.Dynamic.DynamicObject:GetMetaObject(System.Linq.Expressions.Expression):System.Dynamic.DynamicMetaObject:this (FullOpts) 41 (25.47 % of base) : System.Linq.Expressions.dasm - System.Dynamic.ExpandoObject:System.Dynamic.IDynamicMetaObjectProvider.GetMetaObject(System.Linq.Expressions.Expression):System.Dynamic.DynamicMetaObject:this (FullOpts) 12 (25.00 % of base) : System.Net.Mail.dasm - System.Net.Mime.MimeBasePart:get_ContentID():System.String:this (FullOpts) Top method improvements (percentages): -16 (-17.78 % of base) : System.Private.CoreLib.dasm - System.Globalization.UmAlQuraCalendar:RealGetDaysInYear(int):int (FullOpts) -3 (-7.14 % of base) : System.Drawing.Primitives.dasm - System.Drawing.KnownColorNames:KnownColorToName(int):System.String (FullOpts) -10 (-5.92 % of base) : System.Net.Sockets.dasm - System.Net.Sockets.SocketAsyncEngine:TryRegisterSocket(long,System.Net.Sockets.SocketAsyncContext,byref,byref):ubyte (FullOpts) -3 (-5.08 % of base) : System.Private.CoreLib.dasm - System.Number:UInt32ToDecStrForKnownSmallNumber(uint):System.String (FullOpts) -2 (-4.26 % of base) : System.Data.Common.dasm - System.Data.Operators:ToString(int):System.String (FullOpts) -6 (-3.37 % of base) : System.IO.IsolatedStorage.dasm - System.IO.IsolatedStorage.IsolatedStorageFile:GetFullPath(System.String):System.String:this (FullOpts) -3 (-3.09 % of base) : System.Drawing.Primitives.dasm - System.Drawing.Color:get_Name():System.String:this (FullOpts) -2 (-2.67 % of base) : System.Private.CoreLib.dasm - System.Number:g__CreateAndCacheString|70_0(uint):System.String (FullOpts) -3 (-2.38 % of base) : System.Private.CoreLib.dasm - System.Globalization.UmAlQuraCalendar:GetDaysInMonth(int,int,int):int:this (FullOpts) -3 (-2.13 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Symbolic.CharSetSolver:CreateBDDFromChar(ushort):System.Text.RegularExpressions.Symbolic.BDD:this (FullOpts) -4 (-1.67 % of base) : System.Private.CoreLib.dasm - System.Number:Int32ToNumber(int,byref) (FullOpts) -3 (-1.26 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Interpreter.GotoInstruction:Create(int,ubyte,ubyte,ubyte):System.Linq.Expressions.Interpreter.GotoInstruction (FullOpts) -10 (-1.12 % of base) : System.Net.Mail.dasm - System.Net.Mime.MailBnfHelper:ReadQuotedString(System.String,byref,System.Text.StringBuilder,ubyte,ubyte):System.String (FullOpts) -9 (-0.99 % of base) : System.Security.Cryptography.Pkcs.dasm - System.Security.Cryptography.Pkcs.SubjectIdentifier:.ctor(System.Nullable`1[System.Security.Cryptography.Pkcs.Asn1.IssuerAndSerialNumberAsn],System.Nullable`1[System.ReadOnlyMemory`1[ubyte]]):this (FullOpts) -3 (-0.96 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.Regex:GetGroupNames():System.String[]:this (FullOpts) -3 (-0.61 % of base) : System.Runtime.Serialization.Schema.dasm - System.Runtime.Serialization.CodeExporter:AddNamespaceFragment(System.Text.StringBuilder,int,int,System.Collections.Generic.Dictionary`2[System.String,System.Object]) (FullOpts) -1 (-0.57 % of base) : System.Private.CoreLib.dasm - System.Globalization.HebrewNumber:ParseByChar(ushort,byref):int (FullOpts) -3 (-0.50 % of base) : System.Runtime.Serialization.Schema.dasm - System.Runtime.Serialization.CodeExporter:GetClrNamespace(System.Runtime.Serialization.DataContracts.DataContract,System.Runtime.Serialization.ContractCodeDomInfo):System.String:this (FullOpts) -4 (-0.49 % of base) : System.Net.Http.dasm - System.Net.Http.HPack.Huffman:Decode(System.ReadOnlySpan`1[ubyte],byref):int (FullOpts) -3 (-0.48 % of base) : System.Runtime.Serialization.Schema.dasm - System.Runtime.Serialization.CodeExporter:GetMemberName(System.String,System.Runtime.Serialization.ContractCodeDomInfo):System.String (FullOpts) -3 (-0.44 % of base) : System.Net.Mail.dasm - System.Net.Mime.MailBnfHelper:GetTokenOrQuotedString(System.String,System.Text.StringBuilder,ubyte) (FullOpts) -2 (-0.42 % of base) : System.Private.CoreLib.dasm - System.Text.StringBuilder:AppendJoinCore[ubyte](byref,int,System.Collections.Generic.IEnumerable`1[ubyte]):System.Text.StringBuilder:this (FullOpts) -12 (-0.34 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.VB6File:Print(System.Object[]):this (FullOpts) -12 (-0.34 % of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.VB6File:InternalWriteHelper(System.Object[]):this (FullOpts) -3 (-0.31 % of base) : System.Runtime.Serialization.Schema.dasm - System.Runtime.Serialization.CodeExporter:GetNestedType(System.Runtime.Serialization.DataContracts.DataContract,System.Runtime.Serialization.ContractCodeDomInfo):System.CodeDom.CodeTypeDeclaration:this (FullOpts) -3 (-0.28 % of base) : System.Data.Odbc.dasm - System.Data.Odbc.OdbcParameterCollection:Validate(int,System.Object):this (FullOpts) -3 (-0.27 % of base) : System.Runtime.Serialization.Schema.dasm - System.Runtime.Serialization.CodeExporter:GenerateType(System.Runtime.Serialization.DataContracts.DataContract,System.Runtime.Serialization.ContractCodeDomInfo):this (FullOpts) -1 (-0.10 % of base) : System.Drawing.Primitives.dasm - System.Drawing.Color:get_NameAndARGBValue():System.String:this (FullOpts) -1 (-0.10 % of base) : System.Drawing.Primitives.dasm - System.Drawing.ColorTranslator:ToHtml(System.Drawing.Color):System.String (FullOpts) -1 (-0.09 % of base) : System.Drawing.Primitives.dasm - System.Drawing.Color:ToString():System.String:this (FullOpts) -2 (-0.06 % of base) : System.Text.RegularExpressions.dasm - System.Text.RegularExpressions.RegexParser:AssignNameSlots():this (FullOpts) (2 methods) 3884 total methods with Code Size differences (31 improved, 3853 regressed), 233056 unchanged. -------------------------------------------------------------------------------- ```

Artifacts:

MihuBot commented 8 months ago

Top method regressions

125 (16.94 % of base) - System.String:Replace(System.String,System.String,int):System.String:this ```diff ; Assembly listing for method System.String:Replace(System.String,System.String,int):System.String:this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 20 single block inlinees; 18 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T00] ( 15, 8.50) ref -> rbx this class-hnd single-def ; V01 arg1 [V01,T01] ( 13, 7 ) ref -> r15 class-hnd single-def ; V02 arg2 [V02,T02] ( 12, 7 ) ref -> r14 class-hnd single-def ; V03 arg3 [V03,T03] ( 6, 5 ) int -> r13 single-def ; V04 OutArgs [V04 ] ( 1, 1 ) struct (16) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V05 tmp1 [V05,T73] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" -; V06 tmp2 [V06,T11] ( 2, 2 ) ref -> rdi class-hnd exact single-def "impAppendStmt" -; V07 tmp3 [V07,T12] ( 2, 2 ) ref -> rax class-hnd exact single-def "impAppendStmt" +; V05 tmp1 [V05,T75] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" +; V06 tmp2 [V06,T15] ( 2, 2 ) ref -> rax class-hnd exact single-def "impAppendStmt" +; V07 tmp3 [V07,T16] ( 2, 2 ) ref -> rax class-hnd exact single-def "impAppendStmt" ;* V08 tmp4 [V08 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" ;* V09 tmp5 [V09 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" ;* V10 tmp6 [V10 ] ( 0, 0 ) struct (16) zero-ref ;* V11 tmp7 [V11 ] ( 0, 0 ) struct (16) zero-ref ;* V12 tmp8 [V12 ] ( 0, 0 ) struct (16) zero-ref -; V13 tmp9 [V13,T10] ( 4, 2 ) ref -> rax +; V13 tmp9 [V13,T12] ( 4, 2 ) ref -> rax ;* V14 tmp10 [V14 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" -; V15 tmp11 [V15,T13] ( 2, 2 ) ref -> rax class-hnd exact single-def "dup spill" -; V16 tmp12 [V16,T07] ( 5, 2.50) ref -> rax -;* V17 tmp13 [V17,T77] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" +; V15 tmp11 [V15,T17] ( 2, 2 ) ref -> rax class-hnd exact single-def "dup spill" +; V16 tmp12 [V16,T09] ( 5, 2.50) ref -> rax +;* V17 tmp13 [V17,T79] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V18 tmp14 [V18 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V19 tmp15 [V19 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" -; V20 tmp16 [V20,T14] ( 2, 2 ) byref -> rcx single-def "Inlining Arg" -; V21 tmp17 [V21,T26] ( 2, 2 ) int -> rdx "Inlining Arg" +; V20 tmp16 [V20,T18] ( 2, 2 ) byref -> rcx single-def "Inlining Arg" +; V21 tmp17 [V21,T30] ( 2, 2 ) int -> rdx "Inlining Arg" ;* V22 tmp18 [V22 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V23 tmp19 [V23 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" -; V24 tmp20 [V24,T15] ( 2, 2 ) byref -> r15 single-def "Inlining Arg" -; V25 tmp21 [V25,T27] ( 2, 2 ) int -> r12 "Inlining Arg" +; V24 tmp20 [V24,T19] ( 2, 2 ) byref -> r15 single-def "Inlining Arg" +; V25 tmp21 [V25,T31] ( 2, 2 ) int -> r12 "Inlining Arg" ;* V26 tmp22 [V26 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" ;* V27 tmp23 [V27 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V28 tmp24 [V28 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" -; V29 tmp25 [V29,T16] ( 2, 2 ) byref -> rdi single-def "Inlining Arg" -; V30 tmp26 [V30,T28] ( 2, 2 ) int -> rsi "Inlining Arg" +; V29 tmp25 [V29,T20] ( 2, 2 ) byref -> rdi single-def "Inlining Arg" +; V30 tmp26 [V30,T32] ( 2, 2 ) int -> rsi "Inlining Arg" ;* V31 tmp27 [V31 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" ;* V32 tmp28 [V32 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" ;* V33 tmp29 [V33 ] ( 0, 0 ) struct (16) zero-ref ;* V34 tmp30 [V34 ] ( 0, 0 ) struct (16) zero-ref ;* V35 tmp31 [V35 ] ( 0, 0 ) struct (16) zero-ref -; V36 tmp32 [V36,T47] ( 2, 1 ) ref -> rdi +; V36 tmp32 [V36,T13] ( 4, 2 ) ref -> rax ;* V37 tmp33 [V37 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" -; V38 tmp34 [V38,T17] ( 2, 2 ) ref -> rax class-hnd exact single-def "dup spill" -; V39 tmp35 [V39,T08] ( 5, 2.50) ref -> rax -;* V40 tmp36 [V40,T78] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" +; V38 tmp34 [V38,T21] ( 2, 2 ) ref -> rax class-hnd exact single-def "dup spill" +; V39 tmp35 [V39,T10] ( 5, 2.50) ref -> rax +;* V40 tmp36 [V40,T80] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V41 tmp37 [V41 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V42 tmp38 [V42 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" -; V43 tmp39 [V43,T18] ( 2, 2 ) byref -> rsi single-def "Inlining Arg" -; V44 tmp40 [V44,T29] ( 2, 2 ) int -> rdx "Inlining Arg" +; V43 tmp39 [V43,T22] ( 2, 2 ) byref -> rcx single-def "Inlining Arg" +; V44 tmp40 [V44,T33] ( 2, 2 ) int -> rdx "Inlining Arg" ;* V45 tmp41 [V45 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V46 tmp42 [V46 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" -; V47 tmp43 [V47,T19] ( 2, 2 ) byref -> rcx single-def "Inlining Arg" -; V48 tmp44 [V48,T30] ( 2, 2 ) int -> r8 "Inlining Arg" +; V47 tmp43 [V47,T23] ( 2, 2 ) byref -> r15 single-def "Inlining Arg" +; V48 tmp44 [V48,T34] ( 2, 2 ) int -> r12 "Inlining Arg" ;* V49 tmp45 [V49 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" ;* V50 tmp46 [V50 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V51 tmp47 [V51 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" -; V52 tmp48 [V52,T20] ( 2, 2 ) byref -> r9 single-def "Inlining Arg" -; V53 tmp49 [V53,T31] ( 2, 2 ) int -> rax "Inlining Arg" +; V52 tmp48 [V52,T24] ( 2, 2 ) byref -> rdi single-def "Inlining Arg" +; V53 tmp49 [V53,T35] ( 2, 2 ) int -> rsi "Inlining Arg" ;* V54 tmp50 [V54 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" ;* V55 tmp51 [V55 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "impAppendStmt" -; V56 tmp52 [V56,T21] ( 2, 2 ) ref -> rdi class-hnd exact single-def "Inlining Arg" +; V56 tmp52 [V56,T25] ( 2, 2 ) ref -> rax class-hnd exact single-def "Inlining Arg" ;* V57 tmp53 [V57 ] ( 0, 0 ) struct (16) zero-ref ;* V58 tmp54 [V58 ] ( 0, 0 ) struct (16) zero-ref ;* V59 tmp55 [V59 ] ( 0, 0 ) struct (16) zero-ref -; V60 tmp56 [V60,T48] ( 2, 1 ) ref -> rdi -; V61 tmp57 [V61,T22] ( 2, 2 ) ref -> rax class-hnd exact single-def "dup spill" -; V62 tmp58 [V62,T09] ( 5, 2.50) ref -> rax -;* V63 tmp59 [V63,T79] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" +; V60 tmp56 [V60,T14] ( 4, 2 ) ref -> rax +; V61 tmp57 [V61,T26] ( 2, 2 ) ref -> rax class-hnd exact single-def "dup spill" +; V62 tmp58 [V62,T11] ( 5, 2.50) ref -> rax +;* V63 tmp59 [V63,T81] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V64 tmp60 [V64 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V65 tmp61 [V65 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" -; V66 tmp62 [V66,T23] ( 2, 2 ) byref -> rsi single-def "Inlining Arg" -; V67 tmp63 [V67,T32] ( 2, 2 ) int -> rdx "Inlining Arg" +; V66 tmp62 [V66,T27] ( 2, 2 ) byref -> r13 single-def "Inlining Arg" +; V67 tmp63 [V67,T36] ( 2, 2 ) int -> rcx "Inlining Arg" ;* V68 tmp64 [V68 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V69 tmp65 [V69 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" -; V70 tmp66 [V70,T24] ( 2, 2 ) byref -> rcx single-def "Inlining Arg" -; V71 tmp67 [V71,T33] ( 2, 2 ) int -> r8 "Inlining Arg" +; V70 tmp66 [V70,T28] ( 2, 2 ) byref -> r15 single-def "Inlining Arg" +; V71 tmp67 [V71,T37] ( 2, 2 ) int -> r12 "Inlining Arg" ;* V72 tmp68 [V72 ] ( 0, 0 ) struct (16) zero-ref multireg-arg "Inline return value spill temp" ;* V73 tmp69 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" ;* V74 tmp70 [V74 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline ldloca(s) first use temp" -; V75 tmp71 [V75,T25] ( 2, 2 ) byref -> r9 single-def "Inlining Arg" -; V76 tmp72 [V76,T34] ( 2, 2 ) int -> rax "Inlining Arg" -; V77 tmp73 [V77,T35] ( 3, 1.50) byref -> [rbp-0x38] "field V08._reference (fldOffset=0x0)" P-INDEP -; V78 tmp74 [V78,T41] ( 3, 1.50) int -> [rbp-0x2C] "field V08._length (fldOffset=0x8)" P-INDEP -; V79 tmp75 [V79,T49] ( 2, 1 ) byref -> r15 "field V09._reference (fldOffset=0x0)" P-INDEP -; V80 tmp76 [V80,T61] ( 2, 1 ) int -> r12 "field V09._length (fldOffset=0x8)" P-INDEP +; V75 tmp71 [V75,T29] ( 2, 2 ) byref -> rdx single-def "Inlining Arg" +; V76 tmp72 [V76,T38] ( 2, 2 ) int -> rdi "Inlining Arg" +; V77 tmp73 [V77,T39] ( 3, 1.50) byref -> [rbp-0x48] "field V08._reference (fldOffset=0x0)" P-INDEP +; V78 tmp74 [V78,T45] ( 3, 1.50) int -> [rbp-0x2C] "field V08._length (fldOffset=0x8)" P-INDEP +; V79 tmp75 [V79,T51] ( 2, 1 ) byref -> r15 "field V09._reference (fldOffset=0x0)" P-INDEP +; V80 tmp76 [V80,T63] ( 2, 1 ) int -> r12 "field V09._length (fldOffset=0x8)" P-INDEP ;* V81 tmp77 [V81 ] ( 0, 0 ) byref -> zero-ref single-def "field V10._reference (fldOffset=0x0)" P-INDEP ;* V82 tmp78 [V82 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP ;* V83 tmp79 [V83 ] ( 0, 0 ) byref -> zero-ref single-def "field V11._reference (fldOffset=0x0)" P-INDEP ;* V84 tmp80 [V84 ] ( 0, 0 ) int -> zero-ref "field V11._length (fldOffset=0x8)" P-INDEP ;* V85 tmp81 [V85 ] ( 0, 0 ) byref -> zero-ref single-def "field V12._reference (fldOffset=0x0)" P-INDEP ;* V86 tmp82 [V86 ] ( 0, 0 ) int -> zero-ref "field V12._length (fldOffset=0x8)" P-INDEP -; V87 tmp83 [V87,T50] ( 2, 1 ) byref -> rcx single-def "field V18._reference (fldOffset=0x0)" P-INDEP -; V88 tmp84 [V88,T62] ( 2, 1 ) int -> rdx "field V18._length (fldOffset=0x8)" P-INDEP +; V87 tmp83 [V87,T52] ( 2, 1 ) byref -> rcx single-def "field V18._reference (fldOffset=0x0)" P-INDEP +; V88 tmp84 [V88,T64] ( 2, 1 ) int -> rdx "field V18._length (fldOffset=0x8)" P-INDEP ;* V89 tmp85 [V89 ] ( 0, 0 ) byref -> zero-ref single-def "field V19._reference (fldOffset=0x0)" P-INDEP ;* V90 tmp86 [V90 ] ( 0, 0 ) int -> zero-ref "field V19._length (fldOffset=0x8)" P-INDEP -; V91 tmp87 [V91,T51] ( 2, 1 ) byref -> r15 single-def "field V22._reference (fldOffset=0x0)" P-INDEP -; V92 tmp88 [V92,T63] ( 2, 1 ) int -> r12 "field V22._length (fldOffset=0x8)" P-INDEP +; V91 tmp87 [V91,T53] ( 2, 1 ) byref -> r15 single-def "field V22._reference (fldOffset=0x0)" P-INDEP +; V92 tmp88 [V92,T65] ( 2, 1 ) int -> r12 "field V22._length (fldOffset=0x8)" P-INDEP ;* V93 tmp89 [V93 ] ( 0, 0 ) byref -> zero-ref single-def "field V23._reference (fldOffset=0x0)" P-INDEP ;* V94 tmp90 [V94 ] ( 0, 0 ) int -> zero-ref "field V23._length (fldOffset=0x8)" P-INDEP -; V95 tmp91 [V95,T36] ( 3, 1.50) byref -> r14 "field V26._reference (fldOffset=0x0)" P-INDEP -; V96 tmp92 [V96,T42] ( 3, 1.50) int -> [rbp-0x30] "field V26._length (fldOffset=0x8)" P-INDEP -; V97 tmp93 [V97,T52] ( 2, 1 ) byref -> r14 single-def "field V27._reference (fldOffset=0x0)" P-INDEP -; V98 tmp94 [V98,T64] ( 2, 1 ) int -> rdi "field V27._length (fldOffset=0x8)" P-INDEP +; V95 tmp91 [V95,T40] ( 3, 1.50) byref -> r14 "field V26._reference (fldOffset=0x0)" P-INDEP +; V96 tmp92 [V96,T46] ( 3, 1.50) int -> [rbp-0x30] "field V26._length (fldOffset=0x8)" P-INDEP +; V97 tmp93 [V97,T54] ( 2, 1 ) byref -> r14 single-def "field V27._reference (fldOffset=0x0)" P-INDEP +; V98 tmp94 [V98,T66] ( 2, 1 ) int -> rdi "field V27._length (fldOffset=0x8)" P-INDEP ;* V99 tmp95 [V99 ] ( 0, 0 ) byref -> zero-ref single-def "field V28._reference (fldOffset=0x0)" P-INDEP ;* V100 tmp96 [V100 ] ( 0, 0 ) int -> zero-ref "field V28._length (fldOffset=0x8)" P-INDEP -; V101 tmp97 [V101,T37] ( 3, 1.50) byref -> rsi "field V31._reference (fldOffset=0x0)" P-INDEP -; V102 tmp98 [V102,T43] ( 3, 1.50) int -> rdx "field V31._length (fldOffset=0x8)" P-INDEP -; V103 tmp99 [V103,T53] ( 2, 1 ) byref -> rcx "field V32._reference (fldOffset=0x0)" P-INDEP -; V104 tmp100 [V104,T65] ( 2, 1 ) int -> r8 "field V32._length (fldOffset=0x8)" P-INDEP +; V101 tmp97 [V101,T41] ( 3, 1.50) byref -> [rbp-0x50] "field V31._reference (fldOffset=0x0)" P-INDEP +; V102 tmp98 [V102,T47] ( 3, 1.50) int -> [rbp-0x34] "field V31._length (fldOffset=0x8)" P-INDEP +; V103 tmp99 [V103,T55] ( 2, 1 ) byref -> r15 "field V32._reference (fldOffset=0x0)" P-INDEP +; V104 tmp100 [V104,T67] ( 2, 1 ) int -> r12 "field V32._length (fldOffset=0x8)" P-INDEP ;* V105 tmp101 [V105 ] ( 0, 0 ) byref -> zero-ref single-def "field V33._reference (fldOffset=0x0)" P-INDEP ;* V106 tmp102 [V106 ] ( 0, 0 ) int -> zero-ref "field V33._length (fldOffset=0x8)" P-INDEP ;* V107 tmp103 [V107 ] ( 0, 0 ) byref -> zero-ref single-def "field V34._reference (fldOffset=0x0)" P-INDEP ;* V108 tmp104 [V108 ] ( 0, 0 ) int -> zero-ref "field V34._length (fldOffset=0x8)" P-INDEP ;* V109 tmp105 [V109 ] ( 0, 0 ) byref -> zero-ref single-def "field V35._reference (fldOffset=0x0)" P-INDEP ;* V110 tmp106 [V110 ] ( 0, 0 ) int -> zero-ref "field V35._length (fldOffset=0x8)" P-INDEP -; V111 tmp107 [V111,T54] ( 2, 1 ) byref -> rsi single-def "field V41._reference (fldOffset=0x0)" P-INDEP -; V112 tmp108 [V112,T66] ( 2, 1 ) int -> rdx "field V41._length (fldOffset=0x8)" P-INDEP +; V111 tmp107 [V111,T56] ( 2, 1 ) byref -> rcx single-def "field V41._reference (fldOffset=0x0)" P-INDEP +; V112 tmp108 [V112,T68] ( 2, 1 ) int -> rdx "field V41._length (fldOffset=0x8)" P-INDEP ;* V113 tmp109 [V113 ] ( 0, 0 ) byref -> zero-ref single-def "field V42._reference (fldOffset=0x0)" P-INDEP ;* V114 tmp110 [V114 ] ( 0, 0 ) int -> zero-ref "field V42._length (fldOffset=0x8)" P-INDEP -; V115 tmp111 [V115,T55] ( 2, 1 ) byref -> rcx single-def "field V45._reference (fldOffset=0x0)" P-INDEP -; V116 tmp112 [V116,T67] ( 2, 1 ) int -> r8 "field V45._length (fldOffset=0x8)" P-INDEP +; V115 tmp111 [V115,T57] ( 2, 1 ) byref -> r15 single-def "field V45._reference (fldOffset=0x0)" P-INDEP +; V116 tmp112 [V116,T69] ( 2, 1 ) int -> r12 "field V45._length (fldOffset=0x8)" P-INDEP ;* V117 tmp113 [V117 ] ( 0, 0 ) byref -> zero-ref single-def "field V46._reference (fldOffset=0x0)" P-INDEP ;* V118 tmp114 [V118 ] ( 0, 0 ) int -> zero-ref "field V46._length (fldOffset=0x8)" P-INDEP -; V119 tmp115 [V119,T38] ( 3, 1.50) byref -> r9 "field V49._reference (fldOffset=0x0)" P-INDEP -; V120 tmp116 [V120,T44] ( 3, 1.50) int -> rax "field V49._length (fldOffset=0x8)" P-INDEP -; V121 tmp117 [V121,T56] ( 2, 1 ) byref -> r9 single-def "field V50._reference (fldOffset=0x0)" P-INDEP -; V122 tmp118 [V122,T68] ( 2, 1 ) int -> rax "field V50._length (fldOffset=0x8)" P-INDEP +; V119 tmp115 [V119,T42] ( 3, 1.50) byref -> r14 "field V49._reference (fldOffset=0x0)" P-INDEP +; V120 tmp116 [V120,T48] ( 3, 1.50) int -> [rbp-0x38] "field V49._length (fldOffset=0x8)" P-INDEP +; V121 tmp117 [V121,T58] ( 2, 1 ) byref -> r14 single-def "field V50._reference (fldOffset=0x0)" P-INDEP +; V122 tmp118 [V122,T70] ( 2, 1 ) int -> rdi "field V50._length (fldOffset=0x8)" P-INDEP ;* V123 tmp119 [V123 ] ( 0, 0 ) byref -> zero-ref single-def "field V51._reference (fldOffset=0x0)" P-INDEP ;* V124 tmp120 [V124 ] ( 0, 0 ) int -> zero-ref "field V51._length (fldOffset=0x8)" P-INDEP -; V125 tmp121 [V125,T39] ( 3, 1.50) byref -> rsi "field V54._reference (fldOffset=0x0)" P-INDEP -; V126 tmp122 [V126,T45] ( 3, 1.50) int -> rdx "field V54._length (fldOffset=0x8)" P-INDEP -; V127 tmp123 [V127,T57] ( 2, 1 ) byref -> rcx "field V55._reference (fldOffset=0x0)" P-INDEP -; V128 tmp124 [V128,T69] ( 2, 1 ) int -> r8 "field V55._length (fldOffset=0x8)" P-INDEP +; V125 tmp121 [V125,T43] ( 3, 1.50) byref -> r13 "field V54._reference (fldOffset=0x0)" P-INDEP +; V126 tmp122 [V126,T49] ( 3, 1.50) int -> [rbp-0x3C] "field V54._length (fldOffset=0x8)" P-INDEP +; V127 tmp123 [V127,T59] ( 2, 1 ) byref -> r15 "field V55._reference (fldOffset=0x0)" P-INDEP +; V128 tmp124 [V128,T71] ( 2, 1 ) int -> r12 "field V55._length (fldOffset=0x8)" P-INDEP ;* V129 tmp125 [V129 ] ( 0, 0 ) byref -> zero-ref single-def "field V57._reference (fldOffset=0x0)" P-INDEP ;* V130 tmp126 [V130 ] ( 0, 0 ) int -> zero-ref "field V57._length (fldOffset=0x8)" P-INDEP ;* V131 tmp127 [V131 ] ( 0, 0 ) byref -> zero-ref single-def "field V58._reference (fldOffset=0x0)" P-INDEP ;* V132 tmp128 [V132 ] ( 0, 0 ) int -> zero-ref "field V58._length (fldOffset=0x8)" P-INDEP ;* V133 tmp129 [V133 ] ( 0, 0 ) byref -> zero-ref single-def "field V59._reference (fldOffset=0x0)" P-INDEP ;* V134 tmp130 [V134 ] ( 0, 0 ) int -> zero-ref "field V59._length (fldOffset=0x8)" P-INDEP -; V135 tmp131 [V135,T58] ( 2, 1 ) byref -> rsi single-def "field V64._reference (fldOffset=0x0)" P-INDEP -; V136 tmp132 [V136,T70] ( 2, 1 ) int -> rdx "field V64._length (fldOffset=0x8)" P-INDEP +; V135 tmp131 [V135,T60] ( 2, 1 ) byref -> r13 single-def "field V64._reference (fldOffset=0x0)" P-INDEP +; V136 tmp132 [V136,T72] ( 2, 1 ) int -> rcx "field V64._length (fldOffset=0x8)" P-INDEP ;* V137 tmp133 [V137 ] ( 0, 0 ) byref -> zero-ref single-def "field V65._reference (fldOffset=0x0)" P-INDEP ;* V138 tmp134 [V138 ] ( 0, 0 ) int -> zero-ref "field V65._length (fldOffset=0x8)" P-INDEP -; V139 tmp135 [V139,T59] ( 2, 1 ) byref -> rcx single-def "field V68._reference (fldOffset=0x0)" P-INDEP -; V140 tmp136 [V140,T71] ( 2, 1 ) int -> r8 "field V68._length (fldOffset=0x8)" P-INDEP +; V139 tmp135 [V139,T61] ( 2, 1 ) byref -> r15 single-def "field V68._reference (fldOffset=0x0)" P-INDEP +; V140 tmp136 [V140,T73] ( 2, 1 ) int -> r12 "field V68._length (fldOffset=0x8)" P-INDEP ;* V141 tmp137 [V141 ] ( 0, 0 ) byref -> zero-ref single-def "field V69._reference (fldOffset=0x0)" P-INDEP ;* V142 tmp138 [V142 ] ( 0, 0 ) int -> zero-ref "field V69._length (fldOffset=0x8)" P-INDEP -; V143 tmp139 [V143,T40] ( 3, 1.50) byref -> r9 "field V72._reference (fldOffset=0x0)" P-INDEP -; V144 tmp140 [V144,T46] ( 3, 1.50) int -> rax "field V72._length (fldOffset=0x8)" P-INDEP -; V145 tmp141 [V145,T60] ( 2, 1 ) byref -> r9 single-def "field V73._reference (fldOffset=0x0)" P-INDEP -; V146 tmp142 [V146,T72] ( 2, 1 ) int -> rax "field V73._length (fldOffset=0x8)" P-INDEP +; V143 tmp139 [V143,T44] ( 3, 1.50) byref -> r14 "field V72._reference (fldOffset=0x0)" P-INDEP +; V144 tmp140 [V144,T50] ( 3, 1.50) int -> [rbp-0x40] "field V72._length (fldOffset=0x8)" P-INDEP +; V145 tmp141 [V145,T62] ( 2, 1 ) byref -> r14 single-def "field V73._reference (fldOffset=0x0)" P-INDEP +; V146 tmp142 [V146,T74] ( 2, 1 ) int -> rdx "field V73._length (fldOffset=0x8)" P-INDEP ;* V147 tmp143 [V147 ] ( 0, 0 ) byref -> zero-ref single-def "field V74._reference (fldOffset=0x0)" P-INDEP ;* V148 tmp144 [V148 ] ( 0, 0 ) int -> zero-ref "field V74._length (fldOffset=0x8)" P-INDEP -; V149 tmp145 [V149,T74] ( 2, 0 ) ref -> r15 single-def "argument with side effect" -; V150 tmp146 [V150,T75] ( 2, 0 ) ref -> rdx single-def "argument with side effect" -;* V151 tmp147 [V151 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect" -; V152 tmp148 [V152,T05] ( 3, 3 ) ref -> rax single-def "argument with side effect" -; V153 tmp149 [V153,T76] ( 2, 0 ) ref -> rsi single-def "argument with side effect" -;* V154 tmp150 [V154 ] ( 0, 0 ) ref -> zero-ref single-def "argument with side effect" -; V155 tmp151 [V155,T06] ( 3, 3 ) ref -> rax single-def "argument with side effect" +; V149 tmp145 [V149,T76] ( 2, 0 ) ref -> r15 single-def "argument with side effect" +; V150 tmp146 [V150,T77] ( 2, 0 ) ref -> rdx single-def "argument with side effect" +; V151 tmp147 [V151,T05] ( 3, 3 ) ref -> rax single-def "argument with side effect" +; V152 tmp148 [V152,T06] ( 3, 3 ) ref -> rax single-def "argument with side effect" +; V153 tmp149 [V153,T78] ( 2, 0 ) ref -> rsi single-def "argument with side effect" +; V154 tmp150 [V154,T07] ( 3, 3 ) ref -> rax single-def "argument with side effect" +; V155 tmp151 [V155,T08] ( 3, 3 ) ref -> rax single-def "argument with side effect" ; V156 cse0 [V156,T04] ( 9, 4.50) int -> r12 multi-def "CSE - aggressive" ; -; Lcl frame size = 40 +; Lcl frame size = 56 G_M5144_IG01: push rbp push r15 push r14 push r13 push r12 push rbx - sub rsp, 40 - lea rbp, [rsp+0x50] + sub rsp, 56 + lea rbp, [rsp+0x60] mov rbx, rdi mov r15, rsi mov r14, rdx mov r13d, ecx ;; size=31 bbWeight=1 PerfScore 7.75 G_M5144_IG02: cmp r13d, 5 - ja G_M5144_IG24 + ja G_M5144_IG26 mov eax, r13d lea rcx, [reloc @RWD00] mov ecx, dword ptr [rcx+4*rax] lea rdx, G_M5144_IG02 add rcx, rdx jmp rcx ;; size=35 bbWeight=1 PerfScore 7.25 G_M5144_IG03: mov rax, 0xD1FFAB1E ; code for System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo call [rax]System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo mov rdi, rax mov rax, qword ptr [rax] mov rax, qword ptr [rax+0x48] call [rax+0x30]System.Globalization.CultureInfo:get_CompareInfo():System.Globalization.CompareInfo:this test r15, r15 - je G_M5144_IG25 + je G_M5144_IG27 mov r12d, dword ptr [r15+0x08] test r12d, r12d - je G_M5144_IG25 + je G_M5144_IG27 test rbx, rbx jne SHORT G_M5144_IG04 xor rcx, rcx xor edx, edx jmp SHORT G_M5144_IG05 ;; size=58 bbWeight=0.50 PerfScore 9.38 G_M5144_IG04: lea rcx, bword ptr [rbx+0x0C] mov edx, dword ptr [rbx+0x08] - mov bword ptr [rbp-0x38], rcx + mov bword ptr [rbp-0x48], rcx mov dword ptr [rbp-0x2C], edx - mov rcx, bword ptr [rbp-0x38] + mov rcx, bword ptr [rbp-0x48] mov edx, dword ptr [rbp-0x2C] ;; size=21 bbWeight=0.50 PerfScore 3.25 G_M5144_IG05: add r15, 12 test r14, r14 jne SHORT G_M5144_IG06 xor r14, r14 xor edi, edi jmp SHORT G_M5144_IG07 ;; size=16 bbWeight=0.50 PerfScore 2.00 G_M5144_IG06: lea rdi, bword ptr [r14+0x0C] mov esi, dword ptr [r14+0x08] mov r14, rdi mov edi, esi mov dword ptr [rbp-0x30], edi mov edi, dword ptr [rbp-0x30] ;; size=19 bbWeight=0.50 PerfScore 2.50 G_M5144_IG07: test rax, rax mov dword ptr [rbp-0x30], edi jne SHORT G_M5144_IG08 - mov bword ptr [rbp-0x38], rcx + mov bword ptr [rbp-0x48], rcx mov dword ptr [rbp-0x2C], edx mov rax, 0xD1FFAB1E ; code for System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo call [rax]System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo mov rdi, rax mov rax, qword ptr [rax] mov rax, qword ptr [rax+0x48] call [rax+0x30]System.Globalization.CultureInfo:get_CompareInfo():System.Globalization.CompareInfo:this - mov rcx, bword ptr [rbp-0x38] + mov rcx, bword ptr [rbp-0x48] mov edx, dword ptr [rbp-0x2C] ;; size=47 bbWeight=0.50 PerfScore 8.38 G_M5144_IG08: mov gword ptr [rsp], rax and r13d, 1 mov dword ptr [rsp+0x08], r13d mov rdi, rcx mov esi, edx mov rdx, r15 mov ecx, r12d mov r8, r14 mov r9d, dword ptr [rbp-0x30] mov rax, 0xD1FFAB1E ; code for System.String:ReplaceCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.Globalization.CompareInfo,int):System.String call [rax]System.String:ReplaceCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.Globalization.CompareInfo,int):System.String test rax, rax cmove rax, rbx ;; size=50 bbWeight=0.50 PerfScore 4.12 G_M5144_IG09: - add rsp, 40 + add rsp, 56 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0.50 PerfScore 2.12 G_M5144_IG10: - mov rdi, 0xD1FFAB1E ; const ptr - mov rdi, gword ptr [rdi] + mov rax, 0xD1FFAB1E ; const ptr + mov rax, gword ptr [rax] test r15, r15 - je G_M5144_IG25 + je G_M5144_IG27 mov r12d, dword ptr [r15+0x08] test r12d, r12d - je G_M5144_IG25 + je G_M5144_IG27 test rbx, rbx jne SHORT G_M5144_IG11 - xor rsi, rsi + xor rcx, rcx xor edx, edx jmp SHORT G_M5144_IG12 ;; size=46 bbWeight=0.50 PerfScore 5.25 G_M5144_IG11: - lea rsi, bword ptr [rbx+0x0C] + lea rcx, bword ptr [rbx+0x0C] mov edx, dword ptr [rbx+0x08] - ;; size=7 bbWeight=0.50 PerfScore 1.25 + mov bword ptr [rbp-0x50], rcx + mov dword ptr [rbp-0x34], edx + mov rcx, bword ptr [rbp-0x50] + mov edx, dword ptr [rbp-0x34] + ;; size=21 bbWeight=0.50 PerfScore 3.25 G_M5144_IG12: - lea rcx, bword ptr [r15+0x0C] - mov r8d, r12d + add r15, 12 test r14, r14 jne SHORT G_M5144_IG13 - xor r9, r9 - xor eax, eax + xor r14, r14 + xor edi, edi jmp SHORT G_M5144_IG14 - ;; size=19 bbWeight=0.50 PerfScore 2.25 + ;; size=16 bbWeight=0.50 PerfScore 2.00 G_M5144_IG13: - lea r9, bword ptr [r14+0x0C] - mov eax, dword ptr [r14+0x08] - ;; size=8 bbWeight=0.50 PerfScore 1.25 + lea rdi, bword ptr [r14+0x0C] + mov esi, dword ptr [r14+0x08] + mov r14, rdi + mov edi, esi + mov dword ptr [rbp-0x38], edi + mov edi, dword ptr [rbp-0x38] + ;; size=19 bbWeight=0.50 PerfScore 2.50 G_M5144_IG14: - mov gword ptr [rsp], rdi - mov edi, r13d - and edi, 1 - mov dword ptr [rsp+0x08], edi - mov rdi, rsi + test rax, rax + mov dword ptr [rbp-0x38], edi + jne SHORT G_M5144_IG15 + mov bword ptr [rbp-0x50], rcx + mov dword ptr [rbp-0x34], edx + mov rax, 0xD1FFAB1E ; code for System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo + call [rax]System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo + mov rdi, rax + mov rax, qword ptr [rax] + mov rax, qword ptr [rax+0x48] + call [rax+0x30]System.Globalization.CultureInfo:get_CompareInfo():System.Globalization.CompareInfo:this + mov rcx, bword ptr [rbp-0x50] + mov edx, dword ptr [rbp-0x34] + ;; size=47 bbWeight=0.50 PerfScore 8.38 +G_M5144_IG15: + mov gword ptr [rsp], rax + mov esi, r13d + and esi, 1 + mov dword ptr [rsp+0x08], esi + mov rdi, rcx mov esi, edx - mov rdx, rcx - mov ecx, r8d - mov r8, r9 - mov r9d, eax + mov rdx, r15 + mov ecx, r12d + mov r8, r14 + mov r9d, dword ptr [rbp-0x38] mov rax, 0xD1FFAB1E ; code for System.String:ReplaceCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.Globalization.CompareInfo,int):System.String call [rax]System.String:ReplaceCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.Globalization.CompareInfo,int):System.String test rax, rax cmove rax, rbx - ;; size=50 bbWeight=0.50 PerfScore 3.88 -G_M5144_IG15: - add rsp, 40 + ;; size=51 bbWeight=0.50 PerfScore 4.25 +G_M5144_IG16: + add rsp, 56 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0.50 PerfScore 2.12 -G_M5144_IG16: +G_M5144_IG17: mov rdi, rbx mov rsi, r15 mov rdx, r14 mov rax, 0xD1FFAB1E ; code for System.String:Replace(System.String,System.String):System.String:this call [rax]System.String:Replace(System.String,System.String):System.String:this nop ;; size=22 bbWeight=0.50 PerfScore 2.12 -G_M5144_IG17: - add rsp, 40 +G_M5144_IG18: + add rsp, 56 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0.50 PerfScore 2.12 -G_M5144_IG18: - mov rdi, 0xD1FFAB1E ; const ptr - mov rdi, gword ptr [rdi] +G_M5144_IG19: + mov rax, 0xD1FFAB1E ; const ptr + mov rax, gword ptr [rax] test r15, r15 - je G_M5144_IG25 + je G_M5144_IG27 mov r12d, dword ptr [r15+0x08] test r12d, r12d - je G_M5144_IG25 + je G_M5144_IG27 test rbx, rbx - jne SHORT G_M5144_IG19 - xor rsi, rsi - xor edx, edx - jmp SHORT G_M5144_IG20 - ;; size=46 bbWeight=0.50 PerfScore 5.25 -G_M5144_IG19: - lea rsi, bword ptr [rbx+0x0C] - mov edx, dword ptr [rbx+0x08] - ;; size=7 bbWeight=0.50 PerfScore 1.25 + jne SHORT G_M5144_IG20 + xor r13, r13 + xor ecx, ecx + mov dword ptr [rbp-0x3C], ecx + mov ecx, dword ptr [rbp-0x3C] + jmp SHORT G_M5144_IG21 + ;; size=53 bbWeight=0.50 PerfScore 6.25 G_M5144_IG20: - lea rcx, bword ptr [r15+0x0C] - mov r8d, r12d - test r14, r14 - jne SHORT G_M5144_IG21 - xor r9, r9 - xor eax, eax - jmp SHORT G_M5144_IG22 - ;; size=19 bbWeight=0.50 PerfScore 2.25 + lea r13, bword ptr [rbx+0x0C] + mov ecx, dword ptr [rbx+0x08] + ;; size=7 bbWeight=0.50 PerfScore 1.25 G_M5144_IG21: - lea r9, bword ptr [r14+0x0C] - mov eax, dword ptr [r14+0x08] - ;; size=8 bbWeight=0.50 PerfScore 1.25 + add r15, 12 + test r14, r14 + jne SHORT G_M5144_IG22 + xor r14, r14 + xor edx, edx + jmp SHORT G_M5144_IG23 + ;; size=16 bbWeight=0.50 PerfScore 2.00 G_M5144_IG22: - mov gword ptr [rsp], rdi + lea rdx, bword ptr [r14+0x0C] + mov edi, dword ptr [r14+0x08] + mov r14, rdx + mov edx, edi + mov dword ptr [rbp-0x40], edx + mov edx, dword ptr [rbp-0x40] + ;; size=19 bbWeight=0.50 PerfScore 2.50 +G_M5144_IG23: + test rax, rax + mov dword ptr [rbp-0x40], edx + jne SHORT G_M5144_IG24 + mov dword ptr [rbp-0x3C], ecx + mov rax, 0xD1FFAB1E ; code for System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo + call [rax]System.Globalization.CultureInfo:get_CurrentCulture():System.Globalization.CultureInfo + mov rdi, rax + mov rax, qword ptr [rax] + mov rax, qword ptr [rax+0x48] + call [rax+0x30]System.Globalization.CultureInfo:get_CompareInfo():System.Globalization.CompareInfo:this + mov ecx, dword ptr [rbp-0x3C] + ;; size=39 bbWeight=0.50 PerfScore 7.38 +G_M5144_IG24: + mov gword ptr [rsp], rax mov dword ptr [rsp+0x08], 0xD1FFAB1E - mov rdi, rsi - mov esi, edx - mov rdx, rcx - mov ecx, r8d - mov r8, r9 - mov r9d, eax + mov rdi, r13 + mov esi, ecx + mov rdx, r15 + mov ecx, r12d + mov r8, r14 + mov r9d, dword ptr [rbp-0x40] mov rax, 0xD1FFAB1E ; code for System.String:ReplaceCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.Globalization.CompareInfo,int):System.String call [rax]System.String:ReplaceCore(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.Globalization.CompareInfo,int):System.String test rax, rax cmove rax, rbx - ;; size=48 bbWeight=0.50 PerfScore 3.62 -G_M5144_IG23: - add rsp, 40 + ;; size=49 bbWeight=0.50 PerfScore 4.00 +G_M5144_IG25: + add rsp, 56 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0.50 PerfScore 2.12 -G_M5144_IG24: +G_M5144_IG26: mov rdi, 0xD1FFAB1E ; System.ArgumentException call CORINFO_HELP_NEWSFAST mov rbx, rax mov rax, 0xD1FFAB1E ; code for System.SR:get_NotSupported_StringComparison():System.String call [rax]System.SR:get_NotSupported_StringComparison():System.String mov r15, rax mov edi, 0xD03 mov rsi, 0xD1FFAB1E call CORINFO_HELP_STRCNS mov rdx, rax mov rsi, r15 mov rdi, rbx 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, rbx call CORINFO_HELP_THROW ;; size=82 bbWeight=0 PerfScore 0.00 -G_M5144_IG25: +G_M5144_IG27: mov edi, 0xDA5 mov rsi, 0xD1FFAB1E call CORINFO_HELP_STRCNS mov rsi, rax mov rdi, r15 mov rax, 0xD1FFAB1E ; code for System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String) call [rax]System.ArgumentException:ThrowNullOrEmptyException(System.String,System.String) int3 ;; size=39 bbWeight=0 PerfScore 0.00 RWD00 dd G_M5144_IG03 - G_M5144_IG02 dd G_M5144_IG03 - G_M5144_IG02 dd G_M5144_IG10 - G_M5144_IG02 dd G_M5144_IG10 - G_M5144_IG02 - dd G_M5144_IG16 - G_M5144_IG02 - dd G_M5144_IG18 - G_M5144_IG02 + dd G_M5144_IG17 - G_M5144_IG02 + dd G_M5144_IG19 - G_M5144_IG02 -; Total bytes of code 738, prolog size 19, PerfScore 156.55, instruction count 214, allocated bytes for code 738 (MethodHash=aa3febe7) for method System.String:Replace(System.String,System.String,int):System.String:this (FullOpts) +; Total bytes of code 863, prolog size 19, PerfScore 190.55, instruction count 250, allocated bytes for code 863 (MethodHash=aa3febe7) for method System.String:Replace(System.String,System.String,int):System.String:this (FullOpts) ```
99 (23.40 % of base) - System.Globalization.CultureData:GetNativeDigits():System.String[]:this ```diff ; Assembly listing for method System.Globalization.CultureData:GetNativeDigits():System.String[]:this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 11 single block inlinees; 2 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T12] ( 4, 4 ) ref -> rdi this class-hnd single-def -; V01 loc0 [V01,T11] ( 5, 9.96) ref -> r15 class-hnd -; V02 loc1 [V02,T02] ( 10, 28.46) ref -> r14 class-hnd exact single-def +; V01 loc0 [V01,T11] ( 6, 10 ) ref -> r15 class-hnd +; V02 loc1 [V02,T02] ( 11, 28.50) ref -> r14 class-hnd exact single-def ; V03 loc2 [V03,T00] ( 11, 85 ) int -> r12 ; V04 loc3 [V04,T09] ( 4, 12.50) int -> rsi ; V05 loc4 [V05,T08] ( 5, 13 ) int -> [rbp-0x2C] -; V06 loc5 [V06,T04] ( 6, 20.30) int -> r12 +; V06 loc5 [V06,T04] ( 12, 20.54) int -> r12 ;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V08 tmp1 [V08 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr" ; V09 tmp2 [V09,T15] ( 2, 2 ) int -> rdi "spilling unroll qmark" ;* V10 tmp3 [V10 ] ( 0, 0 ) ref -> zero-ref single-def "spilling varStr" -; V11 tmp4 [V11,T17] ( 2, 2 ) int -> rdi "spilling unroll qmark" +; V11 tmp4 [V11,T16] ( 2, 2 ) int -> rdi "spilling unroll qmark" ; V12 tmp5 [V12,T03] ( 3, 24 ) int -> [rbp-0x30] spill-single-def "impSpillLclRefs" -; V13 tmp6 [V13,T05] ( 2, 16 ) ref -> rax class-hnd exact "Strict ordering of exceptions for Array store" -; V14 tmp7 [V14,T06] ( 2, 16 ) int -> r12 "dup spill" +; V13 tmp6 [V13,T06] ( 2, 16 ) ref -> rax class-hnd exact "Strict ordering of exceptions for Array store" +; V14 tmp7 [V14,T07] ( 2, 16 ) int -> r12 "dup spill" ;* V15 tmp8 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Strict ordering of exceptions for Array store" ;* V16 tmp9 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" -; V17 tmp10 [V17,T16] ( 2, 2 ) byref -> rdi single-def "Inlining Arg" +; V17 tmp10 [V17,T17] ( 2, 2 ) byref -> rdi single-def "Inlining Arg" ; V18 tmp11 [V18,T18] ( 2, 2 ) int -> rdx "Inlining Arg" ; V19 tmp12 [V19,T19] ( 2, 1 ) int -> r12 "Inline return value spill temp" ;* V20 tmp13 [V20,T20] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg" ;* V21 tmp14 [V21 ] ( 0, 0 ) short -> zero-ref ld-addr-op "Inlining Arg" ;* V22 tmp15 [V22 ] ( 0, 0 ) ushort -> zero-ref "Inlining Arg" -; V23 tmp16 [V23,T07] ( 2, 15.84) ushort -> r13 "Inlining Arg" +; V23 tmp16 [V23,T05] ( 4, 16 ) ushort -> rbx "Inlining Arg" ;* V24 tmp17 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline return value spill temp" -; V25 tmp18 [V25,T10] ( 3, 11.88) ref -> rax class-hnd exact "Inline stloc first use temp" +; V25 tmp18 [V25,T10] ( 6, 12 ) ref -> rax class-hnd exact "Inline stloc first use temp" ; V26 tmp19 [V26,T13] ( 3, 4 ) ref -> rax "Single return block return value" -; V27 cse0 [V27,T14] ( 3, 2.50) ref -> rbx "CSE - moderate" -; V28 cse1 [V28,T01] ( 6, 39 ) int -> r13 "CSE - aggressive" -; V29 rat0 [V29,T22] ( 3, 3 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable" -; V30 rat1 [V30,T21] ( 3, 3 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable" +; V27 cse0 [V27,T14] ( 4, 3.50) ref -> rbx "CSE - moderate" +; V28 cse1 [V28,T01] ( 9, 40.04) int -> r13 "CSE - aggressive" +; V29 rat0 [V29,T21] ( 3, 3 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable" +; V30 rat1 [V30,T22] ( 3, 3 ) simd16 -> mm0 "ReplaceWithLclVar is creating a new local variable" ; ; Lcl frame size = 8 G_M6160_IG01: push rbp push r15 push r14 push r13 push r12 push rbx push rax vzeroupper lea rbp, [rsp+0x30] ;; size=19 bbWeight=1 PerfScore 8.50 G_M6160_IG02: mov rsi, 0xD1FFAB1E ; const ptr mov rbx, gword ptr [rsi] mov r15, rbx mov rsi, gword ptr [rdi+0x10] mov edx, 19 xor rcx, rcx mov rax, 0xD1FFAB1E ; code for System.Globalization.CultureData:IcuGetLocaleInfo(System.String,uint,System.String):System.String:this call [rax]System.Globalization.CultureData:IcuGetLocaleInfo(System.String,uint,System.String):System.String:this mov r14, rax mov r13d, dword ptr [r14+0x08] - cmp r13d, 10 + cmp r13d, dword ptr [rbx+0x08] jge SHORT G_M6160_IG04 - ;; size=52 bbWeight=1 PerfScore 11.75 + ;; size=52 bbWeight=1 PerfScore 14.50 G_M6160_IG03: mov rax, r15 - jmp G_M6160_IG16 - align [0 bytes for IG10] - ;; size=8 bbWeight=0.50 PerfScore 1.12 + jmp G_M6160_IG19 + align [12 bytes for IG13] + ;; size=20 bbWeight=0.50 PerfScore 1.12 G_M6160_IG04: cmp r13d, 20 jl SHORT G_M6160_IG05 vmovups ymm0, ymmword ptr [r14+0x0C] vpxor ymm0, ymm0, ymmword ptr [reloc @RWD00] vmovups ymm1, ymmword ptr [r14+0x14] vpxor ymm1, ymm1, ymmword ptr [reloc @RWD32] vpor ymm0, ymm0, ymm1 vptest ymm0, ymm0 sete dil movzx rdi, dil test edi, edi jne SHORT G_M6160_IG03 ;; size=55 bbWeight=0.50 PerfScore 11.54 G_M6160_IG05: + cmp r13d, 10 + jl SHORT G_M6160_IG06 vmovups xmm0, xmmword ptr [r14+0x0C] vpxor xmm0, xmm0, xmmword ptr [reloc @RWD64] vmovups xmm1, xmmword ptr [r14+0x10] vpxor xmm1, xmm1, xmmword ptr [reloc @RWD80] vpor xmm0, xmm0, xmm1 vptest xmm0, xmm0 sete dil movzx rdi, dil test edi, edi - jne SHORT G_M6160_IG03 + jne G_M6160_IG03 + ;; size=59 bbWeight=0.50 PerfScore 9.54 +G_M6160_IG06: lea rdi, bword ptr [r14+0x0C] mov edx, r13d mov esi, -1 mov rax, 0xD1FFAB1E ; code for System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int call [rax]System.SpanHelpers:NonPackedIndexOfValueType[short,System.SpanHelpers+DontNegate`1[short]](byref,short,int):int mov r12d, eax mov rdi, 0xD1FFAB1E ; System.String[] mov esi, 10 call CORINFO_HELP_NEWARR_1_OBJ mov r15, rax test r12d, r12d - jge SHORT G_M6160_IG08 + jge G_M6160_IG11 xor r12d, r12d - ;; size=107 bbWeight=0.50 PerfScore 12.79 -G_M6160_IG06: + cmp r13d, 10 + jl SHORT G_M6160_IG09 + ;; size=68 bbWeight=0.50 PerfScore 4.50 +G_M6160_IG07: mov edi, r12d - movzx r13, word ptr [r14+2*rdi+0x0C] + movzx rbx, word ptr [r14+2*rdi+0x0C] mov edi, 1 call System.String:FastAllocateString(int):System.String - mov word ptr [rax+0x0C], r13w + mov word ptr [rax+0x0C], bx mov edi, r12d lea rdi, bword ptr [r15+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF inc r12d cmp r12d, 10 - jl SHORT G_M6160_IG06 - ;; size=49 bbWeight=3.96 PerfScore 33.66 -G_M6160_IG07: + jl SHORT G_M6160_IG07 + ;; size=48 bbWeight=3.96 PerfScore 33.66 +G_M6160_IG08: jmp G_M6160_IG03 ;; size=5 bbWeight=0.50 PerfScore 1.00 -G_M6160_IG08: +G_M6160_IG09: + cmp r12d, r13d + jae G_M6160_IG20 + mov edi, r12d + movzx rbx, word ptr [r14+2*rdi+0x0C] + mov edi, 1 + call System.String:FastAllocateString(int):System.String + mov word ptr [rax+0x0C], bx + mov edi, r12d + lea rdi, bword ptr [r15+8*rdi+0x10] + mov rsi, rax + call CORINFO_HELP_ASSIGN_REF + inc r12d + cmp r12d, 10 + jl SHORT G_M6160_IG09 + ;; size=57 bbWeight=0.04 PerfScore 0.39 +G_M6160_IG10: + jmp G_M6160_IG03 + ;; size=5 bbWeight=0.50 PerfScore 1.00 +G_M6160_IG11: xor esi, esi xor eax, eax ;; size=4 bbWeight=0.50 PerfScore 0.25 -G_M6160_IG09: +G_M6160_IG12: mov ecx, eax mov dword ptr [rbp-0x30], ecx lea eax, [rcx+0x01] mov dword ptr [rbp-0x2C], eax mov edx, r12d sub edx, esi mov rdi, r14 mov r8, 0xD1FFAB1E ; code for System.String:Substring(int,int):System.String:this call [r8]System.String:Substring(int,int):System.String:this mov edi, dword ptr [rbp-0x30] lea rdi, bword ptr [r15+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF inc r12d mov esi, r12d - jmp SHORT G_M6160_IG11 + jmp SHORT G_M6160_IG14 ;; size=56 bbWeight=4 PerfScore 50.00 -G_M6160_IG10: +G_M6160_IG13: inc r12d ;; size=3 bbWeight=8 PerfScore 2.00 -G_M6160_IG11: +G_M6160_IG14: cmp r13d, r12d - jbe SHORT G_M6160_IG13 + jbe SHORT G_M6160_IG16 ;; size=5 bbWeight=32 PerfScore 40.00 -G_M6160_IG12: +G_M6160_IG15: mov eax, r12d cmp word ptr [r14+2*rax+0x0C], 0xFFFF - jne SHORT G_M6160_IG10 + jne SHORT G_M6160_IG13 ;; size=13 bbWeight=16 PerfScore 68.00 -G_M6160_IG13: +G_M6160_IG16: cmp r13d, r12d - jle SHORT G_M6160_IG15 + jle SHORT G_M6160_IG18 mov eax, dword ptr [rbp-0x2C] cmp eax, 10 - jl SHORT G_M6160_IG09 + jl SHORT G_M6160_IG12 ;; size=13 bbWeight=4 PerfScore 14.00 -G_M6160_IG14: +G_M6160_IG17: mov dword ptr [rbp-0x2C], eax ;; size=3 bbWeight=2 PerfScore 2.00 -G_M6160_IG15: +G_M6160_IG18: cmp dword ptr [rbp-0x2C], 10 jge G_M6160_IG03 mov rax, rbx ;; size=13 bbWeight=0.50 PerfScore 1.62 -G_M6160_IG16: +G_M6160_IG19: vzeroupper add rsp, 8 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=18 bbWeight=1 PerfScore 5.25 +G_M6160_IG20: + call CORINFO_HELP_RNGCHKFAIL + int3 + ;; size=6 bbWeight=0 PerfScore 0.00 RWD00 dq FFFF0031FFFF0030h, FFFF0033FFFF0032h, FFFF0035FFFF0034h, FFFF0037FFFF0036h RWD32 dq FFFF0033FFFF0032h, FFFF0035FFFF0034h, FFFF0037FFFF0036h, FFFF0039FFFF0038h RWD64 dq 0033003200310030h, 0037003600350034h RWD80 dq 0035003400330032h, 0039003800370036h -; Total bytes of code 423, prolog size 19, PerfScore 305.79, instruction count 114, allocated bytes for code 423 (MethodHash=9ba2e7ef) for method System.Globalization.CultureData:GetNativeDigits():System.String[]:this (FullOpts) +; Total bytes of code 522, prolog size 19, PerfScore 321.08, instruction count 135, allocated bytes for code 522 (MethodHash=9ba2e7ef) for method System.Globalization.CultureData:GetNativeDigits():System.String[]:this (FullOpts) ```

Note: some changes were skipped as they were too large to fit into a comment.

Larger list of diffs: https://gist.github.com/MihuBot/1414b3bb401bc380a7398915ed4cdf91

MihuBot commented 8 months ago

Top method improvements

-16 (-17.78 % of base) - System.Globalization.UmAlQuraCalendar:RealGetDaysInYear(int):int ```diff ; Assembly listing for method System.Globalization.UmAlQuraCalendar:RealGetDaysInYear(int):int (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; Final local variable assignments ; -; V00 arg0 [V00,T03] ( 3, 3 ) int -> rdi single-def +; V00 arg0 [V00,T04] ( 3, 3 ) int -> rdi single-def ; V01 loc0 [V01,T02] ( 4, 10 ) int -> rax ; V02 loc1 [V02,T00] ( 4, 13 ) int -> rcx ; V03 loc2 [V03,T01] ( 4, 13 ) int -> rdx ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V05 tmp1 [V05,T04] ( 2, 4 ) ref -> rcx single-def "arr expr" +; V05 tmp1 [V05,T03] ( 3, 6 ) ref -> rcx single-def "arr expr" ; V06 cse0 [V06,T05] ( 3, 3 ) int -> rdi "CSE - aggressive" ; ; Lcl frame size = 0 G_M25568_IG01: push rbp mov rbp, rsp ;; size=4 bbWeight=1 PerfScore 1.25 G_M25568_IG02: xor eax, eax mov rcx, 0xD1FFAB1E ; const ptr mov rcx, gword ptr [rcx] add edi, -0x526 - cmp edi, 184 + cmp edi, dword ptr [rcx+0x08] jae SHORT G_M25568_IG05 mov edx, edi shl rdx, 4 mov ecx, dword ptr [rcx+rdx+0x10] mov edx, 1 jmp SHORT G_M25568_IG03 - align [14 bytes for IG03] - ;; size=60 bbWeight=1 PerfScore 9.00 + align [1 bytes for IG03] + ;; size=44 bbWeight=1 PerfScore 11.75 G_M25568_IG03: mov edi, ecx and edi, 1 lea eax, [rax+rdi+0x1D] sar ecx, 1 inc edx cmp edx, 12 jle SHORT G_M25568_IG03 ;; size=18 bbWeight=4 PerfScore 14.00 G_M25568_IG04: pop rbp ret ;; size=2 bbWeight=1 PerfScore 1.50 G_M25568_IG05: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 -; Total bytes of code 90, prolog size 4, PerfScore 34.75, instruction count 25, allocated bytes for code 90 (MethodHash=d97e9c1f) for method System.Globalization.UmAlQuraCalendar:RealGetDaysInYear(int):int (FullOpts) +; Total bytes of code 74, prolog size 4, PerfScore 35.90, instruction count 25, allocated bytes for code 74 (MethodHash=d97e9c1f) for method System.Globalization.UmAlQuraCalendar:RealGetDaysInYear(int):int (FullOpts) ```
-4 (-1.67 % of base) - System.Number:Int32ToNumber(int,byref) ```diff ; Assembly listing for method System.Number:Int32ToNumber(int,byref) (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 10 single block inlinees; 2 inlinees without PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T16] ( 6, 5 ) int -> rdi -; V01 arg1 [V01,T10] ( 9, 8 ) byref -> rsi single-def +; V01 arg1 [V01,T11] ( 9, 8 ) byref -> rsi single-def ; V02 loc0 [V02,T23] ( 2, 2 ) long -> rax -; V03 loc1 [V03,T11] ( 4, 10 ) long -> registers +; V03 loc1 [V03,T12] ( 4, 10 ) long -> registers ; V04 loc2 [V04,T06] ( 9, 18 ) int -> rax -; V05 loc3 [V05,T12] ( 4, 10 ) long -> registers +; V05 loc3 [V05,T13] ( 4, 10 ) long -> registers ;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V07 tmp1 [V07,T05] ( 4, 20 ) int -> rax "dup spill" ; V08 tmp2 [V08,T03] ( 3, 24 ) long -> rdx "impSpillLclRefs" ; V09 tmp3 [V09,T04] ( 3, 24 ) long -> rcx "impSpillLclRefs" ;* V10 tmp4 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V11 tmp5 [V11,T00] ( 11, 70 ) int -> registers "Inlining Arg" ; V12 tmp6 [V12,T01] ( 8, 52 ) long -> rcx "Inlining Arg" ; V13 tmp7 [V13,T02] ( 6, 50 ) int -> rdx "Inlining Arg" ;* V14 tmp8 [V14 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" ;* V15 tmp9 [V15 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" ;* V16 tmp10 [V16 ] ( 0, 0 ) struct ( 8) zero-ref "dup spill" ; V17 tmp11 [V17,T07] ( 2, 16 ) long -> rcx "dup spill" -; V18 tmp12 [V18,T08] ( 3, 12 ) int -> r9 "Inline stloc first use temp" +; V18 tmp12 [V18,T09] ( 3, 12 ) int -> r9 "Inline stloc first use temp" ;* V19 tmp13 [V19 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" ;* V20 tmp14 [V20 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V21 tmp15 [V21 ] ( 0, 0 ) long -> zero-ref ;* V22 tmp16 [V22 ] ( 0, 0 ) long -> zero-ref -; V23 tmp17 [V23,T13] ( 2, 8 ) ref -> r10 +; V23 tmp17 [V23,T08] ( 3, 12 ) ref -> r10 ;* V24 tmp18 [V24 ] ( 0, 0 ) byref -> zero-ref "Inlining Arg" -; V25 tmp19 [V25,T09] ( 3, 12 ) int -> rdi "Inline stloc first use temp" +; V25 tmp19 [V25,T10] ( 3, 12 ) int -> rdi "Inline stloc first use temp" ;* V26 tmp20 [V26 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" ;* V27 tmp21 [V27 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V28 tmp22 [V28 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" ;* V29 tmp23 [V29 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" ; V30 tmp24 [V30,T21] ( 2, 2 ) byref -> rax single-def "field V10._reference (fldOffset=0x0)" P-INDEP ;* V31 tmp25 [V31 ] ( 0, 0 ) int -> zero-ref "field V10._length (fldOffset=0x8)" P-INDEP ;* V32 tmp26 [V32 ] ( 0, 0 ) int -> zero-ref "field V14.Item1 (fldOffset=0x0)" P-INDEP ;* V33 tmp27 [V33 ] ( 0, 0 ) int -> zero-ref "field V14.Item2 (fldOffset=0x4)" P-INDEP ;* V34 tmp28 [V34 ] ( 0, 0 ) int -> zero-ref "field V16.Item1 (fldOffset=0x0)" P-INDEP ;* V35 tmp29 [V35 ] ( 0, 0 ) int -> zero-ref "field V16.Item2 (fldOffset=0x4)" P-INDEP ;* V36 tmp30 [V36 ] ( 0, 0 ) int -> zero-ref "field V19.Item1 (fldOffset=0x0)" P-INDEP ; V37 tmp31 [V37,T14] ( 2, 8 ) int -> rdi "field V19.Item2 (fldOffset=0x4)" P-INDEP ;* V38 tmp32 [V38 ] ( 0, 0 ) int -> zero-ref "field V26.Item1 (fldOffset=0x0)" P-INDEP ; V39 tmp33 [V39,T15] ( 2, 8 ) int -> r10 "field V26.Item2 (fldOffset=0x4)" P-INDEP ; V40 tmp34 [V40,T22] ( 2, 2 ) byref -> rdx single-def "field V29._reference (fldOffset=0x0)" P-INDEP ;* V41 tmp35 [V41 ] ( 0, 0 ) int -> zero-ref "field V29._length (fldOffset=0x8)" P-INDEP ; V42 tmp36 [V42,T18] ( 2, 4 ) long -> rax "Cast away GC" ; V43 tmp37 [V43,T19] ( 2, 4 ) long -> rdx "Cast away GC" ; V44 cse0 [V44,T17] ( 2, 5 ) ref -> r8 hoist "CSE - moderate" ; V45 cse1 [V45,T20] ( 3, 3 ) long -> rax "CSE - moderate" ; ; Lcl frame size = 0 G_M64470_IG01: push rbp mov rbp, rsp ;; size=4 bbWeight=1 PerfScore 1.25 G_M64470_IG02: mov dword ptr [rsi], 10 test edi, edi jl SHORT G_M64470_IG04 ;; size=10 bbWeight=1 PerfScore 2.25 G_M64470_IG03: mov byte ptr [rsi+0x08], 0 jmp SHORT G_M64470_IG05 align [0 bytes for IG06] ;; size=6 bbWeight=0.50 PerfScore 1.50 G_M64470_IG04: mov byte ptr [rsi+0x08], 1 neg edi ;; size=6 bbWeight=0.50 PerfScore 0.62 G_M64470_IG05: mov rax, bword ptr [rsi+0x10] add rax, 10 mov rcx, rax xor edx, edx cmp edi, 100 jb G_M64470_IG17 mov r8, 0xD1FFAB1E ; const ptr mov r8, gword ptr [r8] ;; size=35 bbWeight=1 PerfScore 6.25 G_M64470_IG06: add rcx, -2 add edx, -2 mov r9d, edi imul r9, r9, 0xD1FFAB1E shr r9, 37 imul r10d, r9d, 100 sub edi, r10d mov r10, r8 + cmp byte ptr [r10], r10b add edi, edi mov di, word ptr [r10+rdi+0x10] mov word ptr [rcx], di cmp r9d, 100 jae SHORT G_M64470_IG16 - ;; NOP compensation instructions of 4 bytes. - ;; size=52 bbWeight=4 PerfScore 41.00 + ;; size=51 bbWeight=4 PerfScore 53.00 G_M64470_IG07: test r9d, r9d je SHORT G_M64470_IG09 ;; size=5 bbWeight=1 PerfScore 1.25 G_M64470_IG08: dec edx mov edi, 0xD1FFAB1E mov r8d, r9d imul rdi, r8 shr rdi, 35 lea r8d, [rdi+4*rdi] add r8d, r8d mov r10d, r9d sub r10d, r8d mov r9d, edi dec rcx add r10d, 48 mov byte ptr [rcx], r10b test r9d, r9d jne SHORT G_M64470_IG08 ;; size=49 bbWeight=4 PerfScore 30.00 G_M64470_IG09: test edx, edx jg SHORT G_M64470_IG08 ;; size=4 bbWeight=8 PerfScore 10.00 G_M64470_IG10: sub rax, rcx mov dword ptr [rsi], eax mov dword ptr [rsi+0x04], eax mov rdx, bword ptr [rsi+0x10] dec eax js SHORT G_M64470_IG15 jmp SHORT G_M64470_IG11 - align [3 bytes for IG11] - ;; size=21 bbWeight=1 PerfScore 7.75 + align [0 bytes for IG11] + ;; size=18 bbWeight=1 PerfScore 7.50 G_M64470_IG11: lea rdi, [rdx+0x01] lea rsi, [rcx+0x01] movzx rcx, byte ptr [rcx] mov byte ptr [rdx], cl dec eax mov rcx, rsi jns SHORT G_M64470_IG14 ;; size=20 bbWeight=4 PerfScore 22.00 G_M64470_IG12: mov byte ptr [rdi], 0 ;; size=3 bbWeight=1 PerfScore 1.00 G_M64470_IG13: pop rbp ret ;; size=2 bbWeight=1 PerfScore 1.50 G_M64470_IG14: mov rdx, rdi jmp SHORT G_M64470_IG11 ;; size=5 bbWeight=2 PerfScore 4.50 G_M64470_IG15: mov rdi, rdx jmp SHORT G_M64470_IG12 ;; size=5 bbWeight=0.50 PerfScore 1.12 G_M64470_IG16: mov edi, r9d jmp G_M64470_IG06 ;; size=8 bbWeight=2 PerfScore 4.50 G_M64470_IG17: mov r9d, edi jmp SHORT G_M64470_IG07 ;; size=5 bbWeight=0.50 PerfScore 1.12 -; Total bytes of code 240, prolog size 4, PerfScore 161.93, instruction count 76, allocated bytes for code 243 (MethodHash=e1460429) for method System.Number:Int32ToNumber(int,byref) (FullOpts) +; Total bytes of code 236, prolog size 4, PerfScore 173.68, instruction count 77, allocated bytes for code 243 (MethodHash=e1460429) for method System.Number:Int32ToNumber(int,byref) (FullOpts) ```
-3 (-2.38 % of base) - System.Globalization.UmAlQuraCalendar:GetDaysInMonth(int,int,int):int:this ```diff ; Assembly listing for method System.Globalization.UmAlQuraCalendar:GetDaysInMonth(int,int,int):int:this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 0 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ; ;* V00 this [V00 ] ( 0, 0 ) ref -> zero-ref this class-hnd single-def ; V01 arg1 [V01,T01] ( 4, 4 ) int -> r15 single-def ; V02 arg2 [V02,T00] ( 5, 4 ) int -> rbx single-def -; V03 arg3 [V03,T02] ( 3, 3 ) int -> rcx single-def +; V03 arg3 [V03,T03] ( 3, 3 ) int -> rcx single-def ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V05 tmp1 [V05,T03] ( 2, 4 ) ref -> rax single-def "arr expr" +; V05 tmp1 [V05,T02] ( 3, 6 ) ref -> rax single-def "arr expr" ; V06 cse0 [V06,T04] ( 3, 3 ) int -> r15 "CSE - aggressive" ; ; Lcl frame size = 0 G_M60089_IG01: push rbp push r15 push rbx lea rbp, [rsp+0x10] mov r15d, esi mov ebx, edx ;; size=14 bbWeight=1 PerfScore 4.00 G_M60089_IG02: mov edi, r15d mov esi, ecx mov rax, 0xD1FFAB1E ; code for System.Globalization.UmAlQuraCalendar:CheckYearRange(int,int) call [rax]System.Globalization.UmAlQuraCalendar:CheckYearRange(int,int) mov eax, ebx sub eax, 1 cmp eax, 11 ja SHORT G_M60089_IG05 mov rax, 0xD1FFAB1E ; const ptr mov rax, gword ptr [rax] add r15d, -0x526 - cmp r15d, 184 + cmp r15d, dword ptr [rax+0x08] jae SHORT G_M60089_IG04 mov edi, r15d shl rdi, 4 mov eax, dword ptr [rax+rdi+0x10] dec ebx mov edi, 30 mov ecx, 29 bt eax, ebx mov eax, ecx cmovb eax, edi - ;; size=87 bbWeight=1 PerfScore 13.75 + ;; size=84 bbWeight=1 PerfScore 16.50 G_M60089_IG03: pop rbx pop r15 pop rbp ret ;; size=5 bbWeight=1 PerfScore 2.50 G_M60089_IG04: call CORINFO_HELP_RNGCHKFAIL ;; size=5 bbWeight=0 PerfScore 0.00 G_M60089_IG05: mov edi, ebx mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentOutOfRange_Month(int) call [rax]System.ThrowHelper:ThrowArgumentOutOfRange_Month(int) int3 ;; size=15 bbWeight=0 PerfScore 0.00 -; Total bytes of code 126, prolog size 9, PerfScore 32.85, instruction count 37, allocated bytes for code 126 (MethodHash=e5e71546) for method System.Globalization.UmAlQuraCalendar:GetDaysInMonth(int,int,int):int:this (FullOpts) +; Total bytes of code 123, prolog size 9, PerfScore 35.30, instruction count 37, allocated bytes for code 123 (MethodHash=e5e71546) for method System.Globalization.UmAlQuraCalendar:GetDaysInMonth(int,int,int):int:this (FullOpts) ```
-3 (-5.08 % of base) - System.Number:UInt32ToDecStrForKnownSmallNumber(uint):System.String ```diff ; Assembly listing for method System.Number:UInt32ToDecStrForKnownSmallNumber(uint):System.String (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T00] ( 5, 4.50) int -> rdi single-def ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V02 tmp1 [V02,T01] ( 3, 5 ) ref -> rax class-hnd exact single-def "dup spill" +; V02 tmp1 [V02,T02] ( 3, 5 ) ref -> rax class-hnd exact single-def "dup spill" ;* V03 tmp2 [V03 ] ( 0, 0 ) ref -> zero-ref single-def -; V04 tmp3 [V04,T02] ( 2, 4 ) ref -> rax single-def "arr expr" +; V04 tmp3 [V04,T01] ( 3, 6 ) ref -> rax single-def "arr expr" ; ; Lcl frame size = 0 G_M45076_IG01: push rbp mov rbp, rsp ;; size=4 bbWeight=1 PerfScore 1.25 G_M45076_IG02: mov rax, 0xD1FFAB1E ; const ptr mov rax, gword ptr [rax] - cmp edi, 300 + cmp edi, dword ptr [rax+0x08] jae SHORT G_M45076_IG06 mov ecx, edi mov rax, gword ptr [rax+8*rcx+0x10] test rax, rax jne SHORT G_M45076_IG05 - ;; size=33 bbWeight=1 PerfScore 7.00 + ;; size=30 bbWeight=1 PerfScore 9.75 G_M45076_IG03: mov rax, 0xD1FFAB1E ; code for System.Number:g__CreateAndCacheString|70_0(uint):System.String ;; size=10 bbWeight=0.50 PerfScore 0.12 G_M45076_IG04: pop rbp tail.jmp [rax]System.Number:g__CreateAndCacheString|70_0(uint):System.String ;; size=4 bbWeight=0.50 PerfScore 1.25 G_M45076_IG05: pop rbp ret ;; size=2 bbWeight=0.50 PerfScore 0.75 G_M45076_IG06: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 -; Total bytes of code 59, prolog size 4, PerfScore 16.28, instruction count 17, allocated bytes for code 59 (MethodHash=283c4feb) for method System.Number:UInt32ToDecStrForKnownSmallNumber(uint):System.String (FullOpts) +; Total bytes of code 56, prolog size 4, PerfScore 18.73, instruction count 17, allocated bytes for code 56 (MethodHash=283c4feb) for method System.Number:UInt32ToDecStrForKnownSmallNumber(uint):System.String (FullOpts) ```
-2 (-2.67 % of base) - System.Number:g__CreateAndCacheString|70_0(uint):System.String ```diff ; Assembly listing for method System.Number:g__CreateAndCacheString|70_0(uint):System.String (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rsp based frame ; partially interruptible ; No PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T00] ( 5, 5 ) int -> rbx single-def ;* V01 loc0 [V01 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V03 tmp1 [V03,T02] ( 2, 4 ) ref -> r15 class-hnd exact single-def "impAppendStmt" -; V04 tmp2 [V04,T01] ( 3, 6 ) ref -> r14 class-hnd exact single-def "dup spill" +; V03 tmp1 [V03,T01] ( 3, 6 ) ref -> r15 class-hnd exact single-def "impAppendStmt" +; V04 tmp2 [V04,T02] ( 3, 6 ) ref -> r14 class-hnd exact single-def "dup spill" ; ; Lcl frame size = 0 G_M27827_IG01: push r15 push r14 push rbx mov ebx, edi ;; size=7 bbWeight=1 PerfScore 3.25 G_M27827_IG02: mov rdi, 0xD1FFAB1E ; const ptr mov r15, gword ptr [rdi] mov edi, ebx mov rax, 0xD1FFAB1E ; code for System.Number:UInt32ToDecStr_NoSmallNumberCheck(uint):System.String call [rax]System.Number:UInt32ToDecStr_NoSmallNumberCheck(uint):System.String mov r14, rax - cmp ebx, 300 + cmp ebx, dword ptr [r15+0x08] jae SHORT G_M27827_IG04 mov edi, ebx lea rdi, bword ptr [r15+8*rdi+0x10] mov rsi, r14 call CORINFO_HELP_ASSIGN_REF mov rax, r14 - ;; size=56 bbWeight=1 PerfScore 10.00 + ;; size=54 bbWeight=1 PerfScore 12.75 G_M27827_IG03: pop rbx pop r14 pop r15 ret ;; size=6 bbWeight=1 PerfScore 2.50 G_M27827_IG04: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 -; Total bytes of code 75, prolog size 5, PerfScore 23.25, instruction count 23, allocated bytes for code 75 (MethodHash=3035934c) for method System.Number:g__CreateAndCacheString|70_0(uint):System.String (FullOpts) +; Total bytes of code 73, prolog size 5, PerfScore 25.80, instruction count 23, allocated bytes for code 73 (MethodHash=3035934c) for method System.Number:g__CreateAndCacheString|70_0(uint):System.String (FullOpts) ```
-2 (-0.42 % of base) - System.Text.StringBuilder:AppendJoinCore[ubyte](byref,int,System.Collections.Generic.IEnumerable`1[ubyte]):System.Text.StringBuilder:this ```diff ; Assembly listing for method System.Text.StringBuilder:AppendJoinCore[ubyte](byref,int,System.Collections.Generic.IEnumerable`1[ubyte]):System.Text.StringBuilder:this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data ; 0 inlinees with PGO data; 4 single block inlinees; 4 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T03] ( 7, 17 ) ref -> rbx this class-hnd single-def +; V00 this [V00,T04] ( 7, 17 ) ref -> rbx this class-hnd single-def ; V01 arg1 [V01,T07] ( 3, 10 ) byref -> r15 single-def ; V02 arg2 [V02,T08] ( 3, 10 ) int -> r14 single-def ; V03 arg3 [V03,T10] ( 4, 4 ) ref -> rcx class-hnd single-def -; V04 loc0 [V04,T02] ( 9, 22 ) ref -> [rbp-0x20] class-hnd EH-live spill-single-def +; V04 loc0 [V04,T03] ( 9, 22 ) ref -> [rbp-0x20] class-hnd EH-live spill-single-def ;* V05 loc1 [V05 ] ( 0, 0 ) ubyte -> zero-ref ld-addr-op ; V06 loc2 [V06,T11] ( 2, 1 ) ref -> [rbp-0x28] must-init class-hnd exact EH-live single-def ;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V08 tmp1 [V08,T09] ( 4, 8 ) ref -> rsi class-hnd exact single-def "Inlining Arg" ; V09 tmp2 [V09,T01] ( 5, 24 ) ref -> rsi class-hnd "Inline return value spill temp" ; V10 tmp3 [V10,T00] ( 6, 64 ) int -> rax "Inlining Arg" -; V11 tmp4 [V11,T05] ( 2, 16 ) ref -> rsi class-hnd exact "dup spill" -; V12 tmp5 [V12,T04] ( 4, 16 ) ref -> rsi -; V13 tmp6 [V13,T06] ( 2, 16 ) ref -> rdi "arr expr" +; V11 tmp4 [V11,T06] ( 2, 16 ) ref -> rsi class-hnd exact "dup spill" +; V12 tmp5 [V12,T05] ( 4, 16 ) ref -> rsi +; V13 tmp6 [V13,T02] ( 3, 24 ) ref -> rdi "arr expr" ; V14 PSPSym [V14,T12] ( 1, 1 ) long -> [rbp-0x30] do-not-enreg[V] "PSPSym" ; ; Lcl frame size = 24 G_M27616_IG01: push rbp push r15 push r14 push rbx sub rsp, 24 lea rbp, [rsp+0x30] xor eax, eax mov qword ptr [rbp-0x28], rax mov qword ptr [rbp-0x30], rsp mov rbx, rdi mov r15, rsi mov r14d, edx ;; size=34 bbWeight=1 PerfScore 7.75 G_M27616_IG02: test rcx, rcx je G_M27616_IG21 mov rdi, rcx mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.IEnumerable`1[ubyte]:GetEnumerator():System.Collections.Generic.IEnumerator`1[ubyte]:this call [r11]System.Collections.Generic.IEnumerable`1[ubyte]:GetEnumerator():System.Collections.Generic.IEnumerator`1[ubyte]:this mov rdi, rax mov gword ptr [rbp-0x20], rdi ;; size=32 bbWeight=1 PerfScore 6.00 G_M27616_IG03: mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this test eax, eax jne SHORT G_M27616_IG04 mov gword ptr [rbp-0x28], rbx jmp G_M27616_IG15 ;; size=26 bbWeight=1 PerfScore 7.50 G_M27616_IG04: mov rdi, gword ptr [rbp-0x20] mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.IEnumerator`1[ubyte]:get_Current():ubyte:this call [r11]System.Collections.Generic.IEnumerator`1[ubyte]:get_Current():ubyte:this mov edi, eax mov rax, 0xD1FFAB1E ; code for System.Number:UInt32ToDecStr(uint):System.String call [rax]System.Number:UInt32ToDecStr(uint):System.String mov rsi, rax test rsi, rsi je SHORT G_M27616_IG05 mov edx, dword ptr [rsi+0x08] add rsi, 12 mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this call [rax]System.Text.StringBuilder:Append(byref,int):this ;; size=61 bbWeight=1 PerfScore 15.00 G_M27616_IG05: mov rdi, gword ptr [rbp-0x20] mov r11, 0xD1FFAB1E ; function address call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this test eax, eax je G_M27616_IG14 ;; size=25 bbWeight=1 PerfScore 5.50 G_M27616_IG06: mov rdi, rbx mov rsi, r15 mov edx, r14d mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this call [rax]System.Text.StringBuilder:Append(byref,int):this mov rdi, gword ptr [rbp-0x20] mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.IEnumerator`1[ubyte]:get_Current():ubyte:this call [r11]System.Collections.Generic.IEnumerator`1[ubyte]:get_Current():ubyte:this cmp eax, 300 jae SHORT G_M27616_IG13 ;; size=45 bbWeight=8 PerfScore 76.00 G_M27616_IG07: mov rdi, 0xD1FFAB1E ; const ptr mov rdi, gword ptr [rdi] - cmp eax, 300 + cmp eax, dword ptr [rdi+0x08] jae SHORT G_M27616_IG12 mov ecx, eax mov rsi, gword ptr [rdi+8*rcx+0x10] test rsi, rsi jne SHORT G_M27616_IG08 mov edi, eax mov rax, 0xD1FFAB1E ; code for System.Number:g__CreateAndCacheString|70_0(uint):System.String call [rax]System.Number:g__CreateAndCacheString|70_0(uint):System.String mov rsi, rax - ;; size=49 bbWeight=4 PerfScore 43.00 + ;; size=47 bbWeight=4 PerfScore 54.00 G_M27616_IG08: test rsi, rsi je SHORT G_M27616_IG10 ;; size=5 bbWeight=8 PerfScore 10.00 G_M27616_IG09: mov edx, dword ptr [rsi+0x08] add rsi, 12 mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Text.StringBuilder:Append(byref,int):this call [rax]System.Text.StringBuilder:Append(byref,int):this ;; size=22 bbWeight=4 PerfScore 23.00 G_M27616_IG10: mov rdi, gword ptr [rbp-0x20] mov r11, 0xD1FFAB1E ; code for System.Collections.IEnumerator:MoveNext():ubyte:this call [r11]System.Collections.IEnumerator:MoveNext():ubyte:this test eax, eax jne G_M27616_IG06 ;; size=25 bbWeight=8 PerfScore 44.00 G_M27616_IG11: jmp SHORT G_M27616_IG14 ;; size=2 bbWeight=1 PerfScore 2.00 G_M27616_IG12: call CORINFO_HELP_RNGCHKFAIL ;; size=5 bbWeight=0 PerfScore 0.00 G_M27616_IG13: mov edi, eax mov rax, 0xD1FFAB1E ; code for System.Number:UInt32ToDecStr_NoSmallNumberCheck(uint):System.String call [rax]System.Number:UInt32ToDecStr_NoSmallNumberCheck(uint):System.String mov rsi, rax jmp SHORT G_M27616_IG08 ;; size=19 bbWeight=4 PerfScore 23.00 G_M27616_IG14: mov rdi, gword ptr [rbp-0x20] mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this call [r11]System.IDisposable:Dispose():this jmp SHORT G_M27616_IG19 ;; size=19 bbWeight=1 PerfScore 6.25 G_M27616_IG15: mov rdi, rsp call G_M27616_IG22 ;; size=8 bbWeight=1 PerfScore 1.25 G_M27616_IG16: nop ;; size=1 bbWeight=1 PerfScore 0.25 G_M27616_IG17: mov rax, gword ptr [rbp-0x28] ;; size=4 bbWeight=1 PerfScore 1.00 G_M27616_IG18: add rsp, 24 pop rbx pop r14 pop r15 pop rbp ret ;; size=11 bbWeight=1 PerfScore 3.25 G_M27616_IG19: mov rax, rbx ;; size=3 bbWeight=1 PerfScore 0.25 G_M27616_IG20: add rsp, 24 pop rbx pop r14 pop r15 pop rbp ret ;; size=11 bbWeight=1 PerfScore 3.25 G_M27616_IG21: mov edi, 6 mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int) call [rax]System.ThrowHelper:ThrowArgumentNullException(int) int3 ;; size=18 bbWeight=0 PerfScore 0.00 G_M27616_IG22: push rbp push r15 push r14 push rbx push rax mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x30] ;; size=18 bbWeight=1 PerfScore 8.50 G_M27616_IG23: mov rdi, gword ptr [rbp-0x20] test rdi, rdi je SHORT G_M27616_IG24 mov r11, 0xD1FFAB1E ; code for System.IDisposable:Dispose():this call [r11]System.IDisposable:Dispose():this ;; size=22 bbWeight=1 PerfScore 5.50 G_M27616_IG24: nop ;; size=1 bbWeight=1 PerfScore 0.25 G_M27616_IG25: add rsp, 8 pop rbx pop r14 pop r15 pop rbp ret ;; size=11 bbWeight=1 PerfScore 3.25 -; Total bytes of code 477, prolog size 34, PerfScore 343.45, instruction count 130, allocated bytes for code 477 (MethodHash=dab5941f) for method System.Text.StringBuilder:AppendJoinCore[ubyte](byref,int,System.Collections.Generic.IEnumerable`1[ubyte]):System.Text.StringBuilder:this (FullOpts) +; Total bytes of code 475, prolog size 34, PerfScore 354.25, instruction count 130, allocated bytes for code 475 (MethodHash=dab5941f) for method System.Text.StringBuilder:AppendJoinCore[ubyte](byref,int,System.Collections.Generic.IEnumerable`1[ubyte]):System.Text.StringBuilder:this (FullOpts) ```
-1 (-0.57 % of base) - System.Globalization.HebrewNumber:ParseByChar(ushort,byref):int ```diff ; Assembly listing for method System.Globalization.HebrewNumber:ParseByChar(ushort,byref):int (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T01] ( 3, 3 ) ushort -> rdi single-def ; V01 arg1 [V01,T00] ( 6, 4 ) byref -> rsi single-def -; V02 loc0 [V02,T05] ( 5, 2.50) short -> registers -; V03 loc1 [V03,T06] ( 5, 2.50) int -> rax +; V02 loc0 [V02,T07] ( 5, 2.50) short -> registers +; V03 loc1 [V03,T02] ( 6, 3 ) int -> rax ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V05 tmp1 [V05,T03] ( 3, 3 ) byref -> rdi single-def "dup spill" -; V06 tmp2 [V06,T10] ( 2, 2 ) int -> rax "Single return block return value" -; V07 tmp3 [V07,T07] ( 2, 2 ) ref -> rdx single-def "arr expr" -; V08 tmp4 [V08,T08] ( 2, 2 ) ref -> rcx single-def "arr expr" -; V09 tmp5 [V09,T09] ( 2, 2 ) ref -> rax single-def "arr expr" -; V10 tmp6 [V10,T04] ( 3, 3 ) int -> rcx "index expr" -; V11 cse0 [V11,T11] ( 3, 1.50) ref -> rcx "CSE - moderate" -; V12 cse1 [V12,T12] ( 3, 1.50) int -> rcx "CSE - moderate" -; V13 cse2 [V13,T02] ( 4, 3 ) int -> rax "CSE - moderate" +; V05 tmp1 [V05,T04] ( 3, 3 ) byref -> rdi single-def "dup spill" +; V06 tmp2 [V06,T11] ( 2, 2 ) int -> rax "Single return block return value" +; V07 tmp3 [V07,T09] ( 2, 2 ) ref -> rdi single-def "arr expr" +; V08 tmp4 [V08,T10] ( 2, 2 ) ref -> rcx single-def "arr expr" +; V09 tmp5 [V09,T05] ( 3, 3 ) ref -> rax single-def "arr expr" +; V10 tmp6 [V10,T06] ( 3, 3 ) int -> rcx "index expr" +; V11 cse0 [V11,T12] ( 3, 1.50) int -> rdx "CSE - moderate" +; V12 cse1 [V12,T08] ( 4, 2 ) ref -> rcx "CSE - moderate" +; V13 cse2 [V13,T13] ( 3, 1.50) int -> rcx "CSE - moderate" +; V14 cse3 [V14,T03] ( 4, 3 ) int -> rax "CSE - moderate" ; ; Lcl frame size = 0 G_M56435_IG01: push rbp mov rbp, rsp ;; size=4 bbWeight=1 PerfScore 1.25 G_M56435_IG02: movzx rax, di cmp eax, 39 jne SHORT G_M56435_IG04 ;; size=8 bbWeight=1 PerfScore 1.50 G_M56435_IG03: mov ecx, 8 jmp SHORT G_M56435_IG06 ;; size=7 bbWeight=0.50 PerfScore 1.12 G_M56435_IG04: cmp eax, 34 jne SHORT G_M56435_IG05 mov ecx, 9 jmp SHORT G_M56435_IG06 ;; size=12 bbWeight=0.50 PerfScore 1.75 G_M56435_IG05: add eax, -0x5D0 js SHORT G_M56435_IG08 mov rcx, 0xD1FFAB1E ; const ptr mov rcx, gword ptr [rcx] - mov edx, 27 + mov edx, dword ptr [rcx+0x08] cmp edx, eax jle SHORT G_M56435_IG08 - mov rdx, rcx - mov edi, eax - movsx rdx, word ptr [rdx+4*rdi+0x10] + mov rdi, rcx + cmp eax, edx + jae SHORT G_M56435_IG14 + mov edx, eax + movsx rdx, word ptr [rdi+4*rdx+0x10] cmp edx, -1 je SHORT G_M56435_IG08 lea rdi, bword ptr [rsi+0x04] movsx rax, word ptr [rcx+4*rax+0x12] add dword ptr [rdi], eax mov ecx, edx - ;; size=59 bbWeight=0.50 PerfScore 9.25 + ;; size=61 bbWeight=0.50 PerfScore 10.75 G_M56435_IG06: mov rax, 0xD1FFAB1E ; const ptr mov rax, gword ptr [rax] movsx rdx, byte ptr [rsi] lea edx, [rdx+4*rdx] lea ecx, [rcx+2*rdx] - cmp ecx, 170 + cmp ecx, dword ptr [rax+0x08] jae SHORT G_M56435_IG14 movsx rax, byte ptr [rax+rcx+0x10] mov byte ptr [rsi], al movsx rcx, byte ptr [rsi] cmp ecx, -1 jne SHORT G_M56435_IG10 xor eax, eax - ;; size=50 bbWeight=0.50 PerfScore 9.50 + ;; size=47 bbWeight=0.50 PerfScore 10.88 G_M56435_IG07: pop rbp ret ;; size=2 bbWeight=0.50 PerfScore 0.75 G_M56435_IG08: mov eax, 1 ;; size=5 bbWeight=0.50 PerfScore 0.12 G_M56435_IG09: pop rbp ret ;; size=2 bbWeight=0.50 PerfScore 0.75 G_M56435_IG10: cmp ecx, 100 jne SHORT G_M56435_IG12 mov eax, 2 ;; size=10 bbWeight=0.50 PerfScore 0.75 G_M56435_IG11: pop rbp ret ;; size=2 bbWeight=0.50 PerfScore 0.75 G_M56435_IG12: mov eax, 3 ;; size=5 bbWeight=0.50 PerfScore 0.12 G_M56435_IG13: pop rbp ret ;; size=2 bbWeight=0.50 PerfScore 0.75 G_M56435_IG14: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 -; Total bytes of code 174, prolog size 4, PerfScore 45.78, instruction count 55, allocated bytes for code 174 (MethodHash=5960238c) for method System.Globalization.HebrewNumber:ParseByChar(ushort,byref):int (FullOpts) +; Total bytes of code 173, prolog size 4, PerfScore 48.55, instruction count 57, allocated bytes for code 173 (MethodHash=5960238c) for method System.Globalization.HebrewNumber:ParseByChar(ushort,byref):int (FullOpts) ```
MihuBot commented 8 months ago

@EgorBo