Skip to content

Conversation

@BruceForstall
Copy link
Contributor

This builds on #55717

Add an option, statically determined at compile time,
to generate loop cloning loop choice conditions into one block
per condition instead of using bitwise and operators to always
execute all non-dependent conditions in a single block.

This leads to code size reduction in the condition code, as well
as making it easier to understand.

Currently, the loop choice condition blocks are created in a way that creates
a confusing flow graph. Restructure them to be simpler, and lay the path for
future work.

The simpler layout (and, hopefully, code and logic to create them) also
lays the groundwork to potentially put the slow path loop in the loop table,
if desired, as it creates a "standard" loop header layout.

While the flow graph has an extra block or two, there are almost no diffs,
as subsequent phases clean up any extras.

There are a few diffs where the new layout enables some downstream optimization
phases that were stymied by the old layout, but mostly in cases where we leave
around dead code slow cloned blocks (a known issue). Also, there are a couple
trivial CSE changes.
Add an option, statically determined at compile time,
to generate loop cloning loop choice conditions into one block
per condition instead of using bitwise and operators to always
execute all non-dependent conditions in a single block.

This leads to code size reduction in the condition code, as well
as making it easier to understand.

The code size diffs:

```

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 17558
Total bytes of diff: 17078
Total bytes of delta: -480 (-2.73% of base)
Total relative delta: -1.43
    diff is an improvement.
    relative diff is an improvement.
```
<details>

<summary>Detail diffs</summary>

