-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Stop using CLS_VAR
for "boxed statics"
#63845
Stop using CLS_VAR
for "boxed statics"
#63845
Conversation
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsThis set of changes makes the compiler always use the We are expecting some positive diffs associated with "better" VNs here because the new
|
4e9128c
to
803c415
Compare
b20a734
to
680c21d
Compare
OSX failure is #64189. @dotnet/jit-contrib |
This allows us to recognize loads made through indirections off of locals to which these addresses are assigned. There is an interesting regression here: VNs for addresses that represent symbolically different fields with the same physical offset will now be numbered differently. Fortunately, it does not seem like this is a widespread problem. The next step towards deleting CLS_VAR.
This is needed because we can see cases where code refers to the same field both via the VNF_PtrToStatic mechanism and the "IsFieldAddr" mechanism, causing mismatches along the way (since the VNF_PtrToStatic path does use "first field maps").
Some diffs for this change: they're caused by the fact we sometimes have inlining or source code refer to the same static both via "ldsflda" (which was numbered with an address for the box) and "ldsfld" (which used CLS_VAR and the handle).
No longer needed. No diffs.
This solves some of the bad regressions where we now have VNF_PtrToStatic addresses instead of ADD(NonNullInd, Const). In principle, this should be done for all VNFuncs known to not be null, but that is a larger change which leads to lots of regressions, so the special casing will have to do for now.
680c21d
to
cbbf50b
Compare
src/coreclr/jit/valuenum.cpp
Outdated
ValueNumPair excChkSet = vnStore->VNPForEmptyExcSet(); | ||
|
||
VNFuncApp baseAddrFunc; | ||
if (!vnStore->GetVNFunc(vnpBaseNorm.GetLiberal(), &baseAddrFunc) || (baseAddrFunc.m_func != VNF_PtrToStatic)) | ||
{ | ||
excChkSet.SetLiberal( | ||
vnStore->VNExcSetSingleton(vnStore->VNForFunc(TYP_REF, VNF_NullPtrExc, vnpBaseNorm.GetLiberal()))); | ||
} | ||
|
||
ValueNumPair excChkSet = vnStore->VNPExcSetSingleton(vnStore->VNPairForFunc(TYP_REF, VNF_NullPtrExc, vnpBaseNorm)); | ||
if (!vnStore->GetVNFunc(vnpBaseNorm.GetConservative(), &baseAddrFunc) || (baseAddrFunc.m_func != VNF_PtrToStatic)) | ||
{ | ||
excChkSet.SetConservative( | ||
vnStore->VNExcSetSingleton(vnStore->VNForFunc(TYP_REF, VNF_NullPtrExc, vnpBaseNorm.GetConservative()))); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we check the non-faulting flags more generally here instead?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For the common cases the non-faultness is already checked by OperMayThrow
in fgValueNumberAddExceptionSet
.
The general form of this check is IsKnownNonNull(vnpBaseNorm.GetLiberal/Conservative)
, but it leads to many regressions (as well as some improvements).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why does it cause additional regressions?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is something in how that particular check enables new CSEs that seems to hit weak points in the heuristic and/or downstream allocation. I. e. we get more CSEs, but a lot of them are not profitable.
For reference, here are some of the diffs for the IsKnownNotNull
change:
Win-x64 diffs
Benchmarks, code size:
Total bytes of base: 13127786 (overridden on cmd)
Total bytes of diff: 13128181 (overridden on cmd)
Total bytes of delta: 395 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Top file regressions (bytes):
122 : 2938.dasm (5.64% of base)
104 : 2912.dasm (4.58% of base)
28 : 34011.dasm (1.92% of base)
24 : 32996.dasm (5.56% of base)
23 : 32995.dasm (6.93% of base)
19 : 38750.dasm (1.99% of base)
19 : 8736.dasm (2.81% of base)
17 : 33687.dasm (0.87% of base)
16 : 7760.dasm (0.14% of base)
12 : 8446.dasm (1.81% of base)
12 : 1005.dasm (3.14% of base)
11 : 7557.dasm (1.44% of base)
9 : 30092.dasm (0.71% of base)
7 : 6086.dasm (0.89% of base)
7 : 38438.dasm (0.87% of base)
7 : 10034.dasm (1.38% of base)
7 : 35026.dasm (1.36% of base)
7 : 9178.dasm (0.41% of base)
6 : 37438.dasm (3.51% of base)
4 : 32979.dasm (0.59% of base)
Top file improvements (bytes):
-50 : 38322.dasm (-3.57% of base)
-24 : 37730.dasm (-7.32% of base)
-8 : 33586.dasm (-0.42% of base)
-6 : 37845.dasm (-0.46% of base)
-5 : 39951.dasm (-1.95% of base)
-3 : 2686.dasm (-0.29% of base)
-2 : 3629.dasm (-0.81% of base)
-2 : 1040.dasm (-0.10% of base)
-2 : 3625.dasm (-0.93% of base)
-1 : 1292.dasm (-0.06% of base)
-1 : 8199.dasm (-0.15% of base)
-1 : 1198.dasm (-0.07% of base)
-1 : 2763.dasm (-0.23% of base)
-1 : 32309.dasm (-0.16% of base)
-1 : 7630.dasm (-0.26% of base)
-1 : 8671.dasm (-0.01% of base)
55 total files with Code Size differences (16 improved, 39 regressed), 1 unchanged.
Top method regressions (bytes):
122 ( 5.64% of base) : 2938.dasm - Sigil.Emit`1[__Canon][System.__Canon]:Call(System.Reflection.MethodInfo,System.Type[]):Sigil.Emit`1[__Canon]:this
104 ( 4.58% of base) : 2912.dasm - Sigil.Emit`1[__Canon][System.__Canon]:CallVirtual(System.Reflection.MethodInfo,System.Type,System.Type[]):Sigil.Emit`1[__Canon]:this
28 ( 1.92% of base) : 34011.dasm - BinderFactoryVisitor:VisitCompilationUnit(Microsoft.CodeAnalysis.CSharp.Syntax.CompilationUnitSyntax,bool,bool):Microsoft.CodeAnalysis.CSharp.InContainerBinder:this
24 ( 5.56% of base) : 32996.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Identifier(Microsoft.CodeAnalysis.GreenNode,System.String,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
23 ( 6.93% of base) : 32995.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Identifier(ushort,Microsoft.CodeAnalysis.GreenNode,System.String,System.String,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
19 ( 1.99% of base) : 38750.dasm - SIMD.RayTracerBench:RenderLoop(int):this
19 ( 2.81% of base) : 8736.dasm - System.Xml.Serialization.CodeGenerator:InitILGeneration(System.Type[],System.String[],bool):this
17 ( 0.87% of base) : 33687.dasm - Microsoft.CodeAnalysis.MetadataHelpers:GetInfoForImmediateNamespaceMembers(bool,int,System.Collections.Generic.IEnumerable`1[[System.Linq.IGrouping`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Reflection.Metadata.TypeDefinitionHandle, System.Reflection.Metadata, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]], System.Linq, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]],System.StringComparer,byref,byref)
16 ( 0.14% of base) : 7760.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,bool,bool,bool):MessagePack.Internal.ObjectSerializationInfo
12 ( 1.81% of base) : 8446.dasm - Newtonsoft.Json.Utilities.ReflectionUtils:GetChildPrivateProperties(System.Collections.Generic.IList`1[[System.Reflection.PropertyInfo, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Type,int)
12 ( 3.14% of base) : 1005.dasm - System.Text.RegularExpressions.RegexNode:AddChild(System.Text.RegularExpressions.RegexNode):this
11 ( 1.44% of base) : 7557.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeToSymbolicConverter:<Convert>g__FlattenNestedConcatenations|9_2(System.Text.RegularExpressions.RegexNode):System.Collections.Generic.List`1[[System.Text.RegularExpressions.RegexNode, System.Text.RegularExpressions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]
9 ( 0.71% of base) : 30092.dasm - System.Diagnostics.NtProcessInfoHelper:GetProcessInfos(System.ReadOnlySpan`1[Byte],System.Nullable`1[Int32]):System.Diagnostics.ProcessInfo[]
7 ( 1.36% of base) : 35026.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEFieldSymbol:IsFixedBuffer(byref,byref):bool:this
7 ( 0.89% of base) : 6086.dasm - System.Net.Http.Headers.HttpHeaders:TryParseAndAddRawHeaderValue(System.Net.Http.Headers.HeaderDescriptor,HeaderStoreItemInfo,System.String,bool):bool
7 ( 0.41% of base) : 9178.dasm - System.Runtime.Serialization.FormatterServices:InternalGetSerializableMembers(System.Type):System.Reflection.FieldInfo[]
7 ( 0.87% of base) : 38438.dasm - System.Threading.Tasks.Task:AddTaskContinuationComplex(System.Object,bool):bool:this
7 ( 1.38% of base) : 10034.dasm - System.Xml.Serialization.LocalScope:AddToFreeLocals(System.Collections.Generic.Dictionary`2[[System.ValueTuple`2[[System.Type, 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],[System.Collections.Generic.Queue`1[[System.Reflection.Emit.LocalBuilder, 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
6 ( 3.51% of base) : 37438.dasm - <>c__DisplayClass8_0[Int32][System.Int32]:<SetupConcurrentStackIteration>b__0():this
4 ( 3.20% of base) : 939.dasm - JetStream.Hand:.ctor():this
Top method improvements (bytes):
-50 (-3.57% of base) : 38322.dasm - Algorithms.VectorDoubleRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this
-24 (-7.32% of base) : 37730.dasm - LinqBenchmarks:Where00ForX():bool:this
-8 (-0.42% of base) : 33586.dasm - Microsoft.CodeAnalysis.CSharp.Imports:FromGlobalUsings(Microsoft.CodeAnalysis.CSharp.CSharpCompilation):Microsoft.CodeAnalysis.CSharp.Imports
-6 (-0.46% of base) : 37845.dasm - Algorithms.VectorDoubleRenderer:RenderSingleThreadedNoADT(float,float,float,float,float):this
-5 (-1.95% of base) : 39951.dasm - Burgers:Setup():this
-3 (-0.29% of base) : 2686.dasm - Sigil.Impl.RollingVerifier:RemoveUnnecessaryVerifiers():this
-2 (-0.81% of base) : 3629.dasm - System.Memory.Constructors`1[__Canon][System.__Canon]:.ctor():this
-2 (-0.93% of base) : 3625.dasm - System.Memory.Constructors`1[Byte][System.Byte]:.ctor():this
-2 (-0.10% of base) : 1040.dasm - System.Text.RegularExpressions.RegexFindOptimizations:.ctor(System.Text.RegularExpressions.RegexTree,System.Globalization.CultureInfo):this
-1 (-0.07% of base) : 1198.dasm - <>c__DisplayClass121_0:<EmitGo>g__EmitAlternation|6(System.Text.RegularExpressions.RegexNode):this
-1 (-0.15% of base) : 8199.dasm - <>c__DisplayClass35_0[__Canon][System.__Canon]:<Emit>b__2(System.Reflection.Emit.ILGenerator,bool,System.Text.StringBuilder):this
-1 (-0.26% of base) : 7630.dasm - JetStream.Statistics:segmentTimeSeriesByMaximizingSchwarzCriterion(System.Double[],double,int):System.Int32[]
-1 (-0.06% of base) : 1292.dasm - MicroBenchmarks.Serializers.DataGenerator:Generate():System.__Canon
-1 (-0.23% of base) : 2763.dasm - Sigil.Impl.StackTransition:.ctor(System.Collections.Generic.IEnumerable`1[[System.Type, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Generic.IEnumerable`1[[System.Type, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],Sigil.Impl.VerificationCallback):this
-1 (-0.16% of base) : 32309.dasm - System.Globalization.HebrewCalendar:GetDatePart(long,int):int:this
-1 (-0.01% of base) : 8671.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportAccessorMapping(System.Xml.Serialization.MemberMapping,System.Xml.Serialization.FieldModel,System.Xml.Serialization.XmlAttributes,System.String,System.Type,bool,bool,System.Xml.Serialization.RecursionLimiter):this
Top method regressions (percentages):
23 ( 6.93% of base) : 32995.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Identifier(ushort,Microsoft.CodeAnalysis.GreenNode,System.String,System.String,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
122 ( 5.64% of base) : 2938.dasm - Sigil.Emit`1[__Canon][System.__Canon]:Call(System.Reflection.MethodInfo,System.Type[]):Sigil.Emit`1[__Canon]:this
24 ( 5.56% of base) : 32996.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Identifier(Microsoft.CodeAnalysis.GreenNode,System.String,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
104 ( 4.58% of base) : 2912.dasm - Sigil.Emit`1[__Canon][System.__Canon]:CallVirtual(System.Reflection.MethodInfo,System.Type,System.Type[]):Sigil.Emit`1[__Canon]:this
6 ( 3.51% of base) : 37438.dasm - <>c__DisplayClass8_0[Int32][System.Int32]:<SetupConcurrentStackIteration>b__0():this
4 ( 3.20% of base) : 939.dasm - JetStream.Hand:.ctor():this
12 ( 3.14% of base) : 1005.dasm - System.Text.RegularExpressions.RegexNode:AddChild(System.Text.RegularExpressions.RegexNode):this
19 ( 2.81% of base) : 8736.dasm - System.Xml.Serialization.CodeGenerator:InitILGeneration(System.Type[],System.String[],bool):this
19 ( 1.99% of base) : 38750.dasm - SIMD.RayTracerBench:RenderLoop(int):this
2 ( 1.94% of base) : 32636.dasm - System.Collections.Concurrent.ConcurrentStack`1[Int32][System.Int32]:Push(int):this
28 ( 1.92% of base) : 34011.dasm - BinderFactoryVisitor:VisitCompilationUnit(Microsoft.CodeAnalysis.CSharp.Syntax.CompilationUnitSyntax,bool,bool):Microsoft.CodeAnalysis.CSharp.InContainerBinder:this
12 ( 1.81% of base) : 8446.dasm - Newtonsoft.Json.Utilities.ReflectionUtils:GetChildPrivateProperties(System.Collections.Generic.IList`1[[System.Reflection.PropertyInfo, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Type,int)
2 ( 1.80% of base) : 32526.dasm - System.Collections.Concurrent.ConcurrentStack`1[__Canon][System.__Canon]:Push(System.__Canon):this
11 ( 1.44% of base) : 7557.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeToSymbolicConverter:<Convert>g__FlattenNestedConcatenations|9_2(System.Text.RegularExpressions.RegexNode):System.Collections.Generic.List`1[[System.Text.RegularExpressions.RegexNode, System.Text.RegularExpressions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]
7 ( 1.38% of base) : 10034.dasm - System.Xml.Serialization.LocalScope:AddToFreeLocals(System.Collections.Generic.Dictionary`2[[System.ValueTuple`2[[System.Type, 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],[System.Collections.Generic.Queue`1[[System.Reflection.Emit.LocalBuilder, 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
7 ( 1.36% of base) : 35026.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEFieldSymbol:IsFixedBuffer(byref,byref):bool:this
4 ( 1.00% of base) : 10615.dasm - System.Xml.XmlDocument:LoadXml(System.String):this
4 ( 0.92% of base) : 12149.dasm - SmallXmlNodeList:Add(System.Object):this
7 ( 0.89% of base) : 6086.dasm - System.Net.Http.Headers.HttpHeaders:TryParseAndAddRawHeaderValue(System.Net.Http.Headers.HeaderDescriptor,HeaderStoreItemInfo,System.String,bool):bool
17 ( 0.87% of base) : 33687.dasm - Microsoft.CodeAnalysis.MetadataHelpers:GetInfoForImmediateNamespaceMembers(bool,int,System.Collections.Generic.IEnumerable`1[[System.Linq.IGrouping`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Reflection.Metadata.TypeDefinitionHandle, System.Reflection.Metadata, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]], System.Linq, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]],System.StringComparer,byref,byref)
Top method improvements (percentages):
-24 (-7.32% of base) : 37730.dasm - LinqBenchmarks:Where00ForX():bool:this
-50 (-3.57% of base) : 38322.dasm - Algorithms.VectorDoubleRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this
-5 (-1.95% of base) : 39951.dasm - Burgers:Setup():this
-2 (-0.93% of base) : 3625.dasm - System.Memory.Constructors`1[Byte][System.Byte]:.ctor():this
-2 (-0.81% of base) : 3629.dasm - System.Memory.Constructors`1[__Canon][System.__Canon]:.ctor():this
-6 (-0.46% of base) : 37845.dasm - Algorithms.VectorDoubleRenderer:RenderSingleThreadedNoADT(float,float,float,float,float):this
-8 (-0.42% of base) : 33586.dasm - Microsoft.CodeAnalysis.CSharp.Imports:FromGlobalUsings(Microsoft.CodeAnalysis.CSharp.CSharpCompilation):Microsoft.CodeAnalysis.CSharp.Imports
-3 (-0.29% of base) : 2686.dasm - Sigil.Impl.RollingVerifier:RemoveUnnecessaryVerifiers():this
-1 (-0.26% of base) : 7630.dasm - JetStream.Statistics:segmentTimeSeriesByMaximizingSchwarzCriterion(System.Double[],double,int):System.Int32[]
-1 (-0.23% of base) : 2763.dasm - Sigil.Impl.StackTransition:.ctor(System.Collections.Generic.IEnumerable`1[[System.Type, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Generic.IEnumerable`1[[System.Type, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],Sigil.Impl.VerificationCallback):this
-1 (-0.16% of base) : 32309.dasm - System.Globalization.HebrewCalendar:GetDatePart(long,int):int:this
-1 (-0.15% of base) : 8199.dasm - <>c__DisplayClass35_0[__Canon][System.__Canon]:<Emit>b__2(System.Reflection.Emit.ILGenerator,bool,System.Text.StringBuilder):this
-2 (-0.10% of base) : 1040.dasm - System.Text.RegularExpressions.RegexFindOptimizations:.ctor(System.Text.RegularExpressions.RegexTree,System.Globalization.CultureInfo):this
-1 (-0.07% of base) : 1198.dasm - <>c__DisplayClass121_0:<EmitGo>g__EmitAlternation|6(System.Text.RegularExpressions.RegexNode):this
-1 (-0.06% of base) : 1292.dasm - MicroBenchmarks.Serializers.DataGenerator:Generate():System.__Canon
-1 (-0.01% of base) : 8671.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportAccessorMapping(System.Xml.Serialization.MemberMapping,System.Xml.Serialization.FieldModel,System.Xml.Serialization.XmlAttributes,System.String,System.Type,bool,bool,System.Xml.Serialization.RecursionLimiter):this
55 total methods with Code Size differences (16 improved, 39 regressed), 1 unchanged.
Benchmarks, PerfScore:
Summary of Perf Score diffs:
(Lower is better)
Total PerfScoreUnits of base: 3081793.2500000005
Total PerfScoreUnits of diff: 2985966.4699999993
Total PerfScoreUnits of delta: -95826.78 (-3.11 % of base)
Total relative delta: -0.19
diff is an improvement.
relative diff is an improvement.
Top file regressions (PerfScoreUnits):
21.20 : 2938.dasm (4.29% of base)
18.77 : 2912.dasm (3.55% of base)
9.90 : 8736.dasm (2.89% of base)
8.70 : 9178.dasm (0.46% of base)
7.15 : 38750.dasm (0.88% of base)
5.70 : 33687.dasm (0.07% of base)
5.20 : 8446.dasm (0.46% of base)
3.65 : 32996.dasm (3.83% of base)
2.80 : 34011.dasm (0.81% of base)
2.45 : 1005.dasm (2.64% of base)
2.05 : 32995.dasm (2.63% of base)
1.70 : 38438.dasm (0.60% of base)
1.70 : 35026.dasm (1.28% of base)
1.45 : 6086.dasm (0.42% of base)
1.27 : 939.dasm (3.33% of base)
1.10 : 7557.dasm (0.31% of base)
0.55 : 3629.dasm (0.70% of base)
0.55 : 3625.dasm (0.81% of base)
0.40 : 10615.dasm (0.37% of base)
Top file improvements (PerfScoreUnits):
-95742.30 : 7760.dasm (-3.17% of base)
-62.90 : 37730.dasm (-7.54% of base)
-14.05 : 2686.dasm (-1.37% of base)
-11.80 : 39140.dasm (-0.60% of base)
-11.10 : 1198.dasm (-1.48% of base)
-11.10 : 32309.dasm (-4.75% of base)
-9.40 : 38322.dasm (-0.08% of base)
-7.70 : 37845.dasm (-0.06% of base)
-6.60 : 39951.dasm (-6.64% of base)
-5.80 : 34232.dasm (-2.08% of base)
-5.80 : 39753.dasm (-2.66% of base)
-4.10 : 30092.dasm (-0.26% of base)
-3.90 : 37438.dasm (-2.49% of base)
-2.60 : 8671.dasm (-0.04% of base)
-1.90 : 33462.dasm (-0.78% of base)
-1.85 : 8199.dasm (-1.21% of base)
-1.85 : 7630.dasm (-0.37% of base)
-1.80 : 33586.dasm (-0.15% of base)
-1.30 : 2621.dasm (-0.17% of base)
-1.30 : 32636.dasm (-3.98% of base)
56 total files with Perf Score differences (37 improved, 19 regressed), 0 unchanged.
Top method regressions (PerfScoreUnits):
21.20 ( 4.29% of base) : 2938.dasm - Sigil.Emit`1[__Canon][System.__Canon]:Call(System.Reflection.MethodInfo,System.Type[]):Sigil.Emit`1[__Canon]:this
18.77 ( 3.55% of base) : 2912.dasm - Sigil.Emit`1[__Canon][System.__Canon]:CallVirtual(System.Reflection.MethodInfo,System.Type,System.Type[]):Sigil.Emit`1[__Canon]:this
9.90 ( 2.89% of base) : 8736.dasm - System.Xml.Serialization.CodeGenerator:InitILGeneration(System.Type[],System.String[],bool):this
8.70 ( 0.46% of base) : 9178.dasm - System.Runtime.Serialization.FormatterServices:InternalGetSerializableMembers(System.Type):System.Reflection.FieldInfo[]
7.15 ( 0.88% of base) : 38750.dasm - SIMD.RayTracerBench:RenderLoop(int):this
5.70 ( 0.07% of base) : 33687.dasm - Microsoft.CodeAnalysis.MetadataHelpers:GetInfoForImmediateNamespaceMembers(bool,int,System.Collections.Generic.IEnumerable`1[[System.Linq.IGrouping`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Reflection.Metadata.TypeDefinitionHandle, System.Reflection.Metadata, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]], System.Linq, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]],System.StringComparer,byref,byref)
5.20 ( 0.46% of base) : 8446.dasm - Newtonsoft.Json.Utilities.ReflectionUtils:GetChildPrivateProperties(System.Collections.Generic.IList`1[[System.Reflection.PropertyInfo, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Type,int)
3.65 ( 3.83% of base) : 32996.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Identifier(Microsoft.CodeAnalysis.GreenNode,System.String,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
2.80 ( 0.81% of base) : 34011.dasm - BinderFactoryVisitor:VisitCompilationUnit(Microsoft.CodeAnalysis.CSharp.Syntax.CompilationUnitSyntax,bool,bool):Microsoft.CodeAnalysis.CSharp.InContainerBinder:this
2.45 ( 2.64% of base) : 1005.dasm - System.Text.RegularExpressions.RegexNode:AddChild(System.Text.RegularExpressions.RegexNode):this
2.05 ( 2.63% of base) : 32995.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Identifier(ushort,Microsoft.CodeAnalysis.GreenNode,System.String,System.String,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
1.70 ( 1.28% of base) : 35026.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEFieldSymbol:IsFixedBuffer(byref,byref):bool:this
1.70 ( 0.60% of base) : 38438.dasm - System.Threading.Tasks.Task:AddTaskContinuationComplex(System.Object,bool):bool:this
1.45 ( 0.42% of base) : 6086.dasm - System.Net.Http.Headers.HttpHeaders:TryParseAndAddRawHeaderValue(System.Net.Http.Headers.HeaderDescriptor,HeaderStoreItemInfo,System.String,bool):bool
1.27 ( 3.33% of base) : 939.dasm - JetStream.Hand:.ctor():this
1.10 ( 0.31% of base) : 7557.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeToSymbolicConverter:<Convert>g__FlattenNestedConcatenations|9_2(System.Text.RegularExpressions.RegexNode):System.Collections.Generic.List`1[[System.Text.RegularExpressions.RegexNode, System.Text.RegularExpressions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]
0.55 ( 0.70% of base) : 3629.dasm - System.Memory.Constructors`1[__Canon][System.__Canon]:.ctor():this
0.55 ( 0.81% of base) : 3625.dasm - System.Memory.Constructors`1[Byte][System.Byte]:.ctor():this
0.40 ( 0.37% of base) : 10615.dasm - System.Xml.XmlDocument:LoadXml(System.String):this
Top method improvements (PerfScoreUnits):
-95742.30 (-3.17% of base) : 7760.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,bool,bool,bool):MessagePack.Internal.ObjectSerializationInfo
-62.90 (-7.54% of base) : 37730.dasm - LinqBenchmarks:Where00ForX():bool:this
-14.05 (-1.37% of base) : 2686.dasm - Sigil.Impl.RollingVerifier:RemoveUnnecessaryVerifiers():this
-11.80 (-0.60% of base) : 39140.dasm - BenchmarksGame.ReverseComplement_6:Grouper()
-11.10 (-1.48% of base) : 1198.dasm - <>c__DisplayClass121_0:<EmitGo>g__EmitAlternation|6(System.Text.RegularExpressions.RegexNode):this
-11.10 (-4.75% of base) : 32309.dasm - System.Globalization.HebrewCalendar:GetDatePart(long,int):int:this
-9.40 (-0.08% of base) : 38322.dasm - Algorithms.VectorDoubleRenderer:RenderSingleThreadedWithADT(float,float,float,float,float):this
-7.70 (-0.06% of base) : 37845.dasm - Algorithms.VectorDoubleRenderer:RenderSingleThreadedNoADT(float,float,float,float,float):this
-6.60 (-6.64% of base) : 39951.dasm - Burgers:Setup():this
-5.80 (-2.08% of base) : 34232.dasm - Microsoft.CodeAnalysis.CSharp.ClsComplianceChecker:VisitNamespaceMembersAsTasks(Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceSymbol):this
-5.80 (-2.66% of base) : 39753.dasm - <>c__DisplayClass7_0[Int32][System.Int32]:<SetupConcurrentStackIteration>b__1():this
-4.10 (-0.26% of base) : 30092.dasm - System.Diagnostics.NtProcessInfoHelper:GetProcessInfos(System.ReadOnlySpan`1[Byte],System.Nullable`1[Int32]):System.Diagnostics.ProcessInfo[]
-3.90 (-2.49% of base) : 37438.dasm - <>c__DisplayClass8_0[Int32][System.Int32]:<SetupConcurrentStackIteration>b__0():this
-2.60 (-0.04% of base) : 8671.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportAccessorMapping(System.Xml.Serialization.MemberMapping,System.Xml.Serialization.FieldModel,System.Xml.Serialization.XmlAttributes,System.String,System.Type,bool,bool,System.Xml.Serialization.RecursionLimiter):this
-1.90 (-0.78% of base) : 33462.dasm - Microsoft.CodeAnalysis.PEAssembly:BuildInternalsVisibleToMap():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.Collections.Immutable.ImmutableArray`1[[System.Byte, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Collections.Immutable, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]:this
-1.85 (-1.21% of base) : 8199.dasm - <>c__DisplayClass35_0[__Canon][System.__Canon]:<Emit>b__2(System.Reflection.Emit.ILGenerator,bool,System.Text.StringBuilder):this
-1.85 (-0.37% of base) : 7630.dasm - JetStream.Statistics:segmentTimeSeriesByMaximizingSchwarzCriterion(System.Double[],double,int):System.Int32[]
-1.80 (-0.15% of base) : 33586.dasm - Microsoft.CodeAnalysis.CSharp.Imports:FromGlobalUsings(Microsoft.CodeAnalysis.CSharp.CSharpCompilation):Microsoft.CodeAnalysis.CSharp.Imports
-1.30 (-0.17% of base) : 2621.dasm - Jil.Common.ExtensionMethods:InvolvedTypes(System.Type):System.Collections.Generic.List`1[[System.Type, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]
-1.30 (-3.98% of base) : 32636.dasm - System.Collections.Concurrent.ConcurrentStack`1[Int32][System.Int32]:Push(int):this
Top method regressions (percentages):
21.20 ( 4.29% of base) : 2938.dasm - Sigil.Emit`1[__Canon][System.__Canon]:Call(System.Reflection.MethodInfo,System.Type[]):Sigil.Emit`1[__Canon]:this
3.65 ( 3.83% of base) : 32996.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Identifier(Microsoft.CodeAnalysis.GreenNode,System.String,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
18.77 ( 3.55% of base) : 2912.dasm - Sigil.Emit`1[__Canon][System.__Canon]:CallVirtual(System.Reflection.MethodInfo,System.Type,System.Type[]):Sigil.Emit`1[__Canon]:this
1.27 ( 3.33% of base) : 939.dasm - JetStream.Hand:.ctor():this
9.90 ( 2.89% of base) : 8736.dasm - System.Xml.Serialization.CodeGenerator:InitILGeneration(System.Type[],System.String[],bool):this
2.45 ( 2.64% of base) : 1005.dasm - System.Text.RegularExpressions.RegexNode:AddChild(System.Text.RegularExpressions.RegexNode):this
2.05 ( 2.63% of base) : 32995.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Identifier(ushort,Microsoft.CodeAnalysis.GreenNode,System.String,System.String,Microsoft.CodeAnalysis.GreenNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
1.70 ( 1.28% of base) : 35026.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEFieldSymbol:IsFixedBuffer(byref,byref):bool:this
7.15 ( 0.88% of base) : 38750.dasm - SIMD.RayTracerBench:RenderLoop(int):this
0.55 ( 0.81% of base) : 3625.dasm - System.Memory.Constructors`1[Byte][System.Byte]:.ctor():this
2.80 ( 0.81% of base) : 34011.dasm - BinderFactoryVisitor:VisitCompilationUnit(Microsoft.CodeAnalysis.CSharp.Syntax.CompilationUnitSyntax,bool,bool):Microsoft.CodeAnalysis.CSharp.InContainerBinder:this
0.55 ( 0.70% of base) : 3629.dasm - System.Memory.Constructors`1[__Canon][System.__Canon]:.ctor():this
1.70 ( 0.60% of base) : 38438.dasm - System.Threading.Tasks.Task:AddTaskContinuationComplex(System.Object,bool):bool:this
5.20 ( 0.46% of base) : 8446.dasm - Newtonsoft.Json.Utilities.ReflectionUtils:GetChildPrivateProperties(System.Collections.Generic.IList`1[[System.Reflection.PropertyInfo, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Type,int)
8.70 ( 0.46% of base) : 9178.dasm - System.Runtime.Serialization.FormatterServices:InternalGetSerializableMembers(System.Type):System.Reflection.FieldInfo[]
1.45 ( 0.42% of base) : 6086.dasm - System.Net.Http.Headers.HttpHeaders:TryParseAndAddRawHeaderValue(System.Net.Http.Headers.HeaderDescriptor,HeaderStoreItemInfo,System.String,bool):bool
0.40 ( 0.37% of base) : 10615.dasm - System.Xml.XmlDocument:LoadXml(System.String):this
1.10 ( 0.31% of base) : 7557.dasm - System.Text.RegularExpressions.Symbolic.RegexNodeToSymbolicConverter:<Convert>g__FlattenNestedConcatenations|9_2(System.Text.RegularExpressions.RegexNode):System.Collections.Generic.List`1[[System.Text.RegularExpressions.RegexNode, System.Text.RegularExpressions, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]
5.70 ( 0.07% of base) : 33687.dasm - Microsoft.CodeAnalysis.MetadataHelpers:GetInfoForImmediateNamespaceMembers(bool,int,System.Collections.Generic.IEnumerable`1[[System.Linq.IGrouping`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Reflection.Metadata.TypeDefinitionHandle, System.Reflection.Metadata, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]], System.Linq, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]],System.StringComparer,byref,byref)
Top method improvements (percentages):
-62.90 (-7.54% of base) : 37730.dasm - LinqBenchmarks:Where00ForX():bool:this
-6.60 (-6.64% of base) : 39951.dasm - Burgers:Setup():this
-11.10 (-4.75% of base) : 32309.dasm - System.Globalization.HebrewCalendar:GetDatePart(long,int):int:this
-1.30 (-3.98% of base) : 32636.dasm - System.Collections.Concurrent.ConcurrentStack`1[Int32][System.Int32]:Push(int):this
-1.30 (-3.52% of base) : 32526.dasm - System.Collections.Concurrent.ConcurrentStack`1[__Canon][System.__Canon]:Push(System.__Canon):this
-95742.30 (-3.17% of base) : 7760.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,bool,bool,bool):MessagePack.Internal.ObjectSerializationInfo
-5.80 (-2.66% of base) : 39753.dasm - <>c__DisplayClass7_0[Int32][System.Int32]:<SetupConcurrentStackIteration>b__1():this
-3.90 (-2.49% of base) : 37438.dasm - <>c__DisplayClass8_0[Int32][System.Int32]:<SetupConcurrentStackIteration>b__0():this
-5.80 (-2.08% of base) : 34232.dasm - Microsoft.CodeAnalysis.CSharp.ClsComplianceChecker:VisitNamespaceMembersAsTasks(Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceSymbol):this
-11.10 (-1.48% of base) : 1198.dasm - <>c__DisplayClass121_0:<EmitGo>g__EmitAlternation|6(System.Text.RegularExpressions.RegexNode):this
-14.05 (-1.37% of base) : 2686.dasm - Sigil.Impl.RollingVerifier:RemoveUnnecessaryVerifiers():this
-1.85 (-1.21% of base) : 8199.dasm - <>c__DisplayClass35_0[__Canon][System.__Canon]:<Emit>b__2(System.Reflection.Emit.ILGenerator,bool,System.Text.StringBuilder):this
-1.10 (-1.03% of base) : 12149.dasm - SmallXmlNodeList:Add(System.Object):this
-0.55 (-0.89% of base) : 34264.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:VisitNamedType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.TypeCompilationState):System.Object:this
-1.90 (-0.78% of base) : 33462.dasm - Microsoft.CodeAnalysis.PEAssembly:BuildInternalsVisibleToMap():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.Collections.Immutable.ImmutableArray`1[[System.Byte, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Collections.Immutable, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]:this
-11.80 (-0.60% of base) : 39140.dasm - BenchmarksGame.ReverseComplement_6:Grouper()
-0.60 (-0.56% of base) : 2763.dasm - Sigil.Impl.StackTransition:.ctor(System.Collections.Generic.IEnumerable`1[[System.Type, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Collections.Generic.IEnumerable`1[[System.Type, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],Sigil.Impl.VerificationCallback):this
-1.30 (-0.39% of base) : 10034.dasm - System.Xml.Serialization.LocalScope:AddToFreeLocals(System.Collections.Generic.Dictionary`2[[System.ValueTuple`2[[System.Type, 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],[System.Collections.Generic.Queue`1[[System.Reflection.Emit.LocalBuilder, 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
-0.15 (-0.37% of base) : 1092.dasm - System.Reflection.Emit.DynamicScope:.ctor():this
-0.95 (-0.37% of base) : 4016.dasm - System.Threading.CancellationTokenSource:Register(System.Delegate,System.Object,System.Threading.SynchronizationContext,System.Threading.ExecutionContext):System.Threading.CancellationTokenRegistration:this
56 total methods with Perf Score differences (37 improved, 19 regressed), 0 unchanged.
Libraries (PMI), code size:
Summary of Code Size diffs:
(Lower is better)
Total bytes of base: 47891504 (overridden on cmd)
Total bytes of diff: 47893878 (overridden on cmd)
Total bytes of delta: 2374 (0.00 % of base)
diff is a regression.
relative diff is a regression.
Top file regressions (bytes):
58 : 58157.dasm (2.69% of base)
51 : 28142.dasm (2.13% of base)
50 : 164155.dasm (1.97% of base)
49 : 56304.dasm (0.95% of base)
36 : 13302.dasm (10.98% of base)
34 : 28163.dasm (2.98% of base)
34 : 28166.dasm (2.41% of base)
34 : 225845.dasm (5.52% of base)
34 : 28135.dasm (2.75% of base)
34 : 28141.dasm (3.00% of base)
31 : 116212.dasm (1.27% of base)
30 : 22945.dasm (2.41% of base)
29 : 44985.dasm (1.92% of base)
27 : 28631.dasm (0.71% of base)
27 : 43144.dasm (3.70% of base)
27 : 73413.dasm (0.48% of base)
27 : 161660.dasm (1.34% of base)
24 : 35560.dasm (7.23% of base)
24 : 28139.dasm (0.64% of base)
23 : 163869.dasm (3.43% of base)
Top file improvements (bytes):
-35 : 148830.dasm (-0.90% of base)
-26 : 148824.dasm (-1.46% of base)
-24 : 115923.dasm (-2.08% of base)
-20 : 73083.dasm (-5.99% of base)
-20 : 145107.dasm (-0.64% of base)
-18 : 152313.dasm (-1.93% of base)
-17 : 69572.dasm (-1.28% of base)
-16 : 236053.dasm (-2.42% of base)
-16 : 157795.dasm (-1.25% of base)
-15 : 54440.dasm (-11.72% of base)
-12 : 55949.dasm (-1.15% of base)
-10 : 161812.dasm (-0.49% of base)
-9 : 102164.dasm (-0.88% of base)
-9 : 133866.dasm (-0.70% of base)
-9 : 133865.dasm (-0.77% of base)
-9 : 151712.dasm (-0.61% of base)
-8 : 205903.dasm (-0.27% of base)
-8 : 205910.dasm (-0.35% of base)
-8 : 205972.dasm (-0.56% of base)
-8 : 149607.dasm (-1.20% of base)
527 total files with Code Size differences (147 improved, 380 regressed), 21 unchanged.
Top method regressions (bytes):
58 ( 2.69% of base) : 58157.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxFactory:IntegerLiteralToken(System.String,int,int,long,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.IntegerLiteralTokenSyntax
51 ( 2.13% of base) : 28142.dasm - Microsoft.CodeAnalysis.CSharp.ExpressionLambdaRewriter:VisitObjectCreationExpressionInternal(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
50 ( 1.97% of base) : 164155.dasm - Microsoft.Extensions.Configuration.Xml.XmlStreamConfigurationProvider:Read(System.IO.Stream,Microsoft.Extensions.Configuration.Xml.XmlDocumentDecryptor):System.Collections.Generic.IDictionary`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]]
49 ( 0.95% of base) : 56304.dasm - Microsoft.CodeAnalysis.VisualBasic.LocalRewriter:LateMakeArgumentArrayArgument(Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.VisualBasic.BoundExpression, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableArray`1[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this
36 (10.98% of base) : 13302.dasm - OperatorIntrinsics:gen@5265-2(System.Numerics.Vector`1[Single],Microsoft.FSharp.Core.FSharpFunc`2[[System.Numerics.Vector`1[[System.Single, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.FSharp.Core.FSharpFunc`2[[System.Numerics.Vector`1[[System.Single, 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.Numerics.Vector`1[[System.Single, 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]],System.Numerics.Vector`1[Single],System.Numerics.Vector`1[Single],Microsoft.FSharp.Core.Unit):System.Collections.Generic.IEnumerator`1[Vector`1]
34 ( 2.98% of base) : 28163.dasm - Microsoft.CodeAnalysis.CSharp.ExpressionLambdaRewriter:VisitArrayAccess(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
34 ( 2.41% of base) : 28166.dasm - Microsoft.CodeAnalysis.CSharp.ExpressionLambdaRewriter:VisitArrayCreation(Microsoft.CodeAnalysis.CSharp.BoundArrayCreation):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
34 ( 2.75% of base) : 28135.dasm - Microsoft.CodeAnalysis.CSharp.ExpressionLambdaRewriter:VisitNullCoalescingOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingOperator):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
34 ( 3.00% of base) : 28141.dasm - Microsoft.CodeAnalysis.CSharp.ExpressionLambdaRewriter:VisitObjectCreationContinued(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
34 ( 5.52% of base) : 225845.dasm - System.Security.Cryptography.Pkcs.SignerInfo:VerifySignature(System.Security.Cryptography.Pkcs.CmsSignature,System.Security.Cryptography.X509Certificates.X509Certificate2,bool):bool:this
31 ( 1.27% of base) : 116212.dasm - System.Data.DataTable:SerializeConstraints(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext,int,bool):this
30 ( 2.41% of base) : 22945.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindScriptFieldInitializers(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedInteractiveInitializerMethod,System.Collections.Immutable.ImmutableArray`1[ImmutableArray`1],Microsoft.CodeAnalysis.ArrayBuilder`1[[Microsoft.CodeAnalysis.CSharp.BoundInitializer, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.DiagnosticBag,byref)
29 ( 1.92% of base) : 44985.dasm - BinderFactoryVisitor:VisitCompilationUnit(Microsoft.CodeAnalysis.CSharp.Syntax.CompilationUnitSyntax,bool,bool):Microsoft.CodeAnalysis.CSharp.InContainerBinder:this
27 ( 0.71% of base) : 28631.dasm - Microsoft.CodeAnalysis.CSharp.MethodToStateMachineRewriter:VisitTryStatement(Microsoft.CodeAnalysis.CSharp.BoundTryStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this
27 ( 3.70% of base) : 43144.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterBuilder:MakeSymbol(int,System.Collections.Generic.IList`1[[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterBuilder, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:this
27 ( 1.34% of base) : 161660.dasm - Microsoft.CSharp.RuntimeBinder.ComInterop.IDispatchComObject:EnsureScanDefinedMethods():this
27 ( 0.48% of base) : 73413.dasm - StateMachineMethodToClassRewriter[Byte][System.Byte]:VisitTryStatement(Microsoft.CodeAnalysis.VisualBasic.BoundTryStatement):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this
24 ( 0.64% of base) : 28139.dasm - Microsoft.CodeAnalysis.CSharp.ExpressionLambdaRewriter:VisitInitializer(Microsoft.CodeAnalysis.CSharp.BoundExpression,byref):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
24 ( 7.23% of base) : 35560.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Identifier(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode,System.String,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
23 ( 3.43% of base) : 163869.dasm - <AsEnumerable>d__3:MoveNext():bool:this
Top method improvements (bytes):
-35 (-0.90% of base) : 148830.dasm - System.Xml.Serialization.ReflectionXmlSerializationReader:WriteLiteralStructMethod(System.Xml.Serialization.StructMapping,bool,bool,System.String):System.Object:this
-26 (-1.46% of base) : 148824.dasm - System.Xml.Serialization.ReflectionXmlSerializationReader:WriteEncodedStructMethod(System.Xml.Serialization.StructMapping):System.Object:this
-24 (-2.08% of base) : 115923.dasm - System.Data.DataSet:SerializeRelations(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):this
-20 (-5.99% of base) : 73083.dasm - InitializeComponentCallTreeBuilder:CollectCallees(Microsoft.CodeAnalysis.VisualBasic.TypeCompilationState,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,Microsoft.CodeAnalysis.VisualBasic.BoundBlock)
-20 (-0.64% of base) : 145107.dasm - System.Xml.Xsl.Xslt.XslAstRewriter:Refactor(System.Xml.Xsl.Xslt.XslNode,int):this
-18 (-1.93% of base) : 152313.dasm - System.Speech.Internal.SrgsCompiler.Backend:BuildHeader(System.Collections.Generic.List`1[[System.Speech.Internal.SrgsCompiler.State, System.Speech, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],int,ushort,byref,byref):CfgSerializedHeader:this
-17 (-1.28% of base) : 69572.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter:VisitList(Microsoft.CodeAnalysis.SyntaxTokenList):Microsoft.CodeAnalysis.SyntaxTokenList:this
-16 (-1.25% of base) : 157795.dasm - CommandLine.Core.Tokenizer:PreprocessDashDash(System.Collections.Generic.IEnumerable`1[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Func`2[[System.Collections.Generic.IEnumerable`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],[RailwaySharp.ErrorHandling.Result`2[[System.Collections.Generic.IEnumerable`1[[CommandLine.Core.Token, commandline, Version=2.0.275.0, Culture=neutral, PublicKeyToken=de6f01bd326f8c32]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[CommandLine.Error, commandline, Version=2.0.275.0, Culture=neutral, PublicKeyToken=de6f01bd326f8c32]], commandline, Version=2.0.275.0, Culture=neutral, PublicKeyToken=de6f01bd326f8c32]]):RailwaySharp.ErrorHandling.Result`2[[System.Collections.Generic.IEnumerable`1[[CommandLine.Core.Token, commandline, Version=2.0.275.0, Culture=neutral, PublicKeyToken=de6f01bd326f8c32]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[CommandLine.Error, commandline, Version=2.0.275.0, Culture=neutral, PublicKeyToken=de6f01bd326f8c32]]
-16 (-2.42% of base) : 236053.dasm - System.Text.RegularExpressions.Symbolic.BVAlgebra:.ctor(System.Text.RegularExpressions.Symbolic.CharSetSolver,System.Text.RegularExpressions.Symbolic.BDD[]):this
-15 (-11.72% of base) : 54440.dasm - Microsoft.CodeAnalysis.VisualBasic.BoundNodeFinder:ContainsNode(Microsoft.CodeAnalysis.VisualBasic.BoundNode,Microsoft.CodeAnalysis.VisualBasic.BoundNode,int,bool):bool
-12 (-1.15% of base) : 55949.dasm - Microsoft.CodeAnalysis.VisualBasic.ExpressionLambdaRewriter:VisitNullableIsTrueOperator(Microsoft.CodeAnalysis.VisualBasic.BoundNullableIsTrueOperator):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this
-10 (-0.49% of base) : 161812.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:FindApplicableSignatures(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,int,System.Collections.Generic.List`1[[Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+UnaOpFullSig, Microsoft.CSharp, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]):bool:this
-9 (-0.88% of base) : 102164.dasm - Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC:GetFreeListEfficiency(System.Collections.Generic.List`1[[Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC, Microsoft.Diagnostics.Tracing.TraceEvent, Version=2.0.65.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]],Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC):Microsoft.Diagnostics.Tracing.Analysis.GC.FreeListEfficiency
-9 (-0.70% of base) : 133866.dasm - System.Runtime.Serialization.ReflectionReader:GetCollectionSetItemDelegate(System.Runtime.Serialization.CollectionDataContract,System.Object,bool):CollectionSetItemDelegate:this
-9 (-0.77% of base) : 133865.dasm - System.Runtime.Serialization.ReflectionReader:GetCollectionSetItemDelegate(System.Runtime.Serialization.CollectionDataContract,System.Object,bool):CollectionSetItemDelegate:this
-9 (-0.61% of base) : 151712.dasm - System.Speech.Internal.AudioFormatConverter:ConvertFormat(int):System.Speech.AudioFormat.SpeechAudioFormatInfo
-8 (-1.28% of base) : 194574.dasm - System.DirectoryServices.AccountManagement.SAMMembersSet:BookmarkAndReset():System.DirectoryServices.AccountManagement.ResultSetBookmark:this
-8 (-0.27% of base) : 205903.dasm - System.Management.ManagementClassGenerator:GenerateClassNameProperty():this
-8 (-0.56% of base) : 205972.dasm - System.Management.ManagementClassGenerator:GeneratePublicProperty(System.String,System.String,System.CodeDom.CodeExpression,bool,System.String,bool):this
-8 (-0.35% of base) : 205910.dasm - System.Management.ManagementClassGenerator:GenerateScopeProperty():this
Top method regressions (percentages):
36 (10.98% of base) : 13302.dasm - OperatorIntrinsics:gen@5265-2(System.Numerics.Vector`1[Single],Microsoft.FSharp.Core.FSharpFunc`2[[System.Numerics.Vector`1[[System.Single, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[Microsoft.FSharp.Core.FSharpFunc`2[[System.Numerics.Vector`1[[System.Single, 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.Numerics.Vector`1[[System.Single, 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]],System.Numerics.Vector`1[Single],System.Numerics.Vector`1[Single],Microsoft.FSharp.Core.Unit):System.Collections.Generic.IEnumerator`1[Vector`1]
23 ( 7.88% of base) : 35561.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Identifier(ushort,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode,System.String,System.String,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
24 ( 7.23% of base) : 35560.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Identifier(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode,System.String,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
12 ( 6.15% of base) : 35574.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:WithValue(ushort,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode,System.String,double,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
12 ( 5.85% of base) : 79912.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerExecutor:GetAddDiagnostic(Microsoft.CodeAnalysis.SyntaxTree,System.Nullable`1[TextSpan],Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer,bool):System.Action`1[[Microsoft.CodeAnalysis.Diagnostic, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
10 ( 5.78% of base) : 35578.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:StringLiteral(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode,System.String,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
34 ( 5.52% of base) : 225845.dasm - System.Security.Cryptography.Pkcs.SignerInfo:VerifySignature(System.Security.Cryptography.Pkcs.CmsSignature,System.Security.Cryptography.X509Certificates.X509Certificate2,bool):bool:this
10 ( 5.26% of base) : 35570.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:WithValue(ushort,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode,System.String,System.__Canon,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
10 ( 5.24% of base) : 25544.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:GetFieldOrPropertyInitializerBinder(Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol,Microsoft.CodeAnalysis.CSharp.Binder):Microsoft.CodeAnalysis.CSharp.Binder:this
20 ( 4.77% of base) : 114416.dasm - System.Xml.DataDocumentXPathNavigator:.ctor(System.Xml.DataDocumentXPathNavigator):this
9 ( 4.74% of base) : 35573.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:WithValue(ushort,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode,System.String,int,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
9 ( 4.74% of base) : 35576.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:WithValue(ushort,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode,System.String,long,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
9 ( 4.74% of base) : 35571.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:WithValue(ushort,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode,System.String,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
9 ( 4.71% of base) : 35572.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:WithValue(ushort,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode,System.String,short,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
10 ( 4.67% of base) : 57430.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:XmlMakeAttributeDataToken(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxList`1[[Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],int,System.String):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.XmlTextTokenSyntax:this
10 ( 4.67% of base) : 57431.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:XmlMakeEntityLiteralToken(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxList`1[[Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],int,System.String):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.XmlTextTokenSyntax:this
10 ( 4.39% of base) : 57415.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:XmlMakeCDataToken(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxList`1[[Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],int,System.Text.StringBuilder):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.XmlTextTokenSyntax:this
10 ( 4.39% of base) : 57437.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:XmlMakeTextLiteralToken(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxList`1[[Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],int,System.Text.StringBuilder):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.XmlTextTokenSyntax:this
5 ( 4.35% of base) : 173885.dasm - System.Collections.Concurrent.ConcurrentStack`1[Double][System.Double]:Push(double):this
9 ( 4.29% of base) : 57798.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxFactory:CharacterLiteralToken(System.String,ushort,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.CharacterLiteralTokenSyntax
Top method improvements (percentages):
-15 (-11.72% of base) : 54440.dasm - Microsoft.CodeAnalysis.VisualBasic.BoundNodeFinder:ContainsNode(Microsoft.CodeAnalysis.VisualBasic.BoundNode,Microsoft.CodeAnalysis.VisualBasic.BoundNode,int,bool):bool
-4 (-7.14% of base) : 237818.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1[Int32][System.Int32]:get_ValueForDebugger():int:this
-4 (-7.02% of base) : 237805.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1[Byte][System.Byte]:get_HasValueForDebugger():bool:this
-4 (-7.02% of base) : 237806.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1[Byte][System.Byte]:get_ValueForDebugger():ubyte:this
-4 (-7.02% of base) : 237827.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1[Int64][System.Int64]:get_ValueForDebugger():long:this
-4 (-6.90% of base) : 237815.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1[Int16][System.Int16]:get_ValueForDebugger():short:this
-4 (-6.67% of base) : 237851.dasm - DebugView[Int32][System.Int32]:get_Value():int:this
-4 (-6.56% of base) : 237840.dasm - DebugView[Byte][System.Byte]:get_HasValue():bool:this
-4 (-6.56% of base) : 237841.dasm - DebugView[Byte][System.Byte]:get_Value():ubyte:this
-4 (-6.56% of base) : 237854.dasm - DebugView[Int64][System.Int64]:get_Value():long:this
-4 (-6.56% of base) : 237821.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1[Double][System.Double]:get_ValueForDebugger():double:this
-4 (-6.45% of base) : 237850.dasm - DebugView[Int16][System.Int16]:get_Value():short:this
-4 (-6.25% of base) : 237564.dasm - System.Threading.Tasks.Dataflow.BatchBlock`1[Byte][System.Byte]:get_OutputCountForDebugger():int:this
-4 (-6.25% of base) : 237722.dasm - System.Threading.Tasks.Dataflow.BatchedJoinBlock`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:get_OutputCountForDebugger():int:this
-4 (-6.25% of base) : 237987.dasm - System.Threading.Tasks.Dataflow.BufferBlock`1[Byte][System.Byte]:get_CountForDebugger():int:this
-4 (-6.25% of base) : 238069.dasm - System.Threading.Tasks.Dataflow.JoinBlock`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:get_OutputCountForDebugger():int:this
-4 (-6.25% of base) : 238128.dasm - System.Threading.Tasks.Dataflow.TransformBlock`2[__Canon,Nullable`1][System.__Canon,System.Nullable`1[System.Int32]]:get_OutputCountForDebugger():int:this
-4 (-6.25% of base) : 238153.dasm - System.Threading.Tasks.Dataflow.TransformBlock`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:get_OutputCountForDebugger():int:this
-4 (-6.25% of base) : 238230.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2[__Canon,Nullable`1][System.__Canon,System.Nullable`1[System.Int32]]:get_OutputCountForDebugger():int:this
-4 (-6.25% of base) : 238261.dasm - System.Threading.Tasks.Dataflow.TransformManyBlock`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:get_OutputCountForDebugger():int:this
527 total methods with Code Size differences (147 improved, 380 regressed), 21 unchanged.
Libraries (PMI), PerfScore:
Summary of Perf Score diffs:
(Lower is better)
Total PerfScoreUnits of base: 92985034.48
Total PerfScoreUnits of diff: 92979651.82000007
Total PerfScoreUnits of delta: -5382.66 (-0.01 % of base)
Total relative delta: -2.58
diff is an improvement.
relative diff is an improvement.
Top file regressions (PerfScoreUnits):
9.90 : 148436.dasm (2.86% of base)
6.70 : 161660.dasm (0.67% of base)
6.25 : 164155.dasm (0.49% of base)
6.20 : 201314.dasm (6.09% of base)
6.20 : 201472.dasm (6.09% of base)
6.20 : 201665.dasm (6.09% of base)
6.20 : 201729.dasm (6.09% of base)
5.85 : 28142.dasm (0.77% of base)
5.20 : 104646.dasm (0.55% of base)
5.17 : 58157.dasm (1.11% of base)
4.95 : 43144.dasm (2.42% of base)
3.90 : 28141.dasm (1.51% of base)
3.90 : 28135.dasm (1.32% of base)
3.90 : 28163.dasm (1.43% of base)
3.90 : 28166.dasm (1.16% of base)
3.70 : 77281.dasm (0.05% of base)
3.65 : 225845.dasm (2.45% of base)
3.65 : 35560.dasm (4.44% of base)
3.65 : 56304.dasm (0.22% of base)
3.40 : 44985.dasm (0.97% of base)
Top file improvements (PerfScoreUnits):
-4190.25 : 148830.dasm (-5.67% of base)
-767.90 : 113251.dasm (-1.08% of base)
-63.90 : 143583.dasm (-2.72% of base)
-49.00 : 22945.dasm (-2.34% of base)
-36.63 : 145107.dasm (-0.99% of base)
-18.10 : 148824.dasm (-3.27% of base)
-16.50 : 145090.dasm (-2.07% of base)
-11.80 : 189066.dasm (-0.27% of base)
-11.10 : 235439.dasm (-1.73% of base)
-11.00 : 205975.dasm (-0.19% of base)
-10.95 : 69572.dasm (-1.20% of base)
-10.00 : 161812.dasm (-1.02% of base)
-9.80 : 152313.dasm (-2.89% of base)
-8.30 : 83676.dasm (-5.04% of base)
-7.70 : 79935.dasm (-1.74% of base)
-7.37 : 170709.dasm (-0.34% of base)
-7.20 : 158724.dasm (-0.53% of base)
-7.10 : 192301.dasm (-1.88% of base)
-6.97 : 236053.dasm (-2.73% of base)
-6.80 : 158720.dasm (-0.44% of base)
548 total files with Perf Score differences (297 improved, 251 regressed), 0 unchanged.
Top method regressions (PerfScoreUnits):
9.90 ( 2.86% of base) : 148436.dasm - System.Xml.Serialization.CodeGenerator:InitILGeneration(System.Type[],System.String[],bool):this
6.70 ( 0.67% of base) : 161660.dasm - Microsoft.CSharp.RuntimeBinder.ComInterop.IDispatchComObject:EnsureScanDefinedMethods():this
6.25 ( 0.49% of base) : 164155.dasm - Microsoft.Extensions.Configuration.Xml.XmlStreamConfigurationProvider:Read(System.IO.Stream,Microsoft.Extensions.Configuration.Xml.XmlDocumentDecryptor):System.Collections.Generic.IDictionary`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]]
6.20 ( 6.09% of base) : 201314.dasm - System.Linq.Parallel.FirstQueryOperator`1[Byte][System.Byte]:WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2[Byte,Byte],System.Linq.Parallel.IPartitionedStreamRecipient`1[Byte],bool,System.Linq.Parallel.QuerySettings):this
6.20 ( 6.09% of base) : 201472.dasm - System.Linq.Parallel.LastQueryOperator`1[Byte][System.Byte]:WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2[Byte,Byte],System.Linq.Parallel.IPartitionedStreamRecipient`1[Byte],bool,System.Linq.Parallel.QuerySettings):this
6.20 ( 6.09% of base) : 201665.dasm - System.Linq.Parallel.TakeOrSkipQueryOperator`1[Byte][System.Byte]:WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2[Byte,Byte],System.Linq.Parallel.IPartitionedStreamRecipient`1[Byte],bool,System.Linq.Parallel.QuerySettings):this
6.20 ( 6.09% of base) : 201729.dasm - System.Linq.Parallel.TakeOrSkipWhileQueryOperator`1[Byte][System.Byte]:WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2[Byte,Byte],System.Linq.Parallel.IPartitionedStreamRecipient`1[Byte],bool,System.Linq.Parallel.QuerySettings):this
5.85 ( 0.77% of base) : 28142.dasm - Microsoft.CodeAnalysis.CSharp.ExpressionLambdaRewriter:VisitObjectCreationExpressionInternal(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
5.20 ( 0.55% of base) : 104646.dasm - Newtonsoft.Json.Utilities.ReflectionUtils:GetChildPrivateProperties(System.Collections.Generic.IList`1[[System.Reflection.PropertyInfo, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Type,int)
5.17 ( 1.11% of base) : 58157.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxFactory:IntegerLiteralToken(System.String,int,int,long,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.IntegerLiteralTokenSyntax
4.95 ( 2.42% of base) : 43144.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterBuilder:MakeSymbol(int,System.Collections.Generic.IList`1[[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterBuilder, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol:this
3.90 ( 1.51% of base) : 28141.dasm - Microsoft.CodeAnalysis.CSharp.ExpressionLambdaRewriter:VisitObjectCreationContinued(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
3.90 ( 1.43% of base) : 28163.dasm - Microsoft.CodeAnalysis.CSharp.ExpressionLambdaRewriter:VisitArrayAccess(Microsoft.CodeAnalysis.CSharp.BoundArrayAccess):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
3.90 ( 1.16% of base) : 28166.dasm - Microsoft.CodeAnalysis.CSharp.ExpressionLambdaRewriter:VisitArrayCreation(Microsoft.CodeAnalysis.CSharp.BoundArrayCreation):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
3.90 ( 1.32% of base) : 28135.dasm - Microsoft.CodeAnalysis.CSharp.ExpressionLambdaRewriter:VisitNullCoalescingOperator(Microsoft.CodeAnalysis.CSharp.BoundNullCoalescingOperator):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
3.70 ( 0.05% of base) : 77281.dasm - Microsoft.CodeAnalysis.MetadataHelpers:GetInfoForImmediateNamespaceMembers(int,System.Collections.Generic.IEnumerable`1[[System.Linq.IGrouping`2[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Reflection.Metadata.TypeDefinitionHandle, System.Reflection.Metadata, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]], System.Linq, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]],System.StringComparer,byref,byref)
3.65 ( 2.45% of base) : 225845.dasm - System.Security.Cryptography.Pkcs.SignerInfo:VerifySignature(System.Security.Cryptography.Pkcs.CmsSignature,System.Security.Cryptography.X509Certificates.X509Certificate2,bool):bool:this
3.65 ( 4.44% of base) : 35560.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Identifier(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode,System.String,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
3.65 ( 0.22% of base) : 56304.dasm - Microsoft.CodeAnalysis.VisualBasic.LocalRewriter:LateMakeArgumentArrayArgument(Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.VisualBasic.BoundExpression, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableArray`1[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this
3.40 ( 0.97% of base) : 44985.dasm - BinderFactoryVisitor:VisitCompilationUnit(Microsoft.CodeAnalysis.CSharp.Syntax.CompilationUnitSyntax,bool,bool):Microsoft.CodeAnalysis.CSharp.InContainerBinder:this
Top method improvements (PerfScoreUnits):
-4190.25 (-5.67% of base) : 148830.dasm - System.Xml.Serialization.ReflectionXmlSerializationReader:WriteLiteralStructMethod(System.Xml.Serialization.StructMapping,bool,bool,System.String):System.Object:this
-767.90 (-1.08% of base) : 113251.dasm - <ProcessTargetStack>d__21:MoveNext():this
-63.90 (-2.72% of base) : 143583.dasm - System.Xml.Schema.XmlSchemaValidator:GetUnspecifiedDefaultAttributes(System.Collections.ArrayList,bool):this
-49.00 (-2.34% of base) : 22945.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindScriptFieldInitializers(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedInteractiveInitializerMethod,System.Collections.Immutable.ImmutableArray`1[ImmutableArray`1],Microsoft.CodeAnalysis.ArrayBuilder`1[[Microsoft.CodeAnalysis.CSharp.BoundInitializer, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.DiagnosticBag,byref)
-36.63 (-0.99% of base) : 145107.dasm - System.Xml.Xsl.Xslt.XslAstRewriter:Refactor(System.Xml.Xsl.Xslt.XslNode,int):this
-18.10 (-3.27% of base) : 148824.dasm - System.Xml.Serialization.ReflectionXmlSerializationReader:WriteEncodedStructMethod(System.Xml.Serialization.StructMapping):System.Object:this
-16.50 (-2.07% of base) : 145090.dasm - XPathAnalyzer:AnalyzeAvt(System.String):int:this
-11.80 (-0.27% of base) : 189066.dasm - System.Data.ProviderBase.DbConnectionPool:PoolCreateRequest(System.Object):this
-11.10 (-1.73% of base) : 235439.dasm - <>c__DisplayClass121_0:<EmitGo>g__EmitAlternation|6(System.Text.RegularExpressions.RegexNode):this
-11.00 (-0.19% of base) : 205975.dasm - System.Management.ManagementClassGenerator:GenerateProperties():this
-10.95 (-1.20% of base) : 69572.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxRewriter:VisitList(Microsoft.CodeAnalysis.SyntaxTokenList):Microsoft.CodeAnalysis.SyntaxTokenList:this
-10.00 (-1.02% of base) : 161812.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:FindApplicableSignatures(Microsoft.CSharp.RuntimeBinder.Semantics.Expr,int,System.Collections.Generic.List`1[[Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder+UnaOpFullSig, Microsoft.CSharp, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]):bool:this
-9.80 (-2.89% of base) : 152313.dasm - System.Speech.Internal.SrgsCompiler.Backend:BuildHeader(System.Collections.Generic.List`1[[System.Speech.Internal.SrgsCompiler.State, System.Speech, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],int,ushort,byref,byref):CfgSerializedHeader:this
-8.30 (-5.04% of base) : 83676.dasm - Diagnostics.Tracing.StackSources.AggregateStackSource:ForEach(System.Action`1[[Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample, Microsoft.Diagnostics.Tracing.TraceEvent, Version=2.0.65.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]],System.Boolean[]):this
-7.70 (-1.74% of base) : 79935.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerExecutor:ExecuteSymbolActionsCore(System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.Diagnostics.SymbolAnalyzerAction, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer,Microsoft.CodeAnalysis.ISymbol,System.Func`4[[Microsoft.CodeAnalysis.ISymbol, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Microsoft.CodeAnalysis.SyntaxReference, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Microsoft.CodeAnalysis.Compilation, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Microsoft.CodeAnalysis.SyntaxNode, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],AnalyzerStateData):this
-7.37 (-0.34% of base) : 170709.dasm - System.CommandLine.Parsing.StringExtensions:Tokenize(System.Collections.Generic.IReadOnlyList`1[[System.String, System.Private.CoreLib, Version=7.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.CommandLine.CommandLineConfiguration):System.CommandLine.Parsing.TokenizeResult
-7.20 (-0.53% of base) : 158724.dasm - ILCompiler.Reflection.ReadyToRun.ReadyToRunReader:ParsePgoMethods():this
-7.10 (-1.88% of base) : 192301.dasm - System.Diagnostics.PerformanceData.CounterSetInstanceCounterDataSet:.ctor(System.Diagnostics.PerformanceData.CounterSetInstance):this
-6.97 (-2.73% of base) : 236053.dasm - System.Text.RegularExpressions.Symbolic.BVAlgebra:.ctor(System.Text.RegularExpressions.Symbolic.CharSetSolver,System.Text.RegularExpressions.Symbolic.BDD[]):this
-6.80 (-0.44% of base) : 158720.dasm - ILCompiler.Reflection.ReadyToRun.ReadyToRunReader:ParseInstanceMethodEntrypoints(System.Boolean[]):this
Top method regressions (percentages):
6.20 ( 6.09% of base) : 201314.dasm - System.Linq.Parallel.FirstQueryOperator`1[Byte][System.Byte]:WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2[Byte,Byte],System.Linq.Parallel.IPartitionedStreamRecipient`1[Byte],bool,System.Linq.Parallel.QuerySettings):this
6.20 ( 6.09% of base) : 201472.dasm - System.Linq.Parallel.LastQueryOperator`1[Byte][System.Byte]:WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2[Byte,Byte],System.Linq.Parallel.IPartitionedStreamRecipient`1[Byte],bool,System.Linq.Parallel.QuerySettings):this
6.20 ( 6.09% of base) : 201665.dasm - System.Linq.Parallel.TakeOrSkipQueryOperator`1[Byte][System.Byte]:WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2[Byte,Byte],System.Linq.Parallel.IPartitionedStreamRecipient`1[Byte],bool,System.Linq.Parallel.QuerySettings):this
6.20 ( 6.09% of base) : 201729.dasm - System.Linq.Parallel.TakeOrSkipWhileQueryOperator`1[Byte][System.Byte]:WrapPartitionedStream(System.Linq.Parallel.PartitionedStream`2[Byte,Byte],System.Linq.Parallel.IPartitionedStreamRecipient`1[Byte],bool,System.Linq.Parallel.QuerySettings):this
3.65 ( 4.44% of base) : 35560.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:Identifier(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode,System.String,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
2.25 ( 4.18% of base) : 35578.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:StringLiteral(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode,System.String,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
2.25 ( 3.87% of base) : 57430.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:XmlMakeAttributeDataToken(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxList`1[[Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],int,System.String):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.XmlTextTokenSyntax:this
2.25 ( 3.87% of base) : 57431.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:XmlMakeEntityLiteralToken(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxList`1[[Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],int,System.String):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.XmlTextTokenSyntax:this
2.45 ( 3.83% of base) : 35574.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:WithValue(ushort,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode,System.String,double,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
2.25 ( 3.75% of base) : 35570.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:WithValue(ushort,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode,System.String,System.__Canon,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
2.25 ( 3.67% of base) : 57415.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:XmlMakeCDataToken(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxList`1[[Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],int,System.Text.StringBuilder):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.XmlTextTokenSyntax:this
2.25 ( 3.67% of base) : 57437.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.Scanner:XmlMakeTextLiteralToken(Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxList`1[[Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode, Microsoft.CodeAnalysis.VisualBasic, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],int,System.Text.StringBuilder):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.XmlTextTokenSyntax:this
2.15 ( 3.64% of base) : 35573.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:WithValue(ushort,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode,System.String,int,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
2.15 ( 3.64% of base) : 35576.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:WithValue(ushort,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode,System.String,long,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
2.15 ( 3.64% of base) : 35571.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:WithValue(ushort,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode,System.String,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
2.15 ( 3.64% of base) : 35572.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken:WithValue(ushort,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode,System.String,short,Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxToken
2.15 ( 3.47% of base) : 57798.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxFactory:CharacterLiteralToken(System.String,ushort,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.CharacterLiteralTokenSyntax
2.15 ( 3.47% of base) : 57796.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxFactory:DateLiteralToken(System.String,System.DateTime,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.DateLiteralTokenSyntax
2.15 ( 3.47% of base) : 57789.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxFactory:XmlNameToken(System.String,ushort,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.XmlNameTokenSyntax
2.15 ( 3.39% of base) : 57792.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.SyntaxFactory:DocumentationCommentLineBreakToken(System.String,System.String,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.VisualBasicSyntaxNode):Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax.XmlTextTokenSyntax
Top method improvements (percentages):
-3.35 (-10.89% of base) : 237488.dasm - System.Threading.Tasks.Dataflow.ActionBlock`1[Byte][System.Byte]:get_InputCountForDebugger():int:this
-2.40 (-10.74% of base) : 237818.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1[Int32][System.Int32]:get_ValueForDebugger():int:this
-2.40 (-10.69% of base) : 237805.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1[Byte][System.Byte]:get_HasValueForDebugger():bool:this
-2.40 (-10.69% of base) : 237806.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1[Byte][System.Byte]:get_ValueForDebugger():ubyte:this
-2.40 (-10.69% of base) : 237827.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1[Int64][System.Int64]:get_ValueForDebugger():long:this
-3.50 (-10.43% of base) : 145631.dasm - System.Xml.Xsl.XsltOld.InputScopeManager:PushScope():System.Xml.Xsl.XsltOld.InputScope:this
-2.40 (-9.78% of base) : 237815.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1[Int16][System.Int16]:get_ValueForDebugger():short:this
-2.40 (-9.70% of base) : 237851.dasm - DebugView[Int32][System.Int32]:get_Value():int:this
-2.40 (-9.66% of base) : 237840.dasm - DebugView[Byte][System.Byte]:get_HasValue():bool:this
-2.40 (-9.66% of base) : 237841.dasm - DebugView[Byte][System.Byte]:get_Value():ubyte:this
-2.40 (-9.66% of base) : 237854.dasm - DebugView[Int64][System.Int64]:get_Value():long:this
-3.37 (-9.48% of base) : 54440.dasm - Microsoft.CodeAnalysis.VisualBasic.BoundNodeFinder:ContainsNode(Microsoft.CodeAnalysis.VisualBasic.BoundNode,Microsoft.CodeAnalysis.VisualBasic.BoundNode,int,bool):bool
-2.40 (-9.25% of base) : 237821.dasm - System.Threading.Tasks.Dataflow.BroadcastBlock`1[Double][System.Double]:get_ValueForDebugger():double:this
-2.40 (-8.91% of base) : 237850.dasm - DebugView[Int16][System.Int16]:get_Value():short:this
-2.40 (-8.84% of base) : 237564.dasm - System.Threading.Tasks.Dataflow.BatchBlock`1[Byte][System.Byte]:get_OutputCountForDebugger():int:this
-2.40 (-8.84% of base) : 237722.dasm - System.Threading.Tasks.Dataflow.BatchedJoinBlock`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:get_OutputCountForDebugger():int:this
-2.40 (-8.84% of base) : 237987.dasm - System.Threading.Tasks.Dataflow.BufferBlock`1[Byte][System.Byte]:get_CountForDebugger():int:this
-2.40 (-8.84% of base) : 238069.dasm - System.Threading.Tasks.Dataflow.JoinBlock`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:get_OutputCountForDebugger():int:this
-2.40 (-8.84% of base) : 238128.dasm - System.Threading.Tasks.Dataflow.TransformBlock`2[__Canon,Nullable`1][System.__Canon,System.Nullable`1[System.Int32]]:get_OutputCountForDebugger():int:this
-2.40 (-8.84% of base) : 238153.dasm - System.Threading.Tasks.Dataflow.TransformBlock`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:get_OutputCountForDebugger():int:this
548 total methods with Perf Score differences (297 improved, 251 regressed), 0 unchanged.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do the diffs generally look bad? Since perf score is better we might consider taking it anyway. The size increase is not that significant to me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've analyzed top (~12) PerfScore regressions in the benchmarks on Win-x64, nothing stands out as "definitely bad", the common theme is that we save an additional register (in prolog/epilog) to enregister a CSE. There was one case where a CSE was "live across a call", thus spilled/reloaded for no benefit, but we didn't quite know that in the heuristic because the call in question was a write barrier.
I then took a more cursory look at the tests collection on x86, and found a few quite questionable cases (the worst), though overall the size diff was positive (-100K
).
Finally, I took a look at Win-x64 tests collection, and found a problem that is similar to the one above: diff, where we save/restore (a lot) for a simple (FP) CSE.
Win-Arm64 collections do not appear to have particularly bad examples.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It sounds to me like taking the full general check is fine then, percentage wise the perfscore vs size diff is leaning to the good side, and the bad examples look to be in artificial test cases.
Make the in/equality operators `const`. Co-authored-by: Jakob Botsch Nielsen <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Failures are #60154 and a known "Unexpected hash" (also hit in #63720 (comment)).
This set of changes makes the compiler always use the
IND(CNS_INT)
form for boxes that represent addresses of "boxed statics", as the next step towards deletingCLS_VAR
entirely.There are some positive diffs associated with "better" VNs here because the new
VNF_PtrToStatic
handling is more precise (works "always" instead of "only when we hadCLS_VAR
").There are some regressions with this change as well, typical of what one would expect. Included:
OBJ
used a call argument gets turned into anIND primitive type
that used to have the sameByrefExposedLoad
VN, now it doesn't because we insert a cast on theMapSelect
path.NULLCHECK
s (yay...).VNF_PtrToStatic
VNs can be given to physically identical pointers due to zero-offset sequences.Part of #58312.