Skip to content

Do not value number locals on the LHS - #65902

Merged
kunalspathak merged 4 commits into
dotnet:mainfrom
SingleAccretion:Copy-Propagation-No-Lhs-VN
Mar 2, 2022
Merged

Do not value number locals on the LHS#65902
kunalspathak merged 4 commits into
dotnet:mainfrom
SingleAccretion:Copy-Propagation-No-Lhs-VN

Conversation

@SingleAccretion

@SingleAccretionSingleAccretion commented Feb 25, 2022

Copy link
Copy Markdown
Contributor

The last of the copy propagation changes - do not number locals on the LHS and update copy propagation to account for that.

Two commits: first is the refactoring itself, second is the removal of the quirk for structs, that is also where some positive diffs for this change will come from.

Contributes to #10873.

@ghostghost added community-contribution Indicates that the PR has been added by a community member area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labels Feb 25, 2022
@ghost

Copy link
Copy Markdown

Tagging subscribers to this area: @JulieLeeMSFT
See info in area-owners.md if you want to be subscribed.

Issue Details

The last of the copy propagation changes - do not number locals on the LHS and update copy propagation to account for that.

Two commits: first is the refactoring itself, second is the removal of the quirk for structs, that is also where some positive diffs for this change will come from.

Contributes to #10873.

Author:SingleAccretion
Assignees:-
Labels:

area-CodeGen-coreclr, community-contribution

Milestone:-

@SingleAccretion

SingleAccretion commented Feb 25, 2022

Copy link
Copy Markdown
ContributorAuthor

For reference, here are the code size/PerfScore diffs I get for benchmarks.run.windows.x64 when removing the PHI quirk:

Summary of CodeSizediffs:
(Lower is better)
Total bytes of base: 13403026 (overridden on cmd)
Total bytes of diff: 13400341 (overridden on cmd)
Total bytes of delta: -2685 (-0.02% of base)
diff is an improvement.
relative diff is an improvement.
Top file regressions (bytes):214:11803.dasm (2.15% of base)
164:13559.dasm (2.92% of base)
164:13553.dasm (2.92% of base)
73:41551.dasm (3.31% of base)
55:13624.dasm (0.77% of base)
39:7888.dasm (0.36% of base)
34:44300.dasm (2.27% of base)
33:18513.dasm (0.94% of base)
25:2040.dasm (1.14% of base)
10:7258.dasm (0.62% of base)
10:17181.dasm (1.52% of base)
10:41521.dasm (0.62% of base)
9:14120.dasm (0.24% of base)
8:14612.dasm (3.10% of base)
8:19834.dasm (0.43% of base)
8:3228.dasm (2.61% of base)
8:14621.dasm (3.19% of base)
8:2227.dasm (5.10% of base)
8:10062.dasm (1.70% of base)
8:6206.dasm (2.16% of base)
Top file improvements (bytes):-238:7426.dasm (-2.12% of base)
-230:22721.dasm (-6.87% of base)
-230:7245.dasm (-6.91% of base)
-128:1887.dasm (-1.71% of base)
-127:7232.dasm (-9.79% of base)
-108:11615.dasm (-7.54% of base)
-104:21891.dasm (-5.84% of base)
-72:17442.dasm (-2.57% of base)
-65:7437.dasm (-1.63% of base)
-64:1613.dasm (-0.58% of base)
-55:19804.dasm (-15.80% of base)
-55:39877.dasm (-3.62% of base)
-55:11970.dasm (-2.50% of base)
-52:23169.dasm (-3.81% of base)
-51:8045.dasm (-18.48% of base)
-49:3545.dasm (-1.03% of base)
-49:23951.dasm (-1.04% of base)
-48:2331.dasm (-0.78% of base)
-48:4224.dasm (-2.98% of base)
-44:20306.dasm (-3.92% of base)
305 total files withCodeSize differences (219 improved, 86 regressed), 81 unchanged.
Top method regressions (bytes):214 ( 2.15% of base) :11803.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
164 ( 2.92% of base) :13559.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
164 ( 2.92% of base) :13553.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
73 ( 3.31% of base) :41551.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
55 ( 0.77% of base) :13624.dasm -Jil.Deserialize.Methods:_ReadISO8601DateWithOffset(System.IO.TextReader,System.Char[]):System.DateTimeOffset39 ( 0.36% of base) :7888.dasm -Jil.Deserialize.Methods:_ReadISO8601DateWithOffsetThunkReader(byref,System.Char[]):System.DateTimeOffset34 ( 2.27% of base) :44300.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
33 ( 0.94% of base) :18513.dasm -Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseNamespaceBody(byref,byref,byref,ushort):this25 ( 1.14% of base) :2040.dasm -System.Globalization.TimeSpanFormat:TryFormatStandard(System.TimeSpan,int,System.String,System.Span`1[Char],byref):bool
10 ( 0.62% of base) :7258.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
10 ( 0.62% of base) :41521.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
10 ( 1.52% of base) :17181.dasm -System.Buffers.ReadOnlySequence`1[Byte][System.Byte]:Slice(long,System.SequencePosition):System.Buffers.ReadOnlySequence`1[Byte]:this9 ( 0.24% of base) :14120.dasm - <WriteToFileAsync>d__88:MoveNext():this8 ( 3.10% of base) :14612.dasm -<>c:<BeginReadInternal>b__38_0(System.Object):int:this8 ( 3.19% of base) :14621.dasm -<>c:<BeginWriteInternal>b__48_0(System.Object):int:this8 ( 0.43% of base) :19834.dasm -Microsoft.CodeAnalysis.CSharp.Binder:CheckValue(Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this8 ( 1.70% of base) :10062.dasm -Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(System.Char[],int,int,byref):int
8 ( 2.61% of base) :3228.dasm -System.IO.MemoryStream:Read(System.Byte[],int,int):int:this8 ( 2.16% of base) :6206.dasm -System.Net.Http.QPack.QPackEncoder:EncodeLiteralHeaderFieldWithStaticNameReferenceToArray(int,System.String):System.Byte[]
8 ( 5.10% of base) :2227.dasm -System.Reflection.Emit.MethodBuilder:GetMethodSignature():System.Reflection.Emit.SignatureHelper:thisTop method improvements (bytes):-238 (-2.12% of base) :7426.dasm -MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,bool,bool,bool):MessagePack.Internal.ObjectSerializationInfo-230 (-6.91% of base) :7245.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
-230 (-6.87% of base) :22721.dasm -DynamicClass:Regex3_Go(System.Text.RegularExpressions.RegexRunner)
-128 (-1.71% of base) :1887.dasm -System.DateTimeFormat:FormatCustomized(System.DateTime,System.ReadOnlySpan`1[Char],System.Globalization.DateTimeFormatInfo,System.TimeSpan,System.Text.StringBuilder):System.Text.StringBuilder-127 (-9.79% of base) :7232.dasm -System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[Byte],int,System.Span`1[Char],int,System.Text.DecoderNLS):int:this-108 (-7.54% of base) :11615.dasm -System.Numerics.BigIntegerCalculator:Gcd(System.Span`1[UInt32],System.Span`1[UInt32])
-104 (-5.84% of base) :21891.dasm -System.Numerics.BigInteger:Multiply(System.ReadOnlySpan`1[UInt32],int,System.ReadOnlySpan`1[UInt32],int):System.Numerics.BigInteger-72 (-2.57% of base) :17442.dasm -System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,int,int,int,System.Diagnostics.Tracing.EventParameterInfo[]):System.Byte[]:this-65 (-1.63% of base) :7437.dasm -MessagePack.Internal.DynamicObjectTypeBuilder:BuildSerialize(System.Type,MessagePack.Internal.ObjectSerializationInfo,System.Reflection.Emit.ILGenerator,System.Action,System.Func`3[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[MessagePack.Internal.ObjectSerializationInfo+EmittableMember, MessagePack, Version=1.9.0.0, Culture=neutral, PublicKeyToken=b4a0369545f0a1be],[System.Action, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],int)
-64 (-0.58% of base) :1613.dasm -System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this-55 (-3.62% of base) :39877.dasm -Algorithms.VectorFloatRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this-55 (-15.80% of base) :19804.dasm -Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker:DefaultVisit(Microsoft.CodeAnalysis.SyntaxNode):this-55 (-2.50% of base) :11970.dasm -System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this-52 (-3.81% of base) :23169.dasm -System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[Char],int,System.Span`1[Byte],int,System.Text.EncoderNLS):int:this-51 (-18.48% of base) :8045.dasm -System.Linq.Expressions.Compiler.LambdaCompiler:GetParameterTypes(System.Linq.Expressions.LambdaExpression,System.Type):System.Type[]
-49 (-1.04% of base) :23951.dasm -System.Memory.Slice`1[Byte][System.Byte]:MemoryStartLengthSpan():System.Memory`1[Byte]:this-49 (-1.03% of base) :3545.dasm -System.Memory.Slice`1[Byte][System.Byte]:ReadOnlyMemoryStartLengthSpan():System.ReadOnlyMemory`1[Byte]:this-48 (-0.78% of base) :2331.dasm -Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:BuildSerialize(System.Type,Utf8Json.Internal.Emit.MetaType,System.Reflection.Emit.ILGenerator,System.Action,System.Func`3[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Utf8Json.Internal.Emit.MetaMember, Utf8Json, Version=1.3.7.0, Culture=neutral, PublicKeyToken=8a73d3ba7e392e27],[System.Boolean, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],bool,bool,int)
-48 (-2.98% of base) :4224.dasm -WorkerThread:WorkerThreadStart()
-44 (-3.92% of base) :20306.dasm -Microsoft.CodeAnalysis.SyntaxNavigator:GetFirstToken(Microsoft.CodeAnalysis.SyntaxNode,System.Func`2[SyntaxToken,Boolean],System.Func`2[SyntaxTrivia,Boolean]):Microsoft.CodeAnalysis.SyntaxToken:thisTop method regressions (percentages):8 ( 5.10% of base) :2227.dasm -System.Reflection.Emit.MethodBuilder:GetMethodSignature():System.Reflection.Emit.SignatureHelper:this7 ( 3.66% of base) :44169.dasm -Enumerator[Int32,Int32][System.Int32,System.Int32]:PushLeft(Node[Int32,Int32]):this3 ( 3.45% of base) :21570.dasm -System.Text.Tests.Perf_StringBuilder:ctor_string(int):System.Text.StringBuilder:this73 ( 3.31% of base) :41551.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
8 ( 3.19% of base) :14621.dasm -<>c:<BeginWriteInternal>b__48_0(System.Object):int:this8 ( 3.10% of base) :14612.dasm -<>c:<BeginReadInternal>b__38_0(System.Object):int:this164 ( 2.92% of base) :13559.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
164 ( 2.92% of base) :13553.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
8 ( 2.61% of base) :3228.dasm -System.IO.MemoryStream:Read(System.Byte[],int,int):int:this34 ( 2.27% of base) :44300.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
8 ( 2.16% of base) :6206.dasm -System.Net.Http.QPack.QPackEncoder:EncodeLiteralHeaderFieldWithStaticNameReferenceToArray(int,System.String):System.Byte[]
214 ( 2.15% of base) :11803.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
3 ( 2.05% of base) :11718.dasm -Enumerator[__Canon,__Canon][System.__Canon,System.__Canon]:PushLeft(Node[__Canon,__Canon]):this3 ( 2.05% of base) :5437.dasm -Enumerator[HashBucket][System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.__Canon]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[HashBucket]):this3 ( 1.89% of base) :13980.dasm -Enumerator[__Canon][System.__Canon]:PushNext(Node[__Canon]):this2 ( 1.83% of base) :21866.dasm -V8.Crypto.BigInteger:copyTo(V8.Crypto.BigInteger):this3 ( 1.81% of base) :9360.dasm -Enumerator[__Canon][System.__Canon]:PushNext(Node[__Canon]):this7 ( 1.79% of base) :2478.dasm -Utf8Json.JsonReader:ReadInt64():long:this8 ( 1.70% of base) :10062.dasm -Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(System.Char[],int,int,byref):int
3 ( 1.69% of base) :41898.dasm -Enumerator[HashBucket][System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.Int32,System.Int32]]:PushLeft(System.Collections.Immutable.SortedInt32KeyNode`1[HashBucket]):thisTop method improvements (percentages):-51 (-18.48% of base) :8045.dasm -System.Linq.Expressions.Compiler.LambdaCompiler:GetParameterTypes(System.Linq.Expressions.LambdaExpression,System.Type):System.Type[]
-55 (-15.80% of base) :19804.dasm -Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker:DefaultVisit(Microsoft.CodeAnalysis.SyntaxNode):this-29 (-10.32% of base) :4688.dasm -System.Text.Encodings.Web.AllowedBmpCodePointsBitmap:ForbidUndefinedCharacters():this-127 (-9.79% of base) :7232.dasm -System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[Byte],int,System.Span`1[Char],int,System.Text.DecoderNLS):int:this-18 (-8.26% of base) :9989.dasm -FractalPerf.Mandelbrot:Render():double:this-108 (-7.54% of base) :11615.dasm -System.Numerics.BigIntegerCalculator:Gcd(System.Span`1[UInt32],System.Span`1[UInt32])
-39 (-7.00% of base) :5675.dasm -System.IO.Compression.BrotliStream:WriteCore(System.ReadOnlySpan`1[Byte],bool):this-230 (-6.91% of base) :7245.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
-230 (-6.87% of base) :22721.dasm -DynamicClass:Regex3_Go(System.Text.RegularExpressions.RegexRunner)
-11 (-6.55% of base) :9879.dasm -System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[UInt64][System.UInt64]:FirstCounterInfo():System.ValueTuple`2[[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.UInt64, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Text.RegularExpressions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a],[System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[[System.UInt64, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Text.RegularExpressions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]:this-30 (-6.38% of base) :12911.dasm -System.Runtime.Serialization.BitFlagsGenerator:.ctor(int,System.Runtime.Serialization.CodeGenerator,System.String):this-10 (-6.37% of base) :7828.dasm -SelectListIterator`2[__Canon,__Canon][System.__Canon,System.__Canon]:ToArray():System.__Canon[]:this-18 (-6.32% of base) :19436.dasm -Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:GetInterfaceInfo():InterfaceInfo:this-33 (-6.25% of base) :20248.dasm -Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:Translate(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CSharp.BoundArgListOperator,bool):Microsoft.Cci.IMethodReference:this-14 (-6.25% of base) :1346.dasm -System.Reflection.AssemblyName:Clone():System.Object:this-104 (-5.84% of base) :21891.dasm -System.Numerics.BigInteger:Multiply(System.ReadOnlySpan`1[UInt32],int,System.ReadOnlySpan`1[UInt32],int):System.Numerics.BigInteger-8 (-4.42% of base) :9682.dasm -System.Collections.Generic.List`1[KeyValuePair`2][System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:ConvertAll(System.Converter`2[KeyValuePair`2,__Canon]):System.Collections.Generic.List`1[__Canon]:this-28 (-4.20% of base) :15213.dasm -System.IO.Compression.Brotli:Compress_WithState():System.Span`1[Byte]:this-15 (-4.19% of base) :5130.dasm -ThreadCounts:InterlockedSetNumThreadsGoal(short):ThreadCounts:this-37 (-4.13% of base) :19265.dasm -System.Reflection.Metadata.MetadataReader:InitializeNestedTypesMap():this305 total methods withCodeSize differences (219 improved, 86 regressed), 81 unchanged.
Summary of PerfScorediffs:
(Lower is better)
TotalPerfScoreUnits of base: 4343726501.63TotalPerfScoreUnits of diff: 4159143780.580001TotalPerfScoreUnits of delta: -184582721.05 (-4.25% of base)
Total relative delta: -1.99
diff is an improvement.
relative diff is an improvement.
Top file regressions (PerfScoreUnits):744.30:40712.dasm (6.19% of base)
744.20:39877.dasm (4.87% of base)
95.65:11803.dasm (0.26% of base)
65.80:9989.dasm (2.39% of base)
61.85:43959.dasm (0.52% of base)
58.40:13553.dasm (1.15% of base)
58.40:13559.dasm (1.15% of base)
48.60:2444.dasm (0.01% of base)
38.80:41551.dasm (1.01% of base)
19.00:15398.dasm (0.60% of base)
18.90:44300.dasm (1.99% of base)
13.60:43038.dasm (0.43% of base)
13.60:13587.dasm (0.43% of base)
13.60:15396.dasm (0.43% of base)
12.80:17302.dasm (0.40% of base)
12.23:2040.dasm (2.26% of base)
12.05:15397.dasm (0.35% of base)
10.70:13599.dasm (0.33% of base)
10.50:13590.dasm (0.31% of base)
10.30:10000.dasm (0.31% of base)
Top file improvements (PerfScoreUnits):-184551466.05:2331.dasm (-4.38% of base)
-31106.90:7426.dasm (-1.06% of base)
-512.60:18756.dasm (-0.00% of base)
-172.80:4224.dasm (-1.98% of base)
-145.70:4055.dasm (-1.41% of base)
-138.50:22721.dasm (-4.06% of base)
-138.50:7245.dasm (-4.07% of base)
-65.30:59.dasm (-0.11% of base)
-63.65:17442.dasm (-3.11% of base)
-49.25:7232.dasm (-6.88% of base)
-46.30:1887.dasm (-0.96% of base)
-39.20:11615.dasm (-1.17% of base)
-37.70:18937.dasm (-0.15% of base)
-29.10:8045.dasm (-15.93% of base)
-24.95:7437.dasm (-1.80% of base)
-22.95:23169.dasm (-3.63% of base)
-22.50:41540.dasm (-1.93% of base)
-22.30:9695.dasm (-0.16% of base)
-20.80:19804.dasm (-7.66% of base)
-20.80:3120.dasm (-4.69% of base)
312 total files withPerfScore differences (214 improved, 98 regressed), 74 unchanged.
Top method regressions (PerfScoreUnits):744.30 ( 6.19% of base) :40712.dasm -Algorithms.VectorDoubleRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this744.20 ( 4.87% of base) :39877.dasm -Algorithms.VectorFloatRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this95.65 ( 0.26% of base) :11803.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
65.80 ( 2.39% of base) :9989.dasm -FractalPerf.Mandelbrot:Render():double:this61.85 ( 0.52% of base) :43959.dasm -System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[Char],System.ReadOnlySpan`1[Char],bool,bool):bool
58.40 ( 1.15% of base) :13553.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
58.40 ( 1.15% of base) :13559.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
48.60 ( 0.01% of base) :2444.dasm -System.Reflection.Emit.TypeBuilder:CreateTypeNoLock():System.Reflection.TypeInfo:this38.80 ( 1.01% of base) :41551.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
19.00 ( 0.60% of base) :15398.dasm -MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerItemTaskFormatter3:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerItemTask:this18.90 ( 1.99% of base) :44300.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
13.60 ( 0.43% of base) :13587.dasm -MessagePack.Formatters.MicroBenchmarks_Serializers_IndexViewModelFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.IndexViewModel:this13.60 ( 0.43% of base) :43038.dasm -MessagePack.Formatters.MicroBenchmarks_Serializers_LoginViewModelFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.LoginViewModel:this13.60 ( 0.43% of base) :15396.dasm -MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerViewModelFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerViewModel:this12.80 ( 0.40% of base) :17302.dasm -MessagePack.Formatters.MicroBenchmarks_Serializers_CollectionsOfPrimitivesFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.CollectionsOfPrimitives:this12.23 ( 2.26% of base) :2040.dasm -System.Globalization.TimeSpanFormat:TryFormatStandard(System.TimeSpan,int,System.String,System.Span`1[Char],byref):bool
12.05 ( 0.35% of base) :15397.dasm -MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerItemFormatter2:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerItem:this10.70 ( 0.33% of base) :13599.dasm -MessagePack.Formatters.MicroBenchmarks_Serializers_CampaignSummaryViewModelFormatter3:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.CampaignSummaryViewModel:this10.50 ( 0.31% of base) :13590.dasm -MessagePack.Formatters.MicroBenchmarks_Serializers_ActiveOrUpcomingEventFormatter2:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:this10.30 ( 0.31% of base) :10000.dasm -MessagePack.Formatters.MicroBenchmarks_Serializers_LocationFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.Location:thisTop method improvements (PerfScoreUnits):-184551466.05 (-4.38% of base) :2331.dasm -Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:BuildSerialize(System.Type,Utf8Json.Internal.Emit.MetaType,System.Reflection.Emit.ILGenerator,System.Action,System.Func`3[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Utf8Json.Internal.Emit.MetaMember, Utf8Json, Version=1.3.7.0, Culture=neutral, PublicKeyToken=8a73d3ba7e392e27],[System.Boolean, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],bool,bool,int)
-31106.90 (-1.06% of base) :7426.dasm -MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,bool,bool,bool):MessagePack.Internal.ObjectSerializationInfo-512.60 (-0.00% of base) :18756.dasm -SelectManySingleSelectorIterator`2[__Canon,ReferenceDirective][System.__Canon,Microsoft.CodeAnalysis.ReferenceDirective]:ToArray():Microsoft.CodeAnalysis.ReferenceDirective[]:this-172.80 (-1.98% of base) :4224.dasm -WorkerThread:WorkerThreadStart()
-145.70 (-1.41% of base) :4055.dasm -GateThread:GateThreadStart()
-138.50 (-4.07% of base) :7245.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
-138.50 (-4.06% of base) :22721.dasm -DynamicClass:Regex3_Go(System.Text.RegularExpressions.RegexRunner)
-65.30 (-0.11% of base) :59.dasm -System.Text.Unicode.Utf8Utility:TranscodeToUtf8(long,int,long,int,byref,byref):int
-63.65 (-3.11% of base) :17442.dasm -System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,int,int,int,System.Diagnostics.Tracing.EventParameterInfo[]):System.Byte[]:this-49.25 (-6.88% of base) :7232.dasm -System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[Byte],int,System.Span`1[Char],int,System.Text.DecoderNLS):int:this-46.30 (-0.96% of base) :1887.dasm -System.DateTimeFormat:FormatCustomized(System.DateTime,System.ReadOnlySpan`1[Char],System.Globalization.DateTimeFormatInfo,System.TimeSpan,System.Text.StringBuilder):System.Text.StringBuilder-39.20 (-1.17% of base) :11615.dasm -System.Numerics.BigIntegerCalculator:Gcd(System.Span`1[UInt32],System.Span`1[UInt32])
-37.70 (-0.15% of base) :18937.dasm -Microsoft.CodeAnalysis.CommonReferenceManager`2[__Canon,__Canon][System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[__Canon],int):this-29.10 (-15.93% of base) :8045.dasm -System.Linq.Expressions.Compiler.LambdaCompiler:GetParameterTypes(System.Linq.Expressions.LambdaExpression,System.Type):System.Type[]
-24.95 (-1.80% of base) :7437.dasm -MessagePack.Internal.DynamicObjectTypeBuilder:BuildSerialize(System.Type,MessagePack.Internal.ObjectSerializationInfo,System.Reflection.Emit.ILGenerator,System.Action,System.Func`3[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[MessagePack.Internal.ObjectSerializationInfo+EmittableMember, MessagePack, Version=1.9.0.0, Culture=neutral, PublicKeyToken=b4a0369545f0a1be],[System.Action, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],int)
-22.95 (-3.63% of base) :23169.dasm -System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[Char],int,System.Span`1[Byte],int,System.Text.EncoderNLS):int:this-22.50 (-1.93% of base) :41540.dasm -DynamicClass:Regex9_Go(System.Text.RegularExpressions.RegexRunner)
-22.30 (-0.16% of base) :9695.dasm -DynamicClass:Regex4_Go(System.Text.RegularExpressions.RegexRunner)
-20.80 (-7.66% of base) :19804.dasm -Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker:DefaultVisit(Microsoft.CodeAnalysis.SyntaxNode):this-20.80 (-4.69% of base) :3120.dasm -System.Uri:Compress(System.Span`1[Char],System.UriParser):int
Top method regressions (percentages):744.30 ( 6.19% of base) :40712.dasm -Algorithms.VectorDoubleRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this744.20 ( 4.87% of base) :39877.dasm -Algorithms.VectorFloatRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this2.80 ( 3.91% of base) :14621.dasm -<>c:<BeginWriteInternal>b__48_0(System.Object):int:this2.80 ( 3.78% of base) :14612.dasm -<>c:<BeginReadInternal>b__38_0(System.Object):int:this65.80 ( 2.39% of base) :9989.dasm -FractalPerf.Mandelbrot:Render():double:this12.23 ( 2.26% of base) :2040.dasm -System.Globalization.TimeSpanFormat:TryFormatStandard(System.TimeSpan,int,System.String,System.Span`1[Char],byref):bool
1.30 ( 2.23% of base) :2227.dasm -System.Reflection.Emit.MethodBuilder:GetMethodSignature():System.Reflection.Emit.SignatureHelper:this18.90 ( 1.99% of base) :44300.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
2.30 ( 1.98% of base) :3228.dasm -System.IO.MemoryStream:Read(System.Byte[],int,int):int:this0.43 ( 1.69% of base) :21570.dasm -System.Text.Tests.Perf_StringBuilder:ctor_string(int):System.Text.StringBuilder:this2.00 ( 1.44% of base) :17181.dasm -System.Buffers.ReadOnlySequence`1[Byte][System.Byte]:Slice(long,System.SequencePosition):System.Buffers.ReadOnlySequence`1[Byte]:this8.40 ( 1.18% of base) :19659.dasm -Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSequentialOnPartialType(Microsoft.CodeAnalysis.DiagnosticBag):this58.40 ( 1.15% of base) :13553.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
58.40 ( 1.15% of base) :13559.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
1.20 ( 1.14% of base) :21866.dasm -V8.Crypto.BigInteger:copyTo(V8.Crypto.BigInteger):this0.35 ( 1.12% of base) :22571.dasm -System.Collections.IndexerSetReverse`1[Int32][System.Int32]:Span():int:this1.10 ( 1.11% of base) :15147.dasm -System.Collections.CreateAddAndClear`1[__Canon][System.__Canon]:Array():System.__Canon[]:this38.80 ( 1.01% of base) :41551.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
1.10 ( 0.97% of base) :593.dasm -System.Linq.OrderedEnumerable`1[__Canon][System.__Canon]:ToArray():System.__Canon[]:this0.80 ( 0.88% of base) :6206.dasm -System.Net.Http.QPack.QPackEncoder:EncodeLiteralHeaderFieldWithStaticNameReferenceToArray(int,System.String):System.Byte[]
Top method improvements (percentages):-29.10 (-15.93% of base) :8045.dasm -System.Linq.Expressions.Compiler.LambdaCompiler:GetParameterTypes(System.Linq.Expressions.LambdaExpression,System.Type):System.Type[]
-20.80 (-7.66% of base) :19804.dasm -Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker:DefaultVisit(Microsoft.CodeAnalysis.SyntaxNode):this-49.25 (-6.88% of base) :7232.dasm -System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[Byte],int,System.Span`1[Char],int,System.Text.DecoderNLS):int:this-20.30 (-6.65% of base) :20248.dasm -Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:Translate(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CSharp.BoundArgListOperator,bool):Microsoft.Cci.IMethodReference:this-16.90 (-6.59% of base) :5675.dasm -System.IO.Compression.BrotliStream:WriteCore(System.ReadOnlySpan`1[Byte],bool):this-10.80 (-5.91% of base) :4688.dasm -System.Text.Encodings.Web.AllowedBmpCodePointsBitmap:ForbidUndefinedCharacters():this-18.80 (-5.39% of base) :11582.dasm -System.Net.MultiMemory:CopyFrom(System.ReadOnlySpan`1[Byte]):this-17.40 (-5.37% of base) :10890.dasm -System.Text.StringBuilder:ReplaceInPlaceAtChunk(byref,byref,byref,int):this-3.40 (-4.80% of base) :1346.dasm -System.Reflection.AssemblyName:Clone():System.Object:this-15.00 (-4.72% of base) :12911.dasm -System.Runtime.Serialization.BitFlagsGenerator:.ctor(int,System.Runtime.Serialization.CodeGenerator,System.String):this-20.80 (-4.69% of base) :3120.dasm -System.Uri:Compress(System.Span`1[Char],System.UriParser):int
-184551466.05 (-4.38% of base) :2331.dasm -Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:BuildSerialize(System.Type,Utf8Json.Internal.Emit.MetaType,System.Reflection.Emit.ILGenerator,System.Action,System.Func`3[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Utf8Json.Internal.Emit.MetaMember, Utf8Json, Version=1.3.7.0, Culture=neutral, PublicKeyToken=8a73d3ba7e392e27],[System.Boolean, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],bool,bool,int)
-138.50 (-4.07% of base) :7245.dasm -DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
-138.50 (-4.06% of base) :22721.dasm -DynamicClass:Regex3_Go(System.Text.RegularExpressions.RegexRunner)
-19.45 (-4.04% of base) :20306.dasm -Microsoft.CodeAnalysis.SyntaxNavigator:GetFirstToken(Microsoft.CodeAnalysis.SyntaxNode,System.Func`2[SyntaxToken,Boolean],System.Func`2[SyntaxTrivia,Boolean]):Microsoft.CodeAnalysis.SyntaxToken:this-22.95 (-3.63% of base) :23169.dasm -System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[Char],int,System.Span`1[Byte],int,System.Text.EncoderNLS):int:this-2.55 (-3.63% of base) :6051.dasm -System.Net.Security.SslClientAuthenticationOptionsExtensions:ShallowClone(System.Net.Security.SslClientAuthenticationOptions):System.Net.Security.SslClientAuthenticationOptions-13.53 (-3.56% of base) :21891.dasm -System.Numerics.BigInteger:Multiply(System.ReadOnlySpan`1[UInt32],int,System.ReadOnlySpan`1[UInt32],int):System.Numerics.BigInteger-3.10 (-3.53% of base) :22486.dasm -System.Threading.Tests.Perf_Timer:SynchronousContention():this-3.10 (-3.47% of base) :23043.dasm -System.Threading.Tests.Perf_Timer:AsynchronousContention():this312 total methods withPerfScore differences (214 improved, 98 regressed), 74 unchanged.

All regressions are, as one would expect, from RA not being too happy.

We may decide those are ok enough diffs to take even with the regressions.

And account for this in copy propagation.
No diffs.
Removing the PHI quirk is more problematic due to regressions.
@SingleAccretion
SingleAccretionforce-pushed the Copy-Propagation-No-Lhs-VN branch from e1a3a52 to f27680eCompareFebruary 25, 2022 18:43
@SingleAccretion

Copy link
Copy Markdown
ContributorAuthor

Windows ARM64 build failures are #65818, SPMI failed for it too (no MCHs).

@dotnet/jit-contrib - rounding out the copy propagation story.

@SingleAccretion
SingleAccretion marked this pull request as ready for review February 25, 2022 21:23
@kunalspathak

Copy link
Copy Markdown
Contributor

I am inclined to see the diffs before deciding if we want to take this with the regressions. I won't get it until Monday though. I am assigning @jakobbotsch as well in case he gets chance to check the diffs.

Let's assess the diffs.
@SingleAccretion

SingleAccretion commented Feb 25, 2022

Copy link
Copy Markdown
ContributorAuthor

I am inclined to see the diffs before deciding if we want to take this with the regressions.

Let's do that then. I've pushed a commit removing the quirk for an SPMI run.

Results.

@jakobbotsch

jakobbotsch commented Feb 28, 2022

Copy link
Copy Markdown
Member

There are some regressions in some functions that worry me a bit, e.g. regressions in:

  • Microsoft.FSharp.Primitives.Basics.List:filter(Microsoft.FSharp.Core.FSharpFunc`2[Byte,Boolean],Microsoft.FSharp.Collections.FSharpList`1[Byte]):Microsoft.FSharp.Collections.FSharpList`1[Byte]
  • System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this.
  • System.Globalization.TimeSpanFormat:TryFormatStandard(System.TimeSpan,int,System.String,System.Span`1[System.Char],byref):bool
  • System.Linq.Parallel.SortHelper`2:MergeSortCooperatively():this

For some reason I cannot find the .dasm file in the artifacts for Linux x64, the Extensions view says (under libraries.pmi.Linux.x64.checked.mch):

28 (15.05% of base) :159341.dasm -Microsoft.FSharp.Primitives.Basics.List:filter(Microsoft.FSharp.Core.FSharpFunc`2[Byte,Boolean],Microsoft.FSharp.Collections.FSharpList`1[Byte]):Microsoft.FSharp.Collections.FSharpList`1[Byte]

but this file does not seem to be present in the downloaded artifacts. Maybe I'm looking at the wrong place? Any idea @kunalspathak / @BruceForstall?

Have you looked at these @SingleAccretion? Is it just some extra spilling? Inside or outside a loop?

@SingleAccretion

Copy link
Copy Markdown
ContributorAuthor

Is it just some extra spilling?

Worse allocation, yes.

System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller[__Canon][System.__Canon]:set_Value(long):this.

Here we have a case where substitution keep one more local used:

-;* V09 tmp5 [V09,T10] ( 0, 0 ) byref -> zero-ref+; V09 tmp5 [V09,T07] ( 3, 1.50) byref -> rdx+ mov rdx, rcx+ ; byrRegs +[rdx]+ xor r9d, r9d
jmp SHORT G_M11382_IG07
- ;; bbWeight=0.50 PerfScore 3.25+ ;; bbWeight=0.50 PerfScore 3.38
G_M11382_IG06: ; gcrefRegs=00000001 {rax}, byrefRegs=00000002 {rcx}, byref
- mov edx, dword ptr [rax+8]- ;; bbWeight=0.50 PerfScore 1.00-G_M11382_IG07: ; gcrefRegs=00000000 {}, byrefRegs=00000002 {rcx}, byref, isz+ ; byrRegs -[rdx]+ mov rdx, rcx+ ; byrRegs +[rdx]+ mov r9d, dword ptr [rax+8]

What happens is that we had a use of this replaced with V09, which itself in turn was replaced at its previous (and only) use by this:

VN based copy assertion for [000050] V00 $80 by [000208] V09 $80.
N002 ( 1, 1) [000050] ------------*LCL_VAR byref V00this u:1 (last use) $80
copy propagated to:
N002 ( 1, 1) [000050] ------------*LCL_VAR byref V09 tmp5 u:2 (last use) $80VN based copy assertion for [000047] V09 $80 by [000005] V00 $80.
N001 ( 3, 2) [000047] ------------*LCL_VAR byref V09 tmp5 u:2 (last use) $80
copy propagated to:
N001 ( 3, 2) [000047] ------------*LCL_VAR byref V00this u:1 (last use) $80

System.Globalization.TimeSpanFormat:TryFormatStandard(System.TimeSpan,int,System.String,System.Span[System.Char],byref):bool

While we do eliminate a few locals with the new substitutions, we incur quite a few new spills for the substitute itself (looks like to me like its now crossing a call, but not sure).

Microsoft.FSharp.Primitives.Basics.List:filter(Microsoft.FSharp.Core.FSharpFunc[Byte,Boolean],Microsoft.FSharp.Collections.FSharpList1[Byte]):Microsoft.FSharp.Collections.FSharpList[Byte]`

Here we reserve an additional callee-saved register, for what looks to me like a new overlap in lifetimes, in a method with multiple epilogs.

Inside or outside a loop?

There are some loop cases if we look at PerfScore:

 G_M46727_IG07: ; gcrefRegs=000000C8 {rbx rsi rdi}, byrefRegs=00000000 {}, loop=IG07, byref, isz
- vmulps ymm11, ymm4, ymm4- vmulps ymm14, ymm5, ymm5- vsubps ymm15, ymm11, ymm14- vmulps ymm4, ymm4, ymm5- vaddps ymm5, ymm4, ymm4- vaddps ymm4, ymm15, ymm2- vaddps ymm5, ymm5, ymm3- vpaddd ymm6, ymm6, ymm9- vmulps ymm11, ymm4, ymm4- vmulps ymm14, ymm5, ymm5- vaddps ymm11, ymm11, ymm14- vcmpps ymm11, ymm11, ymm10, 2+ vmulps ymm5, ymm2, ymm2+ vmulps ymm9, ymm3, ymm3+ vsubps ymm5, ymm5, ymm9+ vmulps ymm2, ymm2, ymm3+ vaddps ymm3, ymm2, ymm2+ vmovupd ymmword ptr[rsp+20H], ymm1+ vaddps ymm2, ymm5, ymm1+ vaddps ymm3, ymm3, ymm13+ vpaddd ymm6, ymm6, ymm4+ vmulps ymm5, ymm2, ymm2+ vmulps ymm11, ymm3, ymm3+ vaddps ymm5, ymm5, ymm11+ vcmpps ymm5, ymm5, ymm10, 2
vpcmpgtd ymm14, ymm7, ymm6
vpcmpeqd ymm15, ymm6, ymm7
- vpor ymm14, ymm14, ymm15- vpand ymm11, ymm11, ymm14- vpand ymm9, ymm9, ymm11- vptest ymm9, ymm9+ vpor ymm9, ymm14, ymm15+ vpand ymm5, ymm5, ymm9+ vpand ymm4, ymm4, ymm5+ vptest ymm4, ymm4+ vmovupd ymm1, ymmword ptr[rsp+20H]
jne SHORT G_M46727_IG07
PerfScore for some collections

benchmarks.run.windows.x64:

Found 389 files with textual diffs.
Summary of Perf Score diffs:
(Lower is better)
Total PerfScoreUnits of base: 4343794312.71
Total PerfScoreUnits of diff: 4159211065.3400035
Total PerfScoreUnits of delta: -184583247.37 (-4.25 % of base)
Total relative delta: -2.11
diff is an improvement.
relative diff is an improvement.
Top file regressions (PerfScoreUnits):
744.20 : 24729.dasm (4.87% of base)
95.65 : 11564.dasm (0.26% of base)
61.85 : 43886.dasm (0.52% of base)
48.60 : 2447.dasm (0.01% of base)
46.35 : 23069.dasm (0.46% of base)
46.35 : 9507.dasm (0.46% of base)
38.80 : 41915.dasm (1.01% of base)
38.00 : 13311.dasm (0.80% of base)
38.00 : 13328.dasm (0.80% of base)
19.00 : 14760.dasm (0.60% of base)
13.60 : 12674.dasm (0.43% of base)
13.60 : 14757.dasm (0.43% of base)
13.60 : 42939.dasm (0.43% of base)
12.80 : 16699.dasm (0.40% of base)
12.23 : 2042.dasm (2.26% of base)
12.05 : 14758.dasm (0.35% of base)
10.70 : 12699.dasm (0.33% of base)
10.50 : 12688.dasm (0.31% of base)
9.00 : 12724.dasm (0.63% of base)
8.40 : 19097.dasm (1.18% of base)
Top file improvements (PerfScoreUnits):
-184551466.05 : 2334.dasm (-4.38% of base)
-31106.90 : 7448.dasm (-1.06% of base)
-512.60 : 18195.dasm (-0.00% of base)
-172.80 : 4228.dasm (-1.98% of base)
-145.70 : 4057.dasm (-1.41% of base)
-65.30 : 59.dasm (-0.11% of base)
-63.65 : 16878.dasm (-3.11% of base)
-49.25 : 7188.dasm (-6.88% of base)
-46.30 : 1889.dasm (-0.96% of base)
-39.20 : 11150.dasm (-1.17% of base)
-37.70 : 18376.dasm (-0.15% of base)
-29.10 : 8068.dasm (-15.93% of base)
-28.20 : 3908.dasm (-10.42% of base)
-24.95 : 7459.dasm (-1.80% of base)
-22.95 : 21840.dasm (-3.63% of base)
-22.50 : 41911.dasm (-1.93% of base)
-20.80 : 19242.dasm (-7.66% of base)
-20.80 : 3123.dasm (-4.69% of base)
-20.50 : 3722.dasm (-7.11% of base)
-20.30 : 19688.dasm (-6.65% of base)
315 total files with Perf Score differences (215 improved, 100 regressed), 74 unchanged.
Top method regressions (PerfScoreUnits):
744.20 ( 4.87% of base) : 24729.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this
95.65 ( 0.26% of base) : 11564.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
61.85 ( 0.52% of base) : 43886.dasm - System.IO.Enumeration.FileSystemName:MatchPattern(System.ReadOnlySpan`1[Char],System.ReadOnlySpan`1[Char],bool,bool):bool
48.60 ( 0.01% of base) : 2447.dasm - System.Reflection.Emit.TypeBuilder:CreateTypeNoLock():System.Reflection.TypeInfo:this
46.35 ( 0.46% of base) : 23069.dasm - DynamicClass:Regex3_Go(System.Text.RegularExpressions.RegexRunner)
46.35 ( 0.46% of base) : 9507.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
38.80 ( 1.01% of base) : 41915.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
38.00 ( 0.80% of base) : 13311.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
38.00 ( 0.80% of base) : 13328.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
19.00 ( 0.60% of base) : 14760.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerItemTaskFormatter3:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerItemTask:this
13.60 ( 0.43% of base) : 12674.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_IndexViewModelFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.IndexViewModel:this
13.60 ( 0.43% of base) : 42939.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_LoginViewModelFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.LoginViewModel:this
13.60 ( 0.43% of base) : 14757.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerViewModelFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerViewModel:this
12.80 ( 0.40% of base) : 16699.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_CollectionsOfPrimitivesFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.CollectionsOfPrimitives:this
12.23 ( 2.26% of base) : 2042.dasm - System.Globalization.TimeSpanFormat:TryFormatStandard(System.TimeSpan,int,System.String,System.Span`1[Char],byref):bool
12.05 ( 0.35% of base) : 14758.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerItemFormatter2:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerItem:this
10.70 ( 0.33% of base) : 12699.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_CampaignSummaryViewModelFormatter3:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.CampaignSummaryViewModel:this
10.50 ( 0.31% of base) : 12688.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_ActiveOrUpcomingEventFormatter2:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:this
9.00 ( 0.63% of base) : 12724.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffset(System.IO.TextReader,System.Char[]):System.DateTimeOffset
8.40 ( 1.18% of base) : 19097.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSequentialOnPartialType(Microsoft.CodeAnalysis.DiagnosticBag):this
Top method improvements (PerfScoreUnits):
-184551466.05 (-4.38% of base) : 2334.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:BuildSerialize(System.Type,Utf8Json.Internal.Emit.MetaType,System.Reflection.Emit.ILGenerator,System.Action,System.Func`3[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Utf8Json.Internal.Emit.MetaMember, Utf8Json, Version=1.3.7.0, Culture=neutral, PublicKeyToken=8a73d3ba7e392e27],[System.Boolean, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],bool,bool,int)
-31106.90 (-1.06% of base) : 7448.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,bool,bool,bool):MessagePack.Internal.ObjectSerializationInfo
-512.60 (-0.00% of base) : 18195.dasm - SelectManySingleSelectorIterator`2[__Canon,ReferenceDirective][System.__Canon,Microsoft.CodeAnalysis.ReferenceDirective]:ToArray():Microsoft.CodeAnalysis.ReferenceDirective[]:this
-172.80 (-1.98% of base) : 4228.dasm - WorkerThread:WorkerThreadStart()
-145.70 (-1.41% of base) : 4057.dasm - GateThread:GateThreadStart()
-65.30 (-0.11% of base) : 59.dasm - System.Text.Unicode.Utf8Utility:TranscodeToUtf8(long,int,long,int,byref,byref):int
-63.65 (-3.11% of base) : 16878.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,int,int,int,System.Diagnostics.Tracing.EventParameterInfo[]):System.Byte[]:this
-49.25 (-6.88% of base) : 7188.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[Byte],int,System.Span`1[Char],int,System.Text.DecoderNLS):int:this
-46.30 (-0.96% of base) : 1889.dasm - System.DateTimeFormat:FormatCustomized(System.DateTime,System.ReadOnlySpan`1[Char],System.Globalization.DateTimeFormatInfo,System.TimeSpan,System.Text.StringBuilder):System.Text.StringBuilder
-39.20 (-1.17% of base) : 11150.dasm - System.Numerics.BigIntegerCalculator:Gcd(System.Span`1[UInt32],System.Span`1[UInt32])
-37.70 (-0.15% of base) : 18376.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[__Canon,__Canon][System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[__Canon],int):this
-29.10 (-15.93% of base) : 8068.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:GetParameterTypes(System.Linq.Expressions.LambdaExpression,System.Type):System.Type[]
-28.20 (-10.42% of base) : 3908.dasm - System.TimeZoneInfo:CreateAdjustmentRuleFromTimeZoneInformation(byref,System.DateTime,System.DateTime,int):AdjustmentRule
-24.95 (-1.80% of base) : 7459.dasm - MessagePack.Internal.DynamicObjectTypeBuilder:BuildSerialize(System.Type,MessagePack.Internal.ObjectSerializationInfo,System.Reflection.Emit.ILGenerator,System.Action,System.Func`3[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[MessagePack.Internal.ObjectSerializationInfo+EmittableMember, MessagePack, Version=1.9.0.0, Culture=neutral, PublicKeyToken=b4a0369545f0a1be],[System.Action, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],int)
-22.95 (-3.63% of base) : 21840.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[Char],int,System.Span`1[Byte],int,System.Text.EncoderNLS):int:this
-22.50 (-1.93% of base) : 41911.dasm - DynamicClass:Regex9_Go(System.Text.RegularExpressions.RegexRunner)
-20.80 (-7.66% of base) : 19242.dasm - Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker:DefaultVisit(Microsoft.CodeAnalysis.SyntaxNode):this
-20.80 (-4.69% of base) : 3123.dasm - System.Uri:Compress(System.Span`1[Char],System.UriParser):int
-20.50 (-7.11% of base) : 3722.dasm - System.Net.Security.SslStreamPal:InitializeSecurityContext(System.Net.Security.SecureChannel,byref,byref,System.String,System.ReadOnlySpan`1[Byte],byref,System.Net.Security.SslAuthenticationOptions):System.Net.SecurityStatusPal
-20.30 (-6.65% of base) : 19688.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:Translate(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CSharp.BoundArgListOperator,bool):Microsoft.Cci.IMethodReference:this
Top method regressions (percentages):
744.20 ( 4.87% of base) : 24729.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this
2.80 ( 3.91% of base) : 13949.dasm - <>c:<BeginWriteInternal>b__48_0(System.Object):int:this
2.80 ( 3.78% of base) : 13942.dasm - <>c:<BeginReadInternal>b__38_0(System.Object):int:this
12.23 ( 2.26% of base) : 2042.dasm - System.Globalization.TimeSpanFormat:TryFormatStandard(System.TimeSpan,int,System.String,System.Span`1[Char],byref):bool
1.30 ( 2.23% of base) : 2230.dasm - System.Reflection.Emit.MethodBuilder:GetMethodSignature():System.Reflection.Emit.SignatureHelper:this
2.30 ( 1.98% of base) : 3231.dasm - System.IO.MemoryStream:Read(System.Byte[],int,int):int:this
0.43 ( 1.69% of base) : 21034.dasm - System.Text.Tests.Perf_StringBuilder:ctor_string(int):System.Text.StringBuilder:this
2.00 ( 1.44% of base) : 16585.dasm - System.Buffers.ReadOnlySequence`1[Byte][System.Byte]:Slice(long,System.SequencePosition):System.Buffers.ReadOnlySequence`1[Byte]:this
8.40 ( 1.18% of base) : 19097.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckSequentialOnPartialType(Microsoft.CodeAnalysis.DiagnosticBag):this
1.20 ( 1.14% of base) : 22233.dasm - V8.Crypto.BigInteger:copyTo(V8.Crypto.BigInteger):this
0.35 ( 1.12% of base) : 22923.dasm - System.Collections.IndexerSetReverse`1[Int32][System.Int32]:Span():int:this
1.10 ( 1.11% of base) : 14505.dasm - System.Collections.CreateAddAndClear`1[__Canon][System.__Canon]:Array():System.__Canon[]:this
38.80 ( 1.01% of base) : 41915.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
1.10 ( 0.97% of base) : 593.dasm - System.Linq.OrderedEnumerable`1[__Canon][System.__Canon]:ToArray():System.__Canon[]:this
0.80 ( 0.88% of base) : 6311.dasm - System.Net.Http.QPack.QPackEncoder:EncodeLiteralHeaderFieldWithStaticNameReferenceToArray(int,System.String):System.Byte[]
38.00 ( 0.80% of base) : 13311.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
38.00 ( 0.80% of base) : 13328.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
1.60 ( 0.66% of base) : 1439.dasm - ProtoBuf.Serializers.RepeatedSerializers:GetProviderForType(System.Type):System.Reflection.MemberInfo
9.00 ( 0.63% of base) : 12724.dasm - Jil.Deserialize.Methods:_ReadISO8601DateWithOffset(System.IO.TextReader,System.Char[]):System.DateTimeOffset
19.00 ( 0.60% of base) : 14760.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerItemTaskFormatter3:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerItemTask:this
Top method improvements (percentages):
-29.10 (-15.93% of base) : 8068.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:GetParameterTypes(System.Linq.Expressions.LambdaExpression,System.Type):System.Type[]
-28.20 (-10.42% of base) : 3908.dasm - System.TimeZoneInfo:CreateAdjustmentRuleFromTimeZoneInformation(byref,System.DateTime,System.DateTime,int):AdjustmentRule
-20.80 (-7.66% of base) : 19242.dasm - Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker:DefaultVisit(Microsoft.CodeAnalysis.SyntaxNode):this
-20.50 (-7.11% of base) : 3722.dasm - System.Net.Security.SslStreamPal:InitializeSecurityContext(System.Net.Security.SecureChannel,byref,byref,System.String,System.ReadOnlySpan`1[Byte],byref,System.Net.Security.SslAuthenticationOptions):System.Net.SecurityStatusPal
-49.25 (-6.88% of base) : 7188.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[Byte],int,System.Span`1[Char],int,System.Text.DecoderNLS):int:this
-20.30 (-6.65% of base) : 19688.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:Translate(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CSharp.BoundArgListOperator,bool):Microsoft.Cci.IMethodReference:this
-16.90 (-6.59% of base) : 5781.dasm - System.IO.Compression.BrotliStream:WriteCore(System.ReadOnlySpan`1[Byte],bool):this
-10.80 (-5.91% of base) : 4723.dasm - System.Text.Encodings.Web.AllowedBmpCodePointsBitmap:ForbidUndefinedCharacters():this
-18.80 (-5.39% of base) : 11117.dasm - System.Net.MultiMemory:CopyFrom(System.ReadOnlySpan`1[Byte]):this
-17.40 (-5.37% of base) : 10334.dasm - System.Text.StringBuilder:ReplaceInPlaceAtChunk(byref,byref,byref,int):this
-3.40 (-4.80% of base) : 1348.dasm - System.Reflection.AssemblyName:Clone():System.Object:this
-15.00 (-4.72% of base) : 11938.dasm - System.Runtime.Serialization.BitFlagsGenerator:.ctor(int,System.Runtime.Serialization.CodeGenerator,System.String):this
-20.80 (-4.69% of base) : 3123.dasm - System.Uri:Compress(System.Span`1[Char],System.UriParser):int
-184551466.05 (-4.38% of base) : 2334.dasm - Utf8Json.Resolvers.Internal.DynamicObjectTypeBuilder:BuildSerialize(System.Type,Utf8Json.Internal.Emit.MetaType,System.Reflection.Emit.ILGenerator,System.Action,System.Func`3[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Utf8Json.Internal.Emit.MetaMember, Utf8Json, Version=1.3.7.0, Culture=neutral, PublicKeyToken=8a73d3ba7e392e27],[System.Boolean, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],bool,bool,int)
-19.45 (-4.04% of base) : 19746.dasm - Microsoft.CodeAnalysis.SyntaxNavigator:GetFirstToken(Microsoft.CodeAnalysis.SyntaxNode,System.Func`2[SyntaxToken,Boolean],System.Func`2[SyntaxTrivia,Boolean]):Microsoft.CodeAnalysis.SyntaxToken:this
-22.95 (-3.63% of base) : 21840.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[Char],int,System.Span`1[Byte],int,System.Text.EncoderNLS):int:this
-2.55 (-3.63% of base) : 6156.dasm - System.Net.Security.SslClientAuthenticationOptionsExtensions:ShallowClone(System.Net.Security.SslClientAuthenticationOptions):System.Net.Security.SslClientAuthenticationOptions
-13.53 (-3.56% of base) : 22257.dasm - System.Numerics.BigInteger:Multiply(System.ReadOnlySpan`1[UInt32],int,System.ReadOnlySpan`1[UInt32],int):System.Numerics.BigInteger
-3.10 (-3.53% of base) : 22839.dasm - System.Threading.Tests.Perf_Timer:SynchronousContention():this
-3.10 (-3.47% of base) : 23440.dasm - System.Threading.Tests.Perf_Timer:AsynchronousContention():this
315 total methods with Perf Score differences (215 improved, 100 regressed), 74 unchanged.
--------------------------------------------------------------------------------

libraries.pmi.windows.x64:

Found 1775 files with textual diffs.
Summary of Perf Score diffs:
(Lower is better)
Total PerfScoreUnits of base: 2.1550060208606166E+31
Total PerfScoreUnits of diff: 2.1550060208606103E+31
Total PerfScoreUnits of delta: -63050395856868776.00 (-0.00 % of base)
Total relative delta: -9.60
diff is an improvement.
relative diff is an improvement.
Top file regressions (PerfScoreUnits):
65534.75 : 151427.dasm (0.24% of base)
30213.10 : 171696.dasm (7.86% of base)
799.00 : 52995.dasm (0.28% of base)
255.90 : 171705.dasm (0.08% of base)
232.02 : 207263.dasm (1.58% of base)
226.05 : 134283.dasm (5.61% of base)
96.40 : 108478.dasm (0.30% of base)
84.00 : 165167.dasm (0.38% of base)
64.30 : 108506.dasm (2.18% of base)
48.20 : 9093.dasm (1.31% of base)
48.20 : 9092.dasm (1.31% of base)
46.15 : 126811.dasm (5.55% of base)
46.15 : 126797.dasm (5.37% of base)
46.15 : 126825.dasm (5.37% of base)
32.15 : 23251.dasm (0.97% of base)
22.65 : 126829.dasm (2.55% of base)
22.65 : 126815.dasm (2.63% of base)
18.61 : 109416.dasm (4.31% of base)
18.50 : 53547.dasm (6.27% of base)
16.80 : 50279.dasm (0.32% of base)
Top file improvements (PerfScoreUnits):
-63050394783186944.00 : 31119.dasm (-0.00% of base)
-1073741824.20 : 159309.dasm (-1.27% of base)
-14348.04 : 129332.dasm (-6.06% of base)
-8051.87 : 91221.dasm (-0.13% of base)
-4097.05 : 159536.dasm (-0.00% of base)
-2948.60 : 118501.dasm (-1.71% of base)
-1793.10 : 234484.dasm (-0.08% of base)
-512.80 : 209293.dasm (-0.00% of base)
-512.60 : 129073.dasm (-0.51% of base)
-512.60 : 209286.dasm (-0.00% of base)
-319.40 : 9036.dasm (-5.34% of base)
-243.25 : 77780.dasm (-0.87% of base)
-207.80 : 174128.dasm (-21.07% of base)
-155.65 : 174127.dasm (-8.64% of base)
-136.57 : 54922.dasm (-0.13% of base)
-128.90 : 113291.dasm (-1.70% of base)
-124.20 : 229882.dasm (-0.71% of base)
-112.50 : 80769.dasm (-4.15% of base)
-112.30 : 11863.dasm (-14.58% of base)
-111.65 : 67915.dasm (-3.07% of base)
1403 total files with Perf Score differences (956 improved, 447 regressed), 372 unchanged.
Top method regressions (PerfScoreUnits):
65534.75 ( 0.24% of base) : 151427.dasm - System.Xml.Serialization.XmlSerializationWriterCodeGen:GenerateMembersElement(System.Xml.Serialization.XmlMembersMapping):System.String:this
30213.10 ( 7.86% of base) : 171696.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this
799.00 ( 0.28% of base) : 52995.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol:MakeExplicitInterfaceImplementationMap(Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Generic.Dictionary`2[[Microsoft.CodeAnalysis.VisualBasic.Symbol, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Microsoft.CodeAnalysis.VisualBasic.Symbol, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
255.90 ( 0.08% of base) : 171705.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindingScore(System.Reflection.ParameterInfo[],System.Int32[],System.Type[],bool,int):int:this
232.02 ( 1.58% of base) : 207263.dasm - System.Linq.Parallel.SortHelper`2[__Canon,Nullable`1][System.__Canon,System.Nullable`1[System.Int32]]:MergeSortCooperatively():this
226.05 ( 5.61% of base) : 134283.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this
96.40 ( 0.30% of base) : 108478.dasm - Microsoft.Build.Construction.SolutionFile:ProcessProjectConfigurationSection(System.Collections.Generic.Dictionary`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):this
84.00 ( 0.38% of base) : 165167.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,bool,byref,bool):bool:this
64.30 ( 2.18% of base) : 108506.dasm - Microsoft.Build.Construction.SolutionFile:ParseProject(System.String):this
48.20 ( 1.31% of base) : 9093.dasm - Microsoft.FSharp.Collections.Array3DModule:MapIndexed(Microsoft.FSharp.Core.FSharpFunc`2[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.FSharp.Core.FSharpFunc`2[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.FSharp.Core.FSharpFunc`2[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.FSharp.Core.FSharpFunc`2[[System.Byte, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Nullable`1[[System.Int32, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]], FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]], FSharp.Core, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]],System.Byte[,,]):System.Nullable`1[System.Int32][,,]
48.20 ( 1.31% of base) : 9092.dasm - Microsoft.FSharp.Collections.Array3DModule:MapIndexed(Microsoft.FSharp.Core.FSharpFunc`2[Int32,__Canon],System.__Canon[,,]):System.Nullable`1[System.Int32][,,]
46.15 ( 5.37% of base) : 126797.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecute1(System.Runtime.CompilerServices.CallSite,System.__Canon):System.Nullable`1[Int32]
46.15 ( 5.55% of base) : 126811.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid1(System.Runtime.CompilerServices.CallSite,System.__Canon)
46.15 ( 5.37% of base) : 126825.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid2(System.Runtime.CompilerServices.CallSite,System.__Canon,System.Nullable`1[Int32])
32.15 ( 0.97% of base) : 23251.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAnonymousObjectCreation(Microsoft.CodeAnalysis.CSharp.Syntax.AnonymousObjectCreationExpressionSyntax,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
22.65 ( 2.55% of base) : 126829.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid2(System.Runtime.CompilerServices.CallSite,double,System.Nullable`1[Int32])
22.65 ( 2.63% of base) : 126815.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid1(System.Runtime.CompilerServices.CallSite,double)
18.61 ( 4.31% of base) : 109416.dasm - Microsoft.Build.Execution.ProjectInstance:AddTarget(System.String,System.String,System.String,System.String,System.String,System.String,System.String,bool):Microsoft.Build.Execution.ProjectTargetInstance:this
18.50 ( 6.27% of base) : 53547.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourcePropertySymbol:CloneParametersForAccessor(Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.ArrayBuilder`1[[Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):this
16.80 ( 0.32% of base) : 50279.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.DeclarationTreeBuilder:GetNonTypeMemberNames(Microsoft.CodeAnalysis.SyntaxList`1[[Microsoft.CodeAnalysis.VisualBasic.Syntax.StatementSyntax, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],byref):System.String[]:this
Top method improvements (PerfScoreUnits):
-63050394783186944.00 (-0.00% of base) : 31119.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.SyntaxNormalizer:RewriteTrivia(Microsoft.CodeAnalysis.SyntaxTriviaList,int,bool,bool,bool,int):Microsoft.CodeAnalysis.SyntaxTriviaList:this
-1073741824.20 (-1.27% of base) : 159309.dasm - ILCompiler.DependencyAnalysis.ReadyToRunObjectWriter:EmitObjectData(ILCompiler.PEWriter.R2RPEBuilder,ObjectData,int,System.String,ILCompiler.DependencyAnalysis.ObjectNodeSection):this
-14348.04 (-6.06% of base) : 129332.dasm - System.Net.Http.MultiProxy:TryParseProxyConfigPart(System.ReadOnlySpan`1[Char],bool,byref,byref):bool
-8051.87 (-0.13% of base) : 91221.dasm - Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser:GetManifestForRegisteredProvider(System.Guid):System.String
-4097.05 (-0.00% of base) : 159536.dasm - ILCompiler.DependencyAnalysis.ReadyToRun.DebugDirectoryNode:GetData(ILCompiler.DependencyAnalysis.NodeFactory,bool):ObjectData:this
-2948.60 (-1.71% of base) : 118501.dasm - System.Data.ProviderBase.SchemaMapping:SetupSchemaWithKeyInfo(int,int,bool,System.Data.DataColumn,System.Object):System.Object[]:this
-1793.10 (-0.08% of base) : 234484.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo:.ctor(System.Type,System.Text.Json.Serialization.JsonConverter,System.Text.Json.JsonSerializerOptions):this
-512.80 (-0.00% of base) : 209293.dasm - SelectManySingleSelectorIterator`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:ToArray():System.Nullable`1[System.Int32][]:this
-512.60 (-0.51% of base) : 129073.dasm - System.Net.Http.Http3RequestStream:BufferHeaderCollection(System.Net.Http.Headers.HttpHeaders):this
-512.60 (-0.00% of base) : 209286.dasm - SelectManySingleSelectorIterator`2[__Canon,Nullable`1][System.__Canon,System.Nullable`1[System.Int32]]:ToArray():System.Nullable`1[System.Int32][]:this
-319.40 (-5.34% of base) : 9036.dasm - Microsoft.FSharp.Collections.Array4DModule:Create(int,int,int,int,System.Numerics.Vector`1[Single]):System.Numerics.Vector`1[System.Single][,,,]
-243.25 (-0.87% of base) : 77780.dasm - Microsoft.CodeAnalysis.RuleSet:GetEffectiveRuleSet(System.Collections.Generic.HashSet`1[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):Microsoft.CodeAnalysis.RuleSet:this
-207.80 (-21.07% of base) : 174128.dasm - Internal.TypeSystem.CustomAttributeTypeNameParser:ResolveCustomAttributeTypeDefinitionName(System.String,Internal.TypeSystem.ModuleDesc,bool):Internal.TypeSystem.MetadataType
-155.65 (-8.64% of base) : 174127.dasm - Internal.TypeSystem.CustomAttributeTypeNameParser:GetTypeByCustomAttributeTypeName(Internal.TypeSystem.ModuleDesc,System.String,bool,System.Func`4[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Internal.TypeSystem.ModuleDesc, ILCompiler.TypeSystem, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Boolean, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Internal.TypeSystem.MetadataType, ILCompiler.TypeSystem, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null]]):Internal.TypeSystem.TypeDesc
-136.57 (-0.13% of base) : 54922.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation:ReportUnusedImports(Microsoft.CodeAnalysis.SyntaxTree,Microsoft.CodeAnalysis.DiagnosticBag,System.Threading.CancellationToken):this
-128.90 (-1.70% of base) : 113291.dasm - <BuildProjects>d__34:MoveNext():this
-124.20 (-0.71% of base) : 229882.dasm - System.Security.Cryptography.Xml.Utils:GetPropagatedAttributes(System.Xml.XmlElement):System.Security.Cryptography.Xml.CanonicalXmlNodeList
-112.50 (-4.15% of base) : 80769.dasm - Microsoft.CodeAnalysis.CodeGen.SwitchIntegralJumpTableEmitter:GenerateSwitchBuckets(int,int):System.Collections.Immutable.ImmutableArray`1[SwitchBucket]:this
-112.30 (-14.58% of base) : 11863.dasm - Microsoft.FSharp.Primitives.Basics.Array:splitInto$cont@1166(int,System.__Canon[],int,Microsoft.FSharp.Core.Unit):System.__Canon[]
-111.65 (-3.07% of base) : 67915.dasm - Microsoft.CodeAnalysis.VisualBasic.OverloadResolution:CombineCandidates(Microsoft.CodeAnalysis.ArrayBuilder`1[CandidateAnalysisResult],CandidateAnalysisResult,int,System.Collections.Immutable.ImmutableArray`1[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],byref)
Top method regressions (percentages):
30213.10 ( 7.86% of base) : 171696.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this
2.75 ( 6.67% of base) : 56007.dasm - Microsoft.CodeAnalysis.VisualBasic.ExpressionLambdaRewriter:Convert(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,bool):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this
1.35 ( 6.35% of base) : 120048.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.35 ( 6.35% of base) : 169778.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.35 ( 6.35% of base) : 221157.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.35 ( 6.35% of base) : 236453.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.35 ( 6.35% of base) : 198509.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.35 ( 6.35% of base) : 228176.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.35 ( 6.35% of base) : 196396.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.35 ( 6.35% of base) : 197088.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.35 ( 6.35% of base) : 168864.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.35 ( 6.35% of base) : 231288.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.35 ( 6.35% of base) : 240491.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.35 ( 6.35% of base) : 210354.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.35 ( 6.35% of base) : 192645.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.35 ( 6.35% of base) : 155603.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.35 ( 6.35% of base) : 213173.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.35 ( 6.35% of base) : 172766.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.35 ( 6.35% of base) : 193992.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.35 ( 6.35% of base) : 204138.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
Top method improvements (percentages):
-207.80 (-21.07% of base) : 174128.dasm - Internal.TypeSystem.CustomAttributeTypeNameParser:ResolveCustomAttributeTypeDefinitionName(System.String,Internal.TypeSystem.ModuleDesc,bool):Internal.TypeSystem.MetadataType
-7.84 (-20.87% of base) : 44457.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol:GetCustomAttributesForToken(System.Reflection.Metadata.EntityHandle):System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
-7.84 (-20.87% of base) : 51352.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEModuleSymbol:GetCustomAttributesForToken(System.Reflection.Metadata.EntityHandle):System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.VisualBasic.Symbols.VisualBasicAttributeData, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
-33.30 (-16.62% of base) : 109683.dasm - Microsoft.Build.Execution.ProjectTaskInstance:.ctor(System.String,Microsoft.Build.Construction.ElementLocation,System.String,System.String,System.String,System.String):this
-29.10 (-15.93% of base) : 126586.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:GetParameterTypes(System.Linq.Expressions.LambdaExpression,System.Type):System.Type[]
-5.24 (-15.14% of base) : 68420.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:FunctionAggregation(Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.VisualBasic.Syntax.FunctionAggregationSyntax
-5.24 (-15.09% of base) : 68419.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:FunctionAggregation(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax):Microsoft.CodeAnalysis.VisualBasic.Syntax.FunctionAggregationSyntax
-112.30 (-14.58% of base) : 11863.dasm - Microsoft.FSharp.Primitives.Basics.Array:splitInto$cont@1166(int,System.__Canon[],int,Microsoft.FSharp.Core.Unit):System.__Canon[]
-9.58 (-13.45% of base) : 68421.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:FunctionAggregation(System.String):Microsoft.CodeAnalysis.VisualBasic.Syntax.FunctionAggregationSyntax
-68.00 (-13.23% of base) : 11864.dasm - Microsoft.FSharp.Primitives.Basics.Array:splitInto$cont@1166(int,System.Byte[],int,Microsoft.FSharp.Core.Unit):System.Byte[][]
-9.88 (-12.28% of base) : 68546.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:XmlMemberAccessExpression(ushort,Microsoft.CodeAnalysis.VisualBasic.Syntax.XmlNodeSyntax):Microsoft.CodeAnalysis.VisualBasic.Syntax.XmlMemberAccessExpressionSyntax
-9.88 (-12.22% of base) : 68218.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:IfDirectiveTrivia(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax):Microsoft.CodeAnalysis.VisualBasic.Syntax.IfDirectiveTriviaSyntax
-4.94 (-12.10% of base) : 69163.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:BadToken(System.String):Microsoft.CodeAnalysis.SyntaxToken
-9.28 (-11.81% of base) : 68220.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:ElseIfDirectiveTrivia(Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.VisualBasic.Syntax.ExpressionSyntax):Microsoft.CodeAnalysis.VisualBasic.Syntax.IfDirectiveTriviaSyntax
-21.10 (-9.64% of base) : 78819.dasm - Microsoft.CodeAnalysis.SyntaxWalker:Visit(Microsoft.CodeAnalysis.SyntaxNode):this
-4.34 (-9.45% of base) : 68240.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:DateLiteralToken(System.String,System.DateTime):Microsoft.CodeAnalysis.SyntaxToken
-4.34 (-9.45% of base) : 68232.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:DocumentationCommentLineBreakToken(System.String,System.String):Microsoft.CodeAnalysis.SyntaxToken
-4.34 (-9.45% of base) : 68236.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:InterpolatedStringTextToken(System.String,System.String):Microsoft.CodeAnalysis.SyntaxToken
-4.34 (-9.45% of base) : 68242.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:StringLiteralToken(System.String,System.String):Microsoft.CodeAnalysis.SyntaxToken
-4.34 (-9.45% of base) : 68294.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:XmlEntityLiteralToken(System.String,System.String):Microsoft.CodeAnalysis.SyntaxToken
1403 total methods with Perf Score differences (956 improved, 447 regressed), 372 unchanged.
--------------------------------------------------------------------------------

benchmarks.run.windows.arm64:

Found 368 files with textual diffs.
Summary of Perf Score diffs:
(Lower is better)
Total PerfScoreUnits of base: 174676565.4800002
Total PerfScoreUnits of diff: 174661788.4000001
Total PerfScoreUnits of delta: -14777.08 (-0.01 % of base)
Total relative delta: -1.78
diff is an improvement.
relative diff is an improvement.
Top file regressions (PerfScoreUnits):
459.00 : 38022.dasm (5.26% of base)
458.60 : 37473.dasm (4.54% of base)
97.40 : 28671.dasm (0.20% of base)
64.40 : 1693.dasm (0.02% of base)
46.50 : 29752.dasm (0.85% of base)
46.50 : 29761.dasm (0.85% of base)
36.80 : 29248.dasm (0.94% of base)
36.80 : 29245.dasm (0.91% of base)
29.20 : 30768.dasm (0.71% of base)
26.40 : 27632.dasm (0.60% of base)
25.00 : 40598.dasm (0.53% of base)
25.00 : 27622.dasm (0.55% of base)
20.20 : 29246.dasm (0.42% of base)
14.05 : 8313.dasm (2.27% of base)
13.50 : 40559.dasm (0.28% of base)
5.60 : 4466.dasm (0.48% of base)
5.10 : 32216.dasm (0.15% of base)
4.80 : 28503.dasm (5.33% of base)
4.80 : 28512.dasm (5.32% of base)
4.00 : 32689.dasm (0.06% of base)
Top file improvements (PerfScoreUnits):
-11622.20 : 1479.dasm (-1.10% of base)
-2048.80 : 58.dasm (-2.93% of base)
-1024.40 : 32456.dasm (-0.00% of base)
-115.35 : 7780.dasm (-0.81% of base)
-115.35 : 37161.dasm (-0.81% of base)
-64.80 : 4497.dasm (-0.51% of base)
-63.60 : 7240.dasm (-1.12% of base)
-62.56 : 1862.dasm (-0.66% of base)
-58.10 : 30935.dasm (-2.35% of base)
-58.00 : 32637.dasm (-0.17% of base)
-50.20 : 7812.dasm (-6.13% of base)
-37.00 : 4351.dasm (-1.47% of base)
-33.60 : 24702.dasm (-1.31% of base)
-32.80 : 4659.dasm (-0.27% of base)
-28.80 : 33950.dasm (-7.68% of base)
-25.45 : 39615.dasm (-0.66% of base)
-22.80 : 26299.dasm (-0.67% of base)
-21.80 : 8543.dasm (-4.55% of base)
-20.40 : 4326.dasm (-8.00% of base)
-20.40 : 36273.dasm (-2.20% of base)
245 total files with Perf Score differences (177 improved, 68 regressed), 123 unchanged.
Top method regressions (PerfScoreUnits):
459.00 ( 5.26% of base) : 38022.dasm - Algorithms.VectorDoubleRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this
458.60 ( 4.54% of base) : 37473.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this
97.40 ( 0.20% of base) : 28671.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
64.40 ( 0.02% of base) : 1693.dasm - System.Reflection.Emit.TypeBuilder:CreateTypeNoLock():System.Reflection.TypeInfo:this
46.50 ( 0.85% of base) : 29752.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
46.50 ( 0.85% of base) : 29761.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
36.80 ( 0.94% of base) : 29248.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerItemTaskFormatter3:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerItemTask:this
36.80 ( 0.91% of base) : 29245.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerViewModelFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerViewModel:this
29.20 ( 0.71% of base) : 30768.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_CollectionsOfPrimitivesFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.CollectionsOfPrimitives:this
26.40 ( 0.60% of base) : 27632.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_CampaignSummaryViewModelFormatter3:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.CampaignSummaryViewModel:this
25.00 ( 0.55% of base) : 27622.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_ActiveOrUpcomingEventFormatter2:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.ActiveOrUpcomingEvent:this
25.00 ( 0.53% of base) : 40598.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_LocationFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.Location:this
20.20 ( 0.42% of base) : 29246.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerItemFormatter2:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerItem:this
14.05 ( 2.27% of base) : 8313.dasm - System.Globalization.TimeSpanFormat:TryFormatStandard(System.TimeSpan,int,System.String,System.Span`1[Char],byref):bool
13.50 ( 0.28% of base) : 40559.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
5.60 ( 0.48% of base) : 4466.dasm - System.Threading.Tasks.Task:WaitAllCore(System.Threading.Tasks.Task[],int,System.Threading.CancellationToken):bool
5.10 ( 0.15% of base) : 32216.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseNamespaceBody(byref,byref,byref,ushort):this
4.80 ( 5.33% of base) : 28503.dasm - <>c:<BeginReadInternal>b__38_0(System.Object):int:this
4.80 ( 5.32% of base) : 28512.dasm - <>c:<BeginWriteInternal>b__48_0(System.Object):int:this
4.00 ( 0.06% of base) : 32689.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:GetAttributesToBind(Roslyn.Utilities.OneOrMany`1[[Microsoft.CodeAnalysis.SyntaxList`1[[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeListSyntax, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],short,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.Func`2[[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.Boolean, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],Microsoft.CodeAnalysis.CSharp.Binder,byref):System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
Top method improvements (PerfScoreUnits):
-11622.20 (-1.10% of base) : 1479.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,bool,bool,bool):MessagePack.Internal.ObjectSerializationInfo
-2048.80 (-2.93% of base) : 58.dasm - System.Text.Unicode.Utf8Utility:TranscodeToUtf8(long,int,long,int,byref,byref):int
-1024.40 (-0.00% of base) : 32456.dasm - SelectManySingleSelectorIterator`2[__Canon,ReferenceDirective][System.__Canon,Microsoft.CodeAnalysis.ReferenceDirective]:ToArray():Microsoft.CodeAnalysis.ReferenceDirective[]:this
-115.35 (-0.81% of base) : 7780.dasm - DynamicClass:Regex3_Go(System.Text.RegularExpressions.RegexRunner)
-115.35 (-0.81% of base) : 37161.dasm - DynamicClass:Regex3_Go(System.Text.RegularExpressions.RegexRunner)
-64.80 (-0.51% of base) : 4497.dasm - GateThread:GateThreadStart()
-63.60 (-1.12% of base) : 7240.dasm - System.DateTimeFormat:FormatCustomized(System.DateTime,System.ReadOnlySpan`1[Char],System.Globalization.DateTimeFormatInfo,System.TimeSpan,System.Text.StringBuilder):System.Text.StringBuilder
-62.56 (-0.66% of base) : 1862.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this
-58.10 (-2.35% of base) : 30935.dasm - System.Diagnostics.Tracing.EventPipeMetadataGenerator:GenerateMetadata(int,System.String,long,int,int,int,System.Diagnostics.Tracing.EventParameterInfo[]):System.Byte[]:this
-58.00 (-0.17% of base) : 32637.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[__Canon,__Canon][System.__Canon,System.__Canon]:ReuseAssemblySymbols(Microsoft.CodeAnalysis.CommonReferenceManager`2+BoundInputAssembly[System.__Canon,System.__Canon][],System.__Canon[],System.Collections.Immutable.ImmutableArray`1[__Canon],int):this
-50.20 (-6.13% of base) : 7812.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[Byte],int,System.Span`1[Char],int,System.Text.DecoderNLS):int:this
-37.00 (-1.47% of base) : 4351.dasm - System.TimeZoneInfo:TryCreateAdjustmentRules(System.String,byref,byref,byref,int):bool
-33.60 (-1.31% of base) : 24702.dasm - FractalPerf.Mandelbrot:Render():double:this
-32.80 (-0.27% of base) : 4659.dasm - WorkerThread:WorkerThreadStart()
-28.80 (-7.68% of base) : 33950.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:Translate(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CSharp.BoundArgListOperator,bool):Microsoft.Cci.IMethodReference:this
-25.45 (-0.66% of base) : 39615.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
-22.80 (-0.67% of base) : 26299.dasm - BenchmarksGame.BinaryTrees_6:Bench(int,bool):int
-21.80 (-4.55% of base) : 8543.dasm - System.Uri:Compress(System.Span`1[Char],System.UriParser):int
-20.40 (-8.00% of base) : 4326.dasm - System.TimeZoneInfo:CreateAdjustmentRuleFromTimeZoneInformation(byref,System.DateTime,System.DateTime,int):AdjustmentRule
-20.40 (-2.20% of base) : 36273.dasm - System.Numerics.BigIntegerCalculator:PowCore(System.Span`1[UInt32],int,System.ReadOnlySpan`1[UInt32],System.ReadOnlySpan`1[UInt32],System.Span`1[UInt32],int,System.Span`1[UInt32]):System.Span`1[UInt32]
Top method regressions (percentages):
4.80 ( 5.33% of base) : 28503.dasm - <>c:<BeginReadInternal>b__38_0(System.Object):int:this
4.80 ( 5.32% of base) : 28512.dasm - <>c:<BeginWriteInternal>b__48_0(System.Object):int:this
459.00 ( 5.26% of base) : 38022.dasm - Algorithms.VectorDoubleRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this
458.60 ( 4.54% of base) : 37473.dasm - Algorithms.VectorFloatRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this
14.05 ( 2.27% of base) : 8313.dasm - System.Globalization.TimeSpanFormat:TryFormatStandard(System.TimeSpan,int,System.String,System.Span`1[Char],byref):bool
0.65 ( 2.08% of base) : 36315.dasm - System.Text.Tests.Perf_StringBuilder:ctor_string(int):System.Text.StringBuilder:this
1.30 ( 1.92% of base) : 1581.dasm - System.Reflection.Emit.MethodBuilder:GetMethodSignature():System.Reflection.Emit.SignatureHelper:this
2.40 ( 1.79% of base) : 28999.dasm - System.Collections.CreateAddAndClear`1[__Canon][System.__Canon]:Array():System.__Canon[]:this
2.40 ( 1.75% of base) : 36980.dasm - V8.Crypto.BigInteger:copyTo(V8.Crypto.BigInteger):this
2.40 ( 1.57% of base) : 603.dasm - System.Linq.OrderedEnumerable`1[__Canon][System.__Canon]:ToArray():System.__Canon[]:this
1.84 ( 1.29% of base) : 31624.dasm - System.Buffers.ReadOnlySequence`1[Byte][System.Byte]:Slice(System.SequencePosition,long):System.Buffers.ReadOnlySequence`1[Byte]:this
0.65 ( 1.01% of base) : 5114.dasm - System.Text.Json.Serialization.Converters.StringConverter:Write(System.Text.Json.Utf8JsonWriter,System.String,System.Text.Json.JsonSerializerOptions):this
2.10 ( 0.94% of base) : 26189.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int64TryParse(System.Char[],int,int,byref):int
36.80 ( 0.94% of base) : 29248.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerItemTaskFormatter3:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerItemTask:this
2.80 ( 0.93% of base) : 26363.dasm - ProtoBuf.Serializers.RepeatedSerializers:GetProviderForType(System.Type):System.Reflection.MemberInfo
36.80 ( 0.91% of base) : 29245.dasm - MessagePack.Formatters.MicroBenchmarks_Serializers_MyEventsListerViewModelFormatter1:Deserialize(System.Byte[],int,MessagePack.IFormatterResolver,byref):MicroBenchmarks.Serializers.MyEventsListerViewModel:this
1.40 ( 0.90% of base) : 33867.dasm - System.Reflection.Metadata.BlobBuilder:Clear():this
46.50 ( 0.85% of base) : 29752.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
46.50 ( 0.85% of base) : 29761.dasm - DynamicClass:Regex1_Go(System.Text.RegularExpressions.RegexRunner)
1.40 ( 0.82% of base) : 4393.dasm - System.TimeZoneInfo:GetUtcOffsetFromUtc(System.DateTime,System.TimeZoneInfo,byref,byref):System.TimeSpan
Top method improvements (percentages):
-20.40 (-8.00% of base) : 4326.dasm - System.TimeZoneInfo:CreateAdjustmentRuleFromTimeZoneInformation(byref,System.DateTime,System.DateTime,int):AdjustmentRule
-14.80 (-7.99% of base) : 5070.dasm - System.Text.Encodings.Web.AllowedBmpCodePointsBitmap:ForbidUndefinedCharacters():this
-28.80 (-7.68% of base) : 33950.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:Translate(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CSharp.BoundArgListOperator,bool):Microsoft.Cci.IMethodReference:this
-6.40 (-6.98% of base) : 1031.dasm - System.Reflection.AssemblyName:Clone():System.Object:this
-18.00 (-6.79% of base) : 4145.dasm - System.Net.Security.SslStreamPal:InitializeSecurityContext(System.Net.Security.SecureChannel,byref,byref,System.String,System.ReadOnlySpan`1[Byte],byref,System.Net.Security.SslAuthenticationOptions):System.Net.SecurityStatusPal
-50.20 (-6.13% of base) : 7812.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[Byte],int,System.Span`1[Char],int,System.Text.DecoderNLS):int:this
-7.00 (-5.76% of base) : 30309.dasm - State:WriteAny(int,int,System.__Canon,ProtoBuf.Serializers.ISerializer`1[__Canon]):this
-5.10 (-5.70% of base) : 6526.dasm - System.Net.Security.SslClientAuthenticationOptionsExtensions:ShallowClone(System.Net.Security.SslClientAuthenticationOptions):System.Net.Security.SslClientAuthenticationOptions
-6.20 (-5.45% of base) : 37849.dasm - System.Threading.Tests.Perf_Timer:SynchronousContention():this
-6.20 (-5.27% of base) : 38147.dasm - System.Threading.Tests.Perf_Timer:AsynchronousContention():this
-15.60 (-5.12% of base) : 33504.dasm - Microsoft.CodeAnalysis.CSharp.CSharpSyntaxWalker:DefaultVisit(Microsoft.CodeAnalysis.SyntaxNode):this
-10.00 (-4.74% of base) : 2890.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:GetParameterTypes(System.Linq.Expressions.LambdaExpression,System.Type):System.Type[]
-21.80 (-4.55% of base) : 8543.dasm - System.Uri:Compress(System.Span`1[Char],System.UriParser):int
-8.20 (-4.20% of base) : 6690.dasm - System.Net.Http.HPack.HPackEncoder:EncodeLiteralHeaderFieldWithoutIndexingToAllocatedArray(int,System.String):System.Byte[]
-4.60 (-4.09% of base) : 28637.dasm - System.Text.Json.Reader.Tests.Perf_Base64:<Setup>g__Write|6_1(System.Byte[]):System.Byte[]
-16.20 (-4.02% of base) : 26939.dasm - System.Runtime.Serialization.BitFlagsGenerator:.ctor(int,System.Runtime.Serialization.CodeGenerator,System.String):this
-4.70 (-3.95% of base) : 25273.dasm - System.Text.Json.JsonReaderHelper:GetUnescapedString(System.ReadOnlySpan`1[Byte],int):System.String
-7.65 (-3.63% of base) : 33136.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol:GetInterfaceInfo():InterfaceInfo:this
-12.70 (-3.56% of base) : 5765.dasm - System.Collections.Generic.GenericArraySortHelper`2[Int32,Int32][System.Int32,System.Int32]:IntroSort(System.Span`1[Int32],System.Span`1[Int32],int)
-6.60 (-3.45% of base) : 25416.dasm - Microsoft.Extensions.Logging.EventSource.EventSourceLogger:GetProperties(System.Object):System.Collections.Generic.IReadOnlyList`1[[System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]:this
245 total methods with Perf Score differences (177 improved, 68 regressed), 123 unchanged.
--------------------------------------------------------------------------------

libraries.pmi.windows.arm64:

Found 1684 files with textual diffs.
Summary of Perf Score diffs:
(Lower is better)
Total PerfScoreUnits of base: 3.042361441174481E+31
Total PerfScoreUnits of diff: 3.042361441174473E+31
Total PerfScoreUnits of delta: -81064795440157040.00 (-0.00 % of base)
Total relative delta: -7.90
diff is an improvement.
relative diff is an improvement.
Top file regressions (PerfScoreUnits):
32475.78 : 91424.dasm (0.38% of base)
959.20 : 53220.dasm (0.31% of base)
868.80 : 212919.dasm (3.41% of base)
508.40 : 107857.dasm (0.90% of base)
373.06 : 196967.dasm (1.85% of base)
212.25 : 123379.dasm (4.39% of base)
192.00 : 108681.dasm (0.50% of base)
128.40 : 108709.dasm (4.29% of base)
81.60 : 148249.dasm (0.31% of base)
68.40 : 194171.dasm (6.10% of base)
67.50 : 194185.dasm (6.21% of base)
67.50 : 194199.dasm (5.93% of base)
45.10 : 194204.dasm (3.69% of base)
45.10 : 194186.dasm (4.15% of base)
45.10 : 194187.dasm (4.15% of base)
45.10 : 194188.dasm (4.15% of base)
45.10 : 194202.dasm (3.96% of base)
45.10 : 194203.dasm (3.92% of base)
32.80 : 8370.dasm (4.63% of base)
32.60 : 194176.dasm (2.71% of base)
Top file improvements (PerfScoreUnits):
-81064793292668928.00 : 31347.dasm (-0.00% of base)
-2147483648.40 : 142296.dasm (-1.80% of base)
-21506.35 : 204664.dasm (-7.66% of base)
-4610.80 : 118599.dasm (-2.08% of base)
-3470.37 : 154744.dasm (-0.62% of base)
-2560.40 : 233625.dasm (-0.12% of base)
-1024.40 : 198974.dasm (-0.00% of base)
-1024.40 : 198981.dasm (-0.00% of base)
-272.80 : 223045.dasm (-1.39% of base)
-257.60 : 157185.dasm (-26.70% of base)
-256.40 : 154753.dasm (-0.07% of base)
-237.60 : 113486.dasm (-2.72% of base)
-212.00 : 157184.dasm (-9.88% of base)
-185.20 : 23484.dasm (-4.55% of base)
-183.90 : 154609.dasm (-5.88% of base)
-181.65 : 53257.dasm (-0.49% of base)
-160.80 : 212921.dasm (-0.63% of base)
-160.80 : 8973.dasm (-3.26% of base)
-160.80 : 8974.dasm (-3.28% of base)
-160.80 : 8977.dasm (-3.19% of base)
1148 total files with Perf Score differences (836 improved, 312 regressed), 536 unchanged.
Top method regressions (PerfScoreUnits):
32475.78 ( 0.38% of base) : 91424.dasm - Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser:GetManifestForRegisteredProvider(System.Guid):System.String
959.20 ( 0.31% of base) : 53220.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol:MakeExplicitInterfaceImplementationMap(Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Generic.Dictionary`2[[Microsoft.CodeAnalysis.VisualBasic.Symbol, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Microsoft.CodeAnalysis.VisualBasic.Symbol, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
868.80 ( 3.41% of base) : 212919.dasm - <ReadContentFromAsync>d__10:MoveNext():this
508.40 ( 0.90% of base) : 107857.dasm - Microsoft.Build.Evaluation.ConditionEvaluator:UpdateConditionedPropertiesTable(System.Collections.Generic.Dictionary`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Collections.Generic.List`1[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.String,System.String)
373.06 ( 1.85% of base) : 196967.dasm - System.Linq.Parallel.SortHelper`2[__Canon,Nullable`1][System.__Canon,System.Nullable`1[System.Int32]]:MergeSortCooperatively():this
212.25 ( 4.39% of base) : 123379.dasm - System.Runtime.Serialization.SchemaExporter:ExportGenericInfo(System.Type,System.String,System.String):System.Xml.XmlElement:this
192.00 ( 0.50% of base) : 108681.dasm - Microsoft.Build.Construction.SolutionFile:ProcessProjectConfigurationSection(System.Collections.Generic.Dictionary`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]):this
128.40 ( 4.29% of base) : 108709.dasm - Microsoft.Build.Construction.SolutionFile:ParseProject(System.String):this
81.60 ( 0.31% of base) : 148249.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:bindUserDefinedConversion(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.CType,Microsoft.CSharp.RuntimeBinder.Semantics.CType,bool,byref,bool):bool:this
68.40 ( 6.10% of base) : 194171.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecute1(System.Runtime.CompilerServices.CallSite,System.__Canon):System.Nullable`1[Int32]
67.50 ( 6.21% of base) : 194185.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid1(System.Runtime.CompilerServices.CallSite,System.__Canon)
67.50 ( 5.93% of base) : 194199.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid2(System.Runtime.CompilerServices.CallSite,System.__Canon,System.Nullable`1[Int32])
45.10 ( 4.15% of base) : 194188.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid1(System.Runtime.CompilerServices.CallSite,int)
45.10 ( 4.15% of base) : 194187.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid1(System.Runtime.CompilerServices.CallSite,short)
45.10 ( 4.15% of base) : 194186.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid1(System.Runtime.CompilerServices.CallSite,ubyte)
45.10 ( 3.96% of base) : 194202.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid2(System.Runtime.CompilerServices.CallSite,int,System.Nullable`1[Int32])
45.10 ( 3.69% of base) : 194204.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid2(System.Runtime.CompilerServices.CallSite,System.Numerics.Vector`1[Single],System.Nullable`1[Int32])
45.10 ( 3.92% of base) : 194203.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid2(System.Runtime.CompilerServices.CallSite,double,System.Nullable`1[Int32])
32.80 ( 4.63% of base) : 8370.dasm - Microsoft.FSharp.Collections.SetTreeModule:compareStacks(System.Collections.Generic.IComparer`1[__Canon],Microsoft.FSharp.Collections.FSharpList`1[__Canon],Microsoft.FSharp.Collections.FSharpList`1[__Canon]):int
32.60 ( 2.71% of base) : 194176.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecute1(System.Runtime.CompilerServices.CallSite,System.Numerics.Vector`1[Single]):System.Nullable`1[Int32]
Top method improvements (PerfScoreUnits):
-81064793292668928.00 (-0.00% of base) : 31347.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.SyntaxNormalizer:RewriteTrivia(Microsoft.CodeAnalysis.SyntaxTriviaList,int,bool,bool,bool,int):Microsoft.CodeAnalysis.SyntaxTriviaList:this
-2147483648.40 (-1.80% of base) : 142296.dasm - ILCompiler.DependencyAnalysis.ReadyToRunObjectWriter:EmitObjectData(ILCompiler.PEWriter.R2RPEBuilder,ObjectData,int,System.String,ILCompiler.DependencyAnalysis.ObjectNodeSection):this
-21506.35 (-7.66% of base) : 204664.dasm - System.Net.Http.MultiProxy:TryParseProxyConfigPart(System.ReadOnlySpan`1[Char],bool,byref,byref):bool
-4610.80 (-2.08% of base) : 118599.dasm - System.Data.ProviderBase.SchemaMapping:SetupSchemaWithKeyInfo(int,int,bool,System.Data.DataColumn,System.Object):System.Object[]:this
-3470.37 (-0.62% of base) : 154744.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this
-2560.40 (-0.12% of base) : 233625.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo:.ctor(System.Type,System.Text.Json.Serialization.JsonConverter,System.Text.Json.JsonSerializerOptions):this
-1024.40 (-0.00% of base) : 198974.dasm - SelectManySingleSelectorIterator`2[__Canon,Nullable`1][System.__Canon,System.Nullable`1[System.Int32]]:ToArray():System.Nullable`1[System.Int32][]:this
-1024.40 (-0.00% of base) : 198981.dasm - SelectManySingleSelectorIterator`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:ToArray():System.Nullable`1[System.Int32][]:this
-272.80 (-1.39% of base) : 223045.dasm - System.Security.Cryptography.Xml.Utils:GetPropagatedAttributes(System.Xml.XmlElement):System.Security.Cryptography.Xml.CanonicalXmlNodeList
-257.60 (-26.70% of base) : 157185.dasm - Internal.TypeSystem.CustomAttributeTypeNameParser:ResolveCustomAttributeTypeDefinitionName(System.String,Internal.TypeSystem.ModuleDesc,bool):Internal.TypeSystem.MetadataType
-256.40 (-0.07% of base) : 154753.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindingScore(System.Reflection.ParameterInfo[],System.Int32[],System.Type[],bool,int):int:this
-237.60 (-2.72% of base) : 113486.dasm - <BuildProjects>d__34:MoveNext():this
-212.00 (-9.88% of base) : 157184.dasm - Internal.TypeSystem.CustomAttributeTypeNameParser:GetTypeByCustomAttributeTypeName(Internal.TypeSystem.ModuleDesc,System.String,bool,System.Func`4[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Internal.TypeSystem.ModuleDesc, ILCompiler.TypeSystem, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null],[System.Boolean, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Internal.TypeSystem.MetadataType, ILCompiler.TypeSystem, Version=7.0.0.0, Culture=neutral, PublicKeyToken=null]]):Internal.TypeSystem.TypeDesc
-185.20 (-4.55% of base) : 23484.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAnonymousObjectCreation(Microsoft.CodeAnalysis.CSharp.Syntax.AnonymousObjectCreationExpressionSyntax,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
-183.90 (-5.88% of base) : 154609.dasm - Microsoft.VisualBasic.CompilerServices.VB6File:GetArrayData(System.Array,System.Type,int,int,int):this
-181.65 (-0.49% of base) : 53257.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol:AddWithEventsHookupConstructorsIfNeeded(MembersAndInitializersBuilder,Microsoft.CodeAnalysis.DiagnosticBag):this
-160.80 (-0.63% of base) : 212921.dasm - <ReadContentFromAsync>d__8:MoveNext():this
-160.80 (-3.26% of base) : 8973.dasm - Microsoft.FSharp.Collections.Array3DModule:Map(Microsoft.FSharp.Core.FSharpFunc`2[__Canon,Nullable`1],System.__Canon[,,]):System.Nullable`1[System.Int32][,,]
-160.80 (-3.28% of base) : 8974.dasm - Microsoft.FSharp.Collections.Array3DModule:Map(Microsoft.FSharp.Core.FSharpFunc`2[Byte,Nullable`1],System.Byte[,,]):System.Nullable`1[System.Int32][,,]
-160.80 (-3.19% of base) : 8977.dasm - Microsoft.FSharp.Collections.Array3DModule:MapIndexed(Microsoft.FSharp.Core.FSharpFunc`2[Int32,__Canon],System.__Canon[,,]):System.Nullable`1[System.Int32][,,]
Top method regressions (percentages):
5.10 ( 7.92% of base) : 56231.dasm - Microsoft.CodeAnalysis.VisualBasic.ExpressionLambdaRewriter:Convert(Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,bool):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this
4.85 ( 6.75% of base) : 226834.dasm - System.Security.Cryptography.Pkcs.Pkcs12Kdf:CircularCopy(System.ReadOnlySpan`1[Byte],System.Span`1[Byte])
4.85 ( 6.75% of base) : 221909.dasm - System.Security.Cryptography.Pkcs.Pkcs12Kdf:CircularCopy(System.ReadOnlySpan`1[Byte],System.Span`1[Byte])
67.50 ( 6.21% of base) : 194185.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid1(System.Runtime.CompilerServices.CallSite,System.__Canon)
68.40 ( 6.10% of base) : 194171.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecute1(System.Runtime.CompilerServices.CallSite,System.__Canon):System.Nullable`1[Int32]
67.50 ( 5.93% of base) : 194199.dasm - System.Dynamic.UpdateDelegates:UpdateAndExecuteVoid2(System.Runtime.CompilerServices.CallSite,System.__Canon,System.Nullable`1[Int32])
1.30 ( 4.90% of base) : 120113.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.30 ( 4.90% of base) : 152833.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.30 ( 4.90% of base) : 183525.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.30 ( 4.90% of base) : 180088.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.30 ( 4.90% of base) : 214324.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.30 ( 4.90% of base) : 235572.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.30 ( 4.90% of base) : 155818.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.30 ( 4.90% of base) : 151954.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.30 ( 4.90% of base) : 228234.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.30 ( 4.90% of base) : 228428.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.30 ( 4.90% of base) : 181518.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.30 ( 4.90% of base) : 176988.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.30 ( 4.90% of base) : 190314.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
1.30 ( 4.90% of base) : 200013.dasm - System.Runtime.InteropServices.GeneratedMarshalling.ArrayMarshaller`1[__Canon][System.__Canon]:set_Value(long):this
Top method improvements (percentages):
-257.60 (-26.70% of base) : 157185.dasm - Internal.TypeSystem.CustomAttributeTypeNameParser:ResolveCustomAttributeTypeDefinitionName(System.String,Internal.TypeSystem.ModuleDesc,bool):Internal.TypeSystem.MetadataType
-7.10 (-18.39% of base) : 69385.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:BadToken(System.String):Microsoft.CodeAnalysis.SyntaxToken
-7.10 (-16.75% of base) : 68466.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:CharacterLiteralToken(System.String,ushort):Microsoft.CodeAnalysis.SyntaxToken
-7.10 (-16.75% of base) : 68462.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:DateLiteralToken(System.String,System.DateTime):Microsoft.CodeAnalysis.SyntaxToken
-7.10 (-16.75% of base) : 68454.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:DocumentationCommentLineBreakToken(System.String,System.String):Microsoft.CodeAnalysis.SyntaxToken
-7.10 (-16.75% of base) : 68458.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:InterpolatedStringTextToken(System.String,System.String):Microsoft.CodeAnalysis.SyntaxToken
-7.10 (-16.75% of base) : 68464.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:StringLiteralToken(System.String,System.String):Microsoft.CodeAnalysis.SyntaxToken
-7.10 (-16.75% of base) : 68516.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:XmlEntityLiteralToken(System.String,System.String):Microsoft.CodeAnalysis.SyntaxToken
-7.10 (-16.75% of base) : 68512.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:XmlNameToken(System.String,ushort):Microsoft.CodeAnalysis.SyntaxToken
-7.10 (-16.75% of base) : 68514.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:XmlTextLiteralToken(System.String,System.String):Microsoft.CodeAnalysis.SyntaxToken
-5.82 (-16.33% of base) : 208685.dasm - <>c:<GetRequestStreamAsync>b__67_1(System.AsyncCallback,System.Object):System.IAsyncResult:this
-5.82 (-16.33% of base) : 208687.dasm - <>c:<GetResponseAsync>b__68_1(System.AsyncCallback,System.Object):System.IAsyncResult:this
-140.40 (-15.95% of base) : 11707.dasm - Microsoft.FSharp.Primitives.Basics.Array:splitInto$cont@1166(int,System.__Canon[],int,Microsoft.FSharp.Core.Unit):System.__Canon[]
-7.10 (-15.07% of base) : 68456.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:XmlTextToken(ushort,System.String,System.String):Microsoft.CodeAnalysis.SyntaxToken
-7.10 (-13.20% of base) : 68460.dasm - Microsoft.CodeAnalysis.VisualBasic.SyntaxFactory:DecimalLiteralToken(System.String,int,System.Decimal):Microsoft.CodeAnalysis.SyntaxToken
-71.60 (-12.39% of base) : 15072.dasm - HashCompare:check0@965(GenericComparer,System.Array,System.Array,long,long,long,long,long,long,long):int
-71.60 (-11.46% of base) : 14998.dasm - HashCompare:check0@1416-1(bool,System.Collections.IEqualityComparer,System.Array,System.Array,long,long,long,long,long,long,long):bool
-41.20 (-11.30% of base) : 40503.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:Translate(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CSharp.BoundArgListOperator,bool):Microsoft.Cci.IMethodReference:this
-2.80 (-10.73% of base) : 44684.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol:GetCustomAttributesForToken(System.Reflection.Metadata.EntityHandle):System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
-2.80 (-10.73% of base) : 51577.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.Metadata.PE.PEModuleSymbol:GetCustomAttributesForToken(System.Reflection.Metadata.EntityHandle):System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.VisualBasic.Symbols.VisualBasicAttributeData, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
1148 total methods with Perf Score differences (836 improved, 312 regressed), 536 unchanged.
--------------------------------------------------------------------------------

Personally, it seems to me that the regressions here are too numerous to ignore, and there is no easy fix, so we may yet be better off with the quirk.

@BruceForstall

Copy link
Copy Markdown
Contributor

but this file does not seem to be present in the downloaded artifacts. Maybe I'm looking at the wrong place? Any idea @kunalspathak / @BruceForstall?

dotnet/jitutils#347 added the logic to save files. Looks like we save the "top files" diffs, but not the files corresponding to the "top methods", which would also be useful (maybe more useful?). If the DisplayMethodMetric function could be augmented to appropriately set RetainFile, this could be done.

@kunalspathak

Copy link
Copy Markdown
Contributor

Haven't seen deeply, but I see more resolution movs being added for critical edges. Also, here is another type of regression for linux/arm64/crossgen2:

@@ -1,3 +1,4 @@- adrp x28, [HIGH RELOC #0xd1ffab1e] // function address- add x28, x28, [LOW RELOC #0xd1ffab1e]- ;; bbWeight=1 PerfScore 33.50
\ No newline at end of file
+ adrp x0, [HIGH RELOC #0xd1ffab1e] // function address+ add x0, x0, [LOW RELOC #0xd1ffab1e]+ mov x28, x0+ ;; bbWeight=1 PerfScore 34.00
\ No newline at end of file

here are too numerous to ignore

I agree.

@jakobbotschjakobbotsch left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, overall improvement and the regressions look minor now. @kunalspathak want to give the diffs another quick lookover now?

@kunalspathakkunalspathak left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. I have suggested to remove the reference of "previous behavior" in a follow up PR.

Comment threadsrc/coreclr/jit/copyprop.cpp
@kunalspathak
kunalspathak merged commit d21a17f into dotnet:mainMar 2, 2022
@SingleAccretion
SingleAccretion deleted the Copy-Propagation-No-Lhs-VN branch March 6, 2022 20:56
@ghostghost locked as resolved and limited conversation to collaborators Apr 6, 2022
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIcommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@SingleAccretion@kunalspathak@jakobbotsch@BruceForstall