```

Top file regressions (bytes):
           1 : 18754.dasm (0.06% of base)

Top file improvements (bytes):
         -16 : 31113.dasm (-7.17% of base)
         -16 : 40108.dasm (-7.17% of base)
         -16 : 43345.dasm (-7.17% of base)
         -14 : 43459.dasm (-5.65% of base)
         -14 : 18564.dasm (-5.71% of base)
         -14 : 40710.dasm (-5.65% of base)
         -14 : 22079.dasm (-5.71% of base)
         -14 : 21398.dasm (-4.35% of base)
         -12 : 32181.dasm (-2.96% of base)
         -12 : 27914.dasm (-2.96% of base)
         -11 : 21558.dasm (-2.96% of base)
         -11 : 31345.dasm (-1.76% of base)
         -11 : 43478.dasm (-2.89% of base)
         -11 : 18979.dasm (-1.98% of base)
         -11 : 27800.dasm (-1.90% of base)
         -11 : 41744.dasm (-1.40% of base)
         -11 : 20855.dasm (-2.86% of base)
         -11 : 24360.dasm (-2.86% of base)
         -11 : 32081.dasm (-1.90% of base)
         -11 : 32206.dasm (-3.67% of base)

42 total files with Code Size differences (41 improved, 1 regressed), 0 unchanged.

Top method regressions (bytes):
           1 ( 0.06% of base) : 18754.dasm - DefaultTypeMap:FindConstructor(ref,ref):ConstructorInfo:this

Top method improvements (bytes):
         -16 (-7.17% of base) : 31113.dasm - ObjectEqualityComparer`1:IndexOf(ref,__Canon,int,int):int:this
         -16 (-7.17% of base) : 40108.dasm - ObjectEqualityComparer`1:IndexOf(ref,__Canon,int,int):int:this
         -16 (-7.17% of base) : 43345.dasm - ObjectEqualityComparer`1:IndexOf(ref,__Canon,int,int):int:this
         -14 (-5.65% of base) : 43459.dasm - ValueCollection:CopyTo(ref,int):this
         -14 (-5.71% of base) : 18564.dasm - ValueCollection:CopyTo(ref,int):this
         -14 (-5.65% of base) : 40710.dasm - ValueCollection:CopyTo(ref,int):this
         -14 (-5.71% of base) : 22079.dasm - ValueCollection:CopyTo(ref,int):this
         -14 (-4.35% of base) : 21398.dasm - ControllerActionInvoker:PrepareArguments(IDictionary`2,ObjectMethodExecutor):ref
         -12 (-2.96% of base) : 32181.dasm - Dictionary`2:CopyTo(ref,int):this
         -12 (-2.96% of base) : 27914.dasm - Dictionary`2:CopyTo(ref,int):this
         -11 (-2.96% of base) : 21558.dasm - EnumerableSorter`2:ComputeKeys(ref,int):this
         -11 (-1.76% of base) : 31345.dasm - NormalizedRouteValue:GetNormalizedRouteValue(ActionContext,String):String
         -11 (-2.89% of base) : 43478.dasm - Dictionary`2:Resize(int,bool):this
         -11 (-1.98% of base) : 18979.dasm - Dictionary`2:Resize(int,bool):this
         -11 (-1.90% of base) : 27800.dasm - Dictionary`2:AddRange(IEnumerable`1):this
         -11 (-1.40% of base) : 41744.dasm - NormalizedRouteValue:GetNormalizedRouteValue(ActionContext,String):String
         -11 (-2.86% of base) : 20855.dasm - PoolManager:TryGetValue(String,byref):bool
         -11 (-2.86% of base) : 24360.dasm - PoolManager:TryGetValue(String,byref):bool
         -11 (-1.90% of base) : 32081.dasm - Dictionary`2:AddRange(IEnumerable`1):this
         -11 (-3.67% of base) : 32206.dasm - EnumerableSorter`2:ComputeKeys(ref,int):this

Top method regressions (percentages):
           1 ( 0.06% of base) : 18754.dasm - DefaultTypeMap:FindConstructor(ref,ref):ConstructorInfo:this

Top method improvements (percentages):
         -16 (-7.17% of base) : 31113.dasm - ObjectEqualityComparer`1:IndexOf(ref,__Canon,int,int):int:this
         -16 (-7.17% of base) : 40108.dasm - ObjectEqualityComparer`1:IndexOf(ref,__Canon,int,int):int:this
         -16 (-7.17% of base) : 43345.dasm - ObjectEqualityComparer`1:IndexOf(ref,__Canon,int,int):int:this
         -14 (-5.71% of base) : 18564.dasm - ValueCollection:CopyTo(ref,int):this
         -14 (-5.71% of base) : 22079.dasm - ValueCollection:CopyTo(ref,int):this
         -14 (-5.65% of base) : 43459.dasm - ValueCollection:CopyTo(ref,int):this
         -14 (-5.65% of base) : 40710.dasm - ValueCollection:CopyTo(ref,int):this
         -11 (-4.89% of base) : 31151.dasm - EnumerableSorter`2:ComputeKeys(ref,int):this
         -11 (-4.89% of base) : 40674.dasm - EnumerableSorter`2:ComputeKeys(ref,int):this
         -11 (-4.80% of base) : 41746.dasm - RouteValueDictionary:TryFindItem(String,byref):bool:this
         -14 (-4.35% of base) : 21398.dasm - ControllerActionInvoker:PrepareArguments(IDictionary`2,ObjectMethodExecutor):ref
         -11 (-4.03% of base) : 31344.dasm - RouteValueDictionary:TryGetValue(String,byref):bool:this
         -11 (-4.03% of base) : 41745.dasm - RouteValueDictionary:TryGetValue(String,byref):bool:this
         -11 (-3.67% of base) : 32206.dasm - EnumerableSorter`2:ComputeKeys(ref,int):this
         -11 (-3.67% of base) : 27948.dasm - EnumerableSorter`2:ComputeKeys(ref,int):this
         -11 (-2.96% of base) : 21558.dasm - EnumerableSorter`2:ComputeKeys(ref,int):this
         -11 (-2.96% of base) : 21223.dasm - EnumerableSorter`2:ComputeKeys(ref,int):this
         -12 (-2.96% of base) : 32181.dasm - Dictionary`2:CopyTo(ref,int):this
         -12 (-2.96% of base) : 27914.dasm - Dictionary`2:CopyTo(ref,int):this
         -11 (-2.95% of base) : 20952.dasm - Dictionary`2:Resize(int,bool):this

42 total methods with Code Size differences (41 improved, 1 regressed), 0 unchanged.

```

</details>

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

```

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 91853
Total bytes of diff: 88672
Total bytes of delta: -3181 (-3.46% of base)
Total relative delta: -5.66
    diff is an improvement.
    relative diff is an improvement.
```
<details>

<summary>Detail diffs</summary>

```

Top file regressions (bytes):
          77 : 12143.dasm (4.42% of base)
          16 : 10056.dasm (1.66% of base)
           9 : 17895.dasm (0.62% of base)
           8 : 11006.dasm (0.79% of base)
           7 : 11614.dasm (0.67% of base)
           3 : 22799.dasm (1.43% of base)
           3 : 8275.dasm (1.41% of base)

Top file improvements (bytes):
        -441 : 14836.dasm (-12.93% of base)
        -382 : 24595.dasm (-11.90% of base)
        -127 : 14835.dasm (-10.94% of base)
        -113 : 2480.dasm (-1.02% of base)
         -93 : 14834.dasm (-8.15% of base)
         -91 : 10989.dasm (-8.86% of base)
         -75 : 6979.dasm (-6.89% of base)
         -71 : 14837.dasm (-9.04% of base)
         -66 : 3804.dasm (-6.06% of base)
         -66 : 7607.dasm (-12.67% of base)
         -61 : 23563.dasm (-8.51% of base)
         -57 : 15582.dasm (-7.82% of base)
         -54 : 21535.dasm (-9.94% of base)
         -53 : 23160.dasm (-10.25% of base)
         -52 : 25000.dasm (-6.10% of base)
         -49 : 2580.dasm (-15.41% of base)
         -48 : 21532.dasm (-8.38% of base)
         -46 : 12170.dasm (-8.71% of base)
         -44 : 8136.dasm (-8.53% of base)
         -37 : 25004.dasm (-13.55% of base)

106 total files with Code Size differences (99 improved, 7 regressed), 3 unchanged.

Top method regressions (bytes):
          77 ( 4.42% of base) : 12143.dasm - AssignJagged:second_assignments(System.Int32[][],System.Int16[][])
          16 ( 1.66% of base) : 10056.dasm - EMFloat:DivideInternalFPF(byref,byref,byref)
           9 ( 0.62% of base) : 17895.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:BuildStoresToTemps(bool,System.Collections.Immutable.ImmutableArray`1[Int32],System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableArray`1[RefKind],System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],bool,Microsoft.CodeAnalysis.CSharp.BoundExpression[],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[RefKind],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[[Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):this
           8 ( 0.79% of base) : 11006.dasm - EMFloatClass:DivideInternalFPF(InternalFPF,InternalFPF,InternalFPF)
           7 ( 0.67% of base) : 11614.dasm - Fourier:DoFPUTransIteration(System.Double[],System.Double[],int):long
           3 ( 1.43% of base) : 22799.dasm - Benchstone.BenchI.BubbleSort2:Test():bool:this
           3 ( 1.41% of base) : 8275.dasm - Benchstone.BenchI.QuickSort:Test():bool:this

Top method improvements (bytes):
        -441 (-12.93% of base) : 14836.dasm - LUDecomp:ludcmp(System.Double[][],int,System.Int32[],byref):int
        -382 (-11.90% of base) : 24595.dasm - Benchstone.BenchI.MulMatrix:Inner(System.Int32[][],System.Int32[][],System.Int32[][])
        -127 (-10.94% of base) : 14835.dasm - LUDecomp:DoLUIteration(System.Double[][],System.Double[],System.Double[][][],System.Double[][],int):long
        -113 (-1.02% of base) : 2480.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this
         -93 (-8.15% of base) : 14834.dasm - LUDecomp:build_problem(System.Double[][],int,System.Double[])
         -91 (-8.86% of base) : 10989.dasm - BenchmarksGame.FannkuchRedux_2:fannkuch(int):System.Int32[]:this
         -75 (-6.89% of base) : 6979.dasm - System.DefaultBinder:FindMostSpecific(System.Reflection.ParameterInfo[],System.Int32[],System.Type,System.Reflection.ParameterInfo[],System.Int32[],System.Type,System.Type[],System.Object[]):int
         -71 (-9.04% of base) : 14837.dasm - LUDecomp:lubksb(System.Double[][],int,System.Int32[],System.Double[])
         -66 (-6.06% of base) : 3804.dasm - System.MulticastDelegate:CombineImpl(System.Delegate):System.Delegate:this
         -66 (-12.67% of base) : 7607.dasm - SciMark2.SparseCompRow:matmult(System.Double[],System.Double[],System.Int32[],System.Int32[],System.Double[],int)
         -61 (-8.51% of base) : 23563.dasm - SciMark2.SOR:execute(double,System.Double[][],int)
         -57 (-7.82% of base) : 15582.dasm - SciMark2.kernel:CopyMatrix(System.Double[][],System.Double[][])
         -54 (-9.94% of base) : 21535.dasm - Benchstone.BenchI.Array2:VerifyCopy(System.Int32[][][],System.Int32[][][]):bool
         -53 (-10.25% of base) : 23160.dasm - BenchmarksGame.SpectralNorm_1:Bench(int):double:this
         -52 (-6.10% of base) : 25000.dasm - Benchstone.BenchF.InProd:Test():bool:this
         -49 (-15.41% of base) : 2580.dasm - System.Collections.Generic.GenericEqualityComparer`1[__Canon][System.__Canon]:IndexOf(System.__Canon[],System.__Canon,int,int):int:this
         -48 (-8.38% of base) : 21532.dasm - Benchstone.BenchI.Array2:Bench(int):bool
         -46 (-8.71% of base) : 12170.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(System.Char[],int,int,byref):int
         -44 (-8.53% of base) : 8136.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int64TryParse(System.Char[],int,int,byref):int
         -37 (-13.55% of base) : 25004.dasm - Benchstone.BenchF.InProd:InnerProduct(byref,System.Double[][],System.Double[][],int,int)

Top method regressions (percentages):
          77 ( 4.42% of base) : 12143.dasm - AssignJagged:second_assignments(System.Int32[][],System.Int16[][])
          16 ( 1.66% of base) : 10056.dasm - EMFloat:DivideInternalFPF(byref,byref,byref)
           3 ( 1.43% of base) : 22799.dasm - Benchstone.BenchI.BubbleSort2:Test():bool:this
           3 ( 1.41% of base) : 8275.dasm - Benchstone.BenchI.QuickSort:Test():bool:this
           8 ( 0.79% of base) : 11006.dasm - EMFloatClass:DivideInternalFPF(InternalFPF,InternalFPF,InternalFPF)
           7 ( 0.67% of base) : 11614.dasm - Fourier:DoFPUTransIteration(System.Double[],System.Double[],int):long
           9 ( 0.62% of base) : 17895.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:BuildStoresToTemps(bool,System.Collections.Immutable.ImmutableArray`1[Int32],System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableArray`1[RefKind],System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],bool,Microsoft.CodeAnalysis.CSharp.BoundExpression[],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[RefKind],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[[Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):this

Top method improvements (percentages):
         -32 (-18.82% of base) : 8714.dasm - System.Collections.Generic.GenericEqualityComparer`1[OpCode][System.Reflection.Emit.OpCode]:IndexOf(System.Reflection.Emit.OpCode[],System.Reflection.Emit.OpCode,int,int):int:this
         -27 (-18.12% of base) : 16820.dasm - Roslyn.Utilities.StringTable:TextEqualsASCII(System.String,long,int):bool
         -49 (-15.41% of base) : 2580.dasm - System.Collections.Generic.GenericEqualityComparer`1[__Canon][System.__Canon]:IndexOf(System.__Canon[],System.__Canon,int,int):int:this
         -37 (-13.55% of base) : 25004.dasm - Benchstone.BenchF.InProd:InnerProduct(byref,System.Double[][],System.Double[][],int,int)
        -441 (-12.93% of base) : 14836.dasm - LUDecomp:ludcmp(System.Double[][],int,System.Int32[],byref):int
         -66 (-12.67% of base) : 7607.dasm - SciMark2.SparseCompRow:matmult(System.Double[],System.Double[],System.Int32[],System.Int32[],System.Double[],int)
         -16 (-12.21% of base) : 16011.dasm - Roslyn.Utilities.Hash:GetFNVHashCode(System.Char[],int,int):int
        -382 (-11.90% of base) : 24595.dasm - Benchstone.BenchI.MulMatrix:Inner(System.Int32[][],System.Int32[][],System.Int32[][])
         -20 (-11.70% of base) : 24870.dasm - System.Net.MultiArrayBuffer:FreeBlocks(int,int):this
         -16 (-11.27% of base) : 22394.dasm - Benchstone.BenchI.BubbleSort:VerifySort(System.Int32[],int):bool
         -16 (-11.11% of base) : 14163.dasm - System.Tests.Perf_String:IndexerCheckBoundCheckHoist():int:this
        -127 (-10.94% of base) : 14835.dasm - LUDecomp:DoLUIteration(System.Double[][],System.Double[],System.Double[][][],System.Double[][],int):long
         -31 (-10.69% of base) : 1226.dasm - System.Collections.Generic.ObjectEqualityComparer`1[__Canon][System.__Canon]:IndexOf(System.__Canon[],System.__Canon,int,int):int:this
         -53 (-10.25% of base) : 23160.dasm - BenchmarksGame.SpectralNorm_1:Bench(int):double:this
         -54 (-9.94% of base) : 21535.dasm - Benchstone.BenchI.Array2:VerifyCopy(System.Int32[][][],System.Int32[][][]):bool
         -16 (-9.70% of base) : 19187.dasm - Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList:List(Microsoft.CodeAnalysis.GreenNode[],int):Microsoft.CodeAnalysis.GreenNode
         -18 (-9.57% of base) : 7287.dasm - System.Xml.XmlBufferReader:GetChars(int,int,System.Char[]):int:this
         -71 (-9.04% of base) : 14837.dasm - LUDecomp:lubksb(System.Double[][],int,System.Int32[],System.Double[])
         -91 (-8.86% of base) : 10989.dasm - BenchmarksGame.FannkuchRedux_2:fannkuch(int):System.Int32[]:this
         -46 (-8.71% of base) : 12170.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(System.Char[],int,int,byref):int

106 total methods with Code Size differences (99 improved, 7 regressed), 3 unchanged.

```

</details>

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

```

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 125510
Total bytes of diff: 121741
Total bytes of delta: -3769 (-3.00% of base)
Total relative delta: -8.61
    diff is an improvement.
    relative diff is an improvement.
```
<details>

<summary>Detail diffs</summary>

```

Top file regressions (bytes):
         146 : 252404.dasm (7.08% of base)
          89 : 247750.dasm (6.57% of base)
          77 : 194613.dasm (4.42% of base)
          30 : 247636.dasm (9.01% of base)
          19 : 246394.dasm (1.13% of base)
          19 : 246391.dasm (1.13% of base)
          16 : 194650.dasm (1.66% of base)
           8 : 80128.dasm (0.51% of base)
           8 : 251502.dasm (1.77% of base)
           8 : 194668.dasm (0.79% of base)
           7 : 194673.dasm (0.67% of base)
           6 : 246102.dasm (0.85% of base)
           5 : 233555.dasm (0.19% of base)
           3 : 251167.dasm (1.50% of base)
           3 : 251184.dasm (1.41% of base)
           1 : 253592.dasm (0.65% of base)
           1 : 247761.dasm (0.10% of base)

Top file improvements (bytes):
        -441 : 194692.dasm (-12.93% of base)
        -382 : 248707.dasm (-11.90% of base)
        -208 : 247902.dasm (-4.40% of base)
        -137 : 228747.dasm (-17.75% of base)
        -127 : 194690.dasm (-10.94% of base)
        -102 : 224161.dasm (-18.18% of base)
         -93 : 194691.dasm (-8.15% of base)
         -91 : 248631.dasm (-8.86% of base)
         -71 : 194693.dasm (-9.04% of base)
         -66 : 228761.dasm (-12.67% of base)
         -61 : 228759.dasm (-8.51% of base)
         -57 : 228735.dasm (-7.82% of base)
         -54 : 251180.dasm (-9.94% of base)
         -53 : 248642.dasm (-10.25% of base)
         -48 : 251181.dasm (-8.38% of base)
         -46 : 248657.dasm (-5.67% of base)
         -42 : 248661.dasm (-16.03% of base)
         -39 : 246188.dasm (-12.00% of base)
         -34 : 249141.dasm (-17.17% of base)
         -34 : 228739.dasm (-9.66% of base)

175 total files with Code Size differences (158 improved, 17 regressed), 2 unchanged.

Top method regressions (bytes):
         146 ( 7.08% of base) : 252404.dasm - Complex_Array_Test:Main(System.String[]):int
          89 ( 6.57% of base) : 247750.dasm - JitTest.LCS:findLCS(byref,byref,byref,byref)
          77 ( 4.42% of base) : 194613.dasm - AssignJagged:second_assignments(System.Int32[][],System.Int16[][])
          30 ( 9.01% of base) : 247636.dasm - Test:Main():int
          19 ( 1.13% of base) : 246394.dasm - DefaultNamespace.MulDimJagAry:Main(System.String[]):int
          19 ( 1.13% of base) : 246391.dasm - DefaultNamespace.MulDimJagAry:Main(System.String[]):int
          16 ( 1.66% of base) : 194650.dasm - EMFloat:DivideInternalFPF(byref,byref,byref)
           8 ( 0.51% of base) : 80128.dasm - JitTest.LCS:findLCS(System.TypedReference,System.TypedReference,System.TypedReference,System.TypedReference)
           8 ( 1.77% of base) : 251502.dasm - VectorMathTests.Program:sum(System.Numerics.Vector4[]):float
           8 ( 0.79% of base) : 194668.dasm - EMFloatClass:DivideInternalFPF(InternalFPF,InternalFPF,InternalFPF)
           7 ( 0.67% of base) : 194673.dasm - Fourier:DoFPUTransIteration(System.Double[],System.Double[],int):long
           6 ( 0.85% of base) : 246102.dasm - request:Main(System.String[]):int
           5 ( 0.19% of base) : 233555.dasm - MemoryAlloc:SteadyState():this
           3 ( 1.50% of base) : 251167.dasm - Benchstone.BenchI.BubbleSort2:Bench():bool
           3 ( 1.41% of base) : 251184.dasm - Benchstone.BenchI.QuickSort:Bench():bool
           1 ( 0.65% of base) : 253592.dasm - Buffer:.ctor(System.String):this
           1 ( 0.10% of base) : 247761.dasm - JitTest.LCS:findLCS(System.Int32[,,,],System.Int32[,,,],System.Char[][],System.Int32[])

Top method improvements (bytes):
        -441 (-12.93% of base) : 194692.dasm - LUDecomp:ludcmp(System.Double[][],int,System.Int32[],byref):int
        -382 (-11.90% of base) : 248707.dasm - Benchstone.BenchI.MulMatrix:Inner(System.Int32[][],System.Int32[][],System.Int32[][])
        -208 (-4.40% of base) : 247902.dasm - jaggedarr:gaussj(System.Double[,][],int,System.Double[,][],int)
        -137 (-17.75% of base) : 228747.dasm - SciMark2.LU:solve(System.Double[][],System.Int32[],System.Double[])
        -127 (-10.94% of base) : 194690.dasm - LUDecomp:DoLUIteration(System.Double[][],System.Double[],System.Double[][][],System.Double[][],int):long
        -102 (-18.18% of base) : 224161.dasm - AsAnyTests:CharArrayInit(System.Char[],System.Char[],System.Char[],System.Char[],System.Char[],System.Char[],System.String,System.String)
         -93 (-8.15% of base) : 194691.dasm - LUDecomp:build_problem(System.Double[][],int,System.Double[])
         -91 (-8.86% of base) : 248631.dasm - BenchmarksGame.FannkuchRedux_2:fannkuch(int):System.Int32[]
         -71 (-9.04% of base) : 194693.dasm - LUDecomp:lubksb(System.Double[][],int,System.Int32[],System.Double[])
         -66 (-12.67% of base) : 228761.dasm - SciMark2.SparseCompRow:matmult(System.Double[],System.Double[],System.Int32[],System.Int32[],System.Double[],int)
         -61 (-8.51% of base) : 228759.dasm - SciMark2.SOR:execute(double,System.Double[][],int)
         -57 (-7.82% of base) : 228735.dasm - SciMark2.kernel:CopyMatrix(System.Double[][],System.Double[][])
         -54 (-9.94% of base) : 251180.dasm - Benchstone.BenchI.Array2:VerifyCopy(System.Int32[][][],System.Int32[][][]):bool
         -53 (-10.25% of base) : 248642.dasm - BenchmarksGame.SpectralNorm_1:Bench(int):double:this
         -48 (-8.38% of base) : 251181.dasm - Benchstone.BenchI.Array2:Bench(int):bool
         -46 (-5.67% of base) : 248657.dasm - Benchstone.BenchF.InProd:Bench():bool
         -42 (-16.03% of base) : 248661.dasm - Benchstone.BenchF.InProd:InnerProduct(byref,System.Double[][],System.Double[][],int,int)
         -39 (-12.00% of base) : 246188.dasm - ToBoxOrNotToBox.Program:PerfTest1(int,int)
         -34 (-17.17% of base) : 249141.dasm - VectorMathTests.Program:SimpleFilter(System.Double[],System.Double[]):System.Double[]
         -34 (-9.66% of base) : 228739.dasm - SciMark2.kernel:matvec(System.Double[][],System.Double[],System.Double[])

Top method regressions (percentages):
          30 ( 9.01% of base) : 247636.dasm - Test:Main():int
         146 ( 7.08% of base) : 252404.dasm - Complex_Array_Test:Main(System.String[]):int
          89 ( 6.57% of base) : 247750.dasm - JitTest.LCS:findLCS(byref,byref,byref,byref)
          77 ( 4.42% of base) : 194613.dasm - AssignJagged:second_assignments(System.Int32[][],System.Int16[][])
           8 ( 1.77% of base) : 251502.dasm - VectorMathTests.Program:sum(System.Numerics.Vector4[]):float
          16 ( 1.66% of base) : 194650.dasm - EMFloat:DivideInternalFPF(byref,byref,byref)
           3 ( 1.50% of base) : 251167.dasm - Benchstone.BenchI.BubbleSort2:Bench():bool
           3 ( 1.41% of base) : 251184.dasm - Benchstone.BenchI.QuickSort:Bench():bool
          19 ( 1.13% of base) : 246394.dasm - DefaultNamespace.MulDimJagAry:Main(System.String[]):int
          19 ( 1.13% of base) : 246391.dasm - DefaultNamespace.MulDimJagAry:Main(System.String[]):int
           6 ( 0.85% of base) : 246102.dasm - request:Main(System.String[]):int
           8 ( 0.79% of base) : 194668.dasm - EMFloatClass:DivideInternalFPF(InternalFPF,InternalFPF,InternalFPF)
           7 ( 0.67% of base) : 194673.dasm - Fourier:DoFPUTransIteration(System.Double[],System.Double[],int):long
           1 ( 0.65% of base) : 253592.dasm - Buffer:.ctor(System.String):this
           8 ( 0.51% of base) : 80128.dasm - JitTest.LCS:findLCS(System.TypedReference,System.TypedReference,System.TypedReference,System.TypedReference)
           5 ( 0.19% of base) : 233555.dasm - MemoryAlloc:SteadyState():this
           1 ( 0.10% of base) : 247761.dasm - JitTest.LCS:findLCS(System.Int32[,,,],System.Int32[,,,],System.Char[][],System.Int32[])

Top method improvements (percentages):
         -30 (-24.59% of base) : 81774.dasm - GenericMethodPatchpoint:F(System.__Canon[],int,int):int
         -22 (-19.13% of base) : 81553.dasm - Test:Check(int)
         -21 (-19.09% of base) : 83954.dasm - VectorMathTests.Program:GenerateArray(int,int):System.Int32[]
         -21 (-18.75% of base) : 81445.dasm - VectorMathTests.Program:GenerateArray(int,short):System.Int16[]
        -102 (-18.18% of base) : 224161.dasm - AsAnyTests:CharArrayInit(System.Char[],System.Char[],System.Char[],System.Char[],System.Char[],System.Char[],System.String,System.String)
        -137 (-17.75% of base) : 228747.dasm - SciMark2.LU:solve(System.Double[][],System.Int32[],System.Double[])
         -34 (-17.17% of base) : 249141.dasm - VectorMathTests.Program:SimpleFilter(System.Double[],System.Double[]):System.Double[]
         -42 (-16.03% of base) : 248661.dasm - Benchstone.BenchF.InProd:InnerProduct(byref,System.Double[][],System.Double[][],int,int)
         -20 (-14.60% of base) : 246435.dasm - DefaultNamespace.BitArrayNode:.ctor(int):this
         -17 (-13.71% of base) : 251614.dasm - SimpleArray_01.Test:Test1()
         -16 (-13.33% of base) : 228733.dasm - SciMark2.kernel:CopyVector(System.Double[],System.Double[])
         -31 (-13.03% of base) : 223791.dasm - PartialCompactionTest.PartialCompactionTest:CreateObject(int,bool):System.Object
        -441 (-12.93% of base) : 194692.dasm - LUDecomp:ludcmp(System.Double[][],int,System.Int32[],byref):int
         -66 (-12.67% of base) : 228761.dasm - SciMark2.SparseCompRow:matmult(System.Double[],System.Double[],System.Int32[],System.Int32[],System.Double[],int)
         -12 (-12.63% of base) : 252322.dasm - BringUpTest:IntArraySum(System.Int32[],int):int
         -16 (-12.40% of base) : 228732.dasm - SciMark2.kernel:NewVectorCopy(System.Double[]):System.Double[]
         -39 (-12.00% of base) : 246188.dasm - ToBoxOrNotToBox.Program:PerfTest1(int,int)
        -382 (-11.90% of base) : 248707.dasm - Benchstone.BenchI.MulMatrix:Inner(System.Int32[][],System.Int32[][],System.Int32[][])
         -17 (-11.49% of base) : 228734.dasm - SciMark2.kernel:normabs(System.Double[],System.Double[]):double
         -16 (-11.27% of base) : 251189.dasm - Benchstone.BenchI.BubbleSort:VerifySort(System.Int32[],int):bool

175 total methods with Code Size differences (158 improved, 17 regressed), 2 unchanged.

```

</details>

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

```

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 220698
Total bytes of diff: 215908
Total bytes of delta: -4790 (-2.17% of base)
Total relative delta: -11.97
    diff is an improvement.
    relative diff is an improvement.
```
<details>

<summary>Detail diffs</summary>

```

Top file regressions (bytes):
          27 : 76353.dasm (0.26% of base)
          25 : 44013.dasm (1.02% of base)
           9 : 44012.dasm (0.77% of base)

Top file improvements (bytes):
         -75 : 76346.dasm (-6.56% of base)
         -75 : 193719.dasm (-6.61% of base)
         -73 : 197233.dasm (-12.33% of base)
         -67 : 78235.dasm (-6.44% of base)
         -63 : 106553.dasm (-14.65% of base)
         -59 : 80124.dasm (-19.47% of base)
         -52 : 181768.dasm (-7.11% of base)
         -52 : 166644.dasm (-7.11% of base)
         -49 : 60472.dasm (-15.36% of base)
         -46 : 76347.dasm (-7.97% of base)
         -46 : 193720.dasm (-8.24% of base)
         -45 : 151597.dasm (-3.25% of base)
         -45 : 210271.dasm (-1.99% of base)
         -45 : 203399.dasm (-8.54% of base)
         -44 : 151600.dasm (-2.95% of base)
         -43 : 50050.dasm (-8.46% of base)
         -43 : 50051.dasm (-8.17% of base)
         -39 : 106246.dasm (-1.34% of base)
         -39 : 156069.dasm (-8.28% of base)
         -39 : 60467.dasm (-12.96% of base)

281 total files with Code Size differences (278 improved, 3 regressed), 2 unchanged.

Top method regressions (bytes):
          27 ( 0.26% of base) : 76353.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this
          25 ( 1.02% of base) : 44013.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteListInitExpression(System.Linq.Expressions.Expression,int):System.Linq.Expressions.Compiler.StackSpiller+Result:this
           9 ( 0.77% of base) : 44012.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteMemberInitExpression(System.Linq.Expressions.Expression,int):System.Linq.Expressions.Compiler.StackSpiller+Result:this

Top method improvements (bytes):
         -75 (-6.56% of base) : 76346.dasm - System.DefaultBinder:FindMostSpecific(System.Reflection.ParameterInfo[],System.Int32[],System.Type,System.Reflection.ParameterInfo[],System.Int32[],System.Type,System.Type[],System.Object[]):int
         -75 (-6.61% of base) : 193719.dasm - System.DefaultBinder:FindMostSpecific(System.Reflection.ParameterInfo[],System.Int32[],System.Type,System.Reflection.ParameterInfo[],System.Int32[],System.Type,System.Type[],System.Object[]):int
         -73 (-12.33% of base) : 197233.dasm - System.Runtime.Serialization.Formatters.Binary.ObjectWriter:WriteRectangle(System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo,int,System.Int32[],System.Array,System.Runtime.Serialization.Formatters.Binary.NameInfo,System.Int32[]):this
         -67 (-6.44% of base) : 78235.dasm - System.MulticastDelegate:CombineImpl(System.Delegate):System.Delegate:this
         -63 (-14.65% of base) : 106553.dasm - System.Data.SqlTypes.SqlString:CompareBinary2(System.Data.SqlTypes.SqlString,System.Data.SqlTypes.SqlString):int
         -59 (-19.47% of base) : 80124.dasm - System.Collections.Generic.NullableEqualityComparer`1:IndexOf(System.Nullable`1[System.Int32][],System.Nullable`1[System.Int32],int,int):int:this
         -52 (-7.11% of base) : 181768.dasm - DSACng:GenerateV2DsaBlob(byref,System.Security.Cryptography.DSAParameters,int,bool)
         -52 (-7.11% of base) : 166644.dasm - System.Security.Cryptography.DSACng:GenerateV2DsaBlob(byref,System.Security.Cryptography.DSAParameters,int,bool)
         -49 (-15.36% of base) : 60472.dasm - System.Collections.Generic.GenericEqualityComparer`1:IndexOf(System.__Canon[],System.__Canon,int,int):int:this
         -46 (-7.97% of base) : 76347.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo
         -46 (-8.24% of base) : 193720.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo
         -45 (-3.25% of base) : 151597.dasm - System.Text.ISO2022Encoding:GetCharsCP50225KR(long,int,long,int,System.Text.ISO2022Encoding+ISO2022Decoder):int:this
         -45 (-1.99% of base) : 210271.dasm - System.Data.Odbc.OdbcDataReader:RetrieveKeyInfoFromStatistics(System.Data.Odbc.OdbcDataReader+QualifiedTableName,bool):int:this
         -45 (-8.54% of base) : 203399.dasm - System.Net.IPAddressParser:AppendSections(System.UInt16[],int,int,System.Text.StringBuilder)
         -44 (-2.95% of base) : 151600.dasm - System.Text.ISO2022Encoding:GetCharsCP5022xJP(long,int,long,int,System.Text.ISO2022Encoding+ISO2022Decoder):int:this
         -43 (-8.46% of base) : 50050.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int64TryParse(System.Char[],int,int,byref):int
         -43 (-8.17% of base) : 50051.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(System.Char[],int,int,byref):int
         -39 (-1.34% of base) : 106246.dasm - System.Data.ProviderBase.SchemaMapping:SetupSchemaWithoutKeyInfo(int,int,bool,System.Data.DataColumn,System.Object):System.Object[]:this
         -39 (-8.28% of base) : 156069.dasm - System.ComponentModel.Composition.ReflectionModel.GenericSpecializationPartCreationInfo:CanSpecialize(System.Collections.Generic.IDictionary`2[System.String, System.Object],System.Type[]):bool
         -39 (-12.96% of base) : 60467.dasm - System.Collections.Generic.ObjectEqualityComparer`1:IndexOf(System.__Canon[],System.__Canon,int,int):int:this

Top method regressions (percentages):
          25 ( 1.02% of base) : 44013.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteListInitExpression(System.Linq.Expressions.Expression,int):System.Linq.Expressions.Compiler.StackSpiller+Result:this
           9 ( 0.77% of base) : 44012.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteMemberInitExpression(System.Linq.Expressions.Expression,int):System.Linq.Expressions.Compiler.StackSpiller+Result:this
          27 ( 0.26% of base) : 76353.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this

Top method improvements (percentages):
         -38 (-21.23% of base) : 32261.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CreateSourceIndicesArray(int,int):System.Int32[]
         -59 (-19.47% of base) : 80124.dasm - System.Collections.Generic.NullableEqualityComparer`1:IndexOf(System.Nullable`1[System.Int32][],System.Nullable`1[System.Int32],int,int):int:this
         -22 (-16.79% of base) : 4280.dasm - Roslyn.Utilities.Hash:GetFNVHashCode(System.Char[],int,int):int
         -22 (-16.79% of base) : 4284.dasm - Roslyn.Utilities.Hash:GetFNVHashCode(System.String,int,int):int
         -15 (-16.13% of base) : 106251.dasm - System.Data.ProviderBase.SchemaMapping:CreateIndexMap(int,int):System.Int32[]:this
         -49 (-15.36% of base) : 60472.dasm - System.Collections.Generic.GenericEqualityComparer`1:IndexOf(System.__Canon[],System.__Canon,int,int):int:this
         -28 (-15.22% of base) : 165107.dasm - System.Speech.Internal.Synthesis.AudioFormatConverter:ConvertLinear8LinearShortByte(System.Int16[],int):System.Byte[]
         -24 (-14.81% of base) : 165109.dasm - System.Speech.Internal.Synthesis.AudioFormatConverter:ConvertLinear8LinearByteShort(System.Byte[],int):System.Int16[]
         -63 (-14.65% of base) : 106553.dasm - System.Data.SqlTypes.SqlString:CompareBinary2(System.Data.SqlTypes.SqlString,System.Data.SqlTypes.SqlString):int
         -39 (-12.96% of base) : 60467.dasm - System.Collections.Generic.ObjectEqualityComparer`1:IndexOf(System.__Canon[],System.__Canon,int,int):int:this
         -21 (-12.73% of base) : 106458.dasm - System.Data.SqlTypes.SqlBinary:HashByteArray(System.Byte[],int):int
         -17 (-12.50% of base) : 118889.dasm - System.Xml.Schema.DatatypeImplementation:Compare(System.Byte[],System.Byte[]):int:this
         -73 (-12.33% of base) : 197233.dasm - System.Runtime.Serialization.Formatters.Binary.ObjectWriter:WriteRectangle(System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo,int,System.Int32[],System.Array,System.Runtime.Serialization.Formatters.Binary.NameInfo,System.Int32[]):this
         -17 (-11.72% of base) : 1130.dasm - Microsoft.CSharp.RuntimeBinder.Syntax.NameTable:ComputeHashCode(System.String,int):int
         -16 (-11.51% of base) : 4170.dasm - Roslyn.Utilities.StringTable:TextEqualsASCII(System.String,long,int):bool
         -17 (-10.76% of base) : 20594.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxList:List(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode[],int):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode
         -19 (-10.50% of base) : 6224.dasm - Microsoft.CodeAnalysis.SyntaxTreeExtensions:FindFirstDifference(System.String,System.String):int
         -18 (-10.47% of base) : 11604.dasm - WithLotsOfChildren:CalculateOffsets(Microsoft.CodeAnalysis.ArrayElement`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode][]):System.Int32[]
         -16 (-10.26% of base) : 20565.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxListBuilder:AddRange(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode[],int,int):this
         -20 (-10.00% of base) : 60475.dasm - System.Collections.Generic.EqualityComparer`1:IndexOf(System.__Canon[],System.__Canon,int,int):int:this

281 total methods with Code Size differences (278 improved, 3 regressed), 2 unchanged.

```

</details>

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

```

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 233941
Total bytes of diff: 228887
Total bytes of delta: -5054 (-2.16% of base)
Total relative delta: -14.62
    diff is an improvement.
    relative diff is an improvement.
```
<details>

<summary>Detail diffs</summary>

```

Top file regressions (bytes):
          37 : 25696.dasm (0.89% of base)
          25 : 126923.dasm (0.87% of base)
          12 : 126924.dasm (0.94% of base)
           9 : 29954.dasm (3.77% of base)
           7 : 230975.dasm (0.64% of base)
           7 : 232605.dasm (0.64% of base)
           5 : 81373.dasm (0.22% of base)
           2 : 208892.dasm (0.42% of base)
           2 : 208910.dasm (0.42% of base)
           2 : 208886.dasm (0.42% of base)
           2 : 208864.dasm (0.42% of base)
           2 : 116782.dasm (0.96% of base)

Top file improvements (bytes):
        -163 : 77206.dasm (-8.25% of base)
         -98 : 214290.dasm (-15.65% of base)
         -75 : 211488.dasm (-6.89% of base)
         -71 : 200508.dasm (-1.94% of base)
         -64 : 117312.dasm (-14.19% of base)
         -58 : 216272.dasm (-6.50% of base)
         -58 : 216959.dasm (-6.50% of base)
         -56 : 21737.dasm (-17.07% of base)
         -53 : 157068.dasm (-3.47% of base)
         -51 : 42829.dasm (-6.24% of base)
         -46 : 108011.dasm (-8.71% of base)
         -44 : 108012.dasm (-8.53% of base)
         -43 : 25090.dasm (-22.28% of base)
         -42 : 211487.dasm (-7.54% of base)
         -42 : 157071.dasm (-2.94% of base)
         -39 : 178657.dasm (-7.83% of base)
         -38 : 183640.dasm (-1.70% of base)
         -37 : 77949.dasm (-11.31% of base)
         -36 : 25559.dasm (-3.28% of base)
         -36 : 115275.dasm (-9.30% of base)

307 total files with Code Size differences (295 improved, 12 regressed), 6 unchanged.

Top method regressions (bytes):
          37 ( 0.89% of base) : 25696.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsApplicable(Microsoft.CodeAnalysis.CSharp.Symbol,EffectiveParameters,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.Collections.Immutable.ImmutableArray`1[Int32],bool,bool,bool,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this
          25 ( 0.87% of base) : 126923.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteListInitExpression(System.Linq.Expressions.Expression,int):Result:this
          12 ( 0.94% of base) : 126924.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteMemberInitExpression(System.Linq.Expressions.Expression,int):Result:this
           9 ( 3.77% of base) : 29954.dasm - Microsoft.CodeAnalysis.CSharp.DiagnosticsPass:IsComCallWithRefOmitted(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableArray`1[RefKind]):bool
           7 ( 0.64% of base) : 230975.dasm - ArraySerializer:Deserialize(Xunit.Abstractions.IXunitSerializationInfo):this
           7 ( 0.64% of base) : 232605.dasm - ArraySerializer:Deserialize(Xunit.Abstractions.IXunitSerializationInfo):this
           5 ( 0.22% of base) : 81373.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:GetDelta(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,System.Guid,Microsoft.Cci.MetadataSizes):Microsoft.CodeAnalysis.Emit.EmitBaseline:this
           2 ( 0.42% of base) : 208892.dasm - System.Numerics.Tensors.CompressedSparseTensor`1[Int32][System.Int32]:get_Item(System.ReadOnlySpan`1[Int32]):int:this
           2 ( 0.42% of base) : 208910.dasm - System.Numerics.Tensors.CompressedSparseTensor`1[Int64][System.Int64]:get_Item(System.ReadOnlySpan`1[Int32]):long:this
           2 ( 0.42% of base) : 208886.dasm - System.Numerics.Tensors.CompressedSparseTensor`1[Int16][System.Int16]:get_Item(System.ReadOnlySpan`1[Int32]):short:this
           2 ( 0.42% of base) : 208864.dasm - System.Numerics.Tensors.CompressedSparseTensor`1[Byte][System.Byte]:get_Item(System.ReadOnlySpan`1[Int32]):ubyte:this
           2 ( 0.96% of base) : 116782.dasm - System.Data.SqlTypes.SqlDecimal:GetHashCode():int:this

Top method improvements (bytes):
        -163 (-8.25% of base) : 77206.dasm - Microsoft.Cci.CustomDebugInfoWriter:SerializeDynamicLocalInfo(Microsoft.Cci.IMethodBody,Microsoft.CodeAnalysis.ArrayBuilder`1[[Microsoft.Cci.BlobBuilder, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]])
         -98 (-15.65% of base) : 214290.dasm - System.Runtime.Serialization.Formatters.Binary.ObjectWriter:WriteRectangle(System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo,int,System.Int32[],System.Array,System.Runtime.Serialization.Formatters.Binary.NameInfo,System.Int32[]):this
         -75 (-6.89% of base) : 211488.dasm - System.DefaultBinder:FindMostSpecific(System.Reflection.ParameterInfo[],System.Int32[],System.Type,System.Reflection.ParameterInfo[],System.Int32[],System.Type,System.Type[],System.Object[]):int
         -71 (-1.94% of base) : 200508.dasm - System.Management.PropertyData:MapValueToWmiValue(System.Object,byref,byref):System.Object
         -64 (-14.19% of base) : 117312.dasm - System.Data.SqlTypes.SqlString:CompareBinary2(System.Data.SqlTypes.SqlString,System.Data.SqlTypes.SqlString):int
         -58 (-6.50% of base) : 216272.dasm - DSACng:GenerateV2DsaBlob(byref,System.Security.Cryptography.DSAParameters,int,bool)
         -58 (-6.50% of base) : 216959.dasm - System.Security.Cryptography.DSACng:GenerateV2DsaBlob(byref,System.Security.Cryptography.DSAParameters,int,bool)
         -56 (-17.07% of base) : 21737.dasm - System.Collections.Generic.NullableEqualityComparer`1[Byte][System.Byte]:IndexOf(System.Nullable`1[System.Byte][],System.Nullable`1[Byte],int,int):int:this
         -53 (-3.47% of base) : 157068.dasm - System.Text.ISO2022Encoding:GetCharsCP5022xJP(long,int,long,int,ISO2022Decoder):int:this
         -51 (-6.24% of base) : 42829.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:EqualsComplicatedCases(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,bool,bool):bool:this
         -46 (-8.71% of base) : 108011.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(System.Char[],int,int,byref):int
         -44 (-8.53% of base) : 108012.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int64TryParse(System.Char[],int,int,byref):int
         -43 (-22.28% of base) : 25090.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CreateSourceIndicesArray(int,int):System.Int32[]
         -42 (-7.54% of base) : 211487.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo
         -42 (-2.94% of base) : 157071.dasm - System.Text.ISO2022Encoding:GetCharsCP50225KR(long,int,long,int,ISO2022Decoder):int:this
         -39 (-7.83% of base) : 178657.dasm - System.ComponentModel.Composition.ReflectionModel.GenericSpecializationPartCreationInfo:CanSpecialize(System.Collections.Generic.IDictionary`2[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Object, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Type[]):bool
         -38 (-1.70% of base) : 183640.dasm - System.Data.Odbc.OdbcDataReader:RetrieveKeyInfoFromStatistics(QualifiedTableName,bool):int:this
         -37 (-11.31% of base) : 77949.dasm - Microsoft.CodeAnalysis.BitVector:IntersectWith(Microsoft.CodeAnalysis.BitVector):bool:this
         -36 (-3.28% of base) : 25559.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:HasExplicitDelegateConversion(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref):bool:this
         -36 (-9.30% of base) : 115275.dasm - System.Data.DataTable:RecordChanged(System.Int32[],System.Int32[]):this

Top method regressions (percentages):
           9 ( 3.77% of base) : 29954.dasm - Microsoft.CodeAnalysis.CSharp.DiagnosticsPass:IsComCallWithRefOmitted(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableArray`1[RefKind]):bool
           2 ( 0.96% of base) : 116782.dasm - System.Data.SqlTypes.SqlDecimal:GetHashCode():int:this
          12 ( 0.94% of base) : 126924.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteMemberInitExpression(System.Linq.Expressions.Expression,int):Result:this
          37 ( 0.89% of base) : 25696.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsApplicable(Microsoft.CodeAnalysis.CSharp.Symbol,EffectiveParameters,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.Collections.Immutable.ImmutableArray`1[Int32],bool,bool,bool,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this
          25 ( 0.87% of base) : 126923.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteListInitExpression(System.Linq.Expressions.Expression,int):Result:this
           7 ( 0.64% of base) : 230975.dasm - ArraySerializer:Deserialize(Xunit.Abstractions.IXunitSerializationInfo):this
           7 ( 0.64% of base) : 232605.dasm - ArraySerializer:Deserialize(Xunit.Abstractions.IXunitSerializationInfo):this
           2 ( 0.42% of base) : 208892.dasm - System.Numerics.Tensors.CompressedSparseTensor`1[Int32][System.Int32]:get_Item(System.ReadOnlySpan`1[Int32]):int:this
           2 ( 0.42% of base) : 208910.dasm - System.Numerics.Tensors.CompressedSparseTensor`1[Int64][System.Int64]:get_Item(System.ReadOnlySpan`1[Int32]):long:this
           2 ( 0.42% of base) : 208886.dasm - System.Numerics.Tensors.CompressedSparseTensor`1[Int16][System.Int16]:get_Item(System.ReadOnlySpan`1[Int32]):short:this
           2 ( 0.42% of base) : 208864.dasm - System.Numerics.Tensors.CompressedSparseTensor`1[Byte][System.Byte]:get_Item(System.ReadOnlySpan`1[Int32]):ubyte:this
           5 ( 0.22% of base) : 81373.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:GetDelta(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,System.Guid,Microsoft.Cci.MetadataSizes):Microsoft.CodeAnalysis.Emit.EmitBaseline:this

Top method improvements (percentages):
         -43 (-22.28% of base) : 25090.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CreateSourceIndicesArray(int,int):System.Int32[]
         -32 (-22.22% of base) : 42747.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):bool
         -23 (-21.10% of base) : 117672.dasm - System.Data.ProviderBase.SchemaMapping:CreateIndexMap(int,int):System.Int32[]:this
         -27 (-20.45% of base) : 21735.dasm - System.Collections.Generic.GenericEqualityComparer`1[Int64][System.Int64]:IndexOf(System.Int64[],long,int,int):int:this
         -32 (-19.28% of base) : 208836.dasm - System.Numerics.Tensors.ArrayUtilities:GetIndex(System.Int32[],System.ReadOnlySpan`1[Int32],int):int
         -27 (-18.12% of base) : 83126.dasm - Roslyn.Utilities.StringTable:TextEqualsASCII(System.String,long,int):bool
         -26 (-17.93% of base) : 21724.dasm - System.Collections.Generic.GenericEqualityComparer`1[Int16][System.Int16]:IndexOf(System.Int16[],short,int,int):int:this
         -26 (-17.93% of base) : 21718.dasm - System.Collections.Generic.GenericEqualityComparer`1[Byte][System.Byte]:IndexOf(System.Byte[],ubyte,int,int):int:this
         -56 (-17.07% of base) : 21737.dasm - System.Collections.Generic.NullableEqualityComparer`1[Byte][System.Byte]:IndexOf(System.Nullable`1[System.Byte][],System.Nullable`1[Byte],int,int):int:this
         -25 (-16.45% of base) : 209056.dasm - System.Numerics.Tensors.Tensor`1[__Canon][System.__Canon]:get_Item(System.ReadOnlySpan`1[Int32]):System.__Canon:this
         -25 (-16.45% of base) : 209205.dasm - System.Numerics.Tensors.Tensor`1[Int64][System.Int64]:get_Item(System.ReadOnlySpan`1[Int32]):long:this
         -25 (-16.45% of base) : 209157.dasm - System.Numerics.Tensors.Tensor`1[Int32][System.Int32]:get_Item(System.ReadOnlySpan`1[Int32]):int:this
         -25 (-16.45% of base) : 209142.dasm - System.Numerics.Tensors.Tensor`1[Int16][System.Int16]:get_Item(System.ReadOnlySpan`1[Int32]):short:this
         -25 (-16.45% of base) : 209120.dasm - System.Numerics.Tensors.Tensor`1[Byte][System.Byte]:get_Item(System.ReadOnlySpan`1[Int32]):ubyte:this
         -23 (-16.31% of base) : 142775.dasm - System.Xml.Schema.DatatypeImplementation:Compare(System.Byte[],System.Byte[]):int:this
         -24 (-16.00% of base) : 209206.dasm - System.Numerics.Tensors.Tensor`1[Int64][System.Int64]:set_Item(System.ReadOnlySpan`1[Int32],long):this
         -24 (-16.00% of base) : 209158.dasm - System.Numerics.Tensors.Tensor`1[Int32][System.Int32]:set_Item(System.ReadOnlySpan`1[Int32],int):this
         -24 (-16.00% of base) : 209057.dasm - System.Numerics.Tensors.Tensor`1[__Canon][System.__Canon]:set_Item(System.ReadOnlySpan`1[Int32],System.__Canon):this
         -98 (-15.65% of base) : 214290.dasm - System.Runtime.Serialization.Formatters.Binary.ObjectWriter:WriteRectangle(System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo,int,System.Int32[],System.Array,System.Runtime.Serialization.Formatters.Binary.NameInfo,System.Int32[]):this
         -30 (-15.62% of base) : 21731.dasm - System.Collections.Generic.GenericEqualityComparer`1[Vector`1][System.Numerics.Vector`1[System.Single]]:IndexOf(System.Numerics.Vector`1[System.Single][],System.Numerics.Vector`1[Single],int,int):int:this

307 total methods with Code Size differences (295 improved, 12 regressed), 6 unchanged.

```

</details>

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

```

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 507552
Total bytes of diff: 500488
Total bytes of delta: -7064 (-1.39% of base)
Total relative delta: -18.21
    diff is an improvement.
    relative diff is an improvement.
```
<details>

<summary>Detail diffs</summary>

```

Top file regressions (bytes):
         129 : 243955.dasm (6.71% of base)
         129 : 239657.dasm (6.71% of base)
          46 : 323028.dasm (1.11% of base)
          32 : 24648.dasm (1.15% of base)
          20 : 24652.dasm (0.83% of base)
          10 : 180208.dasm (1.53% of base)
          10 : 179680.dasm (1.53% of base)
          10 : 180319.dasm (1.27% of base)
          10 : 179747.dasm (1.39% of base)
           9 : 179507.dasm (1.54% of base)
           5 : 312567.dasm (0.65% of base)
           4 : 180289.dasm (0.36% of base)
           4 : 179711.dasm (0.43% of base)
           3 : 86806.dasm (0.13% of base)
           1 : 320454.dasm (0.03% of base)
           1 : 205808.dasm (0.02% of base)
           1 : 76903.dasm (0.02% of base)
           1 : 323027.dasm (0.07% of base)

Top file improvements (bytes):
         -66 : 76722.dasm (-4.54% of base)
         -58 : 13653.dasm (-31.87% of base)
         -48 : 291783.dasm (-24.74% of base)
         -48 : 292208.dasm (-24.74% of base)
         -40 : 81512.dasm (-2.47% of base)
         -40 : 24366.dasm (-3.32% of base)
         -40 : 24411.dasm (-3.32% of base)
         -34 : 180353.dasm (-6.71% of base)
         -34 : 180314.dasm (-6.48% of base)
         -34 : 240737.dasm (-4.52% of base)
         -34 : 77232.dasm (-2.04% of base)
         -34 : 180344.dasm (-6.90% of base)
         -34 : 180299.dasm (-6.84% of base)
         -34 : 205725.dasm (-2.04% of base)
         -34 : 236571.dasm (-4.52% of base)
         -33 : 77244.dasm (-1.96% of base)
         -33 : 205737.dasm (-1.96% of base)
         -32 : 100494.dasm (-2.32% of base)
         -32 : 179734.dasm (-7.55% of base)
         -32 : 279623.dasm (-4.53% of base)

526 total files with Code Size differences (508 improved, 18 regressed), 18 unchanged.

Top method regressions (bytes):
         129 ( 6.71% of base) : 243955.dasm - System.Data.SqlClient.TdsParser:WriteSessionRecoveryFeatureRequest(System.Data.SqlClient.SessionData,bool):int:this
         129 ( 6.71% of base) : 239657.dasm - System.Data.SqlClient.TdsParser:WriteSessionRecoveryFeatureRequest(System.Data.SqlClient.SessionData,bool):int:this
          46 ( 1.11% of base) : 323028.dasm - System.Transactions.Tests.NonMsdtcPromoterTests:TestCase_PSPENonMsdtc(bool,bool,int,int,int,int,int,int,int)
          32 ( 1.15% of base) : 24648.dasm - System.Collections.Tests.LinkedList_Generic_Tests`1[Byte][System.Byte]:AddAfter_LLNode():this
          20 ( 0.83% of base) : 24652.dasm - System.Collections.Tests.LinkedList_Generic_Tests`1[Byte][System.Byte]:AddBefore_LLNode():this
          10 ( 1.53% of base) : 180208.dasm - System.SpanTests.SpanTests:MakeSureNoStartsWithChecksGoOutOfRange()
          10 ( 1.53% of base) : 179680.dasm - System.SpanTests.ReadOnlySpanTests:MakeSureNoStartsWithChecksGoOutOfRange()
          10 ( 1.27% of base) : 180319.dasm - System.SpanTests.SpanTests:MakeSureNoSequenceCompareToChecksGoOutOfRange()
          10 ( 1.39% of base) : 179747.dasm - System.SpanTests.ReadOnlySpanTests:MakeSureNoSequenceCompareToChecksGoOutOfRange()
           9 ( 1.54% of base) : 179507.dasm - System.Memory.Tests.SequenceReader.SequenceFactory:Create(System.Byte[][]):System.Buffers.ReadOnlySequence`1[Byte]
           5 ( 0.65% of base) : 312567.dasm - System.Net.Test.Uri.IriTest.IriEscapeUnescapeTest:EscapeUnescapeAllUriComponentsInDifferentCultures(System.String):this
           4 ( 0.36% of base) : 180289.dasm - System.SpanTests.SpanTests:MakeSureNoSequenceEqualChecksGoOutOfRange()
           4 ( 0.43% of base) : 179711.dasm - System.SpanTests.ReadOnlySpanTests:MakeSureNoSequenceEqualChecksGoOutOfRange()
           3 ( 0.13% of base) : 86806.dasm - System.Text.Encodings.Web.Tests.UnicodeHelpersTests:ReadListOfDefinedCharacters():System.Boolean[]
           1 ( 0.03% of base) : 320454.dasm - System.Threading.Tasks.Test.ParallelStateTest:.ctor(System.Threading.Tasks.Test.TestParameters):this
           1 ( 0.02% of base) : 205808.dasm - System.Tests.StringTests:WhiteSpaceAtEndTrim_Memory()
           1 ( 0.02% of base) : 76903.dasm - System.Tests.StringTests:WhiteSpaceAtEndTrim_Memory()
           1 ( 0.07% of base) : 323027.dasm - System.Transactions.Tests.NonMsdtcPromoterTests:TestCase_VolatileEnlistments(int,int,int,bool,bool,System.Type)

Top method improvements (bytes):
         -66 (-4.54% of base) : 76722.dasm - System.Runtime.CompilerServices.Tests.ConditionalWeakTableTests:AddMany_ThenRemoveAll(int)
         -58 (-31.87% of base) : 13653.dasm - Microsoft.CodeAnalysis.Rename.ConflictEngine.ConflictResolver:IsSubStringEqual(System.String,System.String,int):bool
         -48 (-24.74% of base) : 291783.dasm - System.IO.Compression.Tests.ZipFileTestBase:ArraysEqual(System.Byte[],System.Byte[],int):bool
         -48 (-24.74% of base) : 292208.dasm - System.IO.Compression.Tests.ZipFileTestBase:ArraysEqual(System.Byte[],System.Byte[],int):bool
         -40 (-2.47% of base) : 81512.dasm - <>c:<Add>b__1_0(int):System.Tuple`3[[System.Runtime.CompilerServices.ConditionalWeakTable`2[[System.Object, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Object, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.WeakReference[], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.WeakReference[], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]:this
         -40 (-3.32% of base) : 24366.dasm - System.Collections.Tests.Dictionary_Generic_Tests`2[__Canon,Nullable`1][System.__Canon,System.Nullable`1[System.Int32]]:TrimExcess_NoArgument_TrimAfterEachBulkAddOrRemove_TrimsToAtLeastCount(int,int,int,int,int):this
         -40 (-3.32% of base) : 24411.dasm - System.Collections.Tests.Dictionary_Generic_Tests`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:TrimExcess_NoArgument_TrimAfterEachBulkAddOrRemove_TrimsToAtLeastCount(int,int,int,int,int):this
         -34 (-6.71% of base) : 180353.dasm - System.SpanTests.SpanTests:SequenceCompareToNoMatch_Byte()
         -34 (-6.48% of base) : 180314.dasm - System.SpanTests.SpanTests:SequenceCompareToWithSingleMismatch_Long()
         -34 (-4.52% of base) : 240737.dasm - Microsoft.SqlServer.Server.SqlDataRecord:SetValues(System.Object[]):int:this
         -34 (-2.04% of base) : 77232.dasm - System.Tests.StringTests:CompareToNoMatch_StringComparison()
         -34 (-6.90% of base) : 180344.dasm - System.SpanTests.SpanTests:SequenceCompareToNoMatch_Bool()
         -34 (-6.84% of base) : 180299.dasm - System.SpanTests.SpanTests:SequenceCompareToNoMatch_Char()
         -34 (-2.04% of base) : 205725.dasm - System.Tests.StringTests:CompareToNoMatch_StringComparison()
         -34 (-4.52% of base) : 236571.dasm - Microsoft.SqlServer.Server.SqlDataRecord:SetValues(System.Object[]):int:this
         -33 (-1.96% of base) : 77244.dasm - System.Tests.StringTests:ContainsNoMatch_StringComparison()
         -33 (-1.96% of base) : 205737.dasm - System.Tests.StringTests:ContainsNoMatch_StringComparison()
         -32 (-2.32% of base) : 100494.dasm - XmlCoreTest.Common.WriterFactory:CompareString(System.String):bool:this
         -32 (-7.55% of base) : 179734.dasm - System.SpanTests.ReadOnlySpanTests:SequenceCompareToNoMatch_Int()
         -32 (-4.53% of base) : 279623.dasm - System.Collections.Specialized.Tests.StringDictionaryKeysTests:Key_CopyTo(int,int):this

Top method regressions (percentages):
         129 ( 6.71% of base) : 243955.dasm - System.Data.SqlClient.TdsParser:WriteSessionRecoveryFeatureRequest(System.Data.SqlClient.SessionData,bool):int:this
         129 ( 6.71% of base) : 239657.dasm - System.Data.SqlClient.TdsParser:WriteSessionRecoveryFeatureRequest(System.Data.SqlClient.SessionData,bool):int:this
           9 ( 1.54% of base) : 179507.dasm - System.Memory.Tests.SequenceReader.SequenceFactory:Create(System.Byte[][]):System.Buffers.ReadOnlySequence`1[Byte]
          10 ( 1.53% of base) : 180208.dasm - System.SpanTests.SpanTests:MakeSureNoStartsWithChecksGoOutOfRange()
          10 ( 1.53% of base) : 179680.dasm - System.SpanTests.ReadOnlySpanTests:MakeSureNoStartsWithChecksGoOutOfRange()
          10 ( 1.39% of base) : 179747.dasm - System.SpanTests.ReadOnlySpanTests:MakeSureNoSequenceCompareToChecksGoOutOfRange()
          10 ( 1.27% of base) : 180319.dasm - System.SpanTests.SpanTests:MakeSureNoSequenceCompareToChecksGoOutOfRange()
          32 ( 1.15% of base) : 24648.dasm - System.Collections.Tests.LinkedList_Generic_Tests`1[Byte][System.Byte]:AddAfter_LLNode():this
          46 ( 1.11% of base) : 323028.dasm - System.Transactions.Tests.NonMsdtcPromoterTests:TestCase_PSPENonMsdtc(bool,bool,int,int,int,int,int,int,int)
          20 ( 0.83% of base) : 24652.dasm - System.Collections.Tests.LinkedList_Generic_Tests`1[Byte][System.Byte]:AddBefore_LLNode():this
           5 ( 0.65% of base) : 312567.dasm - System.Net.Test.Uri.IriTest.IriEscapeUnescapeTest:EscapeUnescapeAllUriComponentsInDifferentCultures(System.String):this
           4 ( 0.43% of base) : 179711.dasm - System.SpanTests.ReadOnlySpanTests:MakeSureNoSequenceEqualChecksGoOutOfRange()
           4 ( 0.36% of base) : 180289.dasm - System.SpanTests.SpanTests:MakeSureNoSequenceEqualChecksGoOutOfRange()
           3 ( 0.13% of base) : 86806.dasm - System.Text.Encodings.Web.Tests.UnicodeHelpersTests:ReadListOfDefinedCharacters():System.Boolean[]
           1 ( 0.07% of base) : 323027.dasm - System.Transactions.Tests.NonMsdtcPromoterTests:TestCase_VolatileEnlistments(int,int,int,bool,bool,System.Type)
           1 ( 0.03% of base) : 320454.dasm - System.Threading.Tasks.Test.ParallelStateTest:.ctor(System.Threading.Tasks.Test.TestParameters):this
           1 ( 0.02% of base) : 205808.dasm - System.Tests.StringTests:WhiteSpaceAtEndTrim_Memory()
           1 ( 0.02% of base) : 76903.dasm - System.Tests.StringTests:WhiteSpaceAtEndTrim_Memory()

Top method improvements (percentages):
         -58 (-31.87% of base) : 13653.dasm - Microsoft.CodeAnalysis.Rename.ConflictEngine.ConflictResolver:IsSubStringEqual(System.String,System.String,int):bool
         -29 (-24.79% of base) : 48794.dasm - System.Linq.Expressions.Tests.ArrayIndexTests:GenerateGenericArray(int):System.__Canon[]
         -48 (-24.74% of base) : 291783.dasm - System.IO.Compression.Tests.ZipFileTestBase:ArraysEqual(System.Byte[],System.Byte[],int):bool
         -48 (-24.74% of base) : 292208.dasm - System.IO.Compression.Tests.ZipFileTestBase:ArraysEqual(System.Byte[],System.Byte[],int):bool
         -24 (-21.62% of base) : 48795.dasm - System.Linq.Expressions.Tests.ArrayIndexTests:GenerateGenericArray(int):System.Byte[]
         -24 (-21.62% of base) : 71238.dasm - XmlDictionaryWriterTest:GetByteArray(int):System.Byte[]
         -24 (-21.62% of base) : 73858.dasm - XmlDictionaryWriterTest:GetByteArray(int):System.Byte[]
         -21 (-18.75% of base) : 210054.dasm - Test.Cryptography.ByteUtils:RepeatByte(ubyte,int):System.Byte[]
         -21 (-18.75% of base) : 211296.dasm - Test.Cryptography.ByteUtils:RepeatByte(ubyte,int):System.Byte[]
         -21 (-18.75% of base) : 212851.dasm - Test.Cryptography.ByteUtils:RepeatByte(ubyte,int):System.Byte[]
         -21 (-18.75% of base) : 160678.dasm - Test.Cryptography.ByteUtils:RepeatByte(ubyte,int):System.Byte[]
         -21 (-18.75% of base) : 317432.dasm - Test.Cryptography.ByteUtils:RepeatByte(ubyte,int):System.Byte[]
         -21 (-18.75% of base) : 318194.dasm - Test.Cryptography.ByteUtils:RepeatByte(ubyte,int):System.Byte[]
         -21 (-18.75% of base) : 201468.dasm - Test.Cryptography.ByteUtils:RepeatByte(ubyte,int):System.Byte[]
         -21 (-18.75% of base) : 214672.dasm - Test.Cryptography.ByteUtils:RepeatByte(ubyte,int):System.Byte[]
         -21 (-18.75% of base) : 215078.dasm - Test.Cryptography.ByteUtils:RepeatByte(ubyte,int):System.Byte[]
         -21 (-18.75% of base) : 248757.dasm - Test.Cryptography.ByteUtils:RepeatByte(ubyte,int):System.Byte[]
         -21 (-18.75% of base) : 290298.dasm - Test.Cryptography.ByteUtils:RepeatByte(ubyte,int):System.Byte[]
         -22 (-12.43% of base) : 9202.dasm - Roslyn.Utilities.PathUtilities:PathsEqual(System.String,System.String,int):bool
         -16 (-12.21% of base) : 8639.dasm - Roslyn.Utilities.Hash:GetFNVHashCode(System.Char[],int,int):int

526 total methods with Code Size differences (508 improved, 18 regressed), 18 unchanged.

```

</details>

--------------------------------------------------------------------------------
@ghost ghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jul 17, 2021
@BruceForstall
Copy link
Contributor Author

The code size diffs:


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 17558
Total bytes of diff: 17078
Total bytes of delta: -480 (-2.73% of base)
Total relative delta: -1.43
    diff is an improvement.
    relative diff is an improvement.
Detail diffs

Top file regressions (bytes):
           1 : 18754.dasm (0.06% of base)

Top file improvements (bytes):
         -16 : 31113.dasm (-7.17% of base)
         -16 : 40108.dasm (-7.17% of base)
         -16 : 43345.dasm (-7.17% of base)
         -14 : 43459.dasm (-5.65% of base)
         -14 : 18564.dasm (-5.71% of base)
         -14 : 40710.dasm (-5.65% of base)
         -14 : 22079.dasm (-5.71% of base)
         -14 : 21398.dasm (-4.35% of base)
         -12 : 32181.dasm (-2.96% of base)
         -12 : 27914.dasm (-2.96% of base)
         -11 : 21558.dasm (-2.96% of base)
         -11 : 31345.dasm (-1.76% of base)
         -11 : 43478.dasm (-2.89% of base)
         -11 : 18979.dasm (-1.98% of base)
         -11 : 27800.dasm (-1.90% of base)
         -11 : 41744.dasm (-1.40% of base)
         -11 : 20855.dasm (-2.86% of base)
         -11 : 24360.dasm (-2.86% of base)
         -11 : 32081.dasm (-1.90% of base)
         -11 : 32206.dasm (-3.67% of base)

42 total files with Code Size differences (41 improved, 1 regressed), 0 unchanged.

Top method regressions (bytes):
           1 ( 0.06% of base) : 18754.dasm - DefaultTypeMap:FindConstructor(ref,ref):ConstructorInfo:this

Top method improvements (bytes):
         -16 (-7.17% of base) : 31113.dasm - ObjectEqualityComparer`1:IndexOf(ref,__Canon,int,int):int:this
         -16 (-7.17% of base) : 40108.dasm - ObjectEqualityComparer`1:IndexOf(ref,__Canon,int,int):int:this
         -16 (-7.17% of base) : 43345.dasm - ObjectEqualityComparer`1:IndexOf(ref,__Canon,int,int):int:this
         -14 (-5.65% of base) : 43459.dasm - ValueCollection:CopyTo(ref,int):this
         -14 (-5.71% of base) : 18564.dasm - ValueCollection:CopyTo(ref,int):this
         -14 (-5.65% of base) : 40710.dasm - ValueCollection:CopyTo(ref,int):this
         -14 (-5.71% of base) : 22079.dasm - ValueCollection:CopyTo(ref,int):this
         -14 (-4.35% of base) : 21398.dasm - ControllerActionInvoker:PrepareArguments(IDictionary`2,ObjectMethodExecutor):ref
         -12 (-2.96% of base) : 32181.dasm - Dictionary`2:CopyTo(ref,int):this
         -12 (-2.96% of base) : 27914.dasm - Dictionary`2:CopyTo(ref,int):this
         -11 (-2.96% of base) : 21558.dasm - EnumerableSorter`2:ComputeKeys(ref,int):this
         -11 (-1.76% of base) : 31345.dasm - NormalizedRouteValue:GetNormalizedRouteValue(ActionContext,String):String
         -11 (-2.89% of base) : 43478.dasm - Dictionary`2:Resize(int,bool):this
         -11 (-1.98% of base) : 18979.dasm - Dictionary`2:Resize(int,bool):this
         -11 (-1.90% of base) : 27800.dasm - Dictionary`2:AddRange(IEnumerable`1):this
         -11 (-1.40% of base) : 41744.dasm - NormalizedRouteValue:GetNormalizedRouteValue(ActionContext,String):String
         -11 (-2.86% of base) : 20855.dasm - PoolManager:TryGetValue(String,byref):bool
         -11 (-2.86% of base) : 24360.dasm - PoolManager:TryGetValue(String,byref):bool
         -11 (-1.90% of base) : 32081.dasm - Dictionary`2:AddRange(IEnumerable`1):this
         -11 (-3.67% of base) : 32206.dasm - EnumerableSorter`2:ComputeKeys(ref,int):this

Top method regressions (percentages):
           1 ( 0.06% of base) : 18754.dasm - DefaultTypeMap:FindConstructor(ref,ref):ConstructorInfo:this

Top method improvements (percentages):
         -16 (-7.17% of base) : 31113.dasm - ObjectEqualityComparer`1:IndexOf(ref,__Canon,int,int):int:this
         -16 (-7.17% of base) : 40108.dasm - ObjectEqualityComparer`1:IndexOf(ref,__Canon,int,int):int:this
         -16 (-7.17% of base) : 43345.dasm - ObjectEqualityComparer`1:IndexOf(ref,__Canon,int,int):int:this
         -14 (-5.71% of base) : 18564.dasm - ValueCollection:CopyTo(ref,int):this
         -14 (-5.71% of base) : 22079.dasm - ValueCollection:CopyTo(ref,int):this
         -14 (-5.65% of base) : 43459.dasm - ValueCollection:CopyTo(ref,int):this
         -14 (-5.65% of base) : 40710.dasm - ValueCollection:CopyTo(ref,int):this
         -11 (-4.89% of base) : 31151.dasm - EnumerableSorter`2:ComputeKeys(ref,int):this
         -11 (-4.89% of base) : 40674.dasm - EnumerableSorter`2:ComputeKeys(ref,int):this
         -11 (-4.80% of base) : 41746.dasm - RouteValueDictionary:TryFindItem(String,byref):bool:this
         -14 (-4.35% of base) : 21398.dasm - ControllerActionInvoker:PrepareArguments(IDictionary`2,ObjectMethodExecutor):ref
         -11 (-4.03% of base) : 31344.dasm - RouteValueDictionary:TryGetValue(String,byref):bool:this
         -11 (-4.03% of base) : 41745.dasm - RouteValueDictionary:TryGetValue(String,byref):bool:this
         -11 (-3.67% of base) : 32206.dasm - EnumerableSorter`2:ComputeKeys(ref,int):this
         -11 (-3.67% of base) : 27948.dasm - EnumerableSorter`2:ComputeKeys(ref,int):this
         -11 (-2.96% of base) : 21558.dasm - EnumerableSorter`2:ComputeKeys(ref,int):this
         -11 (-2.96% of base) : 21223.dasm - EnumerableSorter`2:ComputeKeys(ref,int):this
         -12 (-2.96% of base) : 32181.dasm - Dictionary`2:CopyTo(ref,int):this
         -12 (-2.96% of base) : 27914.dasm - Dictionary`2:CopyTo(ref,int):this
         -11 (-2.95% of base) : 20952.dasm - Dictionary`2:Resize(int,bool):this

42 total methods with Code Size differences (41 improved, 1 regressed), 0 unchanged.



Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 91853
Total bytes of diff: 88672
Total bytes of delta: -3181 (-3.46% of base)
Total relative delta: -5.66
    diff is an improvement.
    relative diff is an improvement.
Detail diffs

Top file regressions (bytes):
          77 : 12143.dasm (4.42% of base)
          16 : 10056.dasm (1.66% of base)
           9 : 17895.dasm (0.62% of base)
           8 : 11006.dasm (0.79% of base)
           7 : 11614.dasm (0.67% of base)
           3 : 22799.dasm (1.43% of base)
           3 : 8275.dasm (1.41% of base)

Top file improvements (bytes):
        -441 : 14836.dasm (-12.93% of base)
        -382 : 24595.dasm (-11.90% of base)
        -127 : 14835.dasm (-10.94% of base)
        -113 : 2480.dasm (-1.02% of base)
         -93 : 14834.dasm (-8.15% of base)
         -91 : 10989.dasm (-8.86% of base)
         -75 : 6979.dasm (-6.89% of base)
         -71 : 14837.dasm (-9.04% of base)
         -66 : 3804.dasm (-6.06% of base)
         -66 : 7607.dasm (-12.67% of base)
         -61 : 23563.dasm (-8.51% of base)
         -57 : 15582.dasm (-7.82% of base)
         -54 : 21535.dasm (-9.94% of base)
         -53 : 23160.dasm (-10.25% of base)
         -52 : 25000.dasm (-6.10% of base)
         -49 : 2580.dasm (-15.41% of base)
         -48 : 21532.dasm (-8.38% of base)
         -46 : 12170.dasm (-8.71% of base)
         -44 : 8136.dasm (-8.53% of base)
         -37 : 25004.dasm (-13.55% of base)

106 total files with Code Size differences (99 improved, 7 regressed), 3 unchanged.

Top method regressions (bytes):
          77 ( 4.42% of base) : 12143.dasm - AssignJagged:second_assignments(System.Int32[][],System.Int16[][])
          16 ( 1.66% of base) : 10056.dasm - EMFloat:DivideInternalFPF(byref,byref,byref)
           9 ( 0.62% of base) : 17895.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:BuildStoresToTemps(bool,System.Collections.Immutable.ImmutableArray`1[Int32],System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableArray`1[RefKind],System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],bool,Microsoft.CodeAnalysis.CSharp.BoundExpression[],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[RefKind],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[[Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):this
           8 ( 0.79% of base) : 11006.dasm - EMFloatClass:DivideInternalFPF(InternalFPF,InternalFPF,InternalFPF)
           7 ( 0.67% of base) : 11614.dasm - Fourier:DoFPUTransIteration(System.Double[],System.Double[],int):long
           3 ( 1.43% of base) : 22799.dasm - Benchstone.BenchI.BubbleSort2:Test():bool:this
           3 ( 1.41% of base) : 8275.dasm - Benchstone.BenchI.QuickSort:Test():bool:this

Top method improvements (bytes):
        -441 (-12.93% of base) : 14836.dasm - LUDecomp:ludcmp(System.Double[][],int,System.Int32[],byref):int
        -382 (-11.90% of base) : 24595.dasm - Benchstone.BenchI.MulMatrix:Inner(System.Int32[][],System.Int32[][],System.Int32[][])
        -127 (-10.94% of base) : 14835.dasm - LUDecomp:DoLUIteration(System.Double[][],System.Double[],System.Double[][][],System.Double[][],int):long
        -113 (-1.02% of base) : 2480.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this
         -93 (-8.15% of base) : 14834.dasm - LUDecomp:build_problem(System.Double[][],int,System.Double[])
         -91 (-8.86% of base) : 10989.dasm - BenchmarksGame.FannkuchRedux_2:fannkuch(int):System.Int32[]:this
         -75 (-6.89% of base) : 6979.dasm - System.DefaultBinder:FindMostSpecific(System.Reflection.ParameterInfo[],System.Int32[],System.Type,System.Reflection.ParameterInfo[],System.Int32[],System.Type,System.Type[],System.Object[]):int
         -71 (-9.04% of base) : 14837.dasm - LUDecomp:lubksb(System.Double[][],int,System.Int32[],System.Double[])
         -66 (-6.06% of base) : 3804.dasm - System.MulticastDelegate:CombineImpl(System.Delegate):System.Delegate:this
         -66 (-12.67% of base) : 7607.dasm - SciMark2.SparseCompRow:matmult(System.Double[],System.Double[],System.Int32[],System.Int32[],System.Double[],int)
         -61 (-8.51% of base) : 23563.dasm - SciMark2.SOR:execute(double,System.Double[][],int)
         -57 (-7.82% of base) : 15582.dasm - SciMark2.kernel:CopyMatrix(System.Double[][],System.Double[][])
         -54 (-9.94% of base) : 21535.dasm - Benchstone.BenchI.Array2:VerifyCopy(System.Int32[][][],System.Int32[][][]):bool
         -53 (-10.25% of base) : 23160.dasm - BenchmarksGame.SpectralNorm_1:Bench(int):double:this
         -52 (-6.10% of base) : 25000.dasm - Benchstone.BenchF.InProd:Test():bool:this
         -49 (-15.41% of base) : 2580.dasm - System.Collections.Generic.GenericEqualityComparer`1[__Canon][System.__Canon]:IndexOf(System.__Canon[],System.__Canon,int,int):int:this
         -48 (-8.38% of base) : 21532.dasm - Benchstone.BenchI.Array2:Bench(int):bool
         -46 (-8.71% of base) : 12170.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(System.Char[],int,int,byref):int
         -44 (-8.53% of base) : 8136.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int64TryParse(System.Char[],int,int,byref):int
         -37 (-13.55% of base) : 25004.dasm - Benchstone.BenchF.InProd:InnerProduct(byref,System.Double[][],System.Double[][],int,int)

Top method regressions (percentages):
          77 ( 4.42% of base) : 12143.dasm - AssignJagged:second_assignments(System.Int32[][],System.Int16[][])
          16 ( 1.66% of base) : 10056.dasm - EMFloat:DivideInternalFPF(byref,byref,byref)
           3 ( 1.43% of base) : 22799.dasm - Benchstone.BenchI.BubbleSort2:Test():bool:this
           3 ( 1.41% of base) : 8275.dasm - Benchstone.BenchI.QuickSort:Test():bool:this
           8 ( 0.79% of base) : 11006.dasm - EMFloatClass:DivideInternalFPF(InternalFPF,InternalFPF,InternalFPF)
           7 ( 0.67% of base) : 11614.dasm - Fourier:DoFPUTransIteration(System.Double[],System.Double[],int):long
           9 ( 0.62% of base) : 17895.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:BuildStoresToTemps(bool,System.Collections.Immutable.ImmutableArray`1[Int32],System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableArray`1[RefKind],System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],bool,Microsoft.CodeAnalysis.CSharp.BoundExpression[],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[RefKind],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[[Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):this

Top method improvements (percentages):
         -32 (-18.82% of base) : 8714.dasm - System.Collections.Generic.GenericEqualityComparer`1[OpCode][System.Reflection.Emit.OpCode]:IndexOf(System.Reflection.Emit.OpCode[],System.Reflection.Emit.OpCode,int,int):int:this
         -27 (-18.12% of base) : 16820.dasm - Roslyn.Utilities.StringTable:TextEqualsASCII(System.String,long,int):bool
         -49 (-15.41% of base) : 2580.dasm - System.Collections.Generic.GenericEqualityComparer`1[__Canon][System.__Canon]:IndexOf(System.__Canon[],System.__Canon,int,int):int:this
         -37 (-13.55% of base) : 25004.dasm - Benchstone.BenchF.InProd:InnerProduct(byref,System.Double[][],System.Double[][],int,int)
        -441 (-12.93% of base) : 14836.dasm - LUDecomp:ludcmp(System.Double[][],int,System.Int32[],byref):int
         -66 (-12.67% of base) : 7607.dasm - SciMark2.SparseCompRow:matmult(System.Double[],System.Double[],System.Int32[],System.Int32[],System.Double[],int)
         -16 (-12.21% of base) : 16011.dasm - Roslyn.Utilities.Hash:GetFNVHashCode(System.Char[],int,int):int
        -382 (-11.90% of base) : 24595.dasm - Benchstone.BenchI.MulMatrix:Inner(System.Int32[][],System.Int32[][],System.Int32[][])
         -20 (-11.70% of base) : 24870.dasm - System.Net.MultiArrayBuffer:FreeBlocks(int,int):this
         -16 (-11.27% of base) : 22394.dasm - Benchstone.BenchI.BubbleSort:VerifySort(System.Int32[],int):bool
         -16 (-11.11% of base) : 14163.dasm - System.Tests.Perf_String:IndexerCheckBoundCheckHoist():int:this
        -127 (-10.94% of base) : 14835.dasm - LUDecomp:DoLUIteration(System.Double[][],System.Double[],System.Double[][][],System.Double[][],int):long
         -31 (-10.69% of base) : 1226.dasm - System.Collections.Generic.ObjectEqualityComparer`1[__Canon][System.__Canon]:IndexOf(System.__Canon[],System.__Canon,int,int):int:this
         -53 (-10.25% of base) : 23160.dasm - BenchmarksGame.SpectralNorm_1:Bench(int):double:this
         -54 (-9.94% of base) : 21535.dasm - Benchstone.BenchI.Array2:VerifyCopy(System.Int32[][][],System.Int32[][][]):bool
         -16 (-9.70% of base) : 19187.dasm - Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList:List(Microsoft.CodeAnalysis.GreenNode[],int):Microsoft.CodeAnalysis.GreenNode
         -18 (-9.57% of base) : 7287.dasm - System.Xml.XmlBufferReader:GetChars(int,int,System.Char[]):int:this
         -71 (-9.04% of base) : 14837.dasm - LUDecomp:lubksb(System.Double[][],int,System.Int32[],System.Double[])
         -91 (-8.86% of base) : 10989.dasm - BenchmarksGame.FannkuchRedux_2:fannkuch(int):System.Int32[]:this
         -46 (-8.71% of base) : 12170.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(System.Char[],int,int,byref):int

106 total methods with Code Size differences (99 improved, 7 regressed), 3 unchanged.



Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 125510
Total bytes of diff: 121741
Total bytes of delta: -3769 (-3.00% of base)
Total relative delta: -8.61
    diff is an improvement.
    relative diff is an improvement.
Detail diffs

Top file regressions (bytes):
         146 : 252404.dasm (7.08% of base)
          89 : 247750.dasm (6.57% of base)
          77 : 194613.dasm (4.42% of base)
          30 : 247636.dasm (9.01% of base)
          19 : 246394.dasm (1.13% of base)
          19 : 246391.dasm (1.13% of base)
          16 : 194650.dasm (1.66% of base)
           8 : 80128.dasm (0.51% of base)
           8 : 251502.dasm (1.77% of base)
           8 : 194668.dasm (0.79% of base)
           7 : 194673.dasm (0.67% of base)
           6 : 246102.dasm (0.85% of base)
           5 : 233555.dasm (0.19% of base)
           3 : 251167.dasm (1.50% of base)
           3 : 251184.dasm (1.41% of base)
           1 : 253592.dasm (0.65% of base)
           1 : 247761.dasm (0.10% of base)

Top file improvements (bytes):
        -441 : 194692.dasm (-12.93% of base)
        -382 : 248707.dasm (-11.90% of base)
        -208 : 247902.dasm (-4.40% of base)
        -137 : 228747.dasm (-17.75% of base)
        -127 : 194690.dasm (-10.94% of base)
        -102 : 224161.dasm (-18.18% of base)
         -93 : 194691.dasm (-8.15% of base)
         -91 : 248631.dasm (-8.86% of base)
         -71 : 194693.dasm (-9.04% of base)
         -66 : 228761.dasm (-12.67% of base)
         -61 : 228759.dasm (-8.51% of base)
         -57 : 228735.dasm (-7.82% of base)
         -54 : 251180.dasm (-9.94% of base)
         -53 : 248642.dasm (-10.25% of base)
         -48 : 251181.dasm (-8.38% of base)
         -46 : 248657.dasm (-5.67% of base)
         -42 : 248661.dasm (-16.03% of base)
         -39 : 246188.dasm (-12.00% of base)
         -34 : 249141.dasm (-17.17% of base)
         -34 : 228739.dasm (-9.66% of base)

175 total files with Code Size differences (158 improved, 17 regressed), 2 unchanged.

Top method regressions (bytes):
         146 ( 7.08% of base) : 252404.dasm - Complex_Array_Test:Main(System.String[]):int
          89 ( 6.57% of base) : 247750.dasm - JitTest.LCS:findLCS(byref,byref,byref,byref)
          77 ( 4.42% of base) : 194613.dasm - AssignJagged:second_assignments(System.Int32[][],System.Int16[][])
          30 ( 9.01% of base) : 247636.dasm - Test:Main():int
          19 ( 1.13% of base) : 246394.dasm - DefaultNamespace.MulDimJagAry:Main(System.String[]):int
          19 ( 1.13% of base) : 246391.dasm - DefaultNamespace.MulDimJagAry:Main(System.String[]):int
          16 ( 1.66% of base) : 194650.dasm - EMFloat:DivideInternalFPF(byref,byref,byref)
           8 ( 0.51% of base) : 80128.dasm - JitTest.LCS:findLCS(System.TypedReference,System.TypedReference,System.TypedReference,System.TypedReference)
           8 ( 1.77% of base) : 251502.dasm - VectorMathTests.Program:sum(System.Numerics.Vector4[]):float
           8 ( 0.79% of base) : 194668.dasm - EMFloatClass:DivideInternalFPF(InternalFPF,InternalFPF,InternalFPF)
           7 ( 0.67% of base) : 194673.dasm - Fourier:DoFPUTransIteration(System.Double[],System.Double[],int):long
           6 ( 0.85% of base) : 246102.dasm - request:Main(System.String[]):int
           5 ( 0.19% of base) : 233555.dasm - MemoryAlloc:SteadyState():this
           3 ( 1.50% of base) : 251167.dasm - Benchstone.BenchI.BubbleSort2:Bench():bool
           3 ( 1.41% of base) : 251184.dasm - Benchstone.BenchI.QuickSort:Bench():bool
           1 ( 0.65% of base) : 253592.dasm - Buffer:.ctor(System.String):this
           1 ( 0.10% of base) : 247761.dasm - JitTest.LCS:findLCS(System.Int32[,,,],System.Int32[,,,],System.Char[][],System.Int32[])

Top method improvements (bytes):
        -441 (-12.93% of base) : 194692.dasm - LUDecomp:ludcmp(System.Double[][],int,System.Int32[],byref):int
        -382 (-11.90% of base) : 248707.dasm - Benchstone.BenchI.MulMatrix:Inner(System.Int32[][],System.Int32[][],System.Int32[][])
        -208 (-4.40% of base) : 247902.dasm - jaggedarr:gaussj(System.Double[,][],int,System.Double[,][],int)
        -137 (-17.75% of base) : 228747.dasm - SciMark2.LU:solve(System.Double[][],System.Int32[],System.Double[])
        -127 (-10.94% of base) : 194690.dasm - LUDecomp:DoLUIteration(System.Double[][],System.Double[],System.Double[][][],System.Double[][],int):long
        -102 (-18.18% of base) : 224161.dasm - AsAnyTests:CharArrayInit(System.Char[],System.Char[],System.Char[],System.Char[],System.Char[],System.Char[],System.String,System.String)
         -93 (-8.15% of base) : 194691.dasm - LUDecomp:build_problem(System.Double[][],int,System.Double[])
         -91 (-8.86% of base) : 248631.dasm - BenchmarksGame.FannkuchRedux_2:fannkuch(int):System.Int32[]
         -71 (-9.04% of base) : 194693.dasm - LUDecomp:lubksb(System.Double[][],int,System.Int32[],System.Double[])
         -66 (-12.67% of base) : 228761.dasm - SciMark2.SparseCompRow:matmult(System.Double[],System.Double[],System.Int32[],System.Int32[],System.Double[],int)
         -61 (-8.51% of base) : 228759.dasm - SciMark2.SOR:execute(double,System.Double[][],int)
         -57 (-7.82% of base) : 228735.dasm - SciMark2.kernel:CopyMatrix(System.Double[][],System.Double[][])
         -54 (-9.94% of base) : 251180.dasm - Benchstone.BenchI.Array2:VerifyCopy(System.Int32[][][],System.Int32[][][]):bool
         -53 (-10.25% of base) : 248642.dasm - BenchmarksGame.SpectralNorm_1:Bench(int):double:this
         -48 (-8.38% of base) : 251181.dasm - Benchstone.BenchI.Array2:Bench(int):bool
         -46 (-5.67% of base) : 248657.dasm - Benchstone.BenchF.InProd:Bench():bool
         -42 (-16.03% of base) : 248661.dasm - Benchstone.BenchF.InProd:InnerProduct(byref,System.Double[][],System.Double[][],int,int)
         -39 (-12.00% of base) : 246188.dasm - ToBoxOrNotToBox.Program:PerfTest1(int,int)
         -34 (-17.17% of base) : 249141.dasm - VectorMathTests.Program:SimpleFilter(System.Double[],System.Double[]):System.Double[]
         -34 (-9.66% of base) : 228739.dasm - SciMark2.kernel:matvec(System.Double[][],System.Double[],System.Double[])

Top method regressions (percentages):
          30 ( 9.01% of base) : 247636.dasm - Test:Main():int
         146 ( 7.08% of base) : 252404.dasm - Complex_Array_Test:Main(System.String[]):int
          89 ( 6.57% of base) : 247750.dasm - JitTest.LCS:findLCS(byref,byref,byref,byref)
          77 ( 4.42% of base) : 194613.dasm - AssignJagged:second_assignments(System.Int32[][],System.Int16[][])
           8 ( 1.77% of base) : 251502.dasm - VectorMathTests.Program:sum(System.Numerics.Vector4[]):float
          16 ( 1.66% of base) : 194650.dasm - EMFloat:DivideInternalFPF(byref,byref,byref)
           3 ( 1.50% of base) : 251167.dasm - Benchstone.BenchI.BubbleSort2:Bench():bool
           3 ( 1.41% of base) : 251184.dasm - Benchstone.BenchI.QuickSort:Bench():bool
          19 ( 1.13% of base) : 246394.dasm - DefaultNamespace.MulDimJagAry:Main(System.String[]):int
          19 ( 1.13% of base) : 246391.dasm - DefaultNamespace.MulDimJagAry:Main(System.String[]):int
           6 ( 0.85% of base) : 246102.dasm - request:Main(System.String[]):int
           8 ( 0.79% of base) : 194668.dasm - EMFloatClass:DivideInternalFPF(InternalFPF,InternalFPF,InternalFPF)
           7 ( 0.67% of base) : 194673.dasm - Fourier:DoFPUTransIteration(System.Double[],System.Double[],int):long
           1 ( 0.65% of base) : 253592.dasm - Buffer:.ctor(System.String):this
           8 ( 0.51% of base) : 80128.dasm - JitTest.LCS:findLCS(System.TypedReference,System.TypedReference,System.TypedReference,System.TypedReference)
           5 ( 0.19% of base) : 233555.dasm - MemoryAlloc:SteadyState():this
           1 ( 0.10% of base) : 247761.dasm - JitTest.LCS:findLCS(System.Int32[,,,],System.Int32[,,,],System.Char[][],System.Int32[])

Top method improvements (percentages):
         -30 (-24.59% of base) : 81774.dasm - GenericMethodPatchpoint:F(System.__Canon[],int,int):int
         -22 (-19.13% of base) : 81553.dasm - Test:Check(int)
         -21 (-19.09% of base) : 83954.dasm - VectorMathTests.Program:GenerateArray(int,int):System.Int32[]
         -21 (-18.75% of base) : 81445.dasm - VectorMathTests.Program:GenerateArray(int,short):System.Int16[]
        -102 (-18.18% of base) : 224161.dasm - AsAnyTests:CharArrayInit(System.Char[],System.Char[],System.Char[],System.Char[],System.Char[],System.Char[],System.String,System.String)
        -137 (-17.75% of base) : 228747.dasm - SciMark2.LU:solve(System.Double[][],System.Int32[],System.Double[])
         -34 (-17.17% of base) : 249141.dasm - VectorMathTests.Program:SimpleFilter(System.Double[],System.Double[]):System.Double[]
         -42 (-16.03% of base) : 248661.dasm - Benchstone.BenchF.InProd:InnerProduct(byref,System.Double[][],System.Double[][],int,int)
         -20 (-14.60% of base) : 246435.dasm - DefaultNamespace.BitArrayNode:.ctor(int):this
         -17 (-13.71% of base) : 251614.dasm - SimpleArray_01.Test:Test1()
         -16 (-13.33% of base) : 228733.dasm - SciMark2.kernel:CopyVector(System.Double[],System.Double[])
         -31 (-13.03% of base) : 223791.dasm - PartialCompactionTest.PartialCompactionTest:CreateObject(int,bool):System.Object
        -441 (-12.93% of base) : 194692.dasm - LUDecomp:ludcmp(System.Double[][],int,System.Int32[],byref):int
         -66 (-12.67% of base) : 228761.dasm - SciMark2.SparseCompRow:matmult(System.Double[],System.Double[],System.Int32[],System.Int32[],System.Double[],int)
         -12 (-12.63% of base) : 252322.dasm - BringUpTest:IntArraySum(System.Int32[],int):int
         -16 (-12.40% of base) : 228732.dasm - SciMark2.kernel:NewVectorCopy(System.Double[]):System.Double[]
         -39 (-12.00% of base) : 246188.dasm - ToBoxOrNotToBox.Program:PerfTest1(int,int)
        -382 (-11.90% of base) : 248707.dasm - Benchstone.BenchI.MulMatrix:Inner(System.Int32[][],System.Int32[][],System.Int32[][])
         -17 (-11.49% of base) : 228734.dasm - SciMark2.kernel:normabs(System.Double[],System.Double[]):double
         -16 (-11.27% of base) : 251189.dasm - Benchstone.BenchI.BubbleSort:VerifySort(System.Int32[],int):bool

175 total methods with Code Size differences (158 improved, 17 regressed), 2 unchanged.



Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 220698
Total bytes of diff: 215908
Total bytes of delta: -4790 (-2.17% of base)
Total relative delta: -11.97
    diff is an improvement.
    relative diff is an improvement.
Detail diffs

Top file regressions (bytes):
          27 : 76353.dasm (0.26% of base)
          25 : 44013.dasm (1.02% of base)
           9 : 44012.dasm (0.77% of base)

Top file improvements (bytes):
         -75 : 76346.dasm (-6.56% of base)
         -75 : 193719.dasm (-6.61% of base)
         -73 : 197233.dasm (-12.33% of base)
         -67 : 78235.dasm (-6.44% of base)
         -63 : 106553.dasm (-14.65% of base)
         -59 : 80124.dasm (-19.47% of base)
         -52 : 181768.dasm (-7.11% of base)
         -52 : 166644.dasm (-7.11% of base)
         -49 : 60472.dasm (-15.36% of base)
         -46 : 76347.dasm (-7.97% of base)
         -46 : 193720.dasm (-8.24% of base)
         -45 : 151597.dasm (-3.25% of base)
         -45 : 210271.dasm (-1.99% of base)
         -45 : 203399.dasm (-8.54% of base)
         -44 : 151600.dasm (-2.95% of base)
         -43 : 50050.dasm (-8.46% of base)
         -43 : 50051.dasm (-8.17% of base)
         -39 : 106246.dasm (-1.34% of base)
         -39 : 156069.dasm (-8.28% of base)
         -39 : 60467.dasm (-12.96% of base)

281 total files with Code Size differences (278 improved, 3 regressed), 2 unchanged.

Top method regressions (bytes):
          27 ( 0.26% of base) : 76353.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this
          25 ( 1.02% of base) : 44013.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteListInitExpression(System.Linq.Expressions.Expression,int):System.Linq.Expressions.Compiler.StackSpiller+Result:this
           9 ( 0.77% of base) : 44012.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteMemberInitExpression(System.Linq.Expressions.Expression,int):System.Linq.Expressions.Compiler.StackSpiller+Result:this

Top method improvements (bytes):
         -75 (-6.56% of base) : 76346.dasm - System.DefaultBinder:FindMostSpecific(System.Reflection.ParameterInfo[],System.Int32[],System.Type,System.Reflection.ParameterInfo[],System.Int32[],System.Type,System.Type[],System.Object[]):int
         -75 (-6.61% of base) : 193719.dasm - System.DefaultBinder:FindMostSpecific(System.Reflection.ParameterInfo[],System.Int32[],System.Type,System.Reflection.ParameterInfo[],System.Int32[],System.Type,System.Type[],System.Object[]):int
         -73 (-12.33% of base) : 197233.dasm - System.Runtime.Serialization.Formatters.Binary.ObjectWriter:WriteRectangle(System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo,int,System.Int32[],System.Array,System.Runtime.Serialization.Formatters.Binary.NameInfo,System.Int32[]):this
         -67 (-6.44% of base) : 78235.dasm - System.MulticastDelegate:CombineImpl(System.Delegate):System.Delegate:this
         -63 (-14.65% of base) : 106553.dasm - System.Data.SqlTypes.SqlString:CompareBinary2(System.Data.SqlTypes.SqlString,System.Data.SqlTypes.SqlString):int
         -59 (-19.47% of base) : 80124.dasm - System.Collections.Generic.NullableEqualityComparer`1:IndexOf(System.Nullable`1[System.Int32][],System.Nullable`1[System.Int32],int,int):int:this
         -52 (-7.11% of base) : 181768.dasm - DSACng:GenerateV2DsaBlob(byref,System.Security.Cryptography.DSAParameters,int,bool)
         -52 (-7.11% of base) : 166644.dasm - System.Security.Cryptography.DSACng:GenerateV2DsaBlob(byref,System.Security.Cryptography.DSAParameters,int,bool)
         -49 (-15.36% of base) : 60472.dasm - System.Collections.Generic.GenericEqualityComparer`1:IndexOf(System.__Canon[],System.__Canon,int,int):int:this
         -46 (-7.97% of base) : 76347.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo
         -46 (-8.24% of base) : 193720.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo
         -45 (-3.25% of base) : 151597.dasm - System.Text.ISO2022Encoding:GetCharsCP50225KR(long,int,long,int,System.Text.ISO2022Encoding+ISO2022Decoder):int:this
         -45 (-1.99% of base) : 210271.dasm - System.Data.Odbc.OdbcDataReader:RetrieveKeyInfoFromStatistics(System.Data.Odbc.OdbcDataReader+QualifiedTableName,bool):int:this
         -45 (-8.54% of base) : 203399.dasm - System.Net.IPAddressParser:AppendSections(System.UInt16[],int,int,System.Text.StringBuilder)
         -44 (-2.95% of base) : 151600.dasm - System.Text.ISO2022Encoding:GetCharsCP5022xJP(long,int,long,int,System.Text.ISO2022Encoding+ISO2022Decoder):int:this
         -43 (-8.46% of base) : 50050.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int64TryParse(System.Char[],int,int,byref):int
         -43 (-8.17% of base) : 50051.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(System.Char[],int,int,byref):int
         -39 (-1.34% of base) : 106246.dasm - System.Data.ProviderBase.SchemaMapping:SetupSchemaWithoutKeyInfo(int,int,bool,System.Data.DataColumn,System.Object):System.Object[]:this
         -39 (-8.28% of base) : 156069.dasm - System.ComponentModel.Composition.ReflectionModel.GenericSpecializationPartCreationInfo:CanSpecialize(System.Collections.Generic.IDictionary`2[System.String, System.Object],System.Type[]):bool
         -39 (-12.96% of base) : 60467.dasm - System.Collections.Generic.ObjectEqualityComparer`1:IndexOf(System.__Canon[],System.__Canon,int,int):int:this

Top method regressions (percentages):
          25 ( 1.02% of base) : 44013.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteListInitExpression(System.Linq.Expressions.Expression,int):System.Linq.Expressions.Compiler.StackSpiller+Result:this
           9 ( 0.77% of base) : 44012.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteMemberInitExpression(System.Linq.Expressions.Expression,int):System.Linq.Expressions.Compiler.StackSpiller+Result:this
          27 ( 0.26% of base) : 76353.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this

Top method improvements (percentages):
         -38 (-21.23% of base) : 32261.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CreateSourceIndicesArray(int,int):System.Int32[]
         -59 (-19.47% of base) : 80124.dasm - System.Collections.Generic.NullableEqualityComparer`1:IndexOf(System.Nullable`1[System.Int32][],System.Nullable`1[System.Int32],int,int):int:this
         -22 (-16.79% of base) : 4280.dasm - Roslyn.Utilities.Hash:GetFNVHashCode(System.Char[],int,int):int
         -22 (-16.79% of base) : 4284.dasm - Roslyn.Utilities.Hash:GetFNVHashCode(System.String,int,int):int
         -15 (-16.13% of base) : 106251.dasm - System.Data.ProviderBase.SchemaMapping:CreateIndexMap(int,int):System.Int32[]:this
         -49 (-15.36% of base) : 60472.dasm - System.Collections.Generic.GenericEqualityComparer`1:IndexOf(System.__Canon[],System.__Canon,int,int):int:this
         -28 (-15.22% of base) : 165107.dasm - System.Speech.Internal.Synthesis.AudioFormatConverter:ConvertLinear8LinearShortByte(System.Int16[],int):System.Byte[]
         -24 (-14.81% of base) : 165109.dasm - System.Speech.Internal.Synthesis.AudioFormatConverter:ConvertLinear8LinearByteShort(System.Byte[],int):System.Int16[]
         -63 (-14.65% of base) : 106553.dasm - System.Data.SqlTypes.SqlString:CompareBinary2(System.Data.SqlTypes.SqlString,System.Data.SqlTypes.SqlString):int
         -39 (-12.96% of base) : 60467.dasm - System.Collections.Generic.ObjectEqualityComparer`1:IndexOf(System.__Canon[],System.__Canon,int,int):int:this
         -21 (-12.73% of base) : 106458.dasm - System.Data.SqlTypes.SqlBinary:HashByteArray(System.Byte[],int):int
         -17 (-12.50% of base) : 118889.dasm - System.Xml.Schema.DatatypeImplementation:Compare(System.Byte[],System.Byte[]):int:this
         -73 (-12.33% of base) : 197233.dasm - System.Runtime.Serialization.Formatters.Binary.ObjectWriter:WriteRectangle(System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo,int,System.Int32[],System.Array,System.Runtime.Serialization.Formatters.Binary.NameInfo,System.Int32[]):this
         -17 (-11.72% of base) : 1130.dasm - Microsoft.CSharp.RuntimeBinder.Syntax.NameTable:ComputeHashCode(System.String,int):int
         -16 (-11.51% of base) : 4170.dasm - Roslyn.Utilities.StringTable:TextEqualsASCII(System.String,long,int):bool
         -17 (-10.76% of base) : 20594.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxList:List(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode[],int):Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode
         -19 (-10.50% of base) : 6224.dasm - Microsoft.CodeAnalysis.SyntaxTreeExtensions:FindFirstDifference(System.String,System.String):int
         -18 (-10.47% of base) : 11604.dasm - WithLotsOfChildren:CalculateOffsets(Microsoft.CodeAnalysis.ArrayElement`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode][]):System.Int32[]
         -16 (-10.26% of base) : 20565.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxListBuilder:AddRange(Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.CSharpSyntaxNode[],int,int):this
         -20 (-10.00% of base) : 60475.dasm - System.Collections.Generic.EqualityComparer`1:IndexOf(System.__Canon[],System.__Canon,int,int):int:this

281 total methods with Code Size differences (278 improved, 3 regressed), 2 unchanged.



Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 233941
Total bytes of diff: 228887
Total bytes of delta: -5054 (-2.16% of base)
Total relative delta: -14.62
    diff is an improvement.
    relative diff is an improvement.
Detail diffs

Top file regressions (bytes):
          37 : 25696.dasm (0.89% of base)
          25 : 126923.dasm (0.87% of base)
          12 : 126924.dasm (0.94% of base)
           9 : 29954.dasm (3.77% of base)
           7 : 230975.dasm (0.64% of base)
           7 : 232605.dasm (0.64% of base)
           5 : 81373.dasm (0.22% of base)
           2 : 208892.dasm (0.42% of base)
           2 : 208910.dasm (0.42% of base)
           2 : 208886.dasm (0.42% of base)
           2 : 208864.dasm (0.42% of base)
           2 : 116782.dasm (0.96% of base)

Top file improvements (bytes):
        -163 : 77206.dasm (-8.25% of base)
         -98 : 214290.dasm (-15.65% of base)
         -75 : 211488.dasm (-6.89% of base)
         -71 : 200508.dasm (-1.94% of base)
         -64 : 117312.dasm (-14.19% of base)
         -58 : 216272.dasm (-6.50% of base)
         -58 : 216959.dasm (-6.50% of base)
         -56 : 21737.dasm (-17.07% of base)
         -53 : 157068.dasm (-3.47% of base)
         -51 : 42829.dasm (-6.24% of base)
         -46 : 108011.dasm (-8.71% of base)
         -44 : 108012.dasm (-8.53% of base)
         -43 : 25090.dasm (-22.28% of base)
         -42 : 211487.dasm (-7.54% of base)
         -42 : 157071.dasm (-2.94% of base)
         -39 : 178657.dasm (-7.83% of base)
         -38 : 183640.dasm (-1.70% of base)
         -37 : 77949.dasm (-11.31% of base)
         -36 : 25559.dasm (-3.28% of base)
         -36 : 115275.dasm (-9.30% of base)

307 total files with Code Size differences (295 improved, 12 regressed), 6 unchanged.

Top method regressions (bytes):
          37 ( 0.89% of base) : 25696.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsApplicable(Microsoft.CodeAnalysis.CSharp.Symbol,EffectiveParameters,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.Collections.Immutable.ImmutableArray`1[Int32],bool,bool,bool,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this
          25 ( 0.87% of base) : 126923.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteListInitExpression(System.Linq.Expressions.Expression,int):Result:this
          12 ( 0.94% of base) : 126924.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteMemberInitExpression(System.Linq.Expressions.Expression,int):Result:this
           9 ( 3.77% of base) : 29954.dasm - Microsoft.CodeAnalysis.CSharp.DiagnosticsPass:IsComCallWithRefOmitted(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableArray`1[RefKind]):bool
           7 ( 0.64% of base) : 230975.dasm - ArraySerializer:Deserialize(Xunit.Abstractions.IXunitSerializationInfo):this
           7 ( 0.64% of base) : 232605.dasm - ArraySerializer:Deserialize(Xunit.Abstractions.IXunitSerializationInfo):this
           5 ( 0.22% of base) : 81373.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:GetDelta(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,System.Guid,Microsoft.Cci.MetadataSizes):Microsoft.CodeAnalysis.Emit.EmitBaseline:this
           2 ( 0.42% of base) : 208892.dasm - System.Numerics.Tensors.CompressedSparseTensor`1[Int32][System.Int32]:get_Item(System.ReadOnlySpan`1[Int32]):int:this
           2 ( 0.42% of base) : 208910.dasm - System.Numerics.Tensors.CompressedSparseTensor`1[Int64][System.Int64]:get_Item(System.ReadOnlySpan`1[Int32]):long:this
           2 ( 0.42% of base) : 208886.dasm - System.Numerics.Tensors.CompressedSparseTensor`1[Int16][System.Int16]:get_Item(System.ReadOnlySpan`1[Int32]):short:this
           2 ( 0.42% of base) : 208864.dasm - System.Numerics.Tensors.CompressedSparseTensor`1[Byte][System.Byte]:get_Item(System.ReadOnlySpan`1[Int32]):ubyte:this
           2 ( 0.96% of base) : 116782.dasm - System.Data.SqlTypes.SqlDecimal:GetHashCode():int:this

Top method improvements (bytes):
        -163 (-8.25% of base) : 77206.dasm - Microsoft.Cci.CustomDebugInfoWriter:SerializeDynamicLocalInfo(Microsoft.Cci.IMethodBody,Microsoft.CodeAnalysis.ArrayBuilder`1[[Microsoft.Cci.BlobBuilder, Microsoft.CodeAnalysis, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]])
         -98 (-15.65% of base) : 214290.dasm - System.Runtime.Serialization.Formatters.Binary.ObjectWriter:WriteRectangle(System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo,int,System.Int32[],System.Array,System.Runtime.Serialization.Formatters.Binary.NameInfo,System.Int32[]):this
         -75 (-6.89% of base) : 211488.dasm - System.DefaultBinder:FindMostSpecific(System.Reflection.ParameterInfo[],System.Int32[],System.Type,System.Reflection.ParameterInfo[],System.Int32[],System.Type,System.Type[],System.Object[]):int
         -71 (-1.94% of base) : 200508.dasm - System.Management.PropertyData:MapValueToWmiValue(System.Object,byref,byref):System.Object
         -64 (-14.19% of base) : 117312.dasm - System.Data.SqlTypes.SqlString:CompareBinary2(System.Data.SqlTypes.SqlString,System.Data.SqlTypes.SqlString):int
         -58 (-6.50% of base) : 216272.dasm - DSACng:GenerateV2DsaBlob(byref,System.Security.Cryptography.DSAParameters,int,bool)
         -58 (-6.50% of base) : 216959.dasm - System.Security.Cryptography.DSACng:GenerateV2DsaBlob(byref,System.Security.Cryptography.DSAParameters,int,bool)
         -56 (-17.07% of base) : 21737.dasm - System.Collections.Generic.NullableEqualityComparer`1[Byte][System.Byte]:IndexOf(System.Nullable`1[System.Byte][],System.Nullable`1[Byte],int,int):int:this
         -53 (-3.47% of base) : 157068.dasm - System.Text.ISO2022Encoding:GetCharsCP5022xJP(long,int,long,int,ISO2022Decoder):int:this
         -51 (-6.24% of base) : 42829.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:EqualsComplicatedCases(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,bool,bool):bool:this
         -46 (-8.71% of base) : 108011.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int32TryParse(System.Char[],int,int,byref):int
         -44 (-8.53% of base) : 108012.dasm - Newtonsoft.Json.Utilities.ConvertUtils:Int64TryParse(System.Char[],int,int,byref):int
         -43 (-22.28% of base) : 25090.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CreateSourceIndicesArray(int,int):System.Int32[]
         -42 (-7.54% of base) : 211487.dasm - System.DefaultBinder:ExactPropertyBinding(System.Reflection.PropertyInfo[],System.Type,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.PropertyInfo
         -42 (-2.94% of base) : 157071.dasm - System.Text.ISO2022Encoding:GetCharsCP50225KR(long,int,long,int,ISO2022Decoder):int:this
         -39 (-7.83% of base) : 178657.dasm - System.ComponentModel.Composition.ReflectionModel.GenericSpecializationPartCreationInfo:CanSpecialize(System.Collections.Generic.IDictionary`2[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Object, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]],System.Type[]):bool
         -38 (-1.70% of base) : 183640.dasm - System.Data.Odbc.OdbcDataReader:RetrieveKeyInfoFromStatistics(QualifiedTableName,bool):int:this
         -37 (-11.31% of base) : 77949.dasm - Microsoft.CodeAnalysis.BitVector:IntersectWith(Microsoft.CodeAnalysis.BitVector):bool:this
         -36 (-3.28% of base) : 25559.dasm - Microsoft.CodeAnalysis.CSharp.ConversionsBase:HasExplicitDelegateConversion(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,byref):bool:this
         -36 (-9.30% of base) : 115275.dasm - System.Data.DataTable:RecordChanged(System.Int32[],System.Int32[]):this

Top method regressions (percentages):
           9 ( 3.77% of base) : 29954.dasm - Microsoft.CodeAnalysis.CSharp.DiagnosticsPass:IsComCallWithRefOmitted(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.BoundExpression, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableArray`1[RefKind]):bool
           2 ( 0.96% of base) : 116782.dasm - System.Data.SqlTypes.SqlDecimal:GetHashCode():int:this
          12 ( 0.94% of base) : 126924.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteMemberInitExpression(System.Linq.Expressions.Expression,int):Result:this
          37 ( 0.89% of base) : 25696.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsApplicable(Microsoft.CodeAnalysis.CSharp.Symbol,EffectiveParameters,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.Collections.Immutable.ImmutableArray`1[Int32],bool,bool,bool,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this
          25 ( 0.87% of base) : 126923.dasm - System.Linq.Expressions.Compiler.StackSpiller:RewriteListInitExpression(System.Linq.Expressions.Expression,int):Result:this
           7 ( 0.64% of base) : 230975.dasm - ArraySerializer:Deserialize(Xunit.Abstractions.IXunitSerializationInfo):this
           7 ( 0.64% of base) : 232605.dasm - ArraySerializer:Deserialize(Xunit.Abstractions.IXunitSerializationInfo):this
           2 ( 0.42% of base) : 208892.dasm - System.Numerics.Tensors.CompressedSparseTensor`1[Int32][System.Int32]:get_Item(System.ReadOnlySpan`1[Int32]):int:this
           2 ( 0.42% of base) : 208910.dasm - System.Numerics.Tensors.CompressedSparseTensor`1[Int64][System.Int64]:get_Item(System.ReadOnlySpan`1[Int32]):long:this
           2 ( 0.42% of base) : 208886.dasm - System.Numerics.Tensors.CompressedSparseTensor`1[Int16][System.Int16]:get_Item(System.ReadOnlySpan`1[Int32]):short:this
           2 ( 0.42% of base) : 208864.dasm - System.Numerics.Tensors.CompressedSparseTensor`1[Byte][System.Byte]:get_Item(System.ReadOnlySpan`1[Int32]):ubyte:this
           5 ( 0.22% of base) : 81373.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:GetDelta(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,System.Guid,Microsoft.Cci.MetadataSizes):Microsoft.CodeAnalysis.Emit.EmitBaseline:this

Top method improvements (percentages):
         -43 (-22.28% of base) : 25090.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CreateSourceIndicesArray(int,int):System.Int32[]
         -32 (-22.22% of base) : 42747.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol:TypeParametersMatchTypeArguments(System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol, Microsoft.CodeAnalysis.CSharp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):bool
         -23 (-21.10% of base) : 117672.dasm - System.Data.ProviderBase.SchemaMapping:CreateIndexMap(int,int):System.Int32[]:this
         -27 (-20.45% of base) : 21735.dasm - System.Collections.Generic.GenericEqualityComparer`1[Int64][System.Int64]:IndexOf(System.Int64[],long,int,int):int:this
         -32 (-19.28% of base) : 208836.dasm - System.Numerics.Tensors.ArrayUtilities:GetIndex(System.Int32[],System.ReadOnlySpan`1[Int32],int):int
         -27 (-18.12% of base) : 83126.dasm - Roslyn.Utilities.StringTable:TextEqualsASCII(System.String,long,int):bool
         -26 (-17.93% of base) : 21724.dasm - System.Collections.Generic.GenericEqualityComparer`1[Int16][System.Int16]:IndexOf(System.Int16[],short,int,int):int:this
         -26 (-17.93% of base) : 21718.dasm - System.Collections.Generic.GenericEqualityComparer`1[Byte][System.Byte]:IndexOf(System.Byte[],ubyte,int,int):int:this
         -56 (-17.07% of base) : 21737.dasm - System.Collections.Generic.NullableEqualityComparer`1[Byte][System.Byte]:IndexOf(System.Nullable`1[System.Byte][],System.Nullable`1[Byte],int,int):int:this
         -25 (-16.45% of base) : 209056.dasm - System.Numerics.Tensors.Tensor`1[__Canon][System.__Canon]:get_Item(System.ReadOnlySpan`1[Int32]):System.__Canon:this
         -25 (-16.45% of base) : 209205.dasm - System.Numerics.Tensors.Tensor`1[Int64][System.Int64]:get_Item(System.ReadOnlySpan`1[Int32]):long:this
         -25 (-16.45% of base) : 209157.dasm - System.Numerics.Tensors.Tensor`1[Int32][System.Int32]:get_Item(System.ReadOnlySpan`1[Int32]):int:this
         -25 (-16.45% of base) : 209142.dasm - System.Numerics.Tensors.Tensor`1[Int16][System.Int16]:get_Item(System.ReadOnlySpan`1[Int32]):short:this
         -25 (-16.45% of base) : 209120.dasm - System.Numerics.Tensors.Tensor`1[Byte][System.Byte]:get_Item(System.ReadOnlySpan`1[Int32]):ubyte:this
         -23 (-16.31% of base) : 142775.dasm - System.Xml.Schema.DatatypeImplementation:Compare(System.Byte[],System.Byte[]):int:this
         -24 (-16.00% of base) : 209206.dasm - System.Numerics.Tensors.Tensor`1[Int64][System.Int64]:set_Item(System.ReadOnlySpan`1[Int32],long):this
         -24 (-16.00% of base) : 209158.dasm - System.Numerics.Tensors.Tensor`1[Int32][System.Int32]:set_Item(System.ReadOnlySpan`1[Int32],int):this
         -24 (-16.00% of base) : 209057.dasm - System.Numerics.Tensors.Tensor`1[__Canon][System.__Canon]:set_Item(System.ReadOnlySpan`1[Int32],System.__Canon):this
         -98 (-15.65% of base) : 214290.dasm - System.Runtime.Serialization.Formatters.Binary.ObjectWriter:WriteRectangle(System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo,int,System.Int32[],System.Array,System.Runtime.Serialization.Formatters.Binary.NameInfo,System.Int32[]):this
         -30 (-15.62% of base) : 21731.dasm - System.Collections.Generic.GenericEqualityComparer`1[Vector`1][System.Numerics.Vector`1[System.Single]]:IndexOf(System.Numerics.Vector`1[System.Single][],System.Numerics.Vector`1[Single],int,int):int:this

307 total methods with Code Size differences (295 improved, 12 regressed), 6 unchanged.



Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 507552
Total bytes of diff: 500488
Total bytes of delta: -7064 (-1.39% of base)
Total relative delta: -18.21
    diff is an improvement.
    relative diff is an improvement.
Detail diffs

Top file regressions (bytes):
         129 : 243955.dasm (6.71% of base)
         129 : 239657.dasm (6.71% of base)
          46 : 323028.dasm (1.11% of base)
          32 : 24648.dasm (1.15% of base)
          20 : 24652.dasm (0.83% of base)
          10 : 180208.dasm (1.53% of base)
          10 : 179680.dasm (1.53% of base)
          10 : 180319.dasm (1.27% of base)
          10 : 179747.dasm (1.39% of base)
           9 : 179507.dasm (1.54% of base)
           5 : 312567.dasm (0.65% of base)
           4 : 180289.dasm (0.36% of base)
           4 : 179711.dasm (0.43% of base)
           3 : 86806.dasm (0.13% of base)
           1 : 320454.dasm (0.03% of base)
           1 : 205808.dasm (0.02% of base)
           1 : 76903.dasm (0.02% of base)
           1 : 323027.dasm (0.07% of base)

Top file improvements (bytes):
         -66 : 76722.dasm (-4.54% of base)
         -58 : 13653.dasm (-31.87% of base)
         -48 : 291783.dasm (-24.74% of base)
         -48 : 292208.dasm (-24.74% of base)
         -40 : 81512.dasm (-2.47% of base)
         -40 : 24366.dasm (-3.32% of base)
         -40 : 24411.dasm (-3.32% of base)
         -34 : 180353.dasm (-6.71% of base)
         -34 : 180314.dasm (-6.48% of base)
         -34 : 240737.dasm (-4.52% of base)
         -34 : 77232.dasm (-2.04% of base)
         -34 : 180344.dasm (-6.90% of base)
         -34 : 180299.dasm (-6.84% of base)
         -34 : 205725.dasm (-2.04% of base)
         -34 : 236571.dasm (-4.52% of base)
         -33 : 77244.dasm (-1.96% of base)
         -33 : 205737.dasm (-1.96% of base)
         -32 : 100494.dasm (-2.32% of base)
         -32 : 179734.dasm (-7.55% of base)
         -32 : 279623.dasm (-4.53% of base)

526 total files with Code Size differences (508 improved, 18 regressed), 18 unchanged.

Top method regressions (bytes):
         129 ( 6.71% of base) : 243955.dasm - System.Data.SqlClient.TdsParser:WriteSessionRecoveryFeatureRequest(System.Data.SqlClient.SessionData,bool):int:this
         129 ( 6.71% of base) : 239657.dasm - System.Data.SqlClient.TdsParser:WriteSessionRecoveryFeatureRequest(System.Data.SqlClient.SessionData,bool):int:this
          46 ( 1.11% of base) : 323028.dasm - System.Transactions.Tests.NonMsdtcPromoterTests:TestCase_PSPENonMsdtc(bool,bool,int,int,int,int,int,int,int)
          32 ( 1.15% of base) : 24648.dasm - System.Collections.Tests.LinkedList_Generic_Tests`1[Byte][System.Byte]:AddAfter_LLNode():this
          20 ( 0.83% of base) : 24652.dasm - System.Collections.Tests.LinkedList_Generic_Tests`1[Byte][System.Byte]:AddBefore_LLNode():this
          10 ( 1.53% of base) : 180208.dasm - System.SpanTests.SpanTests:MakeSureNoStartsWithChecksGoOutOfRange()
          10 ( 1.53% of base) : 179680.dasm - System.SpanTests.ReadOnlySpanTests:MakeSureNoStartsWithChecksGoOutOfRange()
          10 ( 1.27% of base) : 180319.dasm - System.SpanTests.SpanTests:MakeSureNoSequenceCompareToChecksGoOutOfRange()
          10 ( 1.39% of base) : 179747.dasm - System.SpanTests.ReadOnlySpanTests:MakeSureNoSequenceCompareToChecksGoOutOfRange()
           9 ( 1.54% of base) : 179507.dasm - System.Memory.Tests.SequenceReader.SequenceFactory:Create(System.Byte[][]):System.Buffers.ReadOnlySequence`1[Byte]
           5 ( 0.65% of base) : 312567.dasm - System.Net.Test.Uri.IriTest.IriEscapeUnescapeTest:EscapeUnescapeAllUriComponentsInDifferentCultures(System.String):this
           4 ( 0.36% of base) : 180289.dasm - System.SpanTests.SpanTests:MakeSureNoSequenceEqualChecksGoOutOfRange()
           4 ( 0.43% of base) : 179711.dasm - System.SpanTests.ReadOnlySpanTests:MakeSureNoSequenceEqualChecksGoOutOfRange()
           3 ( 0.13% of base) : 86806.dasm - System.Text.Encodings.Web.Tests.UnicodeHelpersTests:ReadListOfDefinedCharacters():System.Boolean[]
           1 ( 0.03% of base) : 320454.dasm - System.Threading.Tasks.Test.ParallelStateTest:.ctor(System.Threading.Tasks.Test.TestParameters):this
           1 ( 0.02% of base) : 205808.dasm - System.Tests.StringTests:WhiteSpaceAtEndTrim_Memory()
           1 ( 0.02% of base) : 76903.dasm - System.Tests.StringTests:WhiteSpaceAtEndTrim_Memory()
           1 ( 0.07% of base) : 323027.dasm - System.Transactions.Tests.NonMsdtcPromoterTests:TestCase_VolatileEnlistments(int,int,int,bool,bool,System.Type)

Top method improvements (bytes):
         -66 (-4.54% of base) : 76722.dasm - System.Runtime.CompilerServices.Tests.ConditionalWeakTableTests:AddMany_ThenRemoveAll(int)
         -58 (-31.87% of base) : 13653.dasm - Microsoft.CodeAnalysis.Rename.ConflictEngine.ConflictResolver:IsSubStringEqual(System.String,System.String,int):bool
         -48 (-24.74% of base) : 291783.dasm - System.IO.Compression.Tests.ZipFileTestBase:ArraysEqual(System.Byte[],System.Byte[],int):bool
         -48 (-24.74% of base) : 292208.dasm - System.IO.Compression.Tests.ZipFileTestBase:ArraysEqual(System.Byte[],System.Byte[],int):bool
         -40 (-2.47% of base) : 81512.dasm - <>c:<Add>b__1_0(int):System.Tuple`3[[System.Runtime.CompilerServices.ConditionalWeakTable`2[[System.Object, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Object, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.WeakReference[], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.WeakReference[], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]:this
         -40 (-3.32% of base) : 24366.dasm - System.Collections.Tests.Dictionary_Generic_Tests`2[__Canon,Nullable`1][System.__Canon,System.Nullable`1[System.Int32]]:TrimExcess_NoArgument_TrimAfterEachBulkAddOrRemove_TrimsToAtLeastCount(int,int,int,int,int):this
         -40 (-3.32% of base) : 24411.dasm - System.Collections.Tests.Dictionary_Generic_Tests`2[Byte,Nullable`1][System.Byte,System.Nullable`1[System.Int32]]:TrimExcess_NoArgument_TrimAfterEachBulkAddOrRemove_TrimsToAtLeastCount(int,int,int,int,int):this
         -34 (-6.71% of base) : 180353.dasm - System.SpanTests.SpanTests:SequenceCompareToNoMatch_Byte()
         -34 (-6.48% of base) : 180314.dasm - System.SpanTests.SpanTests:SequenceCompareToWithSingleMismatch_Long()
         -34 (-4.52% of base) : 240737.dasm - Microsoft.SqlServer.Server.SqlDataRecord:SetValues(System.Object[]):int:this
         -34 (-2.04% of base) : 77232.dasm - System.Tests.StringTests:CompareToNoMatch_StringComparison()
         -34 (-6.90% of base) : 180344.dasm - System.SpanTests.SpanTests:SequenceCompareToNoMatch_Bool()
         -34 (-6.84% of base) : 180299.dasm - System.SpanTests.SpanTests:SequenceCompareToNoMatch_Char()
         -34 (-2.04% of base) : 205725.dasm - System.Tests.StringTests:CompareToNoMatch_StringComparison()
         -34 (-4.52% of base) : 236571.dasm - Microsoft.SqlServer.Server.SqlDataRecord:SetValues(System.Object[]):int:this
         -33 (-1.96% of base) : 77244.dasm - System.Tests.StringTests:ContainsNoMatch_StringComparison()
         -33 (-1.96% of base) : 205737.dasm - System.Tests.StringTests:ContainsNoMatch_StringComparison()
         -32 (-2.32% of base) : 100494.dasm - XmlCoreTest.Common.WriterFactory:CompareString(System.String):bool:this
         -32 (-7.55% of base) : 179734.dasm - System.SpanTests.ReadOnlySpanTests:SequenceCompareToNoMatch_Int()
         -32 (-4.53% of base) : 279623.dasm - System.Collections.Specialized.Tests.StringDictionaryKeysTests:Key_CopyTo(int,int):this

Top method regressions (percentages):
         129 ( 6.71% of base) : 243955.dasm - System.Data.SqlClient.TdsParser:WriteSessionRecoveryFeatureRequest(System.Data.SqlClient.SessionData,bool):int:this
         129 ( 6.71% of base) : 239657.dasm - System.Data.SqlClient.TdsParser:WriteSessionRecoveryFeatureRequest(System.Data.SqlClient.SessionData,bool):int:this
           9 ( 1.54% of base) : 179507.dasm - System.Memory.Tests.SequenceReader.SequenceFactory:Create(System.Byte[][]):System.Buffers.ReadOnlySequence`1[Byte]
          10 ( 1.53% of base) : 180208.dasm - System.SpanTests.SpanTests:MakeSureNoStartsWithChecksGoOutOfRange()
          10 ( 1.53% of base) : 179680.dasm - System.SpanTests.ReadOnlySpanTests:MakeSureNoStartsWithChecksGoOutOfRange()
          10 ( 1.39% of base) : 179747.dasm - System.SpanTests.ReadOnlySpanTests:MakeSureNoSequenceCompareToChecksGoOutOfRange()
          10 ( 1.27% of base) : 180319.dasm - System.SpanTests.SpanTests:MakeSureNoSequenceCompareToChecksGoOutOfRange()
          32 ( 1.15% of base) : 24648.dasm - System.Collections.Tests.LinkedList_Generic_Tests`1[Byte][System.Byte]:AddAfter_LLNode():this
          46 ( 1.11% of base) : 323028.dasm - System.Transactions.Tests.NonMsdtcPromoterTests:TestCase_PSPENonMsdtc(bool,bool,int,int,int,int,int,int,int)
          20 ( 0.83% of base) : 24652.dasm - System.Collections.Tests.LinkedList_Generic_Tests`1[Byte][System.Byte]:AddBefore_LLNode():this
           5 ( 0.65% of base) : 312567.dasm - System.Net.Test.Uri.IriTest.IriEscapeUnescapeTest:EscapeUnescapeAllUriComponentsInDifferentCultures(System.String):this
           4 ( 0.43% of base) : 179711.dasm - System.SpanTests.ReadOnlySpanTests:MakeSureNoSequenceEqualChecksGoOutOfRange()
           4 ( 0.36% of base) : 180289.dasm - System.SpanTests.SpanTests:MakeSureNoSequenceEqualChecksGoOutOfRange()
           3 ( 0.13% of base) : 86806.dasm - System.Text.Encodings.Web.Tests.UnicodeHelpersTests:ReadListOfDefinedCharacters():System.Boolean[]
           1 ( 0.07% of base) : 323027.dasm - System.Transactions.Tests.NonMsdtcPromoterTests:TestCase_VolatileEnlistments(int,int,int,bool,bool,System.Type)
           1 ( 0.03% of base) : 320454.dasm - System.Threading.Tasks.Test.ParallelStateTest:.ctor(System.Threading.Tasks.Test.TestParameters):this
           1 ( 0.02% of base) : 205808.dasm - System.Tests.StringTests:WhiteSpaceAtEndTrim_Memory()
           1 ( 0.02% of base) : 76903.dasm - System.Tests.StringTests:WhiteSpaceAtEndTrim_Memory()

Top method improvements (percentages):
         -58 (-31.87% of base) : 13653.dasm - Microsoft.CodeAnalysis.Rename.ConflictEngine.ConflictResolver:IsSubStringEqual(System.String,System.String,int):bool
         -29 (-24.79% of base) : 48794.dasm - System.Linq.Expressions.Tests.ArrayIndexTests:GenerateGenericArray(int):System.__Canon[]
         -48 (-24.74% of base) : 291783.dasm - System.IO.Compression.Tests.ZipFileTestBase:ArraysEqual(System.Byte[],System.Byte[],int):bool
         -48 (-24.74% of base) : 292208.dasm - System.IO.Compression.Tests.ZipFileTestBase:ArraysEqual(System.Byte[],System.Byte[],int):bool
         -24 (-21.62% of base) : 48795.dasm - System.Linq.Expressions.Tests.ArrayIndexTests:GenerateGenericArray(int):System.Byte[]
         -24 (-21.62% of base) : 71238.dasm - XmlDictionaryWriterTest:GetByteArray(int):System.Byte[]
         -24 (-21.62% of base) : 73858.dasm - XmlDictionaryWriterTest:GetByteArray(int):System.Byte[]
         -21 (-18.75% of base) : 210054.dasm - Test.Cryptography.ByteUtils:RepeatByte(ubyte,int):System.Byte[]
         -21 (-18.75% of base) : 211296.dasm - Test.Cryptography.ByteUtils:RepeatByte(ubyte,int):System.Byte[]
         -21 (-18.75% of base) : 212851.dasm - Test.Cryptography.ByteUtils:RepeatByte(ubyte,int):System.Byte[]
         -21 (-18.75% of base) : 160678.dasm - Test.Cryptography.ByteUtils:RepeatByte(ubyte,int):System.Byte[]
         -21 (-18.75% of base) : 317432.dasm - Test.Cryptography.ByteUtils:RepeatByte(ubyte,int):System.Byte[]
         -21 (-18.75% of base) : 318194.dasm - Test.Cryptography.ByteUtils:RepeatByte(ubyte,int):System.Byte[]
         -21 (-18.75% of base) : 201468.dasm - Test.Cryptography.ByteUtils:RepeatByte(ubyte,int):System.Byte[]
         -21 (-18.75% of base) : 214672.dasm - Test.Cryptography.ByteUtils:RepeatByte(ubyte,int):System.Byte[]
         -21 (-18.75% of base) : 215078.dasm - Test.Cryptography.ByteUtils:RepeatByte(ubyte,int):System.Byte[]
         -21 (-18.75% of base) : 248757.dasm - Test.Cryptography.ByteUtils:RepeatByte(ubyte,int):System.Byte[]
         -21 (-18.75% of base) : 290298.dasm - Test.Cryptography.ByteUtils:RepeatByte(ubyte,int):System.Byte[]
         -22 (-12.43% of base) : 9202.dasm - Roslyn.Utilities.PathUtilities:PathsEqual(System.String,System.String,int):bool
         -16 (-12.21% of base) : 8639.dasm - Roslyn.Utilities.Hash:GetFNVHashCode(System.Char[],int,int):int

526 total methods with Code Size differences (508 improved, 18 regressed), 18 unchanged.


@BruceForstall
Copy link
Contributor Author

I ran BenchmarkDotNet microbenchmarks on (most) of the benchmarks with spmi asm diffs, specifically:

*ByteMark* *BenchI* *BenchF* *SciMark2* *SpectralNorm_1* *FannkuchRedux_2*

I filtered out the ones where the baseline/diff ratio was between 0.99 and 1.01. The following are the results. There are some significant improvements (benchSparseMult over 30%), but more losses than wins.

Improvements:

Method Job Toolchain Mean Error StdDev Median Min Max Ratio Gen 0 Gen 1 Gen 2 Allocated
Adams Job-EFMGLY \runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 3.035 μs 0.0279 μs 0.0261 μs 3.037 μs 3.001 μs 3.088 μs 1.00 - - - 64 B
Adams Job-DVBVYH \runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 2.684 μs 0.0145 μs 0.0128 μs 2.687 μs 2.659 μs 2.704 μs 0.88 - - - 64 B
Method Job Toolchain Mean Error StdDev Median Min Max Ratio Gen 0 Gen 1 Gen 2 Allocated
Secant Job-EFMGLY \runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 160.7 ms 0.72 ms 0.67 ms 160.9 ms 159.2 ms 161.6 ms 1.00 - - - 2 KB
Secant Job-DVBVYH \runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 152.1 ms 1.00 ms 0.94 ms 152.2 ms 150.7 ms 153.8 ms 0.95 - - - 2 KB
Method Job Toolchain Mean Error StdDev Median Min Max Ratio RatioSD Gen 0 Gen 1 Gen 2 Allocated
benchSparseMult Job-EFMGLY \runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 648.8 ms 2.53 ms 2.11 ms 648.6 ms 645.7 ms 654.0 ms 1.00 0.00 - - - 4,560 B
benchSparseMult Job-DVBVYH \runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 442.9 ms 3.26 ms 3.05 ms 443.1 ms 439.0 ms 449.1 ms 0.68 0.01 - - - 432 B
Method Job Toolchain Mean Error StdDev Median Min Max Ratio RatioSD Gen 0 Gen 1 Gen 2 Allocated
BenchEmFloatClass Job-EFMGLY \runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 645.3 ms 10.49 ms 9.82 ms 640.5 ms 636.1 ms 665.4 ms 1.00 0.00 5000.0000 1000.0000 - 35,217 KB
BenchEmFloatClass Job-DVBVYH \runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 628.8 ms 2.43 ms 2.03 ms 628.8 ms 625.4 ms 632.8 ms 0.97 0.01 5000.0000 1000.0000 - 35,217 KB
BenchFourier Job-EFMGLY \runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 2,306.4 ms 49.46 ms 56.96 ms 2,288.8 ms 2,236.4 ms 2,417.6 ms 1.00 0.00 - - - 483 KB
BenchFourier Job-DVBVYH \runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 2,225.4 ms 21.93 ms 20.51 ms 2,225.3 ms 2,200.1 ms 2,256.8 ms 0.96 0.03 - - - 488 KB
BenchIDEAEncryption Job-EFMGLY \runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 885.0 ms 10.03 ms 9.38 ms 884.0 ms 870.9 ms 898.2 ms 1.00 0.00 - - - 615 KB
BenchIDEAEncryption Job-DVBVYH \runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 849.1 ms 2.82 ms 2.50 ms 848.5 ms 844.8 ms 853.0 ms 0.96 0.01 - - - 611 KB

Regressions:

Method Job Toolchain Mean Error StdDev Median Min Max Ratio Gen 0 Gen 1 Gen 2 Allocated
BenchMk2 Job-EFMGLY \runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 1.218 s 0.0151 s 0.0134 s 1.217 s 1.197 s 1.244 s 1.00 - - - 4 KB
BenchMk2 Job-DVBVYH \runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 1.302 s 0.0202 s 0.0189 s 1.306 s 1.266 s 1.334 s 1.07 - - - 4 KB
Method Job Toolchain Mean Error StdDev Median Min Max Ratio Gen 0 Gen 1 Gen 2 Allocated
BenchMrk Job-EFMGLY \runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 1.210 s 0.0093 s 0.0087 s 1.210 s 1.188 s 1.224 s 1.00 - - - 2,136 B
BenchMrk Job-DVBVYH \runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 1.315 s 0.0137 s 0.0128 s 1.314 s 1.299 s 1.336 s 1.09 - - - 704 B
Method Job Toolchain Mean Error StdDev Median Min Max Ratio Gen 0 Gen 1 Gen 2 Allocated
FFT Job-EFMGLY \runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 1.529 s 0.0110 s 0.0098 s 1.527 s 1.513 s 1.549 s 1.00 - - - 4 KB
FFT Job-DVBVYH \runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 1.556 s 0.0083 s 0.0074 s 1.552 s 1.546 s 1.569 s 1.02 - - - 2 KB
Method Job Toolchain Mean Error StdDev Median Min Max Ratio Gen 0 Gen 1 Gen 2 Allocated
NewtE Job-EFMGLY \runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 1.252 s 0.0077 s 0.0072 s 1.253 s 1.232 s 1.259 s 1.00 - - - 864 B
NewtE Job-DVBVYH \runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 1.318 s 0.0129 s 0.0121 s 1.319 s 1.286 s 1.333 s 1.05 - - - 4,968 B
Method Job Toolchain Mean Error StdDev Median Min Max Ratio Gen 0 Gen 1 Gen 2 Allocated
Simpsn Job-EFMGLY \runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 1.358 s 0.0102 s 0.0090 s 1.358 s 1.346 s 1.375 s 1.00 - - - 4 KB
Simpsn Job-DVBVYH \runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 1.483 s 0.0069 s 0.0061 s 1.483 s 1.473 s 1.497 s 1.09 - - - 4 KB
Method Job Toolchain Mean Error StdDev Median Min Max Ratio Gen 0 Gen 1 Gen 2 Allocated
Whetsto Job-EFMGLY \runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 2.204 s 0.0119 s 0.0093 s 2.206 s 2.178 s 2.212 s 1.00 - - - 2 KB
Whetsto Job-DVBVYH \runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 2.509 s 0.0197 s 0.0184 s 2.509 s 2.458 s 2.540 s 1.14 - - - 1 KB
Method Job Toolchain Mean Error StdDev Median Min Max Ratio Gen 0 Gen 1 Gen 2 Allocated
EightQueens Job-EFMGLY \runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 1.759 μs 0.0166 μs 0.0139 μs 1.762 μs 1.737 μs 1.782 μs 1.00 0.0208 - - 160 B
EightQueens Job-DVBVYH \runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 1.787 μs 0.0264 μs 0.0221 μs 1.791 μs 1.744 μs 1.815 μs 1.02 0.0218 - - 160 B
Method Job Toolchain Mean Error StdDev Median Min Max Ratio RatioSD Gen 0 Gen 1 Gen 2 Allocated
IniArray Job-EFMGLY \runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 42.48 ms 0.638 ms 0.498 ms 42.41 ms 41.90 ms 43.52 ms 1.00 0.00 - - - 223 B
IniArray Job-DVBVYH \runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 45.34 ms 3.738 ms 4.305 ms 42.76 ms 41.72 ms 56.57 ms 1.08 0.10 - - - 164 B
Method Job Toolchain Mean Error StdDev Median Min Max Ratio Gen 0 Gen 1 Gen 2 Allocated
MulMatrix Job-EFMGLY \runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 353.6 ms 2.37 ms 2.22 ms 353.3 ms 349.8 ms 357.7 ms 1.00 - - - 78 KB
MulMatrix Job-DVBVYH \runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 381.5 ms 2.34 ms 2.07 ms 381.4 ms 378.8 ms 385.5 ms 1.08 - - - 74 KB
Method Job Toolchain Mean Error StdDev Median Min Max Ratio RatioSD Gen 0 Gen 1 Gen 2 Allocated
NDhrystone Job-EFMGLY \runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 462.9 ms 4.91 ms 4.59 ms 463.3 ms 449.9 ms 467.8 ms 1.00 0.00 98000.0000 - - 587 MB
NDhrystone Job-DVBVYH \runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 497.0 ms 3.96 ms 3.51 ms 497.2 ms 491.8 ms 503.2 ms 1.07 0.02 98000.0000 - - 587 MB
Method Job Toolchain Mean Error StdDev Median Min Max Ratio RatioSD Gen 0 Gen 1 Gen 2 Allocated
BenchStringSort Job-EFMGLY \runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 1,516.6 ms 13.27 ms 12.41 ms 1,515.0 ms 1,500.8 ms 1,544.3 ms 1.00 0.00 11000.0000 5000.0000 - 69,638 KB
BenchStringSort Job-DVBVYH \runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 1,599.7 ms 6.69 ms 6.26 ms 1,600.5 ms 1,589.6 ms 1,613.6 ms 1.05 0.01 11000.0000 5000.0000 - 69,638 KB
BenchBitOps Job-EFMGLY \runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 1,207.9 ms 11.28 ms 10.55 ms 1,208.4 ms 1,193.5 ms 1,225.0 ms 1.00 0.00 4166000.0000 4166000.0000 4166000.0000 12,805,860 KB
BenchBitOps Job-DVBVYH \runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 1,227.2 ms 6.29 ms 5.25 ms 1,229.2 ms 1,217.3 ms 1,232.9 ms 1.02 0.01 4166000.0000 4166000.0000 4166000.0000 12,805,860 KB
BenchEmFloat Job-EFMGLY \runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 3,109.6 ms 60.31 ms 59.23 ms 3,076.9 ms 3,056.3 ms 3,247.7 ms 1.00 0.00 16000.0000 5000.0000 - 101,721 KB
BenchEmFloat Job-DVBVYH \runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 3,148.6 ms 6.73 ms 5.62 ms 3,147.8 ms 3,141.1 ms 3,158.4 ms 1.02 0.02 16000.0000 5000.0000 - 101,718 KB
BenchAssignJagged Job-EFMGLY \runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 928.2 ms 12.89 ms 12.06 ms 926.7 ms 912.3 ms 951.0 ms 1.00 0.00 - - - 5,581 KB
BenchAssignJagged Job-DVBVYH \runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 963.1 ms 7.80 ms 7.29 ms 961.0 ms 954.5 ms 978.4 ms 1.04 0.02 - - - 5,581 KB
BenchAssignRectangular Job-EFMGLY \runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 1,246.4 ms 11.44 ms 10.70 ms 1,247.0 ms 1,226.1 ms 1,264.2 ms 1.00 0.00 - - - 5,215 KB
BenchAssignRectangular Job-DVBVYH \runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 1,265.0 ms 6.01 ms 5.63 ms 1,265.7 ms 1,250.8 ms 1,274.3 ms 1.02 0.01 - - - 5,215 KB
BenchLUDecomp Job-EFMGLY \runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 1,061.4 ms 15.74 ms 14.72 ms 1,060.2 ms 1,034.6 ms 1,090.9 ms 1.00 0.00 37000.0000 15000.0000 5000.0000 211,164 KB
BenchLUDecomp Job-DVBVYH \runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe 1,077.9 ms 6.80 ms 6.36 ms 1,076.1 ms 1,070.1 ms 1,089.3 ms 1.02 0.02 37000.0000 15000.0000 5000.0000 211,162 KB

@BruceForstall
Copy link
Contributor Author

Based on the perf results, I don't plan to pursue this further.

@BruceForstall
Copy link
Contributor Author

fyi @AndyAyersMS I did the loop cloning experiment of simplifying the loop cloning loop choice conditions into one-condition-per-block, and not use bitwise "and". The code size diffs are good, and the code reads better, but the overall perf results look negative (with some improvements as well). Based on this, I'm not planning on investigating this further.

@BruceForstall BruceForstall marked this pull request as draft July 17, 2021 01:55
@AndyAyersMS
Copy link
Member

Any way you can make those results more readable?

Would be great if you could pick one or two regressions and try to figure out why it's slower.

@BruceForstall
Copy link
Contributor Author

Any way you can make those results more readable?

Well, I could hand-construct a table. That seems like a lot of work when BDN should be able to output something I could copy/paste directly.

I run BDN using (e.g., with "runtime2" as baseline build and "runtime" as diff):

pushd C:\gh\performance\src\benchmarks\micro
dotnet run -c Release -f net6.0 -- --filter *ByteMark* *BenchI* *BenchF* *SciMark2* *SpectralNorm_1* *FannkuchRedux_2* --coreRun C:\gh\runtime2\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe C:\gh\runtime\artifacts\tests\coreclr\windows.x64.Checked\Tests\Core_Root\CoreRun.exe -e GitHub

The --join option would seem tailor-made to put all the different results together, but BDN crashes when using it: dotnet/performance#1855.

Would be great if you could pick one or two regressions and try to figure out why it's slower.

And the big winner.

It's hard to compare base/diff perf numbers: are the branch predictions wrong/slow? Is the straight-line code more pipeline-able? Not sure how to figure this out... Need some Vtune magic probably.

@BruceForstall
Copy link
Contributor Author

This won't be investigated again until .NET 7, so I'm going to close this for now.

@ghost ghost locked as resolved and limited conversation to collaborators Aug 21, 2021
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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants