Skip to content
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

Conversation

SingleAccretion
Copy link
Contributor

@SingleAccretion SingleAccretion commented Jan 16, 2022

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 deleting CLS_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 had CLS_VAR").

There are some regressions with this change as well, typical of what one would expect. Included:

  1. Size regression + performance improvement due to CSE.
  2. Size regression + more or less the same performance due to CSE.
  3. Lost CSEs because we can see cases where an OBJ used a call argument gets turned into an IND primitive type that used to have the same ByrefExposedLoad VN, now it doesn't because we insert a cast on the MapSelect path.
  4. Different (worse) register allocation due to deleted NULLCHECKs (yay...).
  5. No copy propagation because different VNF_PtrToStatic VNs can be given to physically identical pointers due to zero-offset sequences.

Part of #58312.

@ghost ghost added the community-contribution Indicates that the PR has been added by a community member label Jan 16, 2022
@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jan 16, 2022
@ghost
Copy link

ghost commented Jan 16, 2022

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

Issue Details

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 deleting CLS_VAR entirely.

We are expecting some positive diffs associated with "better" VNs here because the new VNF_PtrToStatic handling is more precise (works "always" instead of "only when we had CLS_VAR").

Author: SingleAccretion
Assignees: -
Labels:

area-CodeGen-coreclr, community-contribution

Milestone: -

@SingleAccretion
Copy link
Contributor Author

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.
@SingleAccretion SingleAccretion force-pushed the Improve-Handling-Of-Type-Mismatch-In-VN-Part-Nine branch from 680c21d to cbbf50b Compare January 28, 2022 15:43
@SingleAccretion SingleAccretion marked this pull request as draft January 28, 2022 19:44
@SingleAccretion SingleAccretion marked this pull request as ready for review January 28, 2022 21:31
src/coreclr/jit/morph.cpp Outdated Show resolved Hide resolved
src/coreclr/jit/morph.cpp Outdated Show resolved Hide resolved
src/coreclr/jit/valuenumtype.h Outdated Show resolved Hide resolved
Comment on lines 10626 to 10639
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())));
}
Copy link
Member

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?

Copy link
Contributor Author

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).

Copy link
Member

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?

Copy link
Contributor Author

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.

Copy link
Member

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.

Copy link
Contributor Author

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.

Copy link
Member

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.

SingleAccretion and others added 2 commits January 31, 2022 15:31
Make the in/equality operators `const`.

Co-authored-by: Jakob Botsch Nielsen <Jakob.botsch.nielsen@gmail.com>
Copy link
Member

@jakobbotsch jakobbotsch left a 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)).

@jakobbotsch jakobbotsch merged commit d4f3efb into dotnet:main Feb 2, 2022
@SingleAccretion SingleAccretion deleted the Improve-Handling-Of-Type-Mismatch-In-VN-Part-Nine branch February 2, 2022 12:06
@ghost ghost locked as resolved and limited conversation to collaborators Mar 4, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI community-contribution Indicates that the PR has been added by a community member
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants