Assembly Diffs

linux arm64

Diffs are based on 2,501,156 contexts (1,003,806 MinOpts, 1,497,350 FullOpts).

MISSED contexts: base: 4,060 (0.16%), diff: 4,061 (0.16%)

Overall (-1,073,216 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 15,577,120 -2,576
benchmarks.run_pgo.linux.arm64.checked.mch 81,135,316 -67,672
benchmarks.run_tiered.linux.arm64.checked.mch 24,708,980 -59,456
coreclr_tests.run.linux.arm64.checked.mch 509,824,836 -372,928
libraries.crossgen2.linux.arm64.checked.mch 55,738,036 -12,004
libraries.pmi.linux.arm64.checked.mch 76,022,852 -11,096
libraries_tests.run.linux.arm64.Release.mch 381,446,624 -507,536
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 162,656,488 -31,200
realworld.run.linux.arm64.checked.mch 15,906,904 -8,516
smoke_tests.nativeaot.linux.arm64.checked.mch 2,949,332 -232

MinOpts (-911,184 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch 24,936,460 -65,264
benchmarks.run_tiered.linux.arm64.checked.mch 19,784,856 -58,804
coreclr_tests.run.linux.arm64.checked.mch 349,225,056 -316,420
libraries_tests.run.linux.arm64.Release.mch 215,297,140 -465,236
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 13,481,212 -1,016
realworld.run.linux.arm64.checked.mch 585,368 -4,444

FullOpts (-162,032 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 15,274,112 -2,576
benchmarks.run_pgo.linux.arm64.checked.mch 56,198,856 -2,408
benchmarks.run_tiered.linux.arm64.checked.mch 4,924,124 -652
coreclr_tests.run.linux.arm64.checked.mch 160,599,780 -56,508
libraries.crossgen2.linux.arm64.checked.mch 55,736,400 -12,004
libraries.pmi.linux.arm64.checked.mch 75,902,868 -11,096
libraries_tests.run.linux.arm64.Release.mch 166,149,484 -42,300
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 149,175,276 -30,184
realworld.run.linux.arm64.checked.mch 15,321,536 -4,072
smoke_tests.nativeaot.linux.arm64.checked.mch 2,948,384 -232

Example diffs

benchmarks.run.linux.arm64.checked.mch

-20 (-14.29%) : 20547.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)

@@ -8,9 +8,9 @@
 ; 0 inlinees with PGO data; 11 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
-;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
-;  V02 arg2         [V02,T03] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
+;  V00 this         [V00,T00] ( 13, 13   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
+;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (48) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[System.String]>
@@ -22,7 +22,7 @@
 ;* V11 tmp7         [V11    ] (  0,  0   )  struct (24) zero-ref    "impAppendStmt" <Microsoft.CodeAnalysis.BitVector>
 ;* V12 tmp8         [V12    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V13 tmp9         [V13    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
-;  V14 tmp10        [V14,T04] (  2,  2   )     ref  ->   x3         single-def "field V03.array (fldOffset=0x0)" P-INDEP
+;  V14 tmp10        [V14,T03] (  2,  2   )     ref  ->   x3         single-def "field V03.array (fldOffset=0x0)" P-INDEP
 ;* V15 tmp11        [V15    ] (  0,  0   )     ref  ->  zero-ref    "field V05.array (fldOffset=0x0)" P-INDEP
 ;* V16 tmp12        [V16    ] (  0,  0   )     ref  ->  zero-ref    "field V06.array (fldOffset=0x0)" P-INDEP
 ;* V17 tmp13        [V17    ] (  0,  0   )     ref  ->  zero-ref    "field V10.array (fldOffset=0x0)" P-INDEP
@@ -31,16 +31,12 @@
 ;* V20 tmp16        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V11._capacity (fldOffset=0x10)" P-INDEP
 ;* V21 tmp17        [V21    ] (  0,  0   )     ref  ->  zero-ref    "field V13.array (fldOffset=0x0)" P-INDEP
 ;  V22 tmp18        [V22    ] (  2,  4   )  struct (24) [fp+0x18]  do-not-enreg[XS] addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
-;  V23 tmp19        [V23,T00] ( 11, 22   )     ref  ->   x4         single-def "argument with side effect"
-;  V24 tmp20        [V24,T05] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V25 tmp21        [V25,T06] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
-;  V26 tmp22        [V26,T07] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V27 tmp23        [V27,T08] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
-;  V28 tmp24        [V28,T09] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
-;  V29 tmp25        [V29,T11] (  2,  4   )     int  ->   x7         "argument with side effect"
-;  V30 tmp26        [V30,T12] (  2,  4   )     int  ->   x8         "argument with side effect"
-;  V31 tmp27        [V31,T13] (  2,  4   )     int  ->   x9         "argument with side effect"
-;  V32 tmp28        [V32,T10] (  2,  4   )     ref  ->  x10         single-def "argument with side effect"
+;  V23 tmp19        [V23,T04] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
+;  V24 tmp20        [V24,T05] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
+;  V25 tmp21        [V25,T07] (  2,  4   )     int  ->   x6         "argument with side effect"
+;  V26 tmp22        [V26,T08] (  2,  4   )     int  ->   x7         "argument with side effect"
+;  V27 tmp23        [V27,T09] (  2,  4   )     int  ->   x8         "argument with side effect"
+;  V28 tmp24        [V28,T06] (  2,  4   )     ref  ->   x9         single-def "argument with side effect"
 ;
 ; Lcl frame size = 80
 
@@ -51,37 +47,30 @@ G_M55914_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=12 bbWeight=1 PerfScore 2.00
 G_M55914_IG02:        ; bbWeight=1, gcrefRegs=000F {x0 x1 x2 x3}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x0-x3]
-            mov     x4, x0
-            ; gcrRegs +[x4]
-            ldp     x5, x6, [x4, #0x40]
-            ; gcrRegs +[x5-x6]
-            ldrb    w7, [x4, #0x30]
-            ldrb    w8, [x4, #0x31]
-            ldrb    w9, [x4, #0x32]
-            ldr     x10, [x4, #0x50]
-            ; gcrRegs +[x10]
-                       ;; size=24 bbWeight=1 PerfScore 16.50
+            ldp     x4, x5, [x0, #0x40]
+            ; gcrRegs +[x4-x5]
+            ldrb    w6, [x0, #0x30]
+            ldrb    w7, [x0, #0x31]
+            ldrb    w8, [x0, #0x32]
+            ldr     x9, [x0, #0x50]
+            ; gcrRegs +[x9]
+                       ;; size=20 bbWeight=1 PerfScore 16.00
 G_M55914_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x11, x13, [x4, #0x58]
-            stp     x11, x13, [fp, #0x18]
-            ldr     x11, [x4, #0x68]
-            str     x11, [fp, #0x28]
+            ldp     x10, x11, [x0, #0x58]
+            stp     x10, x11, [fp, #0x18]
+            ldr     x10, [x0, #0x68]
+            str     x10, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M55914_IG04:        ; bbWeight=1, extend
-            ldrb    w11, [x4, #0x33]
-            str     w11, [sp, #0x18]   // [V04 OutArgs+0x18]
-            ldr     x11, [x4, #0x70]
-            ; gcrRegs +[x11]
-            str     x11, [sp, #0x20]   // [V04 OutArgs+0x20]
-            ldr     x4, [x4, #0x18]
-            str     x4, [sp, #0x28]    // [V04 OutArgs+0x28]
-            mov     x4, x5
-            mov     x5, x6
-            mov     w6, w7
-            ; gcrRegs -[x6]
-            mov     w7, w8
-            str     w9, [sp]   // [V04 OutArgs]
-            str     x10, [sp, #0x08]   // [V04 OutArgs+0x08]
+            ldrb    w10, [x0, #0x33]
+            str     w10, [sp, #0x18]   // [V04 OutArgs+0x18]
+            ldr     x10, [x0, #0x70]
+            ; gcrRegs +[x10]
+            str     x10, [sp, #0x20]   // [V04 OutArgs+0x20]
+            ldr     x10, [x0, #0x18]
+            str     x10, [sp, #0x28]   // [V04 OutArgs+0x28]
+            str     w8, [sp]   // [V04 OutArgs]
+            str     x9, [sp, #0x08]    // [V04 OutArgs+0x08]
             add     x8, fp, #24    // [V22 tmp18]
             str     x8, [sp, #0x10]    // [V04 OutArgs+0x10]
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
@@ -89,15 +78,15 @@ G_M55914_IG04:        ; bbWeight=1, extend
             movk    x8, #0xD1FFAB1E LSL #32
             ldr     x8, [x8]
             blr     x8
-            ; gcrRegs -[x1-x5 x10-x11]
-                       ;; size=76 bbWeight=1 PerfScore 23.00
+            ; gcrRegs -[x1-x5 x9-x10]
+                       ;; size=60 bbWeight=1 PerfScore 21.00
 G_M55914_IG05:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp, #0x30]
             add     sp, sp, #96
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 2.50
 
-; Total bytes of code 140, prolog size 12, PerfScore 53.00, instruction count 35, allocated bytes for code 140 (MethodHash=00902595) for method Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
+; Total bytes of code 120, prolog size 12, PerfScore 50.50, instruction count 30, allocated bytes for code 120 (MethodHash=00902595) for method Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -108,7 +97,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
+  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-16 (-14.29%) : 10708.dasm - System.Buffers.Text.Tests.Utf8FormatterTests:FormatterDateTimeOffsetNow(System.DateTimeOffset):ubyte:this (FullOpts)

@@ -8,79 +8,73 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T04] (  3,  3   )     ref  ->   x0         this class-hnd single-def <System.Buffers.Text.Tests.Utf8FormatterTests>
+;  V00 this         [V00,T02] (  3,  3   )     ref  ->   x0         this class-hnd single-def <System.Buffers.Text.Tests.Utf8FormatterTests>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.DateTimeOffset>
-;  V02 loc0         [V02    ] (  1,  1   )     int  ->  [fp+0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op
+;  V02 loc0         [V02    ] (  1,  1   )     int  ->  [fp+0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Buffers.StandardFormat>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Span`1[ubyte]>
-;  V06 tmp2         [V06,T02] (  4,  6   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <ubyte[]>
-;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-;  V08 tmp4         [V08,T05] (  2,  2   )   short  ->   x1         single-def "field V01._offsetMinutes (fldOffset=0x0)" P-INDEP
-;  V09 tmp5         [V09,T06] (  2,  2   )    long  ->   x2         single-def "field V01._dateTime (fldOffset=0x8)" P-INDEP
-;* V10 tmp6         [V10,T09] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._format (fldOffset=0x0)" P-INDEP
-;* V11 tmp7         [V11,T10] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._precision (fldOffset=0x1)" P-INDEP
+;  V06 tmp2         [V06,T00] (  4,  6   )     ref  ->   x5         class-hnd single-def "Inlining Arg" <ubyte[]>
+;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+;  V08 tmp4         [V08,T03] (  2,  2   )   short  ->   x1         single-def "field V01._offsetMinutes (fldOffset=0x0)" P-INDEP
+;  V09 tmp5         [V09,T04] (  2,  2   )    long  ->   x4         single-def "field V01._dateTime (fldOffset=0x8)" P-INDEP
+;* V10 tmp6         [V10,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._format (fldOffset=0x0)" P-INDEP
+;* V11 tmp7         [V11,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._precision (fldOffset=0x1)" P-INDEP
 ;* V12 tmp8         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V13 tmp9         [V13    ] (  0,  0   )     int  ->  zero-ref    single-def "field V05._length (fldOffset=0x8)" P-INDEP
-;  V14 tmp10        [V14,T07] (  3,  2   )   byref  ->   x3         "field V07._reference (fldOffset=0x0)" P-INDEP
-;  V15 tmp11        [V15,T08] (  3,  2   )     int  ->   x5         "field V07._length (fldOffset=0x8)" P-INDEP
-;  V16 tmp12        [V16,T03] (  3,  6   )  struct ( 8) [fp+0x30]  do-not-enreg[SF] "by-value struct argument" <System.Buffers.StandardFormat>
-;  V17 tmp13        [V17,T00] (  4,  8   )  struct (16) [fp+0x20]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.DateTimeOffset>
-;  V18 tmp14        [V18,T01] (  4,  8   )  struct (16) [fp+0x10]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.Span`1[ubyte]>
+;  V14 tmp10        [V14,T05] (  3,  2   )   byref  ->   x2         "field V07._reference (fldOffset=0x0)" P-INDEP
+;  V15 tmp11        [V15,T06] (  3,  2   )     int  ->   x3         "field V07._length (fldOffset=0x8)" P-INDEP
+;  V16 tmp12        [V16,T01] (  3,  6   )  struct ( 8) [fp+0x10]  do-not-enreg[SF] "by-value struct argument" <System.Buffers.StandardFormat>
 ;
-; Lcl frame size = 48
+; Lcl frame size = 16
 
 G_M7377_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-            str     xzr, [fp, #0x38]   // [V02 loc0]
-            stp     xzr, xzr, [fp, #0x10]  // [V18 tmp14], [V18 tmp14+0x08]
-                       ;; size=16 bbWeight=1 PerfScore 3.50
+            str     xzr, [fp, #0x18]   // [V02 loc0]
+            mov     x4, x2
+                       ;; size=16 bbWeight=1 PerfScore 3.00
 G_M7377_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
-            ldr     x0, [x0, #0x08]
-            cbnz    x0, G_M7377_IG04
+            ldr     x5, [x0, #0x08]
+            ; gcrRegs +[x5]
+            cbnz    x5, G_M7377_IG04
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M7377_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            mov     x3, xzr
-            ; byrRegs +[x3]
-            mov     w5, wzr
+            ; gcrRegs -[x0 x5]
+            mov     x2, xzr
+            ; byrRegs +[x2]
+            mov     w3, wzr
             b       G_M7377_IG05
                        ;; size=12 bbWeight=0.50 PerfScore 1.00
-G_M7377_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x0]
-            ; byrRegs -[x3]
-            add     x3, x0, #16
-            ; byrRegs +[x3]
-            ldr     w5, [x0, #0x08]
+G_M7377_IG04:        ; bbWeight=0.50, gcrefRegs=0020 {x5}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[x5]
+            ; byrRegs -[x2]
+            add     x2, x5, #16
+            ; byrRegs +[x2]
+            ldr     w3, [x5, #0x08]
                        ;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M7377_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
-            ; gcrRegs -[x0]
-            strh    w1, [fp, #0x20]    // [V17 tmp13]
-            str     x2, [fp, #0x28]    // [V17 tmp13+0x08]
-            str     x3, [fp, #0x10]    // [V18 tmp14]
-            str     w5, [fp, #0x18]    // [V18 tmp14+0x08]
-            strb    wzr, [fp, #0x30]   // [V16 tmp12]
-            strb    wzr, [fp, #0x31]   // [V16 tmp12+0x01]
-            ldp     x0, x1, [fp, #0x20]    // [V17 tmp13], [V17 tmp13+0x08]
-            ldp     x2, x3, [fp, #0x10]    // [V18 tmp14], [V18 tmp14+0x08]
-            ; byrRegs -[x3] +[x2]
-            ldrh    w5, [fp, #0x30]    // [V16 tmp12]
-            add     x4, fp, #56    // [V02 loc0]
+G_M7377_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0004 {x2}, byref
+            ; gcrRegs -[x5]
+            strb    wzr, [fp, #0x10]   // [V16 tmp12]
+            strb    wzr, [fp, #0x11]   // [V16 tmp12+0x01]
+            ldrh    w5, [fp, #0x10]    // [V16 tmp12]
+            mov     w0, w1
+            mov     x1, x4
+            add     x4, fp, #24    // [V02 loc0]
             movz    x6, #0xD1FFAB1E      // code for <unknown method>
             movk    x6, #0xD1FFAB1E LSL #16
             movk    x6, #0xD1FFAB1E LSL #32
             ldr     x6, [x6]
             blr     x6
             ; byrRegs -[x2]
-                       ;; size=60 bbWeight=1 PerfScore 20.00
+                       ;; size=44 bbWeight=1 PerfScore 11.00
 G_M7377_IG06:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x40
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 112, prolog size 16, PerfScore 32.25, instruction count 28, allocated bytes for code 112 (MethodHash=d298e32e) for method System.Buffers.Text.Tests.Utf8FormatterTests:FormatterDateTimeOffsetNow(System.DateTimeOffset):ubyte:this (FullOpts)
+; Total bytes of code 96, prolog size 12, PerfScore 22.75, instruction count 24, allocated bytes for code 96 (MethodHash=d298e32e) for method System.Buffers.Text.Tests.Utf8FormatterTests:FormatterDateTimeOffsetNow(System.DateTimeOffset):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -91,7 +85,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
+  Function Length   : 24 (0x00018) Actual length = 96 (0x000060)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -99,7 +93,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

-16 (-13.33%) : 32927.dasm - Span.IndexerBench:SameIndex2():ubyte:this (FullOpts)

@@ -8,63 +8,57 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Span.IndexerBench>
+;  V00 this         [V00,T02] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Span.IndexerBench>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V02 tmp1         [V02    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
-;  V03 tmp2         [V03,T01] (  4,  6   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <ubyte[]>
-;* V04 tmp3         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+;  V03 tmp2         [V03,T00] (  4,  6   )     ref  ->   x2         class-hnd single-def "Inlining Arg" <ubyte[]>
+;* V04 tmp3         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V05 tmp4         [V05    ] (  0,  0   )   byref  ->  zero-ref    "field V02._reference (fldOffset=0x0)" P-INDEP
 ;* V06 tmp5         [V06    ] (  0,  0   )     int  ->  zero-ref    "field V02._length (fldOffset=0x8)" P-INDEP
-;  V07 tmp6         [V07,T06] (  3,  2   )   byref  ->   x1         "field V04._reference (fldOffset=0x0)" P-INDEP
-;  V08 tmp7         [V08,T07] (  3,  2   )     int  ->   x2         "field V04._length (fldOffset=0x8)" P-INDEP
-;  V09 tmp8         [V09,T02] (  3,  6   )     ref  ->   x0         single-def "arr expr"
-;  V10 tmp9         [V10,T00] (  4,  8   )  struct (16) [fp+0x10]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.Span`1[ubyte]>
-;  V11 tmp10        [V11,T05] (  2,  4   )   byref  ->   x2         single-def "argument with side effect"
-;  V12 cse0         [V12,T04] (  4,  4   )     ref  ->   x4         "CSE - aggressive"
+;  V07 tmp6         [V07,T05] (  3,  2   )   byref  ->   x0         "field V04._reference (fldOffset=0x0)" P-INDEP
+;  V08 tmp7         [V08,T06] (  3,  2   )     int  ->   x1         "field V04._length (fldOffset=0x8)" P-INDEP
+;  V09 tmp8         [V09,T01] (  3,  6   )     ref  ->   x2         single-def "arr expr"
+;  V10 tmp9         [V10,T04] (  2,  4   )   byref  ->   x2         single-def "argument with side effect"
+;  V11 cse0         [V11,T03] (  4,  4   )     ref  ->   x4         "CSE - aggressive"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 0
 
 G_M29415_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x20]!
+            stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
-            str     xzr, [fp, #0x10]   // [V10 tmp9]
-                       ;; size=12 bbWeight=1 PerfScore 2.50
+                       ;; size=8 bbWeight=1 PerfScore 1.50
 G_M29415_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
             ldr     x4, [x0, #0x08]
             ; gcrRegs +[x4]
-            mov     x0, x4
-            cbnz    x0, G_M29415_IG04
+            mov     x2, x4
+            ; gcrRegs +[x2]
+            cbnz    x2, G_M29415_IG04
                        ;; size=12 bbWeight=1 PerfScore 4.50
 G_M29415_IG03:        ; bbWeight=0.50, gcrefRegs=0010 {x4}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            mov     x1, xzr
-            ; byrRegs +[x1]
-            mov     w2, wzr
+            ; gcrRegs -[x0 x2]
+            mov     x0, xzr
+            ; byrRegs +[x0]
+            mov     w1, wzr
             b       G_M29415_IG05
                        ;; size=12 bbWeight=0.50 PerfScore 1.00
-G_M29415_IG04:        ; bbWeight=0.50, gcrefRegs=0011 {x0 x4}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x0]
-            ; byrRegs -[x1]
-            add     x1, x0, #16
-            ; byrRegs +[x1]
-            ldr     w2, [x0, #0x08]
-                       ;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M29415_IG05:        ; bbWeight=1, gcrefRegs=0010 {x4}, byrefRegs=0002 {x1}, byref, isz
-            ; gcrRegs -[x0]
-            str     x1, [fp, #0x10]    // [V10 tmp9]
-            str     w2, [fp, #0x18]    // [V10 tmp9+0x08]
-            mov     x0, x4
-            ; gcrRegs +[x0]
-            ldr     w1, [x0, #0x08]
-            ; byrRegs -[x1]
-            cmp     w1, #0
-            bls     G_M29415_IG07
-            add     x2, x0, #16
-            ; byrRegs +[x2]
-            ldp     x0, x1, [fp, #0x10]    // [V10 tmp9], [V10 tmp9+0x08]
-            ; gcrRegs -[x0]
+G_M29415_IG04:        ; bbWeight=0.50, gcrefRegs=0014 {x2 x4}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[x2]
+            ; byrRegs -[x0]
+            add     x0, x2, #16
             ; byrRegs +[x0]
+            ldr     w1, [x2, #0x08]
+                       ;; size=8 bbWeight=0.50 PerfScore 1.75
+G_M29415_IG05:        ; bbWeight=1, gcrefRegs=0010 {x4}, byrefRegs=0001 {x0}, byref, isz
+            ; gcrRegs -[x2]
+            mov     x2, x4
+            ; gcrRegs +[x2]
+            ldr     w3, [x2, #0x08]
+            cmp     w3, #0
+            bls     G_M29415_IG07
+            add     x2, x2, #16
+            ; gcrRegs -[x2]
+            ; byrRegs +[x2]
             ldr     w4, [x4, #0x08]
             ; gcrRegs -[x4]
             mov     w3, wzr
@@ -74,9 +68,9 @@ G_M29415_IG05:        ; bbWeight=1, gcrefRegs=0010 {x4}, byrefRegs=0002 {x1}, by
             ldr     x5, [x5]
             blr     x5
             ; byrRegs -[x0 x2]
-                       ;; size=60 bbWeight=1 PerfScore 19.50
+                       ;; size=48 bbWeight=1 PerfScore 14.50
 G_M29415_IG06:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x20
+            ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 G_M29415_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
@@ -84,7 +78,7 @@ G_M29415_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_unix #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 120, prolog size 12, PerfScore 31.25, instruction count 30, allocated bytes for code 120 (MethodHash=cb7c8d18) for method Span.IndexerBench:SameIndex2():ubyte:this (FullOpts)
+; Total bytes of code 104, prolog size 8, PerfScore 25.25, instruction count 26, allocated bytes for code 104 (MethodHash=cb7c8d18) for method Span.IndexerBench:SameIndex2():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -95,7 +89,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
+  Function Length   : 26 (0x0001a) Actual length = 104 (0x000068)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -103,7 +97,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    81          save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
     E4          end
     E4          end
 

+8 (+1.56%) : 9856.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1[ulong]:FindStartPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],byref,int,byref,byref):ubyte:this (FullOpts)

@@ -8,28 +8,28 @@
 ; 0 inlinees with PGO data; 9 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  8, 52   )     ref  ->  x19         this class-hnd single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]>
+;  V00 this         [V00,T04] (  8, 52   )     ref  ->  x19         this class-hnd single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ushort]>
-;  V02 arg2         [V02,T22] (  5,  4   )   byref  ->  [fp+0x10]  EH-live single-def
+;  V02 arg2         [V02,T22] (  5,  4   )   byref  ->  [fp+0x18]  EH-live single-def
 ;  V03 arg3         [V03,T19] (  3, 10   )     int  ->  x21         single-def
-;  V04 arg4         [V04,T09] (  6, 32   )   byref  ->  x20         single-def
+;  V04 arg4         [V04,T08] (  6, 32   )   byref  ->  x20         single-def
 ;  V05 arg5         [V05,T23] (  3,  4   )   byref  ->  x23         single-def
-;  V06 loc0         [V06,T10] (  8, 28   )     int  ->  [fp+0x24]  do-not-enreg[Z] EH-live
-;  V07 loc1         [V07,T15] (  3, 20   )   ubyte  ->  x25        
+;  V06 loc0         [V06,T10] (  7, 24   )     int  ->  [fp+0x2C]  do-not-enreg[Z] EH-live
+;  V07 loc1         [V07,T14] (  3, 20   )   ubyte  ->  x25        
 ;* V08 loc2         [V08    ] (  0,  0   )     int  ->  zero-ref   
 ;  V09 loc3         [V09,T28] (  3,  2   )   ubyte  ->   x0        
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V11 tmp1         [V11,T12] (  4, 24   )     int  ->   x2         "Inline return value spill temp"
-;  V12 tmp2         [V12,T08] (  3, 36   )     int  ->   x0         "Inlining Arg"
+;  V11 tmp1         [V11,T11] (  4, 24   )     int  ->   x2         "Inline return value spill temp"
+;  V12 tmp2         [V12,T07] (  3, 36   )     int  ->   x0         "Inlining Arg"
 ;* V13 tmp3         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V14 tmp4         [V14,T25] (  3,  6   )     int  ->   x2         "Inline return value spill temp"
 ;  V15 tmp5         [V15,T18] (  3, 12   )     ref  ->   x1         class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.MintermClassifier>
-;  V16 tmp6         [V16,T24] (  3,  6   )     ref  ->  x26         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V16 tmp6         [V16,T24] (  3,  6   )     ref  ->  x27         class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V17 tmp7         [V17,T16] (  4, 16   )     int  ->   x2         "Inlining Arg"
 ;  V18 tmp8         [V18,T17] (  3, 14   )   ubyte  ->  x25         "Inline return value spill temp"
-;  V19 tmp9         [V19,T11] (  4, 28   )     int  ->   x4         "Inline stloc first use temp"
-;  V20 tmp10        [V20,T21] (  3, 10   )     int  ->   x1         "Inline stloc first use temp"
-;  V21 tmp11        [V21    ] (  3, 36   )     ref  ->  [fp+0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]>
+;  V19 tmp9         [V19,T09] (  4, 28   )     int  ->   x4         "Inline stloc first use temp"
+;  V20 tmp10        [V20,T21] (  3, 10   )     int  ->   x5         "Inline stloc first use temp"
+;  V21 tmp11        [V21    ] (  3, 36   )     ref  ->  [fp+0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]>
 ;* V22 tmp12        [V22    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp13        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]>
 ;* V24 tmp14        [V24    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
@@ -39,30 +39,31 @@
 ;  V28 tmp18        [V28,T20] (  2,  9   )     int  ->  x22         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V29 tmp19        [V29    ] (  0,  0   )   byref  ->  zero-ref    "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V30 tmp20        [V30    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
-;  V31 tmp21        [V31,T06] (  3, 48   )     ref  ->   x0         "arr expr"
-;  V32 tmp22        [V32,T07] (  3, 48   )     int  ->   x1         "index expr"
-;  V33 tmp23        [V33,T13] (  3, 24   )     ref  ->   x1         "arr expr"
-;  V34 tmp24        [V34,T00] (  3, 96   )     ref  ->   x1         "arr expr"
-;  V35 tmp25        [V35,T01] (  3, 96   )     int  ->   x0         "index expr"
+;  V31 tmp21        [V31,T05] (  3, 48   )     ref  ->   x0         "arr expr"
+;  V32 tmp22        [V32,T06] (  3, 48   )     int  ->   x1         "index expr"
+;  V33 tmp23        [V33,T12] (  3, 24   )     ref  ->   x5         "arr expr"
+;  V34 tmp24        [V34,T00] (  3, 96   )     ref  ->   x5         "arr expr"
+;  V35 tmp25        [V35,T01] (  3, 96   )     int  ->   x1         "index expr"
 ;  V36 tmp26        [V36,T03] (  2, 64   )     ref  ->   x1         "argument with side effect"
-;  V37 tmp27        [V37,T04] (  2, 64   )     ref  ->   x1         "argument with side effect"
-;  V38 PSPSym       [V38,T29] (  1,  1   )    long  ->  [fp+0x28]  do-not-enreg[V] "PSPSym"
-;  V39 cse0         [V39,T14] (  3, 24   )     int  ->   x0         "CSE - aggressive"
-;  V40 cse1         [V40,T27] (  2,  4   )     int  ->   x0         "CSE - moderate"
+;  V37 PSPSym       [V37,T29] (  1,  1   )    long  ->  [fp+0x30]  do-not-enreg[V] "PSPSym"
+;  V38 cse0         [V38,T13] (  3, 24   )     int  ->   x1         "CSE - aggressive"
+;  V39 cse1         [V39,T15] (  3, 20   )     int  ->  x26         "CSE - aggressive"
+;  V40 cse2         [V40,T27] (  2,  4   )     int  ->   x0         "CSE - moderate"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 40
 
 G_M55933_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x70]!
-            stp     x19, x20, [sp, #0x30]
-            stp     x21, x22, [sp, #0x40]
-            stp     x23, x24, [sp, #0x50]
-            stp     x25, x26, [sp, #0x60]
+            stp     fp, lr, [sp, #-0x80]!
+            stp     x19, x20, [sp, #0x38]
+            stp     x21, x22, [sp, #0x48]
+            stp     x23, x24, [sp, #0x58]
+            stp     x25, x26, [sp, #0x68]
+            str     x27, [sp, #0x78]
             mov     fp, sp
-            str     xzr, [fp, #0x18]   // [V21 tmp11]
-            add     x7, sp, #112
-            str     x7, [fp, #0x28]    // [V38 PSPSym]
-            str     x3, [fp, #0x10]    // [V02 arg2]
+            str     xzr, [fp, #0x20]   // [V21 tmp11]
+            add     x7, sp, #128
+            str     x7, [fp, #0x30]    // [V37 PSPSym]
+            str     x3, [fp, #0x18]    // [V02 arg2]
             ; GC ptr vars +{V02}
             mov     x19, x0
             ; gcrRegs +[x19]
@@ -74,11 +75,11 @@ G_M55933_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x20]
             mov     x23, x6
             ; byrRegs +[x23]
-                       ;; size=64 bbWeight=1 PerfScore 12.00
+                       ;; size=68 bbWeight=1 PerfScore 13.00
 G_M55933_IG02:        ; bbWeight=1, gcVars=0000000000400000 {V02}, gcrefRegs=80000 {x19}, byrefRegs=1900008 {x3 x20 x23 x24}, gcvars, byref
             ; byrRegs +[x3]
             ldr     w0, [x3]
-            str     w0, [fp, #0x24]    // [V06 loc0]
+            str     w0, [fp, #0x2C]    // [V06 loc0]
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M55933_IG03:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
             ; byrRegs -[x3]
@@ -92,19 +93,20 @@ G_M55933_IG03:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x2
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
             ldrb    w25, [x0, w1, UXTW #2]
-            ldr     w0, [fp, #0x24]    // [V06 loc0]
+            ldr     w0, [fp, #0x2C]    // [V06 loc0]
             ; byrRegs -[x0]
-            sub     w0, w0, #1
+            sub     w26, w0, #1
+            sxtw    w0, w26
             cmp     w0, w22
             bhs     G_M55933_IG14
-                       ;; size=44 bbWeight=8 PerfScore 144.00
+                       ;; size=48 bbWeight=8 PerfScore 148.00
 G_M55933_IG04:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
             ldr     x1, [x19, #0x50]
             ; gcrRegs +[x1]
             ldrh    w2, [x24, w0, UXTW #2]
-            ldr     x26, [x1, #0x08]
-            ; gcrRegs +[x26]
-            ldr     w0, [x26, #0x08]
+            ldr     x27, [x1, #0x08]
+            ; gcrRegs +[x27]
+            ldr     w0, [x27, #0x08]
             cmp     w0, w2
             bhi     G_M55933_IG13
             ldr     x0, [x1, #0x10]
@@ -117,7 +119,7 @@ G_M55933_IG04:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x2
             ldr     x2, [x2]
             ldr     wzr, [x0]
             blr     x2
-            ; gcrRegs -[x0 x26]
+            ; gcrRegs -[x0 x27]
             ; gcr arg pop 0
             sxtw    w2, w0
                        ;; size=60 bbWeight=2 PerfScore 52.00
@@ -125,83 +127,80 @@ G_M55933_IG05:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x2
             tbz     w25, #2, G_M55933_IG07
                        ;; size=4 bbWeight=8 PerfScore 8.00
 G_M55933_IG06:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
-            ldr     w0, [fp, #0x24]    // [V06 loc0]
-            str     w0, [x23]
+            ldr     w1, [fp, #0x2C]    // [V06 loc0]
+            str     w1, [x23]
                        ;; size=8 bbWeight=2 PerfScore 6.00
 G_M55933_IG07:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
-            ldr     w0, [fp, #0x24]    // [V06 loc0]
-            cmp     w0, w21
+            ldr     w1, [fp, #0x2C]    // [V06 loc0]
+            cmp     w1, w21
             ble     G_M55933_IG17
                        ;; size=12 bbWeight=8 PerfScore 28.00
 G_M55933_IG08:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
             tbnz    w25, #1, G_M55933_IG17
-            ldr     w0, [x20, #0x08]
-            ldr     w1, [x19, #0xA4]
-            lsl     w1, w0, w1
-            orr     w4, w1, w2
-            ldr     x1, [x19, #0x20]
-            ; gcrRegs +[x1]
-            ldr     w5, [x1, #0x08]
-            cmp     w4, w5
+            ldr     w1, [x20, #0x08]
+            ldr     w5, [x19, #0xA4]
+            lsl     w5, w1, w5
+            orr     w4, w5, w2
+            ldr     x5, [x19, #0x20]
+            ; gcrRegs +[x5]
+            ldr     w0, [x5, #0x08]
+            cmp     w4, w0
             bhs     G_M55933_IG12
-            add     x1, x1, #16
-            ; gcrRegs -[x1]
-            ; byrRegs +[x1]
-            ldr     w1, [x1, w4, UXTW #2]
-            ; byrRegs -[x1]
-            cmp     w1, #0
+            add     x5, x5, #16
+            ; gcrRegs -[x5]
+            ; byrRegs +[x5]
+            ldr     w5, [x5, w4, UXTW #2]
+            ; byrRegs -[x5]
+            cmp     w5, #0
             ble     G_M55933_IG15
                        ;; size=52 bbWeight=4 PerfScore 82.00
 G_M55933_IG09:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
-            str     w1, [x20, #0x08]
+            str     w5, [x20, #0x08]
                        ;; size=4 bbWeight=2 PerfScore 2.00
 G_M55933_IG10:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
             mov     w25, #1
                        ;; size=4 bbWeight=8 PerfScore 4.00
 G_M55933_IG11:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
-            str     xzr, [fp, #0x18]   // [V21 tmp11]
+            str     xzr, [fp, #0x20]   // [V21 tmp11]
             cbz     w25, G_M55933_IG18
-            ldr     w0, [fp, #0x24]    // [V06 loc0]
-            sub     w0, w0, #1
-            str     w0, [fp, #0x24]    // [V06 loc0]
+            str     w26, [fp, #0x2C]   // [V06 loc0]
             b       G_M55933_IG03
-                       ;; size=24 bbWeight=4 PerfScore 26.00
+                       ;; size=16 bbWeight=4 PerfScore 16.00
 G_M55933_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
             ; byrRegs -[x20 x23-x24]
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M55933_IG13:        ; bbWeight=2, gcrefRegs=4080000 {x19 x26}, byrefRegs=1900000 {x20 x23 x24}, byref
-            ; gcrRegs +[x19 x26]
+G_M55933_IG13:        ; bbWeight=2, gcrefRegs=8080000 {x19 x27}, byrefRegs=1900000 {x20 x23 x24}, byref
+            ; gcrRegs +[x19 x27]
             ; byrRegs +[x20 x23-x24]
-            add     x0, x26, #16
-            ; byrRegs +[x0]
-            ldr     w2, [x0, w2, UXTW #2]
+            add     x1, x27, #16
+            ; byrRegs +[x1]
+            ldr     w2, [x1, w2, UXTW #2]
             b       G_M55933_IG05
                        ;; size=12 bbWeight=2 PerfScore 9.00
 G_M55933_IG14:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
-            ; gcrRegs -[x26]
-            ; byrRegs -[x0]
+            ; gcrRegs -[x27]
+            ; byrRegs -[x1]
             movn    w2, #0
             b       G_M55933_IG05
                        ;; size=8 bbWeight=2 PerfScore 3.00
 G_M55933_IG15:        ; bbWeight=16, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
-            mov     x1, x19
-            ; gcrRegs +[x1]
-            ldr     x1, [x1, #0x10]
-            ldr     w5, [x1, #0x08]
-            cmp     w0, w5
+            ldr     x5, [x19, #0x10]
+            ; gcrRegs +[x5]
+            ldr     w0, [x5, #0x08]
+            cmp     w1, w0
             bhs     G_M55933_IG12
-            add     x1, x1, #16
-            ; gcrRegs -[x1]
-            ; byrRegs +[x1]
-            ldr     x1, [x1, w0, UXTW #3]
...

+4 (+1.82%) : 9565.dasm - System.Text.Json.JsonDocument:ParseValue(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)

@@ -10,7 +10,7 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ubyte]>
 ;  V01 arg1         [V01    ] (  3,  3   )  struct ( 8) [fp+0x30]  do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.Text.Json.JsonDocumentOptions>
-;  V02 loc0         [V02,T02] (  4,  4   )     ref  ->  x21         class-hnd exact single-def <ubyte[]>
+;  V02 loc0         [V02,T01] (  5,  5   )     ref  ->  x21         class-hnd exact single-def <ubyte[]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Memory`1[ubyte]>
@@ -20,11 +20,11 @@
 ;* V09 tmp6         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V10 tmp7         [V10    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V11 tmp8         [V11    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V12 tmp9         [V12,T04] (  2,  4   )    long  ->   x2         "Inlining Arg"
-;* V13 tmp10        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]>
+;  V12 tmp9         [V12,T06] (  2,  4   )    long  ->   x2         "Inlining Arg"
+;  V13 tmp10        [V13    ] (  5, 10   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]>
 ;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Memory`1[ubyte]>
-;  V15 tmp12        [V15,T03] (  2,  2   )   byref  ->  x20         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V16 tmp13        [V16,T01] (  4,  4   )     int  ->  x19         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V15 tmp12        [V15,T05] (  2,  2   )   byref  ->  x20         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V16 tmp13        [V16,T00] (  4,  4   )     int  ->  x19         single-def "field V00._length (fldOffset=0x8)" P-INDEP
 ;* V17 tmp14        [V17    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V18 tmp15        [V18    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
 ;* V19 tmp16        [V19    ] (  0,  0   )     ref  ->  zero-ref    "field V05._object (fldOffset=0x0)" P-INDEP
@@ -33,21 +33,20 @@
 ;* V22 tmp19        [V22    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V06._object (fldOffset=0x0)" P-INDEP
 ;* V23 tmp20        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V06._index (fldOffset=0x8)" P-INDEP
 ;* V24 tmp21        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0xc)" P-INDEP
-;  V25 tmp22        [V25,T05] (  2,  4   )     int  ->  [fp+0x28]  do-not-enreg[] "field V07._maxDepth (fldOffset=0x0)" P-DEP
-;  V26 tmp23        [V26,T06] (  2,  4   )   ubyte  ->  [fp+0x2C]  do-not-enreg[] "field V07._commentHandling (fldOffset=0x4)" P-DEP
-;  V27 tmp24        [V27,T07] (  2,  4   )   ubyte  ->  [fp+0x2D]  do-not-enreg[] "field V07.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-DEP
-;  V28 tmp25        [V28,T10] (  2,  2   )   byref  ->   x0         "field V08._reference (fldOffset=0x0)" P-INDEP
-;  V29 tmp26        [V29,T11] (  2,  2   )     int  ->   x1         "field V08._length (fldOffset=0x8)" P-INDEP
+;  V25 tmp22        [V25,T07] (  2,  4   )     int  ->  [fp+0x28]  do-not-enreg[] "field V07._maxDepth (fldOffset=0x0)" P-DEP
+;  V26 tmp23        [V26,T08] (  2,  4   )   ubyte  ->  [fp+0x2C]  do-not-enreg[] "field V07._commentHandling (fldOffset=0x4)" P-DEP
+;  V27 tmp24        [V27,T09] (  2,  4   )   ubyte  ->  [fp+0x2D]  do-not-enreg[] "field V07.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-DEP
+;  V28 tmp25        [V28,T11] (  2,  2   )   byref  ->   x0         "field V08._reference (fldOffset=0x0)" P-INDEP
+;  V29 tmp26        [V29,T12] (  2,  2   )     int  ->   x1         "field V08._length (fldOffset=0x8)" P-INDEP
 ;* V30 tmp27        [V30    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V31 tmp28        [V31    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
-;  V32 tmp29        [V32,T09] (  3,  3   )     ref  ->  x21         "field V13._object (fldOffset=0x0)" P-INDEP
-;* V33 tmp30        [V33,T13] (  0,  0   )     int  ->  zero-ref    "field V13._index (fldOffset=0x8)" P-INDEP
-;  V34 tmp31        [V34,T12] (  2,  2   )     int  ->  x19         "field V13._length (fldOffset=0xc)" P-INDEP
+;  V32 tmp29        [V32,T02] (  3,  5   )     ref  ->  [fp+0x18]  do-not-enreg[] "field V13._object (fldOffset=0x0)" P-DEP
+;  V33 tmp30        [V33,T03] (  3,  5   )     int  ->  [fp+0x20]  do-not-enreg[] "field V13._index (fldOffset=0x8)" P-DEP
+;  V34 tmp31        [V34,T04] (  3,  5   )     int  ->  [fp+0x24]  do-not-enreg[] "field V13._length (fldOffset=0xc)" P-DEP
 ;* V35 tmp32        [V35    ] (  0,  0   )     ref  ->  zero-ref    "field V14._object (fldOffset=0x0)" P-INDEP
 ;* V36 tmp33        [V36    ] (  0,  0   )     int  ->  zero-ref    "field V14._index (fldOffset=0x8)" P-INDEP
 ;* V37 tmp34        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0xc)" P-INDEP
-;  V38 tmp35        [V38,T08] (  2,  4   )  struct ( 8) [fp+0x20]  do-not-enreg[S] "by-value struct argument" <System.Text.Json.JsonReaderOptions>
-;  V39 tmp36        [V39,T00] (  5, 10   )  struct (16) [fp+0x10]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.Memory`1[ubyte]>
+;  V38 tmp35        [V38,T10] (  2,  4   )  struct ( 8) [fp+0x10]  do-not-enreg[S] "by-value struct argument" <System.Text.Json.JsonReaderOptions>
 ;
 ; Lcl frame size = 40
 
@@ -56,7 +55,7 @@ G_M33801_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     x19, x20, [sp, #0x38]
             str     x21, [sp, #0x48]
             mov     fp, sp
-            str     xzr, [fp, #0x10]   // [V39 tmp36]
+            str     xzr, [fp, #0x18]   // [V13 tmp10]
             str     x2, [fp, #0x30]    // [V01 arg1]
             mov     x20, x0
             ; byrRegs +[x20]
@@ -86,29 +85,30 @@ G_M33801_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
             ldr     x3, [x3]
             blr     x3
             ; byrRegs -[x0-x1 x20]
-            ldr     w19, [x21, #0x08]
+            str     x21, [fp, #0x18]   // [V32 tmp29]
+            str     wzr, [fp, #0x20]   // [V33 tmp30]
+            ldr     w0, [x21, #0x08]
+            str     w0, [fp, #0x24]    // [V34 tmp31]
             add     x0, fp, #48    // [V01 arg1]
             movz    x1, #0xD1FFAB1E      // code for System.Text.Json.JsonDocumentOptions:GetReaderOptions():System.Text.Json.JsonReaderOptions:this
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x1, [x1]
             blr     x1
+            ; gcrRegs -[x21]
             str     x0, [fp, #0x28]    // [V07 tmp4]
-            str     x21, [fp, #0x10]   // [V39 tmp36]
-            stp     wzr, w19, [fp, #0x18]  // [V39 tmp36+0x08], [V39 tmp36+0x0c]
-            ldr     x0, [fp, #0x28]    // [V07 tmp4]
-            str     x0, [fp, #0x20]    // [V38 tmp35]
-            ldp     x0, x1, [fp, #0x10]    // [V39 tmp36], [V39 tmp36+0x08]
+            ldr     x2, [fp, #0x28]    // [V07 tmp4]
+            str     x2, [fp, #0x10]    // [V38 tmp35]
+            ldp     x2, x0, [fp, #0x10]    // [V38 tmp35], [V13 tmp10]
             ; gcrRegs +[x0]
-            ldr     x2, [fp, #0x20]    // [V38 tmp35]
+            ldr     x1, [fp, #0x20]    // [V13 tmp10+0x08]
             mov     w3, wzr
             movz    x4, #0xD1FFAB1E      // code for <unknown method>
             movk    x4, #0xD1FFAB1E LSL #16
             movk    x4, #0xD1FFAB1E LSL #32
             ldr     x4, [x4]
             blr     x4
-            ; gcrRegs -[x21]
-                       ;; size=148 bbWeight=1 PerfScore 41.00
+                       ;; size=152 bbWeight=1 PerfScore 42.00
 G_M33801_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x21, [sp, #0x48]
             ldp     x19, x20, [sp, #0x38]
@@ -125,7 +125,7 @@ G_M33801_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 220, prolog size 20, PerfScore 52.50, instruction count 55, allocated bytes for code 220 (MethodHash=26bd7bf6) for method System.Text.Json.JsonDocument:ParseValue(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
+; Total bytes of code 224, prolog size 20, PerfScore 53.50, instruction count 56, allocated bytes for code 224 (MethodHash=26bd7bf6) for method System.Text.Json.JsonDocument:ParseValue(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -136,7 +136,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 55 (0x00037) Actual length = 220 (0x0000dc)
+  Function Length   : 56 (0x00038) Actual length = 224 (0x0000e0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+12.50%) : 1281.dasm - System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)

@@ -8,88 +8,86 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  9,  6.50)     ref  ->  [fp+0x18]  this class-hnd single-def <System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]>
+;  V00 this         [V00,T00] (  9,  6.50)     ref  ->  x19         this class-hnd single-def <System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]>
 ;  V01 loc0         [V01,T02] (  3,  2.50)     ref  ->   x1         class-hnd exact single-def <<unknown class>>
-;  V02 loc1         [V02,T03] (  3,  2.50)     int  ->   x3        
+;  V02 loc1         [V02,T03] (  3,  2.50)     int  ->   x2        
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04    ] (  2,  2   )  struct (32) [fp+0x20]  do-not-enreg[XS] addr-exposed "by-value struct argument" <BenchmarkDotNet.Reports.Measurement>
-;  V05 tmp2         [V05,T01] (  3,  3   )     ref  ->   x2         single-def "argument with side effect"
-;  V06 cse0         [V06,T04] (  3,  2.50)     int  ->   x2         "CSE - aggressive"
-;  V07 cse1         [V07,T05] (  2,  2   )     int  ->   x4         "CSE - aggressive"
+;  V04 tmp1         [V04    ] (  2,  2   )  struct (32) [fp+0x18]  do-not-enreg[XS] addr-exposed "by-value struct argument" <BenchmarkDotNet.Reports.Measurement>
+;  V05 tmp2         [V05,T01] (  3,  3   )     ref  ->   x3         single-def "argument with side effect"
+;  V06 cse0         [V06,T04] (  3,  2.50)     int  ->   x0         "CSE - aggressive"
+;  V07 cse1         [V07,T05] (  2,  2   )     int  ->   x3         "CSE - aggressive"
 ;
-; Lcl frame size = 48
+; Lcl frame size = 40
 
 G_M7274_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
+            str     x19, [sp, #0x38]
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M7274_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x0]
-            ldr     x1, [x0, #0x18]
+            mov     x19, x0
+            ; gcrRegs +[x19]
+                       ;; size=16 bbWeight=1 PerfScore 3.00
+G_M7274_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            ldr     x1, [x19, #0x18]
             ; gcrRegs +[x1]
-            ldr     w2, [x0, #0x14]
-            sub     w3, w2, #1
-            ldr     w4, [x1, #0x08]
-            cmp     w4, w3
+            ldr     w0, [x19, #0x14]
+            sub     w2, w0, #1
+            ldr     w3, [x1, #0x08]
+            cmp     w3, w2
             bls     G_M7274_IG05
                        ;; size=24 bbWeight=1 PerfScore 11.00
-G_M7274_IG03:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref
-            add     w2, w2, #1
-            str     w2, [x0, #0x14]
-            str     x0, [fp, #0x18]    // [V00 this]
-            ; GC ptr vars +{V00}
-            ldr     x2, [x0, #0x20]
-            ; gcrRegs +[x2]
-            ubfiz   x3, x3, #5, #32
-            add     x3, x3, #16
-            add     x1, x1, x3
+G_M7274_IG03:        ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
+            add     w0, w0, #1
+            str     w0, [x19, #0x14]
+            ldr     x3, [x19, #0x20]
+            ; gcrRegs +[x3]
+            ubfiz   x0, x2, #5, #32
+            add     x0, x0, #16
+            add     x1, x1, x0
             ; gcrRegs -[x1]
             ; byrRegs +[x1]
-            ldp     q16, q17, [x1]
-            stp     q16, q17, [fp, #0x20]
-            add     x1, fp, #32    // [V04 tmp1]
+            ldp     x0, x2, [x1]
+            stp     x0, x2, [fp, #0x18]
+            ldp     x0, x2, [x1, #0x10]
+            stp     x0, x2, [fp, #0x28]
+            add     x1, fp, #24    // [V04 tmp1]
             ; byrRegs -[x1]
-            ldr     x0, [x2, #0x08]
-            ldr     x2, [x2, #0x18]
-            ; gcrRegs -[x2]
-            blr     x2
-            ; gcrRegs -[x0]
-            ldr     x0, [fp, #0x18]    // [V00 this]
+            ldr     x0, [x3, #0x08]
             ; gcrRegs +[x0]
-            str     d0, [x0, #0x08]
+            ldr     x2, [x3, #0x18]
+            blr     x2
+            ; gcrRegs -[x0 x3]
+            str     d0, [x19, #0x08]
             mov     w0, #1
-            ; gcrRegs -[x0]
-                       ;; size=64 bbWeight=0.50 PerfScore 11.25
+                       ;; size=64 bbWeight=0.50 PerfScore 12.75
 G_M7274_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+            ldr     x19, [sp, #0x38]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M7274_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x0]
-            ; GC ptr vars -{V00}
-            str     xzr, [x0, #0x08]
-            movn    w1, #0
-            str     w1, [x0, #0x14]
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+G_M7274_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+            str     xzr, [x19, #0x08]
+            movn    w0, #0
+            str     w0, [x19, #0x14]
             mov     w0, wzr
-            ; gcrRegs -[x0]
                        ;; size=16 bbWeight=0.50 PerfScore 1.50
 G_M7274_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+            ldr     x19, [sp, #0x38]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 128, prolog size 8, PerfScore 27.25, instruction count 32, allocated bytes for code 128 (MethodHash=937fe395) for method System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 144, prolog size 12, PerfScore 32.25, instruction count 36, allocated bytes for code 144 (MethodHash=937fe395) for method System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 1
+  Code Words        : 2
   Epilog Count      : 2
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 32 (0x00020) Actual length = 128 (0x000080)
+  Function Length   : 36 (0x00024) Actual length = 144 (0x000090)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -100,7 +98,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
+    D0 07       save_reg X#0 Z#7 (0x07); str x19, [sp, #56]
     87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
     E4          end
     E4          end
+    E4          end
+    E4          end
 

benchmarks.run_pgo.linux.arm64.checked.mch

-44 (-26.83%) : 94049.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Instrumented Tier0)

@@ -5,69 +5,52 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
-;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x60]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x58]  do-not-enreg[]
-;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x54]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x48]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
+;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x40]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
+;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x38]  do-not-enreg[]
+;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x34]  do-not-enreg[]
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x38]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-;  V08 tmp2         [V08    ] (  1,  1   )     ref  ->  [fp+0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp3         [V09    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp4         [V10    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V11 tmp5         [V11    ] (  1,  1   )     ref  ->  [fp+0x18]  do-not-enreg[] must-init "argument with side effect"
+;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;
-; Lcl frame size = 112
+; Lcl frame size = 80
 
 G_M19554_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x80]!
+            stp     fp, lr, [sp, #-0x60]!
             mov     fp, sp
-            add     x9, fp, #24
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     xzr, xzr, [x9, #0x20]
-            str     xzr, [x9, #0x30]
-            str     x0, [fp, #0x78]    // [V00 this]
-            str     x1, [fp, #0x70]    // [V01 arg1]
-            str     x2, [fp, #0x68]    // [V02 arg2]
-            str     x3, [fp, #0x60]    // [V03 arg3]
-            str     x4, [fp, #0x58]    // [V04 arg4]
-            str     w5, [fp, #0x54]    // [V05 arg5]
-                       ;; size=52 bbWeight=1 PerfScore 11.50
+            str     xzr, [fp, #0x18]   // [V07 tmp1]
+            str     xzr, [fp, #0x20]   // [V07 tmp1+0x08]
+            str     x0, [fp, #0x58]    // [V00 this]
+            str     x1, [fp, #0x50]    // [V01 arg1]
+            str     x2, [fp, #0x48]    // [V02 arg2]
+            str     x3, [fp, #0x40]    // [V03 arg3]
+            str     x4, [fp, #0x38]    // [V04 arg4]
+            str     w5, [fp, #0x34]    // [V05 arg5]
+                       ;; size=40 bbWeight=1 PerfScore 9.50
 G_M19554_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x78]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x30]    // [V08 tmp2]
-            ldr     x0, [fp, #0x70]    // [V01 arg1]
-            str     x0, [fp, #0x28]    // [V09 tmp3]
-            ldr     x0, [fp, #0x68]    // [V02 arg2]
-            str     x0, [fp, #0x20]    // [V10 tmp4]
-            ldr     x0, [fp, #0x60]    // [V03 arg3]
-            str     x0, [fp, #0x18]    // [V11 tmp5]
-            ldr     x0, [fp, #0x58]    // [V04 arg4]
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-                       ;; size=36 bbWeight=1 PerfScore 14.00
+            ldr     x5, [fp, #0x38]    // [V04 arg4]
+            ; byrRegs +[x5]
+                       ;; size=4 bbWeight=1 PerfScore 2.00
 G_M19554_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x1, x2, [x0]
-            stp     x1, x2, [fp, #0x38]
-            ldr     x1, [x0, #0x10]
-            str     x1, [fp, #0x48]
+            ldp     x1, x6, [x5]
+            stp     x1, x6, [fp, #0x18]
+            ldr     x1, [x5, #0x10]
+            str     x1, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M19554_IG04:        ; bbWeight=1, extend
-            ldr     x0, [fp, #0x30]    // [V08 tmp2]
-            ; gcrRegs +[x0]
-            ; byrRegs -[x0]
-            ldr     x1, [fp, #0x28]    // [V09 tmp3]
-            ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x20]    // [V10 tmp4]
-            ; gcrRegs +[x2]
-            ldr     x4, [fp, #0x18]    // [V11 tmp5]
-            ; gcrRegs +[x4]
-            add     x5, fp, #56    // [V07 tmp1]
-            ldr     w6, [fp, #0x54]    // [V05 arg5]
+            add     x5, fp, #24    // [V07 tmp1]
+            ; byrRegs -[x5]
+            ldr     w6, [fp, #0x34]    // [V05 arg5]
             uxtb    w6, w6
+            ldr     x1, [fp, #0x50]    // [V01 arg1]
+            ; gcrRegs +[x1]
+            ldr     x2, [fp, #0x48]    // [V02 arg2]
+            ; gcrRegs +[x2]
+            ldr     x4, [fp, #0x40]    // [V03 arg3]
+            ; gcrRegs +[x4]
+            ldr     x0, [fp, #0x58]    // [V00 this]
+            ; gcrRegs +[x0]
             mov     x3, xzr
             movz    x7, #0xD1FFAB1E      // code for <unknown method>
             movk    x7, #0xD1FFAB1E LSL #16
@@ -77,11 +60,11 @@ G_M19554_IG04:        ; bbWeight=1, extend
             ; gcrRegs -[x0-x2 x4]
                        ;; size=52 bbWeight=1 PerfScore 17.00
 G_M19554_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x80
+            ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 164, prolog size 28, PerfScore 53.50, instruction count 41, allocated bytes for code 164 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Instrumented Tier0)
+; Total bytes of code 120, prolog size 16, PerfScore 39.50, instruction count 30, allocated bytes for code 120 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Instrumented Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -92,7 +75,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
+  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -100,7 +83,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    8F          save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
+    8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
     E4          end
     E4          end
 

-44 (-26.83%) : 93540.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)

@@ -5,69 +5,52 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
-;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x60]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x58]  do-not-enreg[]
-;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x54]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x48]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
+;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x40]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
+;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x38]  do-not-enreg[]
+;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x34]  do-not-enreg[]
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x38]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-;  V08 tmp2         [V08    ] (  1,  1   )     ref  ->  [fp+0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp3         [V09    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp4         [V10    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V11 tmp5         [V11    ] (  1,  1   )     ref  ->  [fp+0x18]  do-not-enreg[] must-init "argument with side effect"
+;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;
-; Lcl frame size = 112
+; Lcl frame size = 80
 
 G_M19554_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x80]!
+            stp     fp, lr, [sp, #-0x60]!
             mov     fp, sp
-            add     x9, fp, #24
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     xzr, xzr, [x9, #0x20]
-            str     xzr, [x9, #0x30]
-            str     x0, [fp, #0x78]    // [V00 this]
-            str     x1, [fp, #0x70]    // [V01 arg1]
-            str     x2, [fp, #0x68]    // [V02 arg2]
-            str     x3, [fp, #0x60]    // [V03 arg3]
-            str     x4, [fp, #0x58]    // [V04 arg4]
-            str     w5, [fp, #0x54]    // [V05 arg5]
-                       ;; size=52 bbWeight=1 PerfScore 11.50
+            str     xzr, [fp, #0x18]   // [V07 tmp1]
+            str     xzr, [fp, #0x20]   // [V07 tmp1+0x08]
+            str     x0, [fp, #0x58]    // [V00 this]
+            str     x1, [fp, #0x50]    // [V01 arg1]
+            str     x2, [fp, #0x48]    // [V02 arg2]
+            str     x3, [fp, #0x40]    // [V03 arg3]
+            str     x4, [fp, #0x38]    // [V04 arg4]
+            str     w5, [fp, #0x34]    // [V05 arg5]
+                       ;; size=40 bbWeight=1 PerfScore 9.50
 G_M19554_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x78]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x30]    // [V08 tmp2]
-            ldr     x0, [fp, #0x70]    // [V01 arg1]
-            str     x0, [fp, #0x28]    // [V09 tmp3]
-            ldr     x0, [fp, #0x68]    // [V02 arg2]
-            str     x0, [fp, #0x20]    // [V10 tmp4]
-            ldr     x0, [fp, #0x60]    // [V03 arg3]
-            str     x0, [fp, #0x18]    // [V11 tmp5]
-            ldr     x0, [fp, #0x58]    // [V04 arg4]
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-                       ;; size=36 bbWeight=1 PerfScore 14.00
+            ldr     x5, [fp, #0x38]    // [V04 arg4]
+            ; byrRegs +[x5]
+                       ;; size=4 bbWeight=1 PerfScore 2.00
 G_M19554_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x1, x2, [x0]
-            stp     x1, x2, [fp, #0x38]
-            ldr     x1, [x0, #0x10]
-            str     x1, [fp, #0x48]
+            ldp     x1, x6, [x5]
+            stp     x1, x6, [fp, #0x18]
+            ldr     x1, [x5, #0x10]
+            str     x1, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M19554_IG04:        ; bbWeight=1, extend
-            ldr     x0, [fp, #0x30]    // [V08 tmp2]
-            ; gcrRegs +[x0]
-            ; byrRegs -[x0]
-            ldr     x1, [fp, #0x28]    // [V09 tmp3]
-            ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x20]    // [V10 tmp4]
-            ; gcrRegs +[x2]
-            ldr     x4, [fp, #0x18]    // [V11 tmp5]
-            ; gcrRegs +[x4]
-            add     x5, fp, #56    // [V07 tmp1]
-            ldr     w6, [fp, #0x54]    // [V05 arg5]
+            add     x5, fp, #24    // [V07 tmp1]
+            ; byrRegs -[x5]
+            ldr     w6, [fp, #0x34]    // [V05 arg5]
             uxtb    w6, w6
+            ldr     x1, [fp, #0x50]    // [V01 arg1]
+            ; gcrRegs +[x1]
+            ldr     x2, [fp, #0x48]    // [V02 arg2]
+            ; gcrRegs +[x2]
+            ldr     x4, [fp, #0x40]    // [V03 arg3]
+            ; gcrRegs +[x4]
+            ldr     x0, [fp, #0x58]    // [V00 this]
+            ; gcrRegs +[x0]
             mov     x3, xzr
             movz    x7, #0xD1FFAB1E      // code for <unknown method>
             movk    x7, #0xD1FFAB1E LSL #16
@@ -77,11 +60,11 @@ G_M19554_IG04:        ; bbWeight=1, extend
             ; gcrRegs -[x0-x2 x4]
                        ;; size=52 bbWeight=1 PerfScore 17.00
 G_M19554_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x80
+            ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 164, prolog size 28, PerfScore 53.50, instruction count 41, allocated bytes for code 164 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
+; Total bytes of code 120, prolog size 16, PerfScore 39.50, instruction count 30, allocated bytes for code 120 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -92,7 +75,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
+  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -100,7 +83,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    8F          save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
+    8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
     E4          end
     E4          end
 

-48 (-22.22%) : 93474.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)

@@ -5,80 +5,59 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x88]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x80]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbol>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
-;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax>
-;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x68]  do-not-enreg[]
-;  V05 arg5         [V05    ] (  1,  1   )     ref  ->  [fp+0x60]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax>
-;  V06 arg6         [V06    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
-;  V07 arg7         [V07    ] (  1,  1   )   ubyte  ->  [fp+0x54]  do-not-enreg[]
-;  V08 arg8         [V08    ] (  1,  1   )   ubyte  ->  [fp+0x90]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x60]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbol>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
+;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax>
+;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x48]  do-not-enreg[]
+;  V05 arg5         [V05    ] (  1,  1   )     ref  ->  [fp+0x40]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax>
+;  V06 arg6         [V06    ] (  1,  1   )     ref  ->  [fp+0x38]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
+;  V07 arg7         [V07    ] (  1,  1   )   ubyte  ->  [fp+0x34]  do-not-enreg[]
+;  V08 arg8         [V08    ] (  1,  1   )   ubyte  ->  [fp+0x70]  do-not-enreg[]
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10    ] (  1,  1   )  struct (24) [fp+0x38]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.SyntaxToken>
-;  V11 tmp2         [V11    ] (  1,  1   )     ref  ->  [fp+0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V12 tmp3         [V12    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V13 tmp4         [V13    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V14 tmp5         [V14    ] (  1,  1   )     int  ->  [fp+0x1C]  do-not-enreg[] "argument with side effect"
-;  V15 tmp6         [V15    ] (  1,  1   )     ref  ->  [fp+0x10]  do-not-enreg[] must-init "argument with side effect"
+;  V10 tmp1         [V10    ] (  1,  1   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.SyntaxToken>
 ;
-; Lcl frame size = 128
+; Lcl frame size = 96
 
 G_M62552_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x90]!
+            stp     fp, lr, [sp, #-0x70]!
             mov     fp, sp
-            add     x9, fp, #16
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     q16, q16, [x9, #0x20]
-            str     x0, [fp, #0x88]    // [V00 this]
-            str     x1, [fp, #0x80]    // [V01 arg1]
-            str     x2, [fp, #0x78]    // [V02 arg2]
-            str     x3, [fp, #0x70]    // [V03 arg3]
-            str     x4, [fp, #0x68]    // [V04 arg4]
-            str     x5, [fp, #0x60]    // [V05 arg5]
-            str     x6, [fp, #0x58]    // [V06 arg6]
-            str     w7, [fp, #0x54]    // [V07 arg7]
-                       ;; size=56 bbWeight=1 PerfScore 12.50
+            str     xzr, [fp, #0x18]   // [V10 tmp1]
+            str     xzr, [fp, #0x20]   // [V10 tmp1+0x08]
+            str     x0, [fp, #0x68]    // [V00 this]
+            str     x1, [fp, #0x60]    // [V01 arg1]
+            str     x2, [fp, #0x58]    // [V02 arg2]
+            str     x3, [fp, #0x50]    // [V03 arg3]
+            str     x4, [fp, #0x48]    // [V04 arg4]
+            str     x5, [fp, #0x40]    // [V05 arg5]
+            str     x6, [fp, #0x38]    // [V06 arg6]
+            str     w7, [fp, #0x34]    // [V07 arg7]
+                       ;; size=48 bbWeight=1 PerfScore 11.50
 G_M62552_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x88]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x30]    // [V11 tmp2]
-            ldr     x0, [fp, #0x80]    // [V01 arg1]
-            str     x0, [fp, #0x28]    // [V12 tmp3]
-            ldr     x0, [fp, #0x78]    // [V02 arg2]
-            str     x0, [fp, #0x20]    // [V13 tmp4]
-            ldr     w0, [fp, #0x90]    // [V08 arg8]
-            ; gcrRegs -[x0]
-            uxtb    w0, w0
-            str     w0, [fp, #0x1C]    // [V14 tmp5]
-            ldr     x0, [fp, #0x70]    // [V03 arg3]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x10]    // [V15 tmp6]
-            ldr     x0, [fp, #0x68]    // [V04 arg4]
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-                       ;; size=48 bbWeight=1 PerfScore 17.50
+            ldr     x6, [fp, #0x48]    // [V04 arg4]
+            ; byrRegs +[x6]
+                       ;; size=4 bbWeight=1 PerfScore 2.00
 G_M62552_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x1, x2, [x0]
-            stp     x1, x2, [fp, #0x38]
-            ldr     x1, [x0, #0x10]
-            str     x1, [fp, #0x48]
+            ldp     x4, x7, [x6]
+            stp     x4, x7, [fp, #0x18]
+            ldr     x4, [x6, #0x10]
+            str     x4, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M62552_IG04:        ; bbWeight=1, extend
-            ldr     x0, [fp, #0x30]    // [V11 tmp2]
-            ; gcrRegs +[x0]
-            ; byrRegs -[x0]
-            ldr     x1, [fp, #0x28]    // [V12 tmp3]
-            ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x20]    // [V13 tmp4]
-            ; gcrRegs +[x2]
-            ldr     w4, [fp, #0x1C]    // [V14 tmp5]
-            ldr     x5, [fp, #0x10]    // [V15 tmp6]
-            ; gcrRegs +[x5]
-            add     x6, fp, #56    // [V10 tmp1]
-            ldr     w7, [fp, #0x54]    // [V07 arg7]
+            add     x6, fp, #24    // [V10 tmp1]
+            ; byrRegs -[x6]
+            ldr     w7, [fp, #0x34]    // [V07 arg7]
             uxtb    w7, w7
+            ldr     w4, [fp, #0x70]    // [V08 arg8]
+            uxtb    w4, w4
+            ldr     x1, [fp, #0x60]    // [V01 arg1]
+            ; gcrRegs +[x1]
+            ldr     x2, [fp, #0x58]    // [V02 arg2]
+            ; gcrRegs +[x2]
+            ldr     x5, [fp, #0x50]    // [V03 arg3]
+            ; gcrRegs +[x5]
+            ldr     x0, [fp, #0x68]    // [V00 this]
+            ; gcrRegs +[x0]
             mov     w3, #1
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
             movk    x8, #0xD1FFAB1E LSL #16
@@ -86,33 +65,33 @@ G_M62552_IG04:        ; bbWeight=1, extend
             ldr     x8, [x8]
             blr     x8
             ; gcrRegs -[x0-x2 x5]
-            ldr     x14, [fp, #0x88]   // [V00 this]
+            ldr     x14, [fp, #0x68]   // [V00 this]
             ; gcrRegs +[x14]
             add     x14, x14, #80
             ; gcrRegs -[x14]
             ; byrRegs +[x14]
-            ldr     x15, [fp, #0x60]   // [V05 arg5]
+            ldr     x15, [fp, #0x40]   // [V05 arg5]
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x14]
-            ldr     x14, [fp, #0x88]   // [V00 this]
+            ldr     x14, [fp, #0x68]   // [V00 this]
             ; gcrRegs +[x14]
             add     x14, x14, #88
             ; gcrRegs -[x14]
             ; byrRegs +[x14]
-            ldr     x15, [fp, #0x58]   // [V06 arg6]
+            ldr     x15, [fp, #0x38]   // [V06 arg6]
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x14]
-                       ;; size=88 bbWeight=1 PerfScore 30.00
+                       ;; size=92 bbWeight=1 PerfScore 30.50
 G_M62552_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x90
+            ldp     fp, lr, [sp], #0x70
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 216, prolog size 24, PerfScore 71.00, instruction count 54, allocated bytes for code 216 (MethodHash=9edc0ba7) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)
+; Total bytes of code 168, prolog size 16, PerfScore 55.00, instruction count 42, allocated bytes for code 168 (MethodHash=9edc0ba7) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -123,7 +102,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 54 (0x00036) Actual length = 216 (0x0000d8)
+  Function Length   : 42 (0x0002a) Actual length = 168 (0x0000a8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -131,7 +110,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    91          save_fplr_x #17 (0x11); stp fp, lr, [sp, #-144]!
+    8D          save_fplr_x #13 (0x0D); stp fp, lr, [sp, #-112]!
     E4          end
     E4          end
 

+4 (+1.00%) : 23894.dasm - System.Text.RegularExpressions.RegexCache:GetOrAdd(System.String):System.Text.RegularExpressions.Regex (Instrumented Tier0)

@@ -14,25 +14,23 @@
 ;  V06 tmp2         [V06    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] must-init "handle histogram profile tmp"
 ;  V07 tmp3         [V07    ] (  1,  1   )     ref  ->  [fp+0x60]  do-not-enreg[] must-init "argument with side effect"
 ;  V08 tmp4         [V08    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp5         [V09    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp6         [V10    ] (  1,  1   )  struct (32) [fp+0x30]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Text.RegularExpressions.RegexCache+Key>
-;  V11 tmp7         [V11    ] (  1,  1   )  struct (32) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Text.RegularExpressions.RegexCache+Key>
+;  V09 tmp5         [V09    ] (  1,  1   )  struct (32) [fp+0x38]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Text.RegularExpressions.RegexCache+Key>
+;  V10 tmp6         [V10    ] (  1,  1   )  struct (32) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Text.RegularExpressions.RegexCache+Key>
 ;
 ; Lcl frame size = 160
 
 G_M38051_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0xB0]!
             mov     fp, sp
-            add     x9, fp, #16
+            add     x9, fp, #24
             movi    v16.16b, #0
             stp     q16, q16, [x9]
             stp     q16, q16, [x9, #0x20]
             stp     q16, q16, [x9, #0x40]
             stp     q16, q16, [x9, #0x60]
             stp     xzr, xzr, [x9, #0x80]
-            str     xzr, [x9, #0x90]
             str     x0, [fp, #0xA8]    // [V00 arg0]
-                       ;; size=44 bbWeight=1 PerfScore 9.50
+                       ;; size=40 bbWeight=1 PerfScore 8.50
 G_M38051_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ldr     x0, [fp, #0xA8]    // [V00 arg0]
             ; gcrRegs +[x0]
@@ -49,8 +47,6 @@ G_M38051_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             blr     x0
             ; gcrRegs +[x0]
             str     x0, [fp, #0xA0]    // [V01 loc0]
-            ldr     x0, [fp, #0xA8]    // [V00 arg0]
-            str     x0, [fp, #0x50]    // [V09 tmp5]
             ldr     x0, [fp, #0xA0]    // [V01 loc0]
             str     x0, [fp, #0x68]    // [V06 tmp2]
             ldr     x0, [fp, #0x68]    // [V06 tmp2]
@@ -73,14 +69,14 @@ G_M38051_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             str     x0, [fp, #0x58]    // [V08 tmp4]
             ldr     x2, [fp, #0x58]    // [V08 tmp4]
             ; gcrRegs +[x2]
-            ldr     x1, [fp, #0x50]    // [V09 tmp5]
-            ; gcrRegs +[x1]
             movz    x4, #0xD1FFAB1E      // data for <unknown class>:<unknown field>
             movk    x4, #0xD1FFAB1E LSL #16
             movk    x4, #0xD1FFAB1E LSL #32
             ldr     x4, [x4]
             add     x0, fp, #128   // [V02 loc1]
             ; gcrRegs -[x0]
+            ldr     x1, [fp, #0xA8]    // [V00 arg0]
+            ; gcrRegs +[x1]
             mov     w3, wzr
             movz    x5, #0xD1FFAB1E      // code for <unknown method>
             movk    x5, #0xD1FFAB1E LSL #16
@@ -88,13 +84,15 @@ G_M38051_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ldr     x5, [x5]
             blr     x5
             ; gcrRegs -[x1-x2]
-                       ;; size=172 bbWeight=1 PerfScore 57.50
+                       ;; size=164 bbWeight=1 PerfScore 54.50
 G_M38051_IG03:        ; bbWeight=1, nogc, extend
-            ldp     q16, q17, [fp, #0x80]
-            stp     q16, q17, [fp, #0x30]
-                       ;; size=8 bbWeight=1 PerfScore 3.00
+            ldp     x0, x1, [fp, #0x80]
+            stp     x0, x1, [fp, #0x38]
+            ldp     x0, x1, [fp, #0x90]
+            stp     x0, x1, [fp, #0x48]
+                       ;; size=16 bbWeight=1 PerfScore 8.00
 G_M38051_IG04:        ; bbWeight=1, isz, extend
-            add     x0, fp, #48    // [V10 tmp6]
+            add     x0, fp, #56    // [V09 tmp5]
             movz    x1, #0xD1FFAB1E      // code for <unknown method>
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
@@ -131,12 +129,14 @@ G_M38051_IG04:        ; bbWeight=1, isz, extend
             str     x0, [fp, #0x78]    // [V03 loc2]
                        ;; size=112 bbWeight=1 PerfScore 30.50
 G_M38051_IG05:        ; bbWeight=1, nogc, extend
-            ldp     q16, q17, [fp, #0x80]
-            stp     q16, q17, [fp, #0x10]
-                       ;; size=8 bbWeight=1 PerfScore 3.00
-G_M38051_IG06:        ; bbWeight=1, extend
-            add     x0, fp, #16    // [V11 tmp7]
+            ldp     x0, x1, [fp, #0x80]
             ; gcrRegs -[x0]
+            stp     x0, x1, [fp, #0x18]
+            ldp     x0, x1, [fp, #0x90]
+            stp     x0, x1, [fp, #0x28]
+                       ;; size=16 bbWeight=1 PerfScore 8.00
+G_M38051_IG06:        ; bbWeight=1, extend
+            add     x0, fp, #24    // [V10 tmp6]
             ldr     x1, [fp, #0x78]    // [V03 loc2]
             ; gcrRegs +[x1]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
@@ -159,7 +159,7 @@ G_M38051_IG08:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 400, prolog size 40, PerfScore 118.00, instruction count 100, allocated bytes for code 400 (MethodHash=a2596b5c) for method System.Text.RegularExpressions.RegexCache:GetOrAdd(System.String):System.Text.RegularExpressions.Regex (Instrumented Tier0)
+; Total bytes of code 404, prolog size 36, PerfScore 124.00, instruction count 101, allocated bytes for code 404 (MethodHash=a2596b5c) for method System.Text.RegularExpressions.RegexCache:GetOrAdd(System.String):System.Text.RegularExpressions.Regex (Instrumented Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -170,7 +170,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 100 (0x00064) Actual length = 400 (0x000190)
+  Function Length   : 101 (0x00065) Actual length = 404 (0x000194)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+5.88%) : 94487.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)

@@ -9,44 +9,44 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] (  3,  3   )   byref  ->   x0         this single-def
-;  V01 arg1         [V01,T00] (  5,  5   )     ref  ->   x1         class-hnd single-def <System.Threading.ReaderWriterLockSlim>
+;  V01 arg1         [V01,T00] (  5,  5   )     ref  ->   x2         class-hnd single-def <System.Threading.ReaderWriterLockSlim>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;* V04 tmp2         [V04,T04] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V05 tmp3         [V05,T05] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04,T03] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
+;* V05 tmp3         [V05,T04] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V06 tmp4         [V06    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;* V07 tmp5         [V07,T06] (  0,  0   )     int  ->  zero-ref    "field V03._total (fldOffset=0x0)" P-INDEP
-;* V08 tmp6         [V08,T07] (  0,  0   )     int  ->  zero-ref    "field V03._start (fldOffset=0x4)" P-INDEP
+;* V07 tmp5         [V07,T05] (  0,  0   )     int  ->  zero-ref    "field V03._total (fldOffset=0x0)" P-INDEP
+;* V08 tmp6         [V08,T06] (  0,  0   )     int  ->  zero-ref    "field V03._start (fldOffset=0x4)" P-INDEP
 ;* V09 tmp7         [V09    ] (  0,  0   )     int  ->  zero-ref    "field V06._total (fldOffset=0x0)" P-INDEP
 ;* V10 tmp8         [V10    ] (  0,  0   )     int  ->  zero-ref    "field V06._start (fldOffset=0x4)" P-INDEP
 ;* V11 tmp9         [V11    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;  V12 tmp10        [V12,T01] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;  V13 tmp11        [V13,T03] (  2,  4   )     ref  ->   x0         single-def "argument with side effect"
 ;
 ; Lcl frame size = 16
 
 G_M44302_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M44302_IG02:        ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0001 {x0}, byref
-            ; gcrRegs +[x1]
+            mov     x2, x1
+            ; gcrRegs +[x2]
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M44302_IG02:        ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref
             ; byrRegs +[x0]
             mov     x14, x0
             ; byrRegs +[x14]
-            mov     x15, x1
+            mov     x15, x2
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_CHECKED_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x0 x14]
-            ldrsb   wzr, [x1]
-            mov     x0, x1
-            ; gcrRegs +[x0]
+            ldrsb   wzr, [x2]
             movn    w1, #0
-            ; gcrRegs -[x1]
             stp     w1, wzr, [fp, #0x18]   // [V12 tmp10], [V12 tmp10+0x04]
             ldr     x1, [fp, #0x18]    // [V12 tmp10]
+            mov     x0, x2
+            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            ; gcrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
@@ -58,7 +58,7 @@ G_M44302_IG03:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 68, prolog size 8, PerfScore 18.00, instruction count 17, allocated bytes for code 68 (MethodHash=a56c52f1) for method Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
+; Total bytes of code 72, prolog size 8, PerfScore 18.50, instruction count 18, allocated bytes for code 72 (MethodHash=a56c52f1) for method Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -69,7 +69,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 17 (0x00011) Actual length = 68 (0x000044)
+  Function Length   : 18 (0x00012) Actual length = 72 (0x000048)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+6.67%) : 85393.dasm - Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (Tier1)

@@ -8,29 +8,30 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Microsoft.Cci.MetadataWriter>
-;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.Cci.ITypeDefinition>
+;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.Cci.ITypeDefinition>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03    ] (  2,  4   )  struct (48) [fp+0x10]  do-not-enreg[XS] addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.Emit.EmitContext>
-;  V04 tmp2         [V04,T02] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
 ;
 ; Lcl frame size = 48
 
 G_M23091_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M23091_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, nogc
-            ; gcrRegs +[x0-x1]
+            mov     x2, x1
+            ; gcrRegs +[x2]
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M23091_IG02:        ; bbWeight=1, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref, nogc
+            ; gcrRegs +[x0]
             ldp     q16, q17, [x0, #0xD0]
             stp     q16, q17, [fp, #0x10]
             ldr     q16, [x0, #0xF0]
             str     q16, [fp, #0x30]
                        ;; size=16 bbWeight=1 PerfScore 8.00
 G_M23091_IG03:        ; bbWeight=1, extend
-            mov     x0, x1
             add     x1, fp, #16    // [V03 tmp1]
-            ; gcrRegs -[x1]
+            mov     x0, x2
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            ; gcrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
@@ -42,7 +43,7 @@ G_M23091_IG04:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 60, prolog size 8, PerfScore 18.00, instruction count 15, allocated bytes for code 60 (MethodHash=af30a5cc) for method Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (Tier1)
+; Total bytes of code 64, prolog size 8, PerfScore 18.50, instruction count 16, allocated bytes for code 64 (MethodHash=af30a5cc) for method Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +54,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
+  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

benchmarks.run_tiered.linux.arm64.checked.mch

-44 (-26.83%) : 50617.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)

@@ -5,69 +5,52 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
-;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x60]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x58]  do-not-enreg[]
-;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x54]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x48]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
+;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x40]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
+;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x38]  do-not-enreg[]
+;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x34]  do-not-enreg[]
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x38]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-;  V08 tmp2         [V08    ] (  1,  1   )     ref  ->  [fp+0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp3         [V09    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp4         [V10    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V11 tmp5         [V11    ] (  1,  1   )     ref  ->  [fp+0x18]  do-not-enreg[] must-init "argument with side effect"
+;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;
-; Lcl frame size = 112
+; Lcl frame size = 80
 
 G_M19554_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x80]!
+            stp     fp, lr, [sp, #-0x60]!
             mov     fp, sp
-            add     x9, fp, #24
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     xzr, xzr, [x9, #0x20]
-            str     xzr, [x9, #0x30]
-            str     x0, [fp, #0x78]    // [V00 this]
-            str     x1, [fp, #0x70]    // [V01 arg1]
-            str     x2, [fp, #0x68]    // [V02 arg2]
-            str     x3, [fp, #0x60]    // [V03 arg3]
-            str     x4, [fp, #0x58]    // [V04 arg4]
-            str     w5, [fp, #0x54]    // [V05 arg5]
-                       ;; size=52 bbWeight=1 PerfScore 11.50
+            str     xzr, [fp, #0x18]   // [V07 tmp1]
+            str     xzr, [fp, #0x20]   // [V07 tmp1+0x08]
+            str     x0, [fp, #0x58]    // [V00 this]
+            str     x1, [fp, #0x50]    // [V01 arg1]
+            str     x2, [fp, #0x48]    // [V02 arg2]
+            str     x3, [fp, #0x40]    // [V03 arg3]
+            str     x4, [fp, #0x38]    // [V04 arg4]
+            str     w5, [fp, #0x34]    // [V05 arg5]
+                       ;; size=40 bbWeight=1 PerfScore 9.50
 G_M19554_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x78]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x30]    // [V08 tmp2]
-            ldr     x0, [fp, #0x70]    // [V01 arg1]
-            str     x0, [fp, #0x28]    // [V09 tmp3]
-            ldr     x0, [fp, #0x68]    // [V02 arg2]
-            str     x0, [fp, #0x20]    // [V10 tmp4]
-            ldr     x0, [fp, #0x60]    // [V03 arg3]
-            str     x0, [fp, #0x18]    // [V11 tmp5]
-            ldr     x0, [fp, #0x58]    // [V04 arg4]
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-                       ;; size=36 bbWeight=1 PerfScore 14.00
+            ldr     x5, [fp, #0x38]    // [V04 arg4]
+            ; byrRegs +[x5]
+                       ;; size=4 bbWeight=1 PerfScore 2.00
 G_M19554_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x1, x2, [x0]
-            stp     x1, x2, [fp, #0x38]
-            ldr     x1, [x0, #0x10]
-            str     x1, [fp, #0x48]
+            ldp     x1, x6, [x5]
+            stp     x1, x6, [fp, #0x18]
+            ldr     x1, [x5, #0x10]
+            str     x1, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M19554_IG04:        ; bbWeight=1, extend
-            ldr     x0, [fp, #0x30]    // [V08 tmp2]
-            ; gcrRegs +[x0]
-            ; byrRegs -[x0]
-            ldr     x1, [fp, #0x28]    // [V09 tmp3]
-            ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x20]    // [V10 tmp4]
-            ; gcrRegs +[x2]
-            ldr     x4, [fp, #0x18]    // [V11 tmp5]
-            ; gcrRegs +[x4]
-            add     x5, fp, #56    // [V07 tmp1]
-            ldr     w6, [fp, #0x54]    // [V05 arg5]
+            add     x5, fp, #24    // [V07 tmp1]
+            ; byrRegs -[x5]
+            ldr     w6, [fp, #0x34]    // [V05 arg5]
             uxtb    w6, w6
+            ldr     x1, [fp, #0x50]    // [V01 arg1]
+            ; gcrRegs +[x1]
+            ldr     x2, [fp, #0x48]    // [V02 arg2]
+            ; gcrRegs +[x2]
+            ldr     x4, [fp, #0x40]    // [V03 arg3]
+            ; gcrRegs +[x4]
+            ldr     x0, [fp, #0x58]    // [V00 this]
+            ; gcrRegs +[x0]
             mov     x3, xzr
             movz    x7, #0xD1FFAB1E      // code for <unknown method>
             movk    x7, #0xD1FFAB1E LSL #16
@@ -77,11 +60,11 @@ G_M19554_IG04:        ; bbWeight=1, extend
             ; gcrRegs -[x0-x2 x4]
                        ;; size=52 bbWeight=1 PerfScore 17.00
 G_M19554_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x80
+            ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 164, prolog size 28, PerfScore 53.50, instruction count 41, allocated bytes for code 164 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
+; Total bytes of code 120, prolog size 16, PerfScore 39.50, instruction count 30, allocated bytes for code 120 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -92,7 +75,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
+  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -100,7 +83,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    8F          save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
+    8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
     E4          end
     E4          end
 

-48 (-22.22%) : 50563.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)

@@ -5,80 +5,59 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x88]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x80]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbol>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
-;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax>
-;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x68]  do-not-enreg[]
-;  V05 arg5         [V05    ] (  1,  1   )     ref  ->  [fp+0x60]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax>
-;  V06 arg6         [V06    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
-;  V07 arg7         [V07    ] (  1,  1   )   ubyte  ->  [fp+0x54]  do-not-enreg[]
-;  V08 arg8         [V08    ] (  1,  1   )   ubyte  ->  [fp+0x90]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x60]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbol>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
+;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax>
+;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x48]  do-not-enreg[]
+;  V05 arg5         [V05    ] (  1,  1   )     ref  ->  [fp+0x40]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax>
+;  V06 arg6         [V06    ] (  1,  1   )     ref  ->  [fp+0x38]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
+;  V07 arg7         [V07    ] (  1,  1   )   ubyte  ->  [fp+0x34]  do-not-enreg[]
+;  V08 arg8         [V08    ] (  1,  1   )   ubyte  ->  [fp+0x70]  do-not-enreg[]
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10    ] (  1,  1   )  struct (24) [fp+0x38]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.SyntaxToken>
-;  V11 tmp2         [V11    ] (  1,  1   )     ref  ->  [fp+0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V12 tmp3         [V12    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V13 tmp4         [V13    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V14 tmp5         [V14    ] (  1,  1   )     int  ->  [fp+0x1C]  do-not-enreg[] "argument with side effect"
-;  V15 tmp6         [V15    ] (  1,  1   )     ref  ->  [fp+0x10]  do-not-enreg[] must-init "argument with side effect"
+;  V10 tmp1         [V10    ] (  1,  1   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.SyntaxToken>
 ;
-; Lcl frame size = 128
+; Lcl frame size = 96
 
 G_M62552_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x90]!
+            stp     fp, lr, [sp, #-0x70]!
             mov     fp, sp
-            add     x9, fp, #16
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     q16, q16, [x9, #0x20]
-            str     x0, [fp, #0x88]    // [V00 this]
-            str     x1, [fp, #0x80]    // [V01 arg1]
-            str     x2, [fp, #0x78]    // [V02 arg2]
-            str     x3, [fp, #0x70]    // [V03 arg3]
-            str     x4, [fp, #0x68]    // [V04 arg4]
-            str     x5, [fp, #0x60]    // [V05 arg5]
-            str     x6, [fp, #0x58]    // [V06 arg6]
-            str     w7, [fp, #0x54]    // [V07 arg7]
-                       ;; size=56 bbWeight=1 PerfScore 12.50
+            str     xzr, [fp, #0x18]   // [V10 tmp1]
+            str     xzr, [fp, #0x20]   // [V10 tmp1+0x08]
+            str     x0, [fp, #0x68]    // [V00 this]
+            str     x1, [fp, #0x60]    // [V01 arg1]
+            str     x2, [fp, #0x58]    // [V02 arg2]
+            str     x3, [fp, #0x50]    // [V03 arg3]
+            str     x4, [fp, #0x48]    // [V04 arg4]
+            str     x5, [fp, #0x40]    // [V05 arg5]
+            str     x6, [fp, #0x38]    // [V06 arg6]
+            str     w7, [fp, #0x34]    // [V07 arg7]
+                       ;; size=48 bbWeight=1 PerfScore 11.50
 G_M62552_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x88]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x30]    // [V11 tmp2]
-            ldr     x0, [fp, #0x80]    // [V01 arg1]
-            str     x0, [fp, #0x28]    // [V12 tmp3]
-            ldr     x0, [fp, #0x78]    // [V02 arg2]
-            str     x0, [fp, #0x20]    // [V13 tmp4]
-            ldr     w0, [fp, #0x90]    // [V08 arg8]
-            ; gcrRegs -[x0]
-            uxtb    w0, w0
-            str     w0, [fp, #0x1C]    // [V14 tmp5]
-            ldr     x0, [fp, #0x70]    // [V03 arg3]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x10]    // [V15 tmp6]
-            ldr     x0, [fp, #0x68]    // [V04 arg4]
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-                       ;; size=48 bbWeight=1 PerfScore 17.50
+            ldr     x6, [fp, #0x48]    // [V04 arg4]
+            ; byrRegs +[x6]
+                       ;; size=4 bbWeight=1 PerfScore 2.00
 G_M62552_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x1, x2, [x0]
-            stp     x1, x2, [fp, #0x38]
-            ldr     x1, [x0, #0x10]
-            str     x1, [fp, #0x48]
+            ldp     x4, x7, [x6]
+            stp     x4, x7, [fp, #0x18]
+            ldr     x4, [x6, #0x10]
+            str     x4, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M62552_IG04:        ; bbWeight=1, extend
-            ldr     x0, [fp, #0x30]    // [V11 tmp2]
-            ; gcrRegs +[x0]
-            ; byrRegs -[x0]
-            ldr     x1, [fp, #0x28]    // [V12 tmp3]
-            ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x20]    // [V13 tmp4]
-            ; gcrRegs +[x2]
-            ldr     w4, [fp, #0x1C]    // [V14 tmp5]
-            ldr     x5, [fp, #0x10]    // [V15 tmp6]
-            ; gcrRegs +[x5]
-            add     x6, fp, #56    // [V10 tmp1]
-            ldr     w7, [fp, #0x54]    // [V07 arg7]
+            add     x6, fp, #24    // [V10 tmp1]
+            ; byrRegs -[x6]
+            ldr     w7, [fp, #0x34]    // [V07 arg7]
             uxtb    w7, w7
+            ldr     w4, [fp, #0x70]    // [V08 arg8]
+            uxtb    w4, w4
+            ldr     x1, [fp, #0x60]    // [V01 arg1]
+            ; gcrRegs +[x1]
+            ldr     x2, [fp, #0x58]    // [V02 arg2]
+            ; gcrRegs +[x2]
+            ldr     x5, [fp, #0x50]    // [V03 arg3]
+            ; gcrRegs +[x5]
+            ldr     x0, [fp, #0x68]    // [V00 this]
+            ; gcrRegs +[x0]
             mov     w3, #1
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
             movk    x8, #0xD1FFAB1E LSL #16
@@ -86,33 +65,33 @@ G_M62552_IG04:        ; bbWeight=1, extend
             ldr     x8, [x8]
             blr     x8
             ; gcrRegs -[x0-x2 x5]
-            ldr     x14, [fp, #0x88]   // [V00 this]
+            ldr     x14, [fp, #0x68]   // [V00 this]
             ; gcrRegs +[x14]
             add     x14, x14, #80
             ; gcrRegs -[x14]
             ; byrRegs +[x14]
-            ldr     x15, [fp, #0x60]   // [V05 arg5]
+            ldr     x15, [fp, #0x40]   // [V05 arg5]
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x14]
-            ldr     x14, [fp, #0x88]   // [V00 this]
+            ldr     x14, [fp, #0x68]   // [V00 this]
             ; gcrRegs +[x14]
             add     x14, x14, #88
             ; gcrRegs -[x14]
             ; byrRegs +[x14]
-            ldr     x15, [fp, #0x58]   // [V06 arg6]
+            ldr     x15, [fp, #0x38]   // [V06 arg6]
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x14]
-                       ;; size=88 bbWeight=1 PerfScore 30.00
+                       ;; size=92 bbWeight=1 PerfScore 30.50
 G_M62552_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x90
+            ldp     fp, lr, [sp], #0x70
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 216, prolog size 24, PerfScore 71.00, instruction count 54, allocated bytes for code 216 (MethodHash=9edc0ba7) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)
+; Total bytes of code 168, prolog size 16, PerfScore 55.00, instruction count 42, allocated bytes for code 168 (MethodHash=9edc0ba7) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -123,7 +102,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 54 (0x00036) Actual length = 216 (0x0000d8)
+  Function Length   : 42 (0x0002a) Actual length = 168 (0x0000a8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -131,7 +110,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    91          save_fplr_x #17 (0x11); stp fp, lr, [sp, #-144]!
+    8D          save_fplr_x #13 (0x0D); stp fp, lr, [sp, #-112]!
     E4          end
     E4          end
 

-24 (-22.22%) : 2604.dasm - BenchmarkDotNet.Characteristics.Characteristic1[System.Nullable1[System.Guid]]:set_Item(BenchmarkDotNet.Characteristics.CharacteristicObject,System.Nullable`1[System.Guid]):this (Tier0)

@@ -5,44 +5,34 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x48]  do-not-enreg[] this class-hnd <BenchmarkDotNet.Characteristics.Characteristic`1[System.Nullable`1[System.Guid]]>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x40]  do-not-enreg[] class-hnd <BenchmarkDotNet.Characteristics.CharacteristicObject>
-;  V02 arg2         [V02    ] (  1,  1   )   byref  ->  [fp+0x38]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x38]  do-not-enreg[] this class-hnd <BenchmarkDotNet.Characteristics.Characteristic`1[System.Nullable`1[System.Guid]]>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x30]  do-not-enreg[] class-hnd <BenchmarkDotNet.Characteristics.CharacteristicObject>
+;  V02 arg2         [V02    ] (  1,  1   )   byref  ->  [fp+0x28]  do-not-enreg[]
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04    ] (  1,  1   )  struct (24) [fp+0x20]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Nullable`1[System.Guid]>
-;  V05 tmp2         [V05    ] (  1,  1   )     ref  ->  [fp+0x18]  do-not-enreg[] must-init "argument with side effect"
-;  V06 tmp3         [V06    ] (  1,  1   )     ref  ->  [fp+0x10]  do-not-enreg[] must-init "argument with side effect"
+;  V04 tmp1         [V04    ] (  1,  1   )  struct (24) [fp+0x10]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Nullable`1[System.Guid]>
 ;
-; Lcl frame size = 64
+; Lcl frame size = 48
 
 G_M37147_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x50]!
+            stp     fp, lr, [sp, #-0x40]!
             mov     fp, sp
-            str     xzr, [fp, #0x18]   // [V05 tmp2]
-            str     xzr, [fp, #0x10]   // [V06 tmp3]
-            str     x0, [fp, #0x48]    // [V00 this]
-            str     x1, [fp, #0x40]    // [V01 arg1]
-            str     x2, [fp, #0x38]    // [V02 arg2]
-                       ;; size=28 bbWeight=1 PerfScore 6.50
+            str     x0, [fp, #0x38]    // [V00 this]
+            str     x1, [fp, #0x30]    // [V01 arg1]
+            str     x2, [fp, #0x28]    // [V02 arg2]
+                       ;; size=20 bbWeight=1 PerfScore 4.50
 G_M37147_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x40]    // [V01 arg1]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x18]    // [V05 tmp2]
-            ldr     x0, [fp, #0x48]    // [V00 this]
-            str     x0, [fp, #0x10]    // [V06 tmp3]
-            ldr     x0, [fp, #0x38]    // [V02 arg2]
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-            ldp     x1, x2, [x0]
-            stp     x1, x2, [fp, #0x20]
-            ldr     w1, [x0, #0x10]
-            str     w1, [fp, #0x30]
-            ldr     x0, [fp, #0x18]    // [V05 tmp2]
-            ; gcrRegs +[x0]
-            ; byrRegs -[x0]
-            ldr     x1, [fp, #0x10]    // [V06 tmp3]
+            ldr     x2, [fp, #0x28]    // [V02 arg2]
+            ; byrRegs +[x2]
+            ldp     x0, x1, [x2]
+            stp     x0, x1, [fp, #0x10]
+            ldr     w0, [x2, #0x10]
+            str     w0, [fp, #0x20]
+            add     x2, fp, #16    // [V04 tmp1]
+            ; byrRegs -[x2]
+            ldr     x1, [fp, #0x38]    // [V00 this]
             ; gcrRegs +[x1]
-            add     x2, fp, #32    // [V04 tmp1]
+            ldr     x0, [fp, #0x30]    // [V01 arg1]
+            ; gcrRegs +[x0]
             movz    x3, #0xD1FFAB1E      // code for <unknown method>
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
@@ -50,13 +40,13 @@ G_M37147_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ldr     wzr, [x0]
             blr     x3
             ; gcrRegs -[x0-x1]
-                       ;; size=72 bbWeight=1 PerfScore 30.00
+                       ;; size=56 bbWeight=1 PerfScore 24.00
 G_M37147_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x50
+            ldp     fp, lr, [sp], #0x40
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 108, prolog size 16, PerfScore 38.50, instruction count 27, allocated bytes for code 108 (MethodHash=a7496ee4) for method BenchmarkDotNet.Characteristics.Characteristic`1[System.Nullable`1[System.Guid]]:set_Item(BenchmarkDotNet.Characteristics.CharacteristicObject,System.Nullable`1[System.Guid]):this (Tier0)
+; Total bytes of code 84, prolog size 8, PerfScore 30.50, instruction count 21, allocated bytes for code 84 (MethodHash=a7496ee4) for method BenchmarkDotNet.Characteristics.Characteristic`1[System.Nullable`1[System.Guid]]:set_Item(BenchmarkDotNet.Characteristics.CharacteristicObject,System.Nullable`1[System.Guid]):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -67,7 +57,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 27 (0x0001b) Actual length = 108 (0x00006c)
+  Function Length   : 21 (0x00015) Actual length = 84 (0x000054)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -75,7 +65,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    89          save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
+    87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
     E4          end
     E4          end
 

+8 (+1.57%) : 55884.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1[ulong]:FindStartPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],byref,int,byref,byref):ubyte:this (Tier1-OSR)

@@ -9,28 +9,28 @@
 ; 0 inlinees with PGO data; 9 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  8, 52   )     ref  ->  x19         this class-hnd single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]>
+;  V00 this         [V00,T04] (  8, 52   )     ref  ->  x19         this class-hnd single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ushort]>
-;  V02 arg2         [V02,T25] (  4,  3   )   byref  ->  [fp+0xA8]  EH-live single-def tier0-frame
+;  V02 arg2         [V02,T25] (  4,  3   )   byref  ->  [fp+0xB8]  EH-live single-def tier0-frame
 ;  V03 arg3         [V03,T19] (  3, 10   )     int  ->  x21         single-def
-;  V04 arg4         [V04,T09] (  6, 32   )   byref  ->  x20         single-def
+;  V04 arg4         [V04,T08] (  6, 32   )   byref  ->  x20         single-def
 ;  V05 arg5         [V05,T22] (  3,  4   )   byref  ->  x23         single-def
-;  V06 loc0         [V06,T11] (  7, 27   )     int  ->  [fp+0x8C]  do-not-enreg[Z] EH-live tier0-frame
-;  V07 loc1         [V07,T15] (  3, 20   )   ubyte  ->  x25        
+;  V06 loc0         [V06,T13] (  6, 23   )     int  ->  [fp+0x9C]  do-not-enreg[Z] EH-live tier0-frame
+;  V07 loc1         [V07,T14] (  3, 20   )   ubyte  ->  x25        
 ;* V08 loc2         [V08    ] (  0,  0   )     int  ->  zero-ref   
 ;  V09 loc3         [V09,T28] (  3,  2   )   ubyte  ->   x0        
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V11 tmp1         [V11,T12] (  4, 24   )     int  ->   x2         "Inline return value spill temp"
-;  V12 tmp2         [V12,T08] (  3, 36   )     int  ->   x0         "Inlining Arg"
+;  V11 tmp1         [V11,T10] (  4, 24   )     int  ->   x2         "Inline return value spill temp"
+;  V12 tmp2         [V12,T07] (  3, 36   )     int  ->   x0         "Inlining Arg"
 ;* V13 tmp3         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V14 tmp4         [V14,T24] (  3,  6   )     int  ->   x2         "Inline return value spill temp"
 ;  V15 tmp5         [V15,T18] (  3, 12   )     ref  ->   x1         class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.MintermClassifier>
-;  V16 tmp6         [V16,T23] (  3,  6   )     ref  ->  x26         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V16 tmp6         [V16,T23] (  3,  6   )     ref  ->  x27         class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V17 tmp7         [V17,T16] (  4, 16   )     int  ->   x2         "Inlining Arg"
 ;  V18 tmp8         [V18,T17] (  3, 14   )   ubyte  ->  x25         "Inline return value spill temp"
-;  V19 tmp9         [V19,T10] (  4, 28   )     int  ->   x4         "Inline stloc first use temp"
-;  V20 tmp10        [V20,T21] (  3, 10   )     int  ->   x1         "Inline stloc first use temp"
-;  V21 tmp11        [V21    ] (  3, 36   )     ref  ->  [fp+0x10]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]>
+;  V19 tmp9         [V19,T09] (  4, 28   )     int  ->   x4         "Inline stloc first use temp"
+;  V20 tmp10        [V20,T21] (  3, 10   )     int  ->   x5         "Inline stloc first use temp"
+;  V21 tmp11        [V21    ] (  3, 36   )     ref  ->  [fp+0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]>
 ;* V22 tmp12        [V22    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp13        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]>
 ;* V24 tmp14        [V24    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
@@ -40,38 +40,39 @@
 ;  V28 tmp18        [V28,T20] (  2,  9   )     int  ->  x22         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V29 tmp19        [V29    ] (  0,  0   )   byref  ->  zero-ref    "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V30 tmp20        [V30    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
-;  V31 tmp21        [V31,T06] (  3, 48   )     ref  ->   x0         "arr expr"
-;  V32 tmp22        [V32,T07] (  3, 48   )     int  ->   x1         "index expr"
-;  V33 tmp23        [V33,T13] (  3, 24   )     ref  ->   x1         "arr expr"
-;  V34 tmp24        [V34,T00] (  3, 96   )     ref  ->   x1         "arr expr"
-;  V35 tmp25        [V35,T01] (  3, 96   )     int  ->   x0         "index expr"
+;  V31 tmp21        [V31,T05] (  3, 48   )     ref  ->   x0         "arr expr"
+;  V32 tmp22        [V32,T06] (  3, 48   )     int  ->   x1         "index expr"
+;  V33 tmp23        [V33,T11] (  3, 24   )     ref  ->   x5         "arr expr"
+;  V34 tmp24        [V34,T00] (  3, 96   )     ref  ->   x5         "arr expr"
+;  V35 tmp25        [V35,T01] (  3, 96   )     int  ->   x1         "index expr"
 ;  V36 tmp26        [V36,T03] (  2, 64   )     ref  ->   x1         "argument with side effect"
-;  V37 tmp27        [V37,T04] (  2, 64   )     ref  ->   x1         "argument with side effect"
-;  V38 PSPSym       [V38,T29] (  1,  1   )    long  ->  [fp+0x18]  do-not-enreg[V] "PSPSym"
-;  V39 cse0         [V39,T14] (  3, 24   )     int  ->   x0         "CSE - aggressive"
-;  V40 cse1         [V40,T27] (  2,  4   )     int  ->   x0         "CSE - moderate"
+;  V37 PSPSym       [V37,T29] (  1,  1   )    long  ->  [fp+0x20]  do-not-enreg[V] "PSPSym"
+;  V38 cse0         [V38,T12] (  3, 24   )     int  ->   x1         "CSE - aggressive"
+;  V39 cse1         [V39,T15] (  3, 20   )     int  ->  x26         "CSE - aggressive"
+;  V40 cse2         [V40,T27] (  2,  4   )     int  ->   x0         "CSE - moderate"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 24
 
 G_M55933_IG01:        ; bbWeight=8, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x60]!
-            stp     x19, x20, [sp, #0x20]
-            stp     x21, x22, [sp, #0x30]
-            stp     x23, x24, [sp, #0x40]
-            stp     x25, x26, [sp, #0x50]
+            stp     fp, lr, [sp, #-0x70]!
+            stp     x19, x20, [sp, #0x28]
+            stp     x21, x22, [sp, #0x38]
+            stp     x23, x24, [sp, #0x48]
+            stp     x25, x26, [sp, #0x58]
+            str     x27, [sp, #0x68]
             mov     fp, sp
-            str     xzr, [fp, #0x10]   // [V21 tmp11]
-            add     xip1, sp, #208
-            str     xip1, [fp, #0x18]  // [V38 PSPSym]
-            ldr     x19, [fp, #0xC0]
+            str     xzr, [fp, #0x18]   // [V21 tmp11]
+            add     xip1, sp, #224
+            str     xip1, [fp, #0x20]  // [V37 PSPSym]
+            ldr     x19, [fp, #0xD0]
             ; gcrRegs +[x19]
-            ldr     w21, [fp, #0xA4]
-            ldp     x23, x20, [fp, #0x90]
+            ldr     w21, [fp, #0xB4]
+            ldp     x23, x20, [fp, #0xA0]
             ; byrRegs +[x20 x23]
-            ldr     x24, [fp, #0xB0]
+            ldr     x24, [fp, #0xC0]
             ; byrRegs +[x24]
-            ldr     w22, [fp, #0xB8]
-                       ;; size=56 bbWeight=8 PerfScore 152.00
+            ldr     w22, [fp, #0xC8]
+                       ;; size=60 bbWeight=8 PerfScore 160.00
 G_M55933_IG02:        ; bbWeight=8, gcVars=0000000002000000 {V02}, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, gcvars, byref, isz
             ; GC ptr vars +{V02}
             ldr     x0, [x19, #0x18]
@@ -84,19 +85,20 @@ G_M55933_IG02:        ; bbWeight=8, gcVars=0000000002000000 {V02}, gcrefRegs=800
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
             ldrb    w25, [x0, w1, UXTW #2]
-            ldr     w0, [fp, #0x8C]    // [V06 loc0]
+            ldr     w0, [fp, #0x9C]    // [V06 loc0]
             ; byrRegs -[x0]
-            sub     w0, w0, #1
+            sub     w26, w0, #1
+            sxtw    w0, w26
             cmp     w0, w22
             bhs     G_M55933_IG13
-                       ;; size=44 bbWeight=8 PerfScore 144.00
+                       ;; size=48 bbWeight=8 PerfScore 148.00
 G_M55933_IG03:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
             ldr     x1, [x19, #0x50]
             ; gcrRegs +[x1]
             ldrh    w2, [x24, w0, UXTW #2]
-            ldr     x26, [x1, #0x08]
-            ; gcrRegs +[x26]
-            ldr     w0, [x26, #0x08]
+            ldr     x27, [x1, #0x08]
+            ; gcrRegs +[x27]
+            ldr     w0, [x27, #0x08]
             cmp     w0, w2
             bhi     G_M55933_IG12
             ldr     x0, [x1, #0x10]
@@ -109,7 +111,7 @@ G_M55933_IG03:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x2
             ldr     x2, [x2]
             ldr     wzr, [x0]
             blr     x2
-            ; gcrRegs -[x0 x26]
+            ; gcrRegs -[x0 x27]
             ; gcr arg pop 0
             sxtw    w2, w0
                        ;; size=60 bbWeight=2 PerfScore 52.00
@@ -117,83 +119,80 @@ G_M55933_IG04:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x2
             tbz     w25, #2, G_M55933_IG06
                        ;; size=4 bbWeight=8 PerfScore 8.00
 G_M55933_IG05:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
-            ldr     w0, [fp, #0x8C]    // [V06 loc0]
-            str     w0, [x23]
+            ldr     w1, [fp, #0x9C]    // [V06 loc0]
+            str     w1, [x23]
                        ;; size=8 bbWeight=2 PerfScore 6.00
 G_M55933_IG06:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
-            ldr     w0, [fp, #0x8C]    // [V06 loc0]
-            cmp     w0, w21
+            ldr     w1, [fp, #0x9C]    // [V06 loc0]
+            cmp     w1, w21
             ble     G_M55933_IG16
                        ;; size=12 bbWeight=8 PerfScore 28.00
 G_M55933_IG07:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
             tbnz    w25, #1, G_M55933_IG16
-            ldr     w0, [x20, #0x08]
-            ldr     w1, [x19, #0xA4]
-            lsl     w1, w0, w1
-            orr     w4, w1, w2
-            ldr     x1, [x19, #0x20]
-            ; gcrRegs +[x1]
-            ldr     w5, [x1, #0x08]
-            cmp     w4, w5
+            ldr     w1, [x20, #0x08]
+            ldr     w5, [x19, #0xA4]
+            lsl     w5, w1, w5
+            orr     w4, w5, w2
+            ldr     x5, [x19, #0x20]
+            ; gcrRegs +[x5]
+            ldr     w0, [x5, #0x08]
+            cmp     w4, w0
             bhs     G_M55933_IG11
-            add     x1, x1, #16
-            ; gcrRegs -[x1]
-            ; byrRegs +[x1]
-            ldr     w1, [x1, w4, UXTW #2]
-            ; byrRegs -[x1]
-            cmp     w1, #0
+            add     x5, x5, #16
+            ; gcrRegs -[x5]
+            ; byrRegs +[x5]
+            ldr     w5, [x5, w4, UXTW #2]
+            ; byrRegs -[x5]
+            cmp     w5, #0
             ble     G_M55933_IG14
                        ;; size=52 bbWeight=4 PerfScore 82.00
 G_M55933_IG08:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
-            str     w1, [x20, #0x08]
+            str     w5, [x20, #0x08]
                        ;; size=4 bbWeight=2 PerfScore 2.00
 G_M55933_IG09:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
             mov     w25, #1
                        ;; size=4 bbWeight=8 PerfScore 4.00
 G_M55933_IG10:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
-            str     xzr, [fp, #0x10]   // [V21 tmp11]
+            str     xzr, [fp, #0x18]   // [V21 tmp11]
             cbz     w25, G_M55933_IG17
-            ldr     w0, [fp, #0x8C]    // [V06 loc0]
-            sub     w0, w0, #1
-            str     w0, [fp, #0x8C]    // [V06 loc0]
+            str     w26, [fp, #0x9C]   // [V06 loc0]
             b       G_M55933_IG02
-                       ;; size=24 bbWeight=4 PerfScore 26.00
+                       ;; size=16 bbWeight=4 PerfScore 16.00
 G_M55933_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
             ; byrRegs -[x20 x23-x24]
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M55933_IG12:        ; bbWeight=2, gcrefRegs=4080000 {x19 x26}, byrefRegs=1900000 {x20 x23 x24}, byref
-            ; gcrRegs +[x19 x26]
+G_M55933_IG12:        ; bbWeight=2, gcrefRegs=8080000 {x19 x27}, byrefRegs=1900000 {x20 x23 x24}, byref
+            ; gcrRegs +[x19 x27]
             ; byrRegs +[x20 x23-x24]
-            add     x0, x26, #16
-            ; byrRegs +[x0]
-            ldr     w2, [x0, w2, UXTW #2]
+            add     x1, x27, #16
+            ; byrRegs +[x1]
+            ldr     w2, [x1, w2, UXTW #2]
             b       G_M55933_IG04
                        ;; size=12 bbWeight=2 PerfScore 9.00
 G_M55933_IG13:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
-            ; gcrRegs -[x26]
-            ; byrRegs -[x0]
+            ; gcrRegs -[x27]
+            ; byrRegs -[x1]
             movn    w2, #0
             b       G_M55933_IG04
                        ;; size=8 bbWeight=2 PerfScore 3.00
 G_M55933_IG14:        ; bbWeight=16, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
-            mov     x1, x19
-            ; gcrRegs +[x1]
-            ldr     x1, [x1, #0x10]
-            ldr     w5, [x1, #0x08]
-            cmp     w0, w5
+            ldr     x5, [x19, #0x10]
+            ; gcrRegs +[x5]
+            ldr     w0, [x5, #0x08]
+            cmp     w1, w0
             bhs     G_M55933_IG11
-            add     x1, x1, #16
-            ; gcrRegs -[x1]
-            ; byrRegs +[x1]
-            ldr     x1, [x1, w0, UXTW #3]
+            add     x5, x5, #16
...

+12 (+2.86%) : 25187.dasm - System.Globalization.TextInfo:ChangeCaseCommonSystem.Globalization.TextInfo+ToUpperConversion:this (Tier1)

@@ -8,10 +8,10 @@
 ; 0 inlinees with PGO data; 26 single block inlinees; 11 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  7,  4.50)     ref  ->  x19         this class-hnd single-def <System.Globalization.TextInfo>
+;  V00 this         [V00,T01] (  7,  4.50)     ref  ->  x20         this class-hnd single-def <System.Globalization.TextInfo>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ushort]>
-;* V03 loc0         [V03,T22] (  0,  0   )   ubyte  ->  zero-ref   
+;* V03 loc0         [V03,T21] (  0,  0   )   ubyte  ->  zero-ref   
 ;  V04 loc1         [V04    ] (  5,  2.50)     int  ->  [fp+0x20]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V05 loc2         [V05    ] (  0,  0   )     int  ->  zero-ref   
 ;* V06 loc3         [V06    ] (  0,  0   )    long  ->  zero-ref   
@@ -60,7 +60,7 @@
 ;* V49 tmp39        [V49    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V50 tmp40        [V50    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V51 tmp41        [V51    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;* V52 tmp42        [V52,T23] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V52 tmp42        [V52,T22] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V53 tmp43        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V54 tmp44        [V54    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V55 tmp45        [V55    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
@@ -69,7 +69,7 @@
 ;* V58 tmp48        [V58    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V59 tmp49        [V59    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V60 tmp50        [V60    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;* V61 tmp51        [V61,T24] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V61 tmp51        [V61,T23] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V62 tmp52        [V62    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V63 tmp53        [V63    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V64 tmp54        [V64    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
@@ -79,7 +79,7 @@
 ;* V68 tmp58        [V68    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V69 tmp59        [V69    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V70 tmp60        [V70,T02] (  4,  2.50)   byref  ->  x21         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V71 tmp61        [V71,T01] (  5,  3.50)     int  ->  x20         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V71 tmp61        [V71,T00] (  5,  3.50)     int  ->  x19         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;  V72 tmp62        [V72,T03] (  4,  2.50)   byref  ->  x22         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V73 tmp63        [V73,T04] (  4,  2.50)     int  ->  x23         single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V74 tmp64        [V74    ] (  0,  0   )   byref  ->  zero-ref    "field V18._reference (fldOffset=0x0)" P-INDEP
@@ -102,35 +102,34 @@
 ;* V91 tmp81        [V91    ] (  0,  0   )     int  ->  zero-ref    "field V39._length (fldOffset=0x8)" P-INDEP
 ;* V92 tmp82        [V92    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V93 tmp83        [V93    ] (  0,  0   )     int  ->  zero-ref    "field V43._length (fldOffset=0x8)" P-INDEP
-;* V94 tmp84        [V94,T16] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
-;* V95 tmp85        [V95,T25] (  0,  0   )     int  ->  zero-ref    "field V44._length (fldOffset=0x8)" P-INDEP
-;* V96 tmp86        [V96,T17] (  0,  0   )   byref  ->  zero-ref    single-def "field V45._reference (fldOffset=0x0)" P-INDEP
-;* V97 tmp87        [V97,T26] (  0,  0   )     int  ->  zero-ref    "field V45._length (fldOffset=0x8)" P-INDEP
+;* V94 tmp84        [V94,T15] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
+;* V95 tmp85        [V95,T24] (  0,  0   )     int  ->  zero-ref    "field V44._length (fldOffset=0x8)" P-INDEP
+;* V96 tmp86        [V96,T16] (  0,  0   )   byref  ->  zero-ref    single-def "field V45._reference (fldOffset=0x0)" P-INDEP
+;* V97 tmp87        [V97,T25] (  0,  0   )     int  ->  zero-ref    "field V45._length (fldOffset=0x8)" P-INDEP
 ;* V98 tmp88        [V98    ] (  0,  0   )   byref  ->  zero-ref    "field V46._reference (fldOffset=0x0)" P-INDEP
 ;* V99 tmp89        [V99    ] (  0,  0   )     int  ->  zero-ref    "field V46._length (fldOffset=0x8)" P-INDEP
-;* V100 tmp90       [V100,T18] (  0,  0   )   byref  ->  zero-ref    single-def "field V49._reference (fldOffset=0x0)" P-INDEP
+;* V100 tmp90       [V100,T17] (  0,  0   )   byref  ->  zero-ref    single-def "field V49._reference (fldOffset=0x0)" P-INDEP
 ;* V101 tmp91       [V101    ] (  0,  0   )     int  ->  zero-ref    "field V49._length (fldOffset=0x8)" P-INDEP
-;* V102 tmp92       [V102,T19] (  0,  0   )   byref  ->  zero-ref    single-def "field V53._reference (fldOffset=0x0)" P-INDEP
-;* V103 tmp93       [V103,T27] (  0,  0   )     int  ->  zero-ref    "field V53._length (fldOffset=0x8)" P-INDEP
+;* V102 tmp92       [V102,T18] (  0,  0   )   byref  ->  zero-ref    single-def "field V53._reference (fldOffset=0x0)" P-INDEP
+;* V103 tmp93       [V103,T26] (  0,  0   )     int  ->  zero-ref    "field V53._length (fldOffset=0x8)" P-INDEP
 ;* V104 tmp94       [V104    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V54._reference (fldOffset=0x0)" P-INDEP
 ;* V105 tmp95       [V105    ] (  0,  0   )     int  ->  zero-ref    "field V54._length (fldOffset=0x8)" P-INDEP
-;* V106 tmp96       [V106,T20] (  0,  0   )   byref  ->  zero-ref    single-def "field V58._reference (fldOffset=0x0)" P-INDEP
+;* V106 tmp96       [V106,T19] (  0,  0   )   byref  ->  zero-ref    single-def "field V58._reference (fldOffset=0x0)" P-INDEP
 ;* V107 tmp97       [V107    ] (  0,  0   )     int  ->  zero-ref    "field V58._length (fldOffset=0x8)" P-INDEP
-;* V108 tmp98       [V108,T21] (  0,  0   )   byref  ->  zero-ref    single-def "field V62._reference (fldOffset=0x0)" P-INDEP
-;* V109 tmp99       [V109,T28] (  0,  0   )     int  ->  zero-ref    "field V62._length (fldOffset=0x8)" P-INDEP
+;* V108 tmp98       [V108,T20] (  0,  0   )   byref  ->  zero-ref    single-def "field V62._reference (fldOffset=0x0)" P-INDEP
+;* V109 tmp99       [V109,T27] (  0,  0   )     int  ->  zero-ref    "field V62._length (fldOffset=0x8)" P-INDEP
 ;* V110 tmp100      [V110    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V64._reference (fldOffset=0x0)" P-INDEP
 ;* V111 tmp101      [V111    ] (  0,  0   )     int  ->  zero-ref    "field V64._length (fldOffset=0x8)" P-INDEP
 ;* V112 tmp102      [V112    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V65._reference (fldOffset=0x0)" P-INDEP
 ;* V113 tmp103      [V113    ] (  0,  0   )     int  ->  zero-ref    "field V65._length (fldOffset=0x8)" P-INDEP
 ;  V114 tmp104      [V114,T05] (  2,  2   )    long  ->  x21         "Cast away GC"
 ;  V115 tmp105      [V115,T06] (  2,  2   )    long  ->  x22         "Cast away GC"
-;* V116 tmp106      [V116,T15] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V117 tmp107      [V117,T07] (  2,  2   )    long  ->   x1         "argument with side effect"
-;  V118 tmp108      [V118,T08] (  2,  2   )     int  ->   x2         "argument with side effect"
-;  V119 tmp109      [V119,T09] (  2,  2   )    long  ->   x3         "argument with side effect"
-;  V120 cse0        [V120,T13] (  3,  1.50)    long  ->   x0         "CSE - moderate"
-;  V121 cse1        [V121,T14] (  3,  1.50)     int  ->   x0         "CSE - moderate"
-;  V122 cse2        [V122,T10] (  3,  1.50)     ref  ->   x1         "CSE - moderate"
+;  V116 tmp106      [V116,T07] (  2,  2   )    long  ->   x2         "argument with side effect"
+;  V117 tmp107      [V117,T08] (  2,  2   )     int  ->   x3         "argument with side effect"
+;  V118 tmp108      [V118,T09] (  2,  2   )    long  ->   x4         "argument with side effect"
+;  V119 cse0        [V119,T13] (  3,  1.50)    long  ->   x1         "CSE - moderate"
+;  V120 cse1        [V120,T14] (  3,  1.50)     int  ->   x0         "CSE - moderate"
+;  V121 cse2        [V121,T10] (  3,  1.50)     ref  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 24
 
@@ -141,20 +140,20 @@ G_M14148_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             str     x23, [sp, #0x48]
             mov     fp, sp
             stp     xzr, xzr, [fp, #0x10]  // [V09 loc6], [V07 loc4]
-            mov     x19, x0
-            ; gcrRegs +[x19]
+            mov     x20, x0
+            ; gcrRegs +[x20]
             mov     x21, x1
             ; byrRegs +[x21]
-            mov     w20, w2
+            mov     w19, w2
             mov     x22, x3
             ; byrRegs +[x22]
             mov     w23, w4
                        ;; size=44 bbWeight=1 PerfScore 8.00
-G_M14148_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, byref, isz
-            cbnz    w20, G_M14148_IG04
+G_M14148_IG02:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, byref, isz
+            cbnz    w19, G_M14148_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M14148_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[x19]
+            ; gcrRegs -[x20]
             ; byrRegs -[x21-x22]
             ldr     x23, [sp, #0x48]
             ldp     x21, x22, [sp, #0x38]
@@ -162,13 +161,13 @@ G_M14148_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ldp     fp, lr, [sp], #0x50
             ret     lr
                        ;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M14148_IG04:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, gcvars, byref, isz
-            ; gcrRegs +[x19]
+G_M14148_IG04:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, gcvars, byref, isz
+            ; gcrRegs +[x20]
             ; byrRegs +[x21-x22]
             str     wzr, [fp, #0x20]   // [V04 loc1]
-            ldrb    w0, [x19, #0x29]
+            ldrb    w0, [x20, #0x29]
             cbnz    w0, G_M14148_IG05
-            mov     x0, x19
+            mov     x0, x20
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for <unknown method>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -177,8 +176,8 @@ G_M14148_IG04:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800
             blr     x1
             ; gcrRegs -[x0]
                        ;; size=36 bbWeight=0.50 PerfScore 5.50
-G_M14148_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, byref, isz
-            ldrb    w0, [x19, #0x29]
+G_M14148_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, byref, isz
+            ldrb    w0, [x20, #0x29]
             cmp     w0, #2
             beq     G_M14148_IG06
             cmp     w0, #1
@@ -197,11 +196,11 @@ G_M14148_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {
             blr     x2
             ; gcrRegs -[x0]
                        ;; size=64 bbWeight=0.50 PerfScore 7.25
-G_M14148_IG06:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, byref, isz
-            ldrb    w0, [x19, #0x29]
+G_M14148_IG06:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, byref, isz
+            ldrb    w0, [x20, #0x29]
             cmp     w0, #2
             bne     G_M14148_IG08
-            cmp     w20, #0
+            cmp     w19, #0
             cset    x0, ge
             movz    x1, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
             movk    x1, #0xD1FFAB1E LSL #16
@@ -217,7 +216,7 @@ G_M14148_IG06:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {
             blr     x1
             mov     x0, x21
             ; byrRegs +[x0]
-            mov     w1, w20
+            mov     w1, w19
             mov     x2, x22
             ; byrRegs +[x2]
             mov     w3, w23
@@ -237,7 +236,7 @@ G_M14148_IG06:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x1, [x1]
             blr     x1
-            ; gcrRegs -[x19]
+            ; gcrRegs -[x20]
             ; byrRegs -[x21-x22]
                        ;; size=144 bbWeight=0.50 PerfScore 16.75
 G_M14148_IG07:        ; bbWeight=0.50, epilog, nogc, extend
@@ -247,30 +246,33 @@ G_M14148_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x50
             ret     lr
                        ;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M14148_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, gcvars, byref
-            ; gcrRegs +[x19]
+G_M14148_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, gcvars, byref
+            ; gcrRegs +[x20]
             ; byrRegs +[x21-x22]
             stp     x22, x21, [fp, #0x10]  // [V09 loc6], [V07 loc4]
-            ldr     w0, [fp, #0x20]    // [V04 loc1]
-            sbfiz   x0, x0, #1, #32
-            add     x1, x21, x0
-            ldr     w2, [fp, #0x20]    // [V04 loc1]
-            sub     w2, w20, w2
-            add     x3, x22, x0
-            mov     x0, x19
-            ; gcrRegs +[x0]
+            ldr     w1, [fp, #0x20]    // [V04 loc1]
+            sbfiz   x1, x1, #1, #32
+            add     x2, x21, x1
+            ldr     w3, [fp, #0x20]    // [V04 loc1]
+            sub     w3, w19, w3
+            add     x4, x22, x1
+            mov     x1, x2
+            mov     w2, w3
+            mov     x3, x4
             ldr     w4, [fp, #0x20]    // [V04 loc1]
             sub     w4, w23, w4
+            mov     x0, x20
+            ; gcrRegs +[x0]
             mov     w5, #1
             movz    x6, #0xD1FFAB1E      // code for <unknown method>
             movk    x6, #0xD1FFAB1E LSL #16
             movk    x6, #0xD1FFAB1E LSL #32
             ldr     x6, [x6]
             blr     x6
-            ; gcrRegs -[x0 x19]
+            ; gcrRegs -[x0 x20]
             ; byrRegs -[x21-x22]
             stp     xzr, xzr, [fp, #0x10]  // [V09 loc6], [V07 loc4]
-                       ;; size=68 bbWeight=0.50 PerfScore 8.75
+                       ;; size=80 bbWeight=0.50 PerfScore 9.50
 G_M14148_IG09:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x23, [sp, #0x48]
             ldp     x21, x22, [sp, #0x38]
@@ -279,7 +281,7 @@ G_M14148_IG09:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=20 bbWeight=0.50 PerfScore 3.00
 
-; Total bytes of code 420, prolog size 24, PerfScore 56.25, instruction count 105, allocated bytes for code 420 (MethodHash=53d9c8bb) for method System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):this (Tier1)
+; Total bytes of code 432, prolog size 24, PerfScore 57.00, instruction count 108, allocated bytes for code 432 (MethodHash=53d9c8bb) for method System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -290,7 +292,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 105 (0x00069) Actual length = 420 (0x0001a4)
+  Function Length   : 108 (0x0006c) Actual length = 432 (0x0001b0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+5.88%) : 51192.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)

@@ -9,44 +9,44 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] (  3,  3   )   byref  ->   x0         this single-def
-;  V01 arg1         [V01,T00] (  5,  5   )     ref  ->   x1         class-hnd single-def <System.Threading.ReaderWriterLockSlim>
+;  V01 arg1         [V01,T00] (  5,  5   )     ref  ->   x2         class-hnd single-def <System.Threading.ReaderWriterLockSlim>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;* V04 tmp2         [V04,T04] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V05 tmp3         [V05,T05] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04,T03] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
+;* V05 tmp3         [V05,T04] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V06 tmp4         [V06    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;* V07 tmp5         [V07,T06] (  0,  0   )     int  ->  zero-ref    "field V03._total (fldOffset=0x0)" P-INDEP
-;* V08 tmp6         [V08,T07] (  0,  0   )     int  ->  zero-ref    "field V03._start (fldOffset=0x4)" P-INDEP
+;* V07 tmp5         [V07,T05] (  0,  0   )     int  ->  zero-ref    "field V03._total (fldOffset=0x0)" P-INDEP
+;* V08 tmp6         [V08,T06] (  0,  0   )     int  ->  zero-ref    "field V03._start (fldOffset=0x4)" P-INDEP
 ;* V09 tmp7         [V09    ] (  0,  0   )     int  ->  zero-ref    "field V06._total (fldOffset=0x0)" P-INDEP
 ;* V10 tmp8         [V10    ] (  0,  0   )     int  ->  zero-ref    "field V06._start (fldOffset=0x4)" P-INDEP
 ;* V11 tmp9         [V11    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;  V12 tmp10        [V12,T01] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;  V13 tmp11        [V13,T03] (  2,  4   )     ref  ->   x0         single-def "argument with side effect"
 ;
 ; Lcl frame size = 16
 
 G_M44302_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M44302_IG02:        ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0001 {x0}, byref
-            ; gcrRegs +[x1]
+            mov     x2, x1
+            ; gcrRegs +[x2]
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M44302_IG02:        ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref
             ; byrRegs +[x0]
             mov     x14, x0
             ; byrRegs +[x14]
-            mov     x15, x1
+            mov     x15, x2
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_CHECKED_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x0 x14]
-            ldrsb   wzr, [x1]
-            mov     x0, x1
-            ; gcrRegs +[x0]
+            ldrsb   wzr, [x2]
             movn    w1, #0
-            ; gcrRegs -[x1]
             stp     w1, wzr, [fp, #0x18]   // [V12 tmp10], [V12 tmp10+0x04]
             ldr     x1, [fp, #0x18]    // [V12 tmp10]
+            mov     x0, x2
+            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            ; gcrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
@@ -58,7 +58,7 @@ G_M44302_IG03:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 68, prolog size 8, PerfScore 18.00, instruction count 17, allocated bytes for code 68 (MethodHash=a56c52f1) for method Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
+; Total bytes of code 72, prolog size 8, PerfScore 18.50, instruction count 18, allocated bytes for code 72 (MethodHash=a56c52f1) for method Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -69,7 +69,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 17 (0x00011) Actual length = 68 (0x000044)
+  Function Length   : 18 (0x00012) Actual length = 72 (0x000048)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

coreclr_tests.run.linux.arm64.checked.mch

-48 (-30.00%) : 542550.dasm - (dynamicClass):ABIStress_TailCaller317(System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S11U,ABIStress.S1P,ABIStress.S9U,ABIStress.S4P,System.Int128,ABIStress.S3U,ABIStress.S11U,short,ABIStress.S7U,ABIStress.S6U,ABIStress.S6U,double,ABIStress.S16U,float,ABIStress.S1P,ABIStress.S3U,ABIStress.S15U,ABIStress.S12U):int (FullOpts)

@@ -11,7 +11,7 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (32) zero-ref    HFA(simd16)  multireg-arg single-def <System.Runtime.Intrinsics.Vector256`1[int]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SA] multireg-arg single-def <ABIStress.S11U>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct ( 8) zero-ref    single-def <ABIStress.S1P>
-;  V03 arg3         [V03,T04] (  3,  3   )  struct (16) [fp+0x60]  do-not-enreg[SA] multireg-arg single-def <ABIStress.S9U>
+;  V03 arg3         [V03,T01] (  4,  4   )  struct (16) [fp+0x20]  do-not-enreg[SA] multireg-arg single-def <ABIStress.S9U>
 ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def <ABIStress.S4P>
 ;* V05 arg5         [V05    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Int128>
 ;* V06 arg6         [V06    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] single-def <ABIStress.S3U>
@@ -25,89 +25,72 @@
 ;* V14 arg14        [V14    ] (  0,  0   )   float  ->  zero-ref    single-def
 ;* V15 arg15        [V15    ] (  0,  0   )  struct ( 8) zero-ref    single-def <ABIStress.S1P>
 ;* V16 arg16        [V16    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] single-def <ABIStress.S3U>
-;  V17 arg17        [V17,T11] (  1,  1   )  struct (16) [fp+0xC8]  do-not-enreg[S] single-def <ABIStress.S15U>
-;  V18 arg18        [V18,T12] (  1,  1   )  struct (16) [fp+0xD8]  do-not-enreg[SF] single-def <ABIStress.S12U>
+;  V17 arg17        [V17,T06] (  2,  2   )  struct (16) [fp+0x88]  do-not-enreg[SA] multireg-arg single-def <ABIStress.S15U>
+;  V18 arg18        [V18,T07] (  1,  1   )  struct (16) [fp+0x98]  do-not-enreg[SF] single-def <ABIStress.S12U>
 ;# V19 OutArgs      [V19    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V20 tmp1         [V20    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <ABIStress.S2P>
 ;* V21 tmp2         [V21    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <ABIStress.S4U>
 ;* V22 tmp3         [V22    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <ABIStress.S2P>
-;* V23 tmp4         [V23,T13] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V24 tmp5         [V24,T14] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V25 tmp6         [V25,T15] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V26 tmp7         [V26,T16] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;  V27 tmp8         [V27,T22] (  2,  2   )  simd16  ->   d0         HFA(simd16)  single-def "field V00._lower (fldOffset=0x0)" P-INDEP
-;  V28 tmp9         [V28,T23] (  2,  2   )  simd16  ->   d1         HFA(simd16)  single-def "field V00._upper (fldOffset=0x10)" P-INDEP
-;  V29 tmp10        [V29,T06] (  1,  1   )   ubyte  ->   x2         single-def "field V02.F0 (fldOffset=0x0)" P-INDEP
-;  V30 tmp11        [V30,T07] (  1,  1   )     int  ->   x5         single-def "field V04.F0 (fldOffset=0x0)" P-INDEP
-;  V31 tmp12        [V31,T08] (  1,  1   )    long  ->   x6         single-def "field V05._lower (fldOffset=0x0)" P-INDEP
-;  V32 tmp13        [V32,T09] (  1,  1   )    long  ->   x7         single-def "field V05._upper (fldOffset=0x8)" P-INDEP
+;* V23 tmp4         [V23,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V24 tmp5         [V24,T09] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V25 tmp6         [V25,T10] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V26 tmp7         [V26,T11] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;  V27 tmp8         [V27,T17] (  2,  2   )  simd16  ->   d0         HFA(simd16)  single-def "field V00._lower (fldOffset=0x0)" P-INDEP
+;  V28 tmp9         [V28,T18] (  2,  2   )  simd16  ->   d1         HFA(simd16)  single-def "field V00._upper (fldOffset=0x10)" P-INDEP
+;  V29 tmp10        [V29,T02] (  1,  1   )   ubyte  ->   x2         single-def "field V02.F0 (fldOffset=0x0)" P-INDEP
+;  V30 tmp11        [V30,T03] (  1,  1   )     int  ->   x5         single-def "field V04.F0 (fldOffset=0x0)" P-INDEP
+;  V31 tmp12        [V31,T04] (  1,  1   )    long  ->   x6         single-def "field V05._lower (fldOffset=0x0)" P-INDEP
+;  V32 tmp13        [V32,T05] (  1,  1   )    long  ->   x7         single-def "field V05._upper (fldOffset=0x8)" P-INDEP
 ;* V33 tmp14        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V15.F0 (fldOffset=0x0)" P-INDEP
-;* V34 tmp15        [V34,T17] (  0,  0   )   short  ->  zero-ref    single-def "field V20.F0 (fldOffset=0x0)" P-INDEP
-;* V35 tmp16        [V35,T18] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F0 (fldOffset=0x0)" P-INDEP
-;* V36 tmp17        [V36,T19] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F1 (fldOffset=0x1)" P-INDEP
-;* V37 tmp18        [V37,T20] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F2 (fldOffset=0x2)" P-INDEP
-;* V38 tmp19        [V38,T21] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F3 (fldOffset=0x3)" P-INDEP
+;* V34 tmp15        [V34,T12] (  0,  0   )   short  ->  zero-ref    single-def "field V20.F0 (fldOffset=0x0)" P-INDEP
+;* V35 tmp16        [V35,T13] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F0 (fldOffset=0x0)" P-INDEP
+;* V36 tmp17        [V36,T14] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F1 (fldOffset=0x1)" P-INDEP
+;* V37 tmp18        [V37,T15] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F2 (fldOffset=0x2)" P-INDEP
+;* V38 tmp19        [V38,T16] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F3 (fldOffset=0x3)" P-INDEP
 ;* V39 tmp20        [V39    ] (  0,  0   )   short  ->  zero-ref    single-def "field V22.F0 (fldOffset=0x0)" P-INDEP
-;  V40 tmp21        [V40,T00] (  5, 10   )  struct ( 8) [fp+0x58]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S4U>
-;  V41 tmp22        [V41,T02] (  3,  6   )  struct (16) [fp+0x48]  do-not-enreg[SFA] multireg-arg "argument with side effect" <ABIStress.S9U>
-;  V42 tmp23        [V42,T05] (  2,  4   )     int  ->   x2         "argument with side effect"
-;  V43 tmp24        [V43,T03] (  3,  6   )  struct (16) [fp+0x38]  do-not-enreg[SFA] multireg-arg "argument with side effect" <ABIStress.S15U>
-;  V44 tmp25        [V44,T01] (  4,  8   )  struct (32) [fp+0x18]  HFA(simd16)  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.Runtime.Intrinsics.Vector256`1[int]>
-;* V45 tmp26        [V45,T10] (  0,  0   )     int  ->  zero-ref    "argument with side effect"
+;  V40 tmp21        [V40,T00] (  5, 10   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S4U>
 ;
-; Lcl frame size = 96
+; Lcl frame size = 32
 
 G_M63451_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x70]!
+            stp     fp, lr, [sp, #-0x30]!
             mov     fp, sp
-            stp     x3, x4, [fp, #0x60]    // [V03 arg3], [V03 arg3+0x08]
+            stp     x3, x4, [fp, #0x20]    // [V03 arg3], [V03 arg3+0x08]
                        ;; size=12 bbWeight=1 PerfScore 2.50
 G_M63451_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x60]
-            str     x0, [fp, #0x48]
-            ldrb    w0, [fp, #0x68]
-            strb    w0, [fp, #0x50]
-            ldrb    w2, [fp, #0xE0]    // [V18 arg18+0x08]
-            ldr     x0, [fp, #0xC8]
-            str     x0, [fp, #0x38]
-            ldr     x0, [fp, #0xCF]
-            str     x0, [fp, #0x3F]
-            str     q0, [fp, #0x18]    // [V44 tmp25]
-            str     q1, [fp, #0x28]    // [V44 tmp25+0x10]
-            mov     w0, #6
-            strb    w0, [fp, #0x58]    // [V40 tmp21]
-            mov     w0, #36
-            strb    w0, [fp, #0x59]    // [V40 tmp21+0x01]
-            mov     w0, #53
-            strb    w0, [fp, #0x5A]    // [V40 tmp21+0x02]
-            mov     w0, #255
-            strb    w0, [fp, #0x5B]    // [V40 tmp21+0x03]
+            mov     w7, #6
+            strb    w7, [fp, #0x18]    // [V40 tmp21]
+            mov     w7, #36
+            strb    w7, [fp, #0x19]    // [V40 tmp21+0x01]
+            mov     w7, #53
+            strb    w7, [fp, #0x1A]    // [V40 tmp21+0x02]
+            mov     w7, #255
+            strb    w7, [fp, #0x1B]    // [V40 tmp21+0x03]
             nop     
-                       ;; size=80 bbWeight=1 PerfScore 22.50
+                       ;; size=36 bbWeight=1 PerfScore 6.50
 G_M63451_IG03:        ; bbWeight=1, nogc, extend
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            movk    x0, #0xD1FFAB1E LSL #48
-            str     x0, [fp, #0x70]    // [V06 arg6]
-            ldp     x0, x1, [fp, #0x48]    // [V41 tmp22], [V41 tmp22+0x08]
-            ldp     x3, x4, [fp, #0x38]    // [V43 tmp24], [V43 tmp24+0x08]
-            ldr     q0, [fp, #0x18]    // [V44 tmp25]
-            ldr     q1, [fp, #0x28]    // [V44 tmp25+0x10]
-            ldr     w7, [fp, #0x58]    // [V40 tmp21]
+            movz    x7, #0xD1FFAB1E
+            movk    x7, #0xD1FFAB1E LSL #16
+            movk    x7, #0xD1FFAB1E LSL #32
+            movk    x7, #0xD1FFAB1E LSL #48
+            str     x7, [fp, #0x30]    // [V06 arg6]
+            ldr     w7, [fp, #0x18]    // [V40 tmp21]
+            ldp     x0, x1, [fp, #0x20]    // [V03 arg3], [V03 arg3+0x08]
+            ldp     x3, x4, [fp, #0x88]    // [V17 arg17], [V17 arg17+0x08]
+            ldrb    w2, [fp, #0xA0]    // [V18 arg18+0x08]
             movn    w6, #0xD1FFAB1E
             movz    x5, #0xD1FFAB1E
             movk    x5, #0xD1FFAB1E LSL #16
             movk    x5, #0xD1FFAB1E LSL #32
             movk    x5, #0xD1FFAB1E LSL #48
-                       ;; size=60 bbWeight=1 PerfScore 17.50
+                       ;; size=56 bbWeight=1 PerfScore 15.50
 G_M63451_IG04:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x70
+            ldp     fp, lr, [sp], #0x30
             b       <unknown method>
             ; gcr arg pop 0
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 160, prolog size 12, PerfScore 44.50, instruction count 40, allocated bytes for code 160 (MethodHash=47390824) for method (dynamicClass):ABIStress_TailCaller317(System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S11U,ABIStress.S1P,ABIStress.S9U,ABIStress.S4P,System.Int128,ABIStress.S3U,ABIStress.S11U,short,ABIStress.S7U,ABIStress.S6U,ABIStress.S6U,double,ABIStress.S16U,float,ABIStress.S1P,ABIStress.S3U,ABIStress.S15U,ABIStress.S12U):int (FullOpts)
+; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=47390824) for method (dynamicClass):ABIStress_TailCaller317(System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S11U,ABIStress.S1P,ABIStress.S9U,ABIStress.S4P,System.Int128,ABIStress.S3U,ABIStress.S11U,short,ABIStress.S7U,ABIStress.S6U,ABIStress.S6U,double,ABIStress.S16U,float,ABIStress.S1P,ABIStress.S3U,ABIStress.S15U,ABIStress.S12U):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -118,7 +101,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 40 (0x00028) Actual length = 160 (0x0000a0)
+  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -126,7 +109,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    8D          save_fplr_x #13 (0x0D); stp fp, lr, [sp, #-112]!
+    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
     E4          end
     E4          end
 

-44 (-26.83%) : 263980.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)

@@ -5,69 +5,52 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
-;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x60]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x58]  do-not-enreg[]
-;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x54]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x48]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
+;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x40]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
+;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x38]  do-not-enreg[]
+;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x34]  do-not-enreg[]
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x38]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-;  V08 tmp2         [V08    ] (  1,  1   )     ref  ->  [fp+0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp3         [V09    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp4         [V10    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V11 tmp5         [V11    ] (  1,  1   )     ref  ->  [fp+0x18]  do-not-enreg[] must-init "argument with side effect"
+;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;
-; Lcl frame size = 112
+; Lcl frame size = 80
 
 G_M19554_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x80]!
+            stp     fp, lr, [sp, #-0x60]!
             mov     fp, sp
-            add     x9, fp, #24
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     xzr, xzr, [x9, #0x20]
-            str     xzr, [x9, #0x30]
-            str     x0, [fp, #0x78]    // [V00 this]
-            str     x1, [fp, #0x70]    // [V01 arg1]
-            str     x2, [fp, #0x68]    // [V02 arg2]
-            str     x3, [fp, #0x60]    // [V03 arg3]
-            str     x4, [fp, #0x58]    // [V04 arg4]
-            str     w5, [fp, #0x54]    // [V05 arg5]
-                       ;; size=52 bbWeight=1 PerfScore 11.50
+            str     xzr, [fp, #0x18]   // [V07 tmp1]
+            str     xzr, [fp, #0x20]   // [V07 tmp1+0x08]
+            str     x0, [fp, #0x58]    // [V00 this]
+            str     x1, [fp, #0x50]    // [V01 arg1]
+            str     x2, [fp, #0x48]    // [V02 arg2]
+            str     x3, [fp, #0x40]    // [V03 arg3]
+            str     x4, [fp, #0x38]    // [V04 arg4]
+            str     w5, [fp, #0x34]    // [V05 arg5]
+                       ;; size=40 bbWeight=1 PerfScore 9.50
 G_M19554_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x78]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x30]    // [V08 tmp2]
-            ldr     x0, [fp, #0x70]    // [V01 arg1]
-            str     x0, [fp, #0x28]    // [V09 tmp3]
-            ldr     x0, [fp, #0x68]    // [V02 arg2]
-            str     x0, [fp, #0x20]    // [V10 tmp4]
-            ldr     x0, [fp, #0x60]    // [V03 arg3]
-            str     x0, [fp, #0x18]    // [V11 tmp5]
-            ldr     x0, [fp, #0x58]    // [V04 arg4]
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-                       ;; size=36 bbWeight=1 PerfScore 14.00
+            ldr     x5, [fp, #0x38]    // [V04 arg4]
+            ; byrRegs +[x5]
+                       ;; size=4 bbWeight=1 PerfScore 2.00
 G_M19554_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x1, x2, [x0]
-            stp     x1, x2, [fp, #0x38]
-            ldr     x1, [x0, #0x10]
-            str     x1, [fp, #0x48]
+            ldp     x1, x6, [x5]
+            stp     x1, x6, [fp, #0x18]
+            ldr     x1, [x5, #0x10]
+            str     x1, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M19554_IG04:        ; bbWeight=1, extend
-            ldr     x0, [fp, #0x30]    // [V08 tmp2]
-            ; gcrRegs +[x0]
-            ; byrRegs -[x0]
-            ldr     x1, [fp, #0x28]    // [V09 tmp3]
-            ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x20]    // [V10 tmp4]
-            ; gcrRegs +[x2]
-            ldr     x4, [fp, #0x18]    // [V11 tmp5]
-            ; gcrRegs +[x4]
-            add     x5, fp, #56    // [V07 tmp1]
-            ldr     w6, [fp, #0x54]    // [V05 arg5]
+            add     x5, fp, #24    // [V07 tmp1]
+            ; byrRegs -[x5]
+            ldr     w6, [fp, #0x34]    // [V05 arg5]
             uxtb    w6, w6
+            ldr     x1, [fp, #0x50]    // [V01 arg1]
+            ; gcrRegs +[x1]
+            ldr     x2, [fp, #0x48]    // [V02 arg2]
+            ; gcrRegs +[x2]
+            ldr     x4, [fp, #0x40]    // [V03 arg3]
+            ; gcrRegs +[x4]
+            ldr     x0, [fp, #0x58]    // [V00 this]
+            ; gcrRegs +[x0]
             mov     x3, xzr
             movz    x7, #0xD1FFAB1E      // code for <unknown method>
             movk    x7, #0xD1FFAB1E LSL #16
@@ -77,11 +60,11 @@ G_M19554_IG04:        ; bbWeight=1, extend
             ; gcrRegs -[x0-x2 x4]
                        ;; size=52 bbWeight=1 PerfScore 17.00
 G_M19554_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x80
+            ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 164, prolog size 28, PerfScore 53.50, instruction count 41, allocated bytes for code 164 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
+; Total bytes of code 120, prolog size 16, PerfScore 39.50, instruction count 30, allocated bytes for code 120 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -92,7 +75,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
+  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -100,7 +83,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    8F          save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
+    8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
     E4          end
     E4          end
 

-16 (-26.67%) : 543042.dasm - (dynamicClass):ABIStress_TailCaller570(ABIStress.S10U,System.Runtime.Intrinsics.Vector128`1[int],short):int (FullOpts)

@@ -8,44 +8,39 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T02] (  3,  3   )  struct (16) [fp+0x30]  do-not-enreg[SA] multireg-arg single-def <ABIStress.S10U>
+;  V00 arg0         [V00,T00] (  4,  4   )  struct (16) [fp+0x20]  do-not-enreg[SA] multireg-arg single-def <ABIStress.S10U>
 ;* V01 arg1         [V01    ] (  0,  0   )  simd16  ->  zero-ref    HFA(simd16)  single-def <System.Runtime.Intrinsics.Vector128`1[int]>
 ;* V02 arg2         [V02    ] (  0,  0   )   short  ->  zero-ref    single-def
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <ABIStress.S2U>
-;* V05 tmp2         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V06 tmp3         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V07 tmp4         [V07,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V04.F0 (fldOffset=0x0)" P-INDEP
-;* V08 tmp5         [V08,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V04.F1 (fldOffset=0x1)" P-INDEP
-;  V09 tmp6         [V09,T00] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S2U>
-;  V10 tmp7         [V10,T01] (  3,  6   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg "argument with side effect" <ABIStress.S10U>
+;* V05 tmp2         [V05,T02] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V06 tmp3         [V06,T03] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V07 tmp4         [V07,T04] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V04.F0 (fldOffset=0x0)" P-INDEP
+;* V08 tmp5         [V08,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V04.F1 (fldOffset=0x1)" P-INDEP
+;  V09 tmp6         [V09,T01] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S2U>
 ;
-; Lcl frame size = 48
+; Lcl frame size = 32
 
 G_M42108_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
+            stp     fp, lr, [sp, #-0x30]!
             mov     fp, sp
-            stp     x0, x1, [fp, #0x30]    // [V00 arg0], [V00 arg0+0x08]
+            stp     x0, x1, [fp, #0x20]    // [V00 arg0], [V00 arg0+0x08]
                        ;; size=12 bbWeight=1 PerfScore 2.50
 G_M42108_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x30]
-            str     x0, [fp, #0x18]
-            ldrh    w0, [fp, #0x38]
-            strh    w0, [fp, #0x20]
-            mov     w0, #191
-            strb    w0, [fp, #0x28]    // [V09 tmp6]
-            mov     w0, #168
-            strb    w0, [fp, #0x29]    // [V09 tmp6+0x01]
-            ldp     x0, x1, [fp, #0x18]    // [V10 tmp7], [V10 tmp7+0x08]
-            ldrh    w2, [fp, #0x28]    // [V09 tmp6]
-                       ;; size=40 bbWeight=1 PerfScore 14.00
+            mov     w2, #191
+            strb    w2, [fp, #0x18]    // [V09 tmp6]
+            mov     w2, #168
+            strb    w2, [fp, #0x19]    // [V09 tmp6+0x01]
+            ldrh    w2, [fp, #0x18]    // [V09 tmp6]
+            ldp     x0, x1, [fp, #0x20]    // [V00 arg0], [V00 arg0+0x08]
+                       ;; size=24 bbWeight=1 PerfScore 8.00
 G_M42108_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x40
+            ldp     fp, lr, [sp], #0x30
             b       <unknown method>
             ; gcr arg pop 0
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 60, prolog size 12, PerfScore 18.50, instruction count 15, allocated bytes for code 60 (MethodHash=cee55b83) for method (dynamicClass):ABIStress_TailCaller570(ABIStress.S10U,System.Runtime.Intrinsics.Vector128`1[int],short):int (FullOpts)
+; Total bytes of code 44, prolog size 12, PerfScore 12.50, instruction count 11, allocated bytes for code 44 (MethodHash=cee55b83) for method (dynamicClass):ABIStress_TailCaller570(ABIStress.S10U,System.Runtime.Intrinsics.Vector128`1[int],short):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -56,7 +51,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
+  Function Length   : 11 (0x0000b) Actual length = 44 (0x00002c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -64,7 +59,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
     E4          end
     E4          end
 

+4 (+3.85%) : 622340.dasm - NullableTest:BoxUnboxToQ(System.ValueType):ubyte (FullOpts)

@@ -12,21 +12,20 @@
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <NotEmptyStructQ>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03    ] (  2,  4   )  struct (16) [fp+0x20]  do-not-enreg[XSA] multireg-arg addr-exposed "UNBOXing a register returnable nullable" <System.Nullable`1[NotEmptyStructQ]>
-;* V04 tmp2         [V04,T07] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] "impAppendStmt" <System.Nullable`1[NotEmptyStructQ]>
+;* V04 tmp2         [V04,T06] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] "impAppendStmt" <System.Nullable`1[NotEmptyStructQ]>
 ;* V05 tmp3         [V05    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] "spilled call-like call argument" <NotEmptyStructQ>
 ;* V06 tmp4         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <NotEmptyStructQ>
 ;* V07 tmp5         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Nullable`1[int]>
 ;  V08 tmp6         [V08,T04] (  3,  2   )   ubyte  ->   x0         "Inline return value spill temp"
-;* V09 tmp7         [V09,T08] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <System.Nullable`1[NotEmptyStructQ]>
+;* V09 tmp7         [V09,T07] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <System.Nullable`1[NotEmptyStructQ]>
 ;* V10 tmp8         [V10    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <NotEmptyStructQ>
-;* V11 tmp9         [V11,T09] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V07.hasValue (fldOffset=0x0)" P-INDEP
-;* V12 tmp10        [V12,T10] (  0,  0   )     int  ->  zero-ref    single-def "field V07.value (fldOffset=0x4)" P-INDEP
+;* V11 tmp9         [V11,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V07.hasValue (fldOffset=0x0)" P-INDEP
+;* V12 tmp10        [V12,T09] (  0,  0   )     int  ->  zero-ref    single-def "field V07.value (fldOffset=0x4)" P-INDEP
 ;* V13 tmp11        [V13    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "V09.[000..001)"
-;  V14 tmp12        [V14,T05] (  2,  2   )   ubyte  ->   x1         single-def "V04.[000..001)"
-;  V15 tmp13        [V15,T00] (  3,  6   )   byref  ->   x0         single-def "Spilling address for field-by-field copy"
+;  V14 tmp12        [V14,T05] (  2,  2   )   ubyte  ->   x0         single-def "V04.[000..001)"
+;  V15 tmp13        [V15,T00] (  3,  6   )   byref  ->   x1         single-def "Spilling address for field-by-field copy"
 ;  V16 tmp14        [V16,T03] (  3,  3   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <NotEmptyStructQ>
-;  V17 tmp15        [V17,T06] (  2,  2   )    long  ->   x0         "argument with side effect"
-;  V18 cse0         [V18,T02] (  2,  1.50)    long  ->   x0         "CSE - aggressive"
+;  V17 cse0         [V17,T02] (  2,  1.50)    long  ->   x2         "CSE - aggressive"
 ;
 ; Lcl frame size = 32
 
@@ -43,26 +42,27 @@ G_M2442_IG02:        ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref
             movk    x1, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_UNBOX_NULLABLE
             ; gcrRegs -[x2]
-            add     x0, fp, #32    // [V03 tmp1]
-            ; byrRegs +[x0]
-            ldrb    w1, [x0]
-            ldr     x0, [x0, #0x04]
-            ; byrRegs -[x0]
-            cbz     w1, G_M2442_IG04
+            add     x1, fp, #32    // [V03 tmp1]
+            ; byrRegs +[x1]
+            ldrb    w0, [x1]
+            ldr     x2, [x1, #0x04]
+            cbz     w0, G_M2442_IG04
                        ;; size=36 bbWeight=1 PerfScore 10.50
 G_M2442_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; byrRegs -[x1]
             mov     w1, #1
             strb    w1, [fp, #0x18]    // [V16 tmp14]
             mov     w1, #101
             str     w1, [fp, #0x1C]    // [V16 tmp14+0x04]
             ldr     x1, [fp, #0x18]    // [V16 tmp14]
+            mov     x0, x2
             movz    x2, #0xD1FFAB1E      // code for Helper:Compare(NotEmptyStructQ,NotEmptyStructQ):ubyte
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
             b       G_M2442_IG05
-                       ;; size=44 bbWeight=0.50 PerfScore 5.75
+                       ;; size=48 bbWeight=0.50 PerfScore 6.00
 G_M2442_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
@@ -71,7 +71,7 @@ G_M2442_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 104, prolog size 8, PerfScore 20.50, instruction count 26, allocated bytes for code 104 (MethodHash=b6abf675) for method NullableTest:BoxUnboxToQ(System.ValueType):ubyte (FullOpts)
+; Total bytes of code 108, prolog size 8, PerfScore 20.75, instruction count 27, allocated bytes for code 108 (MethodHash=b6abf675) for method NullableTest:BoxUnboxToQ(System.ValueType):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -82,7 +82,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 26 (0x0001a) Actual length = 104 (0x000068)
+  Function Length   : 27 (0x0001b) Actual length = 108 (0x00006c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+5.88%) : 444581.dasm - SP1d:M(int,int,int,int,int,int,int):int (FullOpts)

@@ -8,50 +8,46 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )     int  ->   x0         single-def
-;  V01 arg1         [V01,T02] (  3,  3   )     int  ->   x1         single-def
+;  V01 arg1         [V01,T02] (  3,  3   )     int  ->   x7         single-def
 ;  V02 arg2         [V02,T03] (  3,  3   )     int  ->   x2         single-def
 ;  V03 arg3         [V03,T04] (  3,  3   )     int  ->   x3         single-def
 ;  V04 arg4         [V04,T05] (  3,  3   )     int  ->   x4         single-def
-;  V05 arg5         [V05,T06] (  3,  3   )     int  ->   x5         single-def
+;  V05 arg5         [V05,T06] (  3,  3   )     int  ->   x8         single-def
 ;  V06 arg6         [V06,T07] (  3,  3   )     int  ->   x6         single-def
 ;* V07 loc0         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <SP1d+S>
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V09 tmp1         [V09,T13] (  2,  2   )     int  ->   x3         single-def "field V07.i0 (fldOffset=0x0)" P-INDEP
-;  V10 tmp2         [V10,T14] (  2,  2   )     int  ->   x2         single-def "field V07.i1 (fldOffset=0x4)" P-INDEP
+;  V09 tmp1         [V09,T08] (  2,  2   )     int  ->   x3         single-def "field V07.i0 (fldOffset=0x0)" P-INDEP
+;  V10 tmp2         [V10,T09] (  2,  2   )     int  ->   x2         single-def "field V07.i1 (fldOffset=0x4)" P-INDEP
 ;  V11 tmp3         [V11,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <SP1d+S>
-;  V12 tmp4         [V12,T08] (  2,  4   )     int  ->   x1         "argument with side effect"
-;  V13 tmp5         [V13,T09] (  2,  4   )     int  ->   x7         "argument with side effect"
-;  V14 tmp6         [V14,T10] (  2,  4   )     int  ->   x4         "argument with side effect"
-;  V15 tmp7         [V15,T11] (  2,  4   )     int  ->   x5         "argument with side effect"
-;  V16 tmp8         [V16,T12] (  2,  4   )     int  ->   x6         "argument with side effect"
 ;
 ; Lcl frame size = 16
 
 G_M13440_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
+            mov     w7, w1
+            mov     w8, w5
+                       ;; size=16 bbWeight=1 PerfScore 2.50
 G_M13440_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            sxtw    w7, w0
             stp     w3, w2, [fp, #0x18]    // [V11 tmp3], [V11 tmp3+0x04]
-            mov     w0, w1
-            mov     w1, w7
-            mov     w2, w4
-            mov     w3, w5
-            mov     w4, w6
             ldr     x5, [fp, #0x18]    // [V11 tmp3]
+            mov     w1, w0
+            mov     w2, w4
+            mov     w3, w8
+            mov     w4, w6
+            mov     w0, w7
             movz    x6, #0xD1FFAB1E      // code for <unknown method>
             movk    x6, #0xD1FFAB1E LSL #16
             movk    x6, #0xD1FFAB1E LSL #32
             ldr     x6, [x6]
             blr     x6
-                       ;; size=52 bbWeight=1 PerfScore 11.50
+                       ;; size=48 bbWeight=1 PerfScore 11.00
 G_M13440_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 68, prolog size 8, PerfScore 15.00, instruction count 17, allocated bytes for code 68 (MethodHash=0379cb7f) for method SP1d:M(int,int,int,int,int,int,int):int (FullOpts)
+; Total bytes of code 72, prolog size 8, PerfScore 15.50, instruction count 18, allocated bytes for code 72 (MethodHash=0379cb7f) for method SP1d:M(int,int,int,int,int,int,int):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -62,7 +58,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 17 (0x00011) Actual length = 68 (0x000044)
+  Function Length   : 18 (0x00012) Actual length = 72 (0x000048)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+36 (+13.85%) : 543758.dasm - (dynamicClass):ABIStress_TailCaller965(ABIStress.S12U,System.Int128,System.Numerics.Vector1[int],ABIStress.S9U,ABIStress.I128_1,ABIStress.S4U,ABIStress.S13U,ABIStress.Hfa2,ABIStress.S5U,double,ABIStress.S6U,ABIStress.Hfa2,System.Runtime.Intrinsics.Vector1281[int],ubyte,long):int (FullOpts)

@@ -8,17 +8,17 @@
 ; 0 inlinees with PGO data; 6 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T02] (  4,  4   )  struct (16) [fp+0x40]  do-not-enreg[SFA] multireg-arg single-def <ABIStress.S12U>
+;  V00 arg0         [V00,T02] (  4,  4   )  struct (16) [fp+0x50]  do-not-enreg[SFA] multireg-arg single-def <ABIStress.S12U>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Int128>
 ;* V02 arg2         [V02    ] (  0,  0   )  simd16  ->  zero-ref    HFA(simd16)  single-def <System.Numerics.Vector`1[int]>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SA] multireg-arg single-def <ABIStress.S9U>
 ;* V04 arg4         [V04    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SA] multireg-arg single-def <ABIStress.I128_1>
-;  V05 arg5         [V05,T12] (  1,  1   )  struct ( 8) [fp+0x50]  do-not-enreg[S] single-def <ABIStress.S4U>
+;  V05 arg5         [V05,T09] (  1,  1   )  struct ( 8) [fp+0x60]  do-not-enreg[S] single-def <ABIStress.S4U>
 ;* V06 arg6         [V06    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] single-def <ABIStress.S13U>
 ;* V07 arg7         [V07    ] (  0,  0   )  struct (32) zero-ref    HFA(double)  multireg-arg single-def <ABIStress.Hfa2>
-;  V08 arg8         [V08,T11] (  2,  2   )  struct ( 8) [fp+0x68]  do-not-enreg[S] single-def <ABIStress.S5U>
+;  V08 arg8         [V08,T10] (  1,  1   )  struct ( 8) [fp+0x78]  do-not-enreg[S] single-def <ABIStress.S5U>
 ;* V09 arg9         [V09    ] (  0,  0   )  double  ->  zero-ref    single-def
-;  V10 arg10        [V10,T13] (  1,  1   )  struct ( 8) [fp+0x70]  do-not-enreg[S] single-def <ABIStress.S6U>
+;  V10 arg10        [V10,T11] (  1,  1   )  struct ( 8) [fp+0x80]  do-not-enreg[S] single-def <ABIStress.S6U>
 ;* V11 arg11        [V11    ] (  0,  0   )  struct (32) zero-ref    HFA(double)  do-not-enreg[S] single-def <ABIStress.Hfa2>
 ;* V12 arg12        [V12    ] (  0,  0   )  simd16  ->  zero-ref    HFA(simd16)  single-def <System.Runtime.Intrinsics.Vector128`1[int]>
 ;* V13 arg13        [V13    ] (  0,  0   )   ubyte  ->  zero-ref    single-def
@@ -33,134 +33,139 @@
 ;* V22 tmp7         [V22    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <ABIStress.S4P>
 ;* V23 tmp8         [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <ABIStress.S1P>
 ;* V24 tmp9         [V24    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <ABIStress.S8P>
-;  V25 tmp10        [V25,T00] ( 13, 26   )  struct (16) [fp+0x30]  do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <ABIStress.S11U>
+;  V25 tmp10        [V25,T00] ( 13, 26   )  struct (16) [fp+0x40]  do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <ABIStress.S11U>
 ;* V26 tmp11        [V26    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <ABIStress.S1P>
-;* V27 tmp12        [V27,T14] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V28 tmp13        [V28,T15] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V29 tmp14        [V29,T16] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V30 tmp15        [V30,T17] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V31 tmp16        [V31,T18] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V32 tmp17        [V32,T19] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V33 tmp18        [V33,T20] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V34 tmp19        [V34,T21] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V35 tmp20        [V35,T22] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V36 tmp21        [V36,T23] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V37 tmp22        [V37,T24] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V38 tmp23        [V38,T25] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V39 tmp24        [V39,T26] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V40 tmp25        [V40,T27] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V41 tmp26        [V41,T28] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V42 tmp27        [V42,T29] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;  V43 tmp28        [V43,T09] (  1,  1   )    long  ->   x2         single-def "field V01._lower (fldOffset=0x0)" P-INDEP
-;  V44 tmp29        [V44,T10] (  1,  1   )    long  ->   x3         single-def "field V01._upper (fldOffset=0x8)" P-INDEP
-;  V45 tmp30        [V45,T41] (  1,  1   )  double  ->   d1         single-def "field V07.F0 (fldOffset=0x0)" P-INDEP
-;  V46 tmp31        [V46,T42] (  1,  1   )  double  ->   d2         single-def "field V07.F1 (fldOffset=0x8)" P-INDEP
-;  V47 tmp32        [V47,T43] (  1,  1   )  double  ->   d3         single-def "field V07.F2 (fldOffset=0x10)" P-INDEP
-;  V48 tmp33        [V48,T39] (  2,  2   )  double  ->   d4         single-def "field V07.F3 (fldOffset=0x18)" P-INDEP
-;* V49 tmp34        [V49,T30] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V16.F0 (fldOffset=0x0)" P-INDEP
-;* V50 tmp35        [V50,T31] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V16.F1 (fldOffset=0x1)" P-INDEP
-;* V51 tmp36        [V51,T32] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V17.F0 (fldOffset=0x0)" P-INDEP
-;* V52 tmp37        [V52,T33] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V17.F1 (fldOffset=0x1)" P-INDEP
-;* V53 tmp38        [V53,T34] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V17.F2 (fldOffset=0x2)" P-INDEP
+;* V27 tmp12        [V27,T12] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V28 tmp13        [V28,T13] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V29 tmp14        [V29,T14] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V30 tmp15        [V30,T15] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V31 tmp16        [V31,T16] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V32 tmp17        [V32,T17] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V33 tmp18        [V33,T18] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V34 tmp19        [V34,T19] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V35 tmp20        [V35,T20] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V36 tmp21        [V36,T21] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V37 tmp22        [V37,T22] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V38 tmp23        [V38,T23] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V39 tmp24        [V39,T24] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V40 tmp25        [V40,T25] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V41 tmp26        [V41,T26] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V42 tmp27        [V42,T27] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;  V43 tmp28        [V43,T07] (  1,  1   )    long  ->   x2         single-def "field V01._lower (fldOffset=0x0)" P-INDEP
+;  V44 tmp29        [V44,T08] (  1,  1   )    long  ->   x3         single-def "field V01._upper (fldOffset=0x8)" P-INDEP
+;  V45 tmp30        [V45,T37] (  1,  1   )  double  ->   d1         single-def "field V07.F0 (fldOffset=0x0)" P-INDEP
+;  V46 tmp31        [V46,T38] (  1,  1   )  double  ->   d2         single-def "field V07.F1 (fldOffset=0x8)" P-INDEP
+;  V47 tmp32        [V47,T39] (  1,  1   )  double  ->   d3         single-def "field V07.F2 (fldOffset=0x10)" P-INDEP
+;  V48 tmp33        [V48,T36] (  3,  3   )  double  ->   d4         single-def "field V07.F3 (fldOffset=0x18)" P-INDEP
+;* V49 tmp34        [V49,T28] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V16.F0 (fldOffset=0x0)" P-INDEP
+;* V50 tmp35        [V50,T29] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V16.F1 (fldOffset=0x1)" P-INDEP
+;* V51 tmp36        [V51,T30] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V17.F0 (fldOffset=0x0)" P-INDEP
+;* V52 tmp37        [V52,T31] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V17.F1 (fldOffset=0x1)" P-INDEP
+;* V53 tmp38        [V53,T32] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V17.F2 (fldOffset=0x2)" P-INDEP
 ;* V54 tmp39        [V54    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V18.F0 (fldOffset=0x0)" P-INDEP
 ;* V55 tmp40        [V55    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V18.F1 (fldOffset=0x1)" P-INDEP
-;* V56 tmp41        [V56,T35] (  0,  0   )     int  ->  zero-ref    single-def "field V19.F0 (fldOffset=0x0)" P-INDEP
+;* V56 tmp41        [V56,T33] (  0,  0   )     int  ->  zero-ref    single-def "field V19.F0 (fldOffset=0x0)" P-INDEP
 ;* V57 tmp42        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V20.F0 (fldOffset=0x0)" P-INDEP
 ;* V58 tmp43        [V58    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V20.F1 (fldOffset=0x1)" P-INDEP
 ;* V59 tmp44        [V59    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V20.F2 (fldOffset=0x2)" P-INDEP
-;* V60 tmp45        [V60,T36] (  0,  0   )    long  ->  zero-ref    single-def "field V21.F0 (fldOffset=0x0)" P-INDEP
+;* V60 tmp45        [V60,T34] (  0,  0   )    long  ->  zero-ref    single-def "field V21.F0 (fldOffset=0x0)" P-INDEP
 ;* V61 tmp46        [V61    ] (  0,  0   )     int  ->  zero-ref    single-def "field V22.F0 (fldOffset=0x0)" P-INDEP
-;* V62 tmp47        [V62,T37] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V23.F0 (fldOffset=0x0)" P-INDEP
+;* V62 tmp47        [V62,T35] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V23.F0 (fldOffset=0x0)" P-INDEP
 ;* V63 tmp48        [V63    ] (  0,  0   )    long  ->  zero-ref    single-def "field V24.F0 (fldOffset=0x0)" P-INDEP
 ;* V64 tmp49        [V64    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V26.F0 (fldOffset=0x0)" P-INDEP
-;  V65 tmp50        [V65,T03] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S2U>
-;  V66 tmp51        [V66,T01] (  4,  8   )  struct ( 8) [fp+0x20]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S3U>
-;  V67 tmp52        [V67,T40] (  2,  4   )  double  ->   d0         "argument with side effect"
-;  V68 tmp53        [V68,T04] (  2,  4   )    long  ->   x0         "argument with side effect"
-;  V69 tmp54        [V69,T05] (  2,  4   )    long  ->   x1         "argument with side effect"
-;  V70 tmp55        [V70,T06] (  2,  4   )    long  ->   x2         "argument with side effect"
-;  V71 tmp56        [V71,T38] (  3,  6   )  double  ->   d0         "argument with side effect"
-;  V72 tmp57        [V72,T07] (  2,  4   )     int  ->   x5         "argument with side effect"
-;  V73 rat0         [V73,T08] (  2,  4   )  struct ( 8) [fp+0x18]  do-not-enreg[S] "Fast tail call lowering is creating a new local variable" <ABIStress.S4U>
+;  V65 tmp50        [V65,T03] (  3,  6   )  struct ( 8) [fp+0x38]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S2U>
+;  V66 tmp51        [V66,T01] (  4,  8   )  struct ( 8) [fp+0x30]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S3U>
+;  V67 rat0         [V67,T05] (  2,  4   )  struct ( 8) [fp+0x28]  do-not-enreg[S] "Fast tail call lowering is creating a new local variable" <ABIStress.S4U>
+;  V68 rat1         [V68,T04] (  3,  6   )  struct ( 8) [fp+0x20]  do-not-enreg[S] "Fast tail call lowering is creating a new local variable" <ABIStress.S5U>
+;  V69 rat2         [V69,T06] (  2,  4   )  struct ( 8) [fp+0x18]  do-not-enreg[S] "Fast tail call lowering is creating a new local variable" <ABIStress.S6U>
 ;
-; Lcl frame size = 64
+; Lcl frame size = 80
 
 G_M63761_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x50]!
+            stp     fp, lr, [sp, #-0x60]!
             mov     fp, sp
-            stp     x0, x1, [fp, #0x40]    // [V00 arg0], [V00 arg0+0x08]
+            stp     x0, x1, [fp, #0x50]    // [V00 arg0], [V00 arg0+0x08]
                        ;; size=12 bbWeight=1 PerfScore 2.50
 G_M63761_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            str     xzr, [fp, #0x30]
-            str     wzr, [fp, #0x37]
-            mov     w0, #62
-            strb    w0, [fp, #0x30]    // [V25 tmp10]
-            mov     w0, #133
-            strb    w0, [fp, #0x31]    // [V25 tmp10+0x01]
-            mov     w0, #188
-            strb    w0, [fp, #0x32]    // [V25 tmp10+0x02]
-            mov     w0, #17
-            strb    w0, [fp, #0x33]    // [V25 tmp10+0x03]
-            mov     w0, #44
-            strb    w0, [fp, #0x34]    // [V25 tmp10+0x04]
-            mov     w0, #182
-            strb    w0, [fp, #0x35]    // [V25 tmp10+0x05]
-            mov     w0, #76
-            strb    w0, [fp, #0x36]    // [V25 tmp10+0x06]
-            mov     w0, #121
-            strb    w0, [fp, #0x37]    // [V25 tmp10+0x07]
-            mov     w0, #144
-            strb    w0, [fp, #0x38]    // [V25 tmp10+0x08]
-            mov     w0, #100
-            strb    w0, [fp, #0x39]    // [V25 tmp10+0x09]
-            mov     w0, #75
-            strb    w0, [fp, #0x3A]    // [V25 tmp10+0x0a]
-            fmov    d0, d4
-            ldp     x1, x0, [fp, #0x68]    // [V08 arg8], [V10 arg10]
-            ldr     x2, [fp, #0x68]    // [V08 arg8]
+            str     xzr, [fp, #0x40]
+            str     wzr, [fp, #0x47]
+            mov     w4, #62
+            strb    w4, [fp, #0x40]    // [V25 tmp10]
+            mov     w4, #133
+            strb    w4, [fp, #0x41]    // [V25 tmp10+0x01]
+            mov     w4, #188
+            strb    w4, [fp, #0x42]    // [V25 tmp10+0x02]
+            mov     w4, #17
+            strb    w4, [fp, #0x43]    // [V25 tmp10+0x03]
+            mov     w4, #44
+            strb    w4, [fp, #0x44]    // [V25 tmp10+0x04]
+            mov     w4, #182
+            strb    w4, [fp, #0x45]    // [V25 tmp10+0x05]
+            mov     w4, #76
+            strb    w4, [fp, #0x46]    // [V25 tmp10+0x06]
+            mov     w4, #121
+            strb    w4, [fp, #0x47]    // [V25 tmp10+0x07]
+            mov     w4, #144
+            strb    w4, [fp, #0x48]    // [V25 tmp10+0x08]
+            mov     w4, #100
+            strb    w4, [fp, #0x49]    // [V25 tmp10+0x09]
+            mov     w4, #75
+            strb    w4, [fp, #0x4A]    // [V25 tmp10+0x0a]
             mov     w4, #176
-            strb    w4, [fp, #0x28]    // [V65 tmp50]
+            strb    w4, [fp, #0x38]    // [V65 tmp50]
             mov     w4, #110
-            strb    w4, [fp, #0x29]    // [V65 tmp50+0x01]
-            ldrb    w5, [fp, #0x42]    // [V00 arg0+0x02]
+            strb    w4, [fp, #0x39]    // [V65 tmp50+0x01]
             mov     w4, #238
-            strb    w4, [fp, #0x20]    // [V66 tmp51]
+            strb    w4, [fp, #0x30]    // [V66 tmp51]
             mov     w4, #21
-            strb    w4, [fp, #0x21]    // [V66 tmp51+0x01]
+            strb    w4, [fp, #0x31]    // [V66 tmp51+0x01]
             mov     w4, #79
-            strb    w4, [fp, #0x22]    // [V66 tmp51+0x02]
+            strb    w4, [fp, #0x32]    // [V66 tmp51+0x02]
             nop     
-                       ;; size=156 bbWeight=1 PerfScore 34.00
+                       ;; size=140 bbWeight=1 PerfScore 26.50
 G_M63761_IG03:        ; bbWeight=1, nogc, extend
-            ldr     w4, [fp, #0x50]    // [V05 arg5]
-            str     w4, [fp, #0x18]    // [V73 rat0]
+            ldr     w4, [fp, #0x60]    // [V05 arg5]
+            str     w4, [fp, #0x28]    // [V67 rat0]
+            ldr     w4, [fp, #0x78]
+            str     w4, [fp, #0x20]
+            ldrb    w4, [fp, #0x7C]
+            strb    w4, [fp, #0x24]
+            ldr     w4, [fp, #0x80]
+            str     w4, [fp, #0x18]
+            ldrh    w4, [fp, #0x84]
+            strh    w4, [fp, #0x1C]
             movz    w4, #0xD1FFAB1E
             movk    w4, #0xD1FFAB1E LSL #16
-            str     w4, [fp, #0x50]    // [V05 arg5]
+            str     w4, [fp, #0x60]    // [V05 arg5]
             movz    x4, #0xD1FFAB1E
             movk    x4, #0xD1FFAB1E LSL #16
             movk    x4, #0xD1FFAB1E LSL #32
             movk    x4, #0xD1FFAB1E LSL #48
-            str     x4, [fp, #0x58]    // [V05 arg5+0x08]
+            str     x4, [fp, #0x68]    // [V05 arg5+0x08]
             mov     w4, #229
-            str     w4, [fp, #0x60]    // [V05 arg5+0x10]
-            ldp     x4, x6, [fp, #0x30]    // [V25 tmp10]
-            stp     x4, x6, [fp, #0x68]    // [V05 arg5+0x18]
-            ldrb    w4, [fp, #0x45]    // [V00 arg0+0x05]
-            str     w4, [fp, #0x78]    // [V05 arg5+0x28]
-            fmov    d1, d0
-            ldrh    w4, [fp, #0x28]    // [V65 tmp50]
-            ldr     w6, [fp, #0x20]    // [V66 tmp51]
-            ldr     w7, [fp, #0x18]    // [V73 rat0]
+            str     w4, [fp, #0x70]    // [V05 arg5+0x10]
+            ldp     x4, x6, [fp, #0x40]    // [V25 tmp10]
+            stp     x4, x6, [fp, #0x78]    // [V05 arg5+0x18]
+            ldrb    w4, [fp, #0x55]    // [V00 arg0+0x05]
+            str     w4, [fp, #0x88]    // [V05 arg5+0x28]
+            ldrh    w4, [fp, #0x38]    // [V65 tmp50]
+            ldr     w6, [fp, #0x30]    // [V66 tmp51]
+            ldr     x1, [fp, #0x20]    // [V68 rat1]
+            mov     x2, x1
+            fmov    d1, d4
+            fmov    d0, d4
+            ldrb    w5, [fp, #0x52]    // [V00 arg0+0x02]
+            ldr     x0, [fp, #0x18]    // [V69 rat2]
+            ldr     w7, [fp, #0x28]    // [V67 rat0]
             mov     w3, #0xD1FFAB1E
-                       ;; size=84 bbWeight=1 PerfScore 23.50
+                       ;; size=136 bbWeight=1 PerfScore 42.50
 G_M63761_IG04:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x50
+            ldp     fp, lr, [sp], #0x60
             b       <unknown method>
             ; gcr arg pop 0
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
...

libraries.crossgen2.linux.arm64.checked.mch

-12 (-21.43%) : 188789.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)

@@ -11,38 +11,34 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Nullable`1[System.DateTime]>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
-;  V04 tmp2         [V04,T03] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
-;* V05 tmp3         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp4         [V06,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
-;  V07 tmp5         [V07,T01] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V08 tmp6         [V08,T00] (  4,  8   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.Nullable`1[System.DateTime]>
+;  V03 tmp1         [V03,T01] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
+;  V04 tmp2         [V04,T02] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
+;* V05 tmp3         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
+;  V07 tmp5         [V07,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M46195_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M46195_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            strb    w0, [fp, #0x18]    // [V08 tmp6]
-            str     x1, [fp, #0x20]    // [V08 tmp6+0x08]
-            strb    wzr, [fp, #0x28]   // [V07 tmp5]
-            strb    wzr, [fp, #0x29]   // [V07 tmp5+0x01]
-            ldrh    w2, [fp, #0x28]    // [V07 tmp5]
-            ldp     x0, x1, [fp, #0x18]    // [V08 tmp6], [V08 tmp6+0x08]
+            strb    wzr, [fp, #0x18]   // [V07 tmp5]
+            strb    wzr, [fp, #0x19]   // [V07 tmp5+0x01]
+            ldrh    w2, [fp, #0x18]    // [V07 tmp5]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x3, [x11]
             blr     x3
             ; gcrRegs +[x0]
-                       ;; size=40 bbWeight=1 PerfScore 14.00
+                       ;; size=28 bbWeight=1 PerfScore 9.00
 G_M46195_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x30
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 56, prolog size 8, PerfScore 17.50, instruction count 14, allocated bytes for code 56 (MethodHash=8d094b8c) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)
+; Total bytes of code 44, prolog size 8, PerfScore 12.50, instruction count 11, allocated bytes for code 44 (MethodHash=8d094b8c) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +49,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 14 (0x0000e) Actual length = 56 (0x000038)
+  Function Length   : 11 (0x0000b) Actual length = 44 (0x00002c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -61,7 +57,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

-12 (-21.43%) : 188814.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)

@@ -11,38 +11,34 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Nullable`1[ulong]>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
-;  V04 tmp2         [V04,T03] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
-;* V05 tmp3         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp4         [V06,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
-;  V07 tmp5         [V07,T01] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V08 tmp6         [V08,T00] (  4,  8   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.Nullable`1[ulong]>
+;  V03 tmp1         [V03,T01] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
+;  V04 tmp2         [V04,T02] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
+;* V05 tmp3         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
+;  V07 tmp5         [V07,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M16550_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M16550_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            strb    w0, [fp, #0x18]    // [V08 tmp6]
-            str     x1, [fp, #0x20]    // [V08 tmp6+0x08]
-            strb    wzr, [fp, #0x28]   // [V07 tmp5]
-            strb    wzr, [fp, #0x29]   // [V07 tmp5+0x01]
-            ldrh    w2, [fp, #0x28]    // [V07 tmp5]
-            ldp     x0, x1, [fp, #0x18]    // [V08 tmp6], [V08 tmp6+0x08]
+            strb    wzr, [fp, #0x18]   // [V07 tmp5]
+            strb    wzr, [fp, #0x19]   // [V07 tmp5+0x01]
+            ldrh    w2, [fp, #0x18]    // [V07 tmp5]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x3, [x11]
             blr     x3
             ; gcrRegs +[x0]
-                       ;; size=40 bbWeight=1 PerfScore 14.00
+                       ;; size=28 bbWeight=1 PerfScore 9.00
 G_M16550_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x30
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 56, prolog size 8, PerfScore 17.50, instruction count 14, allocated bytes for code 56 (MethodHash=b260bf59) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)
+; Total bytes of code 44, prolog size 8, PerfScore 12.50, instruction count 11, allocated bytes for code 44 (MethodHash=b260bf59) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +49,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 14 (0x0000e) Actual length = 56 (0x000038)
+  Function Length   : 11 (0x0000b) Actual length = 44 (0x00002c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -61,7 +57,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

-12 (-21.43%) : 188803.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[long]):System.Text.Json.Nodes.JsonNode (FullOpts)

@@ -11,38 +11,34 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Nullable`1[long]>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
-;  V04 tmp2         [V04,T03] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
-;* V05 tmp3         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp4         [V06,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
-;  V07 tmp5         [V07,T01] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V08 tmp6         [V08,T00] (  4,  8   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.Nullable`1[long]>
+;  V03 tmp1         [V03,T01] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
+;  V04 tmp2         [V04,T02] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
+;* V05 tmp3         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
+;  V07 tmp5         [V07,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M61747_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M61747_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            strb    w0, [fp, #0x18]    // [V08 tmp6]
-            str     x1, [fp, #0x20]    // [V08 tmp6+0x08]
-            strb    wzr, [fp, #0x28]   // [V07 tmp5]
-            strb    wzr, [fp, #0x29]   // [V07 tmp5+0x01]
-            ldrh    w2, [fp, #0x28]    // [V07 tmp5]
-            ldp     x0, x1, [fp, #0x18]    // [V08 tmp6], [V08 tmp6+0x08]
+            strb    wzr, [fp, #0x18]   // [V07 tmp5]
+            strb    wzr, [fp, #0x19]   // [V07 tmp5+0x01]
+            ldrh    w2, [fp, #0x18]    // [V07 tmp5]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x3, [x11]
             blr     x3
             ; gcrRegs +[x0]
-                       ;; size=40 bbWeight=1 PerfScore 14.00
+                       ;; size=28 bbWeight=1 PerfScore 9.00
 G_M61747_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x30
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 56, prolog size 8, PerfScore 17.50, instruction count 14, allocated bytes for code 56 (MethodHash=5fc80ecc) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[long]):System.Text.Json.Nodes.JsonNode (FullOpts)
+; Total bytes of code 44, prolog size 8, PerfScore 12.50, instruction count 11, allocated bytes for code 44 (MethodHash=5fc80ecc) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[long]):System.Text.Json.Nodes.JsonNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +49,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 14 (0x0000e) Actual length = 56 (0x000038)
+  Function Length   : 11 (0x0000b) Actual length = 44 (0x00002c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -61,7 +57,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

+24 (+5.83%) : 141890.dasm - System.Reflection.Metadata.Ecma335.CustomAttributeDecoder1[System.__Canon]:DecodeFixedArguments(byref,byref,int,System.Reflection.Metadata.BlobReader):System.Collections.Immutable.ImmutableArray1[System.Reflection.Metadata.CustomAttributeTypedArgument`1[System.__Canon]]:this (FullOpts)

@@ -8,61 +8,59 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4, 10   )   byref  ->  x19         this single-def
-;  V01 TypeCtx      [V01,T15] (  6,  4.50)    long  ->  x24         single-def
-;  V02 arg1         [V02,T05] (  3,  6   )   byref  ->  x21         single-def
-;  V03 arg2         [V03,T06] (  3,  6   )   byref  ->  x22         single-def
-;  V04 arg3         [V04,T07] (  6,  8   )     int  ->  x23         single-def
-;  V05 arg4         [V05,T03] (  3, 12   )   byref  ->  x20         single-def
-;  V06 loc0         [V06,T16] (  3,  5   )     ref  ->  x25         class-hnd single-def <<unknown class>>
-;  V07 loc1         [V07,T04] (  4, 12.50)     int  ->  x26        
-;  V08 loc2         [V08    ] (  2,  8   )  struct (24) [fp+0x50]  do-not-enreg[XS] must-init addr-exposed <System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1+ArgumentTypeInfo[System.__Canon]>
+;  V00 this         [V00,T04] (  4, 10   )   byref  ->  x20         this single-def
+;  V01 TypeCtx      [V01,T11] (  6,  4.50)    long  ->  x24         single-def
+;  V02 arg1         [V02,T07] (  3,  6   )   byref  ->  x22         single-def
+;  V03 arg2         [V03,T08] (  3,  6   )   byref  ->  x23         single-def
+;  V04 arg3         [V04,T05] (  6,  8   )     int  ->  x21         single-def
+;  V05 arg4         [V05,T02] (  3, 12   )   byref  ->  x19         single-def
+;  V06 loc0         [V06,T12] (  3,  5   )     ref  ->  x25         class-hnd single-def <<unknown class>>
+;  V07 loc1         [V07,T03] (  4, 12.50)     int  ->  x26        
+;  V08 loc2         [V08    ] (  2,  8   )  struct (24) [fp+0x48]  do-not-enreg[XS] must-init addr-exposed <System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1+ArgumentTypeInfo[System.__Canon]>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret "Return value temp for multireg return" <System.Reflection.Metadata.CustomAttributeTypedArgument`1[System.__Canon]>
 ;  V11 tmp2         [V11,T09] (  2,  8   )     ref  ->   x0         "field V10.<Type>k__BackingField (fldOffset=0x0)" P-INDEP
 ;  V12 tmp3         [V12,T10] (  2,  8   )     ref  ->   x2         "field V10.<Value>k__BackingField (fldOffset=0x8)" P-INDEP
-;  V13 tmp4         [V13,T17] (  2,  2   )    long  ->   x0         "argument with side effect"
-;  V14 tmp5         [V14    ] (  2, 16   )  struct (32) [fp+0x30]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Reflection.Metadata.BlobReader>
-;  V15 tmp6         [V15,T01] (  2, 16   )    long  ->   x1         "argument with side effect"
-;* V16 tmp7         [V16,T11] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V17 tmp8         [V17,T12] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;  V18 tmp9         [V18    ] (  2, 16   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1+ArgumentTypeInfo[System.__Canon]>
-;  V19 tmp10        [V19,T02] (  2, 16   )    long  ->   x1         "argument with side effect"
-;* V20 tmp11        [V20,T13] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V21 tmp12        [V21,T14] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;  V22 cse0         [V22,T08] (  3,  8.50)    long  ->  x24         hoist "CSE - aggressive"
+;  V13 tmp4         [V13,T14] (  2,  2   )    long  ->   x0         "argument with side effect"
+;  V14 tmp5         [V14    ] (  2, 16   )  struct (32) [fp+0x28]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Reflection.Metadata.BlobReader>
+;  V15 tmp6         [V15,T00] (  2, 16   )    long  ->   x1         "argument with side effect"
+;  V16 tmp7         [V16    ] (  2, 16   )  struct (24) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1+ArgumentTypeInfo[System.__Canon]>
+;  V17 tmp8         [V17,T01] (  2, 16   )    long  ->   x1         "argument with side effect"
+;  V18 cse0         [V18,T06] (  3,  8.50)    long  ->  x24         hoist "CSE - aggressive"
+;  V19 cse1         [V19,T13] (  2,  4.50)    long  ->  x27         hoist "CSE - aggressive"
 ;
-; Lcl frame size = 96
+; Lcl frame size = 88
 
 G_M22533_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0xB0]!
-            stp     x19, x20, [sp, #0x70]
-            stp     x21, x22, [sp, #0x80]
-            stp     x23, x24, [sp, #0x90]
-            stp     x25, x26, [sp, #0xA0]
+            stp     x19, x20, [sp, #0x68]
+            stp     x21, x22, [sp, #0x78]
+            stp     x23, x24, [sp, #0x88]
+            stp     x25, x26, [sp, #0x98]
+            str     x27, [sp, #0xA8]
             mov     fp, sp
-            add     x9, fp, #24
+            add     x9, fp, #16
             movi    v16.16b, #0
             stp     q16, q16, [x9]
             stp     q16, q16, [x9, #0x20]
             stp     xzr, xzr, [x9, #0x40]
-            str     x1, [fp, #0x68]
-            mov     x19, x0
-            ; byrRegs +[x19]
-            mov     x24, x1
-            mov     x21, x2
-            ; byrRegs +[x21]
-            mov     x22, x3
-            ; byrRegs +[x22]
-            mov     w23, w4
-            mov     x20, x5
+            str     x1, [fp, #0x60]
+            mov     x20, x0
             ; byrRegs +[x20]
-                       ;; size=72 bbWeight=1 PerfScore 13.50
-G_M22533_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=780000 {x19 x20 x21 x22}, byref, isz
-            cbnz    w23, G_M22533_IG05
+            mov     x24, x1
+            mov     x22, x2
+            ; byrRegs +[x22]
+            mov     x23, x3
+            ; byrRegs +[x23]
+            mov     w21, w4
+            mov     x19, x5
+            ; byrRegs +[x19]
+                       ;; size=76 bbWeight=1 PerfScore 14.50
+G_M22533_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=D80000 {x19 x20 x22 x23}, byref, isz
+            cbnz    w21, G_M22533_IG05
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M22533_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; byrRegs -[x19-x22]
+            ; byrRegs -[x19-x20 x22-x23]
             mov     x0, x24
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
@@ -79,22 +77,23 @@ G_M22533_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ldr     x0, [x0, #0x08]
                        ;; size=44 bbWeight=0.50 PerfScore 8.25
 G_M22533_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     x25, x26, [sp, #0xA0]
-            ldp     x23, x24, [sp, #0x90]
-            ldp     x21, x22, [sp, #0x80]
-            ldp     x19, x20, [sp, #0x70]
+            ldr     x27, [sp, #0xA8]
+            ldp     x25, x26, [sp, #0x98]
+            ldp     x23, x24, [sp, #0x88]
+            ldp     x21, x22, [sp, #0x78]
+            ldp     x19, x20, [sp, #0x68]
             ldp     fp, lr, [sp], #0xB0
             ret     lr
-                       ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M22533_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=780000 {x19 x20 x21 x22}, gcvars, byref, isz
+                       ;; size=28 bbWeight=0.50 PerfScore 4.00
+G_M22533_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=D80000 {x19 x20 x22 x23}, gcvars, byref, isz
             ; gcrRegs -[x0]
-            ; byrRegs +[x19-x22]
+            ; byrRegs +[x19-x20 x22-x23]
             mov     x0, x24
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x1, [x11]
             blr     x1
-            mov     w1, w23
+            mov     w1, w21
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x2, [x11]
@@ -103,7 +102,7 @@ G_M22533_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             mov     x25, x0
             ; gcrRegs +[x25]
             mov     w26, wzr
-            cmp     w23, #0
+            cmp     w21, #0
             ble     G_M22533_IG09
             mov     x0, x24
             ; gcrRegs -[x0]
@@ -112,36 +111,39 @@ G_M22533_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     x1, [x11]
             blr     x1
             mov     x24, x0
-                       ;; size=80 bbWeight=0.50 PerfScore 9.75
-G_M22533_IG06:        ; bbWeight=4, gcrefRegs=2000000 {x25}, byrefRegs=780000 {x19 x20 x21 x22}, byref
+            adrp    x27, [HIGH RELOC #0xD1FFAB1E]
+            add     x27, x27, [LOW RELOC #0xD1FFAB1E]
+                       ;; size=88 bbWeight=0.50 PerfScore 10.25
+G_M22533_IG06:        ; bbWeight=4, gcrefRegs=2000000 {x25}, byrefRegs=D80000 {x19 x20 x22 x23}, byref
             mov     x1, x24
-            ldp     q16, q17, [x20]
-            stp     q16, q17, [fp, #0x30]
-            add     x3, fp, #48    // [V14 tmp5]
-            mov     x0, x19
+            ldp     x3, x8, [x19]
+            stp     x3, x8, [fp, #0x28]
+            ldp     x3, x8, [x19, #0x10]
+            stp     x3, x8, [fp, #0x38]
+            add     x3, fp, #40    // [V14 tmp5]
+            add     x8, fp, #72    // [V08 loc2]
+            mov     x0, x20
             ; byrRegs +[x0]
-            mov     x2, x21
+            mov     x2, x22
             ; byrRegs +[x2]
-            add     x8, fp, #80    // [V08 loc2]
-            adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
-            add     x11, x11, [LOW RELOC #0xD1FFAB1E]
+            mov     x11, x27
             mov     w4, wzr
             ldr     x5, [x11]
             blr     x5
             ; byrRegs -[x0 x2]
             mov     x1, x24
-                       ;; size=52 bbWeight=4 PerfScore 50.00
+                       ;; size=56 bbWeight=4 PerfScore 72.00
 G_M22533_IG07:        ; bbWeight=4, nogc, extend
-            ldp     x0, x2, [fp, #0x50]
-            stp     x0, x2, [fp, #0x18]
-            ldr     x0, [fp, #0x60]
-            str     x0, [fp, #0x28]
+            ldp     x0, x2, [fp, #0x48]
+            stp     x0, x2, [fp, #0x10]
+            ldr     x0, [fp, #0x58]
+            str     x0, [fp, #0x20]
                        ;; size=16 bbWeight=4 PerfScore 28.00
 G_M22533_IG08:        ; bbWeight=4, isz, extend
-            add     x3, fp, #24    // [V18 tmp9]
-            mov     x0, x19
+            add     x3, fp, #16    // [V16 tmp7]
+            mov     x0, x20
             ; byrRegs +[x0]
-            mov     x2, x22
+            mov     x2, x23
             ; byrRegs +[x2]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
@@ -160,11 +162,11 @@ G_M22533_IG08:        ; bbWeight=4, isz, extend
             blr     x3
             ; gcrRegs -[x0-x2]
             add     w26, w26, #1
-            cmp     w26, w23
+            cmp     w26, w21
             blt     G_M22533_IG06
                        ;; size=72 bbWeight=4 PerfScore 72.00
 G_M22533_IG09:        ; bbWeight=0.50, gcrefRegs=2000000 {x25}, byrefRegs=0000 {}, byref
-            ; byrRegs -[x19-x22]
+            ; byrRegs -[x19-x20 x22-x23]
             mov     x0, x25
             ; gcrRegs +[x0]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -175,26 +177,27 @@ G_M22533_IG09:        ; bbWeight=0.50, gcrefRegs=2000000 {x25}, byrefRegs=0000 {
             ; gcrRegs -[x25]
                        ;; size=24 bbWeight=0.50 PerfScore 4.25
 G_M22533_IG10:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     x25, x26, [sp, #0xA0]
-            ldp     x23, x24, [sp, #0x90]
-            ldp     x21, x22, [sp, #0x80]
-            ldp     x19, x20, [sp, #0x70]
+            ldr     x27, [sp, #0xA8]
+            ldp     x25, x26, [sp, #0x98]
+            ldp     x23, x24, [sp, #0x88]
+            ldp     x21, x22, [sp, #0x78]
+            ldp     x19, x20, [sp, #0x68]
             ldp     fp, lr, [sp], #0xB0
             ret     lr
-                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+                       ;; size=28 bbWeight=0.50 PerfScore 4.00
 
-; Total bytes of code 412, prolog size 48, PerfScore 192.75, instruction count 103, allocated bytes for code 412 (MethodHash=ae16a7fa) for method System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1[System.__Canon]:DecodeFixedArguments(byref,byref,int,System.Reflection.Metadata.BlobReader):System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.CustomAttributeTypedArgument`1[System.__Canon]]:this (FullOpts)
+; Total bytes of code 436, prolog size 52, PerfScore 218.25, instruction count 109, allocated bytes for code 436 (MethodHash=ae16a7fa) for method System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1[System.__Canon]:DecodeFixedArguments(byref,byref,int,System.Reflection.Metadata.BlobReader):System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.CustomAttributeTypedArgument`1[System.__Canon]]:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 3
   Epilog Count      : 2
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 103 (0x00067) Actual length = 412 (0x00019c)
+  Function Length   : 109 (0x0006d) Actual length = 436 (0x0001b4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -205,10 +208,13 @@ Unwind Info:
   ---- Unwind codes ----
...

+20 (+6.02%) : 72648.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)

@@ -9,8 +9,8 @@
 ; 0 inlinees with PGO data; 11 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
-;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression>
+;  V00 this         [V00,T01] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
+;  V01 arg1         [V01,T00] ( 12, 12   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (24) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -23,7 +23,7 @@
 ;* V11 tmp7         [V11    ] (  0,  0   )  struct (24) zero-ref    "impAppendStmt" <Microsoft.CodeAnalysis.BitVector>
 ;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    single-def "Inline return value spill temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;  V13 tmp9         [V13    ] (  4,  6   )  struct ( 8) [fp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V14 tmp10        [V14,T03] (  2,  4   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V14 tmp10        [V14,T02] (  2,  4   )     ref  ->   x1         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V15 tmp11        [V15    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V02.array (fldOffset=0x0)" P-INDEP
 ;* V16 tmp12        [V16    ] (  0,  0   )     ref  ->  zero-ref    "field V05.array (fldOffset=0x0)" P-INDEP
 ;* V17 tmp13        [V17    ] (  0,  0   )     ref  ->  zero-ref    "field V07.array (fldOffset=0x0)" P-INDEP
@@ -32,16 +32,14 @@
 ;* V20 tmp16        [V20    ] (  0,  0   )     ref  ->  zero-ref    "field V11._bits (fldOffset=0x0)" P-INDEP
 ;* V21 tmp17        [V21    ] (  0,  0   )    long  ->  zero-ref    "field V11._bits0 (fldOffset=0x8)" P-INDEP
 ;* V22 tmp18        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V11._capacity (fldOffset=0x10)" P-INDEP
-;  V23 tmp19        [V23,T10] (  3,  2   )     ref  ->   x2         single-def "field V12.array (fldOffset=0x0)" P-INDEP
+;  V23 tmp19        [V23,T08] (  3,  2   )     ref  ->   x2         single-def "field V12.array (fldOffset=0x0)" P-INDEP
 ;  V24 tmp20        [V24    ] (  4,  4   )     ref  ->  [fp+0x30]  do-not-enreg[X] addr-exposed "field V13.array (fldOffset=0x0)" P-DEP
 ;  V25 tmp21        [V25    ] (  2,  4   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
-;  V26 tmp22        [V26,T00] (  9, 18   )     ref  ->  x19         single-def "argument with side effect"
-;  V27 tmp23        [V27,T04] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V28 tmp24        [V28,T05] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
-;  V29 tmp25        [V29,T06] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V30 tmp26        [V30,T07] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
-;  V31 tmp27        [V31,T09] (  2,  4   )     int  ->   x5         "argument with side effect"
-;  V32 tmp28        [V32,T08] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
+;  V26 tmp22        [V26,T03] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
+;  V27 tmp23        [V27,T04] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
+;  V28 tmp24        [V28,T05] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
+;  V29 tmp25        [V29,T07] (  2,  4   )     int  ->   x6         "argument with side effect"
+;  V30 tmp26        [V30,T06] (  2,  4   )     ref  ->   x7         single-def "argument with side effect"
 ;
 ; Lcl frame size = 64
 
@@ -100,14 +98,9 @@ G_M12801_IG04:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
                        ;; size=40 bbWeight=0.50 PerfScore 6.00
 G_M12801_IG05:        ; bbWeight=1, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
-            ldr     x0, [x19, #0x18]
-            ; gcrRegs +[x0]
-            ldrsb   wzr, [x20]
-            adrp    x1, [HIGH RELOC #0xD1FFAB1E]      // const ptr
-            add     x1, x1, [LOW RELOC #0xD1FFAB1E]
-            ldr     x1, [x1]
-            ldr     x1, [x19, x1]
+            ldr     x1, [x19, #0x18]
             ; gcrRegs +[x1]
+            ldrsb   wzr, [x20]
             adrp    x3, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x3, x3, [LOW RELOC #0xD1FFAB1E]
             ldr     x3, [x3]
@@ -121,44 +114,56 @@ G_M12801_IG05:        ; bbWeight=1, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=000
             adrp    x5, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x5, x5, [LOW RELOC #0xD1FFAB1E]
             ldr     x5, [x5]
-            ldrb    w5, [x19, x5]
+            ldr     x5, [x19, x5]
+            ; gcrRegs +[x5]
             adrp    x6, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x6, x6, [LOW RELOC #0xD1FFAB1E]
             ldr     x6, [x6]
-            ldr     x6, [x19, x6]
-            ; gcrRegs +[x6]
+            ldrb    w6, [x19, x6]
             adrp    x7, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x7, x7, [LOW RELOC #0xD1FFAB1E]
             ldr     x7, [x7]
-            add     x7, x19, x7
-            ; byrRegs +[x7]
-                       ;; size=104 bbWeight=1 PerfScore 45.50
-G_M12801_IG06:        ; bbWeight=1, nogc, extend
-            ldp     x8, x11, [x7]
-            stp     x8, x11, [fp, #0x18]
-            ldr     x8, [x7, #0x10]
-            str     x8, [fp, #0x28]
-                       ;; size=16 bbWeight=1 PerfScore 9.00
-G_M12801_IG07:        ; bbWeight=1, extend
-            adrp    x7, [HIGH RELOC #0xD1FFAB1E]      // const ptr
-            ; byrRegs -[x7]
-            add     x7, x7, [LOW RELOC #0xD1FFAB1E]
-            ldr     x7, [x7]
             ldr     x7, [x19, x7]
             ; gcrRegs +[x7]
-            str     x7, [sp]   // [V04 OutArgs]
-            mov     x7, xzr
-            str     x7, [sp, #0x08]    // [V04 OutArgs+0x08]
-            str     x0, [sp, #0x10]    // [V04 OutArgs+0x10]
-            mov     x0, x19
+            adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
+            add     x0, x0, [LOW RELOC #0xD1FFAB1E]
+            ldr     x0, [x0]
+            add     x0, x19, x0
+            ; byrRegs +[x0]
+                       ;; size=104 bbWeight=1 PerfScore 45.50
+G_M12801_IG06:        ; bbWeight=1, nogc, extend
+            ldp     x8, x11, [x0]
+            stp     x8, x11, [fp, #0x18]
+            ldr     x8, [x0, #0x10]
+            str     x8, [fp, #0x28]
+                       ;; size=16 bbWeight=1 PerfScore 9.00
+G_M12801_IG07:        ; bbWeight=1, extend
+            adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
+            ; byrRegs -[x0]
+            add     x0, x0, [LOW RELOC #0xD1FFAB1E]
+            ldr     x0, [x0]
+            ldr     x0, [x19, x0]
+            ; gcrRegs +[x0]
+            str     x0, [sp]   // [V04 OutArgs]
+            mov     x0, xzr
+            str     x0, [sp, #0x08]    // [V04 OutArgs+0x08]
+            str     x1, [sp, #0x10]    // [V04 OutArgs+0x10]
+            mov     x1, x3
+            mov     x3, x4
+            mov     x4, x5
+            mov     w5, w6
+            ; gcrRegs -[x5]
+            mov     x6, x7
+            ; gcrRegs +[x6]
             add     x7, fp, #24    // [V25 tmp21]
             ; gcrRegs -[x7]
+            mov     x0, x19
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x8, [x11]
             blr     x8
             ; gcrRegs -[x1-x4 x6 x19-x20]
-                       ;; size=56 bbWeight=1 PerfScore 16.50
+                       ;; size=76 bbWeight=1 PerfScore 19.00
 G_M12801_IG08:        ; bbWeight=1, epilog, nogc, extend
             ldp     x19, x20, [sp, #0x50]
             ldp     fp, lr, [sp, #0x18]
@@ -166,7 +171,7 @@ G_M12801_IG08:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=16 bbWeight=1 PerfScore 3.50
 
-; Total bytes of code 332, prolog size 28, PerfScore 107.50, instruction count 83, allocated bytes for code 332 (MethodHash=9e98cdfe) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
+; Total bytes of code 352, prolog size 28, PerfScore 110.00, instruction count 88, allocated bytes for code 352 (MethodHash=9e98cdfe) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -177,7 +182,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 83 (0x00053) Actual length = 332 (0x00014c)
+  Function Length   : 88 (0x00058) Actual length = 352 (0x000160)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+7.14%) : 88016.dasm - Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable1[int]):this (FullOpts)

@@ -8,7 +8,7 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel>
+;  V00 this         [V00,T01] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
 ;* V02 arg2         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <Microsoft.CodeAnalysis.ISymbol>
 ;  V03 arg3         [V03,T04] (  3,  3   )   ubyte  ->   x3         single-def
@@ -17,33 +17,30 @@
 ;* V06 arg6         [V06    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Nullable`1[int]>
 ;* V07 loc0         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[int]>
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V09 tmp1         [V09,T05] (  2,  2   )     ref  ->   x5         single-def "field V05._source (fldOffset=0x0)" P-INDEP
-;* V10 tmp2         [V10,T11] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V07.hasValue (fldOffset=0x0)" P-INDEP
-;* V11 tmp3         [V11,T12] (  0,  0   )     int  ->  zero-ref    single-def "field V07.value (fldOffset=0x4)" P-INDEP
-;  V12 tmp4         [V12,T01] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
-;* V13 tmp5         [V13,T10] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V14 tmp6         [V14,T06] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V15 tmp7         [V15,T09] (  2,  4   )     int  ->   x2         "argument with side effect"
-;  V16 tmp8         [V16,T07] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V17 tmp9         [V17,T08] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
+;  V09 tmp1         [V09,T05] (  2,  2   )     ref  ->  x11         single-def "field V05._source (fldOffset=0x0)" P-INDEP
+;* V10 tmp2         [V10,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V07.hasValue (fldOffset=0x0)" P-INDEP
+;* V11 tmp3         [V11,T07] (  0,  0   )     int  ->  zero-ref    single-def "field V07.value (fldOffset=0x4)" P-INDEP
+;  V12 tmp4         [V12,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
 ;
 ; Lcl frame size = 16
 
 G_M26014_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M26014_IG02:        ; bbWeight=1, gcrefRegs=0033 {x0 x1 x4 x5}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x0-x1 x4-x5]
-            uxtb    w2, w3
-            mov     x3, x4
-            ; gcrRegs +[x3]
-            mov     x4, x5
+            mov     x11, x5
+            ; gcrRegs +[x11]
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M26014_IG02:        ; bbWeight=1, gcrefRegs=0813 {x0 x1 x4 x11}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[x0-x1 x4]
             strb    wzr, [fp, #0x18]   // [V12 tmp4]
             str     wzr, [fp, #0x1C]   // [V12 tmp4+0x04]
             ldr     x5, [fp, #0x18]    // [V12 tmp4]
-            ; gcrRegs -[x5]
+            uxtb    w2, w3
+            mov     x3, x4
+            ; gcrRegs +[x3]
+            mov     x4, x11
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
+            ; gcrRegs -[x11]
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x6, [x11]
             blr     x6
@@ -54,7 +51,7 @@ G_M26014_IG03:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 56, prolog size 8, PerfScore 14.00, instruction count 14, allocated bytes for code 56 (MethodHash=5e2a9a61) for method Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable`1[int]):this (FullOpts)
+; Total bytes of code 60, prolog size 8, PerfScore 14.50, instruction count 15, allocated bytes for code 60 (MethodHash=5e2a9a61) for method Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable`1[int]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -65,7 +62,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 14 (0x0000e) Actual length = 56 (0x000038)
+  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries.pmi.linux.arm64.checked.mch

-12 (-20.00%) : 238105.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.DateTimeOffset):System.Text.Json.Nodes.JsonNode (FullOpts)

@@ -10,39 +10,35 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.DateTimeOffset>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  2,  2   )   short  ->   x0         single-def "field V00._offsetMinutes (fldOffset=0x0)" P-INDEP
-;  V04 tmp2         [V04,T03] (  2,  2   )    long  ->   x1         single-def "field V00._dateTime (fldOffset=0x8)" P-INDEP
-;* V05 tmp3         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp4         [V06,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
-;  V07 tmp5         [V07,T01] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V08 tmp6         [V08,T00] (  4,  8   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.DateTimeOffset>
+;  V03 tmp1         [V03,T01] (  2,  2   )   short  ->   x0         single-def "field V00._offsetMinutes (fldOffset=0x0)" P-INDEP
+;  V04 tmp2         [V04,T02] (  2,  2   )    long  ->   x1         single-def "field V00._dateTime (fldOffset=0x8)" P-INDEP
+;* V05 tmp3         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
+;  V07 tmp5         [V07,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M31891_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M31891_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            strh    w0, [fp, #0x18]    // [V08 tmp6]
-            str     x1, [fp, #0x20]    // [V08 tmp6+0x08]
-            strb    wzr, [fp, #0x28]   // [V07 tmp5]
-            strb    wzr, [fp, #0x29]   // [V07 tmp5+0x01]
-            ldp     x0, x1, [fp, #0x18]    // [V08 tmp6], [V08 tmp6+0x08]
-            ldrh    w2, [fp, #0x28]    // [V07 tmp5]
+            strb    wzr, [fp, #0x18]   // [V07 tmp5]
+            strb    wzr, [fp, #0x19]   // [V07 tmp5+0x01]
+            ldrh    w2, [fp, #0x18]    // [V07 tmp5]
             movz    x3, #0xD1FFAB1E      // code for System.Text.Json.Nodes.JsonValue:Create(System.DateTimeOffset,System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonValue
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs +[x0]
-                       ;; size=44 bbWeight=1 PerfScore 14.50
+                       ;; size=32 bbWeight=1 PerfScore 9.50
 G_M31891_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x30
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 60, prolog size 8, PerfScore 18.00, instruction count 15, allocated bytes for code 60 (MethodHash=d63e836c) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.DateTimeOffset):System.Text.Json.Nodes.JsonNode (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 13.00, instruction count 12, allocated bytes for code 48 (MethodHash=d63e836c) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.DateTimeOffset):System.Text.Json.Nodes.JsonNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +49,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
+  Function Length   : 12 (0x0000c) Actual length = 48 (0x000030)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -61,7 +57,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

-12 (-20.00%) : 238129.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)

@@ -10,39 +10,35 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Nullable`1[ulong]>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
-;  V04 tmp2         [V04,T03] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
-;* V05 tmp3         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp4         [V06,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
-;  V07 tmp5         [V07,T01] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V08 tmp6         [V08,T00] (  4,  8   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.Nullable`1[ulong]>
+;  V03 tmp1         [V03,T01] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
+;  V04 tmp2         [V04,T02] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
+;* V05 tmp3         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
+;  V07 tmp5         [V07,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M16550_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M16550_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            strb    w0, [fp, #0x18]    // [V08 tmp6]
-            str     x1, [fp, #0x20]    // [V08 tmp6+0x08]
-            strb    wzr, [fp, #0x28]   // [V07 tmp5]
-            strb    wzr, [fp, #0x29]   // [V07 tmp5+0x01]
-            ldp     x0, x1, [fp, #0x18]    // [V08 tmp6], [V08 tmp6+0x08]
-            ldrh    w2, [fp, #0x28]    // [V07 tmp5]
+            strb    wzr, [fp, #0x18]   // [V07 tmp5]
+            strb    wzr, [fp, #0x19]   // [V07 tmp5+0x01]
+            ldrh    w2, [fp, #0x18]    // [V07 tmp5]
             movz    x3, #0xD1FFAB1E      // code for System.Text.Json.Nodes.JsonValue:Create(System.Nullable`1[ulong],System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonValue
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs +[x0]
-                       ;; size=44 bbWeight=1 PerfScore 14.50
+                       ;; size=32 bbWeight=1 PerfScore 9.50
 G_M16550_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x30
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 60, prolog size 8, PerfScore 18.00, instruction count 15, allocated bytes for code 60 (MethodHash=b260bf59) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 13.00, instruction count 12, allocated bytes for code 48 (MethodHash=b260bf59) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +49,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
+  Function Length   : 12 (0x0000c) Actual length = 48 (0x000030)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -61,7 +57,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

-12 (-20.00%) : 238118.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[long]):System.Text.Json.Nodes.JsonNode (FullOpts)

@@ -10,39 +10,35 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Nullable`1[long]>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
-;  V04 tmp2         [V04,T03] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
-;* V05 tmp3         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp4         [V06,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
-;  V07 tmp5         [V07,T01] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V08 tmp6         [V08,T00] (  4,  8   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.Nullable`1[long]>
+;  V03 tmp1         [V03,T01] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
+;  V04 tmp2         [V04,T02] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
+;* V05 tmp3         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
+;  V07 tmp5         [V07,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M61747_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M61747_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            strb    w0, [fp, #0x18]    // [V08 tmp6]
-            str     x1, [fp, #0x20]    // [V08 tmp6+0x08]
-            strb    wzr, [fp, #0x28]   // [V07 tmp5]
-            strb    wzr, [fp, #0x29]   // [V07 tmp5+0x01]
-            ldp     x0, x1, [fp, #0x18]    // [V08 tmp6], [V08 tmp6+0x08]
-            ldrh    w2, [fp, #0x28]    // [V07 tmp5]
+            strb    wzr, [fp, #0x18]   // [V07 tmp5]
+            strb    wzr, [fp, #0x19]   // [V07 tmp5+0x01]
+            ldrh    w2, [fp, #0x18]    // [V07 tmp5]
             movz    x3, #0xD1FFAB1E      // code for System.Text.Json.Nodes.JsonValue:Create(System.Nullable`1[long],System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonValue
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs +[x0]
-                       ;; size=44 bbWeight=1 PerfScore 14.50
+                       ;; size=32 bbWeight=1 PerfScore 9.50
 G_M61747_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x30
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 60, prolog size 8, PerfScore 18.00, instruction count 15, allocated bytes for code 60 (MethodHash=5fc80ecc) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[long]):System.Text.Json.Nodes.JsonNode (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 13.00, instruction count 12, allocated bytes for code 48 (MethodHash=5fc80ecc) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[long]):System.Text.Json.Nodes.JsonNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +49,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
+  Function Length   : 12 (0x0000c) Actual length = 48 (0x000030)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -61,7 +57,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

+4 (+6.67%) : 178487.dasm - Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (FullOpts)

@@ -8,29 +8,30 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Microsoft.Cci.MetadataWriter>
-;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.Cci.ITypeDefinition>
+;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.Cci.ITypeDefinition>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03    ] (  2,  4   )  struct (48) [fp+0x10]  do-not-enreg[XS] addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.Emit.EmitContext>
-;  V04 tmp2         [V04,T02] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
 ;
 ; Lcl frame size = 48
 
 G_M23091_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M23091_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, nogc
-            ; gcrRegs +[x0-x1]
+            mov     x2, x1
+            ; gcrRegs +[x2]
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M23091_IG02:        ; bbWeight=1, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref, nogc
+            ; gcrRegs +[x0]
             ldp     q16, q17, [x0, #0xD0]
             stp     q16, q17, [fp, #0x10]
             ldr     q16, [x0, #0xF0]
             str     q16, [fp, #0x30]
                        ;; size=16 bbWeight=1 PerfScore 8.00
 G_M23091_IG03:        ; bbWeight=1, extend
-            mov     x0, x1
             add     x1, fp, #16    // [V03 tmp1]
-            ; gcrRegs -[x1]
+            mov     x0, x2
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            ; gcrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
@@ -42,7 +43,7 @@ G_M23091_IG04:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 60, prolog size 8, PerfScore 18.00, instruction count 15, allocated bytes for code 60 (MethodHash=af30a5cc) for method Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (FullOpts)
+; Total bytes of code 64, prolog size 8, PerfScore 18.50, instruction count 16, allocated bytes for code 64 (MethodHash=af30a5cc) for method Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +54,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
+  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+6.67%) : 220164.dasm - Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (FullOpts)

@@ -8,29 +8,30 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Microsoft.Cci.MetadataWriter>
-;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.Cci.ITypeDefinition>
+;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.Cci.ITypeDefinition>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03    ] (  2,  4   )  struct (48) [fp+0x10]  do-not-enreg[XS] addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.Emit.EmitContext>
-;  V04 tmp2         [V04,T02] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
 ;
 ; Lcl frame size = 48
 
 G_M23091_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M23091_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, nogc
-            ; gcrRegs +[x0-x1]
+            mov     x2, x1
+            ; gcrRegs +[x2]
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M23091_IG02:        ; bbWeight=1, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref, nogc
+            ; gcrRegs +[x0]
             ldp     q16, q17, [x0, #0xD0]
             stp     q16, q17, [fp, #0x10]
             ldr     q16, [x0, #0xF0]
             str     q16, [fp, #0x30]
                        ;; size=16 bbWeight=1 PerfScore 8.00
 G_M23091_IG03:        ; bbWeight=1, extend
-            mov     x0, x1
             add     x1, fp, #16    // [V03 tmp1]
-            ; gcrRegs -[x1]
+            mov     x0, x2
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            ; gcrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
@@ -42,7 +43,7 @@ G_M23091_IG04:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 60, prolog size 8, PerfScore 18.00, instruction count 15, allocated bytes for code 60 (MethodHash=af30a5cc) for method Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (FullOpts)
+; Total bytes of code 64, prolog size 8, PerfScore 18.50, instruction count 16, allocated bytes for code 64 (MethodHash=af30a5cc) for method Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +54,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
+  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+6.90%) : 62144.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:g_visitArgumentsAndUpdateCall|101(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)

@@ -8,9 +8,9 @@
 ; 0 inlinees with PGO data; 15 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
-;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
-;  V02 arg2         [V02,T03] (  3,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+;  V00 this         [V00,T01] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
+;  V01 arg1         [V01,T00] ( 15, 15   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
+;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (48) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -27,7 +27,7 @@
 ;* V16 tmp11        [V16    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
 ;* V17 tmp12        [V17    ] (  0,  0   )  struct ( 8) zero-ref    single-def "Inline return value spill temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V18 tmp13        [V18    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V19 tmp14        [V19,T04] (  2,  4   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V19 tmp14        [V19,T03] (  2,  4   )     ref  ->   x2         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V20 tmp15        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V03.array (fldOffset=0x0)" P-INDEP
 ;* V21 tmp16        [V21    ] (  0,  0   )     ref  ->  zero-ref    "field V06.array (fldOffset=0x0)" P-INDEP
 ;* V22 tmp17        [V22    ] (  0,  0   )     ref  ->  zero-ref    "field V08.array (fldOffset=0x0)" P-INDEP
@@ -37,30 +37,27 @@
 ;* V26 tmp21        [V26    ] (  0,  0   )    long  ->  zero-ref    "field V14._bits0 (fldOffset=0x8)" P-INDEP
 ;* V27 tmp22        [V27    ] (  0,  0   )     int  ->  zero-ref    "field V14._capacity (fldOffset=0x10)" P-INDEP
 ;* V28 tmp23        [V28    ] (  0,  0   )     ref  ->  zero-ref    "field V16.array (fldOffset=0x0)" P-INDEP
-;  V29 tmp24        [V29,T15] (  3,  2   )     ref  ->  x22         single-def "field V17.array (fldOffset=0x0)" P-INDEP
-;  V30 tmp25        [V30,T14] (  3,  2.50)     ref  ->   x2         single-def "field V18.array (fldOffset=0x0)" P-INDEP
-;  V31 tmp26        [V31    ] (  2,  4   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
-;  V32 tmp27        [V32,T00] ( 12, 24   )     ref  ->  x19         single-def "argument with side effect"
-;  V33 tmp28        [V33,T05] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V34 tmp29        [V34,T06] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
-;  V35 tmp30        [V35,T07] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V36 tmp31        [V36,T08] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
-;  V37 tmp32        [V37,T09] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
-;  V38 tmp33        [V38,T11] (  2,  4   )     int  ->   x6         "argument with side effect"
-;  V39 tmp34        [V39,T12] (  2,  4   )     int  ->   x7         "argument with side effect"
-;  V40 tmp35        [V40,T13] (  2,  4   )     int  ->   x8         "argument with side effect"
-;  V41 tmp36        [V41,T10] (  2,  4   )     ref  ->   x9         single-def "argument with side effect"
+;  V29 tmp24        [V29,T12] (  3,  2   )     ref  ->   x3         single-def "field V17.array (fldOffset=0x0)" P-INDEP
+;  V30 tmp25        [V30,T11] (  3,  2.50)     ref  ->   x2         single-def "field V18.array (fldOffset=0x0)" P-INDEP
+;  V31 tmp26        [V31    ] (  2,  4   )  struct (24) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
+;  V32 tmp27        [V32,T04] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
+;  V33 tmp28        [V33,T05] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
+;  V34 tmp29        [V34,T06] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
+;  V35 tmp30        [V35,T08] (  2,  4   )     int  ->   x7         "argument with side effect"
+;  V36 tmp31        [V36,T09] (  2,  4   )     int  ->   x0         "argument with side effect"
+;  V37 tmp32        [V37,T10] (  2,  4   )     int  ->   x1         "argument with side effect"
+;  V38 tmp33        [V38,T07] (  2,  4   )     ref  ->   x8         single-def "argument with side effect"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 72
 
 G_M26558_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            sub     sp, sp, #128
+            sub     sp, sp, #112
             stp     fp, lr, [sp, #0x30]
-            stp     x19, x20, [sp, #0x60]
-            stp     x21, x22, [sp, #0x70]
+            stp     x19, x20, [sp, #0x58]
+            str     x21, [sp, #0x68]
             add     fp, sp, #48
-            stp     xzr, xzr, [fp, #0x18]  // [V31 tmp26], [V31 tmp26+0x08]
-            str     xzr, [fp, #0x28]   // [V31 tmp26+0x10]
+            stp     xzr, xzr, [fp, #0x10]  // [V31 tmp26], [V31 tmp26+0x08]
+            str     xzr, [fp, #0x20]   // [V31 tmp26+0x10]
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     x19, x1
@@ -75,12 +72,12 @@ G_M26558_IG02:        ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=00
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M26558_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
-            mov     x22, xzr
-            ; gcrRegs +[x22]
+            mov     x3, xzr
+            ; gcrRegs +[x3]
             b       G_M26558_IG05
                        ;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M26558_IG04:        ; bbWeight=0.50, gcrefRegs=380004 {x2 x19 x20 x21}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x22] +[x2]
+            ; gcrRegs -[x3] +[x2]
             mov     x0, x20
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -92,73 +89,79 @@ G_M26558_IG04:        ; bbWeight=0.50, gcrefRegs=380004 {x2 x19 x20 x21}, byrefR
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs -[x2]
-            mov     x22, x0
-            ; gcrRegs +[x22]
-                       ;; size=40 bbWeight=0.50 PerfScore 4.00
-G_M26558_IG05:        ; bbWeight=1, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            ldr     x0, [x19, #0x18]
-            ; gcrRegs +[x0]
-            ldrsb   wzr, [x20]
-            mov     x1, x21
-            ; gcrRegs +[x1]
-            ldr     x2, [x19, #0x28]
-            ; gcrRegs +[x2]
-            mov     x3, x22
+            mov     x3, x0
             ; gcrRegs +[x3]
-            ldp     x4, x5, [x19, #0x40]
-            ; gcrRegs +[x4-x5]
-            ldrb    w6, [x19, #0x30]
-            ldrb    w7, [x19, #0x31]
-            ldrb    w8, [x19, #0x32]
-            ldr     x9, [x19, #0x50]
-            ; gcrRegs +[x9]
-                       ;; size=40 bbWeight=1 PerfScore 26.00
+                       ;; size=40 bbWeight=0.50 PerfScore 4.00
+G_M26558_IG05:        ; bbWeight=1, gcrefRegs=380008 {x3 x19 x20 x21}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0]
+            ldr     x2, [x19, #0x18]
+            ; gcrRegs +[x2]
+            ldrsb   wzr, [x20]
+            ldr     x4, [x19, #0x28]
+            ; gcrRegs +[x4]
+            ldp     x5, x6, [x19, #0x40]
+            ; gcrRegs +[x5-x6]
+            ldrb    w7, [x19, #0x30]
+            ldrb    w0, [x19, #0x31]
+            ldrb    w1, [x19, #0x32]
+            ldr     x8, [x19, #0x50]
+            ; gcrRegs +[x8]
+                       ;; size=32 bbWeight=1 PerfScore 25.00
 G_M26558_IG06:        ; bbWeight=1, nogc, extend
-            ldp     x10, x11, [x19, #0x58]
-            stp     x10, x11, [fp, #0x18]
-            ldr     x10, [x19, #0x68]
-            str     x10, [fp, #0x28]
+            ldp     x9, x10, [x19, #0x58]
+            stp     x9, x10, [fp, #0x10]
+            ldr     x9, [x19, #0x68]
+            str     x9, [fp, #0x20]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M26558_IG07:        ; bbWeight=1, extend
-            ldrb    w10, [x19, #0x33]
-            str     w10, [sp, #0x18]   // [V05 OutArgs+0x18]
-            ldr     x10, [x19, #0x70]
-            ; gcrRegs +[x10]
-            str     x10, [sp, #0x20]   // [V05 OutArgs+0x20]
-            str     x0, [sp, #0x28]    // [V05 OutArgs+0x28]
+            ldrb    w9, [x19, #0x33]
+            str     w9, [sp, #0x18]    // [V05 OutArgs+0x18]
+            ldr     x9, [x19, #0x70]
+            ; gcrRegs +[x9]
+            str     x9, [sp, #0x20]    // [V05 OutArgs+0x20]
+            str     x2, [sp, #0x28]    // [V05 OutArgs+0x28]
+            mov     x2, x4
+            mov     x4, x5
+            mov     x5, x6
+            mov     w6, w7
+            ; gcrRegs -[x6]
+            mov     w7, w0
+            str     w1, [sp]   // [V05 OutArgs]
+            str     x8, [sp, #0x08]    // [V05 OutArgs+0x08]
+            add     x0, fp, #16    // [V31 tmp26]
+            str     x0, [sp, #0x10]    // [V05 OutArgs+0x10]
             mov     x0, x19
-            str     w8, [sp]   // [V05 OutArgs]
-            str     x9, [sp, #0x08]    // [V05 OutArgs+0x08]
-            add     x8, fp, #24    // [V31 tmp26]
-            str     x8, [sp, #0x10]    // [V05 OutArgs+0x10]
+            ; gcrRegs +[x0]
+            mov     x1, x21
+            ; gcrRegs +[x1]
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
+            ; gcrRegs -[x8]
             movk    x8, #0xD1FFAB1E LSL #16
             movk    x8, #0xD1FFAB1E LSL #32
             ldr     x8, [x8]
             blr     x8
-            ; gcrRegs -[x1-x5 x9-x10 x19-x22]
-                       ;; size=60 bbWeight=1 PerfScore 18.50
+            ; gcrRegs -[x1-x5 x9 x19-x21]
+                       ;; size=84 bbWeight=1 PerfScore 21.50
 G_M26558_IG08:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x70]
-            ldp     x19, x20, [sp, #0x60]
+            ldr     x21, [sp, #0x68]
+            ldp     x19, x20, [sp, #0x58]
             ldp     fp, lr, [sp, #0x30]
-            add     sp, sp, #128
+            add     sp, sp, #112
             ret     lr
-                       ;; size=20 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 5.50
 
-; Total bytes of code 232, prolog size 28, PerfScore 74.25, instruction count 58, allocated bytes for code 232 (MethodHash=faef9841) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
+; Total bytes of code 248, prolog size 28, PerfScore 77.25, instruction count 62, allocated bytes for code 248 (MethodHash=faef9841) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 3
   Epilog Count      : 1
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 58 (0x0003a) Actual length = 232 (0x0000e8)
+  Function Length   : 62 (0x0003e) Actual length = 248 (0x0000f8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -166,9 +169,12 @@ Unwind Info:
   ---- Unwind codes ----
     E2 06       add_fp 6 (0x06); add fp, sp, #48
     ---- Epilog start at index 2 ----
-    E6          save_next
-    C8 0C       save_regp X#0 Z#12 (0x0C); stp x19, x20, [sp, #96]
+    D0 8D       save_reg X#2 Z#13 (0x0D); str x21, [sp, #104]
+    C8 0B       save_regp X#0 Z#11 (0x0B); stp x19, x20, [sp, #88]
     46          save_fplr #6 (0x06); stp fp, lr, [sp, #48]
-    08          alloc_s #8 (0x08); sub sp, sp, #128 (0x080)
+    07          alloc_s #7 (0x07); sub sp, sp, #112 (0x070)
+    E4          end
+    E4          end
+    E4          end
     E4          end
 

libraries_tests.run.linux.arm64.Release.mch

-40 (-27.03%) : 1503.dasm - Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Tier0)

@@ -5,72 +5,56 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] this class-hnd <Xunit.Sdk.TestCollection>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITestAssembly>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITypeInfo>
-;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x60]  do-not-enreg[] class-hnd <System.String>
-;  V04 loc0         [V04    ] (  1,  1   )  struct (24) [fp+0x48]  do-not-enreg[S] must-init ld-addr-op <System.Nullable`1[System.Guid]>
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] this class-hnd <Xunit.Sdk.TestCollection>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITestAssembly>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x48]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITypeInfo>
+;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x40]  do-not-enreg[] class-hnd <System.String>
+;  V04 loc0         [V04    ] (  1,  1   )  struct (24) [fp+0x28]  do-not-enreg[S] must-init ld-addr-op <System.Nullable`1[System.Guid]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06    ] (  1,  1   )  struct (24) [fp+0x30]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Nullable`1[System.Guid]>
-;  V07 tmp2         [V07    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V08 tmp3         [V08    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp4         [V09    ] (  1,  1   )     ref  ->  [fp+0x18]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp5         [V10    ] (  1,  1   )     ref  ->  [fp+0x10]  do-not-enreg[] must-init "argument with side effect"
+;  V06 tmp1         [V06    ] (  1,  1   )  struct (24) [fp+0x10]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Nullable`1[System.Guid]>
 ;
-; Lcl frame size = 112
+; Lcl frame size = 80
 
 G_M26555_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x80]!
+            stp     fp, lr, [sp, #-0x60]!
             mov     fp, sp
-            add     x9, fp, #16
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     q16, q16, [x9, #0x20]
-            stp     xzr, xzr, [x9, #0x40]
-            str     x0, [fp, #0x78]    // [V00 this]
-            str     x1, [fp, #0x70]    // [V01 arg1]
-            str     x2, [fp, #0x68]    // [V02 arg2]
-            str     x3, [fp, #0x60]    // [V03 arg3]
-                       ;; size=44 bbWeight=1 PerfScore 9.50
+            str     xzr, [fp, #0x28]   // [V04 loc0]
+            str     xzr, [fp, #0x30]   // [V04 loc0+0x08]
+            str     xzr, [fp, #0x38]   // [V04 loc0+0x10]
+            str     x0, [fp, #0x58]    // [V00 this]
+            str     x1, [fp, #0x50]    // [V01 arg1]
+            str     x2, [fp, #0x48]    // [V02 arg2]
+            str     x3, [fp, #0x40]    // [V03 arg3]
+                       ;; size=36 bbWeight=1 PerfScore 8.50
 G_M26555_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            stp     xzr, xzr, [fp, #0x48]
-            str     wzr, [fp, #0x58]
-            ldr     x0, [fp, #0x78]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x28]    // [V07 tmp2]
-            ldr     x0, [fp, #0x70]    // [V01 arg1]
-            str     x0, [fp, #0x20]    // [V08 tmp3]
-            ldr     x0, [fp, #0x68]    // [V02 arg2]
-            str     x0, [fp, #0x18]    // [V09 tmp4]
-            ldr     x0, [fp, #0x60]    // [V03 arg3]
-            str     x0, [fp, #0x10]    // [V10 tmp5]
-            ldp     x0, x1, [fp, #0x48]
-            ; gcrRegs -[x0]
-            stp     x0, x1, [fp, #0x30]
-            ldr     w0, [fp, #0x58]
-            str     w0, [fp, #0x40]
-            ldr     x0, [fp, #0x28]    // [V07 tmp2]
-            ; gcrRegs +[x0]
-            ldr     x1, [fp, #0x20]    // [V08 tmp3]
+            stp     xzr, xzr, [fp, #0x28]
+            str     wzr, [fp, #0x38]
+            ldp     x1, x2, [fp, #0x28]
+            stp     x1, x2, [fp, #0x10]
+            ldr     w1, [fp, #0x38]
+            str     w1, [fp, #0x20]
+            add     x4, fp, #16    // [V06 tmp1]
+            ldr     x1, [fp, #0x50]    // [V01 arg1]
             ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x18]    // [V09 tmp4]
+            ldr     x2, [fp, #0x48]    // [V02 arg2]
             ; gcrRegs +[x2]
-            ldr     x3, [fp, #0x10]    // [V10 tmp5]
+            ldr     x3, [fp, #0x40]    // [V03 arg3]
             ; gcrRegs +[x3]
-            add     x4, fp, #48    // [V06 tmp1]
+            ldr     x0, [fp, #0x58]    // [V00 this]
+            ; gcrRegs +[x0]
             movz    x5, #0xD1FFAB1E      // code for <unknown method>
             movk    x5, #0xD1FFAB1E LSL #16
             movk    x5, #0xD1FFAB1E LSL #32
             ldr     x5, [x5]
             blr     x5
             ; gcrRegs -[x0-x3]
-                       ;; size=96 bbWeight=1 PerfScore 35.00
+                       ;; size=64 bbWeight=1 PerfScore 23.00
 G_M26555_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x80
+            ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 148, prolog size 28, PerfScore 46.50, instruction count 37, allocated bytes for code 148 (MethodHash=cefa9844) for method Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Tier0)
+; Total bytes of code 108, prolog size 20, PerfScore 33.50, instruction count 27, allocated bytes for code 108 (MethodHash=cefa9844) for method Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -81,7 +65,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
+  Function Length   : 27 (0x0001b) Actual length = 108 (0x00006c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -89,7 +73,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    8F          save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
+    8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
     E4          end
     E4          end
 

-40 (-27.03%) : 8187.dasm - Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Instrumented Tier0)

@@ -5,72 +5,56 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] this class-hnd <Xunit.Sdk.TestCollection>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITestAssembly>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITypeInfo>
-;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x60]  do-not-enreg[] class-hnd <System.String>
-;  V04 loc0         [V04    ] (  1,  1   )  struct (24) [fp+0x48]  do-not-enreg[S] must-init ld-addr-op <System.Nullable`1[System.Guid]>
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] this class-hnd <Xunit.Sdk.TestCollection>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITestAssembly>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x48]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITypeInfo>
+;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x40]  do-not-enreg[] class-hnd <System.String>
+;  V04 loc0         [V04    ] (  1,  1   )  struct (24) [fp+0x28]  do-not-enreg[S] must-init ld-addr-op <System.Nullable`1[System.Guid]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06    ] (  1,  1   )  struct (24) [fp+0x30]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Nullable`1[System.Guid]>
-;  V07 tmp2         [V07    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V08 tmp3         [V08    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp4         [V09    ] (  1,  1   )     ref  ->  [fp+0x18]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp5         [V10    ] (  1,  1   )     ref  ->  [fp+0x10]  do-not-enreg[] must-init "argument with side effect"
+;  V06 tmp1         [V06    ] (  1,  1   )  struct (24) [fp+0x10]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Nullable`1[System.Guid]>
 ;
-; Lcl frame size = 112
+; Lcl frame size = 80
 
 G_M26555_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x80]!
+            stp     fp, lr, [sp, #-0x60]!
             mov     fp, sp
-            add     x9, fp, #16
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     q16, q16, [x9, #0x20]
-            stp     xzr, xzr, [x9, #0x40]
-            str     x0, [fp, #0x78]    // [V00 this]
-            str     x1, [fp, #0x70]    // [V01 arg1]
-            str     x2, [fp, #0x68]    // [V02 arg2]
-            str     x3, [fp, #0x60]    // [V03 arg3]
-                       ;; size=44 bbWeight=1 PerfScore 9.50
+            str     xzr, [fp, #0x28]   // [V04 loc0]
+            str     xzr, [fp, #0x30]   // [V04 loc0+0x08]
+            str     xzr, [fp, #0x38]   // [V04 loc0+0x10]
+            str     x0, [fp, #0x58]    // [V00 this]
+            str     x1, [fp, #0x50]    // [V01 arg1]
+            str     x2, [fp, #0x48]    // [V02 arg2]
+            str     x3, [fp, #0x40]    // [V03 arg3]
+                       ;; size=36 bbWeight=1 PerfScore 8.50
 G_M26555_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            stp     xzr, xzr, [fp, #0x48]
-            str     wzr, [fp, #0x58]
-            ldr     x0, [fp, #0x78]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x28]    // [V07 tmp2]
-            ldr     x0, [fp, #0x70]    // [V01 arg1]
-            str     x0, [fp, #0x20]    // [V08 tmp3]
-            ldr     x0, [fp, #0x68]    // [V02 arg2]
-            str     x0, [fp, #0x18]    // [V09 tmp4]
-            ldr     x0, [fp, #0x60]    // [V03 arg3]
-            str     x0, [fp, #0x10]    // [V10 tmp5]
-            ldp     x0, x1, [fp, #0x48]
-            ; gcrRegs -[x0]
-            stp     x0, x1, [fp, #0x30]
-            ldr     w0, [fp, #0x58]
-            str     w0, [fp, #0x40]
-            ldr     x0, [fp, #0x28]    // [V07 tmp2]
-            ; gcrRegs +[x0]
-            ldr     x1, [fp, #0x20]    // [V08 tmp3]
+            stp     xzr, xzr, [fp, #0x28]
+            str     wzr, [fp, #0x38]
+            ldp     x1, x2, [fp, #0x28]
+            stp     x1, x2, [fp, #0x10]
+            ldr     w1, [fp, #0x38]
+            str     w1, [fp, #0x20]
+            add     x4, fp, #16    // [V06 tmp1]
+            ldr     x1, [fp, #0x50]    // [V01 arg1]
             ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x18]    // [V09 tmp4]
+            ldr     x2, [fp, #0x48]    // [V02 arg2]
             ; gcrRegs +[x2]
-            ldr     x3, [fp, #0x10]    // [V10 tmp5]
+            ldr     x3, [fp, #0x40]    // [V03 arg3]
             ; gcrRegs +[x3]
-            add     x4, fp, #48    // [V06 tmp1]
+            ldr     x0, [fp, #0x58]    // [V00 this]
+            ; gcrRegs +[x0]
             movz    x5, #0xD1FFAB1E      // code for <unknown method>
             movk    x5, #0xD1FFAB1E LSL #16
             movk    x5, #0xD1FFAB1E LSL #32
             ldr     x5, [x5]
             blr     x5
             ; gcrRegs -[x0-x3]
-                       ;; size=96 bbWeight=1 PerfScore 35.00
+                       ;; size=64 bbWeight=1 PerfScore 23.00
 G_M26555_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x80
+            ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 148, prolog size 28, PerfScore 46.50, instruction count 37, allocated bytes for code 148 (MethodHash=cefa9844) for method Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Instrumented Tier0)
+; Total bytes of code 108, prolog size 20, PerfScore 33.50, instruction count 27, allocated bytes for code 108 (MethodHash=cefa9844) for method Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Instrumented Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -81,7 +65,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
+  Function Length   : 27 (0x0001b) Actual length = 108 (0x00006c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -89,7 +73,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    8F          save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
+    8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
     E4          end
     E4          end
 

-44 (-26.83%) : 42022.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Instrumented Tier0)

@@ -5,69 +5,52 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
-;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x60]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x58]  do-not-enreg[]
-;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x54]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x48]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
+;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x40]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
+;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x38]  do-not-enreg[]
+;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x34]  do-not-enreg[]
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x38]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-;  V08 tmp2         [V08    ] (  1,  1   )     ref  ->  [fp+0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp3         [V09    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp4         [V10    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V11 tmp5         [V11    ] (  1,  1   )     ref  ->  [fp+0x18]  do-not-enreg[] must-init "argument with side effect"
+;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;
-; Lcl frame size = 112
+; Lcl frame size = 80
 
 G_M19554_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x80]!
+            stp     fp, lr, [sp, #-0x60]!
             mov     fp, sp
-            add     x9, fp, #24
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     xzr, xzr, [x9, #0x20]
-            str     xzr, [x9, #0x30]
-            str     x0, [fp, #0x78]    // [V00 this]
-            str     x1, [fp, #0x70]    // [V01 arg1]
-            str     x2, [fp, #0x68]    // [V02 arg2]
-            str     x3, [fp, #0x60]    // [V03 arg3]
-            str     x4, [fp, #0x58]    // [V04 arg4]
-            str     w5, [fp, #0x54]    // [V05 arg5]
-                       ;; size=52 bbWeight=1 PerfScore 11.50
+            str     xzr, [fp, #0x18]   // [V07 tmp1]
+            str     xzr, [fp, #0x20]   // [V07 tmp1+0x08]
+            str     x0, [fp, #0x58]    // [V00 this]
+            str     x1, [fp, #0x50]    // [V01 arg1]
+            str     x2, [fp, #0x48]    // [V02 arg2]
+            str     x3, [fp, #0x40]    // [V03 arg3]
+            str     x4, [fp, #0x38]    // [V04 arg4]
+            str     w5, [fp, #0x34]    // [V05 arg5]
+                       ;; size=40 bbWeight=1 PerfScore 9.50
 G_M19554_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x78]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x30]    // [V08 tmp2]
-            ldr     x0, [fp, #0x70]    // [V01 arg1]
-            str     x0, [fp, #0x28]    // [V09 tmp3]
-            ldr     x0, [fp, #0x68]    // [V02 arg2]
-            str     x0, [fp, #0x20]    // [V10 tmp4]
-            ldr     x0, [fp, #0x60]    // [V03 arg3]
-            str     x0, [fp, #0x18]    // [V11 tmp5]
-            ldr     x0, [fp, #0x58]    // [V04 arg4]
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-                       ;; size=36 bbWeight=1 PerfScore 14.00
+            ldr     x5, [fp, #0x38]    // [V04 arg4]
+            ; byrRegs +[x5]
+                       ;; size=4 bbWeight=1 PerfScore 2.00
 G_M19554_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x1, x2, [x0]
-            stp     x1, x2, [fp, #0x38]
-            ldr     x1, [x0, #0x10]
-            str     x1, [fp, #0x48]
+            ldp     x1, x6, [x5]
+            stp     x1, x6, [fp, #0x18]
+            ldr     x1, [x5, #0x10]
+            str     x1, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M19554_IG04:        ; bbWeight=1, extend
-            ldr     x0, [fp, #0x30]    // [V08 tmp2]
-            ; gcrRegs +[x0]
-            ; byrRegs -[x0]
-            ldr     x1, [fp, #0x28]    // [V09 tmp3]
-            ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x20]    // [V10 tmp4]
-            ; gcrRegs +[x2]
-            ldr     x4, [fp, #0x18]    // [V11 tmp5]
-            ; gcrRegs +[x4]
-            add     x5, fp, #56    // [V07 tmp1]
-            ldr     w6, [fp, #0x54]    // [V05 arg5]
+            add     x5, fp, #24    // [V07 tmp1]
+            ; byrRegs -[x5]
+            ldr     w6, [fp, #0x34]    // [V05 arg5]
             uxtb    w6, w6
+            ldr     x1, [fp, #0x50]    // [V01 arg1]
+            ; gcrRegs +[x1]
+            ldr     x2, [fp, #0x48]    // [V02 arg2]
+            ; gcrRegs +[x2]
+            ldr     x4, [fp, #0x40]    // [V03 arg3]
+            ; gcrRegs +[x4]
+            ldr     x0, [fp, #0x58]    // [V00 this]
+            ; gcrRegs +[x0]
             mov     x3, xzr
             movz    x7, #0xD1FFAB1E      // code for <unknown method>
             movk    x7, #0xD1FFAB1E LSL #16
@@ -77,11 +60,11 @@ G_M19554_IG04:        ; bbWeight=1, extend
             ; gcrRegs -[x0-x2 x4]
                        ;; size=52 bbWeight=1 PerfScore 17.00
 G_M19554_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x80
+            ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 164, prolog size 28, PerfScore 53.50, instruction count 41, allocated bytes for code 164 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Instrumented Tier0)
+; Total bytes of code 120, prolog size 16, PerfScore 39.50, instruction count 30, allocated bytes for code 120 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Instrumented Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -92,7 +75,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
+  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -100,7 +83,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    8F          save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
+    8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
     E4          end
     E4          end
 

+36 (+6.43%) : 349954.dasm - System.Linq.Parallel.IndexedSelectQueryOperator2[int,System.Collections.Generic.KeyValuePair2[int,System.Collections.Generic.KeyValuePair2[int,int]]]:Open(System.Linq.Parallel.QuerySettings,ubyte):System.Linq.Parallel.QueryResults1[System.Collections.Generic.KeyValuePair2[int,System.Collections.Generic.KeyValuePair2[int,int]]]:this (Tier1)

@@ -9,38 +9,34 @@
 ;
 ;  V00 this         [V00,T01] (  6,  3.80)     ref  ->  x20         this class-hnd single-def <System.Linq.Parallel.IndexedSelectQueryOperator`2[int,System.Collections.Generic.KeyValuePair`2[int,System.Collections.Generic.KeyValuePair`2[int,int]]]>
 ;  V01 arg1         [V01,T00] (  7,  6   )   byref  ->  x19         single-def
-;  V02 arg2         [V02,T03] (  7,  3   )   ubyte  ->  x21         single-def
+;  V02 arg2         [V02,T04] (  7,  3   )   ubyte  ->  x21         single-def
 ;* V03 loc0         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <System.Linq.Parallel.QueryResults`1[int]>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05,T04] (  4,  5   )     ref  ->   x0         class-hnd single-def "spilling ret_expr" <System.Linq.Parallel.QueryOperator`1[int]>
-;  V06 tmp2         [V06,T06] (  6,  2.50)     ref  ->  x22         "guarded devirt return temp"
+;  V05 tmp1         [V05,T03] (  5,  5.40)     ref  ->   x0         class-hnd single-def "spilling ret_expr" <System.Linq.Parallel.QueryOperator`1[int]>
+;  V06 tmp2         [V06,T05] (  7,  3   )     ref  ->  x22         "guarded devirt return temp"
 ;* V07 tmp3         [V07    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Linq.Parallel.OrderingQueryOperator`1[int]>
-;  V08 tmp4         [V08,T15] (  3,  0.60)     ref  ->  x22         "guarded devirt return temp"
-;  V09 tmp5         [V09,T08] (  4,  1.80)     ref  ->   x0         single-def "guarded devirt arg temp"
+;  V08 tmp4         [V08,T11] (  3,  0.60)     ref  ->  x22         "guarded devirt return temp"
+;  V09 tmp5         [V09,T07] (  5,  2.02)     ref  ->   x0         single-def "guarded devirt arg temp"
 ;* V10 tmp6         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Linq.Parallel.OrderingQueryOperator`1[int]>
-;  V11 tmp7         [V11,T09] (  3,  1.50)     ref  ->  x24         class-hnd "Inline return value spill temp" <System.Linq.Parallel.QueryResults`1[System.Collections.Generic.KeyValuePair`2[int,System.Collections.Generic.KeyValuePair`2[int,int]]]>
-;  V12 tmp8         [V12,T07] (  6,  2.40)     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <System.Linq.Parallel.UnaryQueryOperator`2+UnaryQueryOperatorResults[int,System.Collections.Generic.KeyValuePair`2[int,System.Collections.Generic.KeyValuePair`2[int,int]]]>
-;  V13 tmp9         [V13,T02] (  9,  5.40)     ref  ->  x24         class-hnd exact single-def "NewObj constructor temp" <System.Linq.Parallel.IndexedSelectQueryOperator`2+IndexedSelectQueryOperatorResults[int,System.Collections.Generic.KeyValuePair`2[int,System.Collections.Generic.KeyValuePair`2[int,int]]]>
+;  V11 tmp7         [V11,T09] (  3,  1.50)     ref  ->  x23         class-hnd "Inline return value spill temp" <System.Linq.Parallel.QueryResults`1[System.Collections.Generic.KeyValuePair`2[int,System.Collections.Generic.KeyValuePair`2[int,int]]]>
+;  V12 tmp8         [V12,T06] (  6,  2.40)     ref  ->  x23         class-hnd exact single-def "NewObj constructor temp" <System.Linq.Parallel.UnaryQueryOperator`2+UnaryQueryOperatorResults[int,System.Collections.Generic.KeyValuePair`2[int,System.Collections.Generic.KeyValuePair`2[int,int]]]>
+;  V13 tmp9         [V13,T02] (  9,  5.40)     ref  ->  x23         class-hnd exact single-def "NewObj constructor temp" <System.Linq.Parallel.IndexedSelectQueryOperator`2+IndexedSelectQueryOperatorResults[int,System.Collections.Generic.KeyValuePair`2[int,System.Collections.Generic.KeyValuePair`2[int,int]]]>
 ;  V14 tmp10        [V14,T10] (  2,  1   )     int  ->   x0         "guarded devirt return temp"
 ;* V15 tmp11        [V15    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Linq.Parallel.ListQueryResults`1[int]>
-;  V16 tmp12        [V16,T16] (  3,  0.60)     int  ->   x0         "guarded devirt return temp"
-;  V17 tmp13        [V17,T11] (  3,  1.20)     ref  ->   x0         single-def "guarded devirt arg temp"
+;  V16 tmp12        [V16,T12] (  3,  0.60)     int  ->   x0         "guarded devirt return temp"
+;  V17 tmp13        [V17,T08] (  5,  1.80)     ref  ->   x0         single-def "guarded devirt arg temp"
 ;* V18 tmp14        [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "guarded devirt this exact temp" <System.Linq.Parallel.ListQueryResults`1[int]>
-;  V19 tmp15        [V19    ] (  6,  2   )  struct (48) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Linq.Parallel.QuerySettings>
-;  V20 tmp16        [V20,T12] (  3,  1.20)     ref  ->   x0         single-def "argument with side effect"
-;  V21 tmp17        [V21,T14] (  3,  0.67)     ref  ->   x0         single-def "argument with side effect"
-;  V22 tmp18        [V22,T13] (  2,  0.76)     ref  ->   x0         single-def "argument with side effect"
-;  V23 cse0         [V23,T05] (  5,  2.80)    long  ->  x23         "CSE - aggressive"
+;  V19 tmp15        [V19    ] (  6,  2   )  struct (48) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Linq.Parallel.QuerySettings>
 ;
-; Lcl frame size = 48
+; Lcl frame size = 56
 
 G_M27812_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x70]!
-            stp     x19, x20, [sp, #0x40]
-            stp     x21, x22, [sp, #0x50]
-            stp     x23, x24, [sp, #0x60]
+            stp     x19, x20, [sp, #0x48]
+            stp     x21, x22, [sp, #0x58]
+            str     x23, [sp, #0x68]
             mov     fp, sp
-            add     x9, fp, #16
+            add     x9, fp, #24
             movi    v16.16b, #0
             stp     q16, q16, [x9]
             stp     xzr, xzr, [x9, #0x20]
@@ -70,13 +66,15 @@ G_M27812_IG03:        ; bbWeight=0.30, gcrefRegs=100001 {x0 x20}, byrefRegs=8000
             bne     G_M27812_IG06
                        ;; size=28 bbWeight=0.30 PerfScore 2.70
 G_M27812_IG04:        ; bbWeight=0.19, gcrefRegs=100001 {x0 x20}, byrefRegs=80000 {x19}, byref, nogc
-            ldp     q16, q17, [x19]
-            stp     q16, q17, [fp, #0x10]
-            ldr     q16, [x19, #0x20]
-            str     q16, [fp, #0x30]
-                       ;; size=16 bbWeight=0.19 PerfScore 1.51
+            ldp     x1, x2, [x19]
+            stp     x1, x2, [fp, #0x18]
+            ldp     x1, x2, [x19, #0x10]
+            stp     x1, x2, [fp, #0x28]
+            ldp     x1, x2, [x19, #0x20]
+            stp     x1, x2, [fp, #0x38]
+                       ;; size=24 bbWeight=0.19 PerfScore 2.83
 G_M27812_IG05:        ; bbWeight=0.19, extend
-            add     x1, fp, #16    // [V19 tmp15]
+            add     x1, fp, #24    // [V19 tmp15]
             uxtb    w2, w21
             movz    x3, #0xD1FFAB1E      // code for System.Linq.Parallel.OrderingQueryOperator`1[int]:Open(System.Linq.Parallel.QuerySettings,ubyte):System.Linq.Parallel.QueryResults`1[int]:this
             movk    x3, #0xD1FFAB1E LSL #16
@@ -89,13 +87,15 @@ G_M27812_IG05:        ; bbWeight=0.19, extend
                        ;; size=36 bbWeight=0.19 PerfScore 1.51
 G_M27812_IG06:        ; bbWeight=0.11, gcrefRegs=100001 {x0 x20}, byrefRegs=80000 {x19}, byref, nogc
             ; gcrRegs -[x22]
-            ldp     q16, q17, [x19]
-            stp     q16, q17, [fp, #0x10]
-            ldr     q16, [x19, #0x20]
-            str     q16, [fp, #0x30]
-                       ;; size=16 bbWeight=0.11 PerfScore 0.89
+            ldp     x1, x2, [x19]
+            stp     x1, x2, [fp, #0x18]
+            ldp     x1, x2, [x19, #0x10]
+            stp     x1, x2, [fp, #0x28]
+            ldp     x1, x2, [x19, #0x20]
+            stp     x1, x2, [fp, #0x38]
+                       ;; size=24 bbWeight=0.11 PerfScore 1.67
 G_M27812_IG07:        ; bbWeight=0.11, extend
-            add     x1, fp, #16    // [V19 tmp15]
+            add     x1, fp, #24    // [V19 tmp15]
             uxtb    w2, w21
             ldr     x3, [x0]
             ldr     x3, [x3, #0x50]
@@ -110,13 +110,15 @@ G_M27812_IG08:        ; bbWeight=0.30, gcrefRegs=500000 {x20 x22}, byrefRegs=800
                        ;; size=4 bbWeight=0.30 PerfScore 0.30
 G_M27812_IG09:        ; bbWeight=0.20, gcrefRegs=100001 {x0 x20}, byrefRegs=80000 {x19}, byref, nogc
             ; gcrRegs -[x22] +[x0]
-            ldp     q16, q17, [x19]
-            stp     q16, q17, [fp, #0x10]
-            ldr     q16, [x19, #0x20]
-            str     q16, [fp, #0x30]
-                       ;; size=16 bbWeight=0.20 PerfScore 1.60
+            ldp     x1, x2, [x19]
+            stp     x1, x2, [fp, #0x18]
+            ldp     x1, x2, [x19, #0x10]
+            stp     x1, x2, [fp, #0x28]
+            ldp     x1, x2, [x19, #0x20]
+            stp     x1, x2, [fp, #0x38]
+                       ;; size=24 bbWeight=0.20 PerfScore 3.00
 G_M27812_IG10:        ; bbWeight=0.20, extend
-            add     x1, fp, #16    // [V19 tmp15]
+            add     x1, fp, #24    // [V19 tmp15]
             uxtb    w2, w21
             ldr     x3, [x0]
             ldr     x3, [x3, #0x50]
@@ -127,45 +129,46 @@ G_M27812_IG10:        ; bbWeight=0.20, extend
                        ;; size=28 bbWeight=0.20 PerfScore 2.30
 G_M27812_IG11:        ; bbWeight=1, gcrefRegs=500000 {x20 x22}, byrefRegs=80000 {x19}, byref, isz
             ; gcrRegs -[x0]
-            ldr     x23, [x22]
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            cmp     x23, x0
+            ldr     x0, [x22]
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #0xD1FFAB1E LSL #32
+            cmp     x0, x1
             beq     G_M27812_IG13
                        ;; size=24 bbWeight=1 PerfScore 6.00
 G_M27812_IG12:        ; bbWeight=0.50, gcrefRegs=500000 {x20 x22}, byrefRegs=80000 {x19}, byref, isz
             mov     x0, x22
             ; gcrRegs +[x0]
-            ldr     x1, [x23, #0x48]
+            ldr     x1, [x22]
+            ldr     x1, [x1, #0x48]
             ldr     x1, [x1, #0x28]
             blr     x1
             ; gcrRegs -[x0]
             cbz     w0, G_M27812_IG15
-                       ;; size=20 bbWeight=0.50 PerfScore 4.25
+                       ;; size=24 bbWeight=0.50 PerfScore 5.75
 G_M27812_IG13:        ; bbWeight=0.30, gcrefRegs=500000 {x20 x22}, byrefRegs=80000 {x19}, byref, isz
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
-            mov     x24, x0
-            ; gcrRegs +[x24]
-            add     x14, x24, #8
+            mov     x23, x0
+            ; gcrRegs +[x23]
+            add     x14, x23, #8
             ; byrRegs +[x14]
             mov     x15, x22
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15 x22]
             ; byrRegs -[x14]
-            add     x14, x24, #16
+            add     x14, x23, #16
             ; byrRegs +[x14]
             mov     x15, x20
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x14]
-            add     x14, x24, #32
+            add     x14, x23, #32
             ; byrRegs +[x14]
             mov     x13, x19
             ; byrRegs +[x13]
@@ -176,19 +179,20 @@ G_M27812_IG13:        ; bbWeight=0.30, gcrefRegs=500000 {x20 x22}, byrefRegs=800
             stp     x12, x15, [x14], #0x10
             ldp     x12, x15, [x13], #0x10
             stp     x12, x15, [x14], #0x10
-            strb    w21, [x24, #0x18]
-            add     x14, x24, #80
+            strb    w21, [x23, #0x18]
+            add     x14, x23, #80
             mov     x15, x20
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15 x20]
             ; byrRegs -[x13-x14]
-            ldr     x0, [x24, #0x08]
+            ldr     x0, [x23, #0x08]
             ; gcrRegs +[x0]
-            movz    x11, #0xD1FFAB1E
-            movk    x11, #0xD1FFAB1E LSL #16
-            movk    x11, #0xD1FFAB1E LSL #32
-            cmp     x23, x11
+            ldr     x11, [x0]
+            movz    x1, #0xD1FFAB1E
+            movk    x1, #0xD1FFAB1E LSL #16
+            movk    x1, #0xD1FFAB1E LSL #32
+            cmp     x11, x1
             bne     G_M27812_IG18
             ldr     x0, [x0, #0x08]
             movz    x11, #0xD1FFAB1E      // code for <unknown method>
@@ -197,36 +201,36 @@ G_M27812_IG13:        ; bbWeight=0.30, gcrefRegs=500000 {x20 x22}, byrefRegs=800
             ldr     x1, [x11]
             blr     x1
             ; gcrRegs -[x0]
-                       ;; size=140 bbWeight=0.30 PerfScore 11.25
-G_M27812_IG14:        ; bbWeight=0.30, gcrefRegs=1000000 {x24}, byrefRegs=0000 {}, byref
-            str     w0, [x24, #0x58]
+                       ;; size=144 bbWeight=0.30 PerfScore 12.15
+G_M27812_IG14:        ; bbWeight=0.30, gcrefRegs=800000 {x23}, byrefRegs=0000 {}, byref
+            str     w0, [x23, #0x58]
             b       G_M27812_IG16
                        ;; size=8 bbWeight=0.30 PerfScore 0.60
 G_M27812_IG15:        ; bbWeight=0.20, gcrefRegs=500000 {x20 x22}, byrefRegs=80000 {x19}, byref
-            ; gcrRegs -[x24] +[x20 x22]
+            ; gcrRegs -[x23] +[x20 x22]
             ; byrRegs +[x19]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
             bl      CORINFO_HELP_NEWSFAST
             ; gcrRegs +[x0]
-            mov     x24, x0
-            ; gcrRegs +[x24]
-            add     x14, x24, #8
+            mov     x23, x0
+            ; gcrRegs +[x23]
+            add     x14, x23, #8
             ; byrRegs +[x14]
             mov     x15, x22
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15 x22]
             ; byrRegs -[x14]
-            add     x14, x24, #16
+            add     x14, x23, #16
             ; byrRegs +[x14]
             mov     x15, x20
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15 x20]
             ; byrRegs -[x14]
-            add     x14, x24, #32
...

+16 (+6.67%) : 685807.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:g_visitArgumentsAndUpdateCall|101(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)

@@ -7,9 +7,9 @@
 ; 1 inlinees with PGO data; 16 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  4,  3.48)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
-;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
-;  V02 arg2         [V02,T03] (  3,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+;  V00 this         [V00,T01] (  4,  3.48)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
+;  V01 arg1         [V01,T00] ( 16, 16   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
+;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (56) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -27,7 +27,7 @@
 ;* V17 tmp12        [V17    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
 ;* V18 tmp13        [V18    ] (  0,  0   )  struct ( 8) zero-ref    single-def "Inline return value spill temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V19 tmp14        [V19    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V20 tmp15        [V20,T04] (  2,  4   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V20 tmp15        [V20,T03] (  2,  4   )     ref  ->   x2         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V21 tmp16        [V21    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V03.array (fldOffset=0x0)" P-INDEP
 ;* V22 tmp17        [V22    ] (  0,  0   )     ref  ->  zero-ref    "field V06.array (fldOffset=0x0)" P-INDEP
 ;* V23 tmp18        [V23    ] (  0,  0   )     ref  ->  zero-ref    "field V09.array (fldOffset=0x0)" P-INDEP
@@ -37,31 +37,28 @@
 ;* V27 tmp22        [V27    ] (  0,  0   )    long  ->  zero-ref    "field V15._bits0 (fldOffset=0x8)" P-INDEP
 ;* V28 tmp23        [V28    ] (  0,  0   )     int  ->  zero-ref    "field V15._capacity (fldOffset=0x10)" P-INDEP
 ;* V29 tmp24        [V29    ] (  0,  0   )     ref  ->  zero-ref    "field V17.array (fldOffset=0x0)" P-INDEP
-;  V30 tmp25        [V30,T16] (  3,  1.50)     ref  ->  x22         single-def "field V18.array (fldOffset=0x0)" P-INDEP
-;  V31 tmp26        [V31,T15] (  3,  2.48)     ref  ->   x2         single-def "field V19.array (fldOffset=0x0)" P-INDEP
-;  V32 tmp27        [V32    ] (  2,  4   )  struct (24) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
-;  V33 tmp28        [V33,T00] ( 13, 26   )     ref  ->  x19         single-def "argument with side effect"
-;  V34 tmp29        [V34,T05] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V35 tmp30        [V35,T11] (  2,  4   )     int  ->   x2         "argument with side effect"
-;  V36 tmp31        [V36,T06] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V37 tmp32        [V37,T07] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
-;  V38 tmp33        [V38,T08] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
-;  V39 tmp34        [V39,T09] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
-;  V40 tmp35        [V40,T12] (  2,  4   )     int  ->   x7         "argument with side effect"
-;  V41 tmp36        [V41,T13] (  2,  4   )     int  ->   x8         "argument with side effect"
-;  V42 tmp37        [V42,T14] (  2,  4   )     int  ->   x9         "argument with side effect"
-;  V43 tmp38        [V43,T10] (  2,  4   )     ref  ->  x10         single-def "argument with side effect"
+;  V30 tmp25        [V30,T13] (  3,  1.50)     ref  ->   x4         single-def "field V18.array (fldOffset=0x0)" P-INDEP
+;  V31 tmp26        [V31,T12] (  3,  2.48)     ref  ->   x2         single-def "field V19.array (fldOffset=0x0)" P-INDEP
+;  V32 tmp27        [V32    ] (  2,  4   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
+;  V33 tmp28        [V33,T08] (  2,  4   )     int  ->   x3         "argument with side effect"
+;  V34 tmp29        [V34,T04] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
+;  V35 tmp30        [V35,T05] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
+;  V36 tmp31        [V36,T06] (  2,  4   )     ref  ->   x7         single-def "argument with side effect"
+;  V37 tmp32        [V37,T09] (  2,  4   )     int  ->   x1         "argument with side effect"
+;  V38 tmp33        [V38,T10] (  2,  4   )     int  ->   x0         "argument with side effect"
+;  V39 tmp34        [V39,T11] (  2,  4   )     int  ->   x8         "argument with side effect"
+;  V40 tmp35        [V40,T07] (  2,  4   )     ref  ->   x9         single-def "argument with side effect"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 88
 
 G_M26558_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             sub     sp, sp, #128
             stp     fp, lr, [sp, #0x38]
-            stp     x19, x20, [sp, #0x60]
-            stp     x21, x22, [sp, #0x70]
+            stp     x19, x20, [sp, #0x68]
+            str     x21, [sp, #0x78]
             add     fp, sp, #56
-            stp     xzr, xzr, [fp, #0x10]  // [V32 tmp27], [V32 tmp27+0x08]
-            str     xzr, [fp, #0x20]   // [V32 tmp27+0x10]
+            stp     xzr, xzr, [fp, #0x18]  // [V32 tmp27], [V32 tmp27+0x08]
+            str     xzr, [fp, #0x28]   // [V32 tmp27+0x10]
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     x19, x1
@@ -86,81 +83,88 @@ G_M26558_IG03:        ; bbWeight=0.48, gcrefRegs=380004 {x2 x19 x20 x21}, byrefR
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs -[x2]
-            mov     x22, x0
-            ; gcrRegs +[x22]
-                       ;; size=40 bbWeight=0.48 PerfScore 3.84
-G_M26558_IG04:        ; bbWeight=1, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            ldr     x0, [x19, #0x18]
-            ; gcrRegs +[x0]
-            ldrsb   wzr, [x20]
-            mov     x1, x21
-            ; gcrRegs +[x1]
-            ldrb    w2, [x19, #0x30]
-            ldr     x3, [x19, #0x28]
-            ; gcrRegs +[x3]
-            mov     x4, x22
+            mov     x4, x0
             ; gcrRegs +[x4]
-            ldp     x5, x6, [x19, #0x40]
-            ; gcrRegs +[x5-x6]
-            ldrb    w7, [x19, #0x31]
-            ldrb    w8, [x19, #0x32]
-            ldrb    w9, [x19, #0x33]
-            ldr     x10, [x19, #0x50]
-            ; gcrRegs +[x10]
-                       ;; size=44 bbWeight=1 PerfScore 29.00
+                       ;; size=40 bbWeight=0.48 PerfScore 3.84
+G_M26558_IG04:        ; bbWeight=1, gcrefRegs=380010 {x4 x19 x20 x21}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0]
+            ldr     x2, [x19, #0x18]
+            ; gcrRegs +[x2]
+            ldrsb   wzr, [x20]
+            ldrb    w3, [x19, #0x30]
+            ldr     x5, [x19, #0x28]
+            ; gcrRegs +[x5]
+            ldp     x6, x7, [x19, #0x40]
+            ; gcrRegs +[x6-x7]
+            ldrb    w1, [x19, #0x31]
+            ldrb    w0, [x19, #0x32]
+            ldrb    w8, [x19, #0x33]
+            ldr     x9, [x19, #0x50]
+            ; gcrRegs +[x9]
+                       ;; size=36 bbWeight=1 PerfScore 28.00
 G_M26558_IG05:        ; bbWeight=1, nogc, extend
-            ldp     x11, x13, [x19, #0x58]
-            stp     x11, x13, [fp, #0x10]
-            ldr     x11, [x19, #0x68]
-            str     x11, [fp, #0x20]
+            ldp     x10, x11, [x19, #0x58]
+            stp     x10, x11, [fp, #0x18]
+            ldr     x10, [x19, #0x68]
+            str     x10, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M26558_IG06:        ; bbWeight=1, extend
-            ldrb    w11, [x19, #0x34]
-            str     w11, [sp, #0x20]   // [V05 OutArgs+0x20]
-            ldr     x11, [x19, #0x70]
-            ; gcrRegs +[x11]
-            str     x11, [sp, #0x28]   // [V05 OutArgs+0x28]
-            str     x0, [sp, #0x30]    // [V05 OutArgs+0x30]
+            ldrb    w10, [x19, #0x34]
+            str     w10, [sp, #0x20]   // [V05 OutArgs+0x20]
+            ldr     x10, [x19, #0x70]
+            ; gcrRegs +[x10]
+            str     x10, [sp, #0x28]   // [V05 OutArgs+0x28]
+            str     x2, [sp, #0x30]    // [V05 OutArgs+0x30]
+            mov     w2, w3
+            ; gcrRegs -[x2]
+            mov     x3, x5
+            ; gcrRegs +[x3]
+            mov     x5, x6
+            mov     x6, x7
+            mov     w7, w1
+            ; gcrRegs -[x7]
+            str     w0, [sp]   // [V05 OutArgs]
+            str     w8, [sp, #0x08]    // [V05 OutArgs+0x08]
+            str     x9, [sp, #0x10]    // [V05 OutArgs+0x10]
+            add     x1, fp, #24    // [V32 tmp27]
+            str     x1, [sp, #0x18]    // [V05 OutArgs+0x18]
+            mov     x1, x21
+            ; gcrRegs +[x1]
             mov     x0, x19
-            str     w8, [sp]   // [V05 OutArgs]
-            str     w9, [sp, #0x08]    // [V05 OutArgs+0x08]
-            str     x10, [sp, #0x10]   // [V05 OutArgs+0x10]
-            add     x8, fp, #16    // [V32 tmp27]
-            str     x8, [sp, #0x18]    // [V05 OutArgs+0x18]
+            ; gcrRegs +[x0]
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
             movk    x8, #0xD1FFAB1E LSL #16
             movk    x8, #0xD1FFAB1E LSL #32
             ldr     x8, [x8]
             blr     x8
-            ; gcrRegs -[x1 x3-x6 x10-x11 x19-x22]
-                       ;; size=64 bbWeight=1 PerfScore 19.50
+            ; gcrRegs -[x1 x3-x6 x9-x10 x19-x21]
+                       ;; size=88 bbWeight=1 PerfScore 22.50
 G_M26558_IG07:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x70]
-            ldp     x19, x20, [sp, #0x60]
+            ldr     x21, [sp, #0x78]
+            ldp     x19, x20, [sp, #0x68]
             ldp     fp, lr, [sp, #0x38]
             add     sp, sp, #128
             ret     lr
-                       ;; size=20 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 5.50
 G_M26558_IG08:        ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0] +[x19-x21]
-            mov     x22, xzr
-            ; gcrRegs +[x22]
+            mov     x4, xzr
+            ; gcrRegs +[x4]
             b       G_M26558_IG04
                        ;; size=8 bbWeight=0.02 PerfScore 0.03
 
-; Total bytes of code 240, prolog size 28, PerfScore 77.37, instruction count 60, allocated bytes for code 240 (MethodHash=faef9841) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
+; Total bytes of code 256, prolog size 28, PerfScore 80.37, instruction count 64, allocated bytes for code 256 (MethodHash=faef9841) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 3
   Epilog Count      : 1
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 60 (0x0003c) Actual length = 240 (0x0000f0)
+  Function Length   : 64 (0x00040) Actual length = 256 (0x000100)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -168,9 +172,12 @@ Unwind Info:
   ---- Unwind codes ----
     E2 07       add_fp 7 (0x07); add fp, sp, #56
     ---- Epilog start at index 2 ----
-    E6          save_next
-    C8 0C       save_regp X#0 Z#12 (0x0C); stp x19, x20, [sp, #96]
+    D0 8F       save_reg X#2 Z#15 (0x0F); str x21, [sp, #120]
+    C8 0D       save_regp X#0 Z#13 (0x0D); stp x19, x20, [sp, #104]
     47          save_fplr #7 (0x07); stp fp, lr, [sp, #56]
     08          alloc_s #8 (0x08); sub sp, sp, #128 (0x080)
     E4          end
+    E4          end
+    E4          end
+    E4          end
 

+4 (+6.67%) : 690244.dasm - Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (Tier1)

@@ -8,29 +8,30 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Microsoft.Cci.MetadataWriter>
-;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.Cci.ITypeDefinition>
+;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.Cci.ITypeDefinition>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03    ] (  2,  4   )  struct (48) [fp+0x10]  do-not-enreg[XS] addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.Emit.EmitContext>
-;  V04 tmp2         [V04,T02] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
 ;
 ; Lcl frame size = 48
 
 G_M23091_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M23091_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, nogc
-            ; gcrRegs +[x0-x1]
+            mov     x2, x1
+            ; gcrRegs +[x2]
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M23091_IG02:        ; bbWeight=1, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref, nogc
+            ; gcrRegs +[x0]
             ldp     q16, q17, [x0, #0xD0]
             stp     q16, q17, [fp, #0x10]
             ldr     q16, [x0, #0xF0]
             str     q16, [fp, #0x30]
                        ;; size=16 bbWeight=1 PerfScore 8.00
 G_M23091_IG03:        ; bbWeight=1, extend
-            mov     x0, x1
             add     x1, fp, #16    // [V03 tmp1]
-            ; gcrRegs -[x1]
+            mov     x0, x2
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            ; gcrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
@@ -42,7 +43,7 @@ G_M23091_IG04:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 60, prolog size 8, PerfScore 18.00, instruction count 15, allocated bytes for code 60 (MethodHash=af30a5cc) for method Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (Tier1)
+; Total bytes of code 64, prolog size 8, PerfScore 18.50, instruction count 16, allocated bytes for code 64 (MethodHash=af30a5cc) for method Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +54,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
+  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

librariestestsnotieredcompilation.run.linux.arm64.Release.mch

-32 (-27.59%) : 114076.dasm - System.Formats.Asn1.Tests.Reader.OverlappedReads:g_Method|30(System.ReadOnlySpan1[ubyte],System.Span1[ubyte],int,byref,byref):ubyte (FullOpts)

@@ -10,58 +10,45 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[ubyte]>
-;  V02 arg2         [V02,T04] (  3,  3   )     int  ->   x4         single-def
-;  V03 arg3         [V03,T02] (  3,  3   )   byref  ->   x7         single-def
-;  V04 arg4         [V04,T03] (  3,  3   )   byref  ->   x8         single-def
+;  V02 arg2         [V02,T02] (  3,  3   )     int  ->   x4         single-def
+;  V03 arg3         [V03,T00] (  3,  3   )   byref  ->   x7         single-def
+;  V04 arg4         [V04,T01] (  3,  3   )   byref  ->   x8         single-def
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06    ] (  3,  6   )  struct ( 8) [fp+0x38]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.Formats.Asn1.Asn1Tag>
+;  V06 tmp1         [V06    ] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.Formats.Asn1.Asn1Tag>
 ;* V07 tmp2         [V07    ] (  0,  0   )   byref  ->  zero-ref   
-;  V08 tmp3         [V08,T11] (  3,  3   )   byref  ->   x5         single-def
+;  V08 tmp3         [V08,T08] (  3,  3   )   byref  ->   x5         single-def
 ;* V09 tmp4         [V09    ] (  0,  0   )     int  ->  zero-ref   
 ;* V10 tmp5         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V11 tmp6         [V11,T05] (  2,  2   )   byref  ->   x0         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V12 tmp7         [V12,T07] (  2,  2   )     int  ->   x1         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V13 tmp8         [V13,T06] (  2,  2   )   byref  ->   x2         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V14 tmp9         [V14,T08] (  2,  2   )     int  ->   x3         single-def "field V01._length (fldOffset=0x8)" P-INDEP
-;  V15 tmp10        [V15    ] (  3,  6   )   ubyte  ->  [fp+0x38]  do-not-enreg[X] addr-exposed "field V06._controlFlags (fldOffset=0x0)" P-DEP
-;  V16 tmp11        [V16    ] (  3,  6   )     int  ->  [fp+0x3C]  do-not-enreg[X] addr-exposed "field V06.<TagValue>k__BackingField (fldOffset=0x4)" P-DEP
-;  V17 tmp12        [V17,T09] (  2,  4   )  struct ( 8) [fp+0x30]  do-not-enreg[S] "by-value struct argument" <System.Formats.Asn1.Asn1Tag>
-;  V18 tmp13        [V18,T00] (  4,  8   )  struct (16) [fp+0x20]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.ReadOnlySpan`1[ubyte]>
-;  V19 tmp14        [V19,T01] (  4,  8   )  struct (16) [fp+0x10]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.Span`1[ubyte]>
-;  V20 tmp15        [V20,T10] (  2,  4   )     int  ->   x4         "argument with side effect"
+;  V11 tmp6         [V11,T03] (  2,  2   )   byref  ->   x0         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V12 tmp7         [V12,T05] (  2,  2   )     int  ->   x1         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V13 tmp8         [V13,T04] (  2,  2   )   byref  ->   x2         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V14 tmp9         [V14,T06] (  2,  2   )     int  ->   x3         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V15 tmp10        [V15    ] (  3,  6   )   ubyte  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V06._controlFlags (fldOffset=0x0)" P-DEP
+;  V16 tmp11        [V16    ] (  3,  6   )     int  ->  [fp+0x1C]  do-not-enreg[X] addr-exposed "field V06.<TagValue>k__BackingField (fldOffset=0x4)" P-DEP
+;  V17 tmp12        [V17,T07] (  2,  4   )  struct ( 8) [fp+0x10]  do-not-enreg[S] "by-value struct argument" <System.Formats.Asn1.Asn1Tag>
 ;
-; Lcl frame size = 48
+; Lcl frame size = 16
 
 G_M25606_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-            str     xzr, [fp, #0x20]   // [V18 tmp13]
-            str     xzr, [fp, #0x10]   // [V19 tmp14]
             mov     x7, x5
             ; byrRegs +[x7]
             mov     x8, x6
             ; byrRegs +[x8]
-                       ;; size=24 bbWeight=1 PerfScore 4.50
+                       ;; size=16 bbWeight=1 PerfScore 2.50
 G_M25606_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0185 {x0 x2 x7 x8}, byref
             ; byrRegs +[x0 x2]
-            str     xzr, [fp, #0x38]   // [V06 tmp1]
-            add     x5, fp, #56    // [V06 tmp1]
+            str     xzr, [fp, #0x18]   // [V06 tmp1]
+            add     x5, fp, #24    // [V06 tmp1]
             ; byrRegs +[x5]
             strb    wzr, [x5]
             mov     w6, #12
             str     w6, [x5, #0x04]
-            str     x0, [fp, #0x20]    // [V18 tmp13]
-            str     w1, [fp, #0x28]    // [V18 tmp13+0x08]
-            str     x2, [fp, #0x10]    // [V19 tmp14]
-            str     w3, [fp, #0x18]    // [V19 tmp14+0x08]
-            ldr     x0, [fp, #0x38]    // [V06 tmp1]
-            ; byrRegs -[x0]
-            str     x0, [fp, #0x30]    // [V17 tmp12]
-            ldp     x0, x1, [fp, #0x20]    // [V18 tmp13], [V18 tmp13+0x08]
-            ; byrRegs +[x0]
-            ldp     x2, x3, [fp, #0x10]    // [V19 tmp14], [V19 tmp14+0x08]
-            ldr     x5, [fp, #0x30]    // [V17 tmp12]
+            ldr     x5, [fp, #0x18]    // [V06 tmp1]
             ; byrRegs -[x5]
+            str     x5, [fp, #0x10]    // [V17 tmp12]
+            ldr     x5, [fp, #0x10]    // [V17 tmp12]
             mov     x6, x7
             ; byrRegs +[x6]
             mov     x7, x8
@@ -72,13 +59,13 @@ G_M25606_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0185 {x0 x2 x7
             ldr     x8, [x8]
             blr     x8
             ; byrRegs -[x0 x2 x6-x7]
-                       ;; size=84 bbWeight=1 PerfScore 25.50
+                       ;; size=60 bbWeight=1 PerfScore 15.50
 G_M25606_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x40
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 116, prolog size 16, PerfScore 32.00, instruction count 29, allocated bytes for code 116 (MethodHash=7f649bf9) for method System.Formats.Asn1.Tests.Reader.OverlappedReads:<NoOverlappedTextStrings>g__Method|3_0(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref,byref):ubyte (FullOpts)
+; Total bytes of code 84, prolog size 8, PerfScore 20.00, instruction count 21, allocated bytes for code 84 (MethodHash=7f649bf9) for method System.Formats.Asn1.Tests.Reader.OverlappedReads:<NoOverlappedTextStrings>g__Method|3_0(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref,byref):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -89,7 +76,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
+  Function Length   : 21 (0x00015) Actual length = 84 (0x000054)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -97,7 +84,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

-12 (-16.67%) : 257653.dasm - System.Text.Json.Nodes.Tests.JsonArrayTests+<>cDisplayClass10:<FromElementWrongNodeTypeThrows>b0():System.Object:this (FullOpts)

@@ -12,49 +12,42 @@
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Text.Json.JsonElement>
-;  V04 tmp2         [V04,T00] (  3,  6   )     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
-;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonElement>
-;* V06 tmp4         [V06,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V07 tmp5         [V07,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.value (fldOffset=0x1)" P-INDEP
+;  V04 tmp2         [V04,T00] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
+;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonElement>
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V07 tmp5         [V07,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.value (fldOffset=0x1)" P-INDEP
 ;* V08 tmp6         [V08    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V03._parent (fldOffset=0x0)" P-INDEP
 ;* V09 tmp7         [V09    ] (  0,  0   )     int  ->  zero-ref    single-def "field V03._idx (fldOffset=0x8)" P-INDEP
-;  V10 tmp8         [V10,T05] (  2,  2   )     ref  ->   x1         single-def "field V05._parent (fldOffset=0x0)" P-INDEP
-;* V11 tmp9         [V11,T08] (  0,  0   )     int  ->  zero-ref    single-def "field V05._idx (fldOffset=0x8)" P-INDEP
-;  V12 tmp10        [V12,T01] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V13 tmp11        [V13,T03] (  2,  4   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.Text.Json.JsonElement>
-;  V14 cse0         [V14,T04] (  3,  3   )     ref  ->   x0         "CSE - aggressive"
+;  V10 tmp8         [V10,T03] (  2,  2   )     ref  ->   x0         single-def "field V05._parent (fldOffset=0x0)" P-INDEP
+;* V11 tmp9         [V11,T06] (  0,  0   )     int  ->  zero-ref    single-def "field V05._idx (fldOffset=0x8)" P-INDEP
+;  V12 tmp10        [V12,T01] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M52572_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-            stp     xzr, xzr, [fp, #0x18]  // [V13 tmp11], [V13 tmp11+0x08]
-                       ;; size=12 bbWeight=1 PerfScore 2.50
+                       ;; size=8 bbWeight=1 PerfScore 1.50
 G_M52572_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x0]
             ldr     x0, [x0, #0x08]
-            mov     x1, x0
-            ; gcrRegs +[x1]
-            ldrsb   wzr, [x1]
-            str     x1, [fp, #0x18]    // [V13 tmp11]
-            strb    wzr, [fp, #0x28]   // [V12 tmp10]
-            strb    wzr, [fp, #0x29]   // [V12 tmp10+0x01]
-            ldr     x1, [fp, #0x20]    // [V13 tmp11+0x08]
-            ; gcrRegs -[x1]
-            ldrh    w2, [fp, #0x28]    // [V12 tmp10]
+            ldrsb   wzr, [x0]
+            strb    wzr, [fp, #0x18]   // [V12 tmp10]
+            strb    wzr, [fp, #0x19]   // [V12 tmp10+0x01]
+            ldrh    w2, [fp, #0x18]    // [V12 tmp10]
+            mov     w1, wzr
             movz    x3, #0xD1FFAB1E      // code for System.Text.Json.Nodes.JsonArray:Create(System.Text.Json.JsonElement,System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonArray
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
-                       ;; size=52 bbWeight=1 PerfScore 19.00
+                       ;; size=44 bbWeight=1 PerfScore 16.00
 G_M52572_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x30
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 72, prolog size 12, PerfScore 23.50, instruction count 18, allocated bytes for code 72 (MethodHash=419932a3) for method System.Text.Json.Nodes.Tests.JsonArrayTests+<>c__DisplayClass1_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
+; Total bytes of code 60, prolog size 8, PerfScore 19.50, instruction count 15, allocated bytes for code 60 (MethodHash=419932a3) for method System.Text.Json.Nodes.Tests.JsonArrayTests+<>c__DisplayClass1_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -65,7 +58,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 18 (0x00012) Actual length = 72 (0x000048)
+  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -73,7 +66,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

-12 (-16.67%) : 260297.dasm - System.Text.Json.Nodes.Tests.JsonValueTests+<>cDisplayClass160:<FromElementWrongNodeTypeThrows>b0():System.Object:this (FullOpts)

@@ -12,49 +12,42 @@
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Text.Json.JsonElement>
-;  V04 tmp2         [V04,T00] (  3,  6   )     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
-;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonElement>
-;* V06 tmp4         [V06,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V07 tmp5         [V07,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.value (fldOffset=0x1)" P-INDEP
+;  V04 tmp2         [V04,T00] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
+;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonElement>
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V07 tmp5         [V07,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.value (fldOffset=0x1)" P-INDEP
 ;* V08 tmp6         [V08    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V03._parent (fldOffset=0x0)" P-INDEP
 ;* V09 tmp7         [V09    ] (  0,  0   )     int  ->  zero-ref    single-def "field V03._idx (fldOffset=0x8)" P-INDEP
-;  V10 tmp8         [V10,T05] (  2,  2   )     ref  ->   x1         single-def "field V05._parent (fldOffset=0x0)" P-INDEP
-;* V11 tmp9         [V11,T08] (  0,  0   )     int  ->  zero-ref    single-def "field V05._idx (fldOffset=0x8)" P-INDEP
-;  V12 tmp10        [V12,T01] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V13 tmp11        [V13,T03] (  2,  4   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.Text.Json.JsonElement>
-;  V14 cse0         [V14,T04] (  3,  3   )     ref  ->   x0         "CSE - aggressive"
+;  V10 tmp8         [V10,T03] (  2,  2   )     ref  ->   x0         single-def "field V05._parent (fldOffset=0x0)" P-INDEP
+;* V11 tmp9         [V11,T06] (  0,  0   )     int  ->  zero-ref    single-def "field V05._idx (fldOffset=0x8)" P-INDEP
+;  V12 tmp10        [V12,T01] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M18200_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-            stp     xzr, xzr, [fp, #0x18]  // [V13 tmp11], [V13 tmp11+0x08]
-                       ;; size=12 bbWeight=1 PerfScore 2.50
+                       ;; size=8 bbWeight=1 PerfScore 1.50
 G_M18200_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x0]
             ldr     x0, [x0, #0x08]
-            mov     x1, x0
-            ; gcrRegs +[x1]
-            ldrsb   wzr, [x1]
-            str     x1, [fp, #0x18]    // [V13 tmp11]
-            strb    wzr, [fp, #0x28]   // [V12 tmp10]
-            strb    wzr, [fp, #0x29]   // [V12 tmp10+0x01]
-            ldr     x1, [fp, #0x20]    // [V13 tmp11+0x08]
-            ; gcrRegs -[x1]
-            ldrh    w2, [fp, #0x28]    // [V12 tmp10]
+            ldrsb   wzr, [x0]
+            strb    wzr, [fp, #0x18]   // [V12 tmp10]
+            strb    wzr, [fp, #0x19]   // [V12 tmp10+0x01]
+            ldrh    w2, [fp, #0x18]    // [V12 tmp10]
+            mov     w1, wzr
             movz    x3, #0xD1FFAB1E      // code for System.Text.Json.Nodes.JsonValue:Create(System.Text.Json.JsonElement,System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonValue
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
-                       ;; size=52 bbWeight=1 PerfScore 19.00
+                       ;; size=44 bbWeight=1 PerfScore 16.00
 G_M18200_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x30
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 72, prolog size 12, PerfScore 23.50, instruction count 18, allocated bytes for code 72 (MethodHash=e2eeb8e7) for method System.Text.Json.Nodes.Tests.JsonValueTests+<>c__DisplayClass16_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
+; Total bytes of code 60, prolog size 8, PerfScore 19.50, instruction count 15, allocated bytes for code 60 (MethodHash=e2eeb8e7) for method System.Text.Json.Nodes.Tests.JsonValueTests+<>c__DisplayClass16_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -65,7 +58,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 18 (0x00012) Actual length = 72 (0x000048)
+  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -73,7 +66,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

+8 (+7.69%) : 261729.dasm - System.Text.Json.Serialization.Tests.JsonDocumentClass:Initialize():this (FullOpts)

@@ -8,36 +8,35 @@
 ; 1 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  3,  3   )     ref  ->  x19         this class-hnd single-def <System.Text.Json.Serialization.Tests.JsonDocumentClass>
+;  V00 this         [V00,T01] (  3,  3   )     ref  ->  x19         this class-hnd single-def <System.Text.Json.Serialization.Tests.JsonDocumentClass>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Text.Json.JsonDocumentOptions>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Text.Json.JsonDocumentOptions>
 ;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlyMemory`1[ushort]>
 ;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlyMemory`1[ushort]>
-;* V06 tmp4         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
+;  V06 tmp4         [V06    ] (  5, 10   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
 ;* V07 tmp5         [V07    ] (  0,  0   )     int  ->  zero-ref   
-;* V08 tmp6         [V08,T05] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V08 tmp6         [V08,T07] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp7         [V09    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V10 tmp8         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V11 tmp9         [V11,T03] (  2,  4   )     ref  ->  x15         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
+;  V11 tmp9         [V11,T05] (  2,  4   )     ref  ->  x15         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
 ;* V12 tmp10        [V12    ] (  0,  0   )     int  ->  zero-ref    single-def "field V01._maxDepth (fldOffset=0x0)" P-INDEP
 ;* V13 tmp11        [V13    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01._commentHandling (fldOffset=0x4)" P-INDEP
 ;* V14 tmp12        [V14    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
-;* V15 tmp13        [V15,T07] (  0,  0   )     int  ->  zero-ref    single-def "field V03._maxDepth (fldOffset=0x0)" P-INDEP
-;* V16 tmp14        [V16,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._commentHandling (fldOffset=0x4)" P-INDEP
-;* V17 tmp15        [V17,T09] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
+;* V15 tmp13        [V15,T08] (  0,  0   )     int  ->  zero-ref    single-def "field V03._maxDepth (fldOffset=0x0)" P-INDEP
+;* V16 tmp14        [V16,T09] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._commentHandling (fldOffset=0x4)" P-INDEP
+;* V17 tmp15        [V17,T10] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
 ;* V18 tmp16        [V18    ] (  0,  0   )     ref  ->  zero-ref    "field V04._object (fldOffset=0x0)" P-INDEP
 ;* V19 tmp17        [V19    ] (  0,  0   )     int  ->  zero-ref    "field V04._index (fldOffset=0x8)" P-INDEP
 ;* V20 tmp18        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0xc)" P-INDEP
 ;* V21 tmp19        [V21    ] (  0,  0   )     ref  ->  zero-ref    "field V05._object (fldOffset=0x0)" P-INDEP
 ;* V22 tmp20        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V05._index (fldOffset=0x8)" P-INDEP
 ;* V23 tmp21        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0xc)" P-INDEP
-;* V24 tmp22        [V24,T06] (  0,  0   )     ref  ->  zero-ref    single-def "field V06._object (fldOffset=0x0)" P-INDEP
-;* V25 tmp23        [V25,T10] (  0,  0   )     int  ->  zero-ref    single-def "field V06._index (fldOffset=0x8)" P-INDEP
-;* V26 tmp24        [V26,T11] (  0,  0   )     int  ->  zero-ref    single-def "field V06._length (fldOffset=0xc)" P-INDEP
-;  V27 tmp25        [V27,T00] (  4,  8   )  struct ( 8) [fp+0x20]  do-not-enreg[SF] "by-value struct argument" <System.Text.Json.JsonDocumentOptions>
-;  V28 tmp26        [V28,T01] (  4,  8   )  struct (16) [fp+0x10]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.ReadOnlyMemory`1[ushort]>
-;* V29 cse0         [V29,T04] (  0,  0   )     ref  ->  zero-ref    "CSE - aggressive"
+;  V24 tmp22        [V24,T02] (  3,  5   )     ref  ->  [fp+0x18]  do-not-enreg[] single-def "field V06._object (fldOffset=0x0)" P-DEP
+;  V25 tmp23        [V25,T03] (  3,  5   )     int  ->  [fp+0x20]  do-not-enreg[] single-def "field V06._index (fldOffset=0x8)" P-DEP
+;  V26 tmp24        [V26,T04] (  3,  5   )     int  ->  [fp+0x24]  do-not-enreg[] single-def "field V06._length (fldOffset=0xc)" P-DEP
+;  V27 tmp25        [V27,T00] (  4,  8   )  struct ( 8) [fp+0x10]  do-not-enreg[SF] "by-value struct argument" <System.Text.Json.JsonDocumentOptions>
+;  V28 cse0         [V28,T06] (  2,  2   )     ref  ->   x2         "CSE - aggressive"
 ;
 ; Lcl frame size = 24
 
@@ -45,22 +44,24 @@ G_M62249_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     fp, lr, [sp, #-0x30]!
             str     x19, [sp, #0x28]
             mov     fp, sp
-            stp     xzr, xzr, [fp, #0x10]  // [V28 tmp26], [V28 tmp26+0x08]
+            stp     xzr, xzr, [fp, #0x18]  // [V06 tmp4], [V06 tmp4+0x08]
             mov     x19, x0
             ; gcrRegs +[x19]
                        ;; size=20 bbWeight=1 PerfScore 4.00
 G_M62249_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            str     x0, [fp, #0x10]    // [V28 tmp26]
-            mov     w0, #129
-            stp     w0, wzr, [fp, #0x1C]   // [V28 tmp26+0x0c], [V27 tmp25]
-            strb    wzr, [fp, #0x24]   // [V27 tmp25+0x04]
-            strb    wzr, [fp, #0x25]   // [V27 tmp25+0x05]
-            ldp     x0, x1, [fp, #0x10]    // [V28 tmp26], [V28 tmp26+0x08]
+            movz    x2, #0xD1FFAB1E
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #0xD1FFAB1E LSL #32
+            str     x2, [fp, #0x18]    // [V24 tmp22]
+            str     wzr, [fp, #0x20]   // [V25 tmp23]
+            mov     w2, #129
+            str     w2, [fp, #0x24]    // [V26 tmp24]
+            str     wzr, [fp, #0x10]   // [V27 tmp25]
+            strb    wzr, [fp, #0x14]   // [V27 tmp25+0x04]
+            strb    wzr, [fp, #0x15]   // [V27 tmp25+0x05]
+            ldp     x2, x0, [fp, #0x10]    // [V27 tmp25], [V06 tmp4]
             ; gcrRegs +[x0]
-            ldr     x2, [fp, #0x20]    // [V27 tmp25]
+            ldr     x1, [fp, #0x20]    // [V06 tmp4+0x08]
             movz    x3, #0xD1FFAB1E      // code for <unknown method>
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
@@ -73,14 +74,14 @@ G_M62249_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15 x19]
             ; byrRegs -[x14]
-                       ;; size=72 bbWeight=1 PerfScore 18.50
+                       ;; size=80 bbWeight=1 PerfScore 20.50
 G_M62249_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x19, [sp, #0x28]
             ldp     fp, lr, [sp], #0x30
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 104, prolog size 16, PerfScore 26.50, instruction count 26, allocated bytes for code 104 (MethodHash=de8b0cd6) for method System.Text.Json.Serialization.Tests.JsonDocumentClass:Initialize():this (FullOpts)
+; Total bytes of code 112, prolog size 16, PerfScore 28.50, instruction count 28, allocated bytes for code 112 (MethodHash=de8b0cd6) for method System.Text.Json.Serialization.Tests.JsonDocumentClass:Initialize():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -91,7 +92,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 26 (0x0001a) Actual length = 104 (0x000068)
+  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+10.00%) : 259568.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c:b_760():System.Object:this (FullOpts)

@@ -14,59 +14,60 @@
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Text.Json.JsonDocumentOptions>
 ;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlyMemory`1[ushort]>
 ;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlyMemory`1[ushort]>
-;* V06 tmp4         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
+;  V06 tmp4         [V06    ] (  5, 10   )  struct (16) [fp+0x20]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
 ;* V07 tmp5         [V07    ] (  0,  0   )     int  ->  zero-ref   
 ;* V08 tmp6         [V08    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp7         [V09    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V10 tmp8         [V10    ] (  0,  0   )     int  ->  zero-ref    single-def "field V01._maxDepth (fldOffset=0x0)" P-INDEP
 ;* V11 tmp9         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01._commentHandling (fldOffset=0x4)" P-INDEP
 ;* V12 tmp10        [V12    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
-;* V13 tmp11        [V13,T03] (  0,  0   )     int  ->  zero-ref    single-def "field V03._maxDepth (fldOffset=0x0)" P-INDEP
-;* V14 tmp12        [V14,T04] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._commentHandling (fldOffset=0x4)" P-INDEP
-;* V15 tmp13        [V15,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
+;* V13 tmp11        [V13,T04] (  0,  0   )     int  ->  zero-ref    single-def "field V03._maxDepth (fldOffset=0x0)" P-INDEP
+;* V14 tmp12        [V14,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._commentHandling (fldOffset=0x4)" P-INDEP
+;* V15 tmp13        [V15,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
 ;* V16 tmp14        [V16    ] (  0,  0   )     ref  ->  zero-ref    "field V04._object (fldOffset=0x0)" P-INDEP
 ;* V17 tmp15        [V17    ] (  0,  0   )     int  ->  zero-ref    "field V04._index (fldOffset=0x8)" P-INDEP
 ;* V18 tmp16        [V18    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0xc)" P-INDEP
 ;* V19 tmp17        [V19    ] (  0,  0   )     ref  ->  zero-ref    "field V05._object (fldOffset=0x0)" P-INDEP
 ;* V20 tmp18        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V05._index (fldOffset=0x8)" P-INDEP
 ;* V21 tmp19        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0xc)" P-INDEP
-;* V22 tmp20        [V22,T02] (  0,  0   )     ref  ->  zero-ref    single-def "field V06._object (fldOffset=0x0)" P-INDEP
-;* V23 tmp21        [V23,T06] (  0,  0   )     int  ->  zero-ref    single-def "field V06._index (fldOffset=0x8)" P-INDEP
-;* V24 tmp22        [V24,T07] (  0,  0   )     int  ->  zero-ref    single-def "field V06._length (fldOffset=0xc)" P-INDEP
-;  V25 tmp23        [V25,T00] (  4,  8   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Text.Json.JsonDocumentOptions>
-;  V26 tmp24        [V26,T01] (  4,  8   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.ReadOnlyMemory`1[ushort]>
+;  V22 tmp20        [V22,T01] (  3,  5   )     ref  ->  [fp+0x20]  do-not-enreg[] single-def "field V06._object (fldOffset=0x0)" P-DEP
+;  V23 tmp21        [V23,T02] (  3,  5   )     int  ->  [fp+0x28]  do-not-enreg[] single-def "field V06._index (fldOffset=0x8)" P-DEP
+;  V24 tmp22        [V24,T03] (  3,  5   )     int  ->  [fp+0x2C]  do-not-enreg[] single-def "field V06._length (fldOffset=0xc)" P-DEP
+;  V25 tmp23        [V25,T00] (  4,  8   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Text.Json.JsonDocumentOptions>
 ;
 ; Lcl frame size = 32
 
 G_M36232_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x30]!
             mov     fp, sp
-            stp     xzr, xzr, [fp, #0x18]  // [V26 tmp24], [V26 tmp24+0x08]
+            stp     xzr, xzr, [fp, #0x20]  // [V06 tmp4], [V06 tmp4+0x08]
                        ;; size=12 bbWeight=1 PerfScore 2.50
 G_M36232_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            str     x0, [fp, #0x18]    // [V26 tmp24]
-            mov     w0, #21
-            stp     w0, wzr, [fp, #0x24]   // [V26 tmp24+0x0c], [V25 tmp23]
-            strb    wzr, [fp, #0x2C]   // [V25 tmp23+0x04]
-            strb    wzr, [fp, #0x2D]   // [V25 tmp23+0x05]
-            ldp     x0, x1, [fp, #0x18]    // [V26 tmp24], [V26 tmp24+0x08]
+            movz    x2, #0xD1FFAB1E
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #0xD1FFAB1E LSL #32
+            str     x2, [fp, #0x20]    // [V22 tmp20]
+            str     wzr, [fp, #0x28]   // [V23 tmp21]
+            mov     w2, #21
+            str     w2, [fp, #0x2C]    // [V24 tmp22]
+            str     wzr, [fp, #0x18]   // [V25 tmp23]
+            strb    wzr, [fp, #0x1C]   // [V25 tmp23+0x04]
+            strb    wzr, [fp, #0x1D]   // [V25 tmp23+0x05]
+            ldp     x2, x0, [fp, #0x18]    // [V25 tmp23], [V06 tmp4]
             ; gcrRegs +[x0]
-            ldr     x2, [fp, #0x28]    // [V25 tmp23]
+            ldr     x1, [fp, #0x28]    // [V06 tmp4+0x08]
             movz    x3, #0xD1FFAB1E      // code for <unknown method>
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
-                       ;; size=60 bbWeight=1 PerfScore 16.50
+                       ;; size=68 bbWeight=1 PerfScore 18.50
 G_M36232_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x30
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 80, prolog size 12, PerfScore 21.00, instruction count 20, allocated bytes for code 80 (MethodHash=6ea77277) for method System.Text.Json.Tests.JsonDocumentTests+<>c:<CheckInvalidString>b__76_0():System.Object:this (FullOpts)
+; Total bytes of code 88, prolog size 12, PerfScore 23.00, instruction count 22, allocated bytes for code 88 (MethodHash=6ea77277) for method System.Text.Json.Tests.JsonDocumentTests+<>c:<CheckInvalidString>b__76_0():System.Object:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -77,7 +78,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 20 (0x00014) Actual length = 80 (0x000050)
+  Function Length   : 22 (0x00016) Actual length = 88 (0x000058)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+40 (+12.35%) : 73218.dasm - System.Collections.Tests.IGenericSharedAPI_Tests1[System.ValueTuple2[int,int]]:AddToCollection(System.Collections.Generic.IEnumerable1[System.ValueTuple2[int,int]],int):this (FullOpts)

@@ -7,25 +7,22 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T07] ( 10, 57   )     ref  ->  x20         this class-hnd single-def <System.Collections.Tests.IGenericSharedAPI_Tests`1[System.ValueTuple`2[int,int]]>
-;  V01 arg1         [V01,T02] (  6, 43   )     ref  ->  x19         class-hnd single-def <System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]]>
-;  V02 arg2         [V02,T14] (  4,  7   )     int  ->  x21         single-def
-;  V03 loc0         [V03,T10] (  5, 25   )     int  ->  x22        
-;  V04 loc1         [V04,T05] (  3, 65   )     ref  ->  x25         class-hnd single-def <<unknown class>>
-;  V05 loc2         [V05    ] (  5, 80   )  struct ( 8) [fp+0x18]  do-not-enreg[SB] must-init <System.ValueTuple`2[int,int]>
+;  V00 this         [V00,T05] ( 10, 65   )     ref  ->  x19         this class-hnd single-def <System.Collections.Tests.IGenericSharedAPI_Tests`1[System.ValueTuple`2[int,int]]>
+;  V01 arg1         [V01,T09] (  7, 31   )     ref  ->  x20         class-hnd single-def <System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]]>
+;  V02 arg2         [V02,T13] (  4,  7   )     int  ->  x21         single-def
+;  V03 loc0         [V03,T07] (  5, 41   )     int  ->  x22        
+;  V04 loc1         [V04,T06] (  4, 53   )     ref  ->  x25         class-hnd single-def <<unknown class>>
+;  V05 loc2         [V05    ] (  6, 76   )  struct ( 8) [fp+0x18]  do-not-enreg[SB] must-init <System.ValueTuple`2[int,int]>
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07,T11] (  3, 24   )     int  ->   x1         "impSpillLclRefs"
-;  V08 tmp2         [V08,T08] (  3, 48   )     int  ->   x1         "impSpillLclRefs"
-;  V09 tmp3         [V09,T03] (  5, 80   )     int  ->  [fp+0x18]  do-not-enreg[] "field V05.Item1 (fldOffset=0x0)" P-DEP
-;  V10 tmp4         [V10,T04] (  5, 80   )     int  ->  [fp+0x1C]  do-not-enreg[] "field V05.Item2 (fldOffset=0x4)" P-DEP
-;  V11 tmp5         [V11,T00] (  6,272   )  struct ( 8) [fp+0x10]  do-not-enreg[S] "by-value struct argument" <System.ValueTuple`2[int,int]>
-;* V12 tmp6         [V12,T06] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V13 tmp7         [V13,T01] (  2,128   )     ref  ->   x0         "argument with side effect"
-;* V14 tmp8         [V14,T15] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;* V15 tmp9         [V15,T16] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V16 cse0         [V16,T12] (  4, 14   )    long  ->  x24         "CSE - aggressive"
-;  V17 cse1         [V17,T13] (  4, 10   )    long  ->  x26         "CSE - aggressive"
-;  V18 cse2         [V18,T09] (  4, 35   )    long  ->  x23         "CSE - aggressive"
+;  V07 tmp1         [V07,T10] (  3, 24   )     int  ->   x1         "impSpillLclRefs"
+;  V08 tmp2         [V08,T02] (  3, 96   )     int  ->   x1         "impSpillLclRefs"
+;  V09 tmp3         [V09,T03] (  6, 76   )     int  ->  [fp+0x18]  do-not-enreg[] "field V05.Item1 (fldOffset=0x0)" P-DEP
+;  V10 tmp4         [V10,T04] (  6, 76   )     int  ->  [fp+0x1C]  do-not-enreg[] "field V05.Item2 (fldOffset=0x4)" P-DEP
+;  V11 tmp5         [V11,T00] (  8,224   )  struct ( 8) [fp+0x10]  do-not-enreg[S] "by-value struct argument" <System.ValueTuple`2[int,int]>
+;  V12 tmp6         [V12,T01] (  2,128   )     ref  ->   x0         "argument with side effect"
+;  V13 cse0         [V13,T11] (  4, 22   )    long  ->  x24         "CSE - aggressive"
+;  V14 cse1         [V14,T12] (  4, 10   )    long  ->  x26         "CSE - aggressive"
+;  V15 cse2         [V15,T08] (  4, 35   )    long  ->  x23         "CSE - aggressive"
 ;
 ; Lcl frame size = 16
 
@@ -37,24 +34,24 @@ G_M15374_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     x25, x26, [sp, #0x50]
             mov     fp, sp
             str     xzr, [fp, #0x18]   // [V05 loc2]
-            mov     x20, x0
-            ; gcrRegs +[x20]
-            mov     x19, x1
+            mov     x19, x0
             ; gcrRegs +[x19]
+            mov     x20, x1
+            ; gcrRegs +[x20]
             mov     w21, w2
                        ;; size=40 bbWeight=1 PerfScore 8.00
 G_M15374_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             mov     w22, #0xD1FFAB1E
-            mov     x0, x20
+            mov     x0, x19
             ; gcrRegs +[x0]
-            ldr     x23, [x20]
+            ldr     x23, [x19]
             ldr     x24, [x23, #0x48]
             ldr     x1, [x24, #0x28]
             blr     x1
             mov     x25, x0
             ; gcrRegs +[x25]
-            mov     x0, x20
-            mov     x1, x19
+            mov     x0, x19
+            mov     x1, x20
             ; gcrRegs +[x1]
             ldr     x26, [x23, #0x60]
             ldr     x2, [x26, #0x10]
@@ -63,33 +60,44 @@ G_M15374_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             cmp     w0, w21
             bge     G_M15374_IG07
                        ;; size=56 bbWeight=1 PerfScore 21.00
-G_M15374_IG03:        ; bbWeight=4, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=0000 {}, byref
+G_M15374_IG03:        ; bbWeight=4, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=0000 {}, byref, isz
             sxtw    w1, w22
             add     w22, w1, #1
-            mov     x0, x20
-            ; gcrRegs +[x0]
-            ldr     x2, [x24, #0x20]
-            blr     x2
-            ; gcrRegs -[x0]
-            str     x0, [fp, #0x18]    // [V05 loc2]
-            b       G_M15374_IG05
-                       ;; size=28 bbWeight=4 PerfScore 30.00
-G_M15374_IG04:        ; bbWeight=8, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=0000 {}, byref
-            sxtw    w1, w22
-            add     w22, w1, #1
-            mov     x0, x20
-            ; gcrRegs +[x0]
-            ldr     x2, [x24, #0x20]
-            blr     x2
-            ; gcrRegs -[x0]
-            str     x0, [fp, #0x18]    // [V05 loc2]
-                       ;; size=24 bbWeight=8 PerfScore 52.00
-G_M15374_IG05:        ; bbWeight=32, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=0000 {}, byref, isz
-            ldr     x0, [fp, #0x18]    // [V05 loc2]
-            str     x0, [fp, #0x10]    // [V11 tmp5]
             mov     x0, x19
             ; gcrRegs +[x0]
+            ldr     x2, [x24, #0x20]
+            blr     x2
+            ; gcrRegs -[x0]
+            str     x0, [fp, #0x18]    // [V05 loc2]
+            ldr     x1, [fp, #0x18]    // [V05 loc2]
+            str     x1, [fp, #0x10]    // [V11 tmp5]
             ldr     x1, [fp, #0x10]    // [V11 tmp5]
+            mov     x0, x20
+            ; gcrRegs +[x0]
+            mov     x2, x25
+            ; gcrRegs +[x2]
+            movz    x3, #0xD1FFAB1E      // code for <unknown method>
+            movk    x3, #0xD1FFAB1E LSL #16
+            movk    x3, #0xD1FFAB1E LSL #32
+            ldr     x3, [x3]
+            blr     x3
+            ; gcrRegs -[x0 x2]
+            cbz     w0, G_M15374_IG05
+                       ;; size=68 bbWeight=4 PerfScore 76.00
+G_M15374_IG04:        ; bbWeight=16, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=0000 {}, byref, isz
+            sxtw    w1, w22
+            add     w22, w1, #1
+            mov     x0, x19
+            ; gcrRegs +[x0]
+            ldr     x2, [x24, #0x20]
+            blr     x2
+            ; gcrRegs -[x0]
+            str     x0, [fp, #0x18]    // [V05 loc2]
+            ldr     x1, [fp, #0x18]    // [V05 loc2]
+            str     x1, [fp, #0x10]    // [V11 tmp5]
+            ldr     x1, [fp, #0x10]    // [V11 tmp5]
+            mov     x0, x20
+            ; gcrRegs +[x0]
             mov     x2, x25
             ; gcrRegs +[x2]
             movz    x3, #0xD1FFAB1E      // code for <unknown method>
@@ -99,7 +107,9 @@ G_M15374_IG05:        ; bbWeight=32, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=
             blr     x3
             ; gcrRegs -[x0 x2]
             cbnz    w0, G_M15374_IG04
-            mov     x0, x20
+                       ;; size=68 bbWeight=16 PerfScore 304.00
+G_M15374_IG05:        ; bbWeight=32, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=0000 {}, byref, isz
+            mov     x0, x19
             ; gcrRegs +[x0]
             ldr     x1, [x23, #0x58]
             ldr     x1, [x1, #0x38]
@@ -116,21 +126,21 @@ G_M15374_IG05:        ; bbWeight=32, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=
             blr     x3
             ; gcrRegs -[x0 x2]
             cbnz    w0, G_M15374_IG04
-                       ;; size=100 bbWeight=32 PerfScore 1024.00
+                       ;; size=56 bbWeight=32 PerfScore 624.00
 G_M15374_IG06:        ; bbWeight=4, gcrefRegs=2180000 {x19 x20 x25}, byrefRegs=0000 {}, byref, isz
-            ldr     x0, [fp, #0x18]    // [V05 loc2]
-            str     x0, [fp, #0x10]    // [V11 tmp5]
-            mov     x0, x20
-            ; gcrRegs +[x0]
-            mov     x1, x19
-            ; gcrRegs +[x1]
+            ldr     x2, [fp, #0x18]    // [V05 loc2]
+            str     x2, [fp, #0x10]    // [V11 tmp5]
             ldr     x2, [fp, #0x10]    // [V11 tmp5]
+            mov     x1, x20
+            ; gcrRegs +[x1]
+            mov     x0, x19
+            ; gcrRegs +[x0]
             ldr     x3, [x26, #0x18]
             blr     x3
             ; gcrRegs -[x0-x1]
-            mov     x0, x20
+            mov     x0, x19
             ; gcrRegs +[x0]
-            mov     x1, x19
+            mov     x1, x20
             ; gcrRegs +[x1]
             ldr     x2, [x26, #0x10]
             blr     x2
@@ -148,7 +158,7 @@ G_M15374_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ret     lr
                        ;; size=24 bbWeight=1 PerfScore 6.00
 
-; Total bytes of code 324, prolog size 28, PerfScore 1207.00, instruction count 81, allocated bytes for code 324 (MethodHash=3d9ec3f1) for method System.Collections.Tests.IGenericSharedAPI_Tests`1[System.ValueTuple`2[int,int]]:AddToCollection(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]],int):this (FullOpts)
+; Total bytes of code 364, prolog size 28, PerfScore 1105.00, instruction count 91, allocated bytes for code 364 (MethodHash=3d9ec3f1) for method System.Collections.Tests.IGenericSharedAPI_Tests`1[System.ValueTuple`2[int,int]]:AddToCollection(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]],int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -159,7 +169,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 81 (0x00051) Actual length = 324 (0x000144)
+  Function Length   : 91 (0x0005b) Actual length = 364 (0x00016c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

realworld.run.linux.arm64.checked.mch

-12 (-15.79%) : 13675.dasm - Microsoft.ML.Trainers.SdcaTrainerBase3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]:ApplyAt(long,Microsoft.ML.Trainers.SdcaTrainerBase3+Visitor[System.Canon,System.Canon,System.__Canon]):this (FullOpts)

@@ -9,43 +9,37 @@
 ;
 ;  V00 this         [V00,T03] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Microsoft.ML.Trainers.SdcaTrainerBase`3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T00] (  5,  5   )    long  ->   x1         single-def
-;  V02 arg2         [V02,T04] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]>
+;  V02 arg2         [V02,T01] (  4,  4   )     ref  ->   x3         class-hnd single-def <Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T01] (  3,  6   )     ref  ->   x0         single-def "arr expr"
-;  V05 tmp2         [V05,T02] (  3,  6   )     ref  ->   x3         single-def "argument with side effect"
-;  V06 tmp3         [V06,T06] (  2,  4   )    long  ->   x2         "argument with side effect"
-;  V07 tmp4         [V07,T05] (  2,  4   )   byref  ->   x0         single-def "argument with side effect"
+;  V04 tmp1         [V04,T02] (  3,  6   )     ref  ->   x2         single-def "arr expr"
+;  V05 tmp2         [V05,T04] (  2,  4   )   byref  ->   x2         single-def "argument with side effect"
 ;
 ; Lcl frame size = 0
 
 G_M22309_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M22309_IG02:        ; bbWeight=1, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x0 x2]
             mov     x3, x2
             ; gcrRegs +[x3]
-            mov     x2, x1
-            ; gcrRegs -[x2]
-            ldr     x0, [x0, #0x08]
-            ldr     w4, [x0, #0x08]
-            cmp     w1, w4
-            bhs     G_M22309_IG04
-            add     x0, x0, #16
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M22309_IG02:        ; bbWeight=1, gcrefRegs=0009 {x0 x3}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x0]
+            ldr     x2, [x0, #0x08]
+            ; gcrRegs +[x2]
+            ldr     w0, [x2, #0x08]
             ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-            ubfiz   x1, x1, #2, #32
-            add     x0, x0, x1
-            mov     x1, x2
-            mov     x2, x0
+            cmp     w1, w0
+            bhs     G_M22309_IG04
+            add     x2, x2, #16
+            ; gcrRegs -[x2]
             ; byrRegs +[x2]
+            ubfiz   x0, x1, #2, #32
+            add     x2, x2, x0
             ldr     x0, [x3, #0x08]
             ; gcrRegs +[x0]
-            ; byrRegs -[x0]
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
-                       ;; size=52 bbWeight=1 PerfScore 17.50
+                       ;; size=36 bbWeight=1 PerfScore 15.50
 G_M22309_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             br      x3
@@ -59,7 +53,7 @@ G_M22309_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_unix #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 76, prolog size 8, PerfScore 21.00, instruction count 19, allocated bytes for code 76 (MethodHash=cc0aa8da) for method Microsoft.ML.Trainers.SdcaTrainerBase`3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]:ApplyAt(long,Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]):this (FullOpts)
+; Total bytes of code 64, prolog size 12, PerfScore 19.50, instruction count 16, allocated bytes for code 64 (MethodHash=cc0aa8da) for method Microsoft.ML.Trainers.SdcaTrainerBase`3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]:ApplyAt(long,Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -70,7 +64,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 19 (0x00013) Actual length = 76 (0x00004c)
+  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-20 (-14.29%) : 26061.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)

@@ -8,9 +8,9 @@
 ; 0 inlinees with PGO data; 11 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
-;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
-;  V02 arg2         [V02,T03] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
+;  V00 this         [V00,T00] ( 13, 13   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
+;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (48) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[System.String]>
@@ -22,7 +22,7 @@
 ;* V11 tmp7         [V11    ] (  0,  0   )  struct (24) zero-ref    "impAppendStmt" <Microsoft.CodeAnalysis.BitVector>
 ;* V12 tmp8         [V12    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V13 tmp9         [V13    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
-;  V14 tmp10        [V14,T04] (  2,  2   )     ref  ->   x3         single-def "field V03.array (fldOffset=0x0)" P-INDEP
+;  V14 tmp10        [V14,T03] (  2,  2   )     ref  ->   x3         single-def "field V03.array (fldOffset=0x0)" P-INDEP
 ;* V15 tmp11        [V15    ] (  0,  0   )     ref  ->  zero-ref    "field V05.array (fldOffset=0x0)" P-INDEP
 ;* V16 tmp12        [V16    ] (  0,  0   )     ref  ->  zero-ref    "field V06.array (fldOffset=0x0)" P-INDEP
 ;* V17 tmp13        [V17    ] (  0,  0   )     ref  ->  zero-ref    "field V10.array (fldOffset=0x0)" P-INDEP
@@ -31,16 +31,12 @@
 ;* V20 tmp16        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V11._capacity (fldOffset=0x10)" P-INDEP
 ;* V21 tmp17        [V21    ] (  0,  0   )     ref  ->  zero-ref    "field V13.array (fldOffset=0x0)" P-INDEP
 ;  V22 tmp18        [V22    ] (  2,  4   )  struct (24) [fp+0x18]  do-not-enreg[XS] addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
-;  V23 tmp19        [V23,T00] ( 11, 22   )     ref  ->   x4         single-def "argument with side effect"
-;  V24 tmp20        [V24,T05] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V25 tmp21        [V25,T06] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
-;  V26 tmp22        [V26,T07] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V27 tmp23        [V27,T08] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
-;  V28 tmp24        [V28,T09] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
-;  V29 tmp25        [V29,T11] (  2,  4   )     int  ->   x7         "argument with side effect"
-;  V30 tmp26        [V30,T12] (  2,  4   )     int  ->   x8         "argument with side effect"
-;  V31 tmp27        [V31,T13] (  2,  4   )     int  ->   x9         "argument with side effect"
-;  V32 tmp28        [V32,T10] (  2,  4   )     ref  ->  x10         single-def "argument with side effect"
+;  V23 tmp19        [V23,T04] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
+;  V24 tmp20        [V24,T05] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
+;  V25 tmp21        [V25,T07] (  2,  4   )     int  ->   x6         "argument with side effect"
+;  V26 tmp22        [V26,T08] (  2,  4   )     int  ->   x7         "argument with side effect"
+;  V27 tmp23        [V27,T09] (  2,  4   )     int  ->   x8         "argument with side effect"
+;  V28 tmp24        [V28,T06] (  2,  4   )     ref  ->   x9         single-def "argument with side effect"
 ;
 ; Lcl frame size = 80
 
@@ -51,37 +47,30 @@ G_M55914_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=12 bbWeight=1 PerfScore 2.00
 G_M55914_IG02:        ; bbWeight=1, gcrefRegs=000F {x0 x1 x2 x3}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x0-x3]
-            mov     x4, x0
-            ; gcrRegs +[x4]
-            ldp     x5, x6, [x4, #0x40]
-            ; gcrRegs +[x5-x6]
-            ldrb    w7, [x4, #0x30]
-            ldrb    w8, [x4, #0x31]
-            ldrb    w9, [x4, #0x32]
-            ldr     x10, [x4, #0x50]
-            ; gcrRegs +[x10]
-                       ;; size=24 bbWeight=1 PerfScore 16.50
+            ldp     x4, x5, [x0, #0x40]
+            ; gcrRegs +[x4-x5]
+            ldrb    w6, [x0, #0x30]
+            ldrb    w7, [x0, #0x31]
+            ldrb    w8, [x0, #0x32]
+            ldr     x9, [x0, #0x50]
+            ; gcrRegs +[x9]
+                       ;; size=20 bbWeight=1 PerfScore 16.00
 G_M55914_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x11, x13, [x4, #0x58]
-            stp     x11, x13, [fp, #0x18]
-            ldr     x11, [x4, #0x68]
-            str     x11, [fp, #0x28]
+            ldp     x10, x11, [x0, #0x58]
+            stp     x10, x11, [fp, #0x18]
+            ldr     x10, [x0, #0x68]
+            str     x10, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M55914_IG04:        ; bbWeight=1, extend
-            ldrb    w11, [x4, #0x33]
-            str     w11, [sp, #0x18]   // [V04 OutArgs+0x18]
-            ldr     x11, [x4, #0x70]
-            ; gcrRegs +[x11]
-            str     x11, [sp, #0x20]   // [V04 OutArgs+0x20]
-            ldr     x4, [x4, #0x18]
-            str     x4, [sp, #0x28]    // [V04 OutArgs+0x28]
-            mov     x4, x5
-            mov     x5, x6
-            mov     w6, w7
-            ; gcrRegs -[x6]
-            mov     w7, w8
-            str     w9, [sp]   // [V04 OutArgs]
-            str     x10, [sp, #0x08]   // [V04 OutArgs+0x08]
+            ldrb    w10, [x0, #0x33]
+            str     w10, [sp, #0x18]   // [V04 OutArgs+0x18]
+            ldr     x10, [x0, #0x70]
+            ; gcrRegs +[x10]
+            str     x10, [sp, #0x20]   // [V04 OutArgs+0x20]
+            ldr     x10, [x0, #0x18]
+            str     x10, [sp, #0x28]   // [V04 OutArgs+0x28]
+            str     w8, [sp]   // [V04 OutArgs]
+            str     x9, [sp, #0x08]    // [V04 OutArgs+0x08]
             add     x8, fp, #24    // [V22 tmp18]
             str     x8, [sp, #0x10]    // [V04 OutArgs+0x10]
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
@@ -89,15 +78,15 @@ G_M55914_IG04:        ; bbWeight=1, extend
             movk    x8, #0xD1FFAB1E LSL #32
             ldr     x8, [x8]
             blr     x8
-            ; gcrRegs -[x1-x5 x10-x11]
-                       ;; size=76 bbWeight=1 PerfScore 23.00
+            ; gcrRegs -[x1-x5 x9-x10]
+                       ;; size=60 bbWeight=1 PerfScore 21.00
 G_M55914_IG05:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp, #0x30]
             add     sp, sp, #96
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 2.50
 
-; Total bytes of code 140, prolog size 12, PerfScore 53.00, instruction count 35, allocated bytes for code 140 (MethodHash=00902595) for method Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
+; Total bytes of code 120, prolog size 12, PerfScore 50.50, instruction count 30, allocated bytes for code 120 (MethodHash=00902595) for method Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -108,7 +97,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
+  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-16 (-12.50%) : 15358.dasm - System.Formats.Asn1.AsnDecoder:ReadIntegerBytes(System.ReadOnlySpan1[ubyte],int,byref,System.Nullable1[System.Formats.Asn1.Asn1Tag]):System.ReadOnlySpan`1ubyte

@@ -9,9 +9,9 @@
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
-;  V01 arg1         [V01,T04] (  3,  3   )     int  ->   x2         single-def
-;  V02 arg2         [V02,T03] (  3,  3   )   byref  ->   x5         single-def
-;  V03 arg3         [V03,T01] (  5,  5   )  struct (16) [fp+0x40]  do-not-enreg[SA] multireg-arg single-def <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
+;  V01 arg1         [V01,T03] (  3,  3   )     int  ->   x2         single-def
+;  V02 arg2         [V02,T02] (  3,  3   )   byref  ->   x5         single-def
+;  V03 arg3         [V03,T00] (  5,  5   )  struct (16) [fp+0x30]  do-not-enreg[SA] multireg-arg single-def <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
 ;* V04 loc0         [V04    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct (16) zero-ref    <System.ReadOnlySpan`1[ubyte]>
@@ -20,41 +20,38 @@
 ;* V09 tmp4         [V09    ] (  0,  0   )     int  ->  zero-ref   
 ;* V10 tmp5         [V10    ] (  0,  0   )  struct ( 8) zero-ref    <System.Formats.Asn1.Asn1Tag>
 ;* V11 tmp6         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-ret "Return value temp for multireg return" <System.ReadOnlySpan`1[ubyte]>
-;  V12 tmp7         [V12,T05] (  2,  2   )   byref  ->   x0         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V13 tmp8         [V13,T06] (  2,  2   )     int  ->   x1         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V12 tmp7         [V12,T04] (  2,  2   )   byref  ->   x0         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V13 tmp8         [V13,T05] (  2,  2   )     int  ->   x1         single-def "field V00._length (fldOffset=0x8)" P-INDEP
 ;* V14 tmp9         [V14    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V15 tmp10        [V15    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
 ;* V16 tmp11        [V16    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V17 tmp12        [V17    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
-;  V18 tmp13        [V18,T09] (  3,  2   )   ubyte  ->   x3         "field V10._controlFlags (fldOffset=0x0)" P-INDEP
-;  V19 tmp14        [V19,T10] (  3,  2   )     int  ->   x7         "field V10.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
-;  V20 tmp15        [V20,T11] (  2,  2   )   byref  ->   x0         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
-;  V21 tmp16        [V21,T12] (  2,  2   )     int  ->   x1         "field V11._length (fldOffset=0x8)" P-INDEP
-;  V22 tmp17        [V22,T13] (  2,  2   )   ubyte  ->   x3         "V04.[000..001)"
-;  V23 tmp18        [V23,T14] (  2,  1.50)   ubyte  ->   x4         "V04.[004..005)"
-;  V24 tmp19        [V24,T15] (  2,  1.50)     int  ->   x6         "V04.[008..012)"
-;  V25 tmp20        [V25,T08] (  3,  3   )  struct (16) [fp+0x30]  do-not-enreg[SFR] multireg-ret must-init "Return value temp for multi-reg return (rejected tail call)." <System.ReadOnlySpan`1[ubyte]>
-;  V26 tmp21        [V26,T02] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Formats.Asn1.Asn1Tag>
-;  V27 tmp22        [V27,T00] (  4,  8   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.ReadOnlySpan`1[ubyte]>
-;  V28 tmp23        [V28,T07] (  2,  4   )     int  ->   x2         "argument with side effect"
-;* V29 cse0         [V29,T16] (  0,  0   )    long  ->  zero-ref    "CSE - moderate"
+;  V18 tmp13        [V18,T07] (  3,  2   )   ubyte  ->   x3         "field V10._controlFlags (fldOffset=0x0)" P-INDEP
+;  V19 tmp14        [V19,T08] (  3,  2   )     int  ->   x7         "field V10.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
+;  V20 tmp15        [V20,T09] (  2,  2   )   byref  ->   x0         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
+;  V21 tmp16        [V21,T10] (  2,  2   )     int  ->   x1         "field V11._length (fldOffset=0x8)" P-INDEP
+;  V22 tmp17        [V22,T11] (  2,  2   )   ubyte  ->   x3         "V04.[000..001)"
+;  V23 tmp18        [V23,T12] (  2,  1.50)   ubyte  ->   x4         "V04.[004..005)"
+;  V24 tmp19        [V24,T13] (  2,  1.50)     int  ->   x6         "V04.[008..012)"
+;  V25 tmp20        [V25,T06] (  3,  3   )  struct (16) [fp+0x20]  do-not-enreg[SFR] multireg-ret must-init "Return value temp for multi-reg return (rejected tail call)." <System.ReadOnlySpan`1[ubyte]>
+;  V26 tmp21        [V26,T01] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Formats.Asn1.Asn1Tag>
+;* V27 cse0         [V27,T14] (  0,  0   )    long  ->  zero-ref    "CSE - moderate"
 ;
-; Lcl frame size = 64
+; Lcl frame size = 48
 
 G_M37843_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x50]!
+            stp     fp, lr, [sp, #-0x40]!
             mov     fp, sp
-            str     xzr, [fp, #0x30]   // [V25 tmp20]
-            str     xzr, [fp, #0x18]   // [V27 tmp22]
-            stp     x4, x5, [fp, #0x40]    // [V03 arg3], [V03 arg3+0x08]
+            str     xzr, [fp, #0x20]   // [V25 tmp20]
+            stp     x4, x5, [fp, #0x30]    // [V03 arg3], [V03 arg3+0x08]
             mov     x5, x3
             ; byrRegs +[x5]
-                       ;; size=24 bbWeight=1 PerfScore 5.00
+                       ;; size=20 bbWeight=1 PerfScore 4.00
 G_M37843_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0021 {x0 x5}, byref, isz
             ; byrRegs +[x0]
-            ldrb    w3, [fp, #0x40]    // [V03 arg3]
-            ldrb    w4, [fp, #0x44]    // [V03 arg3+0x04]
-            ldr     w6, [fp, #0x48]    // [V03 arg3+0x08]
+            ldrb    w3, [fp, #0x30]    // [V03 arg3]
+            ldrb    w4, [fp, #0x34]    // [V03 arg3+0x04]
+            ldr     w6, [fp, #0x38]    // [V03 arg3+0x08]
             cbnz    w3, G_M37843_IG04
                        ;; size=16 bbWeight=1 PerfScore 7.00
 G_M37843_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0021 {x0 x5}, byref
@@ -67,12 +64,9 @@ G_M37843_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0021 {x0 x5}
             sxtw    w7, w6
                        ;; size=8 bbWeight=0.50 PerfScore 0.50
 G_M37843_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0021 {x0 x5}, byref
-            str     x0, [fp, #0x18]    // [V27 tmp22]
-            str     w1, [fp, #0x20]    // [V27 tmp22+0x08]
-            strb    w3, [fp, #0x28]    // [V26 tmp21]
-            str     w7, [fp, #0x2C]    // [V26 tmp21+0x04]
-            ldp     x0, x1, [fp, #0x18]    // [V27 tmp22], [V27 tmp22+0x08]
-            ldr     x3, [fp, #0x28]    // [V26 tmp21]
+            strb    w3, [fp, #0x18]    // [V26 tmp21]
+            str     w7, [fp, #0x1C]    // [V26 tmp21+0x04]
+            ldr     x3, [fp, #0x18]    // [V26 tmp21]
             mov     w4, #2
             movz    x6, #0xD1FFAB1E      // code for System.Formats.Asn1.AsnDecoder:GetIntegerContents(System.ReadOnlySpan`1[ubyte],int,System.Formats.Asn1.Asn1Tag,int,byref):System.ReadOnlySpan`1[ubyte]
             movk    x6, #0xD1FFAB1E LSL #16
@@ -80,16 +74,16 @@ G_M37843_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0021 {x0 x5}, b
             ldr     x6, [x6]
             blr     x6
             ; byrRegs -[x5]
-            stp     x0, x1, [fp, #0x30]    // [V25 tmp20], [V25 tmp20+0x08]
-            ldr     x0, [fp, #0x30]    // [V25 tmp20]
-            ldr     w1, [fp, #0x38]    // [V25 tmp20+0x08]
-                       ;; size=60 bbWeight=1 PerfScore 20.00
+            stp     x0, x1, [fp, #0x20]    // [V25 tmp20], [V25 tmp20+0x08]
+            ldr     x0, [fp, #0x20]    // [V25 tmp20]
+            ldr     w1, [fp, #0x28]    // [V25 tmp20+0x08]
+                       ;; size=48 bbWeight=1 PerfScore 15.00
 G_M37843_IG06:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x50
+            ldp     fp, lr, [sp], #0x40
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 128, prolog size 16, PerfScore 35.50, instruction count 32, allocated bytes for code 128 (MethodHash=cd5d6c2c) for method System.Formats.Asn1.AsnDecoder:ReadIntegerBytes(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.ReadOnlySpan`1[ubyte] (FullOpts)
+; Total bytes of code 112, prolog size 12, PerfScore 29.50, instruction count 28, allocated bytes for code 112 (MethodHash=cd5d6c2c) for method System.Formats.Asn1.AsnDecoder:ReadIntegerBytes(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.ReadOnlySpan`1[ubyte] (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -100,7 +94,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 32 (0x00020) Actual length = 128 (0x000080)
+  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -108,7 +102,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    89          save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
+    87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
     E4          end
     E4          end
 

+8 (+3.92%) : 27406.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)

@@ -8,8 +8,8 @@
 ; 0 inlinees with PGO data; 12 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
-;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression>
+;  V00 this         [V00,T01] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
+;  V01 arg1         [V01,T00] ( 12, 12   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (24) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -22,7 +22,7 @@
 ;* V11 tmp7         [V11    ] (  0,  0   )  struct (24) zero-ref    "impAppendStmt" <Microsoft.CodeAnalysis.BitVector>
 ;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    single-def "Inline return value spill temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V13 tmp9         [V13    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V14 tmp10        [V14,T03] (  2,  4   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V14 tmp10        [V14,T02] (  2,  4   )     ref  ->   x1         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V15 tmp11        [V15    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V02.array (fldOffset=0x0)" P-INDEP
 ;* V16 tmp12        [V16    ] (  0,  0   )     ref  ->  zero-ref    "field V05.array (fldOffset=0x0)" P-INDEP
 ;* V17 tmp13        [V17    ] (  0,  0   )     ref  ->  zero-ref    "field V07.array (fldOffset=0x0)" P-INDEP
@@ -31,32 +31,29 @@
 ;* V20 tmp16        [V20    ] (  0,  0   )     ref  ->  zero-ref    "field V11._bits (fldOffset=0x0)" P-INDEP
 ;* V21 tmp17        [V21    ] (  0,  0   )    long  ->  zero-ref    "field V11._bits0 (fldOffset=0x8)" P-INDEP
 ;* V22 tmp18        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V11._capacity (fldOffset=0x10)" P-INDEP
-;  V23 tmp19        [V23,T11] (  3,  2   )     ref  ->  x21         single-def "field V12.array (fldOffset=0x0)" P-INDEP
-;  V24 tmp20        [V24,T10] (  3,  2.50)     ref  ->   x2         single-def "field V13.array (fldOffset=0x0)" P-INDEP
-;  V25 tmp21        [V25    ] (  2,  4   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
-;  V26 tmp22        [V26,T00] (  9, 18   )     ref  ->  x19         single-def "argument with side effect"
-;  V27 tmp23        [V27,T04] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V28 tmp24        [V28,T05] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
-;  V29 tmp25        [V29,T06] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V30 tmp26        [V30,T07] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
-;  V31 tmp27        [V31,T09] (  2,  4   )     int  ->   x5         "argument with side effect"
-;  V32 tmp28        [V32,T08] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
+;  V23 tmp19        [V23,T09] (  3,  2   )     ref  ->   x2         single-def "field V12.array (fldOffset=0x0)" P-INDEP
+;  V24 tmp20        [V24,T08] (  3,  2.50)     ref  ->   x2         single-def "field V13.array (fldOffset=0x0)" P-INDEP
+;  V25 tmp21        [V25    ] (  2,  4   )  struct (24) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
+;  V26 tmp22        [V26,T03] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
+;  V27 tmp23        [V27,T04] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
+;  V28 tmp24        [V28,T05] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
+;  V29 tmp25        [V29,T07] (  2,  4   )     int  ->   x6         "argument with side effect"
+;  V30 tmp26        [V30,T06] (  2,  4   )     ref  ->   x7         single-def "argument with side effect"
 ;
-; Lcl frame size = 56
+; Lcl frame size = 48
 
 G_M12801_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            sub     sp, sp, #96
+            sub     sp, sp, #80
             stp     fp, lr, [sp, #0x18]
-            stp     x19, x20, [sp, #0x48]
-            str     x21, [sp, #0x58]
+            stp     x19, x20, [sp, #0x40]
             add     fp, sp, #24
-            stp     xzr, xzr, [fp, #0x18]  // [V25 tmp21], [V25 tmp21+0x08]
-            str     xzr, [fp, #0x28]   // [V25 tmp21+0x10]
+            stp     xzr, xzr, [fp, #0x10]  // [V25 tmp21], [V25 tmp21+0x08]
+            str     xzr, [fp, #0x20]   // [V25 tmp21+0x10]
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     x19, x1
             ; gcrRegs +[x19]
-                       ;; size=36 bbWeight=1 PerfScore 7.00
+                       ;; size=32 bbWeight=1 PerfScore 6.00
 G_M12801_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             ldr     x2, [x19, #0x48]
             ; gcrRegs +[x2]
@@ -64,12 +61,11 @@ G_M12801_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M12801_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
-            mov     x21, xzr
-            ; gcrRegs +[x21]
+            mov     x2, xzr
+            ; gcrRegs +[x2]
             b       G_M12801_IG05
                        ;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M12801_IG04:        ; bbWeight=0.50, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x21] +[x2]
             mov     x0, x20
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -81,67 +77,73 @@ G_M12801_IG04:        ; bbWeight=0.50, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs -[x2]
-            mov     x21, x0
-            ; gcrRegs +[x21]
-                       ;; size=40 bbWeight=0.50 PerfScore 4.00
-G_M12801_IG05:        ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            ldr     x0, [x19, #0x18]
-            ; gcrRegs +[x0]
-            ldrsb   wzr, [x20]
-            ldr     x1, [x19, #0x20]
-            ; gcrRegs +[x1]
-            mov     x2, x21
+            mov     x2, x0
             ; gcrRegs +[x2]
-            ldp     x3, x4, [x19, #0x50]
-            ; gcrRegs +[x3-x4]
-            ldrb    w5, [x19, #0x38]
-            ldr     x6, [x19, #0x60]
-            ; gcrRegs +[x6]
-                       ;; size=28 bbWeight=1 PerfScore 19.50
+                       ;; size=40 bbWeight=0.50 PerfScore 4.00
+G_M12801_IG05:        ; bbWeight=1, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0]
+            ldr     x1, [x19, #0x18]
+            ; gcrRegs +[x1]
+            ldrsb   wzr, [x20]
+            ldr     x3, [x19, #0x20]
+            ; gcrRegs +[x3]
+            ldp     x4, x5, [x19, #0x50]
+            ; gcrRegs +[x4-x5]
+            ldrb    w6, [x19, #0x38]
+            ldr     x7, [x19, #0x60]
+            ; gcrRegs +[x7]
+                       ;; size=24 bbWeight=1 PerfScore 19.00
 G_M12801_IG06:        ; bbWeight=1, nogc, extend
-            ldp     x7, x8, [x19, #0x68]
-            stp     x7, x8, [fp, #0x18]
-            ldr     x7, [x19, #0x78]
-            str     x7, [fp, #0x28]
+            ldp     x0, x8, [x19, #0x68]
+            stp     x0, x8, [fp, #0x10]
+            ldr     x0, [x19, #0x78]
+            str     x0, [fp, #0x20]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M12801_IG07:        ; bbWeight=1, extend
-            ldr     x7, [x19, #0x28]
-            ; gcrRegs +[x7]
-            str     x7, [sp]   // [V04 OutArgs]
-            mov     x7, xzr
+            ldr     x0, [x19, #0x28]
+            ; gcrRegs +[x0]
+            str     x0, [sp]   // [V04 OutArgs]
+            mov     x0, xzr
+            ; gcrRegs -[x0]
+            str     x0, [sp, #0x08]    // [V04 OutArgs+0x08]
+            str     x1, [sp, #0x10]    // [V04 OutArgs+0x10]
+            mov     x1, x3
+            mov     x3, x4
+            mov     x4, x5
+            mov     w5, w6
+            ; gcrRegs -[x5]
+            mov     x6, x7
+            ; gcrRegs +[x6]
+            add     x7, fp, #16    // [V25 tmp21]
             ; gcrRegs -[x7]
-            str     x7, [sp, #0x08]    // [V04 OutArgs+0x08]
-            str     x0, [sp, #0x10]    // [V04 OutArgs+0x10]
             mov     x0, x19
-            add     x7, fp, #24    // [V25 tmp21]
+            ; gcrRegs +[x0]
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
             movk    x8, #0xD1FFAB1E LSL #16
             movk    x8, #0xD1FFAB1E LSL #32
             ldr     x8, [x8]
             blr     x8
-            ; gcrRegs -[x1-x4 x6 x19-x21]
-                       ;; size=48 bbWeight=1 PerfScore 13.00
+            ; gcrRegs -[x1-x4 x6 x19-x20]
+                       ;; size=68 bbWeight=1 PerfScore 15.50
 G_M12801_IG08:        ; bbWeight=1, epilog, nogc, extend
-            ldr     x21, [sp, #0x58]
-            ldp     x19, x20, [sp, #0x48]
+            ldp     x19, x20, [sp, #0x40]
             ldp     fp, lr, [sp, #0x18]
-            add     sp, sp, #96
+            add     sp, sp, #80
             ret     lr
-                       ;; size=20 bbWeight=1 PerfScore 5.50
+                       ;; size=16 bbWeight=1 PerfScore 3.50
 
-; Total bytes of code 204, prolog size 28, PerfScore 62.75, instruction count 51, allocated bytes for code 204 (MethodHash=9e98cdfe) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
+; Total bytes of code 212, prolog size 24, PerfScore 61.75, instruction count 53, allocated bytes for code 212 (MethodHash=9e98cdfe) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 3
+  Code Words        : 2
   Epilog Count      : 1
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 51 (0x00033) Actual length = 204 (0x0000cc)
+  Function Length   : 53 (0x00035) Actual length = 212 (0x0000d4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -149,12 +151,9 @@ Unwind Info:
   ---- Unwind codes ----
     E2 03       add_fp 3 (0x03); add fp, sp, #24
     ---- Epilog start at index 2 ----
-    D0 8B       save_reg X#2 Z#11 (0x0B); str x21, [sp, #88]
-    C8 09       save_regp X#0 Z#9 (0x09); stp x19, x20, [sp, #72]
+    C8 08       save_regp X#0 Z#8 (0x08); stp x19, x20, [sp, #64]
     43          save_fplr #3 (0x03); stp fp, lr, [sp, #24]
-    06          alloc_s #6 (0x06); sub sp, sp, #96 (0x060)
-    E4          end
-    E4          end
+    05          alloc_s #5 (0x05); sub sp, sp, #80 (0x050)
     E4          end
     E4          end
 

+16 (+6.90%) : 27166.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:g_visitArgumentsAndUpdateCall|101(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)

@@ -8,9 +8,9 @@
 ; 0 inlinees with PGO data; 15 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
-;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
-;  V02 arg2         [V02,T03] (  3,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+;  V00 this         [V00,T01] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
+;  V01 arg1         [V01,T00] ( 15, 15   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
+;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (48) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -27,7 +27,7 @@
 ;* V16 tmp11        [V16    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
 ;* V17 tmp12        [V17    ] (  0,  0   )  struct ( 8) zero-ref    single-def "Inline return value spill temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V18 tmp13        [V18    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V19 tmp14        [V19,T04] (  2,  4   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V19 tmp14        [V19,T03] (  2,  4   )     ref  ->   x2         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V20 tmp15        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V03.array (fldOffset=0x0)" P-INDEP
 ;* V21 tmp16        [V21    ] (  0,  0   )     ref  ->  zero-ref    "field V06.array (fldOffset=0x0)" P-INDEP
 ;* V22 tmp17        [V22    ] (  0,  0   )     ref  ->  zero-ref    "field V08.array (fldOffset=0x0)" P-INDEP
@@ -37,30 +37,27 @@
 ;* V26 tmp21        [V26    ] (  0,  0   )    long  ->  zero-ref    "field V14._bits0 (fldOffset=0x8)" P-INDEP
 ;* V27 tmp22        [V27    ] (  0,  0   )     int  ->  zero-ref    "field V14._capacity (fldOffset=0x10)" P-INDEP
 ;* V28 tmp23        [V28    ] (  0,  0   )     ref  ->  zero-ref    "field V16.array (fldOffset=0x0)" P-INDEP
-;  V29 tmp24        [V29,T15] (  3,  2   )     ref  ->  x22         single-def "field V17.array (fldOffset=0x0)" P-INDEP
-;  V30 tmp25        [V30,T14] (  3,  2.50)     ref  ->   x2         single-def "field V18.array (fldOffset=0x0)" P-INDEP
-;  V31 tmp26        [V31    ] (  2,  4   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
-;  V32 tmp27        [V32,T00] ( 12, 24   )     ref  ->  x19         single-def "argument with side effect"
-;  V33 tmp28        [V33,T05] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V34 tmp29        [V34,T06] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
-;  V35 tmp30        [V35,T07] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V36 tmp31        [V36,T08] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
-;  V37 tmp32        [V37,T09] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
-;  V38 tmp33        [V38,T11] (  2,  4   )     int  ->   x6         "argument with side effect"
-;  V39 tmp34        [V39,T12] (  2,  4   )     int  ->   x7         "argument with side effect"
-;  V40 tmp35        [V40,T13] (  2,  4   )     int  ->   x8         "argument with side effect"
-;  V41 tmp36        [V41,T10] (  2,  4   )     ref  ->   x9         single-def "argument with side effect"
+;  V29 tmp24        [V29,T12] (  3,  2   )     ref  ->   x3         single-def "field V17.array (fldOffset=0x0)" P-INDEP
+;  V30 tmp25        [V30,T11] (  3,  2.50)     ref  ->   x2         single-def "field V18.array (fldOffset=0x0)" P-INDEP
+;  V31 tmp26        [V31    ] (  2,  4   )  struct (24) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
+;  V32 tmp27        [V32,T04] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
+;  V33 tmp28        [V33,T05] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
+;  V34 tmp29        [V34,T06] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
+;  V35 tmp30        [V35,T08] (  2,  4   )     int  ->   x7         "argument with side effect"
+;  V36 tmp31        [V36,T09] (  2,  4   )     int  ->   x0         "argument with side effect"
+;  V37 tmp32        [V37,T10] (  2,  4   )     int  ->   x1         "argument with side effect"
+;  V38 tmp33        [V38,T07] (  2,  4   )     ref  ->   x8         single-def "argument with side effect"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 72
 
 G_M26558_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            sub     sp, sp, #128
+            sub     sp, sp, #112
             stp     fp, lr, [sp, #0x30]
-            stp     x19, x20, [sp, #0x60]
-            stp     x21, x22, [sp, #0x70]
+            stp     x19, x20, [sp, #0x58]
+            str     x21, [sp, #0x68]
             add     fp, sp, #48
-            stp     xzr, xzr, [fp, #0x18]  // [V31 tmp26], [V31 tmp26+0x08]
-            str     xzr, [fp, #0x28]   // [V31 tmp26+0x10]
+            stp     xzr, xzr, [fp, #0x10]  // [V31 tmp26], [V31 tmp26+0x08]
+            str     xzr, [fp, #0x20]   // [V31 tmp26+0x10]
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     x19, x1
@@ -75,12 +72,12 @@ G_M26558_IG02:        ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=00
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M26558_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
-            mov     x22, xzr
-            ; gcrRegs +[x22]
+            mov     x3, xzr
+            ; gcrRegs +[x3]
             b       G_M26558_IG05
                        ;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M26558_IG04:        ; bbWeight=0.50, gcrefRegs=380004 {x2 x19 x20 x21}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x22] +[x2]
+            ; gcrRegs -[x3] +[x2]
             mov     x0, x20
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -92,73 +89,79 @@ G_M26558_IG04:        ; bbWeight=0.50, gcrefRegs=380004 {x2 x19 x20 x21}, byrefR
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs -[x2]
-            mov     x22, x0
-            ; gcrRegs +[x22]
-                       ;; size=40 bbWeight=0.50 PerfScore 4.00
-G_M26558_IG05:        ; bbWeight=1, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            ldr     x0, [x19, #0x18]
-            ; gcrRegs +[x0]
-            ldrsb   wzr, [x20]
-            mov     x1, x21
-            ; gcrRegs +[x1]
-            ldr     x2, [x19, #0x28]
-            ; gcrRegs +[x2]
-            mov     x3, x22
+            mov     x3, x0
             ; gcrRegs +[x3]
-            ldp     x4, x5, [x19, #0x40]
-            ; gcrRegs +[x4-x5]
-            ldrb    w6, [x19, #0x30]
-            ldrb    w7, [x19, #0x31]
-            ldrb    w8, [x19, #0x32]
-            ldr     x9, [x19, #0x50]
-            ; gcrRegs +[x9]
-                       ;; size=40 bbWeight=1 PerfScore 26.00
+                       ;; size=40 bbWeight=0.50 PerfScore 4.00
+G_M26558_IG05:        ; bbWeight=1, gcrefRegs=380008 {x3 x19 x20 x21}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0]
+            ldr     x2, [x19, #0x18]
+            ; gcrRegs +[x2]
+            ldrsb   wzr, [x20]
+            ldr     x4, [x19, #0x28]
+            ; gcrRegs +[x4]
+            ldp     x5, x6, [x19, #0x40]
+            ; gcrRegs +[x5-x6]
+            ldrb    w7, [x19, #0x30]
+            ldrb    w0, [x19, #0x31]
+            ldrb    w1, [x19, #0x32]
+            ldr     x8, [x19, #0x50]
+            ; gcrRegs +[x8]
+                       ;; size=32 bbWeight=1 PerfScore 25.00
 G_M26558_IG06:        ; bbWeight=1, nogc, extend
-            ldp     x10, x11, [x19, #0x58]
-            stp     x10, x11, [fp, #0x18]
-            ldr     x10, [x19, #0x68]
-            str     x10, [fp, #0x28]
+            ldp     x9, x10, [x19, #0x58]
+            stp     x9, x10, [fp, #0x10]
+            ldr     x9, [x19, #0x68]
+            str     x9, [fp, #0x20]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M26558_IG07:        ; bbWeight=1, extend
-            ldrb    w10, [x19, #0x33]
-            str     w10, [sp, #0x18]   // [V05 OutArgs+0x18]
-            ldr     x10, [x19, #0x70]
-            ; gcrRegs +[x10]
-            str     x10, [sp, #0x20]   // [V05 OutArgs+0x20]
-            str     x0, [sp, #0x28]    // [V05 OutArgs+0x28]
+            ldrb    w9, [x19, #0x33]
+            str     w9, [sp, #0x18]    // [V05 OutArgs+0x18]
+            ldr     x9, [x19, #0x70]
+            ; gcrRegs +[x9]
+            str     x9, [sp, #0x20]    // [V05 OutArgs+0x20]
+            str     x2, [sp, #0x28]    // [V05 OutArgs+0x28]
+            mov     x2, x4
+            mov     x4, x5
+            mov     x5, x6
+            mov     w6, w7
+            ; gcrRegs -[x6]
+            mov     w7, w0
+            str     w1, [sp]   // [V05 OutArgs]
+            str     x8, [sp, #0x08]    // [V05 OutArgs+0x08]
+            add     x0, fp, #16    // [V31 tmp26]
+            str     x0, [sp, #0x10]    // [V05 OutArgs+0x10]
             mov     x0, x19
-            str     w8, [sp]   // [V05 OutArgs]
-            str     x9, [sp, #0x08]    // [V05 OutArgs+0x08]
-            add     x8, fp, #24    // [V31 tmp26]
-            str     x8, [sp, #0x10]    // [V05 OutArgs+0x10]
+            ; gcrRegs +[x0]
+            mov     x1, x21
+            ; gcrRegs +[x1]
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
+            ; gcrRegs -[x8]
             movk    x8, #0xD1FFAB1E LSL #16
             movk    x8, #0xD1FFAB1E LSL #32
             ldr     x8, [x8]
             blr     x8
-            ; gcrRegs -[x1-x5 x9-x10 x19-x22]
-                       ;; size=60 bbWeight=1 PerfScore 18.50
+            ; gcrRegs -[x1-x5 x9 x19-x21]
+                       ;; size=84 bbWeight=1 PerfScore 21.50
 G_M26558_IG08:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x70]
-            ldp     x19, x20, [sp, #0x60]
+            ldr     x21, [sp, #0x68]
+            ldp     x19, x20, [sp, #0x58]
             ldp     fp, lr, [sp, #0x30]
-            add     sp, sp, #128
+            add     sp, sp, #112
             ret     lr
-                       ;; size=20 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 5.50
 
-; Total bytes of code 232, prolog size 28, PerfScore 74.25, instruction count 58, allocated bytes for code 232 (MethodHash=faef9841) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
+; Total bytes of code 248, prolog size 28, PerfScore 77.25, instruction count 62, allocated bytes for code 248 (MethodHash=faef9841) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 3
   Epilog Count      : 1
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 58 (0x0003a) Actual length = 232 (0x0000e8)
+  Function Length   : 62 (0x0003e) Actual length = 248 (0x0000f8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -166,9 +169,12 @@ Unwind Info:
   ---- Unwind codes ----
     E2 06       add_fp 6 (0x06); add fp, sp, #48
     ---- Epilog start at index 2 ----
-    E6          save_next
-    C8 0C       save_regp X#0 Z#12 (0x0C); stp x19, x20, [sp, #96]
+    D0 8D       save_reg X#2 Z#13 (0x0D); str x21, [sp, #104]
+    C8 0B       save_regp X#0 Z#11 (0x0B); stp x19, x20, [sp, #88]
     46          save_fplr #6 (0x06); stp fp, lr, [sp, #48]
-    08          alloc_s #8 (0x08); sub sp, sp, #128 (0x080)
+    07          alloc_s #7 (0x07); sub sp, sp, #112 (0x070)
+    E4          end
+    E4          end
+    E4          end
     E4          end
 

+16 (+12.50%) : 1344.dasm - System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)

@@ -8,88 +8,86 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  9,  6.50)     ref  ->  [fp+0x18]  this class-hnd single-def <System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]>
+;  V00 this         [V00,T00] (  9,  6.50)     ref  ->  x19         this class-hnd single-def <System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]>
 ;  V01 loc0         [V01,T02] (  3,  2.50)     ref  ->   x1         class-hnd exact single-def <<unknown class>>
-;  V02 loc1         [V02,T03] (  3,  2.50)     int  ->   x3        
+;  V02 loc1         [V02,T03] (  3,  2.50)     int  ->   x2        
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04    ] (  2,  2   )  struct (32) [fp+0x20]  do-not-enreg[XS] addr-exposed "by-value struct argument" <BenchmarkDotNet.Reports.Measurement>
-;  V05 tmp2         [V05,T01] (  3,  3   )     ref  ->   x2         single-def "argument with side effect"
-;  V06 cse0         [V06,T04] (  3,  2.50)     int  ->   x2         "CSE - aggressive"
-;  V07 cse1         [V07,T05] (  2,  2   )     int  ->   x4         "CSE - aggressive"
+;  V04 tmp1         [V04    ] (  2,  2   )  struct (32) [fp+0x18]  do-not-enreg[XS] addr-exposed "by-value struct argument" <BenchmarkDotNet.Reports.Measurement>
+;  V05 tmp2         [V05,T01] (  3,  3   )     ref  ->   x3         single-def "argument with side effect"
+;  V06 cse0         [V06,T04] (  3,  2.50)     int  ->   x0         "CSE - aggressive"
+;  V07 cse1         [V07,T05] (  2,  2   )     int  ->   x3         "CSE - aggressive"
 ;
-; Lcl frame size = 48
+; Lcl frame size = 40
 
 G_M7274_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
+            str     x19, [sp, #0x38]
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M7274_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x0]
-            ldr     x1, [x0, #0x18]
+            mov     x19, x0
+            ; gcrRegs +[x19]
+                       ;; size=16 bbWeight=1 PerfScore 3.00
+G_M7274_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            ldr     x1, [x19, #0x18]
             ; gcrRegs +[x1]
-            ldr     w2, [x0, #0x14]
-            sub     w3, w2, #1
-            ldr     w4, [x1, #0x08]
-            cmp     w4, w3
+            ldr     w0, [x19, #0x14]
+            sub     w2, w0, #1
+            ldr     w3, [x1, #0x08]
+            cmp     w3, w2
             bls     G_M7274_IG05
                        ;; size=24 bbWeight=1 PerfScore 11.00
-G_M7274_IG03:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref
-            add     w2, w2, #1
-            str     w2, [x0, #0x14]
-            str     x0, [fp, #0x18]    // [V00 this]
-            ; GC ptr vars +{V00}
-            ldr     x2, [x0, #0x20]
-            ; gcrRegs +[x2]
-            ubfiz   x3, x3, #5, #32
-            add     x3, x3, #16
-            add     x1, x1, x3
+G_M7274_IG03:        ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
+            add     w0, w0, #1
+            str     w0, [x19, #0x14]
+            ldr     x3, [x19, #0x20]
+            ; gcrRegs +[x3]
+            ubfiz   x0, x2, #5, #32
+            add     x0, x0, #16
+            add     x1, x1, x0
             ; gcrRegs -[x1]
             ; byrRegs +[x1]
-            ldp     q16, q17, [x1]
-            stp     q16, q17, [fp, #0x20]
-            add     x1, fp, #32    // [V04 tmp1]
+            ldp     x0, x2, [x1]
+            stp     x0, x2, [fp, #0x18]
+            ldp     x0, x2, [x1, #0x10]
+            stp     x0, x2, [fp, #0x28]
+            add     x1, fp, #24    // [V04 tmp1]
             ; byrRegs -[x1]
-            ldr     x0, [x2, #0x08]
-            ldr     x2, [x2, #0x18]
-            ; gcrRegs -[x2]
-            blr     x2
-            ; gcrRegs -[x0]
-            ldr     x0, [fp, #0x18]    // [V00 this]
+            ldr     x0, [x3, #0x08]
             ; gcrRegs +[x0]
-            str     d0, [x0, #0x08]
+            ldr     x2, [x3, #0x18]
+            blr     x2
+            ; gcrRegs -[x0 x3]
+            str     d0, [x19, #0x08]
             mov     w0, #1
-            ; gcrRegs -[x0]
-                       ;; size=64 bbWeight=0.50 PerfScore 11.25
+                       ;; size=64 bbWeight=0.50 PerfScore 12.75
 G_M7274_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+            ldr     x19, [sp, #0x38]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M7274_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x0]
-            ; GC ptr vars -{V00}
-            str     xzr, [x0, #0x08]
-            movn    w1, #0
-            str     w1, [x0, #0x14]
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+G_M7274_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+            str     xzr, [x19, #0x08]
+            movn    w0, #0
+            str     w0, [x19, #0x14]
             mov     w0, wzr
-            ; gcrRegs -[x0]
                        ;; size=16 bbWeight=0.50 PerfScore 1.50
 G_M7274_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+            ldr     x19, [sp, #0x38]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 128, prolog size 8, PerfScore 27.25, instruction count 32, allocated bytes for code 128 (MethodHash=937fe395) for method System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 144, prolog size 12, PerfScore 32.25, instruction count 36, allocated bytes for code 144 (MethodHash=937fe395) for method System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 1
+  Code Words        : 2
   Epilog Count      : 2
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 32 (0x00020) Actual length = 128 (0x000080)
+  Function Length   : 36 (0x00024) Actual length = 144 (0x000090)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -100,7 +98,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
+    D0 07       save_reg X#0 Z#7 (0x07); str x19, [sp, #56]
     87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
     E4          end
     E4          end
+    E4          end
+    E4          end
 

smoke_tests.nativeaot.linux.arm64.checked.mch

-8 (-8.70%) : 15759.dasm - System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)

@@ -9,7 +9,7 @@
 ;
 ;  V00 this         [V00,T00] (  5,  5   )     ref  ->  x19         this class-hnd single-def <System.Threading.QueueUserWorkItemCallbackBase>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T01] (  2,  4   )   ubyte  ->   x0         "Inlining Arg"
+;* V02 tmp1         [V02    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;
 ; Lcl frame size = 8
 
@@ -31,10 +31,8 @@ G_M21281_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             mov     w1, #1
             swpal   w1, w0, [x0]
             ; byrRegs -[x0]
-            cmp     w0, #0
-            cset    x0, eq
-            cbnz    w0, G_M21281_IG05
-                       ;; size=36 bbWeight=1 PerfScore 10.50
+            cbz     w0, G_M21281_IG05
+                       ;; size=28 bbWeight=1 PerfScore 9.50
 G_M21281_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]
@@ -56,7 +54,7 @@ G_M21281_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 92, prolog size 12, PerfScore 18.50, instruction count 23, allocated bytes for code 92 (MethodHash=f256acde) for method System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
+; Total bytes of code 84, prolog size 12, PerfScore 17.50, instruction count 21, allocated bytes for code 84 (MethodHash=f256acde) for method System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
 ; ============================================================
 
 Cfi Info:

-4 (-8.33%) : 7825.dasm - System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (FullOpts)

@@ -9,44 +9,40 @@
 ;
 ;  V00 arg0         [V00,T00] (  3,  3   )     ref  ->   x0         class-hnd exact single-def <System.String>
 ;  V01 arg1         [V01,T02] (  3,  3   )  ushort  ->   x1         single-def
-;  V02 arg2         [V02,T03] (  3,  3   )     int  ->   x2         single-def
+;  V02 arg2         [V02,T03] (  3,  3   )     int  ->   x5         single-def
 ;  V03 arg3         [V03,T01] (  3,  3   )   byref  ->   x3         single-def
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V06 tmp2         [V06,T05] (  2,  4   )    long  ->   x4         "Cast away GC"
-;  V07 tmp3         [V07,T06] (  2,  4   )    long  ->   x4         "argument with side effect"
-;  V08 tmp4         [V08,T04] (  2,  4   )     ref  ->   x0         single-def "argument with side effect"
-;  V09 tmp5         [V09,T07] (  2,  4   )     int  ->   x5         "argument with side effect"
-;  V10 tmp6         [V10,T08] (  2,  4   )     int  ->   x6         "argument with side effect"
+;  V06 tmp2         [V06,T04] (  2,  4   )    long  ->   x4         "Cast away GC"
+;  V07 tmp3         [V07,T05] (  2,  4   )    long  ->   x4         "argument with side effect"
 ;
 ; Lcl frame size = 0
 
 G_M56677_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
+            mov     w5, w2
+                       ;; size=12 bbWeight=1 PerfScore 2.00
 G_M56677_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0008 {x3}, byref
             ; gcrRegs +[x0]
             ; byrRegs +[x3]
-            uxth    w5, w1
-            sxtw    w6, w2
             mov     x4, x3
+            uxth    w2, w1
             mov     x1, x0
             ; gcrRegs +[x1]
-            mov     w2, w5
-            mov     w3, w6
+            mov     w3, w5
             ; byrRegs -[x3]
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // function address
             ; gcrRegs -[x0]
             add     x0, x0, [LOW RELOC #0xD1FFAB1E]
-                       ;; size=32 bbWeight=1 PerfScore 4.00
+                       ;; size=24 bbWeight=1 PerfScore 3.00
 G_M56677_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             b       Interop+Globalization:EnumCalendarInfo(long,System.String,ushort,int,long):ubyte
             ; gcr arg pop 0
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 48, prolog size 8, PerfScore 7.50, instruction count 12, allocated bytes for code 48 (MethodHash=eeac229a) for method System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (FullOpts)
+; Total bytes of code 44, prolog size 12, PerfScore 7.00, instruction count 11, allocated bytes for code 44 (MethodHash=eeac229a) for method System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (FullOpts)
 ; ============================================================
 
 Cfi Info:

-8 (-8.33%) : 14146.dasm - System.Linq.Expressions.Interpreter.LoadCachedObjectInstruction:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)

@@ -9,14 +9,12 @@
 ;
 ;  V00 this         [V00,T03] (  3,  3   )     ref  ->   x0         this class-hnd exact single-def <System.Linq.Expressions.Interpreter.LoadCachedObjectInstruction>
 ;  V01 arg1         [V01,T00] (  6,  6   )     ref  ->   x1         class-hnd exact single-def <System.Linq.Expressions.Interpreter.InterpretedFrame>
-;  V02 loc0         [V02,T08] (  3,  3   )     int  ->   x3        
+;  V02 loc0         [V02,T06] (  3,  3   )     int  ->   x4        
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T04] (  2,  4   )     ref  ->   x2         class-hnd single-def "impAppendStmt" <<unknown class>>
-;  V05 tmp2         [V05,T01] (  3,  6   )     ref  ->   x1         single-def "arr expr"
-;  V06 tmp3         [V06,T02] (  3,  6   )     int  ->   x0         "index expr"
+;  V04 tmp1         [V04,T04] (  2,  4   )     ref  ->   x3         class-hnd single-def "impAppendStmt" <<unknown class>>
+;  V05 tmp2         [V05,T01] (  3,  6   )     ref  ->   x2         single-def "arr expr"
+;  V06 tmp3         [V06,T02] (  3,  6   )     int  ->   x1         "index expr"
 ;  V07 tmp4         [V07,T05] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
-;  V08 tmp5         [V08,T07] (  2,  4   )    long  ->   x3         "argument with side effect"
-;  V09 tmp6         [V09,T06] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
 ;
 ; Lcl frame size = 0
 
@@ -26,33 +24,33 @@ G_M22389_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M22389_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0-x1]
-            ldr     x2, [x1, #0x28]
+            ldr     x3, [x1, #0x28]
+            ; gcrRegs +[x3]
+            ldr     w4, [x1, #0x40]
+            add     w2, w4, #1
+            str     w2, [x1, #0x40]
+            ldr     x2, [x1, #0x08]
             ; gcrRegs +[x2]
-            ldr     w3, [x1, #0x40]
-            add     w4, w3, #1
-            str     w4, [x1, #0x40]
-            sxtw    x3, w3
-            ldr     x1, [x1, #0x08]
-            ldr     x1, [x1, #0x08]
-            ldr     w0, [x0, #0x08]
-            ; gcrRegs -[x0]
-            ldr     w4, [x1, #0x08]
-            cmp     w0, w4
-            bhs     G_M22389_IG04
-            add     x1, x1, #16
+            ldr     x2, [x2, #0x08]
+            ldr     w1, [x0, #0x08]
             ; gcrRegs -[x1]
-            ; byrRegs +[x1]
-            ldr     x4, [x1, w0, UXTW #3]
-            ; gcrRegs +[x4]
-            mov     x0, x2
+            ldr     w0, [x2, #0x08]
+            ; gcrRegs -[x0]
+            cmp     w1, w0
+            bhs     G_M22389_IG04
+            add     x2, x2, #16
+            ; gcrRegs -[x2]
+            ; byrRegs +[x2]
+            ldr     x2, [x2, w1, UXTW #3]
+            ; gcrRegs +[x2]
+            ; byrRegs -[x2]
+            sxtw    x1, w4
+            mov     x0, x3
             ; gcrRegs +[x0]
-            mov     x1, x3
-            ; byrRegs -[x1]
-            mov     x2, x4
             bl      CORINFO_HELP_ARRADDR_ST
-            ; gcrRegs -[x0 x2 x4]
+            ; gcrRegs -[x0 x2-x3]
             mov     w0, #1
-                       ;; size=72 bbWeight=1 PerfScore 28.00
+                       ;; size=64 bbWeight=1 PerfScore 27.00
 G_M22389_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
@@ -62,7 +60,7 @@ G_M22389_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_unix #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 96, prolog size 8, PerfScore 31.50, instruction count 24, allocated bytes for code 96 (MethodHash=ee43a88a) for method System.Linq.Expressions.Interpreter.LoadCachedObjectInstruction:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
+; Total bytes of code 88, prolog size 8, PerfScore 30.50, instruction count 22, allocated bytes for code 88 (MethodHash=ee43a88a) for method System.Linq.Expressions.Interpreter.LoadCachedObjectInstruction:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
 ; ============================================================
 
 Cfi Info:

+8 (+6.67%) : 2583.dasm - Interop+Sys:GetPwUidR(uint,byref,ulong,int):int (FullOpts)

@@ -11,15 +11,14 @@
 ;  V01 arg1         [V01,T00] (  4,  4   )   byref  ->   x1         single-def
 ;  V02 arg2         [V02,T02] (  3,  3   )    long  ->   x2         single-def
 ;  V03 arg3         [V03,T03] (  3,  3   )     int  ->   x3         single-def
-;  V04 loc0         [V04,T08] (  2,  2   )     int  ->   x0        
+;  V04 loc0         [V04,T07] (  2,  2   )     int  ->   x0        
 ;* V05 loc1         [V05    ] (  0,  0   )    long  ->  zero-ref   
 ;  V06 loc2         [V06    ] (  2,  2   )   byref  ->  [fp+0x58]  must-init pinned
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V08 tmp1         [V08,T04] (  2,  4   )     int  ->   x0         "Single return block return value"
 ;  V09 PInvokeFrame [V09    ] (  3,  3   )  struct (40) [fp+0x18]  do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
 ;  V10 tmp3         [V10,T05] (  2,  4   )    long  ->   x1         "Cast away GC"
-;  V11 tmp4         [V11,T06] (  2,  4   )     int  ->   x0         "argument with side effect"
-;  V12 tmp5         [V12,T07] (  2,  4   )    long  ->   x1         "argument with side effect"
+;  V11 tmp4         [V11,T06] (  2,  4   )    long  ->   x1         "argument with side effect"
 ;  TEMP_02                                     int  ->  [fp+0x54]
 ;  TEMP_01                                     int  ->  [fp+0x50]
 ;  TEMP_04                                    long  ->  [fp+0x48]
@@ -40,18 +39,20 @@ G_M11286_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M11286_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {x1}, byref
             ; byrRegs +[x1]
             str     x1, [fp, #0x58]    // [V06 loc2]
+            str     x1, [fp, #0x48]    // [TEMP_04]
             str     w0, [fp, #0x54]    // [TEMP_02]
-            stp     x2, x1, [fp, #0x40]    // [TEMP_03], [TEMP_04]
+            str     x2, [fp, #0x40]    // [TEMP_03]
             str     w3, [fp, #0x50]    // [TEMP_01]
             add     x0, fp, #24    // [V09 PInvokeFrame]
-                       ;; size=20 bbWeight=1 PerfScore 4.50
+                       ;; size=24 bbWeight=1 PerfScore 5.50
 G_M11286_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; byrRegs -[x1]
             bl      CORINFO_HELP_JIT_PINVOKE_BEGIN
+            ldr     x1, [fp, #0x48]    // [TEMP_04]
             ldr     w0, [fp, #0x54]    // [TEMP_02]
-            ldp     x2, x1, [fp, #0x40]    // [TEMP_03], [TEMP_04]
+            ldr     x2, [fp, #0x40]    // [TEMP_03]
             ldr     w3, [fp, #0x50]    // [TEMP_01]
-                       ;; size=16 bbWeight=1 PerfScore 8.00
+                       ;; size=20 bbWeight=1 PerfScore 9.00
 G_M11286_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bl      <unknown method>
             mov     w19, w0
@@ -70,7 +71,7 @@ G_M11286_IG05:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=28 bbWeight=1 PerfScore 7.00
 
-; Total bytes of code 120, prolog size 32, PerfScore 31.50, instruction count 30, allocated bytes for code 120 (MethodHash=6f4dd3e9) for method Interop+Sys:GetPwUidR(uint,byref,ulong,int):int (FullOpts)
+; Total bytes of code 128, prolog size 32, PerfScore 33.50, instruction count 32, allocated bytes for code 128 (MethodHash=6f4dd3e9) for method Interop+Sys:GetPwUidR(uint,byref,ulong,int):int (FullOpts)
 ; ============================================================
 
 Cfi Info:

+16 (+10.81%) : 2387.dasm - Interop+Globalization:EnumCalendarInfo(long,System.String,ushort,int,long):ubyte (FullOpts)

@@ -13,16 +13,15 @@
 ;  V03 arg3         [V03,T03] (  3,  3   )     int  ->   x3         single-def
 ;  V04 arg4         [V04,T04] (  3,  3   )    long  ->   x4         single-def
 ;* V05 loc0         [V05    ] (  0,  0   )   ubyte  ->  zero-ref   
-;  V06 loc1         [V06,T10] (  2,  2   )     int  ->  x19        
+;  V06 loc1         [V06,T09] (  2,  2   )     int  ->  x19        
 ;* V07 loc2         [V07    ] (  0,  0   )    long  ->  zero-ref   
 ;  V08 loc3         [V08    ] (  2,  2   )   byref  ->  [fp+0x58]  must-init pinned
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T09] (  4,  3   )   byref  ->   x1         "Inline return value spill temp"
+;  V10 tmp1         [V10,T08] (  4,  3   )   byref  ->   x1         "Inline return value spill temp"
 ;  V11 tmp2         [V11,T05] (  2,  4   )     int  ->   x0         "Single return block return value"
 ;  V12 PInvokeFrame [V12    ] (  3,  3   )  struct (40) [fp+0x10]  do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
 ;  V13 tmp4         [V13,T06] (  2,  4   )    long  ->   x1         "Cast away GC"
-;  V14 tmp5         [V14,T07] (  2,  4   )    long  ->   x0         "argument with side effect"
-;  V15 tmp6         [V15,T08] (  2,  4   )    long  ->   x1         "argument with side effect"
+;  V14 tmp5         [V14,T07] (  2,  4   )    long  ->   x1         "argument with side effect"
 ;  TEMP_02                                     int  ->  [fp+0x54]
 ;  TEMP_01                                     int  ->  [fp+0x50]
 ;  TEMP_05                                    long  ->  [fp+0x48]
@@ -58,19 +57,23 @@ G_M23060_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M23060_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {x1}, byref
             str     x1, [fp, #0x58]    // [V08 loc3]
-            stp     x1, x0, [fp, #0x40]    // [TEMP_04], [TEMP_05]
+            str     x1, [fp, #0x48]    // [TEMP_05]
             uxth    w2, w2
-            stp     w3, w2, [fp, #0x50]    // [TEMP_02]
+            str     w2, [fp, #0x54]    // [TEMP_02]
+            str     x0, [fp, #0x40]    // [TEMP_04]
+            str     w3, [fp, #0x50]    // [TEMP_01]
             str     x4, [fp, #0x38]    // [TEMP_03]
             add     x0, fp, #16    // [V12 PInvokeFrame]
-                       ;; size=24 bbWeight=1 PerfScore 5.00
+                       ;; size=32 bbWeight=1 PerfScore 7.00
 G_M23060_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; byrRegs -[x1]
             bl      CORINFO_HELP_JIT_PINVOKE_BEGIN
-            ldp     x1, x0, [fp, #0x40]    // [TEMP_04], [TEMP_05]
-            ldp     w3, w2, [fp, #0x50]    // [TEMP_02]
+            ldr     x1, [fp, #0x48]    // [TEMP_05]
+            ldr     w2, [fp, #0x54]    // [TEMP_02]
+            ldr     x0, [fp, #0x40]    // [TEMP_04]
+            ldr     w3, [fp, #0x50]    // [TEMP_01]
             ldr     x4, [fp, #0x38]    // [TEMP_03]
-                       ;; size=16 bbWeight=1 PerfScore 8.00
+                       ;; size=24 bbWeight=1 PerfScore 11.00
 G_M23060_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bl      <unknown method>
             mov     w19, w0
@@ -91,7 +94,7 @@ G_M23060_IG08:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=28 bbWeight=1 PerfScore 7.00
 
-; Total bytes of code 148, prolog size 32, PerfScore 35.00, instruction count 37, allocated bytes for code 148 (MethodHash=6585a5eb) for method Interop+Globalization:EnumCalendarInfo(long,System.String,ushort,int,long):ubyte (FullOpts)
+; Total bytes of code 164, prolog size 32, PerfScore 40.00, instruction count 41, allocated bytes for code 164 (MethodHash=6585a5eb) for method Interop+Globalization:EnumCalendarInfo(long,System.String,ushort,int,long):ubyte (FullOpts)
 ; ============================================================
 
 Cfi Info:

+24 (+14.29%) : 15732.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:CreateDirectoryHandle(System.String,ubyte):long:this (FullOpts)

@@ -7,9 +7,9 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  3,  2.50)     ref  ->  [fp+0x20]  this class-hnd single-def <System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]>
-;  V01 arg1         [V01,T01] (  4,  3   )     ref  ->  [fp+0x18]  class-hnd exact single-def <System.String>
-;  V02 arg2         [V02,T02] (  3,  2.50)   ubyte  ->  x21         single-def
+;  V00 this         [V00,T01] (  4,  2.50)     ref  ->  [fp+0x20]  this class-hnd single-def <System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]>
+;  V01 arg1         [V01,T00] (  4,  3   )     ref  ->  [fp+0x18]  class-hnd exact single-def <System.String>
+;  V02 arg2         [V02,T02] (  4,  2.50)   ubyte  ->  x21         single-def
 ;  V03 loc0         [V03,T05] (  3,  2.50)    long  ->   x0        
 ;* V04 loc1         [V04    ] (  0,  0   )  struct ( 8) zero-ref    <Interop+ErrorInfo>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -17,10 +17,9 @@
 ;  V07 tmp2         [V07,T04] (  3,  3   )     int  ->  x22         "Inlining Arg"
 ;* V08 tmp3         [V08    ] (  0,  0   )     int  ->  zero-ref    "field V04._error (fldOffset=0x0)" P-INDEP
 ;* V09 tmp4         [V09    ] (  0,  0   )     int  ->  zero-ref    "field V04._rawErrno (fldOffset=0x4)" P-INDEP
-;  V10 tmp5         [V10,T06] (  2,  1   )     int  ->  x19         "field V06._error (fldOffset=0x0)" P-INDEP
-;  V11 tmp6         [V11,T07] (  2,  1   )     int  ->  x22         "field V06._rawErrno (fldOffset=0x4)" P-INDEP
-;  V12 tmp7         [V12,T03] (  4,  3   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <Interop+ErrorInfo>
-;* V13 tmp8         [V13,T08] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V10 tmp5         [V10,T06] (  3,  1   )     int  ->  x19         "field V06._error (fldOffset=0x0)" P-INDEP
+;  V11 tmp6         [V11,T07] (  3,  1   )     int  ->  x22         "field V06._rawErrno (fldOffset=0x4)" P-INDEP
+;  V12 tmp7         [V12,T03] (  7,  3   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <Interop+ErrorInfo>
 ;
 ; Lcl frame size = 32
 
@@ -31,17 +30,17 @@ G_M13357_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             mov     fp, sp
             str     x0, [fp, #0x20]    // [V00 this]
             ; GC ptr vars +{V00}
-            mov     x20, x1
-            ; gcrRegs +[x20]
+            mov     x19, x1
+            ; gcrRegs +[x19]
             mov     w21, w2
                        ;; size=28 bbWeight=1 PerfScore 5.50
-G_M13357_IG02:        ; bbWeight=1, gcVars=0000000000000001 {V00}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref, isz
-            str     x20, [fp, #0x18]   // [V01 arg1]
+G_M13357_IG02:        ; bbWeight=1, gcVars=0000000000000002 {V00}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref, isz
+            str     x19, [fp, #0x18]   // [V01 arg1]
             ; GC ptr vars +{V01}
-            mov     x0, x20
+            mov     x0, x19
             ; gcrRegs +[x0]
             bl      <unknown method>
-            ; gcrRegs -[x0 x20]
+            ; gcrRegs -[x0 x19]
             cbnz    x0, G_M13357_IG07
                        ;; size=16 bbWeight=1 PerfScore 3.50
 G_M13357_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -54,22 +53,23 @@ G_M13357_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
 G_M13357_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
             bl      <unknown method>
             sxtw    w19, w0
-            adrp    x0, [HIGH RELOC #0xD1FFAB1E]
-            add     x0, x0, [LOW RELOC #0xD1FFAB1E]
-            ldr     w0, [x0]
-            cbnz    w0, G_M13357_IG08
-                       ;; size=24 bbWeight=0.50 PerfScore 3.25
-G_M13357_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+            adrp    x1, [HIGH RELOC #0xD1FFAB1E]
+            add     x1, x1, [LOW RELOC #0xD1FFAB1E]
+            ldr     w1, [x1]
+            cbnz    w1, G_M13357_IG08
             stp     w19, w22, [fp, #0x28]  // [V12 tmp7], [V12 tmp7+0x04]
-            ldp     x0, x1, [fp, #0x20]    // [V00 this], [V12 tmp7]
-            ; gcrRegs +[x0]
+            ldr     x1, [fp, #0x28]    // [V12 tmp7]
             uxtb    w2, w21
-            ; GC ptr vars -{V00}
+            ldr     x0, [fp, #0x20]    // [V00 this]
+            ; gcrRegs +[x0]
+            ; GC ptr vars -{V00 V01}
             bl      System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:InternalContinueOnError(Interop+ErrorInfo,ubyte):ubyte:this
             ; gcrRegs -[x0]
             cbz     w0, G_M13357_IG09
+                       ;; size=48 bbWeight=0.50 PerfScore 7.00
+G_M13357_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
             mov     x0, xzr
-                       ;; size=24 bbWeight=0.50 PerfScore 3.50
+                       ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M13357_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     x21, x22, [sp, #0x40]
             ldp     x19, x20, [sp, #0x30]
@@ -77,24 +77,29 @@ G_M13357_IG06:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
 G_M13357_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
-            ; GC ptr vars -{V01}
             ldp     x21, x22, [sp, #0x40]
             ldp     x19, x20, [sp, #0x30]
             ldp     fp, lr, [sp], #0x50
             ret     lr
                        ;; size=16 bbWeight=0.50 PerfScore 2.00
-G_M13357_IG08:        ; bbWeight=0, gcVars=0000000000000003 {V00 V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M13357_IG08:        ; bbWeight=0, gcVars=0000000000000003 {V00 V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
             ; GC ptr vars +{V00 V01}
             bl      CORINFO_HELP_POLL_GC
-            b       G_M13357_IG05
-                       ;; size=8 bbWeight=0 PerfScore 0.00
-G_M13357_IG09:        ; bbWeight=0, gcVars=0000000000000002 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-            ; GC ptr vars -{V00}
+            stp     w19, w22, [fp, #0x28]  // [V12 tmp7], [V12 tmp7+0x04]
+            ldr     x1, [fp, #0x28]    // [V12 tmp7]
+            uxtb    w2, w21
+            ldr     x0, [fp, #0x20]    // [V00 this]
+            ; gcrRegs +[x0]
+            ; GC ptr vars -{V00 V01}
+            bl      System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:InternalContinueOnError(Interop+ErrorInfo,ubyte):ubyte:this
+            ; gcrRegs -[x0]
+            cbnz    w0, G_M13357_IG05
+                       ;; size=28 bbWeight=0 PerfScore 0.00
+G_M13357_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ldr     x0, [fp, #0x28]    // [V12 tmp7]
             ldr     x1, [fp, #0x18]    // [V01 arg1]
             ; gcrRegs +[x1]
             mov     w2, #1
-            ; GC ptr vars -{V01}
             bl      <unknown method>
             ; gcrRegs -[x1] +[x0]
             bl      CORINFO_HELP_THROW
@@ -102,7 +107,7 @@ G_M13357_IG09:        ; bbWeight=0, gcVars=0000000000000002 {V01}, gcrefRegs=000
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 168, prolog size 16, PerfScore 22.00, instruction count 42, allocated bytes for code 168 (MethodHash=29b6cbd2) for method System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:CreateDirectoryHandle(System.String,ubyte):long:this (FullOpts)
+; Total bytes of code 192, prolog size 16, PerfScore 22.50, instruction count 48, allocated bytes for code 192 (MethodHash=29b6cbd2) for method System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:CreateDirectoryHandle(System.String,ubyte):long:this (FullOpts)
 ; ============================================================
 
 Cfi Info:

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.linux.arm64.checked.mch 2,230 205 28 1,997 -3,020 +444
benchmarks.run_pgo.linux.arm64.checked.mch 6,705 3,473 9 3,223 -67,720 +48
benchmarks.run_tiered.linux.arm64.checked.mch 2,806 2,558 17 231 -59,684 +228
coreclr_tests.run.linux.arm64.checked.mch 13,591 11,523 105 1,963 -374,264 +1,336
libraries.crossgen2.linux.arm64.checked.mch 4,800 963 186 3,651 -14,272 +2,268
libraries.pmi.linux.arm64.checked.mch 7,166 1,354 327 5,485 -14,840 +3,744
libraries_tests.run.linux.arm64.Release.mch 33,531 24,717 605 8,209 -514,908 +7,372
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 18,151 3,325 404 14,422 -35,180 +3,980
realworld.run.linux.arm64.checked.mch 1,714 413 68 1,233 -9,568 +1,052
smoke_tests.nativeaot.linux.arm64.checked.mch 185 36 10 139 -332 +100
90,879 48,567 1,759 40,553 -1,093,788 +20,572

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.arm64.checked.mch 33,632 2,755 30,877 4 (0.01%) 4 (0.01%)
benchmarks.run_pgo.linux.arm64.checked.mch 153,694 60,106 93,588 162 (0.11%) 162 (0.11%)
benchmarks.run_tiered.linux.arm64.checked.mch 63,981 47,942 16,039 2 (0.00%) 2 (0.00%)
coreclr_tests.run.linux.arm64.checked.mch 628,056 383,770 244,286 415 (0.07%) 415 (0.07%)
libraries.crossgen2.linux.arm64.checked.mch 233,777 15 233,762 0 (0.00%) 0 (0.00%)
libraries.pmi.linux.arm64.checked.mch 294,232 6 294,226 8 (0.00%) 8 (0.00%)
libraries_tests.run.linux.arm64.Release.mch 737,381 487,495 249,886 3,456 (0.47%) 3,457 (0.47%)
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 304,061 21,560 282,501 10 (0.00%) 10 (0.00%)
realworld.run.linux.arm64.checked.mch 33,301 151 33,150 3 (0.01%) 3 (0.01%)
smoke_tests.nativeaot.linux.arm64.checked.mch 19,041 6 19,035 0 (0.00%) 0 (0.00%)
2,501,156 1,003,806 1,497,350 4,060 (0.16%) 4,061 (0.16%)

jit-analyze output

benchmarks.run.linux.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 15577120 (overridden on cmd)
Total bytes of diff: 15574544 (overridden on cmd)
Total bytes of delta: -2576 (-0.02 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         112 : 22049.dasm (1.00 % of base)
          60 : 1118.dasm (5.79 % of base)
          56 : 3830.dasm (0.45 % of base)
          48 : 22037.dasm (0.79 % of base)
          20 : 12847.dasm (1.24 % of base)
          16 : 1281.dasm (12.50 % of base)
          16 : 7656.dasm (0.46 % of base)
          12 : 1065.dasm (0.96 % of base)
          12 : 19687.dasm (0.31 % of base)
          12 : 18617.dasm (0.28 % of base)
           8 : 33585.dasm (1.06 % of base)
           8 : 9856.dasm (1.56 % of base)
           4 : 11079.dasm (0.30 % of base)
           4 : 12153.dasm (0.75 % of base)
           4 : 1837.dasm (1.02 % of base)
           4 : 18707.dasm (0.17 % of base)
           4 : 19133.dasm (0.70 % of base)
           4 : 19972.dasm (0.09 % of base)
           4 : 20395.dasm (0.74 % of base)
           4 : 22499.dasm (0.28 % of base)

Top file improvements (bytes):
        -440 : 8924.dasm (-10.74 % of base)
        -140 : 16749.dasm (-6.01 % of base)
         -84 : 7114.dasm (-3.42 % of base)
         -76 : 28653.dasm (-12.84 % of base)
         -64 : 20586.dasm (-9.70 % of base)
         -64 : 20697.dasm (-7.41 % of base)
         -60 : 7087.dasm (-1.99 % of base)
         -48 : 15307.dasm (-2.17 % of base)
         -44 : 18761.dasm (-1.68 % of base)
         -40 : 8881.dasm (-1.44 % of base)
         -36 : 7160.dasm (-2.47 % of base)
         -36 : 9630.dasm (-0.33 % of base)
         -36 : 1796.dasm (-6.04 % of base)
         -32 : 16223.dasm (-3.15 % of base)
         -32 : 17646.dasm (-12.90 % of base)
         -32 : 28373.dasm (-12.90 % of base)
         -32 : 5624.dasm (-10.26 % of base)
         -28 : 6978.dasm (-3.83 % of base)
         -28 : 6985.dasm (-3.06 % of base)
         -24 : 6929.dasm (-3.09 % of base)

60 total files with Code Size differences (34 improved, 26 regressed), 20 unchanged.

Top method regressions (bytes):
         112 (1.00 % of base) : 22049.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
          60 (5.79 % of base) : 1118.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
          56 (0.45 % of base) : 3830.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
          48 (0.79 % of base) : 22037.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (FullOpts)
          20 (1.24 % of base) : 12847.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.Text.RegularExpressions.RegexCache+Key,System.__Canon]:TryRemoveInternal(System.Text.RegularExpressions.RegexCache+Key,byref,ubyte,System.__Canon):ubyte:this (FullOpts)
          16 (0.46 % of base) : 7656.dasm - ProtoBuf.Internal.Serializers.TypeSerializer`1[System.__Canon]:ProtoBuf.Internal.Serializers.IRuntimeProtoSerializerNode.EmitRead(ProtoBuf.Compiler.CompilerContext,ProtoBuf.Compiler.Local):this (FullOpts)
          16 (12.50 % of base) : 1281.dasm - System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
          12 (0.28 % of base) : 18617.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeDeclaration(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration:this (FullOpts)
          12 (0.31 % of base) : 19687.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:MakeParameters[System.__Canon,System.__Canon,System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,System.__Canon,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[System.__Canon],byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte,ubyte,int,System.Func`12[System.__Canon,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.__Canon,ubyte,int,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,ubyte,ubyte,System.__Canon,System.__Canon],ubyte):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (FullOpts)
          12 (0.96 % of base) : 1065.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (FullOpts)
           8 (1.06 % of base) : 33585.dasm - BitOps:DoBitfieldIteration(int[],int[],int,byref):long (FullOpts)
           8 (1.56 % of base) : 9856.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindStartPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],byref,int,byref,byref):ubyte:this (FullOpts)
           4 (0.17 % of base) : 18707.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:CreateRootSingleNamespaceDeclaration(Microsoft.CodeAnalysis.CSharp.Syntax.CompilationUnitSyntax,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.SingleNamespaceOrTypeDeclaration],ubyte):Microsoft.CodeAnalysis.CSharp.RootSingleNamespaceDeclaration:this (FullOpts)
           4 (0.09 % of base) : 19972.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:BindMethodBody(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.TypeCompilationState,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.BoundNode,ubyte,byref,byref,byref,byref):Microsoft.CodeAnalysis.CSharp.BoundBlock (FullOpts)
           4 (0.74 % of base) : 20395.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder:GetFakeSymbolTokenForIL(Microsoft.Cci.IReference,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag):uint:this (FullOpts)
           4 (0.70 % of base) : 19133.dasm - Microsoft.CodeAnalysis.PEModule:FindTargetAttribute(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.AttributeDescription,byref):Microsoft.CodeAnalysis.PEModule+AttributeInfo (FullOpts)
           4 (0.97 % of base) : 5628.dasm - Microsoft.Extensions.Logging.Logger:<Log>g__LoggerLog|14_0[Microsoft.Extensions.Logging.LoggerMessage+LogValues`2[int,System.__Canon]](int,Microsoft.Extensions.Logging.EventId,Microsoft.Extensions.Logging.ILogger,System.Exception,System.Func`3[Microsoft.Extensions.Logging.LoggerMessage+LogValues`2[int,System.__Canon],System.__Canon,System.__Canon],byref,byref) (FullOpts)
           4 (0.30 % of base) : 11079.dasm - Sigil.Impl.RollingVerifier+<>c__DisplayClass16_1:<RemoveUnnecessaryVerifiers>b__1(Sigil.Impl.LinqStack`1[Sigil.Impl.LinqList`1[Sigil.Impl.TypeOnStack]],int):int:this (FullOpts)
           4 (0.28 % of base) : 22499.dasm - System.Diagnostics.Process:ForkAndExecProcess(System.Diagnostics.ProcessStartInfo,System.String,System.String[],System.String[],System.String,ubyte,uint,uint,uint[],byref,byref,byref,ubyte,ubyte):ubyte:this (FullOpts)
           4 (0.75 % of base) : 12153.dasm - System.Formats.Asn1.AsnWriter:WriteObjectIdentifier(System.ReadOnlySpan`1[ushort],System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this (FullOpts)

Top method improvements (bytes):
        -440 (-10.74 % of base) : 8924.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -140 (-6.01 % of base) : 16749.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
         -84 (-3.42 % of base) : 7114.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetFieldTokenNoLock(System.Reflection.FieldInfo):int:this (FullOpts)
         -76 (-12.84 % of base) : 28653.dasm - Benchstone.MDBenchF.MDLLoops:Test():ubyte:this (FullOpts)
         -64 (-9.70 % of base) : 20586.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (FullOpts)
         -64 (-7.41 % of base) : 20697.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__77:MoveNext():ubyte:this (FullOpts)
         -60 (-1.99 % of base) : 7087.dasm - System.Reflection.Emit.RuntimeTypeBuilder:CreateTypeNoLock():System.Reflection.TypeInfo:this (FullOpts)
         -48 (-2.17 % of base) : 15307.dasm - System.Xml.Schema.XsdDateTime+Parser:Parse(System.String,int):ubyte:this (FullOpts)
         -44 (-1.68 % of base) : 18761.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:TryAddAssembly(Microsoft.CodeAnalysis.AssemblyIdentity,Microsoft.CodeAnalysis.MetadataReference,int,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Location,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],ubyte):Microsoft.CodeAnalysis.MetadataReference:this (FullOpts)
         -40 (-1.44 % of base) : 8881.dasm - Newtonsoft.Json.Serialization.JsonArrayContract:.ctor(System.Type):this (FullOpts)
         -36 (-2.47 % of base) : 7160.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMemberRefToken(System.Reflection.MethodBase,System.Type[]):int:this (FullOpts)
         -36 (-6.04 % of base) : 1796.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo:Configure():this (FullOpts)
         -36 (-0.33 % of base) : 9630.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -32 (-3.15 % of base) : 16223.dasm - Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser:ParseStream(System.IO.Stream):System.Collections.Generic.Dictionary`2[System.String,System.String]:this (FullOpts)
         -32 (-10.26 % of base) : 5624.dasm - Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass12_0`2[int,System.__Canon]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,int,System.__Canon,System.Exception):this (FullOpts)
         -32 (-12.90 % of base) : 17646.dasm - System.Text.Json.Document.Tests.Perf_EnumerateArray:Parse():this (FullOpts)
         -32 (-12.90 % of base) : 28373.dasm - System.Text.Json.Document.Tests.Perf_EnumerateObject:Parse():this (FullOpts)
         -28 (-3.83 % of base) : 6978.dasm - System.Reflection.Emit.RuntimeMethodBuilder:GetTokenNoLock():int:this (FullOpts)
         -28 (-3.06 % of base) : 6985.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenInternal(System.Reflection.MethodBase,System.Type[],ubyte):int:this (FullOpts)
         -24 (-3.09 % of base) : 6929.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetTypeTokenWorkerNoLock(System.Type,ubyte):int:this (FullOpts)

Top method regressions (percentages):
          16 (12.50 % of base) : 1281.dasm - System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
          60 (5.79 % of base) : 1118.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
           4 (1.82 % of base) : 9565.dasm - System.Text.Json.JsonDocument:ParseValue(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
           8 (1.56 % of base) : 9856.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindStartPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],byref,int,byref,byref):ubyte:this (FullOpts)
          20 (1.24 % of base) : 12847.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.Text.RegularExpressions.RegexCache+Key,System.__Canon]:TryRemoveInternal(System.Text.RegularExpressions.RegexCache+Key,byref,ubyte,System.__Canon):ubyte:this (FullOpts)
           4 (1.15 % of base) : 10421.dasm - System.Runtime.Serialization.BitFlagsGenerator:LoadArray():this (FullOpts)
           8 (1.06 % of base) : 33585.dasm - BitOps:DoBitfieldIteration(int[],int[],int,byref):long (FullOpts)
           4 (1.02 % of base) : 1837.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor+Cache`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:EvictStaleCacheEntries(long):this (FullOpts)
         112 (1.00 % of base) : 22049.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
           4 (0.97 % of base) : 5628.dasm - Microsoft.Extensions.Logging.Logger:<Log>g__LoggerLog|14_0[Microsoft.Extensions.Logging.LoggerMessage+LogValues`2[int,System.__Canon]](int,Microsoft.Extensions.Logging.EventId,Microsoft.Extensions.Logging.ILogger,System.Exception,System.Func`3[Microsoft.Extensions.Logging.LoggerMessage+LogValues`2[int,System.__Canon],System.__Canon,System.__Canon],byref,byref) (FullOpts)
          12 (0.96 % of base) : 1065.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (FullOpts)
          48 (0.79 % of base) : 22037.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (FullOpts)
           4 (0.76 % of base) : 5024.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitMemberAccessor:CreatePropertySetter(System.Reflection.PropertyInfo,System.Type):System.Reflection.Emit.DynamicMethod (FullOpts)
           4 (0.75 % of base) : 12153.dasm - System.Formats.Asn1.AsnWriter:WriteObjectIdentifier(System.ReadOnlySpan`1[ushort],System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this (FullOpts)
           4 (0.74 % of base) : 20395.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder:GetFakeSymbolTokenForIL(Microsoft.Cci.IReference,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag):uint:this (FullOpts)
           4 (0.70 % of base) : 19133.dasm - Microsoft.CodeAnalysis.PEModule:FindTargetAttribute(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.AttributeDescription,byref):Microsoft.CodeAnalysis.PEModule+AttributeInfo (FullOpts)
           4 (0.60 % of base) : 6112.dasm - V8.Crypto.BigInteger:rShiftTo(int,V8.Crypto.BigInteger):this (FullOpts)
          16 (0.46 % of base) : 7656.dasm - ProtoBuf.Internal.Serializers.TypeSerializer`1[System.__Canon]:ProtoBuf.Internal.Serializers.IRuntimeProtoSerializerNode.EmitRead(ProtoBuf.Compiler.CompilerContext,ProtoBuf.Compiler.Local):this (FullOpts)
          56 (0.45 % of base) : 3830.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
           4 (0.37 % of base) : 2554.dasm - System.Net.Sockets.SocketPal:TryCompleteSendTo(System.Net.Sockets.SafeSocketHandle,System.ReadOnlySpan`1[ubyte],System.Collections.Generic.IList`1[System.ArraySegment`1[ubyte]],byref,byref,byref,int,System.ReadOnlySpan`1[ubyte],byref,byref):ubyte (FullOpts)

Top method improvements (percentages):
         -20 (-14.29 % of base) : 20547.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
         -16 (-14.29 % of base) : 10708.dasm - System.Buffers.Text.Tests.Utf8FormatterTests:FormatterDateTimeOffsetNow(System.DateTimeOffset):ubyte:this (FullOpts)
         -16 (-13.33 % of base) : 32927.dasm - Span.IndexerBench:SameIndex2():ubyte:this (FullOpts)
         -32 (-12.90 % of base) : 17646.dasm - System.Text.Json.Document.Tests.Perf_EnumerateArray:Parse():this (FullOpts)
         -32 (-12.90 % of base) : 28373.dasm - System.Text.Json.Document.Tests.Perf_EnumerateObject:Parse():this (FullOpts)
         -76 (-12.84 % of base) : 28653.dasm - Benchstone.MDBenchF.MDLLoops:Test():ubyte:this (FullOpts)
         -16 (-12.50 % of base) : 4363.dasm - System.Formats.Asn1.AsnDecoder:ReadIntegerBytes(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.ReadOnlySpan`1[ubyte] (FullOpts)
         -16 (-12.12 % of base) : 3496.dasm - System.Formats.Asn1.AsnDecoder:TryReadPrimitiveOctetString(System.ReadOnlySpan`1[ubyte],int,byref,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):ubyte (FullOpts)
        -440 (-10.74 % of base) : 8924.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
         -32 (-10.26 % of base) : 5624.dasm - Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass12_0`2[int,System.__Canon]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,int,System.__Canon,System.Exception):this (FullOpts)
         -64 (-9.70 % of base) : 20586.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (FullOpts)
         -16 (-9.52 % of base) : 3476.dasm - System.Formats.Asn1.AsnDecoder:TryReadInt32(System.ReadOnlySpan`1[ubyte],int,byref,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):ubyte (FullOpts)
         -64 (-7.41 % of base) : 20697.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__77:MoveNext():ubyte:this (FullOpts)
         -16 (-6.90 % of base) : 3483.dasm - System.Formats.Asn1.AsnDecoder:ReadObjectIdentifier(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.String (FullOpts)
          -8 (-6.25 % of base) : 33090.dasm - System.Text.Json.Serialization.Tests.ReadJson`1[int]:DeserializeFromUtf8Bytes():int:this (FullOpts)
          -8 (-6.06 % of base) : 5411.dasm - System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
         -36 (-6.04 % of base) : 1796.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo:Configure():this (FullOpts)
        -140 (-6.01 % of base) : 16749.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
         -24 (-5.66 % of base) : 9564.dasm - System.Text.Json.Node.Tests.Perf_ParseThenWrite:ParseThenWrite():this (FullOpts)
          -8 (-5.56 % of base) : 17812.dasm - System.Text.Json.Serialization.Tests.ReadJson`1[MicroBenchmarks.Serializers.SimpleStructWithProperties]:DeserializeFromUtf8Bytes():MicroBenchmarks.Serializers.SimpleStructWithProperties:this (FullOpts)


benchmarks.run_pgo.linux.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 81135316 (overridden on cmd)
Total bytes of diff: 81067644 (overridden on cmd)
Total bytes of delta: -67672 (-0.08 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          12 : 134820.dasm (0.85 % of base)
           8 : 85059.dasm (0.66 % of base)
           4 : 94487.dasm (5.88 % of base)
           4 : 138925.dasm (0.88 % of base)
           4 : 78859.dasm (0.85 % of base)
           4 : 85393.dasm (6.67 % of base)
           4 : 85640.dasm (0.02 % of base)
           4 : 23894.dasm (1.00 % of base)
           4 : 94233.dasm (0.09 % of base)

Top file improvements (bytes):
        -296 : 29027.dasm (-1.50 % of base)
        -288 : 81532.dasm (-5.22 % of base)
        -272 : 76173.dasm (-5.48 % of base)
        -248 : 77878.dasm (-10.65 % of base)
        -248 : 81066.dasm (-9.63 % of base)
        -208 : 93497.dasm (-5.46 % of base)
        -196 : 81610.dasm (-4.73 % of base)
        -192 : 75813.dasm (-1.85 % of base)
        -184 : 81513.dasm (-2.36 % of base)
        -184 : 82740.dasm (-3.00 % of base)
        -176 : 152941.dasm (-2.57 % of base)
        -176 : 15660.dasm (-2.57 % of base)
        -172 : 76832.dasm (-2.72 % of base)
        -172 : 76908.dasm (-3.70 % of base)
        -168 : 25158.dasm (-2.37 % of base)
        -168 : 153302.dasm (-4.25 % of base)
        -168 : 16075.dasm (-4.25 % of base)
        -160 : 77318.dasm (-4.69 % of base)
        -152 : 78205.dasm (-2.85 % of base)
        -152 : 81853.dasm (-2.85 % of base)

60 total files with Code Size differences (51 improved, 9 regressed), 31 unchanged.

Top method regressions (bytes):
          12 (0.85 % of base) : 134820.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (Tier1)
           8 (0.66 % of base) : 85059.dasm - System.Linq.Enumerable:TryGetSingle[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte],byref):System.__Canon (Tier1)
           4 (0.85 % of base) : 78859.dasm - Microsoft.Cci.MetadataWriter:GetResolutionScopeHandle(Microsoft.Cci.IUnitReference):System.Reflection.Metadata.EntityHandle:this (Tier0)
           4 (6.67 % of base) : 85393.dasm - Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (Tier1)
           4 (0.02 % of base) : 85640.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindSimpleBinaryOperator(Microsoft.CodeAnalysis.CSharp.Syntax.BinaryExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
           4 (0.09 % of base) : 94233.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (Tier1)
           4 (5.88 % of base) : 94487.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
           4 (1.00 % of base) : 23894.dasm - System.Text.RegularExpressions.RegexCache:GetOrAdd(System.String):System.Text.RegularExpressions.Regex (Instrumented Tier0)
           4 (0.88 % of base) : 138925.dasm - System.Text.RegularExpressions.RegexCache:GetOrAdd(System.String,int,System.TimeSpan):System.Text.RegularExpressions.Regex (Instrumented Tier0)

Top method improvements (bytes):
        -296 (-1.50 % of base) : 29027.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (Instrumented Tier0)
        -288 (-5.22 % of base) : 81532.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__createConversion|210_0(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Instrumented Tier0)
        -272 (-5.48 % of base) : 76173.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckMembersAgainstBaseType(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):this (Instrumented Tier0)
        -248 (-9.63 % of base) : 81066.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:CreateEmbeddedAttributesIfNeeded(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Instrumented Tier0)
        -248 (-10.65 % of base) : 77878.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:CreateEmbeddedAttributesIfNeeded(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0)
        -208 (-5.46 % of base) : 93497.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (Instrumented Tier0)
        -196 (-4.73 % of base) : 81610.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:GenerateMethodBody(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,Microsoft.CodeAnalysis.CSharp.BoundStatement,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.LambdaDebugInfo],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.ClosureDebugInfo],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.StateMachineStateDebugInfo],Microsoft.CodeAnalysis.CSharp.StateMachineTypeSymbol,Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider,Microsoft.CodeAnalysis.CSharp.ImportChain,ubyte,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SourceSpan],Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedEntryPointSymbol+AsyncForwardEntryPoint):Microsoft.CodeAnalysis.CodeGen.MethodBody (Instrumented Tier0)
        -192 (-1.85 % of base) : 75813.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Instrumented Tier0)
        -184 (-3.00 % of base) : 82740.dasm - Microsoft.CodeAnalysis.Compilation:SerializeToPeStream(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.RebuildData,System.Func`2[Microsoft.DiaSymReader.ISymWriterMetadataProvider,Microsoft.DiaSymReader.SymUnmanagedWriter],Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Emit.EmitOptions,System.Nullable`1[System.Security.Cryptography.RSAParameters],System.Threading.CancellationToken):ubyte:this (Instrumented Tier0)
        -184 (-2.36 % of base) : 81513.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Instrumented Tier0)
        -176 (-2.57 % of base) : 152941.dasm - System.Xml.Serialization.TypeScope:ImportTypeDesc(System.Type,System.Reflection.MemberInfo,ubyte):System.Xml.Serialization.TypeDesc:this (Instrumented Tier0)
        -176 (-2.57 % of base) : 15660.dasm - System.Xml.Serialization.TypeScope:ImportTypeDesc(System.Type,System.Reflection.MemberInfo,ubyte):System.Xml.Serialization.TypeDesc:this (Instrumented Tier0)
        -172 (-3.70 % of base) : 76908.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__createConversion|210_0(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
        -172 (-2.72 % of base) : 76832.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier0)
        -168 (-4.25 % of base) : 153302.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenNoLock(System.Reflection.MethodInfo,ubyte):int:this (Instrumented Tier0)
        -168 (-4.25 % of base) : 16075.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenNoLock(System.Reflection.MethodInfo,ubyte):int:this (Instrumented Tier0)
        -168 (-2.37 % of base) : 25158.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper:ImportDataMembers():this (Instrumented Tier0)
        -160 (-4.69 % of base) : 77318.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:GenerateMethodBody(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,Microsoft.CodeAnalysis.CSharp.BoundStatement,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.LambdaDebugInfo],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.ClosureDebugInfo],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.StateMachineStateDebugInfo],Microsoft.CodeAnalysis.CSharp.StateMachineTypeSymbol,Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider,Microsoft.CodeAnalysis.CSharp.ImportChain,ubyte,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SourceSpan],Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedEntryPointSymbol+AsyncForwardEntryPoint):Microsoft.CodeAnalysis.CodeGen.MethodBody (Tier0)
        -152 (-2.85 % of base) : 78205.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol+<Microsoft-Cci-ITypeDefinition-GetExplicitImplementationOverrides>d__30:MoveNext():ubyte:this (Instrumented Tier0)
        -152 (-2.85 % of base) : 81853.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol+<Microsoft-Cci-ITypeDefinition-GetExplicitImplementationOverrides>d__30:MoveNext():ubyte:this (Instrumented Tier0)

Top method regressions (percentages):
           4 (6.67 % of base) : 85393.dasm - Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (Tier1)
           4 (5.88 % of base) : 94487.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
           4 (1.00 % of base) : 23894.dasm - System.Text.RegularExpressions.RegexCache:GetOrAdd(System.String):System.Text.RegularExpressions.Regex (Instrumented Tier0)
           4 (0.88 % of base) : 138925.dasm - System.Text.RegularExpressions.RegexCache:GetOrAdd(System.String,int,System.TimeSpan):System.Text.RegularExpressions.Regex (Instrumented Tier0)
          12 (0.85 % of base) : 134820.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (Tier1)
           4 (0.85 % of base) : 78859.dasm - Microsoft.Cci.MetadataWriter:GetResolutionScopeHandle(Microsoft.Cci.IUnitReference):System.Reflection.Metadata.EntityHandle:this (Tier0)
           8 (0.66 % of base) : 85059.dasm - System.Linq.Enumerable:TryGetSingle[System.__Canon](System.Collections.Generic.IEnumerable`1[System.__Canon],System.Func`2[System.__Canon,ubyte],byref):System.__Canon (Tier1)
           4 (0.09 % of base) : 94233.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (Tier1)
           4 (0.02 % of base) : 85640.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindSimpleBinaryOperator(Microsoft.CodeAnalysis.CSharp.Syntax.BinaryExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)

Top method improvements (percentages):
         -96 (-29.27 % of base) : 82612.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Instrumented Tier0)
         -96 (-29.27 % of base) : 77715.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -88 (-27.16 % of base) : 82651.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Instrumented Tier0)
         -88 (-27.16 % of base) : 77788.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -44 (-26.83 % of base) : 94049.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Instrumented Tier0)
         -44 (-26.83 % of base) : 93540.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
         -24 (-22.22 % of base) : 62439.dasm - BenchmarkDotNet.Characteristics.Characteristic`1[System.Nullable`1[System.Guid]]:set_Item(BenchmarkDotNet.Characteristics.CharacteristicObject,System.Nullable`1[System.Guid]):this (Tier0)
         -48 (-22.22 % of base) : 93474.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)
         -28 (-21.88 % of base) : 24310.dasm - System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Instrumented Tier0)
         -28 (-21.88 % of base) : 7269.dasm - System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Tier0)
         -56 (-20.90 % of base) : 76398.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper+CheckConstraintsArgs:.ctor(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.ConversionsBase,ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0)
         -40 (-20.00 % of base) : 60417.dasm - System.Numerics.Tests.Perf_Matrix4x4:LerpBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -36 (-18.75 % of base) : 79662.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:Initialize(System.__Canon,Microsoft.CodeAnalysis.UseSiteInfo`1[System.__Canon]):this (Instrumented Tier0)
         -36 (-18.75 % of base) : 75459.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:Initialize(System.__Canon,Microsoft.CodeAnalysis.UseSiteInfo`1[System.__Canon]):this (Tier0)
         -24 (-18.75 % of base) : 44857.dasm - System.Xml.Serialization.XmlSerializer:Deserialize(System.Xml.XmlReader,System.String):System.Object:this (Tier0)
         -88 (-18.33 % of base) : 93471.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:MakeLocal(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder):Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol (Tier0)
         -40 (-17.86 % of base) : 94050.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BoundTypeExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Instrumented Tier0)
         -40 (-17.86 % of base) : 93541.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BoundTypeExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
         -92 (-16.67 % of base) : 77809.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -88 (-16.67 % of base) : 93942.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:MakeLocal(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder):Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol (Instrumented Tier0)


benchmarks.run_tiered.linux.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 24708980 (overridden on cmd)
Total bytes of diff: 24649524 (overridden on cmd)
Total bytes of delta: -59456 (-0.24 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          60 : 11633.dasm (5.79 % of base)
          48 : 51125.dasm (0.80 % of base)
          24 : 51042.dasm (0.85 % of base)
          20 : 38009.dasm (0.78 % of base)
          12 : 25183.dasm (0.96 % of base)
          12 : 25187.dasm (2.86 % of base)
           8 : 63887.dasm (1.06 % of base)
           8 : 55884.dasm (1.57 % of base)
           4 : 28990.dasm (0.76 % of base)
           4 : 29825.dasm (0.75 % of base)
           4 : 45142.dasm (0.85 % of base)
           4 : 48851.dasm (0.30 % of base)
           4 : 51192.dasm (5.88 % of base)
           4 : 45740.dasm (0.70 % of base)
           4 : 47578.dasm (0.10 % of base)
           4 : 47762.dasm (0.74 % of base)
           4 : 47771.dasm (0.88 % of base)

Top file improvements (bytes):
        -248 : 44131.dasm (-10.65 % of base)
        -208 : 50584.dasm (-6.68 % of base)
        -172 : 43083.dasm (-2.72 % of base)
        -172 : 43154.dasm (-3.70 % of base)
        -160 : 43627.dasm (-4.69 % of base)
        -140 : 44063.dasm (-11.82 % of base)
        -108 : 42373.dasm (-4.08 % of base)
        -104 : 44067.dasm (-8.44 % of base)
         -96 : 44000.dasm (-29.27 % of base)
         -96 : 44253.dasm (-2.12 % of base)
         -92 : 44085.dasm (-16.67 % of base)
         -88 : 44065.dasm (-27.16 % of base)
         -88 : 50535.dasm (-6.81 % of base)
         -88 : 50560.dasm (-18.33 % of base)
         -88 : 306.dasm (-10.95 % of base)
         -84 : 41536.dasm (-10.40 % of base)
         -80 : 44009.dasm (-5.13 % of base)
         -80 : 44818.dasm (-13.16 % of base)
         -80 : 43979.dasm (-5.21 % of base)
         -76 : 26101.dasm (-1.94 % of base)

63 total files with Code Size differences (46 improved, 17 regressed), 23 unchanged.

Top method regressions (bytes):
          60 (5.79 % of base) : 11633.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
          48 (0.80 % of base) : 51125.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (Tier1)
          24 (0.85 % of base) : 51042.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildLocals(Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.StatementSyntax,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol]):this (Tier1)
          20 (0.78 % of base) : 38009.dasm - System.Text.Json.Tests.Perf_Segment:ReadMultiSegmentSequenceUsingSpan(int):this (Tier1-OSR)
          12 (2.86 % of base) : 25187.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):this (Tier1)
          12 (0.96 % of base) : 25183.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (Tier1)
           8 (1.06 % of base) : 63887.dasm - BitOps:DoBitfieldIteration(int[],int[],int,byref):long (Tier1)
           8 (1.57 % of base) : 55884.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindStartPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],byref,int,byref,byref):ubyte:this (Tier1-OSR)
           4 (0.85 % of base) : 45142.dasm - Microsoft.Cci.MetadataWriter:GetResolutionScopeHandle(Microsoft.Cci.IUnitReference):System.Reflection.Metadata.EntityHandle:this (Tier0)
           4 (0.88 % of base) : 47771.dasm - Microsoft.CodeAnalysis.CodeGen.ReferenceDependencyWalker:VisitReference(Microsoft.Cci.IReference,Microsoft.CodeAnalysis.Emit.EmitContext) (Tier1)
           4 (0.10 % of base) : 47578.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:BindMethodBody(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.TypeCompilationState,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.BoundNode,ubyte,byref,byref,byref,byref):Microsoft.CodeAnalysis.CSharp.BoundBlock (Tier1)
           4 (0.74 % of base) : 47762.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder:GetFakeSymbolTokenForIL(Microsoft.Cci.IReference,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag):uint:this (Tier1)
           4 (0.70 % of base) : 45740.dasm - Microsoft.CodeAnalysis.PEModule:FindTargetAttribute(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.AttributeDescription,byref):Microsoft.CodeAnalysis.PEModule+AttributeInfo (Tier1)
           4 (5.88 % of base) : 51192.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
           4 (0.30 % of base) : 48851.dasm - System.Collections.Hashtable:Insert(System.Object,System.Object,ubyte):this (Tier1)
           4 (0.75 % of base) : 29825.dasm - System.Formats.Asn1.AsnWriter:WriteObjectIdentifier(System.ReadOnlySpan`1[ushort],System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this (Tier1)
           4 (0.76 % of base) : 28990.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitMemberAccessor:CreatePropertySetter(System.Reflection.PropertyInfo,System.Type):System.Reflection.Emit.DynamicMethod (Tier1)

Top method improvements (bytes):
        -248 (-10.65 % of base) : 44131.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:CreateEmbeddedAttributesIfNeeded(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0)
        -208 (-6.68 % of base) : 50584.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (Tier0)
        -172 (-3.70 % of base) : 43154.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__createConversion|210_0(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
        -172 (-2.72 % of base) : 43083.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier0)
        -160 (-4.69 % of base) : 43627.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:GenerateMethodBody(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,Microsoft.CodeAnalysis.CSharp.BoundStatement,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.LambdaDebugInfo],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.ClosureDebugInfo],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.StateMachineStateDebugInfo],Microsoft.CodeAnalysis.CSharp.StateMachineTypeSymbol,Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider,Microsoft.CodeAnalysis.CSharp.ImportChain,ubyte,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SourceSpan],Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedEntryPointSymbol+AsyncForwardEntryPoint):Microsoft.CodeAnalysis.CodeGen.MethodBody (Tier0)
        -140 (-11.82 % of base) : 44063.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeCall(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol]):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
        -108 (-4.08 % of base) : 42373.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:MakeParameters[System.__Canon,System.__Canon,System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,System.__Canon,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[System.__Canon],byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte,ubyte,int,System.Func`12[System.__Canon,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.__Canon,ubyte,int,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,ubyte,ubyte,System.__Canon,System.__Canon],ubyte):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (Tier0)
        -104 (-8.44 % of base) : 44067.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -96 (-2.12 % of base) : 44253.dasm - Microsoft.CodeAnalysis.Compilation:SerializeToPeStream(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.RebuildData,System.Func`2[Microsoft.DiaSymReader.ISymWriterMetadataProvider,Microsoft.DiaSymReader.SymUnmanagedWriter],Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Emit.EmitOptions,System.Nullable`1[System.Security.Cryptography.RSAParameters],System.Threading.CancellationToken):ubyte:this (Tier0)
         -96 (-29.27 % of base) : 44000.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -92 (-16.67 % of base) : 44085.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -88 (-6.81 % of base) : 50535.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindDeclarationStatementParts(Microsoft.CodeAnalysis.CSharp.Syntax.LocalDeclarationStatementSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (Tier0)
         -88 (-27.16 % of base) : 44065.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -88 (-18.33 % of base) : 50560.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:MakeLocal(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder):Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol (Tier0)
         -88 (-10.95 % of base) : 306.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:GetListByName(ulong,int,ulong,int,int,int):System.__Canon[]:this (Tier0)
         -84 (-10.40 % of base) : 41536.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEParameterSymbol:Create(Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,ubyte,int,ubyte,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ModifierInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,System.Reflection.Metadata.ParameterHandle,Microsoft.CodeAnalysis.CSharp.Symbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ModifierInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]],ubyte,byref):Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEParameterSymbol (Tier0)
         -80 (-13.16 % of base) : 44818.dasm - Microsoft.Cci.ReferenceIndexerBase:Visit(Microsoft.Cci.ITypeDefinition):this (Tier0)
         -80 (-5.21 % of base) : 43979.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GenerateBaseParameterlessConstructorInitializer(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundCall (Tier0)
         -80 (-5.13 % of base) : 44009.dasm - Microsoft.CodeAnalysis.CSharp.DiagnosticsPass:VisitCall(Microsoft.CodeAnalysis.CSharp.BoundCall):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier0)
         -76 (-1.94 % of base) : 26101.dasm - System.Diagnostics.Perf_Activity:.cctor() (Tier0)

Top method regressions (percentages):
           4 (5.88 % of base) : 51192.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
          60 (5.79 % of base) : 11633.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
          12 (2.86 % of base) : 25187.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):this (Tier1)
           8 (1.57 % of base) : 55884.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindStartPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],byref,int,byref,byref):ubyte:this (Tier1-OSR)
           8 (1.06 % of base) : 63887.dasm - BitOps:DoBitfieldIteration(int[],int[],int,byref):long (Tier1)
          12 (0.96 % of base) : 25183.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (Tier1)
           4 (0.88 % of base) : 47771.dasm - Microsoft.CodeAnalysis.CodeGen.ReferenceDependencyWalker:VisitReference(Microsoft.Cci.IReference,Microsoft.CodeAnalysis.Emit.EmitContext) (Tier1)
           4 (0.85 % of base) : 45142.dasm - Microsoft.Cci.MetadataWriter:GetResolutionScopeHandle(Microsoft.Cci.IUnitReference):System.Reflection.Metadata.EntityHandle:this (Tier0)
          24 (0.85 % of base) : 51042.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildLocals(Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.StatementSyntax,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol]):this (Tier1)
          48 (0.80 % of base) : 51125.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (Tier1)
          20 (0.78 % of base) : 38009.dasm - System.Text.Json.Tests.Perf_Segment:ReadMultiSegmentSequenceUsingSpan(int):this (Tier1-OSR)
           4 (0.76 % of base) : 28990.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitMemberAccessor:CreatePropertySetter(System.Reflection.PropertyInfo,System.Type):System.Reflection.Emit.DynamicMethod (Tier1)
           4 (0.75 % of base) : 29825.dasm - System.Formats.Asn1.AsnWriter:WriteObjectIdentifier(System.ReadOnlySpan`1[ushort],System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this (Tier1)
           4 (0.74 % of base) : 47762.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder:GetFakeSymbolTokenForIL(Microsoft.Cci.IReference,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag):uint:this (Tier1)
           4 (0.70 % of base) : 45740.dasm - Microsoft.CodeAnalysis.PEModule:FindTargetAttribute(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.AttributeDescription,byref):Microsoft.CodeAnalysis.PEModule+AttributeInfo (Tier1)
           4 (0.30 % of base) : 48851.dasm - System.Collections.Hashtable:Insert(System.Object,System.Object,ubyte):this (Tier1)
           4 (0.10 % of base) : 47578.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:BindMethodBody(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.TypeCompilationState,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.BoundNode,ubyte,byref,byref,byref,byref):Microsoft.CodeAnalysis.CSharp.BoundBlock (Tier1)

Top method improvements (percentages):
         -96 (-29.27 % of base) : 44000.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -88 (-27.16 % of base) : 44065.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -44 (-26.83 % of base) : 50617.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
         -24 (-22.22 % of base) : 2604.dasm - BenchmarkDotNet.Characteristics.Characteristic`1[System.Nullable`1[System.Guid]]:set_Item(BenchmarkDotNet.Characteristics.CharacteristicObject,System.Nullable`1[System.Guid]):this (Tier0)
         -48 (-22.22 % of base) : 50563.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)
         -28 (-21.88 % of base) : 8554.dasm - System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Tier0)
         -56 (-20.90 % of base) : 42602.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper+CheckConstraintsArgs:.ctor(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.ConversionsBase,ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0)
         -40 (-20.00 % of base) : 35576.dasm - System.Numerics.Tests.Perf_Matrix4x4:LerpBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -36 (-18.75 % of base) : 41641.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:Initialize(System.__Canon,Microsoft.CodeAnalysis.UseSiteInfo`1[System.__Canon]):this (Tier0)
         -24 (-18.75 % of base) : 28454.dasm - System.Xml.Serialization.XmlSerializer:Deserialize(System.Xml.XmlReader,System.String):System.Object:this (Tier0)
         -88 (-18.33 % of base) : 50560.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:MakeLocal(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder):Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol (Tier0)
         -40 (-17.86 % of base) : 50618.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BoundTypeExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
         -92 (-16.67 % of base) : 44085.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -20 (-15.62 % of base) : 42356.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.LookupPosition:IsInExpressionBody(int,Microsoft.CodeAnalysis.CSharp.Syntax.ArrowExpressionClauseSyntax,Microsoft.CodeAnalysis.SyntaxToken):ubyte (Tier0)
         -28 (-15.56 % of base) : 26115.dasm - System.Diagnostics.ActivitySource:StartActivity(System.String,int,System.Diagnostics.ActivityContext,System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]],System.Collections.Generic.IEnumerable`1[System.Diagnostics.ActivityLink],System.DateTimeOffset):System.Diagnostics.Activity:this (Tier0)
         -32 (-15.38 % of base) : 42352.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.LookupPosition:IsInBody(int,Microsoft.CodeAnalysis.CSharp.Syntax.BaseMethodDeclarationSyntax):ubyte (Tier0)
         -40 (-15.15 % of base) : 50551.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (Tier0)
         -20 (-15.15 % of base) : 41498.dasm - Microsoft.CodeAnalysis.PEModule:HasFixedBufferAttribute(System.Reflection.Metadata.EntityHandle,byref,byref):ubyte:this (Tier0)
         -24 (-15.00 % of base) : 50592.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceSimpleParameterSymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,int,ubyte,ubyte,System.String,Microsoft.CodeAnalysis.Location):this (Tier0)
         -48 (-14.63 % of base) : 43183.dasm - Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator+UncommonData:CreateIfNeeded(Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]):Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator+UncommonData (Tier0)


coreclr_tests.run.linux.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 509824836 (overridden on cmd)
Total bytes of diff: 509451908 (overridden on cmd)
Total bytes of delta: -372928 (-0.07 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         116 : 294005.dasm (0.15 % of base)
         112 : 535878.dasm (1.00 % of base)
          64 : 226258.dasm (0.78 % of base)
          64 : 296647.dasm (0.78 % of base)
          64 : 264975.dasm (0.77 % of base)
          64 : 307494.dasm (0.78 % of base)
          48 : 535866.dasm (0.78 % of base)
          40 : 303883.dasm (0.49 % of base)
          40 : 382207.dasm (0.49 % of base)
          40 : 386975.dasm (0.48 % of base)
          36 : 543758.dasm (13.85 % of base)
          24 : 565475.dasm (3.75 % of base)
          20 : 30991.dasm (0.88 % of base)
          16 : 520961.dasm (0.52 % of base)
          16 : 571188.dasm (0.28 % of base)
          12 : 243156.dasm (0.91 % of base)
          12 : 418740.dasm (0.18 % of base)
          12 : 533943.dasm (0.31 % of base)
          12 : 542596.dasm (1.92 % of base)
          12 : 624059.dasm (0.96 % of base)

Top file improvements (bytes):
        -444 : 299740.dasm (-3.56 % of base)
        -440 : 532060.dasm (-10.74 % of base)
        -424 : 309787.dasm (-1.08 % of base)
        -328 : 541619.dasm (-20.25 % of base)
        -316 : 541618.dasm (-14.31 % of base)
        -304 : 538976.dasm (-19.49 % of base)
        -300 : 539550.dasm (-19.23 % of base)
        -300 : 538975.dasm (-13.54 % of base)
        -284 : 300966.dasm (-2.47 % of base)
        -280 : 539549.dasm (-13.11 % of base)
        -280 : 539010.dasm (-16.87 % of base)
        -272 : 539568.dasm (-17.62 % of base)
        -272 : 260078.dasm (-5.48 % of base)
        -264 : 538392.dasm (-10.73 % of base)
        -264 : 539009.dasm (-10.86 % of base)
        -260 : 285345.dasm (-2.12 % of base)
        -256 : 540331.dasm (-11.23 % of base)
        -256 : 539212.dasm (-18.55 % of base)
        -252 : 538813.dasm (-16.71 % of base)
        -252 : 538393.dasm (-16.24 % of base)

92 total files with Code Size differences (54 improved, 38 regressed), 20 unchanged.

Top method regressions (bytes):
         116 (0.15 % of base) : 294005.dasm - Test_1000w1d.testout1:Func_0():int (Tier0)
         112 (1.00 % of base) : 535878.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
          64 (0.78 % of base) : 226258.dasm - CoreclrTestLib.CoreclrTestWrapperLib:RunTest(System.String,System.String,System.String,System.String,System.String,System.String):int:this (Tier1)
          64 (0.78 % of base) : 296647.dasm - CoreclrTestLib.CoreclrTestWrapperLib:RunTest(System.String,System.String,System.String,System.String,System.String,System.String):int:this (Tier1)
          64 (0.77 % of base) : 264975.dasm - CoreclrTestLib.CoreclrTestWrapperLib:RunTest(System.String,System.String,System.String,System.String,System.String,System.String):int:this (Tier1)
          64 (0.78 % of base) : 307494.dasm - CoreclrTestLib.CoreclrTestWrapperLib:RunTest(System.String,System.String,System.String,System.String,System.String,System.String):int:this (Tier1)
          48 (0.78 % of base) : 535866.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (FullOpts)
          40 (0.49 % of base) : 303883.dasm - CoreclrTestLib.CoreclrTestWrapperLib:RunTest(System.String,System.String,System.String,System.String,System.String,System.String):int:this (Tier1)
          40 (0.49 % of base) : 382207.dasm - CoreclrTestLib.CoreclrTestWrapperLib:RunTest(System.String,System.String,System.String,System.String,System.String,System.String):int:this (Tier1)
          40 (0.48 % of base) : 386975.dasm - CoreclrTestLib.CoreclrTestWrapperLib:RunTest(System.String,System.String,System.String,System.String,System.String,System.String):int:this (Tier1)
          36 (13.85 % of base) : 543758.dasm - (dynamicClass):ABIStress_TailCaller965(ABIStress.S12U,System.Int128,System.Numerics.Vector`1[int],ABIStress.S9U,ABIStress.I128_1,ABIStress.S4U,ABIStress.S13U,ABIStress.Hfa2,ABIStress.S5U,double,ABIStress.S6U,ABIStress.Hfa2,System.Runtime.Intrinsics.Vector128`1[int],ubyte,long):int (FullOpts)
          24 (3.75 % of base) : 565475.dasm - DefaultNamespace.DoubLinkBig:.ctor(int):this (FullOpts)
          20 (0.88 % of base) : 30991.dasm - VectorMgdMgd+HVATests`1[ubyte]:doTests():this (Tier0)
          16 (0.52 % of base) : 520961.dasm - ResolveUnmanagedDllTests:ValidateLoadUnmanagedDll() (FullOpts)
          16 (0.28 % of base) : 571188.dasm - System.Xml.Xsl.IlGen.XmlILOptimizerVisitor:VisitEq(System.Xml.Xsl.Qil.QilBinary):System.Xml.Xsl.Qil.QilNode:this (FullOpts)
          12 (1.92 % of base) : 542596.dasm - (dynamicClass):ABIStress_TailCaller341(ABIStress.S5U,ABIStress.S15U,ABIStress.S13U,ABIStress.S8P,int,ABIStress.S2U,ABIStress.S2P,ABIStress.I128_1,ABIStress.S6U,ABIStress.Hfa2,ABIStress.S16U,ABIStress.S6U,ABIStress.S14U,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S10U,ABIStress.S2P,int,System.Runtime.Intrinsics.Vector256`1[int],long,System.Int128,ABIStress.S14U,System.Runtime.Intrinsics.Vector256`1[int],System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S6U,ABIStress.S9U):int (FullOpts)
          12 (0.18 % of base) : 418740.dasm - Internal.JitInterface.CorInfoImpl:resolveVirtualMethod(ulong):ubyte:this (Tier1)
          12 (0.31 % of base) : 533943.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:MakeParameters[System.__Canon,System.__Canon,System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,System.__Canon,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[System.__Canon],byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte,ubyte,int,System.Func`12[System.__Canon,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.__Canon,ubyte,int,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,ubyte,ubyte,System.__Canon,System.__Canon],ubyte):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (FullOpts)
          12 (0.96 % of base) : 624059.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToLowerConversion](System.String):System.String:this (FullOpts)
          12 (0.91 % of base) : 243156.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToLowerConversion](System.String):System.String:this (Tier1)

Top method improvements (bytes):
        -444 (-3.56 % of base) : 299740.dasm - JitTest_huge_struct_Arrays_il.Test:Main():int (MinOpts)
        -440 (-10.74 % of base) : 532060.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -424 (-1.08 % of base) : 309787.dasm - DefaultNamespace.cb6054ToByte_all:runTest():ubyte:this (Instrumented Tier0)
        -328 (-20.25 % of base) : 541619.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S2U,ABIStress.S11U,ABIStress.S11U,ABIStress.S16U,ABIStress.S6U,ABIStress.S6U,ABIStress.S4P,ABIStress.S14U,ABIStress.Hfa2,ABIStress.S10U,ABIStress.S13U,ABIStress.Hfa1,double,ABIStress.S10U,ABIStress.S2P,ABIStress.Hfa2,ABIStress.S5U,ABIStress.S9U,ABIStress.S4U,ABIStress.S12U,ABIStress.S2U,ABIStress.Hfa2,float,ABIStress.S6U,ABIStress.S32U):int (MinOpts)
        -316 (-14.31 % of base) : 541618.dasm - (dynamicClass):ABIStress_PInvoker929(ABIStress.S17U,ABIStress.S10U,double,System.Numerics.Vector`1[int],System.Int128,int,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S1P,ABIStress.S3U,ABIStress.I128_1,ABIStress.S7U,ABIStress.S8P,float,ABIStress.S8U,ABIStress.S15U,ABIStress.S16U,ABIStress.S6U,ABIStress.S31U,ABIStress.S2P,double,ABIStress.S7U,ABIStress.S3U,ABIStress.I128_2,ABIStress.Hfa1,short):int[] (MinOpts)
        -304 (-19.49 % of base) : 538976.dasm - (dynamicClass):IL_STUB_PInvoke(double,ABIStress.S13U,ABIStress.S6U,ABIStress.S14U,ABIStress.S1P,ABIStress.S13U,ABIStress.S10U,ABIStress.S5U,ABIStress.S2U,ABIStress.Hfa1,long,ABIStress.S11U,ABIStress.S12U,ABIStress.S1P,ABIStress.S32U,ABIStress.S10U,long,ABIStress.S15U,ABIStress.S11U,ABIStress.S16U,ABIStress.S4P,ABIStress.S8U,ABIStress.S10U,ABIStress.S32U):int (MinOpts)
        -300 (-13.54 % of base) : 538975.dasm - (dynamicClass):ABIStress_PInvoker179(ABIStress.S14U,ABIStress.Hfa2,ABIStress.S8P,ABIStress.I128_2,ABIStress.S16U,ABIStress.S14U,float,ABIStress.I128_1,System.Int128,ABIStress.S14U,short,double,System.Numerics.Vector`1[int],ABIStress.S10U,ABIStress.I128_2,ABIStress.I128_1,ABIStress.S14U,ABIStress.I128_1,ABIStress.S13U,System.Runtime.Intrinsics.Vector128`1[int]):int[] (MinOpts)
        -300 (-19.23 % of base) : 539550.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S12U,ABIStress.S2P,ABIStress.S5U,ABIStress.S16U,ABIStress.S15U,ABIStress.S5U,ABIStress.S2P,ABIStress.S15U,ABIStress.S4P,ABIStress.S13U,ABIStress.S3U,long,ABIStress.S8U,ABIStress.S12U,ABIStress.S9U,ABIStress.S9U,ABIStress.S8U,double,double,ABIStress.S3U,ABIStress.S1P,ABIStress.S14U,ABIStress.S6U,ABIStress.S2U,ABIStress.S31U):int (MinOpts)
        -284 (-2.47 % of base) : 300966.dasm - JitTest_huge_struct_huge_il.Test:Main():int (Instrumented Tier0)
        -280 (-13.11 % of base) : 539549.dasm - (dynamicClass):ABIStress_PInvoker334(ABIStress.S12U,ABIStress.S8P,ABIStress.S13U,ABIStress.S6U,short,ABIStress.S4P,ABIStress.S5U):int[] (MinOpts)
        -280 (-16.87 % of base) : 539010.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S14U,ABIStress.S2P,float,ABIStress.S15U,ABIStress.S4P,ABIStress.S10U,ABIStress.S13U,ABIStress.S15U,ABIStress.S11U,ABIStress.S2P,ubyte,ABIStress.S8U,ABIStress.S31U,ABIStress.S4U,ABIStress.S14U,ABIStress.S11U,ABIStress.S10U,ABIStress.S15U,double,ABIStress.S17U,short,ABIStress.S31U,ABIStress.Hfa1,ABIStress.Hfa1,ABIStress.S8U):int (MinOpts)
        -272 (-17.62 % of base) : 539568.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S16U,ABIStress.S6U,ABIStress.S14U,ABIStress.S11U,ABIStress.S17U,ABIStress.S12U,ubyte,ABIStress.S13U,ABIStress.S2U,ABIStress.S4U,ABIStress.S2P,short,ABIStress.S8U,ABIStress.S17U,ubyte,ABIStress.S3U,ABIStress.Hfa1,ABIStress.S8U,ABIStress.S15U,ABIStress.S11U,ABIStress.S15U,ABIStress.S6U,ABIStress.S2P,ABIStress.S32U):int (MinOpts)
        -272 (-5.48 % of base) : 260078.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckMembersAgainstBaseType(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):this (Instrumented Tier0)
        -264 (-10.86 % of base) : 539009.dasm - (dynamicClass):ABIStress_PInvoker188(short,ABIStress.S14U,ABIStress.S1P,ABIStress.S3U,ABIStress.I128_1,ABIStress.S12U,ABIStress.S15U,ABIStress.S5U,double):int[] (MinOpts)
        -264 (-10.73 % of base) : 538392.dasm - (dynamicClass):ABIStress_PInvoker28(ABIStress.S8U,ABIStress.I128_1,ABIStress.S6U,ABIStress.S5U,ABIStress.S2U,ABIStress.S1P,ABIStress.S9U,ABIStress.Hfa2,ABIStress.S11U,ABIStress.I128_2,ABIStress.S14U,ABIStress.S9U,ABIStress.I128_2,ABIStress.S4U,ABIStress.S1P,ABIStress.S17U,ABIStress.S7U,double):int[] (MinOpts)
        -260 (-2.12 % of base) : 285345.dasm - JitTest_huge_struct_huge_il.Test:Main():int (MinOpts)
        -256 (-11.23 % of base) : 540331.dasm - (dynamicClass):ABIStress_PInvoker552(ABIStress.S11U,ABIStress.S5U,ABIStress.S10U,ABIStress.S4U,float,ABIStress.Hfa2,ubyte,ABIStress.Hfa1,ABIStress.S13U,double,ABIStress.S12U,ABIStress.I128_2,ABIStress.S8P,ABIStress.S13U,ABIStress.S10U):int[] (MinOpts)
        -256 (-18.55 % of base) : 539212.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S13U,ABIStress.S17U,long,ABIStress.S14U,ABIStress.S15U,int,ABIStress.Hfa2,ubyte,ABIStress.S15U,float,double,long,ABIStress.S17U,ABIStress.S4U,ABIStress.S15U,short,ABIStress.S10U,double,ABIStress.S15U,ABIStress.S32U):int (MinOpts)
        -252 (-16.24 % of base) : 538393.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S13U,ABIStress.S3U,ABIStress.S4P,ABIStress.S9U,ABIStress.Hfa1,ABIStress.S16U,ABIStress.S7U,ubyte,ABIStress.Hfa1,ABIStress.S3U,ABIStress.S13U,ABIStress.S31U,ABIStress.S12U,ABIStress.S16U,ABIStress.S8P,ABIStress.S2U,ABIStress.S2P,ABIStress.S4U,ABIStress.S2P,ABIStress.S2U,ABIStress.S4U,ABIStress.S13U,ABIStress.S6U,ABIStress.S31U,ABIStress.S4U):int (MinOpts)
        -252 (-16.71 % of base) : 538813.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S15U,ubyte,ABIStress.Hfa2,ABIStress.S12U,long,ABIStress.S8U,long,ABIStress.S3U,ABIStress.S15U,ABIStress.S2P,ABIStress.S7U,ABIStress.S16U,float,ABIStress.S3U,short,ABIStress.S32U,ABIStress.S11U,ABIStress.S16U,long,ABIStress.Hfa1,ABIStress.S13U,ABIStress.S7U,ABIStress.S4U,ABIStress.S17U):int (MinOpts)

Top method regressions (percentages):
          36 (13.85 % of base) : 543758.dasm - (dynamicClass):ABIStress_TailCaller965(ABIStress.S12U,System.Int128,System.Numerics.Vector`1[int],ABIStress.S9U,ABIStress.I128_1,ABIStress.S4U,ABIStress.S13U,ABIStress.Hfa2,ABIStress.S5U,double,ABIStress.S6U,ABIStress.Hfa2,System.Runtime.Intrinsics.Vector128`1[int],ubyte,long):int (FullOpts)
           4 (5.88 % of base) : 444581.dasm - SP1d:M(int,int,int,int,int,int,int):int (FullOpts)
           4 (3.85 % of base) : 622340.dasm - NullableTest:BoxUnboxToQ(System.ValueType):ubyte (FullOpts)
           4 (3.85 % of base) : 622371.dasm - NullableTest:BoxUnboxToQ(System.ValueType):ubyte (FullOpts)
           4 (3.85 % of base) : 430743.dasm - NullableTest23:BoxUnboxToQ(System.Object):ubyte (FullOpts)
           4 (3.85 % of base) : 430785.dasm - NullableTest30:BoxUnboxToQ(System.Object):ubyte (FullOpts)
          24 (3.75 % of base) : 565475.dasm - DefaultNamespace.DoubLinkBig:.ctor(int):this (FullOpts)
           8 (3.03 % of base) : 453692.dasm - JIT.HardwareIntrinsics.Arm.Helpers:AddPairwise(byte[],byte[],int):byte (FullOpts)
           8 (3.03 % of base) : 463928.dasm - JIT.HardwareIntrinsics.Arm.Helpers:AddPairwise(byte[],byte[],int):byte (FullOpts)
           8 (3.03 % of base) : 463912.dasm - JIT.HardwareIntrinsics.Arm.Helpers:AddPairwise(int[],int[],int):int (FullOpts)
           8 (3.03 % of base) : 453607.dasm - JIT.HardwareIntrinsics.Arm.Helpers:AddPairwise(ubyte[],ubyte[],int):ubyte (FullOpts)
           8 (3.03 % of base) : 463880.dasm - JIT.HardwareIntrinsics.Arm.Helpers:AddPairwise(ubyte[],ubyte[],int):ubyte (FullOpts)
           8 (3.03 % of base) : 457319.dasm - JIT.HardwareIntrinsics.Arm.Helpers:MaxPairwise(byte[],byte[],int):byte (FullOpts)
           8 (3.03 % of base) : 457303.dasm - JIT.HardwareIntrinsics.Arm.Helpers:MaxPairwise(int[],int[],int):int (FullOpts)
           8 (3.03 % of base) : 457800.dasm - JIT.HardwareIntrinsics.Arm.Helpers:MinPairwise(byte[],byte[],int):byte (FullOpts)
           8 (3.03 % of base) : 472076.dasm - JIT.HardwareIntrinsics.Arm.Helpers:MinPairwise(byte[],byte[],int):byte (FullOpts)
           8 (3.03 % of base) : 457784.dasm - JIT.HardwareIntrinsics.Arm.Helpers:MinPairwise(int[],int[],int):int (FullOpts)
           8 (3.03 % of base) : 472060.dasm - JIT.HardwareIntrinsics.Arm.Helpers:MinPairwise(int[],int[],int):int (FullOpts)
           8 (3.03 % of base) : 457735.dasm - JIT.HardwareIntrinsics.Arm.Helpers:MinPairwise(ubyte[],ubyte[],int):ubyte (FullOpts)
           8 (3.03 % of base) : 472028.dasm - JIT.HardwareIntrinsics.Arm.Helpers:MinPairwise(ubyte[],ubyte[],int):ubyte (FullOpts)

Top method improvements (percentages):
         -48 (-30.00 % of base) : 542550.dasm - (dynamicClass):ABIStress_TailCaller317(System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S11U,ABIStress.S1P,ABIStress.S9U,ABIStress.S4P,System.Int128,ABIStress.S3U,ABIStress.S11U,short,ABIStress.S7U,ABIStress.S6U,ABIStress.S6U,double,ABIStress.S16U,float,ABIStress.S1P,ABIStress.S3U,ABIStress.S15U,ABIStress.S12U):int (FullOpts)
         -96 (-29.27 % of base) : 261738.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -80 (-27.40 % of base) : 542050.dasm - (dynamicClass):ABIStress_TailCaller65(System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S4P,ABIStress.S1P,ABIStress.S11U,ABIStress.Hfa2,ABIStress.S6U,long,long,System.Int128,ABIStress.S3U,ABIStress.S13U,ABIStress.S2P,ABIStress.S8P,ABIStress.S16U,short,ABIStress.S15U,ABIStress.S2P,int,ABIStress.S10U):int (FullOpts)
         -88 (-27.16 % of base) : 261817.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -44 (-26.83 % of base) : 263980.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
         -16 (-26.67 % of base) : 543042.dasm - (dynamicClass):ABIStress_TailCaller570(ABIStress.S10U,System.Runtime.Intrinsics.Vector128`1[int],short):int (FullOpts)
         -72 (-25.35 % of base) : 543499.dasm - (dynamicClass):IL_STUB_CallTailCallTarget(long,byref,long) (FullOpts)
         -80 (-24.39 % of base) : 542901.dasm - (dynamicClass):ABIStress_TailCaller499(ABIStress.S14U,short,long,short,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S7U,ABIStress.S3U,float,ABIStress.S10U,ABIStress.S15U,ABIStress.S5U,System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S16U,System.Int128,ABIStress.S9U,ubyte,short,ABIStress.S7U,ABIStress.S8P,System.Int128,ubyte,ABIStress.S6U,ABIStress.Hfa1,ABIStress.S14U,ABIStress.S15U):int (FullOpts)
         -64 (-24.24 % of base) : 542703.dasm - (dynamicClass):IL_STUB_CallTailCallTarget(long,byref,long) (FullOpts)
         -24 (-23.08 % of base) : 542054.dasm - (dynamicClass):ABIStress_TailCaller67(ABIStress.S14U,ABIStress.S14U,ABIStress.S8U,System.Int128,ABIStress.S15U,ABIStress.S9U,ABIStress.S9U,ABIStress.S4P,short,ABIStress.S8P,ABIStress.S14U,System.Numerics.Vector`1[int],ABIStress.I128_1):int (FullOpts)
         -88 (-22.68 % of base) : 542272.dasm - (dynamicClass):ABIStress_TailCaller176(ABIStress.S8U,ABIStress.I128_1,ABIStress.S15U,ABIStress.S11U,ABIStress.I128_1,ABIStress.S16U,ABIStress.S13U,ABIStress.S11U,ABIStress.S10U,ABIStress.Hfa1,ABIStress.S5U,ABIStress.S13U,short,ABIStress.S12U,ABIStress.S6U,short,ABIStress.S8U,ABIStress.S14U,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S7U):int (FullOpts)
         -48 (-22.22 % of base) : 263922.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)
         -92 (-21.90 % of base) : 543594.dasm - (dynamicClass):IL_STUB_CallTailCallTarget(long,byref,long) (FullOpts)
         -56 (-20.90 % of base) : 260306.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper+CheckConstraintsArgs:.ctor(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.ConversionsBase,ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0)
        -100 (-20.49 % of base) : 542999.dasm - (dynamicClass):IL_STUB_CallTailCallTarget(long,byref,long) (FullOpts)
        -328 (-20.25 % of base) : 541619.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S2U,ABIStress.S11U,ABIStress.S11U,ABIStress.S16U,ABIStress.S6U,ABIStress.S6U,ABIStress.S4P,ABIStress.S14U,ABIStress.Hfa2,ABIStress.S10U,ABIStress.S13U,ABIStress.Hfa1,double,ABIStress.S10U,ABIStress.S2P,ABIStress.Hfa2,ABIStress.S5U,ABIStress.S9U,ABIStress.S4U,ABIStress.S12U,ABIStress.S2U,ABIStress.Hfa2,float,ABIStress.S6U,ABIStress.S32U):int (MinOpts)
         -68 (-20.24 % of base) : 542140.dasm - (dynamicClass):IL_STUB_CallTailCallTarget(long,byref,long) (FullOpts)
        -304 (-19.49 % of base) : 538976.dasm - (dynamicClass):IL_STUB_PInvoke(double,ABIStress.S13U,ABIStress.S6U,ABIStress.S14U,ABIStress.S1P,ABIStress.S13U,ABIStress.S10U,ABIStress.S5U,ABIStress.S2U,ABIStress.Hfa1,long,ABIStress.S11U,ABIStress.S12U,ABIStress.S1P,ABIStress.S32U,ABIStress.S10U,long,ABIStress.S15U,ABIStress.S11U,ABIStress.S16U,ABIStress.S4P,ABIStress.S8U,ABIStress.S10U,ABIStress.S32U):int (MinOpts)
        -300 (-19.23 % of base) : 539550.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S12U,ABIStress.S2P,ABIStress.S5U,ABIStress.S16U,ABIStress.S15U,ABIStress.S5U,ABIStress.S2P,ABIStress.S15U,ABIStress.S4P,ABIStress.S13U,ABIStress.S3U,long,ABIStress.S8U,ABIStress.S12U,ABIStress.S9U,ABIStress.S9U,ABIStress.S8U,double,double,ABIStress.S3U,ABIStress.S1P,ABIStress.S14U,ABIStress.S6U,ABIStress.S2U,ABIStress.S31U):int (MinOpts)
        -212 (-19.13 % of base) : 540635.dasm - (dynamicClass):ABIStress_PInvoker635(ubyte,ABIStress.S3U,System.Numerics.Vector`1[int],ABIStress.S14U,ABIStress.S9U,ABIStress.Hfa1,ABIStress.S5U,int,System.Int128,float,ABIStress.S17U,ABIStress.S3U,ABIStress.S2P,ABIStress.Hfa2,ABIStress.S9U,ABIStress.S31U,ABIStress.I128_2,ABIStress.S13U,ABIStress.S4U,ABIStress.S32U,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.I128_2,ABIStress.S15U,ABIStress.I128_1,ABIStress.S2U):int[] (MinOpts)


libraries.crossgen2.linux.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 55738036 (overridden on cmd)
Total bytes of diff: 55726032 (overridden on cmd)
Total bytes of delta: -12004 (-0.02 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          96 : 67171.dasm (3.10 % of base)
          64 : 66313.dasm (4.19 % of base)
          60 : 53017.dasm (2.66 % of base)
          60 : 73685.dasm (7.81 % of base)
          48 : 144288.dasm (2.65 % of base)
          48 : 191411.dasm (2.65 % of base)
          44 : 172651.dasm (0.16 % of base)
          40 : 199088.dasm (5.35 % of base)
          40 : 66172.dasm (2.78 % of base)
          32 : 69106.dasm (3.45 % of base)
          32 : 101646.dasm (3.59 % of base)
          32 : 183160.dasm (5.59 % of base)
          32 : 101648.dasm (5.10 % of base)
          28 : 10674.dasm (1.03 % of base)
          28 : 144615.dasm (3.91 % of base)
          28 : 223009.dasm (4.96 % of base)
          28 : 144648.dasm (3.87 % of base)
          28 : 191752.dasm (3.87 % of base)
          28 : 207889.dasm (3.74 % of base)
          28 : 34383.dasm (3.63 % of base)

Top file improvements (bytes):
       -1280 : 145847.dasm (-5.26 % of base)
       -1280 : 192908.dasm (-5.26 % of base)
        -140 : 197916.dasm (-4.77 % of base)
        -128 : 198080.dasm (-11.51 % of base)
        -124 : 7350.dasm (-4.59 % of base)
         -92 : 130742.dasm (-0.93 % of base)
         -88 : 101740.dasm (-7.03 % of base)
         -88 : 197998.dasm (-5.39 % of base)
         -72 : 84121.dasm (-14.88 % of base)
         -72 : 106545.dasm (-2.96 % of base)
         -68 : 163193.dasm (-3.93 % of base)
         -64 : 200254.dasm (-4.23 % of base)
         -64 : 105464.dasm (-5.50 % of base)
         -64 : 48392.dasm (-10.13 % of base)
         -60 : 48061.dasm (-0.19 % of base)
         -60 : 100638.dasm (-1.73 % of base)
         -56 : 153320.dasm (-6.01 % of base)
         -56 : 177275.dasm (-2.92 % of base)
         -56 : 188334.dasm (-9.33 % of base)
         -56 : 98270.dasm (-1.72 % of base)

79 total files with Code Size differences (44 improved, 35 regressed), 20 unchanged.

Top method regressions (bytes):
          96 (3.10 % of base) : 67171.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:MakeSynthesizedTupleMembers(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol],System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbol]):Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbol]:this (FullOpts)
          64 (4.19 % of base) : 66313.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:CreateEmbeddedAttributesIfNeeded(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
          60 (7.81 % of base) : 73685.dasm - Microsoft.CodeAnalysis.CSharp.ClosureConversion+<>c__DisplayClass35_0:<SynthesizeClosureEnvironments>g__MakeFrame|1(Microsoft.CodeAnalysis.CSharp.ClosureConversion+Analysis+Scope,Microsoft.CodeAnalysis.CSharp.ClosureConversion+Analysis+ClosureEnvironment):Microsoft.CodeAnalysis.CSharp.SynthesizedClosureEnvironment:this (FullOpts)
          60 (2.66 % of base) : 53017.dasm - Microsoft.CodeAnalysis.CSharp.SymbolDisplayVisitor:AddTypeParameterConstraints(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ITypeSymbol]):this (FullOpts)
          48 (2.65 % of base) : 144288.dasm - Microsoft.Cci.PdbWriter:DefineNamespaceScopes(Microsoft.Cci.IMethodBody):this (FullOpts)
          48 (2.65 % of base) : 191411.dasm - Microsoft.Cci.PdbWriter:DefineNamespaceScopes(Microsoft.Cci.IMethodBody):this (FullOpts)
          44 (0.16 % of base) : 172651.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          40 (2.78 % of base) : 66172.dasm - Microsoft.CodeAnalysis.CSharp.Emit.CSharpDefinitionMap:CreateLocalSlotMap(Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.LocalInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Emit.EncLocalInfo] (FullOpts)
          40 (5.35 % of base) : 199088.dasm - Microsoft.CodeAnalysis.SarifV2ErrorLogger+DiagnosticDescriptorSet:ToSortedList():System.Collections.Generic.List`1[System.ValueTuple`3[int,Microsoft.CodeAnalysis.DiagnosticDescriptor,Microsoft.CodeAnalysis.DiagnosticDescriptorErrorLoggerInfo]]:this (FullOpts)
          32 (3.45 % of base) : 69106.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:InfiniteFlatteningGraph(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]):ubyte (FullOpts)
          32 (3.59 % of base) : 101646.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode:DoGetSyntaxErrors(Microsoft.CodeAnalysis.SyntaxTree,Microsoft.CodeAnalysis.SyntaxNodeOrToken):System.Collections.ObjectModel.ReadOnlyCollection`1[Microsoft.CodeAnalysis.Diagnostic] (FullOpts)
          32 (5.10 % of base) : 101648.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode:ProcessTrivia(Microsoft.CodeAnalysis.SyntaxTree,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.Diagnostic],System.Collections.Generic.Stack`1[Microsoft.CodeAnalysis.SyntaxNodeOrToken],Microsoft.CodeAnalysis.SyntaxTriviaList) (FullOpts)
          32 (5.59 % of base) : 183160.dasm - System.Data.ProviderBase.DbReferenceCollection:Notify(int):this (FullOpts)
          28 (3.91 % of base) : 144615.dasm - Microsoft.Cci.MetadataWriter:PopulateMethodTableRows(int[]):this (FullOpts)
          28 (3.87 % of base) : 144648.dasm - Microsoft.Cci.MetadataWriter:SerializeCustomAttributeSignature(Microsoft.Cci.ICustomAttribute,System.Reflection.Metadata.BlobBuilder):this (FullOpts)
          28 (3.87 % of base) : 191752.dasm - Microsoft.Cci.MetadataWriter:SerializeCustomAttributeSignature(Microsoft.Cci.ICustomAttribute,System.Reflection.Metadata.BlobBuilder):this (FullOpts)
          28 (4.96 % of base) : 223009.dasm - Microsoft.Extensions.Logging.LoggerFilterConfigureOptions:LoadRules(Microsoft.Extensions.Logging.LoggerFilterOptions,Microsoft.Extensions.Configuration.IConfigurationSection,System.String) (FullOpts)
          28 (3.74 % of base) : 207889.dasm - System.Linq.Parallel.DecimalAverageAggregationOperator:InternalAggregate(byref):System.Decimal:this (FullOpts)
          28 (3.63 % of base) : 34383.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateFields(System.RuntimeType+RuntimeTypeCache+Filter):System.Reflection.RuntimeFieldInfo[]:this (FullOpts)
          28 (1.03 % of base) : 10674.dasm - System.Xml.Schema.SchemaCollectionPreprocessor:PreprocessSimpleType(System.Xml.Schema.XmlSchemaSimpleType,ubyte):this (FullOpts)

Top method improvements (bytes):
       -1280 (-5.26 % of base) : 145847.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
       -1280 (-5.26 % of base) : 192908.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
        -140 (-4.77 % of base) : 197916.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:GetDelta(Microsoft.CodeAnalysis.Compilation,System.Guid,System.Reflection.Metadata.Ecma335.MetadataSizes):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
        -128 (-11.51 % of base) : 198080.dasm - Microsoft.CodeAnalysis.Emit.SymbolMatcher:MapBaselineToCompilation(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]],System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]]):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
        -124 (-4.59 % of base) : 7350.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
         -92 (-0.93 % of base) : 130742.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -88 (-5.39 % of base) : 197998.dasm - Microsoft.CodeAnalysis.Emit.EmitBaseline:CreateInitialBaseline(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.ModuleMetadata,System.Func`2[System.Reflection.Metadata.MethodDefinitionHandle,Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation],System.Func`2[System.Reflection.Metadata.MethodDefinitionHandle,System.Reflection.Metadata.StandaloneSignatureHandle],ubyte):Microsoft.CodeAnalysis.Emit.EmitBaseline (FullOpts)
         -88 (-7.03 % of base) : 101740.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilationOptions:.ctor(Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilationOptions):this (FullOpts)
         -72 (-14.88 % of base) : 84121.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.QuickAttributeHelpers:GetQuickAttributes(System.String,ubyte):ubyte (FullOpts)
         -72 (-2.96 % of base) : 106545.dasm - Microsoft.CodeAnalysis.VisualBasic.TypeArgumentInference+InferenceGraph:Infer(Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BoundNode,byref,byref,byref,byref,byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.BitVector):ubyte (FullOpts)
         -68 (-3.93 % of base) : 163193.dasm - System.Data.Common.DecimalStorage:Aggregate(int[],int):System.Object:this (FullOpts)
         -64 (-10.13 % of base) : 48392.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (FullOpts)
         -64 (-4.23 % of base) : 200254.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__75:MoveNext():ubyte:this (FullOpts)
         -64 (-5.50 % of base) : 105464.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEDeltaAssemblyBuilder+VB$StateMachine_27_GetTopLevelTypeDefinitions:MoveNext():ubyte:this (FullOpts)
         -60 (-0.19 % of base) : 48061.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
         -60 (-1.73 % of base) : 100638.dasm - Microsoft.CodeAnalysis.VisualBasic.LocalRewriter:VisitFieldOrPropertyInitializer(Microsoft.CodeAnalysis.VisualBasic.BoundFieldOrPropertyInitializer,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbol]):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this (FullOpts)
         -56 (-6.01 % of base) : 153320.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__77:MoveNext():ubyte:this (FullOpts)
         -56 (-1.72 % of base) : 98270.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:RewriteTrivia(Microsoft.CodeAnalysis.SyntaxTriviaList,int,ubyte,ubyte,ubyte,int,int):Microsoft.CodeAnalysis.SyntaxTriviaList:this (FullOpts)
         -56 (-2.92 % of base) : 177275.dasm - System.Security.Cryptography.X509Certificates.X500NameEncoder:X500DistinguishedNameDecode(ubyte[],ubyte,ubyte,ubyte,System.String,System.String,ubyte):System.String (FullOpts)
         -56 (-9.33 % of base) : 188334.dasm - System.Text.Json.JsonDocument:Parse(System.Buffers.ReadOnlySequence`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)

Top method regressions (percentages):
          60 (7.81 % of base) : 73685.dasm - Microsoft.CodeAnalysis.CSharp.ClosureConversion+<>c__DisplayClass35_0:<SynthesizeClosureEnvironments>g__MakeFrame|1(Microsoft.CodeAnalysis.CSharp.ClosureConversion+Analysis+Scope,Microsoft.CodeAnalysis.CSharp.ClosureConversion+Analysis+ClosureEnvironment):Microsoft.CodeAnalysis.CSharp.SynthesizedClosureEnvironment:this (FullOpts)
           4 (7.14 % of base) : 88016.dasm - Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable`1[int]):this (FullOpts)
          20 (6.02 % of base) : 72648.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
          24 (5.83 % of base) : 141890.dasm - System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1[System.__Canon]:DecodeFixedArguments(byref,byref,int,System.Reflection.Metadata.BlobReader):System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.CustomAttributeTypedArgument`1[System.__Canon]]:this (FullOpts)
          32 (5.59 % of base) : 183160.dasm - System.Data.ProviderBase.DbReferenceCollection:Notify(int):this (FullOpts)
           4 (5.56 % of base) : 74957.dasm - Microsoft.CodeAnalysis.CSharp.Emit.CSharpSymbolMatcher+MatchDefsToSource:GetFields(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFieldDefinition]:this (FullOpts)
           4 (5.56 % of base) : 74956.dasm - Microsoft.CodeAnalysis.CSharp.Emit.CSharpSymbolMatcher+MatchDefsToSource:GetNestedTypes(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.INestedTypeDefinition]:this (FullOpts)
           4 (5.56 % of base) : 105483.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.VisualBasicSymbolMatcher+MatchDefsToSource:GetFields(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFieldDefinition]:this (FullOpts)
           4 (5.56 % of base) : 105482.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.VisualBasicSymbolMatcher+MatchDefsToSource:GetNestedTypes(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.INestedTypeDefinition]:this (FullOpts)
          40 (5.35 % of base) : 199088.dasm - Microsoft.CodeAnalysis.SarifV2ErrorLogger+DiagnosticDescriptorSet:ToSortedList():System.Collections.Generic.List`1[System.ValueTuple`3[int,Microsoft.CodeAnalysis.DiagnosticDescriptor,Microsoft.CodeAnalysis.DiagnosticDescriptorErrorLoggerInfo]]:this (FullOpts)
          32 (5.10 % of base) : 101648.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode:ProcessTrivia(Microsoft.CodeAnalysis.SyntaxTree,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.Diagnostic],System.Collections.Generic.Stack`1[Microsoft.CodeAnalysis.SyntaxNodeOrToken],Microsoft.CodeAnalysis.SyntaxTriviaList) (FullOpts)
           4 (5.00 % of base) : 146102.dasm - Microsoft.CodeAnalysis.SourceLocation:GetLineSpan():Microsoft.CodeAnalysis.FileLinePositionSpan:this (FullOpts)
           4 (5.00 % of base) : 193154.dasm - Microsoft.CodeAnalysis.SourceLocation:GetLineSpan():Microsoft.CodeAnalysis.FileLinePositionSpan:this (FullOpts)
           4 (5.00 % of base) : 146103.dasm - Microsoft.CodeAnalysis.SourceLocation:GetMappedLineSpan():Microsoft.CodeAnalysis.FileLinePositionSpan:this (FullOpts)
           4 (5.00 % of base) : 193155.dasm - Microsoft.CodeAnalysis.SourceLocation:GetMappedLineSpan():Microsoft.CodeAnalysis.FileLinePositionSpan:this (FullOpts)
          28 (4.96 % of base) : 223009.dasm - Microsoft.Extensions.Logging.LoggerFilterConfigureOptions:LoadRules(Microsoft.Extensions.Logging.LoggerFilterOptions,Microsoft.Extensions.Configuration.IConfigurationSection,System.String) (FullOpts)
          20 (4.95 % of base) : 72653.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          24 (4.80 % of base) : 167685.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:IndexOf(System.__Canon,int,int,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):int:this (FullOpts)
           4 (4.76 % of base) : 130840.dasm - System.Text.RegularExpressions.Symbolic.MatchingState`1[System.Text.RegularExpressions.Symbolic.BitVector]:IsDeadend(System.Text.RegularExpressions.Symbolic.ISolver`1[System.Text.RegularExpressions.Symbolic.BitVector]):ubyte:this (FullOpts)
           4 (4.76 % of base) : 130955.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BitVector]:IsNothing(System.Text.RegularExpressions.Symbolic.ISolver`1[System.Text.RegularExpressions.Symbolic.BitVector]):ubyte:this (FullOpts)

Top method improvements (percentages):
         -12 (-21.43 % of base) : 188803.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[long]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -12 (-21.43 % of base) : 188789.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -12 (-21.43 % of base) : 188814.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -32 (-16.67 % of base) : 190251.dasm - System.Text.Json.JsonDocument:ParseRented(System.Text.Json.PooledByteBufferWriter,System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
         -72 (-14.88 % of base) : 84121.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.QuickAttributeHelpers:GetQuickAttributes(System.String,ubyte):ubyte (FullOpts)
         -28 (-14.29 % of base) : 176973.dasm - System.Formats.Asn1.AsnValueReader:ThrowIfNotEmpty():this (FullOpts)
         -28 (-14.29 % of base) : 209777.dasm - System.Formats.Asn1.AsnValueReader:ThrowIfNotEmpty():this (FullOpts)
         -28 (-14.29 % of base) : 167036.dasm - System.Formats.Asn1.AsnValueReader:ThrowIfNotEmpty():this (FullOpts)
         -24 (-13.64 % of base) : 188890.dasm - System.Text.Json.Nodes.JsonValue:Create(System.Nullable`1[System.Decimal],System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonValue (FullOpts)
          -8 (-13.33 % of base) : 188790.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.DateTimeOffset):System.Text.Json.Nodes.JsonNode (FullOpts)
          -8 (-13.33 % of base) : 188792.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Decimal):System.Text.Json.Nodes.JsonNode (FullOpts)
          -8 (-13.33 % of base) : 188796.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Guid):System.Text.Json.Nodes.JsonNode (FullOpts)
          -8 (-13.33 % of base) : 188795.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[double]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -32 (-12.90 % of base) : 189750.dasm - System.Text.Json.JsonDocument:ParseValue(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
         -12 (-12.00 % of base) : 188333.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlyMemory`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
         -24 (-11.76 % of base) : 33670.dasm - System.Reflection.Emit.RuntimeModuleBuilder:SetFieldRVAContent(System.Runtime.CompilerServices.QCallModule,int,ubyte[],int) (FullOpts)
        -128 (-11.51 % of base) : 198080.dasm - Microsoft.CodeAnalysis.Emit.SymbolMatcher:MapBaselineToCompilation(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]],System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]]):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
         -28 (-11.48 % of base) : 193861.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ReplaceAdditionalTexts(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
         -28 (-11.48 % of base) : 146829.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ReplaceAdditionalTexts(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
         -24 (-11.32 % of base) : 33675.dasm - System.Reflection.Emit.RuntimeTypeBuilder:DefineMethodSpec(System.Runtime.CompilerServices.QCallModule,int,ubyte[],int):int (FullOpts)


libraries.pmi.linux.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 76022852 (overridden on cmd)
Total bytes of diff: 76011756 (overridden on cmd)
Total bytes of delta: -11096 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         124 : 86787.dasm (1.10 % of base)
         112 : 57748.dasm (0.93 % of base)
         104 : 87649.dasm (4.48 % of base)
          96 : 31194.dasm (2.38 % of base)
          84 : 109437.dasm (1.72 % of base)
          80 : 86814.dasm (0.80 % of base)
          76 : 86553.dasm (1.38 % of base)
          76 : 187578.dasm (1.99 % of base)
          64 : 86559.dasm (2.12 % of base)
          64 : 229159.dasm (1.70 % of base)
          56 : 176026.dasm (0.45 % of base)
          48 : 35416.dasm (0.44 % of base)
          48 : 86310.dasm (0.49 % of base)
          48 : 202970.dasm (5.00 % of base)
          44 : 112545.dasm (1.04 % of base)
          40 : 86698.dasm (0.68 % of base)
          40 : 86709.dasm (0.99 % of base)
          40 : 91159.dasm (2.24 % of base)
          40 : 29457.dasm (0.65 % of base)
          40 : 90978.dasm (1.05 % of base)

Top file improvements (bytes):
        -440 : 195236.dasm (-8.97 % of base)
        -440 : 195329.dasm (-9.30 % of base)
        -140 : 18645.dasm (-6.01 % of base)
        -128 : 229270.dasm (-11.51 % of base)
        -124 : 229099.dasm (-4.32 % of base)
        -112 : 243603.dasm (-6.68 % of base)
        -112 : 229188.dasm (-5.26 % of base)
         -96 : 115168.dasm (-4.69 % of base)
         -88 : 285740.dasm (-1.77 % of base)
         -88 : 148831.dasm (-6.49 % of base)
         -68 : 285783.dasm (-1.63 % of base)
         -64 : 33443.dasm (-9.70 % of base)
         -64 : 192529.dasm (-7.41 % of base)
         -60 : 196146.dasm (-4.16 % of base)
         -56 : 35310.dasm (-0.51 % of base)
         -48 : 61463.dasm (-1.77 % of base)
         -48 : 171340.dasm (-6.09 % of base)
         -48 : 21838.dasm (-1.72 % of base)
         -48 : 22977.dasm (-0.75 % of base)
         -48 : 234116.dasm (-3.58 % of base)

80 total files with Code Size differences (42 improved, 38 regressed), 20 unchanged.

Top method regressions (bytes):
         124 (1.10 % of base) : 86787.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:DecodeModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,int,int,int,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.MemberModifiers:this (FullOpts)
         112 (0.93 % of base) : 57748.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
         104 (4.48 % of base) : 87649.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.VisualBasicAttributeData:ShouldEmitAttribute(Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,ubyte):ubyte:this (FullOpts)
          96 (2.38 % of base) : 31194.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:<LoadAndValidateAttributes>g__removeObsoleteDiagnosticsForForwardedTypes|197_0(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],byref):this (FullOpts)
          84 (1.72 % of base) : 109437.dasm - Microsoft.CodeAnalysis.VisualBasic.AccessCheck:VerifyAccessExposureForMemberType(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.SyntaxNodeOrToken,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,ubyte) (FullOpts)
          80 (0.80 % of base) : 86814.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:DecodeParameterList(Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,int,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.ParameterSyntax],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.VisualBasic.Binder+CheckParameterModifierDelegate,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
          76 (1.99 % of base) : 187578.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:PopulateEncLogTableRows(System.Collections.Immutable.ImmutableArray`1[int],byref,byref):this (FullOpts)
          76 (1.38 % of base) : 86553.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BuildBoundLambdaParameters(Microsoft.CodeAnalysis.VisualBasic.UnboundLambda,Microsoft.CodeAnalysis.VisualBasic.UnboundLambda+TargetSignature,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.BoundLambdaParameterSymbol]:this (FullOpts)
          64 (1.70 % of base) : 229159.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:PopulateEncLogTableRows(System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int]):this (FullOpts)
          64 (2.12 % of base) : 86559.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ConstructAnonymousDelegateSymbol(Microsoft.CodeAnalysis.VisualBasic.UnboundLambda,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.BoundLambdaParameterSymbol],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol:this (FullOpts)
          56 (0.45 % of base) : 176026.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
          48 (0.44 % of base) : 35416.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:LearnFromDecisionDag(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDag,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+PossiblyConditionalState]):Microsoft.CodeAnalysis.PooledObjects.PooledDictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte]]:this (FullOpts)
          48 (0.49 % of base) : 86310.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindAttributeNamedArgument(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Syntax.SimpleArgumentSyntax,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
          48 (5.00 % of base) : 202970.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitConvertArithmeticResult(int,System.Type):this (FullOpts)
          44 (1.04 % of base) : 112545.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder+TypeBinder:LookupDottedName(Microsoft.CodeAnalysis.VisualBasic.LookupResult,Microsoft.CodeAnalysis.VisualBasic.Syntax.QualifiedNameSyntax,Microsoft.CodeAnalysis.VisualBasic.Binder,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,byref,ubyte,ubyte) (FullOpts)
          40 (0.65 % of base) : 29457.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (FullOpts)
          40 (0.68 % of base) : 86698.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:DecodeLocalModifiersAndReportErrors(Microsoft.CodeAnalysis.SyntaxTokenList,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
          40 (0.99 % of base) : 86709.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:VerifyNameShadowingInMethodBody(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.SyntaxNodeOrToken,Microsoft.CodeAnalysis.SyntaxNodeOrToken,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
          40 (1.05 % of base) : 90978.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceNamedTypeSymbol:CreateTypeParameterInfoInPart(Microsoft.CodeAnalysis.SyntaxTree,Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceTypeParameterOnTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Syntax.TypeParameterListSyntax,ubyte,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
          40 (2.24 % of base) : 91159.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourcePropertySymbol:CreateWithEvents(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Binder,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxReference,Microsoft.CodeAnalysis.VisualBasic.MemberModifiers,ubyte,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.Symbols.SourcePropertySymbol (FullOpts)

Top method improvements (bytes):
        -440 (-9.30 % of base) : 195329.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -440 (-8.97 % of base) : 195236.dasm - Newtonsoft.Json.JsonWriter:WriteValueAsync(Newtonsoft.Json.JsonWriter,int,System.Object,System.Threading.CancellationToken):System.Threading.Tasks.Task (FullOpts)
        -140 (-6.01 % of base) : 18645.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -128 (-11.51 % of base) : 229270.dasm - Microsoft.CodeAnalysis.Emit.SymbolMatcher:MapBaselineToCompilation(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]],System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]]):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
        -124 (-4.32 % of base) : 229099.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:GetDelta(Microsoft.CodeAnalysis.Compilation,System.Guid,System.Reflection.Metadata.Ecma335.MetadataSizes):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
        -112 (-5.26 % of base) : 229188.dasm - Microsoft.CodeAnalysis.Emit.EmitBaseline:CreateInitialBaseline(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.ModuleMetadata,System.Func`2[System.Reflection.Metadata.MethodDefinitionHandle,Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation],System.Func`2[System.Reflection.Metadata.MethodDefinitionHandle,System.Reflection.Metadata.StandaloneSignatureHandle],ubyte):Microsoft.CodeAnalysis.Emit.EmitBaseline (FullOpts)
        -112 (-6.68 % of base) : 243603.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
         -96 (-4.69 % of base) : 115168.dasm - Microsoft.CodeAnalysis.VisualBasic.TypeArgumentInference+InferenceGraph:Infer(Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BoundNode,byref,byref,byref,byref,byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.BitVector):ubyte (FullOpts)
         -88 (-6.49 % of base) : 148831.dasm - Microsoft.Build.Graph.GraphBuilder:AddEdgesFromProjectReferenceItems(System.Collections.Generic.Dictionary`2[Microsoft.Build.BackEnd.ConfigurationMetadata,Microsoft.Build.Graph.ParsedProject],Microsoft.Build.Graph.GraphBuilder+GraphEdges):this (FullOpts)
         -88 (-1.77 % of base) : 285740.dasm - System.Formats.Asn1.AsnWriter:WriteGeneralizedTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset,ubyte):this (FullOpts)
         -68 (-1.63 % of base) : 285783.dasm - System.Formats.Asn1.AsnWriter:WriteUtcTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset):this (FullOpts)
         -64 (-9.70 % of base) : 33443.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (FullOpts)
         -64 (-7.41 % of base) : 192529.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__77:MoveNext():ubyte:this (FullOpts)
         -60 (-4.16 % of base) : 196146.dasm - Newtonsoft.Json.Serialization.DefaultSerializationBinder:GetGenericTypeFromTypeName(System.String,System.Reflection.Assembly):System.Type:this (FullOpts)
         -56 (-0.51 % of base) : 35310.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitTupleDeconstructionArguments(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+DeconstructionVariable],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression]],Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState]):this (FullOpts)
         -48 (-1.77 % of base) : 61463.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol:GetCustomAttributesForToken(System.Reflection.Metadata.EntityHandle,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData]:this (FullOpts)
         -48 (-3.58 % of base) : 234116.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__75:MoveNext():ubyte:this (FullOpts)
         -48 (-6.09 % of base) : 171340.dasm - System.Security.Cryptography.Pkcs.SignerInfo:VerifySignature(System.Security.Cryptography.Pkcs.CmsSignature,System.Security.Cryptography.X509Certificates.X509Certificate2,ubyte):ubyte:this (FullOpts)
         -48 (-1.72 % of base) : 21838.dasm - System.Xml.Schema.XsdDateTime+Parser:Parse(System.String,int):ubyte:this (FullOpts)
         -48 (-0.75 % of base) : 22977.dasm - System.Xml.Xsl.Xslt.XsltLoader:LoadOutput():this (FullOpts)

Top method regressions (percentages):
          16 (6.90 % of base) : 62144.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
           4 (6.67 % of base) : 178487.dasm - Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (FullOpts)
           4 (6.67 % of base) : 220164.dasm - Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (FullOpts)
           4 (6.67 % of base) : 94381.dasm - Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable`1[int]):this (FullOpts)
           4 (6.25 % of base) : 64616.dasm - Microsoft.CodeAnalysis.CSharp.Emit.CSharpSymbolMatcher+MatchDefsToSource:GetFields(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFieldDefinition]:this (FullOpts)
           4 (6.25 % of base) : 64615.dasm - Microsoft.CodeAnalysis.CSharp.Emit.CSharpSymbolMatcher+MatchDefsToSource:GetNestedTypes(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.INestedTypeDefinition]:this (FullOpts)
           4 (6.25 % of base) : 191666.dasm - Microsoft.CodeAnalysis.DesktopStrongNameProvider+<>c__DisplayClass12_0:<SignBuilder>b__0(System.Collections.Generic.IEnumerable`1[System.Reflection.Metadata.Blob]):ubyte[]:this (FullOpts)
           4 (6.25 % of base) : 233261.dasm - Microsoft.CodeAnalysis.DesktopStrongNameProvider+<>c__DisplayClass12_0:<SignBuilder>b__0(System.Collections.Generic.IEnumerable`1[System.Reflection.Metadata.Blob]):ubyte[]:this (FullOpts)
           4 (6.25 % of base) : 113909.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.VisualBasicSymbolMatcher+MatchDefsToSource:GetFields(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFieldDefinition]:this (FullOpts)
           4 (6.25 % of base) : 113908.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.VisualBasicSymbolMatcher+MatchDefsToSource:GetNestedTypes(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.INestedTypeDefinition]:this (FullOpts)
           4 (5.88 % of base) : 190579.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (FullOpts)
           4 (5.88 % of base) : 232213.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (FullOpts)
           4 (5.88 % of base) : 190582.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+UpgradeableReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (FullOpts)
           4 (5.88 % of base) : 232216.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+UpgradeableReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (FullOpts)
           4 (5.88 % of base) : 190584.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+WriteLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (FullOpts)
           4 (5.88 % of base) : 232218.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+WriteLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (FullOpts)
          48 (5.00 % of base) : 202970.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitConvertArithmeticResult(int,System.Type):this (FullOpts)
          24 (4.69 % of base) : 31179.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:DecodeWellKnownAttribute(byref):this (FullOpts)
         104 (4.48 % of base) : 87649.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.VisualBasicAttributeData:ShouldEmitAttribute(Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,ubyte):ubyte:this (FullOpts)
          28 (4.24 % of base) : 63872.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Blender+Reader:TryTakeOldNodeOrToken(ubyte,byref):ubyte:this (FullOpts)

Top method improvements (percentages):
         -32 (-20.00 % of base) : 31559.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
         -12 (-20.00 % of base) : 238105.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.DateTimeOffset):System.Text.Json.Nodes.JsonNode (FullOpts)
         -12 (-20.00 % of base) : 238118.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[long]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -12 (-20.00 % of base) : 238104.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -12 (-20.00 % of base) : 238129.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -24 (-16.67 % of base) : 92926.dasm - Microsoft.CodeAnalysis.VisualBasic.BoundPropertyAccess:MakeRValue():Microsoft.CodeAnalysis.VisualBasic.BoundPropertyAccess:this (FullOpts)
         -20 (-14.29 % of base) : 31560.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
         -20 (-14.29 % of base) : 92606.dasm - Microsoft.CodeAnalysis.VisualBasic.BoundCall:MakeRValue():Microsoft.CodeAnalysis.VisualBasic.BoundCall:this (FullOpts)
         -12 (-12.50 % of base) : 150811.dasm - Microsoft.Build.Execution.TaskRegistry:get_TaskRegistrations():System.Collections.Generic.IDictionary`2[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskIdentity,System.Collections.Generic.List`1[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord]]:this (FullOpts)
          -8 (-12.50 % of base) : 238107.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Decimal):System.Text.Json.Nodes.JsonNode (FullOpts)
          -8 (-12.50 % of base) : 238111.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Guid):System.Text.Json.Nodes.JsonNode (FullOpts)
          -8 (-12.50 % of base) : 238110.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[double]):System.Text.Json.Nodes.JsonNode (FullOpts)
        -128 (-11.51 % of base) : 229270.dasm - Microsoft.CodeAnalysis.Emit.SymbolMatcher:MapBaselineToCompilation(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]],System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]]):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
          -8 (-11.11 % of base) : 717.dasm - System.String:GetBytesFromEncoding(ulong,int,System.Text.Encoding):int:this (FullOpts)
         -12 (-11.11 % of base) : 236514.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlyMemory`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
         -16 (-10.81 % of base) : 146163.dasm - System.Data.ProviderBase.SchemaMapping:MappedIndex():this (FullOpts)
          -8 (-10.53 % of base) : 273893.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[int,System.Nullable`1[int]]:TryUpdate(int,System.Nullable`1[int],System.Nullable`1[int]):ubyte:this (FullOpts)
          -8 (-10.53 % of base) : 273994.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[long,System.Nullable`1[int]]:TryUpdate(long,System.Nullable`1[int],System.Nullable`1[int]):ubyte:this (FullOpts)
         -24 (-10.34 % of base) : 181337.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ReplaceAdditionalTexts(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
         -24 (-10.34 % of base) : 222949.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ReplaceAdditionalTexts(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)


libraries_tests.run.linux.arm64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 381446624 (overridden on cmd)
Total bytes of diff: 380939088 (overridden on cmd)
Total bytes of delta: -507536 (-0.13 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         660 : 176969.dasm (4.75 % of base)
         488 : 55032.dasm (2.93 % of base)
         260 : 691459.dasm (3.54 % of base)
         236 : 86604.dasm (2.21 % of base)
         144 : 91450.dasm (3.31 % of base)
          88 : 86546.dasm (0.45 % of base)
          84 : 82803.dasm (0.79 % of base)
          80 : 49494.dasm (0.75 % of base)
          72 : 86577.dasm (0.44 % of base)
          68 : 461012.dasm (1.26 % of base)
          68 : 624256.dasm (0.96 % of base)
          68 : 95637.dasm (0.63 % of base)
          68 : 671005.dasm (0.33 % of base)
          56 : 551285.dasm (13.21 % of base)
          52 : 62300.dasm (0.38 % of base)
          52 : 177269.dasm (0.56 % of base)
          52 : 93441.dasm (0.54 % of base)
          48 : 93450.dasm (0.44 % of base)
          48 : 372697.dasm (1.14 % of base)
          48 : 372713.dasm (1.30 % of base)

Top file improvements (bytes):
       -1568 : 23526.dasm (-7.01 % of base)
       -1568 : 44656.dasm (-6.73 % of base)
       -1096 : 266810.dasm (-5.39 % of base)
       -1048 : 286687.dasm (-0.79 % of base)
       -1048 : 294401.dasm (-0.81 % of base)
        -936 : 451787.dasm (-8.25 % of base)
        -892 : 23614.dasm (-6.65 % of base)
        -892 : 44711.dasm (-6.36 % of base)
        -684 : 23637.dasm (-3.85 % of base)
        -684 : 44718.dasm (-3.68 % of base)
        -636 : 71779.dasm (-3.20 % of base)
        -496 : 114076.dasm (-4.16 % of base)
        -496 : 109903.dasm (-4.16 % of base)
        -456 : 502909.dasm (-9.11 % of base)
        -456 : 502955.dasm (-9.11 % of base)
        -456 : 503031.dasm (-8.96 % of base)
        -456 : 503057.dasm (-8.96 % of base)
        -408 : 441990.dasm (-4.89 % of base)
        -392 : 485209.dasm (-3.00 % of base)
        -376 : 154380.dasm (-5.71 % of base)

91 total files with Code Size differences (56 improved, 35 regressed), 20 unchanged.

Top method regressions (bytes):
         660 (4.75 % of base) : 176969.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
         488 (2.93 % of base) : 55032.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
         260 (3.54 % of base) : 691459.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindForOrUsingOrFixedDeclarations(Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclarationSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (Tier1)
         236 (2.21 % of base) : 86604.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
         144 (3.31 % of base) : 91450.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (Tier1)
          88 (0.45 % of base) : 86546.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
          84 (0.79 % of base) : 82803.dasm - Microsoft.CodeAnalysis.SolutionCompilationState:AddDocumentsToMultipleProjects[System.__Canon](System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.DocumentInfo],System.Func`3[System.__Canon,System.__Canon,System.__Canon],System.Func`3[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.ValueTuple`2[System.__Canon,System.__Canon]]):Microsoft.CodeAnalysis.SolutionCompilationState:this (Tier1)
          80 (0.75 % of base) : 49494.dasm - Microsoft.CodeAnalysis.SolutionCompilationState:AddDocumentsToMultipleProjects[System.__Canon](System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.DocumentInfo],System.Func`3[System.__Canon,System.__Canon,System.__Canon],System.Func`3[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.ValueTuple`2[System.__Canon,System.__Canon]]):Microsoft.CodeAnalysis.SolutionCompilationState:this (Tier1)
          72 (0.44 % of base) : 86577.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
          68 (1.26 % of base) : 461012.dasm - (dynamicClass):<xsl:apply-templates>(System.Xml.Xsl.Runtime.XmlQueryRuntime,System.Xml.XPath.XPathNavigator) (FullOpts)
          68 (0.33 % of base) : 671005.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
          68 (0.63 % of base) : 95637.dasm - Microsoft.Interop.LibraryImportGenerator:CreateTargetDllImportAsLocalStatement(Microsoft.Interop.PInvokeStubCodeGenerator,Microsoft.Interop.LibraryImportGeneratorOptions,Microsoft.Interop.LibraryImportData,System.String,System.String):Microsoft.CodeAnalysis.CSharp.Syntax.LocalFunctionStatementSyntax (Tier1)
          68 (0.96 % of base) : 624256.dasm - System.Text.Json.SourceGeneration.Tests.MetadataContext:CampaignSummaryViewModelPropInit(System.Text.Json.JsonSerializerOptions):System.Text.Json.Serialization.Metadata.JsonPropertyInfo[] (Tier1)
          56 (13.21 % of base) : 551285.dasm - System.Security.Cryptography.DSA:ImportSubjectPublicKeyInfo(System.ReadOnlySpan`1[ubyte],byref):this (Tier1)
          52 (0.56 % of base) : 177269.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindIdentifier(Microsoft.CodeAnalysis.CSharp.Syntax.SimpleNameSyntax,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
          52 (0.38 % of base) : 62300.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+SynthesizedExplicitImplementations:this (Tier1)
          52 (0.54 % of base) : 93441.dasm - Microsoft.Interop.LibraryImportGenerator:PrintForwarderStub(Microsoft.Interop.ContainingSyntax,ubyte,Microsoft.Interop.LibraryImportGenerator+IncrementalStubGenerationContext,Microsoft.Interop.GeneratorDiagnosticsBag):Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax (Tier1)
          48 (0.44 % of base) : 93450.dasm - Microsoft.Interop.ContainingSyntaxContext:WrapMemberInContainingSyntaxWithUnsafeModifier(Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax:this (Tier1)
          48 (1.30 % of base) : 372713.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (Tier1)
          48 (1.14 % of base) : 372697.dasm - System.Text.Encoding:GetBytesWithFallback(ulong,int,ulong,int,int,int,System.Text.EncoderNLS):int:this (Tier1)

Top method improvements (bytes):
       -1568 (-6.73 % of base) : 44656.dasm - ComInterfaceGenerator.Unit.Tests.ByValueContentsMarshalling+<ByValueMarshalAttributeOnPinnedMarshalledTypes>d__2:MoveNext():ubyte:this (Instrumented Tier0)
       -1568 (-7.01 % of base) : 23526.dasm - ComInterfaceGenerator.Unit.Tests.ByValueContentsMarshalling+<ByValueMarshalAttributeOnPinnedMarshalledTypes>d__2:MoveNext():ubyte:this (Tier0)
       -1096 (-5.39 % of base) : 266810.dasm - System.Xml.Schema.SchemaNames:.ctor(System.Xml.XmlNameTable):this (Instrumented Tier0)
       -1048 (-0.81 % of base) : 294401.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach001.freach001.Test:MainMethod():int (Instrumented Tier0)
       -1048 (-0.79 % of base) : 286687.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach007.freach007.Test:MainMethod():int (Instrumented Tier0)
        -936 (-8.25 % of base) : 451787.dasm - System.Xml.Xsl.Xslt.KeywordsTable:.ctor(System.Xml.XmlNameTable):this (Instrumented Tier0)
        -892 (-6.36 % of base) : 44711.dasm - ComInterfaceGenerator.Unit.Tests.ByValueContentsMarshalling+<ByValueMarshalAttributeOnValueTypes>d__1:MoveNext():ubyte:this (Instrumented Tier0)
        -892 (-6.65 % of base) : 23614.dasm - ComInterfaceGenerator.Unit.Tests.ByValueContentsMarshalling+<ByValueMarshalAttributeOnValueTypes>d__1:MoveNext():ubyte:this (Tier0)
        -684 (-3.68 % of base) : 44718.dasm - ComInterfaceGenerator.Unit.Tests.ByValueContentsMarshalling+<ByValueMarshalAttributeOnCustomCollections>d__3:MoveNext():ubyte:this (Instrumented Tier0)
        -684 (-3.85 % of base) : 23637.dasm - ComInterfaceGenerator.Unit.Tests.ByValueContentsMarshalling+<ByValueMarshalAttributeOnCustomCollections>d__3:MoveNext():ubyte:this (Tier0)
        -636 (-3.20 % of base) : 71779.dasm - System.Globalization.Tests.InvariantModeTests:TestCultureData(System.String):this (Instrumented Tier0)
        -496 (-4.16 % of base) : 114076.dasm - Microsoft.CodeAnalysis.CSharp.ForEachLoopBinder:BindForEachPartsWorker(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Binder):Microsoft.CodeAnalysis.CSharp.BoundForEachStatement:this (Instrumented Tier0)
        -496 (-4.16 % of base) : 109903.dasm - Microsoft.CodeAnalysis.CSharp.ForEachLoopBinder:BindForEachPartsWorker(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Binder):Microsoft.CodeAnalysis.CSharp.BoundForEachStatement:this (Instrumented Tier0)
        -456 (-9.11 % of base) : 502909.dasm - System.Numerics.Tests.ToStringTest:RunCustomFormatToStringTests(System.Random,System.String,System.String,int,System.Numerics.Tests.ToStringTest+StringFormatter) (Instrumented Tier0)
        -456 (-9.11 % of base) : 502955.dasm - System.Numerics.Tests.ToStringTest:RunCustomFormatToStringTests(System.Random,System.String,System.String,int,System.Numerics.Tests.ToStringTest+StringFormatter) (Instrumented Tier0)
        -456 (-8.96 % of base) : 503031.dasm - System.Numerics.Tests.ToStringTest:RunStandardFormatToStringTests_Helper(System.Random,System.String,System.String,int,System.Numerics.Tests.ToStringTest+StringFormatter,ubyte) (Instrumented Tier0)
        -456 (-8.96 % of base) : 503057.dasm - System.Numerics.Tests.ToStringTest:RunStandardFormatToStringTests_Helper(System.Random,System.String,System.String,int,System.Numerics.Tests.ToStringTest+StringFormatter,ubyte) (Instrumented Tier0)
        -408 (-4.89 % of base) : 441990.dasm - System.Xml.Serialization.XmlSerializationReader:InitPrimitiveIDs():this (Instrumented Tier0)
        -392 (-3.00 % of base) : 485209.dasm - System.Reflection.Tests.PropertyTests:TestProperties_GetterSetter() (Instrumented Tier0)
        -376 (-5.71 % of base) : 154380.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindMemberAccessWithBoundLeft(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Syntax.SimpleNameSyntax,Microsoft.CodeAnalysis.SyntaxToken,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Instrumented Tier0)

Top method regressions (percentages):
          56 (13.21 % of base) : 551285.dasm - System.Security.Cryptography.DSA:ImportSubjectPublicKeyInfo(System.ReadOnlySpan`1[ubyte],byref):this (Tier1)
           4 (6.67 % of base) : 690244.dasm - Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (Tier1)
          16 (6.67 % of base) : 685807.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
          36 (6.43 % of base) : 349954.dasm - System.Linq.Parallel.IndexedSelectQueryOperator`2[int,System.Collections.Generic.KeyValuePair`2[int,System.Collections.Generic.KeyValuePair`2[int,int]]]:Open(System.Linq.Parallel.QuerySettings,ubyte):System.Linq.Parallel.QueryResults`1[System.Collections.Generic.KeyValuePair`2[int,System.Collections.Generic.KeyValuePair`2[int,int]]]:this (Tier1)
           4 (5.88 % of base) : 94174.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
           4 (5.88 % of base) : 66348.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+WriteLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
          16 (5.63 % of base) : 56207.dasm - Microsoft.CodeAnalysis.PEModule:HasRefSafetyRulesAttribute(System.Reflection.Metadata.EntityHandle,byref,byref):ubyte:this (Tier1)
          16 (5.56 % of base) : 86525.dasm - Microsoft.CodeAnalysis.PEModule:HasRefSafetyRulesAttribute(System.Reflection.Metadata.EntityHandle,byref,byref):ubyte:this (Tier1)
           4 (5.26 % of base) : 62049.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ImportInfo,System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:TryUpdate(Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ImportInfo,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[System.__Canon]):ubyte:this (Tier1)
         660 (4.75 % of base) : 176969.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
          24 (4.29 % of base) : 350861.dasm - System.Linq.Parallel.TakeOrSkipQueryOperator`1[int]:Open(System.Linq.Parallel.QuerySettings,ubyte):System.Linq.Parallel.QueryResults`1[int]:this (Tier1)
           8 (4.00 % of base) : 55249.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:WithTypeAndModifiers(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CustomModifier]):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (Tier1)
           8 (3.92 % of base) : 697827.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
          20 (3.60 % of base) : 686674.dasm - Microsoft.CodeAnalysis.CSharp.ControlFlowPass:VisitLabeledStatement(Microsoft.CodeAnalysis.CSharp.BoundLabeledStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
         260 (3.54 % of base) : 691459.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindForOrUsingOrFixedDeclarations(Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclarationSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (Tier1)
          24 (3.35 % of base) : 686941.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:ReportDiagnosticsForUnsafeSynthesizedAttributes(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (Tier1)
         144 (3.31 % of base) : 91450.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (Tier1)
           4 (3.23 % of base) : 218709.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:Contains(int):ubyte:this (Tier1)
           4 (2.94 % of base) : 535104.dasm - Castle.DynamicProxy.Generators.Emitters.SimpleAST.LiteralStringExpression:Emit(System.Reflection.Emit.ILGenerator):this (Tier1)
         488 (2.93 % of base) : 55032.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)

Top method improvements (percentages):
        -108 (-30.68 % of base) : 39745.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Instrumented Tier0)
        -108 (-30.68 % of base) : 17025.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -88 (-29.73 % of base) : 114761.dasm - Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Instrumented Tier0)
         -88 (-29.73 % of base) : 47606.dasm - Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -96 (-29.27 % of base) : 166808.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -96 (-29.27 % of base) : 148657.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -96 (-27.91 % of base) : 180200.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Instrumented Tier0)
         -96 (-27.91 % of base) : 172095.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -80 (-27.40 % of base) : 114763.dasm - Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess:this (Instrumented Tier0)
         -80 (-27.40 % of base) : 47620.dasm - Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess:this (Tier0)
         -88 (-27.16 % of base) : 148796.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -88 (-27.16 % of base) : 166896.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -40 (-27.03 % of base) : 8187.dasm - Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Instrumented Tier0)
         -40 (-27.03 % of base) : 1503.dasm - Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Tier0)
         -44 (-26.83 % of base) : 42022.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Instrumented Tier0)
         -44 (-26.83 % of base) : 22199.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
         -92 (-25.00 % of base) : 181593.dasm - Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression:Update(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.BoundObjectInitializerExpressionBase,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression:this (Instrumented Tier0)
         -32 (-25.00 % of base) : 147022.dasm - Microsoft.CodeAnalysis.SmallDictionary`2+AvlNode[System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:.ctor(int,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations):this (Tier0)
         -32 (-25.00 % of base) : 16242.dasm - Microsoft.CodeAnalysis.SmallDictionary`2+AvlNode[System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:.ctor(int,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations):this (Tier0)
         -16 (-25.00 % of base) : 611317.dasm - System.Text.Json.Utf8JsonWriter:TryFormatSingle(float,System.Span`1[ubyte],byref):ubyte (Tier1)


librariestestsnotieredcompilation.run.linux.arm64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 162656488 (overridden on cmd)
Total bytes of diff: 162625288 (overridden on cmd)
Total bytes of delta: -31200 (-0.02 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         236 : 50672.dasm (1.89 % of base)
         236 : 44584.dasm (1.89 % of base)
         104 : 6926.dasm (0.88 % of base)
          68 : 170026.dasm (1.50 % of base)
          56 : 145771.dasm (0.45 % of base)
          56 : 179260.dasm (3.27 % of base)
          48 : 10863.dasm (0.79 % of base)
          48 : 121901.dasm (2.09 % of base)
          44 : 122633.dasm (1.93 % of base)
          40 : 126385.dasm (3.00 % of base)
          40 : 50198.dasm (0.69 % of base)
          40 : 295910.dasm (1.31 % of base)
          40 : 73218.dasm (12.35 % of base)
          36 : 44571.dasm (0.89 % of base)
          36 : 230434.dasm (4.19 % of base)
          36 : 50651.dasm (0.89 % of base)
          36 : 113542.dasm (0.62 % of base)
          36 : 54010.dasm (0.64 % of base)
          36 : 59206.dasm (0.12 % of base)
          32 : 261727.dasm (3.29 % of base)

Top file improvements (bytes):
        -440 : 41504.dasm (-10.74 % of base)
        -228 : 9728.dasm (-2.33 % of base)
        -208 : 256849.dasm (-3.34 % of base)
        -180 : 5482.dasm (-0.55 % of base)
        -140 : 32986.dasm (-6.01 % of base)
        -128 : 9734.dasm (-3.74 % of base)
        -112 : 213498.dasm (-6.68 % of base)
        -112 : 9733.dasm (-2.16 % of base)
        -104 : 1577.dasm (-2.95 % of base)
        -104 : 16499.dasm (-2.96 % of base)
        -104 : 1380.dasm (-2.95 % of base)
        -104 : 16501.dasm (-2.96 % of base)
        -104 : 16513.dasm (-2.96 % of base)
        -104 : 18870.dasm (-2.96 % of base)
        -104 : 1198.dasm (-2.95 % of base)
        -100 : 11779.dasm (-2.84 % of base)
        -100 : 27546.dasm (-2.84 % of base)
        -100 : 15226.dasm (-2.84 % of base)
        -100 : 16473.dasm (-2.84 % of base)
        -100 : 16730.dasm (-2.84 % of base)

81 total files with Code Size differences (44 improved, 37 regressed), 20 unchanged.

Top method regressions (bytes):
         236 (1.89 % of base) : 50672.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte) (FullOpts)
         236 (1.89 % of base) : 44584.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte) (FullOpts)
         104 (0.88 % of base) : 6926.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
          68 (1.50 % of base) : 170026.dasm - (dynamicClass):<xsl:apply-templates>(System.Xml.Xsl.Runtime.XmlQueryRuntime,System.Xml.XPath.XPathNavigator) (FullOpts)
          56 (0.45 % of base) : 145771.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
          56 (3.27 % of base) : 179260.dasm - System.Reflection.Emit.ILGeneratorImpl:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
          48 (0.79 % of base) : 10863.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (FullOpts)
          48 (2.09 % of base) : 121901.dasm - System.IO.Tests.FileStream_ctor_str_fm:FileModeAppendExisting(System.String):this (FullOpts)
          44 (1.93 % of base) : 122633.dasm - System.IO.Tests.FileStream_ctor_str_fm:FileModeAppendExisting(System.String):this (FullOpts)
          40 (0.69 % of base) : 50198.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArguments(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte]:this (FullOpts)
          40 (12.35 % of base) : 73218.dasm - System.Collections.Tests.IGenericSharedAPI_Tests`1[System.ValueTuple`2[int,int]]:AddToCollection(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]],int):this (FullOpts)
          40 (3.00 % of base) : 126385.dasm - System.IO.Packaging.Tests.Tests:OpenPropertyStream():this (FullOpts)
          40 (1.31 % of base) : 295910.dasm - System.Threading.Tasks.Dataflow.Tests.ActionBlockTests+<TestBasicMessageProcessing>d__5:MoveNext():this (FullOpts)
          36 (0.62 % of base) : 113542.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.context.dlgateEvent.dlgate.dlgate001.dlgate001.nms.Start:MainMethod():int (FullOpts)
          36 (0.64 % of base) : 54010.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitArguments>g__visitArguments|232_0(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Conversion],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte):System.ValueTuple`4[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte,Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate]:this (FullOpts)
          36 (0.89 % of base) : 44571.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:MakeParameters[System.__Canon,System.__Canon,System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,System.__Canon,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[System.__Canon],byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte,ubyte,int,System.Func`11[System.__Canon,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.__Canon,ubyte,int,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,ubyte,System.__Canon,System.__Canon],ubyte):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (FullOpts)
          36 (0.89 % of base) : 50651.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:MakeParameters[System.__Canon,System.__Canon,System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,System.__Canon,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[System.__Canon],byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte,ubyte,int,System.Func`11[System.__Canon,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.__Canon,ubyte,int,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,ubyte,System.__Canon,System.__Canon],ubyte):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (FullOpts)
          36 (0.12 % of base) : 59206.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          36 (4.19 % of base) : 230434.dasm - System.Text.Encodings.Web.TextEncoder:EncodeCore(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref,byref,ubyte):int:this (FullOpts)
          32 (3.29 % of base) : 261727.dasm - System.Text.Json.Serialization.Tests.JsonElementClass:Initialize():this (FullOpts)

Top method improvements (bytes):
        -440 (-10.74 % of base) : 41504.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -228 (-2.33 % of base) : 9728.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1[System.__Canon]:VerifyDiagnosticResults(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[Microsoft.CodeAnalysis.Project,Microsoft.CodeAnalysis.Diagnostic]],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],Microsoft.CodeAnalysis.Testing.DiagnosticResult[],Microsoft.CodeAnalysis.Testing.IVerifier):this (MinOpts)
        -208 (-3.34 % of base) : 256849.dasm - System.Text.Json.Nodes.Tests.ParentPathRootTests:GetPathAndRoot() (FullOpts)
        -180 (-0.55 % of base) : 5482.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
        -140 (-6.01 % of base) : 32986.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -128 (-3.74 % of base) : 9734.dasm - Microsoft.CodeAnalysis.Testing.WeightedMatch:MatchRecursive[Microsoft.CodeAnalysis.Testing.DiagnosticResult,System.ValueTuple`2[System.__Canon,System.__Canon]](System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Testing.DiagnosticResult],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1+Builder[Microsoft.CodeAnalysis.Testing.WeightedMatch+Result`2[Microsoft.CodeAnalysis.Testing.DiagnosticResult,System.ValueTuple`2[System.__Canon,System.__Canon]]],byref,byref,double,int,int,ubyte[],double[],ubyte,System.Threading.CancellationToken) (MinOpts)
        -112 (-2.16 % of base) : 9733.dasm - Microsoft.CodeAnalysis.Testing.WeightedMatch:Match[Microsoft.CodeAnalysis.Testing.DiagnosticResult,System.ValueTuple`2[System.__Canon,System.__Canon]](System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Testing.DiagnosticResult],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.TimeSpan):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Testing.WeightedMatch+Result`2[Microsoft.CodeAnalysis.Testing.DiagnosticResult,System.ValueTuple`2[System.__Canon,System.__Canon]]] (MinOpts)
        -112 (-6.68 % of base) : 213498.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
        -104 (-2.96 % of base) : 18870.dasm - Xunit.Assert:Equal[double](double,double,System.Collections.Generic.IEqualityComparer`1[double]) (FullOpts)
        -104 (-2.95 % of base) : 1380.dasm - Xunit.Assert:Equal[float](float,float,System.Collections.Generic.IEqualityComparer`1[float]) (FullOpts)
        -104 (-2.95 % of base) : 1198.dasm - Xunit.Assert:Equal[int](int,int,System.Collections.Generic.IEqualityComparer`1[int]) (FullOpts)
        -104 (-2.96 % of base) : 16501.dasm - Xunit.Assert:Equal[long](long,long,System.Collections.Generic.IEqualityComparer`1[long]) (FullOpts)
        -104 (-2.95 % of base) : 1577.dasm - Xunit.Assert:Equal[System.Drawing.Point](System.Drawing.Point,System.Drawing.Point,System.Collections.Generic.IEqualityComparer`1[System.Drawing.Point]) (FullOpts)
        -104 (-2.96 % of base) : 16499.dasm - Xunit.Assert:Equal[uint](uint,uint,System.Collections.Generic.IEqualityComparer`1[uint]) (FullOpts)
        -104 (-2.96 % of base) : 16513.dasm - Xunit.Assert:Equal[ulong](ulong,ulong,System.Collections.Generic.IEqualityComparer`1[ulong]) (FullOpts)
        -100 (-2.84 % of base) : 15226.dasm - Xunit.Assert:Equal[byte](byte,byte,System.Collections.Generic.IEqualityComparer`1[byte]) (FullOpts)
        -100 (-2.84 % of base) : 27546.dasm - Xunit.Assert:Equal[short](short,short,System.Collections.Generic.IEqualityComparer`1[short]) (FullOpts)
        -100 (-2.84 % of base) : 11779.dasm - Xunit.Assert:Equal[ubyte](ubyte,ubyte,System.Collections.Generic.IEqualityComparer`1[ubyte]) (FullOpts)
        -100 (-2.84 % of base) : 16730.dasm - Xunit.Assert:Equal[ubyte](ubyte,ubyte,System.Collections.Generic.IEqualityComparer`1[ubyte]) (FullOpts)
        -100 (-2.84 % of base) : 16473.dasm - Xunit.Assert:Equal[ushort](ushort,ushort,System.Collections.Generic.IEqualityComparer`1[ushort]) (FullOpts)

Top method regressions (percentages):
          40 (12.35 % of base) : 73218.dasm - System.Collections.Tests.IGenericSharedAPI_Tests`1[System.ValueTuple`2[int,int]]:AddToCollection(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[int,int]],int):this (FullOpts)
           8 (10.00 % of base) : 259568.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c:<CheckInvalidString>b__76_0():System.Object:this (FullOpts)
           8 (7.69 % of base) : 261729.dasm - System.Text.Json.Serialization.Tests.JsonDocumentClass:Initialize():this (FullOpts)
          16 (6.67 % of base) : 55914.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          20 (6.41 % of base) : 15002.dasm - Microsoft.CodeAnalysis.Formatting.TokenStream+Changes:AddOrReplace(int,Microsoft.CodeAnalysis.Formatting.TriviaData):this (FullOpts)
          12 (6.38 % of base) : 84046.dasm - Castle.Proxies.Invocations.TypeDescriptionProvider_GetReflectionType:InvokeMethodOnTarget():this (FullOpts)
          12 (6.38 % of base) : 84143.dasm - Castle.Proxies.Invocations.TypeDescriptionProvider_GetTypeDescriptor:InvokeMethodOnTarget():this (FullOpts)
           4 (6.25 % of base) : 121744.dasm - System.IO.Compression.Tests.ZipFile_ZipArchive_Create+<>c__DisplayClass0_0:<CreateEntryFromFileExtension>b__1():System.Object:this (FullOpts)
          28 (4.24 % of base) : 292096.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Blender+Reader:TryTakeOldNodeOrToken(ubyte,byref):ubyte:this (FullOpts)
          36 (4.19 % of base) : 230434.dasm - System.Text.Encodings.Web.TextEncoder:EncodeCore(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref,byref,ubyte):int:this (FullOpts)
           8 (3.92 % of base) : 55919.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
           4 (3.85 % of base) : 10937.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:EarlyDecodeWellKnownAttributeType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax):this (FullOpts)
          20 (3.38 % of base) : 261728.dasm - System.Text.Json.Serialization.Tests.JsonElementArrayClass:Initialize():this (FullOpts)
           8 (3.33 % of base) : 266838.dasm - Microsoft.Cci.ReferenceIndexerBase:Visit(Microsoft.Cci.IGenericParameter):this (FullOpts)
           4 (3.33 % of base) : 68377.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:Contains(int):ubyte:this (FullOpts)
           4 (3.33 % of base) : 68902.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Collections.Frozen.Tests.SimpleNonComparableStruct]:Contains(System.Collections.Frozen.Tests.SimpleNonComparableStruct):ubyte:this (FullOpts)
           4 (3.33 % of base) : 70781.dasm - System.Collections.Immutable.ImmutableHashSet`1[ulong]:Contains(ulong):ubyte:this (FullOpts)
          32 (3.29 % of base) : 261727.dasm - System.Text.Json.Serialization.Tests.JsonElementClass:Initialize():this (FullOpts)
          56 (3.27 % of base) : 179260.dasm - System.Reflection.Emit.ILGeneratorImpl:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
          12 (3.19 % of base) : 8161.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerExecutor:ExecuteAndCatchIfThrows_NoLock[System.__Canon](Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer,System.Action`1[System.__Canon],System.__Canon,System.Nullable`1[Microsoft.CodeAnalysis.Diagnostics.AnalysisContextInfo],System.Threading.CancellationToken):this (FullOpts)

Top method improvements (percentages):
         -32 (-27.59 % of base) : 114076.dasm - System.Formats.Asn1.Tests.Reader.OverlappedReads:<NoOverlappedTextStrings>g__Method|3_0(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref,byref):ubyte (FullOpts)
         -12 (-16.67 % of base) : 257653.dasm - System.Text.Json.Nodes.Tests.JsonArrayTests+<>c__DisplayClass1_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
         -12 (-16.67 % of base) : 263792.dasm - System.Text.Json.Nodes.Tests.JsonObjectTests+<>c__DisplayClass16_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
         -12 (-16.67 % of base) : 260297.dasm - System.Text.Json.Nodes.Tests.JsonValueTests+<>c__DisplayClass16_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
         -28 (-16.67 % of base) : 265134.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass88_0:<HonorReaderOptionsMaxDepth>b__0():System.Object:this (FullOpts)
         -28 (-16.67 % of base) : 265137.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass88_0:<HonorReaderOptionsMaxDepth>b__3():System.Object:this (FullOpts)
         -20 (-15.15 % of base) : 223722.dasm - System.Security.Cryptography.Tests.PemEncodingFindTests:Find_Success_TrailingWhitespaceAfterPosteb():this (FullOpts)
         -24 (-15.00 % of base) : 265234.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass86_0:<CheckUnparsable>b__0():System.Object:this (FullOpts)
         -24 (-15.00 % of base) : 259840.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass87_0:<CheckParseDepth>b__0():System.Object:this (FullOpts)
         -24 (-15.00 % of base) : 265135.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass88_0:<HonorReaderOptionsMaxDepth>b__1():System.Object:this (FullOpts)
         -24 (-15.00 % of base) : 265136.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass88_0:<HonorReaderOptionsMaxDepth>b__2():System.Object:this (FullOpts)
         -24 (-15.00 % of base) : 265183.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass94_0:<TrailingCommas>b__0():System.Object:this (FullOpts)
         -20 (-14.71 % of base) : 223701.dasm - System.Security.Cryptography.Tests.PemEncodingFindTests:Find_Success_IncompletePreebPrefixed():this (FullOpts)
         -20 (-14.71 % of base) : 223715.dasm - System.Security.Cryptography.Tests.PemEncodingFindTests:Find_Success_PrecedingContentAndWhitespaceBeforePreeb():this (FullOpts)
         -24 (-14.63 % of base) : 261634.dasm - System.Text.Json.Tests.JsonDocumentWriteTests:PrepareDocument(System.String):System.Text.Json.JsonDocument:this (FullOpts)
         -20 (-14.29 % of base) : 46463.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
         -20 (-14.29 % of base) : 52445.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
         -20 (-14.29 % of base) : 223714.dasm - System.Security.Cryptography.Tests.PemEncodingFindTests:Find_Success_Base64SurroundingWhiteSpaceStripped():this (FullOpts)
         -20 (-14.29 % of base) : 223725.dasm - System.Security.Cryptography.Tests.PemEncodingFindTests:Find_Success_LabelCharacterBoundaries():this (FullOpts)
         -16 (-14.29 % of base) : 221365.dasm - System.Security.Cryptography.X509Certificates.Tests.CertificateCreation.CrlBuilderTests+<>c__DisplayClass25_0:<AddInvalidSerial>b__2():this (FullOpts)


realworld.run.linux.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 15906904 (overridden on cmd)
Total bytes of diff: 15898388 (overridden on cmd)
Total bytes of delta: -8516 (-0.05 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         152 : 3009.dasm (1.94 % of base)
         136 : 6383.dasm (0.13 % of base)
         112 : 20703.dasm (1.00 % of base)
          60 : 1174.dasm (5.79 % of base)
          56 : 14695.dasm (0.45 % of base)
          48 : 23726.dasm (0.80 % of base)
          36 : 19805.dasm (0.64 % of base)
          32 : 33166.dasm (2.88 % of base)
          24 : 18779.dasm (1.11 % of base)
          16 : 25785.dasm (0.26 % of base)
          16 : 1344.dasm (12.50 % of base)
          16 : 20710.dasm (0.76 % of base)
          16 : 27166.dasm (6.90 % of base)
          16 : 20815.dasm (1.16 % of base)
          16 : 7996.dasm (1.95 % of base)
          12 : 21660.dasm (0.18 % of base)
          12 : 20651.dasm (0.31 % of base)
          12 : 23456.dasm (2.38 % of base)
          12 : 24759.dasm (0.52 % of base)
          12 : 24803.dasm (0.13 % of base)

Top file improvements (bytes):
       -4444 : 5078.dasm (-2.19 % of base)
        -180 : 16162.dasm (-0.54 % of base)
        -152 : 31652.dasm (-1.09 % of base)
        -140 : 2294.dasm (-6.01 % of base)
        -112 : 1787.dasm (-18.30 % of base)
         -84 : 5045.dasm (-0.32 % of base)
         -72 : 2093.dasm (-15.52 % of base)
         -64 : 20967.dasm (-9.70 % of base)
         -64 : 8508.dasm (-0.38 % of base)
         -64 : 28751.dasm (-7.41 % of base)
         -56 : 25592.dasm (-0.52 % of base)
         -48 : 13425.dasm (-7.74 % of base)
         -48 : 1980.dasm (-4.43 % of base)
         -48 : 10428.dasm (-2.72 % of base)
         -48 : 22284.dasm (-1.89 % of base)
         -44 : 9061.dasm (-1.44 % of base)
         -44 : 18474.dasm (-1.70 % of base)
         -44 : 23415.dasm (-1.61 % of base)
         -40 : 24606.dasm (-1.19 % of base)
         -40 : 25865.dasm (-1.05 % of base)

66 total files with Code Size differences (35 improved, 31 regressed), 20 unchanged.

Top method regressions (bytes):
         152 (1.94 % of base) : 3009.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.Features:.cctor() (FullOpts)
         136 (0.13 % of base) : 6383.dasm - FSharp.Compiler.TcGlobals+TcGlobals:.ctor(ubyte,FSharp.Compiler.AbstractIL.IL+ILGlobals,FSharp.Compiler.TypedTree+CcuThunk,System.String,ubyte,ubyte,Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Collections.FSharpList`1[System.String],Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+CcuThunk]]],ubyte,ubyte,Internal.Utilities.PathMap,FSharp.Compiler.Features+LanguageVersion):this (FullOpts)
         112 (1.00 % of base) : 20703.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
          60 (5.79 % of base) : 1174.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
          56 (0.45 % of base) : 14695.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
          48 (0.80 % of base) : 23726.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (FullOpts)
          36 (0.64 % of base) : 19805.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitArguments>g__visitArguments|231_0(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Conversion],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte):System.ValueTuple`4[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte,Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate]:this (FullOpts)
          32 (2.88 % of base) : 33166.dasm - Microsoft.PowerShell.Commands.ModuleCmdletBase:GetModuleForNames(System.Collections.Generic.List`1[System.String],ubyte,ubyte):System.Collections.Generic.IEnumerable`1[System.Management.Automation.PSModuleInfo]:this (FullOpts)
          24 (1.11 % of base) : 18779.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeTypes(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Binder],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol[],System.Action`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],System.Action`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (FullOpts)
          16 (1.95 % of base) : 7996.dasm - FSharp.Compiler.Lexer:token$cont@859(FSharp.Compiler.Lexhelp+LexArgs,ubyte,Internal.Utilities.Text.Lexing.LexBuffer`1[ushort],Microsoft.FSharp.Core.Unit):FSharp.Compiler.Parser+token (FullOpts)
          16 (6.90 % of base) : 27166.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          16 (0.26 % of base) : 25785.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitSwitchExpressionCore(Microsoft.CodeAnalysis.CSharp.BoundSwitchExpression,ubyte):this (FullOpts)
          16 (1.16 % of base) : 20815.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MemberSignatureComparer:HaveSameParameterTypes(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap,ubyte,int):ubyte (FullOpts)
          16 (0.76 % of base) : 20710.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertyAccessorSymbol:CreateAccessorSymbol(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbol,uint,Microsoft.CodeAnalysis.CSharp.Syntax.AccessorDeclarationSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertyAccessorSymbol (FullOpts)
          16 (12.50 % of base) : 1344.dasm - System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
          12 (0.13 % of base) : 24803.dasm - Microsoft.CodeAnalysis.CSharp.Binder:AnalyzeAnonymousFunction(Microsoft.CodeAnalysis.CSharp.Syntax.AnonymousFunctionExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.UnboundLambda:this (FullOpts)
          12 (0.18 % of base) : 21660.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeParameterConstraints(Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterConstraintClauseSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterConstraintClause,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.TypeConstraintSyntax]]:this (FullOpts)
          12 (0.52 % of base) : 24759.dasm - Microsoft.CodeAnalysis.CSharp.ForLoopBinder:BuildLocals():System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol]:this (FullOpts)
          12 (2.38 % of base) : 23456.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:RemoveConstraintViolations[System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.CompoundUseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]):this (FullOpts)
          12 (0.31 % of base) : 20651.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:MakeParameters[System.__Canon,System.__Canon,System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,System.__Canon,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[System.__Canon],byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte,ubyte,int,System.Func`12[System.__Canon,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.__Canon,ubyte,int,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,ubyte,ubyte,System.__Canon,System.__Canon],ubyte):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (FullOpts)

Top method improvements (bytes):
       -4444 (-2.19 % of base) : 5078.dasm - FSharp.Compiler.LexFilter+LexFilterImpl:hwTokenFetch(ubyte):FSharp.Compiler.Parser+token:this (Tier0-MinOpts)
        -180 (-0.54 % of base) : 16162.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
        -152 (-1.09 % of base) : 31652.dasm - System.Management.Automation.Language.Tokenizer:NextToken():System.Management.Automation.Language.Token:this (FullOpts)
        -140 (-6.01 % of base) : 2294.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -112 (-18.30 % of base) : 1787.dasm - DemoBenchmarks.FourBodyConstraintBenchmarks:VolumeConstraint():System.ValueTuple`4[BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide]:this (FullOpts)
         -84 (-0.32 % of base) : 5045.dasm - FSharp.Compiler.Lexer:token(FSharp.Compiler.Lexhelp+LexArgs,ubyte,Internal.Utilities.Text.Lexing.LexBuffer`1[ushort]):FSharp.Compiler.Parser+token (FullOpts)
         -72 (-15.52 % of base) : 2093.dasm - DemoBenchmarks.ThreeBodyConstraintBenchmarks:AreaConstraint():System.ValueTuple`3[BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide]:this (FullOpts)
         -64 (-0.38 % of base) : 8508.dasm - FSharp.Compiler.CheckExpressions:TcPat(FSharp.Compiler.NameResolution+WarnOnUpperFlag,FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CheckExpressions+PartialValReprInfo],FSharp.Compiler.TypedTree+ValInline,FSharp.Compiler.CheckExpressions+ExplicitTyparInfo,FSharp.Compiler.CheckExpressions+ArgAndRetAttribs,ubyte,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],ubyte,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.Syntax.SynPat):System.Tuple`2[Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.CheckExpressions+TcPatPhase2Input,FSharp.Compiler.PatternMatchCompilation+Pattern],System.Tuple`3[FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String]]] (FullOpts)
         -64 (-9.70 % of base) : 20967.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (FullOpts)
         -64 (-7.41 % of base) : 28751.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__77:MoveNext():ubyte:this (FullOpts)
         -56 (-0.52 % of base) : 25592.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitTupleDeconstructionArguments(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+DeconstructionVariable],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression]],Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState]):this (FullOpts)
         -48 (-4.43 % of base) : 1980.dasm - BepuPhysics.Solver`1[DemoBenchmarks.ShapePileBenchmark+DemoPoseIntegratorCallbacks]:Solve(float,BepuUtilities.IThreadDispatcher):this (FullOpts)
         -48 (-2.72 % of base) : 10428.dasm - FSharp.Compiler.CheckExpressions:analyzeRecursiveDeclPat@11316(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckExpressions+DeclKind,FSharp.Compiler.Syntax.SynValTyparDecls,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.Ident],FSharp.Compiler.Syntax.SynValInfo,FSharp.Compiler.CheckExpressions+ExplicitTyparInfo,FSharp.Compiler.CheckExpressions+NewSlotsOK,FSharp.Compiler.CheckExpressions+OverridesOK,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Attrib],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CheckExpressions+MemberOrValContainerInfo],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynMemberFlags],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.CheckExpressions+NormalizedBindingRhs,FSharp.Compiler.Text.Range,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,FSharp.Compiler.Syntax.SynPat):System.Tuple`8[FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,FSharp.Compiler.Syntax.Ident,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.Ident],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CheckExpressions+PreValMemberInfo],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],System.Tuple`6[Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+Val],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+Val],FSharp.Compiler.CheckExpressions+ExplicitTyparInfo,FSharp.Compiler.CheckExpressions+NormalizedBindingRhs,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar]]] (FullOpts)
         -48 (-1.89 % of base) : 22284.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol:GetCustomAttributesForToken(System.Reflection.Metadata.EntityHandle,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData]:this (FullOpts)
         -48 (-7.74 % of base) : 13425.dasm - Microsoft.ML.Internal.Utilities.Heap`1[Microsoft.ML.Internal.Utilities.MinWaiter+WaitStats]:BubbleDown(int):this (FullOpts)
         -44 (-1.44 % of base) : 9061.dasm - FSharp.Compiler.CheckExpressions:TcValSpec(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckExpressions+DeclKind,FSharp.Compiler.CheckExpressions+ImplicitlyBoundTyparsAllowed,FSharp.Compiler.CheckExpressions+ContainerInfo,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynMemberFlags],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+TType],FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,FSharp.Compiler.Syntax.SynValSig,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Attrib]):System.Tuple`2[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CheckExpressions+ValSpecResult],FSharp.Compiler.CheckExpressions+UnscopedTyparEnv] (FullOpts)
         -44 (-1.70 % of base) : 18474.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:TryAddAssembly(Microsoft.CodeAnalysis.AssemblyIdentity,Microsoft.CodeAnalysis.MetadataReference,int,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Location,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],ubyte):Microsoft.CodeAnalysis.MetadataReference:this (FullOpts)
         -44 (-1.61 % of base) : 23415.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddMemberToCandidateSet[System.__Canon](System.__Canon,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],ubyte,byref,ubyte,ubyte):this (FullOpts)
         -40 (-1.19 % of base) : 24606.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitCompoundAssignmentOperator(Microsoft.CodeAnalysis.CSharp.BoundCompoundAssignmentOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
         -40 (-1.05 % of base) : 25865.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitDeconstructMethodArguments(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+DeconstructionVariable],Microsoft.CodeAnalysis.CSharp.Conversion,Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState]):this (FullOpts)

Top method regressions (percentages):
          16 (12.50 % of base) : 1344.dasm - System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
          16 (6.90 % of base) : 27166.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          60 (5.79 % of base) : 1174.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
           8 (3.92 % of base) : 27406.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
           4 (3.85 % of base) : 21712.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:EarlyDecodeWellKnownAttributeType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax):this (FullOpts)
           4 (2.94 % of base) : 27474.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedMethodBaseSymbol:get_ReturnTypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
          32 (2.88 % of base) : 33166.dasm - Microsoft.PowerShell.Commands.ModuleCmdletBase:GetModuleForNames(System.Collections.Generic.List`1[System.String],ubyte,ubyte):System.Collections.Generic.IEnumerable`1[System.Management.Automation.PSModuleInfo]:this (FullOpts)
          12 (2.38 % of base) : 23456.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:RemoveConstraintViolations[System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.CompoundUseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]):this (FullOpts)
          16 (1.95 % of base) : 7996.dasm - FSharp.Compiler.Lexer:token$cont@859(FSharp.Compiler.Lexhelp+LexArgs,ubyte,Internal.Utilities.Text.Lexing.LexBuffer`1[ushort],Microsoft.FSharp.Core.Unit):FSharp.Compiler.Parser+token (FullOpts)
         152 (1.94 % of base) : 3009.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.Features:.cctor() (FullOpts)
           4 (1.82 % of base) : 7911.dasm - FSharp.Compiler.Xml.XmlDocCollector:LinesRange(FSharp.Compiler.Text.Position):FSharp.Compiler.Text.Range:this (FullOpts)
           8 (1.50 % of base) : 26045.dasm - Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:MakeOutputTypeInferences(Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.BoundTupleLiteral,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,byref):this (FullOpts)
           8 (1.37 % of base) : 25759.dasm - Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:MakeExplicitParameterTypeInferences(Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.BoundTupleLiteral,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,int,byref):ubyte:this (FullOpts)
           4 (1.37 % of base) : 21240.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SubstitutedMethodSymbol:get_ReturnTypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
           4 (1.33 % of base) : 21947.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SubstitutedPropertySymbol:get_TypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
           4 (1.30 % of base) : 22211.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SubstitutedFieldSymbol:GetFieldType(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
           4 (1.27 % of base) : 28380.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter:VisitCall(Microsoft.CodeAnalysis.CSharp.BoundCall):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
          16 (1.16 % of base) : 20815.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MemberSignatureComparer:HaveSameParameterTypes(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap,ubyte,int):ubyte (FullOpts)
           4 (1.12 % of base) : 22807.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<BindQualifiedName>g__convertToUnboundGenericType|1031_0(byref):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations (FullOpts)
          24 (1.11 % of base) : 18779.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeTypes(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Binder],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol[],System.Action`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],System.Action`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (FullOpts)

Top method improvements (percentages):
        -112 (-18.30 % of base) : 1787.dasm - DemoBenchmarks.FourBodyConstraintBenchmarks:VolumeConstraint():System.ValueTuple`4[BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide]:this (FullOpts)
         -12 (-15.79 % of base) : 13675.dasm - Microsoft.ML.Trainers.SdcaTrainerBase`3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]:ApplyAt(long,Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]):this (FullOpts)
         -72 (-15.52 % of base) : 2093.dasm - DemoBenchmarks.ThreeBodyConstraintBenchmarks:AreaConstraint():System.ValueTuple`3[BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide]:this (FullOpts)
         -20 (-14.29 % of base) : 26061.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
         -16 (-12.50 % of base) : 15358.dasm - System.Formats.Asn1.AsnDecoder:ReadIntegerBytes(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.ReadOnlySpan`1[ubyte] (FullOpts)
         -64 (-9.70 % of base) : 20967.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (FullOpts)
         -12 (-9.38 % of base) : 14541.dasm - Microsoft.ML.Transforms.Text.TextFeaturizingEstimator+Transformer:.ctor(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Data.TransformerChain`1[Microsoft.ML.ITransformer]):this (FullOpts)
          -8 (-9.09 % of base) : 3569.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[int,System.__Canon]:set_Item(int,System.__Canon):this (FullOpts)
          -8 (-8.33 % of base) : 32087.dasm - System.Management.Automation.Interpreter.LoadCachedObjectInstruction:Run(System.Management.Automation.Interpreter.InterpretedFrame):int:this (FullOpts)
         -48 (-7.74 % of base) : 13425.dasm - Microsoft.ML.Internal.Utilities.Heap`1[Microsoft.ML.Internal.Utilities.MinWaiter+WaitStats]:BubbleDown(int):this (FullOpts)
         -64 (-7.41 % of base) : 28751.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__77:MoveNext():ubyte:this (FullOpts)
         -16 (-6.90 % of base) : 15296.dasm - System.Formats.Asn1.AsnDecoder:ReadObjectIdentifier(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.String (FullOpts)
         -12 (-6.82 % of base) : 1771.dasm - BepuPhysics.CollisionDetection.SweepTasks.ConvexCompoundSweepOverlapFinder`2[BepuPhysics.Collidables.Box,BepuPhysics.Collidables.Compound]:FindOverlaps(byref,byref,byref,byref,byref,byref,byref,float,BepuPhysics.Collidables.Shapes,BepuUtilities.Memory.BufferPool,byref):this (FullOpts)
         -12 (-6.67 % of base) : 24732.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+<>c__DisplayClass231_0:<VisitArguments>b__3(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte]:this (FullOpts)
         -12 (-6.67 % of base) : 16025.dasm - Microsoft.ML.Transforms.Text.NgramExtractingEstimator:.ctor(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Transforms.Text.NgramExtractingEstimator+ColumnOptions[]):this (FullOpts)
         -12 (-6.25 % of base) : 13362.dasm - Microsoft.ML.Internal.Utilities.HashArray`1[float]:.ctor():this (FullOpts)
          -8 (-6.06 % of base) : 2884.dasm - System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
        -140 (-6.01 % of base) : 2294.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
          -4 (-5.88 % of base) : 14057.dasm - Microsoft.ML.Data.ArrayDataViewBuilder+Column`2[double,double]:CopyOut(int,byref):this (FullOpts)
          -4 (-5.88 % of base) : 14059.dasm - Microsoft.ML.Data.ArrayDataViewBuilder+Column`2[System.__Canon,Microsoft.ML.Data.VBuffer`1[double]]:CopyOut(int,byref):this (FullOpts)


smoke_tests.nativeaot.linux.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 2949332 (overridden on cmd)
Total bytes of diff: 2949100 (overridden on cmd)
Total bytes of delta: -232 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          24 : 15732.dasm (14.29 % of base)
          16 : 2387.dasm (10.81 % of base)
          12 : 2513.dasm (1.18 % of base)
          12 : 6977.dasm (3.33 % of base)
          12 : 8911.dasm (0.56 % of base)
           8 : 2583.dasm (6.67 % of base)
           4 : 14379.dasm (0.90 % of base)
           4 : 488.dasm (1.35 % of base)
           4 : 5721.dasm (0.46 % of base)
           4 : 15857.dasm (1.32 % of base)

Top file improvements (bytes):
         -24 : 13387.dasm (-5.50 % of base)
         -24 : 13389.dasm (-5.94 % of base)
         -16 : 12479.dasm (-6.78 % of base)
         -16 : 3741.dasm (-4.60 % of base)
         -16 : 528.dasm (-6.78 % of base)
         -12 : 12023.dasm (-6.52 % of base)
         -12 : 6066.dasm (-2.33 % of base)
         -12 : 14187.dasm (-2.73 % of base)
          -8 : 10699.dasm (-3.28 % of base)
          -8 : 11192.dasm (-3.64 % of base)
          -8 : 11491.dasm (-3.51 % of base)
          -8 : 12779.dasm (-2.94 % of base)
          -8 : 13444.dasm (-5.88 % of base)
          -8 : 14146.dasm (-8.33 % of base)
          -8 : 15759.dasm (-8.70 % of base)
          -8 : 950.dasm (-5.88 % of base)
          -8 : 10558.dasm (-3.17 % of base)
          -8 : 10941.dasm (-2.82 % of base)
          -8 : 10143.dasm (-2.90 % of base)
          -8 : 11429.dasm (-3.28 % of base)

40 total files with Code Size differences (30 improved, 10 regressed), 29 unchanged.

Top method regressions (bytes):
          24 (14.29 % of base) : 15732.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:CreateDirectoryHandle(System.String,ubyte):long:this (FullOpts)
          16 (10.81 % of base) : 2387.dasm - Interop+Globalization:EnumCalendarInfo(long,System.String,ushort,int,long):ubyte (FullOpts)
          12 (0.56 % of base) : 8911.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
          12 (3.33 % of base) : 6977.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToLowerConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):this (FullOpts)
          12 (1.18 % of base) : 2513.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToLowerConversion](System.String):System.String:this (FullOpts)
           8 (6.67 % of base) : 2583.dasm - Interop+Sys:GetPwUidR(uint,byref,ulong,int):int (FullOpts)
           4 (0.46 % of base) : 5721.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetMethodInvokeMetadataFromInvokeMap(Internal.Metadata.NativeFormat.MetadataReader,System.RuntimeTypeHandle,Internal.Metadata.NativeFormat.MethodHandle,System.RuntimeTypeHandle[],byref,int,byref):ubyte (FullOpts)
           4 (0.90 % of base) : 14379.dasm - System.Linq.Expressions.Interpreter.EnterTryFaultInstruction:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
           4 (1.35 % of base) : 488.dasm - System.Text.UnicodeEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)
           4 (1.32 % of base) : 15857.dasm - System.Text.UnicodeEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)

Top method improvements (bytes):
         -24 (-5.50 % of base) : 13387.dasm - System.Linq.Expressions.Interpreter.LightLambda:Run(System.Object[]):System.Object:this (FullOpts)
         -24 (-5.94 % of base) : 13389.dasm - System.Linq.Expressions.Interpreter.LightLambda:RunVoid(System.Object[]):System.Object:this (FullOpts)
         -16 (-4.60 % of base) : 3741.dasm - Internal.TypeSystem.FunctionPointerType:InstantiateSignature(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation):Internal.TypeSystem.TypeDesc:this (FullOpts)
         -16 (-6.78 % of base) : 12479.dasm - System.Action`1[System.Threading.AsyncLocalValueChangedArgs`1[System.__Canon]]:InvokeMulticastThunk(System.Threading.AsyncLocalValueChangedArgs`1[System.__Canon]):this (FullOpts)
         -16 (-6.78 % of base) : 528.dasm - System.Func`2[System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly+RuntimeAssemblyKey,System.__Canon]:InvokeMulticastThunk(System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly+RuntimeAssemblyKey):System.__Canon:this (FullOpts)
         -12 (-6.52 % of base) : 12023.dasm - Internal.CompilerGenerated.<Module>:NativeToManaged__InlineArrayStruct(byref,byref) (FullOpts)
         -12 (-2.33 % of base) : 6066.dasm - Internal.Reflection.Execution.ExecutionEnvironmentImplementation:TryGetConstructedGenericTypeForComponents(System.RuntimeTypeHandle,System.RuntimeTypeHandle[],byref):ubyte:this (FullOpts)
         -12 (-2.73 % of base) : 14187.dasm - System.Linq.Expressions.Interpreter.ByRefNewInstruction:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
          -8 (-0.96 % of base) : 1342.dasm - System.Collections.Concurrent.ConcurrentUnifier`2+Container[System.__Canon,System.__Canon]:VerifyUnifierConsistency():this (FullOpts)
          -8 (-0.90 % of base) : 1327.dasm - System.Collections.Concurrent.ConcurrentUnifierW`2+Container[System.__Canon,System.__Canon]:VerifyUnifierConsistency():this (FullOpts)
          -8 (-5.88 % of base) : 950.dasm - System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -8 (-3.28 % of base) : 10699.dasm - System.Collections.Generic.LowLevelDictionary`2[Internal.Runtime.CompilerServices.FunctionPointerOps+GenericMethodDescriptorInfo,uint]:UncheckedAdd(Internal.Runtime.CompilerServices.FunctionPointerOps+GenericMethodDescriptorInfo,uint):System.Collections.Generic.LowLevelDictionary`2+Entry[Internal.Runtime.CompilerServices.FunctionPointerOps+GenericMethodDescriptorInfo,uint]:this (FullOpts)
          -8 (-2.82 % of base) : 10941.dasm - System.Collections.Generic.LowLevelDictionary`2[Internal.Runtime.CompilerServices.OpenMethodResolver,long]:UncheckedAdd(Internal.Runtime.CompilerServices.OpenMethodResolver,long):System.Collections.Generic.LowLevelDictionary`2+Entry[Internal.Runtime.CompilerServices.OpenMethodResolver,long]:this (FullOpts)
          -8 (-3.17 % of base) : 10558.dasm - System.Collections.Generic.LowLevelDictionary`2[Internal.Runtime.TypeLoader.TypeLoaderEnvironment+RuntimeMethodHandleKey,System.RuntimeMethodHandle]:UncheckedAdd(Internal.Runtime.TypeLoader.TypeLoaderEnvironment+RuntimeMethodHandleKey,System.RuntimeMethodHandle):System.Collections.Generic.LowLevelDictionary`2+Entry[Internal.Runtime.TypeLoader.TypeLoaderEnvironment+RuntimeMethodHandleKey,System.RuntimeMethodHandle]:this (FullOpts)
          -8 (-3.51 % of base) : 1560.dasm - System.Collections.Generic.LowLevelDictionary`2[Internal.Runtime.TypeManagerHandle,int]:UncheckedAdd(Internal.Runtime.TypeManagerHandle,int):System.Collections.Generic.LowLevelDictionary`2+Entry[Internal.Runtime.TypeManagerHandle,int]:this (FullOpts)
          -8 (-3.28 % of base) : 11429.dasm - System.Collections.Generic.LowLevelDictionary`2[long,System.__Canon]:UncheckedAdd(long,System.__Canon):System.Collections.Generic.LowLevelDictionary`2+Entry[long,System.__Canon]:this (FullOpts)
          -8 (-3.51 % of base) : 11491.dasm - System.Collections.Generic.LowLevelDictionary`2[long,uint]:UncheckedAdd(long,uint):System.Collections.Generic.LowLevelDictionary`2+Entry[long,uint]:this (FullOpts)
          -8 (-3.08 % of base) : 1602.dasm - System.Collections.Generic.LowLevelDictionary`2[System.__Canon,System.__Canon]:UncheckedAdd(System.__Canon,System.__Canon):System.Collections.Generic.LowLevelDictionary`2+Entry[System.__Canon,System.__Canon]:this (FullOpts)
          -8 (-2.90 % of base) : 10143.dasm - System.Collections.Generic.LowLevelDictionary`2[System.__Canon,System.Reflection.Runtime.General.QHandle]:UncheckedAdd(System.__Canon,System.Reflection.Runtime.General.QHandle):System.Collections.Generic.LowLevelDictionary`2+Entry[System.__Canon,System.Reflection.Runtime.General.QHandle]:this (FullOpts)
          -8 (-3.08 % of base) : 11766.dasm - System.Collections.Generic.LowLevelDictionary`2[System.TypeUnificationKey,System.__Canon]:UncheckedAdd(System.TypeUnificationKey,System.__Canon):System.Collections.Generic.LowLevelDictionary`2+Entry[System.TypeUnificationKey,System.__Canon]:this (FullOpts)

Top method regressions (percentages):
          24 (14.29 % of base) : 15732.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:CreateDirectoryHandle(System.String,ubyte):long:this (FullOpts)
          16 (10.81 % of base) : 2387.dasm - Interop+Globalization:EnumCalendarInfo(long,System.String,ushort,int,long):ubyte (FullOpts)
           8 (6.67 % of base) : 2583.dasm - Interop+Sys:GetPwUidR(uint,byref,ulong,int):int (FullOpts)
          12 (3.33 % of base) : 6977.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToLowerConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):this (FullOpts)
           4 (1.35 % of base) : 488.dasm - System.Text.UnicodeEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)
           4 (1.32 % of base) : 15857.dasm - System.Text.UnicodeEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)
          12 (1.18 % of base) : 2513.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToLowerConversion](System.String):System.String:this (FullOpts)
           4 (0.90 % of base) : 14379.dasm - System.Linq.Expressions.Interpreter.EnterTryFaultInstruction:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
          12 (0.56 % of base) : 8911.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
           4 (0.46 % of base) : 5721.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetMethodInvokeMetadataFromInvokeMap(Internal.Metadata.NativeFormat.MetadataReader,System.RuntimeTypeHandle,Internal.Metadata.NativeFormat.MethodHandle,System.RuntimeTypeHandle[],byref,int,byref):ubyte (FullOpts)

Top method improvements (percentages):
          -8 (-8.70 % of base) : 15759.dasm - System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
          -4 (-8.33 % of base) : 7825.dasm - System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (FullOpts)
          -8 (-8.33 % of base) : 14146.dasm - System.Linq.Expressions.Interpreter.LoadCachedObjectInstruction:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
         -16 (-6.78 % of base) : 12479.dasm - System.Action`1[System.Threading.AsyncLocalValueChangedArgs`1[System.__Canon]]:InvokeMulticastThunk(System.Threading.AsyncLocalValueChangedArgs`1[System.__Canon]):this (FullOpts)
         -16 (-6.78 % of base) : 528.dasm - System.Func`2[System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly+RuntimeAssemblyKey,System.__Canon]:InvokeMulticastThunk(System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly+RuntimeAssemblyKey):System.__Canon:this (FullOpts)
         -12 (-6.52 % of base) : 12023.dasm - Internal.CompilerGenerated.<Module>:NativeToManaged__InlineArrayStruct(byref,byref) (FullOpts)
          -8 (-6.06 % of base) : 2971.dasm - System.Collections.Generic.LowLevelListWithIList`1+Enumerator[System.Reflection.CustomAttributeTypedArgument]:MoveNext():ubyte:this (FullOpts)
         -24 (-5.94 % of base) : 13389.dasm - System.Linq.Expressions.Interpreter.LightLambda:RunVoid(System.Object[]):System.Object:this (FullOpts)
          -8 (-5.88 % of base) : 950.dasm - System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -8 (-5.88 % of base) : 13444.dasm - System.Collections.Generic.LowLevelListWithIList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -24 (-5.50 % of base) : 13387.dasm - System.Linq.Expressions.Interpreter.LightLambda:Run(System.Object[]):System.Object:this (FullOpts)
         -16 (-4.60 % of base) : 3741.dasm - Internal.TypeSystem.FunctionPointerType:InstantiateSignature(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation):Internal.TypeSystem.TypeDesc:this (FullOpts)
          -4 (-4.00 % of base) : 14270.dasm - System.Linq.Expressions.Interpreter.InterpretedFrame:Dup():this (FullOpts)
          -4 (-3.85 % of base) : 2433.dasm - System.ConsolePal:CheckTerminalSettingsInvalidated() (FullOpts)
          -8 (-3.64 % of base) : 11192.dasm - System.Collections.Generic.LowLevelDictionary`2[uint,long]:UncheckedAdd(uint,long):System.Collections.Generic.LowLevelDictionary`2+Entry[uint,long]:this (FullOpts)
          -8 (-3.57 % of base) : 12545.dasm - System.Linq.Expressions.Interpreter.HybridReferenceDictionary`2+<GetEnumeratorWorker>d__7[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -8 (-3.51 % of base) : 1560.dasm - System.Collections.Generic.LowLevelDictionary`2[Internal.Runtime.TypeManagerHandle,int]:UncheckedAdd(Internal.Runtime.TypeManagerHandle,int):System.Collections.Generic.LowLevelDictionary`2+Entry[Internal.Runtime.TypeManagerHandle,int]:this (FullOpts)
          -8 (-3.51 % of base) : 11491.dasm - System.Collections.Generic.LowLevelDictionary`2[long,uint]:UncheckedAdd(long,uint):System.Collections.Generic.LowLevelDictionary`2+Entry[long,uint]:this (FullOpts)
          -8 (-3.28 % of base) : 10699.dasm - System.Collections.Generic.LowLevelDictionary`2[Internal.Runtime.CompilerServices.FunctionPointerOps+GenericMethodDescriptorInfo,uint]:UncheckedAdd(Internal.Runtime.CompilerServices.FunctionPointerOps+GenericMethodDescriptorInfo,uint):System.Collections.Generic.LowLevelDictionary`2+Entry[Internal.Runtime.CompilerServices.FunctionPointerOps+GenericMethodDescriptorInfo,uint]:this (FullOpts)
          -8 (-3.28 % of base) : 11429.dasm - System.Collections.Generic.LowLevelDictionary`2[long,System.__Canon]:UncheckedAdd(long,System.__Canon):System.Collections.Generic.LowLevelDictionary`2+Entry[long,System.__Canon]:this (FullOpts)



linux x64

Diffs are based on 2,595,003 contexts (1,052,329 MinOpts, 1,542,674 FullOpts).

MISSED contexts: base: 3,628 (0.14%), diff: 3,632 (0.14%)

Overall (-1,002,204 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 13,735,124 -3,912
benchmarks.run_pgo.linux.x64.checked.mch 68,635,056 -34,985
benchmarks.run_tiered.linux.x64.checked.mch 17,373,152 -2,107
coreclr_tests.run.linux.x64.checked.mch 459,551,078 -378,596
libraries.crossgen2.linux.x64.checked.mch 38,670,232 -20,898
libraries.pmi.linux.x64.checked.mch 60,144,132 -25,391
libraries_tests.run.linux.x64.Release.mch 333,551,492 -488,707
librariestestsnotieredcompilation.run.linux.x64.Release.mch 130,468,363 -41,266
realworld.run.linux.x64.checked.mch 13,194,158 -6,001
smoke_tests.nativeaot.linux.x64.checked.mch 4,198,166 -341

MinOpts (-727,753 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch 19,829,757 -36,358
benchmarks.run_tiered.linux.x64.checked.mch 13,677,760 -889
coreclr_tests.run.linux.x64.checked.mch 326,558,135 -279,637
libraries_tests.run.linux.x64.Release.mch 184,389,521 -410,869

FullOpts (-274,451 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 13,468,331 -3,912
benchmarks.run_pgo.linux.x64.checked.mch 48,805,299 +1,373
benchmarks.run_tiered.linux.x64.checked.mch 3,695,392 -1,218
coreclr_tests.run.linux.x64.checked.mch 132,992,943 -98,959
libraries.crossgen2.linux.x64.checked.mch 38,669,030 -20,898
libraries.pmi.linux.x64.checked.mch 60,031,262 -25,391
libraries_tests.run.linux.x64.Release.mch 149,161,971 -77,838
librariestestsnotieredcompilation.run.linux.x64.Release.mch 119,809,892 -41,266
realworld.run.linux.x64.checked.mch 12,805,052 -6,001
smoke_tests.nativeaot.linux.x64.checked.mch 4,197,255 -341

Example diffs

benchmarks.run.linux.x64.checked.mch

-31 (-32.98%) : 30360.dasm - Span.IndexerBench:SameIndex2():ubyte:this (FullOpts)

@@ -8,55 +8,50 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <Span.IndexerBench>
+;  V00 this         [V00,T02] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <Span.IndexerBench>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V02 tmp1         [V02    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
-;  V03 tmp2         [V03,T01] (  4,  6   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <ubyte[]>
-;* V04 tmp3         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+;  V03 tmp2         [V03,T00] (  4,  6   )     ref  ->  rdx         class-hnd single-def "Inlining Arg" <ubyte[]>
+;* V04 tmp3         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V05 tmp4         [V05    ] (  0,  0   )   byref  ->  zero-ref    "field V02._reference (fldOffset=0x0)" P-INDEP
 ;* V06 tmp5         [V06    ] (  0,  0   )     int  ->  zero-ref    "field V02._length (fldOffset=0x8)" P-INDEP
-;  V07 tmp6         [V07,T06] (  3,  2   )   byref  ->  rsi         "field V04._reference (fldOffset=0x0)" P-INDEP
-;  V08 tmp7         [V08,T07] (  3,  2   )     int  ->  rdx         "field V04._length (fldOffset=0x8)" P-INDEP
-;  V09 tmp8         [V09,T02] (  3,  6   )     ref  ->  rdx         single-def "arr expr"
-;  V10 tmp9         [V10,T00] (  4,  8   )  struct (16) [rbp-0x10]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.Span`1[ubyte]>
-;  V11 tmp10        [V11,T05] (  2,  4   )   byref  ->  rdx         single-def "argument with side effect"
-;  V12 cse0         [V12,T04] (  4,  4   )     ref  ->   r8         "CSE - aggressive"
+;  V07 tmp6         [V07,T05] (  3,  2   )   byref  ->  rdi         "field V04._reference (fldOffset=0x0)" P-INDEP
+;  V08 tmp7         [V08,T06] (  3,  2   )     int  ->  rsi         "field V04._length (fldOffset=0x8)" P-INDEP
+;  V09 tmp8         [V09,T01] (  3,  6   )     ref  ->  rdx         single-def "arr expr"
+;  V10 tmp9         [V10,T04] (  2,  4   )   byref  ->  rdx         single-def "argument with side effect"
+;  V11 cse0         [V11,T03] (  4,  4   )     ref  ->   r8         "CSE - aggressive"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 0
 
 G_M29415_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 16
-       lea      rbp, [rsp+0x10]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x10], rax
-                       ;; size=16 bbWeight=1 PerfScore 3.00
+       mov      rbp, rsp
+                       ;; size=4 bbWeight=1 PerfScore 1.25
 G_M29415_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rdi]
        mov      r8, gword ptr [rdi+0x08]
        ; gcrRegs +[r8]
-       mov      rdi, r8
-       test     rdi, rdi
+       mov      rdx, r8
+       ; gcrRegs +[rdx]
+       test     rdx, rdx
        jne      SHORT G_M29415_IG04
                        ;; size=12 bbWeight=1 PerfScore 3.50
 G_M29415_IG03:        ; bbWeight=0.50, gcrefRegs=0100 {r8}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rdi]
-       xor      rsi, rsi
-       ; byrRegs +[rsi]
-       xor      edx, edx
+       ; gcrRegs -[rdx rdi]
+       xor      rdi, rdi
+       ; byrRegs +[rdi]
+       xor      esi, esi
        jmp      SHORT G_M29415_IG05
                        ;; size=6 bbWeight=0.50 PerfScore 1.25
-G_M29415_IG04:        ; bbWeight=0.50, gcrefRegs=0180 {rdi r8}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rdi]
-       ; byrRegs -[rsi]
-       lea      rsi, bword ptr [rdi+0x10]
-       ; byrRegs +[rsi]
-       mov      edx, dword ptr [rdi+0x08]
+G_M29415_IG04:        ; bbWeight=0.50, gcrefRegs=0104 {rdx r8}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rdx]
+       ; byrRegs -[rdi]
+       lea      rdi, bword ptr [rdx+0x10]
+       ; byrRegs +[rdi]
+       mov      esi, dword ptr [rdx+0x08]
                        ;; size=7 bbWeight=0.50 PerfScore 1.25
-G_M29415_IG05:        ; bbWeight=1, gcrefRegs=0100 {r8}, byrefRegs=0040 {rsi}, byref, isz
-       ; gcrRegs -[rdi]
-       mov      bword ptr [rbp-0x10], rsi
-       mov      dword ptr [rbp-0x08], edx
+G_M29415_IG05:        ; bbWeight=1, gcrefRegs=0100 {r8}, byrefRegs=0080 {rdi}, byref, isz
+       ; gcrRegs -[rdx]
        mov      rdx, r8
        ; gcrRegs +[rdx]
        cmp      dword ptr [rdx+0x08], 0
@@ -64,28 +59,23 @@ G_M29415_IG05:        ; bbWeight=1, gcrefRegs=0100 {r8}, byrefRegs=0040 {rsi}, b
        add      rdx, 16
        ; gcrRegs -[rdx]
        ; byrRegs +[rdx]
-       mov      rdi, bword ptr [rbp-0x10]
-       ; byrRegs +[rdi]
-       mov      rsi, qword ptr [rbp-0x08]
-       ; byrRegs -[rsi]
        mov      r8d, dword ptr [r8+0x08]
        ; gcrRegs -[r8]
        xor      ecx, ecx
        call     [<unknown method>]
        ; byrRegs -[rdx rdi]
        nop      
-                       ;; size=41 bbWeight=1 PerfScore 14.00
+                       ;; size=26 bbWeight=1 PerfScore 10.00
 G_M29415_IG06:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 16
        pop      rbp
        ret      
-                       ;; size=6 bbWeight=1 PerfScore 1.75
+                       ;; size=2 bbWeight=1 PerfScore 1.50
 G_M29415_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 94, prolog size 16, PerfScore 24.75, instruction count 31, allocated bytes for code 94 (MethodHash=cb7c8d18) for method Span.IndexerBench:SameIndex2():ubyte:this (FullOpts)
+; Total bytes of code 63, prolog size 4, PerfScore 18.75, instruction count 23, allocated bytes for code 63 (MethodHash=cb7c8d18) for method Span.IndexerBench:SameIndex2():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -93,10 +83,9 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x05
-  CountOfUnwindCodes: 2
+  SizeOfProlog      : 0x01
+  CountOfUnwindCodes: 1
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 1 * 8 + 8 = 16 = 0x10
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

-34 (-30.63%) : 29424.dasm - System.Buffers.Text.Tests.Utf8FormatterTests:FormatterDateTimeOffsetNow(System.DateTimeOffset):ubyte:this (FullOpts)

@@ -8,83 +8,74 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T04] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <System.Buffers.Text.Tests.Utf8FormatterTests>
+;  V00 this         [V00,T02] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <System.Buffers.Text.Tests.Utf8FormatterTests>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.DateTimeOffset>
 ;  V02 loc0         [V02    ] (  1,  1   )     int  ->  [rbp-0x08]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Buffers.StandardFormat>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Span`1[ubyte]>
-;  V06 tmp2         [V06,T02] (  4,  6   )     ref  ->  rdi         class-hnd single-def "Inlining Arg" <ubyte[]>
-;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-;  V08 tmp4         [V08,T05] (  2,  2   )   short  ->  rsi         single-def "field V01._offsetMinutes (fldOffset=0x0)" P-INDEP
-;  V09 tmp5         [V09,T06] (  2,  2   )    long  ->  rdx         single-def "field V01._dateTime (fldOffset=0x8)" P-INDEP
-;* V10 tmp6         [V10,T09] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._format (fldOffset=0x0)" P-INDEP
-;* V11 tmp7         [V11,T10] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._precision (fldOffset=0x1)" P-INDEP
+;  V06 tmp2         [V06,T00] (  4,  6   )     ref  ->   r9         class-hnd single-def "Inlining Arg" <ubyte[]>
+;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+;  V08 tmp4         [V08,T03] (  2,  2   )   short  ->  rsi         single-def "field V01._offsetMinutes (fldOffset=0x0)" P-INDEP
+;  V09 tmp5         [V09,T04] (  2,  2   )    long  ->   r8         single-def "field V01._dateTime (fldOffset=0x8)" P-INDEP
+;* V10 tmp6         [V10,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._format (fldOffset=0x0)" P-INDEP
+;* V11 tmp7         [V11,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._precision (fldOffset=0x1)" P-INDEP
 ;* V12 tmp8         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V13 tmp9         [V13    ] (  0,  0   )     int  ->  zero-ref    single-def "field V05._length (fldOffset=0x8)" P-INDEP
-;  V14 tmp10        [V14,T07] (  3,  2   )   byref  ->  rcx         "field V07._reference (fldOffset=0x0)" P-INDEP
-;  V15 tmp11        [V15,T08] (  3,  2   )     int  ->   r9         "field V07._length (fldOffset=0x8)" P-INDEP
-;  V16 tmp12        [V16,T03] (  3,  6   )  struct ( 8) [rbp-0x10]  do-not-enreg[SF] "by-value struct argument" <System.Buffers.StandardFormat>
-;  V17 tmp13        [V17,T00] (  4,  8   )  struct (16) [rbp-0x20]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.DateTimeOffset>
-;  V18 tmp14        [V18,T01] (  4,  8   )  struct (16) [rbp-0x30]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.Span`1[ubyte]>
+;  V14 tmp10        [V14,T05] (  3,  2   )   byref  ->  rdx         "field V07._reference (fldOffset=0x0)" P-INDEP
+;  V15 tmp11        [V15,T06] (  3,  2   )     int  ->  rcx         "field V07._length (fldOffset=0x8)" P-INDEP
+;  V16 tmp12        [V16,T01] (  3,  6   )  struct ( 8) [rbp-0x10]  do-not-enreg[SF] "by-value struct argument" <System.Buffers.StandardFormat>
 ;
-; Lcl frame size = 48
+; Lcl frame size = 16
 
 G_M7377_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 48
-       lea      rbp, [rsp+0x30]
-       vxorps   xmm8, xmm8, xmm8
-       vmovdqu  ymmword ptr [rbp-0x30], ymm8
-       vmovdqa  xmmword ptr [rbp-0x10], xmm8
-                       ;; size=25 bbWeight=1 PerfScore 6.08
+       sub      rsp, 16
+       lea      rbp, [rsp+0x10]
+       xor      eax, eax
+       mov      qword ptr [rbp-0x08], rax
+       mov      r8, rdx
+                       ;; size=19 bbWeight=1 PerfScore 3.25
 G_M7377_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rdi]
-       mov      rdi, gword ptr [rdi+0x08]
-       test     rdi, rdi
+       mov      r9, gword ptr [rdi+0x08]
+       ; gcrRegs +[r9]
+       test     r9, r9
        jne      SHORT G_M7377_IG04
                        ;; size=9 bbWeight=1 PerfScore 3.25
 G_M7377_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rdi]
-       xor      rcx, rcx
-       ; byrRegs +[rcx]
-       xor      r9d, r9d
+       ; gcrRegs -[rdi r9]
+       xor      rdx, rdx
+       ; byrRegs +[rdx]
+       xor      ecx, ecx
        jmp      SHORT G_M7377_IG05
-                       ;; size=7 bbWeight=0.50 PerfScore 1.25
-G_M7377_IG04:        ; bbWeight=0.50, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rdi]
-       ; byrRegs -[rcx]
-       lea      rcx, bword ptr [rdi+0x10]
-       ; byrRegs +[rcx]
-       mov      r9d, dword ptr [rdi+0x08]
+                       ;; size=6 bbWeight=0.50 PerfScore 1.25
+G_M7377_IG04:        ; bbWeight=0.50, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[r9]
+       ; byrRegs -[rdx]
+       lea      rdx, bword ptr [r9+0x10]
+       ; byrRegs +[rdx]
+       mov      ecx, dword ptr [r9+0x08]
                        ;; size=8 bbWeight=0.50 PerfScore 1.25
-G_M7377_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref
-       ; gcrRegs -[rdi]
-       mov      word  ptr [rbp-0x20], si
-       mov      qword ptr [rbp-0x18], rdx
-       mov      bword ptr [rbp-0x30], rcx
-       mov      dword ptr [rbp-0x28], r9d
+G_M7377_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, byref
+       ; gcrRegs -[r9]
        mov      byte  ptr [rbp-0x10], 0
        mov      byte  ptr [rbp-0x0F], 0
-       mov      rdi, qword ptr [rbp-0x20]
-       mov      rsi, qword ptr [rbp-0x18]
-       mov      rdx, bword ptr [rbp-0x30]
-       ; byrRegs +[rdx]
-       mov      rcx, qword ptr [rbp-0x28]
-       ; byrRegs -[rcx]
        movzx    r9, word  ptr [rbp-0x10]
+       mov      edi, esi
+       mov      rsi, r8
        lea      r8, [rbp-0x08]
        call     [<unknown method>]
        ; byrRegs -[rdx]
        nop      
-                       ;; size=56 bbWeight=1 PerfScore 14.75
+                       ;; size=29 bbWeight=1 PerfScore 7.25
 G_M7377_IG06:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 48
+       add      rsp, 16
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 111, prolog size 25, PerfScore 28.33, instruction count 31, allocated bytes for code 111 (MethodHash=d298e32e) for method System.Buffers.Text.Tests.Utf8FormatterTests:FormatterDateTimeOffsetNow(System.DateTimeOffset):ubyte:this (FullOpts)
+; Total bytes of code 77, prolog size 16, PerfScore 18.00, instruction count 25, allocated bytes for code 77 (MethodHash=d298e32e) for method System.Buffers.Text.Tests.Utf8FormatterTests:FormatterDateTimeOffsetNow(System.DateTimeOffset):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -97,5 +88,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 1 * 8 + 8 = 16 = 0x10
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

-25 (-19.38%) : 2864.dasm - System.Formats.Asn1.AsnDecoder:ReadIntegerBytes(System.ReadOnlySpan1[ubyte],int,byref,System.Nullable1[System.Formats.Asn1.Asn1Tag]):System.ReadOnlySpan`1ubyte

@@ -9,9 +9,9 @@
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
-;  V01 arg1         [V01,T04] (  3,  3   )     int  ->  rdx         single-def
-;  V02 arg2         [V02,T03] (  3,  3   )   byref  ->   r9         single-def
-;  V03 arg3         [V03,T01] (  5,  5   )  struct (16) [rbp-0x10]  do-not-enreg[SA] multireg-arg single-def <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
+;  V01 arg1         [V01,T03] (  3,  3   )     int  ->  rdx         single-def
+;  V02 arg2         [V02,T02] (  3,  3   )   byref  ->   r9         single-def
+;  V03 arg3         [V03,T00] (  5,  5   )  struct (16) [rbp-0x10]  do-not-enreg[SA] multireg-arg single-def <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
 ;* V04 loc0         [V04    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct (16) zero-ref    <System.ReadOnlySpan`1[ubyte]>
@@ -20,40 +20,36 @@
 ;* V09 tmp4         [V09    ] (  0,  0   )     int  ->  zero-ref   
 ;* V10 tmp5         [V10    ] (  0,  0   )  struct ( 8) zero-ref    <System.Formats.Asn1.Asn1Tag>
 ;* V11 tmp6         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-ret "Return value temp for multireg return" <System.ReadOnlySpan`1[ubyte]>
-;  V12 tmp7         [V12,T05] (  2,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V13 tmp8         [V13,T06] (  2,  2   )     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V12 tmp7         [V12,T04] (  2,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V13 tmp8         [V13,T05] (  2,  2   )     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
 ;* V14 tmp9         [V14    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V15 tmp10        [V15    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
 ;* V16 tmp11        [V16    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V17 tmp12        [V17    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
-;  V18 tmp13        [V18,T09] (  3,  2   )   ubyte  ->  rcx         "field V10._controlFlags (fldOffset=0x0)" P-INDEP
-;  V19 tmp14        [V19,T10] (  3,  2   )     int  ->  r10         "field V10.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
-;  V20 tmp15        [V20,T11] (  2,  2   )   byref  ->  rax         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
-;  V21 tmp16        [V21,T12] (  2,  2   )     int  ->  rdx         "field V11._length (fldOffset=0x8)" P-INDEP
-;  V22 tmp17        [V22,T13] (  2,  2   )   ubyte  ->  rcx         "V04.[000..001)"
-;  V23 tmp18        [V23,T14] (  2,  1.50)   ubyte  ->   r8         "V04.[004..005)"
-;  V24 tmp19        [V24,T15] (  2,  1.50)     int  ->  rax         "V04.[008..012)"
-;  V25 tmp20        [V25,T08] (  3,  3   )  struct (16) [rbp-0x20]  do-not-enreg[SFR] multireg-ret must-init "Return value temp for multi-reg return (rejected tail call)." <System.ReadOnlySpan`1[ubyte]>
-;  V26 tmp21        [V26,T02] (  3,  6   )  struct ( 8) [rbp-0x28]  do-not-enreg[SF] "by-value struct argument" <System.Formats.Asn1.Asn1Tag>
-;  V27 tmp22        [V27,T00] (  4,  8   )  struct (16) [rbp-0x38]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.ReadOnlySpan`1[ubyte]>
-;  V28 tmp23        [V28,T07] (  2,  4   )     int  ->  rdx         "argument with side effect"
-;* V29 cse0         [V29,T16] (  0,  0   )    long  ->  zero-ref    "CSE - moderate"
+;  V18 tmp13        [V18,T07] (  3,  2   )   ubyte  ->  rcx         "field V10._controlFlags (fldOffset=0x0)" P-INDEP
+;  V19 tmp14        [V19,T08] (  3,  2   )     int  ->  r10         "field V10.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
+;  V20 tmp15        [V20,T09] (  2,  2   )   byref  ->  rax         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
+;  V21 tmp16        [V21,T10] (  2,  2   )     int  ->  rdx         "field V11._length (fldOffset=0x8)" P-INDEP
+;  V22 tmp17        [V22,T11] (  2,  2   )   ubyte  ->  rcx         "V04.[000..001)"
+;  V23 tmp18        [V23,T12] (  2,  1.50)   ubyte  ->   r8         "V04.[004..005)"
+;  V24 tmp19        [V24,T13] (  2,  1.50)     int  ->  rax         "V04.[008..012)"
+;  V25 tmp20        [V25,T06] (  3,  3   )  struct (16) [rbp-0x20]  do-not-enreg[SFR] multireg-ret must-init "Return value temp for multi-reg return (rejected tail call)." <System.ReadOnlySpan`1[ubyte]>
+;  V26 tmp21        [V26,T01] (  3,  6   )  struct ( 8) [rbp-0x28]  do-not-enreg[SF] "by-value struct argument" <System.Formats.Asn1.Asn1Tag>
+;* V27 cse0         [V27,T14] (  0,  0   )    long  ->  zero-ref    "CSE - moderate"
 ;
-; Lcl frame size = 64
+; Lcl frame size = 48
 
 G_M37843_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 64
-       lea      rbp, [rsp+0x40]
+       sub      rsp, 48
+       lea      rbp, [rsp+0x30]
        xor      eax, eax
-       mov      qword ptr [rbp-0x38], rax
-       vxorps   xmm8, xmm8, xmm8
-       vmovdqu  ymmword ptr [rbp-0x30], ymm8
+       mov      qword ptr [rbp-0x20], rax
        mov      qword ptr [rbp-0x10], r8
        mov      dword ptr [rbp-0x08], r9d
        mov      r9, rcx
        ; byrRegs +[r9]
-                       ;; size=37 bbWeight=1 PerfScore 7.58
+                       ;; size=27 bbWeight=1 PerfScore 5.25
 G_M37843_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0280 {rdi r9}, byref, isz
        ; byrRegs +[rdi]
        movzx    rcx, byte  ptr [rbp-0x10]
@@ -72,12 +68,8 @@ G_M37843_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0280 {rdi r9
        mov      r10d, eax
                        ;; size=7 bbWeight=0.50 PerfScore 0.25
 G_M37843_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0280 {rdi r9}, byref
-       mov      bword ptr [rbp-0x38], rdi
-       mov      dword ptr [rbp-0x30], esi
        mov      byte  ptr [rbp-0x28], cl
        mov      dword ptr [rbp-0x24], r10d
-       mov      rdi, bword ptr [rbp-0x38]
-       mov      rsi, qword ptr [rbp-0x30]
        mov      rcx, qword ptr [rbp-0x28]
        mov      r8d, 2
        call     [System.Formats.Asn1.AsnDecoder:GetIntegerContents(System.ReadOnlySpan`1[ubyte],int,System.Formats.Asn1.Asn1Tag,int,byref):System.ReadOnlySpan`1[ubyte]]
@@ -86,14 +78,14 @@ G_M37843_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0280 {rdi r9},
        mov      qword ptr [rbp-0x18], rdx
        mov      rax, bword ptr [rbp-0x20]
        mov      edx, dword ptr [rbp-0x18]
-                       ;; size=53 bbWeight=1 PerfScore 14.25
+                       ;; size=38 bbWeight=1 PerfScore 10.25
 G_M37843_IG06:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 64
+       add      rsp, 48
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 129, prolog size 26, PerfScore 29.33, instruction count 36, allocated bytes for code 129 (MethodHash=cd5d6c2c) for method System.Formats.Asn1.AsnDecoder:ReadIntegerBytes(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.ReadOnlySpan`1[ubyte] (FullOpts)
+; Total bytes of code 104, prolog size 16, PerfScore 23.00, instruction count 30, allocated bytes for code 104 (MethodHash=cd5d6c2c) for method System.Formats.Asn1.AsnDecoder:ReadIntegerBytes(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.ReadOnlySpan`1[ubyte] (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -106,5 +98,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+6 (+2.31%) : 16903.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext:ListMyEventsListerItemTaskSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.List`1[MicroBenchmarks.Serializers.MyEventsListerItemTask]):this (FullOpts)

@@ -9,19 +9,17 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T05] (  3,  6   )     ref  ->  r14         this class-hnd single-def <MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext>
-;  V01 arg1         [V01,T02] ( 16, 12.50)     ref  ->  rbx         class-hnd single-def <System.Text.Json.Utf8JsonWriter>
-;  V02 arg2         [V02,T03] (  7, 15.50)     ref  ->  r15         class-hnd single-def <System.Collections.Generic.List`1[MicroBenchmarks.Serializers.MyEventsListerItemTask]>
+;  V01 arg1         [V01,T04] ( 16, 12.50)     ref  ->  r15         class-hnd single-def <System.Text.Json.Utf8JsonWriter>
+;  V02 arg2         [V02,T02] (  7, 15.50)     ref  ->  rbx         class-hnd single-def <System.Collections.Generic.List`1[MicroBenchmarks.Serializers.MyEventsListerItemTask]>
 ;  V03 loc0         [V03,T00] (  7, 24.50)     int  ->  r13        
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V06 tmp2         [V06    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V07 tmp3         [V07    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
-;  V08 tmp4         [V08,T01] (  3, 24   )     ref  ->  rdi         "arr expr"
-;* V09 tmp5         [V09,T06] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;* V10 tmp6         [V10,T07] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V11 tmp7         [V11,T04] (  2, 16   )     ref  ->  rdx         "argument with side effect"
-;  V12 cse0         [V12,T08] (  4,  2   )     int  ->  rax         "CSE - moderate"
-;  V13 cse1         [V13,T09] (  4,  2   )     int  ->  rdi         "CSE - moderate"
+;  V08 tmp4         [V08,T01] (  3, 24   )     ref  ->  rdx         "arr expr"
+;  V09 tmp5         [V09,T03] (  2, 16   )     ref  ->  rdx         "argument with side effect"
+;  V10 cse0         [V10,T06] (  4,  2   )     int  ->  rax         "CSE - aggressive"
+;  V11 cse1         [V11,T07] (  4,  2   )     int  ->  rdi         "CSE - aggressive"
 ;
 ; Lcl frame size = 0
 
@@ -34,18 +32,18 @@ G_M65212_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        lea      rbp, [rsp+0x20]
        mov      r14, rdi
        ; gcrRegs +[r14]
-       mov      rbx, rsi
-       ; gcrRegs +[rbx]
-       mov      r15, rdx
+       mov      r15, rsi
        ; gcrRegs +[r15]
+       mov      rbx, rdx
+       ; gcrRegs +[rbx]
                        ;; size=22 bbWeight=1 PerfScore 6.25
 G_M65212_IG02:        ; bbWeight=1, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
-       test     r15, r15
+       test     rbx, rbx
        jne      SHORT G_M65212_IG05
                        ;; size=5 bbWeight=1 PerfScore 1.25
-G_M65212_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[r14-r15]
-       mov      rdi, rbx
+G_M65212_IG03:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+       ; gcrRegs -[rbx r14]
+       mov      rdi, r15
        ; gcrRegs +[rdi]
        cmp      dword ptr [rdi], edi
                        ;; size=5 bbWeight=0.50 PerfScore 1.62
@@ -59,42 +57,42 @@ G_M65212_IG04:        ; bbWeight=0.50, epilog, nogc, extend
        ; gcr arg pop 0
                        ;; size=14 bbWeight=0.50 PerfScore 2.25
 G_M65212_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rdi] +[r14-r15]
-       cmp      byte  ptr [rbx], bl
-       mov      rdi, rbx
+       ; gcrRegs -[rdi] +[rbx r14]
+       cmp      byte  ptr [r15], r15b
+       mov      rdi, r15
        ; gcrRegs +[rdi]
        mov      esi, 91
        call     [System.Text.Json.Utf8JsonWriter:WriteStart(ubyte):this]
        ; gcrRegs -[rdi]
        ; gcr arg pop 0
-       mov      byte  ptr [rbx+0x36], 3
+       mov      byte  ptr [r15+0x36], 3
        xor      r13d, r13d
-       cmp      dword ptr [r15+0x10], 0
+       cmp      dword ptr [rbx+0x10], 0
        jle      SHORT G_M65212_IG07
-                       ;; size=30 bbWeight=0.50 PerfScore 5.88
+                       ;; size=31 bbWeight=0.50 PerfScore 5.88
 G_M65212_IG06:        ; bbWeight=4, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
-       cmp      r13d, dword ptr [r15+0x10]
+       cmp      r13d, dword ptr [rbx+0x10]
        jae      G_M65212_IG15
-       mov      rdi, gword ptr [r15+0x08]
-       ; gcrRegs +[rdi]
-       cmp      r13d, dword ptr [rdi+0x08]
+       mov      rdx, gword ptr [rbx+0x08]
+       ; gcrRegs +[rdx]
+       cmp      r13d, dword ptr [rdx+0x08]
        jae      G_M65212_IG14
        mov      esi, r13d
-       mov      rdx, gword ptr [rdi+8*rsi+0x10]
-       ; gcrRegs +[rdx]
-       mov      rdi, r14
-       mov      rsi, rbx
+       mov      rdx, gword ptr [rdx+8*rsi+0x10]
+       mov      rsi, r15
        ; gcrRegs +[rsi]
+       mov      rdi, r14
+       ; gcrRegs +[rdi]
        call     [MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext:MyEventsListerItemTaskSerializeHandler(System.Text.Json.Utf8JsonWriter,MicroBenchmarks.Serializers.MyEventsListerItemTask):this]
        ; gcrRegs -[rdx rsi rdi]
        ; gcr arg pop 0
        inc      r13d
-       cmp      r13d, dword ptr [r15+0x10]
+       cmp      r13d, dword ptr [rbx+0x10]
        jl       SHORT G_M65212_IG06
                        ;; size=53 bbWeight=4 PerfScore 80.00
-G_M65212_IG07:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[r14-r15]
-       mov      edi, dword ptr [rbx+0x6C]
+G_M65212_IG07:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs -[rbx r14]
+       mov      edi, dword ptr [r15+0x6C]
        mov      esi, edi
        and      esi, 3
        cmp      esi, 2
@@ -103,15 +101,15 @@ G_M65212_IG07:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        je       SHORT G_M65212_IG09
        test     dil, 2
        jne      SHORT G_M65212_IG08
-       mov      rdi, rbx
+       mov      rdi, r15
        ; gcrRegs +[rdi]
        mov      esi, 93
        call     [<unknown method>]
        ; gcrRegs -[rdi]
        ; gcr arg pop 0
-                       ;; size=39 bbWeight=0.50 PerfScore 4.88
-G_M65212_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       mov      rdi, rbx
+                       ;; size=40 bbWeight=0.50 PerfScore 4.88
+G_M65212_IG08:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+       mov      rdi, r15
        ; gcrRegs +[rdi]
        mov      esi, 93
        call     [<unknown method>]
@@ -119,34 +117,34 @@ G_M65212_IG08:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcr arg pop 0
        jmp      SHORT G_M65212_IG11
                        ;; size=16 bbWeight=0.50 PerfScore 2.75
-G_M65212_IG09:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       mov      rdi, rbx
+G_M65212_IG09:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+       mov      rdi, r15
        ; gcrRegs +[rdi]
        mov      esi, 93
        call     [<unknown method>]
        ; gcrRegs -[rdi]
        ; gcr arg pop 0
                        ;; size=14 bbWeight=0.50 PerfScore 1.75
-G_M65212_IG10:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       mov      rdi, rbx
+G_M65212_IG10:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+       mov      rdi, r15
        ; gcrRegs +[rdi]
        mov      esi, 93
        call     [System.Text.Json.Utf8JsonWriter:WriteEndMinimized(ubyte):this]
        ; gcrRegs -[rdi]
        ; gcr arg pop 0
                        ;; size=14 bbWeight=0.50 PerfScore 1.75
-G_M65212_IG11:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
-       mov      eax, dword ptr [rbx+0x28]
+G_M65212_IG11:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref, isz
+       mov      eax, dword ptr [r15+0x28]
        or       eax, 0xD1FFAB1E
-       mov      dword ptr [rbx+0x28], eax
+       mov      dword ptr [r15+0x28], eax
        test     eax, 0xD1FFAB1E
        je       SHORT G_M65212_IG12
        dec      eax
-       mov      dword ptr [rbx+0x28], eax
-                       ;; size=23 bbWeight=0.50 PerfScore 2.88
-G_M65212_IG12:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       mov      byte  ptr [rbx+0x36], 4
-                       ;; size=4 bbWeight=0.50 PerfScore 0.50
+       mov      dword ptr [r15+0x28], eax
+                       ;; size=26 bbWeight=0.50 PerfScore 2.88
+G_M65212_IG12:        ; bbWeight=0.50, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, byref
+       mov      byte  ptr [r15+0x36], 4
+                       ;; size=5 bbWeight=0.50 PerfScore 0.50
 G_M65212_IG13:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbx
        pop      r13
@@ -156,7 +154,7 @@ G_M65212_IG13:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
                        ;; size=9 bbWeight=0.50 PerfScore 1.75
 G_M65212_IG14:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rbx]
+       ; gcrRegs -[r15]
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
                        ;; size=5 bbWeight=0 PerfScore 0.00
@@ -166,7 +164,7 @@ G_M65212_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 260, prolog size 22, PerfScore 113.50, instruction count 79, allocated bytes for code 260 (MethodHash=4a170143) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext:ListMyEventsListerItemTaskSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.List`1[MicroBenchmarks.Serializers.MyEventsListerItemTask]):this (FullOpts)
+; Total bytes of code 266, prolog size 22, PerfScore 113.50, instruction count 79, allocated bytes for code 266 (MethodHash=4a170143) for method MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext:ListMyEventsListerItemTaskSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.List`1[MicroBenchmarks.Serializers.MyEventsListerItemTask]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+2 (+2.90%) : 29395.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[int,int]:set_Item(int,int):this (FullOpts)

@@ -8,53 +8,48 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  4,  4   )     ref  ->  rdi         this class-hnd single-def <System.Collections.Concurrent.ConcurrentDictionary`2[int,int]>
-;  V01 arg1         [V01,T02] (  3,  3   )     int  ->  rsi         single-def
-;  V02 arg2         [V02,T03] (  3,  3   )     int  ->   r8         single-def
+;  V01 arg1         [V01,T02] (  3,  3   )     int  ->   r8         single-def
+;  V02 arg2         [V02,T03] (  3,  3   )     int  ->   r9         single-def
 ;  V03 loc0         [V03    ] (  1,  1   )     int  ->  [rsp+0x20]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V04 loc1         [V04    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[int]>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (16) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06,T04] (  2,  4   )     ref  ->  rdx         class-hnd exact single-def "impAppendStmt" <<unknown class>>
-;* V07 tmp2         [V07,T08] (  0,  0   )   ubyte  ->  zero-ref    "field V04.hasValue (fldOffset=0x0)" P-INDEP
-;* V08 tmp3         [V08,T09] (  0,  0   )     int  ->  zero-ref    "field V04.value (fldOffset=0x4)" P-INDEP
+;  V06 tmp1         [V06,T04] (  2,  4   )     ref  ->  rsi         class-hnd exact single-def "impAppendStmt" <<unknown class>>
+;* V07 tmp2         [V07,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V04.hasValue (fldOffset=0x0)" P-INDEP
+;* V08 tmp3         [V08,T06] (  0,  0   )     int  ->  zero-ref    "field V04.value (fldOffset=0x4)" P-INDEP
 ;  V09 tmp4         [V09,T01] (  3,  6   )  struct ( 8) [rsp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
-;* V10 tmp5         [V10,T07] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V11 tmp6         [V11,T05] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
-;  V12 tmp7         [V12,T06] (  2,  4   )     int  ->  rcx         "argument with side effect"
 ;
 ; Lcl frame size = 40
 
 G_M26455_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        sub      rsp, 40
-       mov      r8d, edx
-                       ;; size=7 bbWeight=1 PerfScore 0.50
+       mov      r8d, esi
+       mov      r9d, edx
+                       ;; size=10 bbWeight=1 PerfScore 0.75
 G_M26455_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rdi]
-       mov      rdx, gword ptr [rdi+0x08]
-       ; gcrRegs +[rdx]
-       mov      ecx, esi
-       mov      byte  ptr [rsp+0x18], 0
-       xor      esi, esi
-       mov      dword ptr [rsp+0x1C], esi
-       mov      dword ptr [rsp], 1
-       lea      rsi, [rsp+0x20]
-       mov      qword ptr [rsp+0x08], rsi
-       mov      rsi, rdx
+       mov      rsi, gword ptr [rdi+0x08]
        ; gcrRegs +[rsi]
-       mov      edx, ecx
-       ; gcrRegs -[rdx]
+       mov      byte  ptr [rsp+0x18], 0
+       xor      ecx, ecx
+       mov      dword ptr [rsp+0x1C], ecx
+       mov      dword ptr [rsp], 1
+       lea      rcx, [rsp+0x20]
+       mov      qword ptr [rsp+0x08], rcx
        mov      rcx, qword ptr [rsp+0x18]
+       mov      edx, r8d
+       mov      r8d, r9d
        mov      r9d, 1
        call     [<unknown method>]
        ; gcrRegs -[rsi rdi]
        ; gcr arg pop 0
        nop      
-                       ;; size=57 bbWeight=1 PerfScore 12.00
+                       ;; size=56 bbWeight=1 PerfScore 11.75
 G_M26455_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 40
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 69, prolog size 4, PerfScore 13.75, instruction count 18, allocated bytes for code 69 (MethodHash=ae9b98a8) for method System.Collections.Concurrent.ConcurrentDictionary`2[int,int]:set_Item(int,int):this (FullOpts)
+; Total bytes of code 71, prolog size 4, PerfScore 13.75, instruction count 18, allocated bytes for code 71 (MethodHash=ae9b98a8) for method System.Collections.Concurrent.ConcurrentDictionary`2[int,int]:set_Item(int,int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+6 (+3.33%) : 5090.dasm - Newtonsoft.Json.JsonReader:Pop():int:this (FullOpts)

@@ -27,7 +27,7 @@
 ;* V16 tmp13        [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "field V01.HasIndex (fldOffset=0x10)" P-INDEP
 ;  V17 tmp14        [V17,T09] (  2,  1   )   ubyte  ->  rcx         single-def "field V02.hasValue (fldOffset=0x0)" P-INDEP
 ;  V18 tmp15        [V18,T10] (  2,  1   )     int  ->  rdx         single-def "field V02.value (fldOffset=0x4)" P-INDEP
-;  V19 tmp16        [V19,T03] (  3,  3   )     ref  ->  rsi         single-def "arr expr"
+;  V19 tmp16        [V19,T03] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
 ;  V20 cse0         [V20,T08] (  3,  1.50)     int  ->  r13         "CSE - moderate"
 ;  V21 cse1         [V21,T04] (  4,  2   )     int  ->  rdi         "CSE - aggressive"
 ;  V22 cse2         [V22,T02] (  5,  3.50)     ref  ->  r15         "CSE - aggressive"
@@ -60,16 +60,19 @@ G_M12313_IG03:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
        lea      r13d, [rdi-0x01]
        mov      eax, r13d
        cmp      eax, edi
-       jae      SHORT G_M12313_IG10
-       lea      rdi, bword ptr [rbx+0x48]
-       ; byrRegs +[rdi]
-       mov      rsi, gword ptr [rsi+0x08]
-       cmp      eax, dword ptr [rsi+0x08]
+       jae      G_M12313_IG10
+       mov      rdi, gword ptr [rsi+0x08]
+       ; gcrRegs +[rdi]
+       cmp      eax, dword ptr [rdi+0x08]
        jae      SHORT G_M12313_IG09
-       lea      rax, [rax+2*rax]
-       lea      rsi, bword ptr [rsi+8*rax+0x10]
+       mov      esi, eax
        ; gcrRegs -[rsi]
+       lea      rsi, [rsi+2*rsi]
+       lea      rsi, bword ptr [rdi+8*rsi+0x10]
        ; byrRegs +[rsi]
+       lea      rdi, bword ptr [rbx+0x48]
+       ; gcrRegs -[rdi]
+       ; byrRegs +[rdi]
        call     CORINFO_HELP_ASSIGN_BYREF
        movsq    
        movsq    
@@ -81,7 +84,7 @@ G_M12313_IG03:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
        call     [System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]:RemoveAt(int):this]
        ; gcrRegs -[rdi r15]
        jmp      SHORT G_M12313_IG05
-                       ;; size=71 bbWeight=0.50 PerfScore 12.00
+                       ;; size=77 bbWeight=0.50 PerfScore 12.12
 G_M12313_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      r14d, dword ptr [rbx+0x50]
        xor      edi, edi
@@ -129,7 +132,7 @@ G_M12313_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 180, prolog size 13, PerfScore 38.88, instruction count 61, allocated bytes for code 180 (MethodHash=3fb5cfe6) for method Newtonsoft.Json.JsonReader:Pop():int:this (FullOpts)
+; Total bytes of code 186, prolog size 13, PerfScore 39.00, instruction count 62, allocated bytes for code 186 (MethodHash=3fb5cfe6) for method Newtonsoft.Json.JsonReader:Pop():int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

benchmarks.run_pgo.linux.x64.checked.mch

-31 (-27.93%) : 19077.dasm - System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Instrumented Tier0)

@@ -12,33 +12,19 @@
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05    ] (  1,  1   )    long  ->  [rbp-0x20]  do-not-enreg[] "Cast away GC"
 ;  V06 tmp2         [V06    ] (  1,  1   )    long  ->  [rbp-0x28]  do-not-enreg[] "argument with side effect"
-;  V07 tmp3         [V07    ] (  1,  1   )     ref  ->  [rbp-0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V08 tmp4         [V08    ] (  1,  1   )     int  ->  [rbp-0x34]  do-not-enreg[] "argument with side effect"
-;  V09 tmp5         [V09    ] (  1,  1   )     int  ->  [rbp-0x38]  do-not-enreg[] "argument with side effect"
 ;
-; Lcl frame size = 64
+; Lcl frame size = 48
 
 G_M56677_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 64
-       lea      rbp, [rsp+0x40]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x30], rax
+       sub      rsp, 48
+       lea      rbp, [rsp+0x30]
        mov      gword ptr [rbp-0x08], rdi
        mov      dword ptr [rbp-0x0C], esi
        mov      dword ptr [rbp-0x10], edx
        mov      bword ptr [rbp-0x18], rcx
-                       ;; size=30 bbWeight=1 PerfScore 7.00
+                       ;; size=24 bbWeight=1 PerfScore 5.75
 G_M56677_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      r8, gword ptr [rbp-0x08]
-       ; gcrRegs +[r8]
-       mov      gword ptr [rbp-0x30], r8
-       mov      r8d, dword ptr [rbp-0x0C]
-       ; gcrRegs -[r8]
-       movzx    r8, r8w
-       mov      dword ptr [rbp-0x34], r8d
-       mov      r8d, dword ptr [rbp-0x10]
-       mov      dword ptr [rbp-0x38], r8d
        mov      r8, bword ptr [rbp-0x18]
        ; byrRegs +[r8]
        mov      qword ptr [rbp-0x20], r8
@@ -46,22 +32,23 @@ G_M56677_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs -[r8]
        mov      qword ptr [rbp-0x28], r8
        mov      r8, qword ptr [rbp-0x28]
-       mov      rsi, gword ptr [rbp-0x30]
+       mov      edx, dword ptr [rbp-0x0C]
+       movzx    rdx, dx
+       mov      rsi, gword ptr [rbp-0x08]
        ; gcrRegs +[rsi]
-       mov      edx, dword ptr [rbp-0x34]
-       mov      ecx, dword ptr [rbp-0x38]
+       mov      ecx, dword ptr [rbp-0x10]
        mov      rdi, 0xD1FFAB1E      ; code for <unknown method>
        call     [<unknown method>]
        ; gcrRegs -[rsi]
        nop      
-                       ;; size=75 bbWeight=1 PerfScore 17.75
+                       ;; size=50 bbWeight=1 PerfScore 11.75
 G_M56677_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 64
+       add      rsp, 48
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 111, prolog size 16, PerfScore 26.50, instruction count 30, allocated bytes for code 111 (MethodHash=eeac229a) for method System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Instrumented Tier0)
+; Total bytes of code 80, prolog size 10, PerfScore 19.25, instruction count 22, allocated bytes for code 80 (MethodHash=eeac229a) for method System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Instrumented Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -74,5 +61,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

-31 (-27.93%) : 19031.dasm - System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Tier0)

@@ -12,33 +12,19 @@
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05    ] (  1,  1   )    long  ->  [rbp-0x20]  do-not-enreg[] "Cast away GC"
 ;  V06 tmp2         [V06    ] (  1,  1   )    long  ->  [rbp-0x28]  do-not-enreg[] "argument with side effect"
-;  V07 tmp3         [V07    ] (  1,  1   )     ref  ->  [rbp-0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V08 tmp4         [V08    ] (  1,  1   )     int  ->  [rbp-0x34]  do-not-enreg[] "argument with side effect"
-;  V09 tmp5         [V09    ] (  1,  1   )     int  ->  [rbp-0x38]  do-not-enreg[] "argument with side effect"
 ;
-; Lcl frame size = 64
+; Lcl frame size = 48
 
 G_M56677_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 64
-       lea      rbp, [rsp+0x40]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x30], rax
+       sub      rsp, 48
+       lea      rbp, [rsp+0x30]
        mov      gword ptr [rbp-0x08], rdi
        mov      dword ptr [rbp-0x0C], esi
        mov      dword ptr [rbp-0x10], edx
        mov      bword ptr [rbp-0x18], rcx
-                       ;; size=30 bbWeight=1 PerfScore 7.00
+                       ;; size=24 bbWeight=1 PerfScore 5.75
 G_M56677_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      r8, gword ptr [rbp-0x08]
-       ; gcrRegs +[r8]
-       mov      gword ptr [rbp-0x30], r8
-       mov      r8d, dword ptr [rbp-0x0C]
-       ; gcrRegs -[r8]
-       movzx    r8, r8w
-       mov      dword ptr [rbp-0x34], r8d
-       mov      r8d, dword ptr [rbp-0x10]
-       mov      dword ptr [rbp-0x38], r8d
        mov      r8, bword ptr [rbp-0x18]
        ; byrRegs +[r8]
        mov      qword ptr [rbp-0x20], r8
@@ -46,22 +32,23 @@ G_M56677_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs -[r8]
        mov      qword ptr [rbp-0x28], r8
        mov      r8, qword ptr [rbp-0x28]
-       mov      rsi, gword ptr [rbp-0x30]
+       mov      edx, dword ptr [rbp-0x0C]
+       movzx    rdx, dx
+       mov      rsi, gword ptr [rbp-0x08]
        ; gcrRegs +[rsi]
-       mov      edx, dword ptr [rbp-0x34]
-       mov      ecx, dword ptr [rbp-0x38]
+       mov      ecx, dword ptr [rbp-0x10]
        mov      rdi, 0xD1FFAB1E      ; code for <unknown method>
        call     [<unknown method>]
        ; gcrRegs -[rsi]
        nop      
-                       ;; size=75 bbWeight=1 PerfScore 17.75
+                       ;; size=50 bbWeight=1 PerfScore 11.75
 G_M56677_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 64
+       add      rsp, 48
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 111, prolog size 16, PerfScore 26.50, instruction count 30, allocated bytes for code 111 (MethodHash=eeac229a) for method System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Tier0)
+; Total bytes of code 80, prolog size 10, PerfScore 19.25, instruction count 22, allocated bytes for code 80 (MethodHash=eeac229a) for method System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -74,5 +61,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

-35 (-20.35%) : 90772.dasm - Microsoft.CodeAnalysis.CSharp.AccessCheck:IsSymbolAccessible(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):ubyte (Instrumented Tier0)

@@ -14,35 +14,23 @@
 ;  V06 tmp1         [V06    ] (  1,  1   )     ref  ->  [rbp-0x30]  do-not-enreg[] must-init "handle histogram profile tmp"
 ;  V07 tmp2         [V07    ] (  1,  1   )     ref  ->  [rbp-0x38]  do-not-enreg[] must-init "argument with side effect"
 ;  V08 tmp3         [V08    ] (  1,  1   )     ref  ->  [rbp-0x40]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp4         [V09    ] (  1,  1   )     ref  ->  [rbp-0x48]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp5         [V10    ] (  1,  1   )     ref  ->  [rbp-0x50]  do-not-enreg[] must-init "argument with side effect"
-;  V11 tmp6         [V11    ] (  1,  1   )     ref  ->  [rbp-0x58]  do-not-enreg[] must-init "argument with side effect"
 ;
-; Lcl frame size = 96
+; Lcl frame size = 80
 
 G_M32191_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 96
-       lea      rbp, [rsp+0x60]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x58], rax
+       sub      rsp, 80
+       lea      rbp, [rsp+0x50]
        vxorps   xmm8, xmm8, xmm8
-       vmovdqu  ymmword ptr [rbp-0x50], ymm8
-       vmovdqa  xmmword ptr [rbp-0x30], xmm8
+       vmovdqu  ymmword ptr [rbp-0x40], ymm8
        mov      gword ptr [rbp-0x08], rdi
        mov      gword ptr [rbp-0x10], rsi
        mov      bword ptr [rbp-0x18], rdx
        mov      gword ptr [rbp-0x20], rcx
-                       ;; size=47 bbWeight=1 PerfScore 11.33
+                       ;; size=36 bbWeight=1 PerfScore 8.08
 G_M32191_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      rdi, gword ptr [rbp-0x08]
+       mov      rdi, gword ptr [rbp-0x10]
        ; gcrRegs +[rdi]
-       mov      gword ptr [rbp-0x58], rdi
-       mov      rdi, gword ptr [rbp-0x10]
-       mov      gword ptr [rbp-0x48], rdi
-       mov      rdi, gword ptr [rbp-0x20]
-       mov      gword ptr [rbp-0x50], rdi
-       mov      rdi, gword ptr [rbp-0x10]
        mov      gword ptr [rbp-0x30], rdi
        mov      rdi, gword ptr [rbp-0x30]
        mov      rsi, 0xD1FFAB1E
@@ -64,27 +52,27 @@ G_M32191_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs +[r8]
        mov      gword ptr [rsp], r8
        mov      r8, gword ptr [rbp-0x40]
-       mov      rsi, gword ptr [rbp-0x48]
-       ; gcrRegs +[rsi]
-       mov      rdx, gword ptr [rbp-0x50]
-       ; gcrRegs +[rdx]
-       mov      rdi, gword ptr [rbp-0x58]
-       ; gcrRegs +[rdi]
        lea      rcx, [rbp-0x28]
+       mov      rsi, gword ptr [rbp-0x10]
+       ; gcrRegs +[rsi]
+       mov      rdx, gword ptr [rbp-0x20]
+       ; gcrRegs +[rdx]
+       mov      rdi, gword ptr [rbp-0x08]
+       ; gcrRegs +[rdi]
        mov      r9, bword ptr [rbp-0x18]
        ; byrRegs +[r9]
        call     [<unknown method>]
        ; gcrRegs -[rax rdx rsi rdi r8]
        ; byrRegs -[r9]
        nop      
-                       ;; size=119 bbWeight=1 PerfScore 32.25
+                       ;; size=95 bbWeight=1 PerfScore 26.25
 G_M32191_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 96
+       add      rsp, 80
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 172, prolog size 31, PerfScore 45.33, instruction count 44, allocated bytes for code 172 (MethodHash=28548240) for method Microsoft.CodeAnalysis.CSharp.AccessCheck:IsSymbolAccessible(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):ubyte (Instrumented Tier0)
+; Total bytes of code 137, prolog size 20, PerfScore 36.08, instruction count 35, allocated bytes for code 137 (MethodHash=28548240) for method Microsoft.CodeAnalysis.CSharp.AccessCheck:IsSymbolAccessible(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):ubyte (Instrumented Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -97,5 +85,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 11 * 8 + 8 = 96 = 0x60
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+7 (+2.21%) : 1053.dasm - System.Runtime.InteropServices.Marshalling.Utf8StringMarshaller+ManagedToUnmanagedIn:FromManaged(System.String,System.Span`1[ubyte]):this (Tier0)

@@ -5,68 +5,69 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )   byref  ->  [rbp-0x10]  do-not-enreg[] this
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [rbp-0x18]  do-not-enreg[] class-hnd <System.String>
-;  V02 arg2         [V02    ] (  1,  1   )  struct (16) [rbp-0x28]  do-not-enreg[XSFA] multireg-arg addr-exposed ld-addr-op <System.Span`1[ubyte]>
-;  V03 loc0         [V03    ] (  1,  1   )     int  ->  [rbp-0x2C]  do-not-enreg[]
-;  V04 loc1         [V04    ] (  1,  1   )     int  ->  [rbp-0x30]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )   byref  ->  [rbp-0x08]  do-not-enreg[] this
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [rbp-0x10]  do-not-enreg[] class-hnd <System.String>
+;  V02 arg2         [V02    ] (  1,  1   )  struct (16) [rbp-0x20]  do-not-enreg[XSFA] multireg-arg addr-exposed ld-addr-op <System.Span`1[ubyte]>
+;  V03 loc0         [V03    ] (  1,  1   )     int  ->  [rbp-0x24]  do-not-enreg[]
+;  V04 loc1         [V04    ] (  1,  1   )     int  ->  [rbp-0x28]  do-not-enreg[]
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [rbp-0x40]  do-not-enreg[SAR] multireg-arg multireg-ret must-init "Return value temp for multireg return" <System.ReadOnlySpan`1[ushort]>
-;  V07 tmp2         [V07    ] (  1,  1   )     ref  ->  [rbp-0x48]  do-not-enreg[] must-init class-hnd "impAppendStmt" <<unknown class>>
-;  V08 tmp3         [V08    ] (  1,  1   )     ref  ->  [rbp-0x50]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp4         [V09    ] (  1,  1   )    long  ->  [rbp-0x58]  do-not-enreg[] "argument with side effect"
-;  V10 tmp5         [V10    ] (  1,  1   )    long  ->  [rbp-0x60]  do-not-enreg[] "Cast away GC"
+;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [rbp-0x38]  do-not-enreg[SAR] multireg-arg multireg-ret must-init "Return value temp for multireg return" <System.ReadOnlySpan`1[ushort]>
+;  V07 tmp2         [V07    ] (  1,  1   )     ref  ->  [rbp-0x40]  do-not-enreg[] must-init class-hnd "impAppendStmt" <<unknown class>>
+;  V08 tmp3         [V08    ] (  1,  1   )     ref  ->  [rbp-0x48]  do-not-enreg[] must-init "argument with side effect"
+;  V09 tmp4         [V09    ] (  1,  1   )    long  ->  [rbp-0x50]  do-not-enreg[] "argument with side effect"
+;  V10 tmp5         [V10    ] (  1,  1   )    long  ->  [rbp-0x58]  do-not-enreg[] "Cast away GC"
 ;
-; Lcl frame size = 88
+; Lcl frame size = 96
 
 G_M1038_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       push     rbx
-       sub      rsp, 88
+       sub      rsp, 96
        lea      rbp, [rsp+0x60]
+       xor      eax, eax
+       mov      qword ptr [rbp-0x48], rax
        vxorps   xmm8, xmm8, xmm8
-       vmovdqu  ymmword ptr [rbp-0x50], ymm8
-       mov      bword ptr [rbp-0x10], rdi
-       mov      gword ptr [rbp-0x18], rsi
-       mov      bword ptr [rbp-0x28], rdx
-       mov      qword ptr [rbp-0x20], rcx
-                       ;; size=37 bbWeight=1 PerfScore 9.08
+       vmovdqa  xmmword ptr [rbp-0x40], xmm8
+       mov      qword ptr [rbp-0x30], rax
+       mov      bword ptr [rbp-0x08], rdi
+       mov      gword ptr [rbp-0x10], rsi
+       mov      bword ptr [rbp-0x20], rdx
+       mov      qword ptr [rbp-0x18], rcx
+                       ;; size=46 bbWeight=1 PerfScore 10.33
 G_M1038_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       mov      rax, bword ptr [rbp-0x10]
+       mov      rax, bword ptr [rbp-0x08]
        ; byrRegs +[rax]
        mov      byte  ptr [rax+0x08], 0
-       cmp      gword ptr [rbp-0x18], 0
+       cmp      gword ptr [rbp-0x10], 0
        jne      SHORT G_M1038_IG04
-       mov      rax, bword ptr [rbp-0x10]
+       mov      rax, bword ptr [rbp-0x08]
        xor      ecx, ecx
        mov      qword ptr [rax], rcx
                        ;; size=24 bbWeight=1 PerfScore 7.25
 G_M1038_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 88
-       pop      rbx
+       add      rsp, 96
        pop      rbp
        ret      
-                       ;; size=7 bbWeight=1 PerfScore 2.25
+                       ;; size=6 bbWeight=1 PerfScore 1.75
 G_M1038_IG04:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
        ; byrRegs -[rax]
-       mov      rax, gword ptr [rbp-0x18]
+       mov      rax, gword ptr [rbp-0x10]
        ; gcrRegs +[rax]
        mov      eax, dword ptr [rax+0x08]
        ; gcrRegs -[rax]
        mov      eax, eax
        lea      rax, [rax+2*rax]
-       mov      ecx, dword ptr [rbp-0x20]
+       mov      ecx, dword ptr [rbp-0x18]
        mov      ecx, ecx
        cmp      rax, rcx
        jl       SHORT G_M1038_IG05
        call     [<unknown method>]
        ; gcrRegs +[rax]
-       mov      gword ptr [rbp-0x50], rax
-       mov      rdi, gword ptr [rbp-0x50]
+       mov      gword ptr [rbp-0x48], rax
+       mov      rdi, gword ptr [rbp-0x48]
        ; gcrRegs +[rdi]
-       mov      rsi, gword ptr [rbp-0x18]
+       mov      rsi, gword ptr [rbp-0x10]
        ; gcrRegs +[rsi]
-       mov      rax, gword ptr [rbp-0x50]
+       mov      rax, gword ptr [rbp-0x48]
        mov      rax, qword ptr [rax]
        ; gcrRegs -[rax]
        mov      rax, qword ptr [rax+0x58]
@@ -74,55 +75,55 @@ G_M1038_IG04:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
        ; gcrRegs -[rsi rdi]
        add      eax, 1
        jo       G_M1038_IG08
-       mov      dword ptr [rbp-0x30], eax
-       mov      edi, dword ptr [rbp-0x30]
-       cmp      edi, dword ptr [rbp-0x20]
+       mov      dword ptr [rbp-0x28], eax
+       mov      edi, dword ptr [rbp-0x28]
+       cmp      edi, dword ptr [rbp-0x18]
        jle      SHORT G_M1038_IG05
-       mov      edi, dword ptr [rbp-0x30]
+       mov      edi, dword ptr [rbp-0x28]
        movsxd   rdi, edi
        call     [<unknown method>]
-       mov      qword ptr [rbp-0x58], rax
-       mov      rsi, qword ptr [rbp-0x58]
-       lea      rdi, [rbp-0x28]
-       mov      edx, dword ptr [rbp-0x30]
+       mov      qword ptr [rbp-0x50], rax
+       mov      rsi, qword ptr [rbp-0x50]
+       lea      rdi, [rbp-0x20]
+       mov      edx, dword ptr [rbp-0x28]
        call     [<unknown method>]
-       mov      rdi, bword ptr [rbp-0x10]
+       mov      rdi, bword ptr [rbp-0x08]
        ; byrRegs +[rdi]
        mov      byte  ptr [rdi+0x08], 1
                        ;; size=116 bbWeight=1 PerfScore 39.25
 G_M1038_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rdi]
-       mov      rbx, bword ptr [rbp-0x10]
-       ; byrRegs +[rbx]
-       mov      rdi, bword ptr [rbp-0x28]
+       mov      rdi, bword ptr [rbp-0x20]
        ; byrRegs +[rdi]
-       mov      rsi, qword ptr [rbp-0x20]
+       mov      rsi, qword ptr [rbp-0x18]
        call     [<unknown method>]
        ; byrRegs -[rdi] +[rax]
-       mov      qword ptr [rbp-0x60], rax
-       mov      rax, qword ptr [rbp-0x60]
+       mov      qword ptr [rbp-0x58], rax
+       mov      rax, qword ptr [rbp-0x58]
        ; byrRegs -[rax]
-       mov      qword ptr [rbx], rax
+       mov      rcx, bword ptr [rbp-0x08]
+       ; byrRegs +[rcx]
+       mov      qword ptr [rcx], rax
        call     [<unknown method>]
        ; gcrRegs +[rax]
-       ; byrRegs -[rbx]
-       mov      gword ptr [rbp-0x48], rax
-       mov      rdi, gword ptr [rbp-0x18]
+       ; byrRegs -[rcx]
+       mov      gword ptr [rbp-0x40], rax
+       mov      rdi, gword ptr [rbp-0x10]
        ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rax rdi]
        ; byrRegs +[rax]
-       mov      bword ptr [rbp-0x40], rax
-       mov      qword ptr [rbp-0x38], rdx
-       mov      rcx, bword ptr [rbp-0x28]
+       mov      bword ptr [rbp-0x38], rax
+       mov      qword ptr [rbp-0x30], rdx
+       mov      rcx, bword ptr [rbp-0x20]
        ; byrRegs +[rcx]
-       mov      r8, qword ptr [rbp-0x20]
-       mov      rsi, bword ptr [rbp-0x40]
+       mov      r8, qword ptr [rbp-0x18]
+       mov      rsi, bword ptr [rbp-0x38]
        ; byrRegs +[rsi]
-       mov      rdx, qword ptr [rbp-0x38]
-       mov      rdi, gword ptr [rbp-0x48]
+       mov      rdx, qword ptr [rbp-0x30]
+       mov      rdi, gword ptr [rbp-0x40]
        ; gcrRegs +[rdi]
-       mov      rax, gword ptr [rbp-0x48]
+       mov      rax, gword ptr [rbp-0x40]
        ; gcrRegs +[rax]
        ; byrRegs -[rax]
        mov      rax, qword ptr [rax]
@@ -131,22 +132,21 @@ G_M1038_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        call     [rax+0x28]<unknown method>
        ; gcrRegs -[rdi]
        ; byrRegs -[rcx rsi]
-       mov      dword ptr [rbp-0x2C], eax
-       mov      eax, dword ptr [rbp-0x20]
-       cmp      dword ptr [rbp-0x2C], eax
+       mov      dword ptr [rbp-0x24], eax
+       mov      eax, dword ptr [rbp-0x18]
+       cmp      dword ptr [rbp-0x24], eax
        jae      SHORT G_M1038_IG07
-       mov      rax, bword ptr [rbp-0x28]
+       mov      rax, bword ptr [rbp-0x20]
        ; byrRegs +[rax]
-       mov      ecx, dword ptr [rbp-0x2C]
+       mov      ecx, dword ptr [rbp-0x24]
        mov      ecx, ecx
        mov      byte  ptr [rax+rcx], 0
                        ;; size=115 bbWeight=1 PerfScore 40.25
 G_M1038_IG06:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 88
-       pop      rbx
+       add      rsp, 96
        pop      rbp
        ret      
-                       ;; size=7 bbWeight=1 PerfScore 2.25
+                       ;; size=6 bbWeight=1 PerfScore 1.75
 G_M1038_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; byrRegs -[rax]
        call     CORINFO_HELP_RNGCHKFAIL
@@ -156,7 +156,7 @@ G_M1038_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 317, prolog size 21, PerfScore 100.33, instruction count 90, allocated bytes for code 317 (MethodHash=85e8fbf1) for method System.Runtime.InteropServices.Marshalling.Utf8StringMarshaller+ManagedToUnmanagedIn:FromManaged(System.String,System.Span`1[ubyte]):this (Tier0)
+; Total bytes of code 324, prolog size 30, PerfScore 100.58, instruction count 90, allocated bytes for code 324 (MethodHash=85e8fbf1) for method System.Runtime.InteropServices.Marshalling.Utf8StringMarshaller+ManagedToUnmanagedIn:FromManaged(System.String,System.Span`1[ubyte]):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -164,11 +164,10 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x06
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x05
+  CountOfUnwindCodes: 2
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 10 * 8 + 8 = 88 = 0x58
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 11 * 8 + 8 = 96 = 0x60
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+13 (+2.49%) : 90805.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetParameters(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol

@@ -5,62 +5,63 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00    ] (  1,  1   )     ref  ->  [rbp-0x10]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbol>
-;  V01 loc0         [V01    ] (  1,  1   )     int  ->  [rbp-0x14]  do-not-enreg[] must-init
+;  V00 arg0         [V00    ] (  1,  1   )     ref  ->  [rbp-0x08]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbol>
+;  V01 loc0         [V01    ] (  1,  1   )     int  ->  [rbp-0x0C]  do-not-enreg[] must-init
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init "Reusable Box Helper"
-;  V04 tmp2         [V04    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init "handle histogram profile tmp"
-;  V05 tmp3         [V05    ] (  1,  1   )     ref  ->  [rbp-0x30]  do-not-enreg[] must-init "handle histogram profile tmp"
-;  V06 tmp4         [V06    ] (  1,  1   )     ref  ->  [rbp-0x38]  do-not-enreg[] must-init "handle histogram profile tmp"
-;  V07 tmp5         [V07    ] (  1,  1   )     ref  ->  [rbp-0x40]  do-not-enreg[] must-init "handle histogram profile tmp"
-;  V08 tmp6         [V08    ] (  1,  1   )     ref  ->  [rbp-0x48]  do-not-enreg[] must-init "handle histogram profile tmp"
-;  V09 tmp7         [V09    ] (  1,  1   )     ref  ->  [rbp-0x50]  do-not-enreg[] must-init "handle histogram profile tmp"
-;  V10 tmp8         [V10    ] (  1,  1   )     ref  ->  [rbp-0x58]  do-not-enreg[] must-init "argument with side effect"
-;  V11 tmp9         [V11    ] (  1,  1   )     ref  ->  [rbp-0x60]  do-not-enreg[] must-init "argument with side effect"
-;  V12 tmp10        [V12    ] (  1,  1   )     ref  ->  [rbp-0x68]  do-not-enreg[] must-init "argument with side effect"
-;  V13 tmp11        [V13    ] (  1,  1   )     ref  ->  [rbp-0x70]  do-not-enreg[] must-init "argument with side effect"
-;  V14 tmp12        [V14    ] (  1,  1   )     ref  ->  [rbp-0x78]  do-not-enreg[] must-init "argument with side effect"
-;  V15 tmp13        [V15    ] (  1,  1   )     ref  ->  [rbp-0x80]  do-not-enreg[] must-init "argument with side effect"
+;  V03 tmp1         [V03    ] (  1,  1   )     ref  ->  [rbp-0x18]  do-not-enreg[] must-init "Reusable Box Helper"
+;  V04 tmp2         [V04    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init "handle histogram profile tmp"
+;  V05 tmp3         [V05    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init "handle histogram profile tmp"
+;  V06 tmp4         [V06    ] (  1,  1   )     ref  ->  [rbp-0x30]  do-not-enreg[] must-init "handle histogram profile tmp"
+;  V07 tmp5         [V07    ] (  1,  1   )     ref  ->  [rbp-0x38]  do-not-enreg[] must-init "handle histogram profile tmp"
+;  V08 tmp6         [V08    ] (  1,  1   )     ref  ->  [rbp-0x40]  do-not-enreg[] must-init "handle histogram profile tmp"
+;  V09 tmp7         [V09    ] (  1,  1   )     ref  ->  [rbp-0x48]  do-not-enreg[] must-init "handle histogram profile tmp"
+;  V10 tmp8         [V10    ] (  1,  1   )     ref  ->  [rbp-0x50]  do-not-enreg[] must-init "argument with side effect"
+;  V11 tmp9         [V11    ] (  1,  1   )     ref  ->  [rbp-0x58]  do-not-enreg[] must-init "argument with side effect"
+;  V12 tmp10        [V12    ] (  1,  1   )     ref  ->  [rbp-0x60]  do-not-enreg[] must-init "argument with side effect"
+;  V13 tmp11        [V13    ] (  1,  1   )     ref  ->  [rbp-0x68]  do-not-enreg[] must-init "argument with side effect"
+;  V14 tmp12        [V14    ] (  1,  1   )     ref  ->  [rbp-0x70]  do-not-enreg[] must-init "argument with side effect"
+;  V15 tmp13        [V15    ] (  1,  1   )     ref  ->  [rbp-0x78]  do-not-enreg[] must-init "argument with side effect"
 ;
-; Lcl frame size = 120
+; Lcl frame size = 128
 
 G_M55244_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       push     rbx
-       sub      rsp, 120
+       sub      rsp, 128
        lea      rbp, [rsp+0x80]
+       xor      eax, eax
+       mov      qword ptr [rbp-0x78], rax
        vxorps   xmm8, xmm8, xmm8
-       vmovdqu  ymmword ptr [rbp-0x80], ymm8
-       vmovdqu  ymmword ptr [rbp-0x60], ymm8
-       vmovdqu  ymmword ptr [rbp-0x40], ymm8
-       vmovdqa  xmmword ptr [rbp-0x20], xmm8
-       mov      gword ptr [rbp-0x10], rdi
-                       ;; size=43 bbWeight=1 PerfScore 12.08
+       vmovdqu  ymmword ptr [rbp-0x70], ymm8
+       vmovdqu  ymmword ptr [rbp-0x50], ymm8
+       vmovdqu  ymmword ptr [rbp-0x30], ymm8
+       mov      qword ptr [rbp-0x10], rax
+       mov      gword ptr [rbp-0x08], rdi
+                       ;; size=50 bbWeight=1 PerfScore 11.33
 G_M55244_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       mov      rdi, gword ptr [rbp-0x10]
+       mov      rdi, gword ptr [rbp-0x08]
        ; gcrRegs +[rdi]
-       mov      gword ptr [rbp-0x28], rdi
-       mov      rdi, gword ptr [rbp-0x28]
+       mov      gword ptr [rbp-0x20], rdi
+       mov      rdi, gword ptr [rbp-0x20]
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rdi]
-       mov      rdi, gword ptr [rbp-0x28]
+       mov      rdi, gword ptr [rbp-0x20]
        ; gcrRegs +[rdi]
-       mov      gword ptr [rbp-0x58], rdi
-       mov      rdi, gword ptr [rbp-0x58]
-       mov      rax, gword ptr [rbp-0x58]
+       mov      gword ptr [rbp-0x50], rdi
+       mov      rdi, gword ptr [rbp-0x50]
+       mov      rax, gword ptr [rbp-0x50]
        ; gcrRegs +[rax]
        mov      rax, qword ptr [rax]
        ; gcrRegs -[rax]
        mov      rax, qword ptr [rax+0x58]
        call     [rax]<unknown method>
        ; gcrRegs -[rdi]
-       mov      dword ptr [rbp-0x14], eax
-       cmp      dword ptr [rbp-0x14], 5
+       mov      dword ptr [rbp-0x0C], eax
+       cmp      dword ptr [rbp-0x0C], 5
        je       G_M55244_IG08
-       cmp      dword ptr [rbp-0x14], 9
+       cmp      dword ptr [rbp-0x0C], 9
        je       SHORT G_M55244_IG04
-       cmp      dword ptr [rbp-0x14], 15
+       cmp      dword ptr [rbp-0x0C], 15
        je       G_M55244_IG06
                        ;; size=81 bbWeight=1 PerfScore 25.25
 G_M55244_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -69,31 +70,31 @@ G_M55244_IG03:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
 G_M55244_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
-       mov      rdi, gword ptr [rbp-0x10]
+       mov      rdi, gword ptr [rbp-0x08]
        ; gcrRegs +[rdi]
-       mov      gword ptr [rbp-0x38], rdi
-       mov      rdi, gword ptr [rbp-0x38]
+       mov      gword ptr [rbp-0x30], rdi
+       mov      rdi, gword ptr [rbp-0x30]
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rdi]
-       mov      rsi, gword ptr [rbp-0x38]
+       mov      rsi, gword ptr [rbp-0x30]
        ; gcrRegs +[rsi]
-       mov      gword ptr [rbp-0x60], rsi
-       mov      rsi, gword ptr [rbp-0x60]
+       mov      gword ptr [rbp-0x58], rsi
+       mov      rsi, gword ptr [rbp-0x58]
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_CHKCASTCLASS
        ; gcrRegs -[rsi] +[rax]
-       mov      gword ptr [rbp-0x30], rax
-       mov      rdi, gword ptr [rbp-0x30]
+       mov      gword ptr [rbp-0x28], rax
+       mov      rdi, gword ptr [rbp-0x28]
        ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rax rdi]
-       mov      rdi, gword ptr [rbp-0x30]
+       mov      rdi, gword ptr [rbp-0x28]
        ; gcrRegs +[rdi]
-       mov      gword ptr [rbp-0x68], rdi
-       mov      rdi, gword ptr [rbp-0x68]
-       mov      rax, gword ptr [rbp-0x68]
+       mov      gword ptr [rbp-0x60], rdi
+       mov      rdi, gword ptr [rbp-0x60]
+       mov      rax, gword ptr [rbp-0x60]
        ; gcrRegs +[rax]
        mov      rax, qword ptr [rax]
        ; gcrRegs -[rax]
@@ -103,40 +104,39 @@ G_M55244_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=122 bbWeight=1 PerfScore 24.25
 G_M55244_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 120
-       pop      rbx
+       add      rsp, 128
        pop      rbp
        ret      
-                       ;; size=7 bbWeight=1 PerfScore 2.25
+                       ;; size=9 bbWeight=1 PerfScore 1.75
 G_M55244_IG06:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax]
        mov      rdi, 0xD1FFAB1E
        call     CORINFO_HELP_COUNTPROFILE32
-       mov      rdi, gword ptr [rbp-0x10]
+       mov      rdi, gword ptr [rbp-0x08]
        ; gcrRegs +[rdi]
-       mov      gword ptr [rbp-0x48], rdi
-       mov      rdi, gword ptr [rbp-0x48]
+       mov      gword ptr [rbp-0x40], rdi
+       mov      rdi, gword ptr [rbp-0x40]
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rdi]
-       mov      rsi, gword ptr [rbp-0x48]
+       mov      rsi, gword ptr [rbp-0x40]
        ; gcrRegs +[rsi]
-       mov      gword ptr [rbp-0x70], rsi
-       mov      rsi, gword ptr [rbp-0x70]
+       mov      gword ptr [rbp-0x68], rsi
+       mov      rsi, gword ptr [rbp-0x68]
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_CHKCASTCLASS
        ; gcrRegs -[rsi] +[rax]
-       mov      gword ptr [rbp-0x40], rax
-       mov      rdi, gword ptr [rbp-0x40]
+       mov      gword ptr [rbp-0x38], rax
+       mov      rdi, gword ptr [rbp-0x38]
        ; gcrRegs +[rdi]
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rax rdi]
-       mov      rdi, gword ptr [rbp-0x40]
+       mov      rdi, gword ptr [rbp-0x38]
        ; gcrRegs +[rdi]
-       mov      gword ptr [rbp-0x78], rdi
-       mov      rdi, gword ptr [rbp-0x78]
-       mov      rax, gword ptr [rbp-0x78]
+       mov      gword ptr [rbp-0x70], rdi
+       mov      rdi, gword ptr [rbp-0x70]
+       mov      rax, gword ptr [rbp-0x70]
        ; gcrRegs +[rax]
        mov      rax, qword ptr [rax]
        ; gcrRegs -[rax]
@@ -146,11 +146,10 @@ G_M55244_IG06:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        nop      
                        ;; size=121 bbWeight=1 PerfScore 24.25
 G_M55244_IG07:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 120
-       pop      rbx
+       add      rsp, 128
        pop      rbp
        ret      
-                       ;; size=7 bbWeight=1 PerfScore 2.25
+                       ;; size=9 bbWeight=1 PerfScore 1.75
 G_M55244_IG08:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax]
        mov      rdi, 0xD1FFAB1E
@@ -161,42 +160,40 @@ G_M55244_IG08:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        mov      rax, gword ptr [rax+0x08]
                        ;; size=32 bbWeight=1 PerfScore 5.50
 G_M55244_IG09:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 120
-       pop      rbx
+       add      rsp, 128
        pop      rbp
        ret      
-                       ;; size=7 bbWeight=1 PerfScore 2.25
+                       ;; size=9 bbWeight=1 PerfScore 1.75
 G_M55244_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax]
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
-       mov      gword ptr [rbp-0x20], rax
-       mov      rbx, gword ptr [rbp-0x20]
-       ; gcrRegs +[rbx]
-       mov      rdi, gword ptr [rbp-0x10]
+       mov      gword ptr [rbp-0x18], rax
+       mov      rdi, gword ptr [rbp-0x08]
        ; gcrRegs +[rdi]
-       mov      gword ptr [rbp-0x50], rdi
-       mov      rdi, gword ptr [rbp-0x50]
+       mov      gword ptr [rbp-0x48], rdi
+       mov      rdi, gword ptr [rbp-0x48]
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rax rdi]
-       mov      rdi, gword ptr [rbp-0x50]
+       mov      rdi, gword ptr [rbp-0x48]
        ; gcrRegs +[rdi]
-       mov      gword ptr [rbp-0x80], rdi
-       mov      rdi, gword ptr [rbp-0x80]
-       mov      rax, gword ptr [rbp-0x80]
+       mov      gword ptr [rbp-0x78], rdi
+       mov      rdi, gword ptr [rbp-0x78]
...

+8 (+4.28%) : 82807.dasm - System.Reflection.PortableExecutable.PEBinaryReader:.ctor(System.IO.Stream,int):this (Instrumented Tier0)

@@ -5,77 +5,77 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )   byref  ->  [rbp-0x10]  do-not-enreg[] this
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [rbp-0x18]  do-not-enreg[] class-hnd <System.IO.Stream>
-;  V02 arg2         [V02    ] (  1,  1   )     int  ->  [rbp-0x1C]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )   byref  ->  [rbp-0x08]  do-not-enreg[] this
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [rbp-0x10]  do-not-enreg[] class-hnd <System.IO.Stream>
+;  V02 arg2         [V02    ] (  1,  1   )     int  ->  [rbp-0x14]  do-not-enreg[]
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init class-hnd exact "NewObj constructor temp" <<unknown class>>
-;  V05 tmp2         [V05    ] (  1,  1   )     ref  ->  [rbp-0x30]  do-not-enreg[] must-init "handle histogram profile tmp"
-;  V06 tmp3         [V06    ] (  1,  1   )     ref  ->  [rbp-0x38]  do-not-enreg[] must-init "argument with side effect"
-;  V07 tmp4         [V07    ] (  1,  1   )     ref  ->  [rbp-0x40]  do-not-enreg[] must-init "argument with side effect"
+;  V04 tmp1         [V04    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init class-hnd exact "NewObj constructor temp" <<unknown class>>
+;  V05 tmp2         [V05    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init "handle histogram profile tmp"
+;  V06 tmp3         [V06    ] (  1,  1   )     ref  ->  [rbp-0x30]  do-not-enreg[] must-init "argument with side effect"
+;  V07 tmp4         [V07    ] (  1,  1   )     ref  ->  [rbp-0x38]  do-not-enreg[] must-init "argument with side effect"
 ;
-; Lcl frame size = 56
+; Lcl frame size = 64
 
 G_M36073_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       push     rbx
-       sub      rsp, 56
+       sub      rsp, 64
        lea      rbp, [rsp+0x40]
+       xor      eax, eax
+       mov      qword ptr [rbp-0x38], rax
        vxorps   xmm8, xmm8, xmm8
-       vmovdqu  ymmword ptr [rbp-0x40], ymm8
-       mov      bword ptr [rbp-0x10], rdi
-       mov      gword ptr [rbp-0x18], rsi
-       mov      dword ptr [rbp-0x1C], edx
-                       ;; size=32 bbWeight=1 PerfScore 8.08
+       vmovdqa  xmmword ptr [rbp-0x30], xmm8
+       mov      qword ptr [rbp-0x20], rax
+       mov      bword ptr [rbp-0x08], rdi
+       mov      gword ptr [rbp-0x10], rsi
+       mov      dword ptr [rbp-0x14], edx
+                       ;; size=41 bbWeight=1 PerfScore 9.33
 G_M36073_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      rbx, bword ptr [rbp-0x10]
-       ; byrRegs +[rbx]
-       mov      rdi, gword ptr [rbp-0x18]
+       mov      rdi, gword ptr [rbp-0x10]
        ; gcrRegs +[rdi]
-       mov      gword ptr [rbp-0x30], rdi
-       mov      rdi, gword ptr [rbp-0x30]
+       mov      gword ptr [rbp-0x28], rdi
+       mov      rdi, gword ptr [rbp-0x28]
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rdi]
-       mov      rdi, gword ptr [rbp-0x30]
+       mov      rdi, gword ptr [rbp-0x28]
        ; gcrRegs +[rdi]
-       mov      gword ptr [rbp-0x38], rdi
-       mov      rdi, gword ptr [rbp-0x38]
-       mov      rax, gword ptr [rbp-0x38]
+       mov      gword ptr [rbp-0x30], rdi
+       mov      rdi, gword ptr [rbp-0x30]
+       mov      rax, gword ptr [rbp-0x30]
        ; gcrRegs +[rax]
        mov      rax, qword ptr [rax]
        ; gcrRegs -[rax]
        mov      rax, qword ptr [rax+0x50]
        call     [rax+0x10]<unknown method>
        ; gcrRegs -[rdi]
-       mov      qword ptr [rbx+0x08], rax
-       mov      rdi, bword ptr [rbp-0x10]
+       mov      rdi, bword ptr [rbp-0x08]
        ; byrRegs +[rdi]
-       mov      eax, dword ptr [rbp-0x1C]
+       mov      qword ptr [rdi+0x08], rax
+       mov      rdi, bword ptr [rbp-0x08]
+       mov      eax, dword ptr [rbp-0x14]
        cdqe     
        add      rax, qword ptr [rdi+0x08]
-       mov      rdi, bword ptr [rbp-0x10]
+       mov      rdi, bword ptr [rbp-0x08]
        mov      qword ptr [rdi+0x10], rax
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
        ; byrRegs -[rdi]
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
-       ; byrRegs -[rbx]
-       mov      gword ptr [rbp-0x28], rax
+       mov      gword ptr [rbp-0x20], rax
        call     [<unknown method>]
-       mov      gword ptr [rbp-0x40], rax
-       mov      rdx, gword ptr [rbp-0x40]
+       mov      gword ptr [rbp-0x38], rax
+       mov      rdx, gword ptr [rbp-0x38]
        ; gcrRegs +[rdx]
-       mov      rsi, gword ptr [rbp-0x18]
+       mov      rsi, gword ptr [rbp-0x10]
        ; gcrRegs +[rsi]
-       mov      rdi, gword ptr [rbp-0x28]
+       mov      rdi, gword ptr [rbp-0x20]
        ; gcrRegs +[rdi]
        mov      ecx, 1
        call     [<unknown method>]
        ; gcrRegs -[rax rdx rsi rdi]
-       mov      rdi, bword ptr [rbp-0x10]
+       mov      rdi, bword ptr [rbp-0x08]
        ; byrRegs +[rdi]
-       mov      rsi, gword ptr [rbp-0x28]
+       mov      rsi, gword ptr [rbp-0x20]
        ; gcrRegs +[rsi]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        ; gcrRegs -[rsi]
@@ -83,13 +83,12 @@ G_M36073_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=148 bbWeight=1 PerfScore 40.25
 G_M36073_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 56
-       pop      rbx
+       add      rsp, 64
        pop      rbp
        ret      
-                       ;; size=7 bbWeight=1 PerfScore 2.25
+                       ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 187, prolog size 21, PerfScore 50.58, instruction count 47, allocated bytes for code 187 (MethodHash=3c457316) for method System.Reflection.PortableExecutable.PEBinaryReader:.ctor(System.IO.Stream,int):this (Instrumented Tier0)
+; Total bytes of code 195, prolog size 30, PerfScore 51.33, instruction count 48, allocated bytes for code 195 (MethodHash=3c457316) for method System.Reflection.PortableExecutable.PEBinaryReader:.ctor(System.IO.Stream,int):this (Instrumented Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -97,11 +96,10 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x06
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x05
+  CountOfUnwindCodes: 2
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 6 * 8 + 8 = 56 = 0x38
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

benchmarks.run_tiered.linux.x64.checked.mch

-31 (-27.93%) : 6706.dasm - System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Tier0)

@@ -12,33 +12,19 @@
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05    ] (  1,  1   )    long  ->  [rbp-0x20]  do-not-enreg[] "Cast away GC"
 ;  V06 tmp2         [V06    ] (  1,  1   )    long  ->  [rbp-0x28]  do-not-enreg[] "argument with side effect"
-;  V07 tmp3         [V07    ] (  1,  1   )     ref  ->  [rbp-0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V08 tmp4         [V08    ] (  1,  1   )     int  ->  [rbp-0x34]  do-not-enreg[] "argument with side effect"
-;  V09 tmp5         [V09    ] (  1,  1   )     int  ->  [rbp-0x38]  do-not-enreg[] "argument with side effect"
 ;
-; Lcl frame size = 64
+; Lcl frame size = 48
 
 G_M56677_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 64
-       lea      rbp, [rsp+0x40]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x30], rax
+       sub      rsp, 48
+       lea      rbp, [rsp+0x30]
        mov      gword ptr [rbp-0x08], rdi
        mov      dword ptr [rbp-0x0C], esi
        mov      dword ptr [rbp-0x10], edx
        mov      bword ptr [rbp-0x18], rcx
-                       ;; size=30 bbWeight=1 PerfScore 7.00
+                       ;; size=24 bbWeight=1 PerfScore 5.75
 G_M56677_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      r8, gword ptr [rbp-0x08]
-       ; gcrRegs +[r8]
-       mov      gword ptr [rbp-0x30], r8
-       mov      r8d, dword ptr [rbp-0x0C]
-       ; gcrRegs -[r8]
-       movzx    r8, r8w
-       mov      dword ptr [rbp-0x34], r8d
-       mov      r8d, dword ptr [rbp-0x10]
-       mov      dword ptr [rbp-0x38], r8d
        mov      r8, bword ptr [rbp-0x18]
        ; byrRegs +[r8]
        mov      qword ptr [rbp-0x20], r8
@@ -46,22 +32,23 @@ G_M56677_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs -[r8]
        mov      qword ptr [rbp-0x28], r8
        mov      r8, qword ptr [rbp-0x28]
-       mov      rsi, gword ptr [rbp-0x30]
+       mov      edx, dword ptr [rbp-0x0C]
+       movzx    rdx, dx
+       mov      rsi, gword ptr [rbp-0x08]
        ; gcrRegs +[rsi]
-       mov      edx, dword ptr [rbp-0x34]
-       mov      ecx, dword ptr [rbp-0x38]
+       mov      ecx, dword ptr [rbp-0x10]
        mov      rdi, 0xD1FFAB1E      ; code for <unknown method>
        call     [<unknown method>]
        ; gcrRegs -[rsi]
        nop      
-                       ;; size=75 bbWeight=1 PerfScore 17.75
+                       ;; size=50 bbWeight=1 PerfScore 11.75
 G_M56677_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 64
+       add      rsp, 48
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 111, prolog size 16, PerfScore 26.50, instruction count 30, allocated bytes for code 111 (MethodHash=eeac229a) for method System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Tier0)
+; Total bytes of code 80, prolog size 10, PerfScore 19.25, instruction count 22, allocated bytes for code 80 (MethodHash=eeac229a) for method System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -74,5 +61,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

-25 (-19.38%) : 32685.dasm - System.Formats.Asn1.AsnDecoder:ReadIntegerBytes(System.ReadOnlySpan1[ubyte],int,byref,System.Nullable1[System.Formats.Asn1.Asn1Tag]):System.ReadOnlySpan`1ubyte

@@ -9,9 +9,9 @@
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
-;  V01 arg1         [V01,T04] (  3,  3   )     int  ->  rdx         single-def
-;  V02 arg2         [V02,T03] (  3,  3   )   byref  ->   r9         single-def
-;  V03 arg3         [V03,T01] (  5,  5   )  struct (16) [rbp-0x10]  do-not-enreg[SA] multireg-arg single-def <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
+;  V01 arg1         [V01,T03] (  3,  3   )     int  ->  rdx         single-def
+;  V02 arg2         [V02,T02] (  3,  3   )   byref  ->   r9         single-def
+;  V03 arg3         [V03,T00] (  5,  5   )  struct (16) [rbp-0x10]  do-not-enreg[SA] multireg-arg single-def <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
 ;* V04 loc0         [V04    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct (16) zero-ref    <System.ReadOnlySpan`1[ubyte]>
@@ -20,40 +20,36 @@
 ;* V09 tmp4         [V09    ] (  0,  0   )     int  ->  zero-ref   
 ;* V10 tmp5         [V10    ] (  0,  0   )  struct ( 8) zero-ref    <System.Formats.Asn1.Asn1Tag>
 ;* V11 tmp6         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-ret "Return value temp for multireg return" <System.ReadOnlySpan`1[ubyte]>
-;  V12 tmp7         [V12,T05] (  2,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V13 tmp8         [V13,T06] (  2,  2   )     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V12 tmp7         [V12,T04] (  2,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V13 tmp8         [V13,T05] (  2,  2   )     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
 ;* V14 tmp9         [V14    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V15 tmp10        [V15    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
 ;* V16 tmp11        [V16    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V17 tmp12        [V17    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
-;  V18 tmp13        [V18,T09] (  3,  2   )   ubyte  ->  rcx         "field V10._controlFlags (fldOffset=0x0)" P-INDEP
-;  V19 tmp14        [V19,T10] (  3,  2   )     int  ->  r10         "field V10.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
-;  V20 tmp15        [V20,T11] (  2,  2   )   byref  ->  rax         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
-;  V21 tmp16        [V21,T12] (  2,  2   )     int  ->  rdx         "field V11._length (fldOffset=0x8)" P-INDEP
-;  V22 tmp17        [V22,T13] (  2,  2   )   ubyte  ->  rcx         "V04.[000..001)"
-;  V23 tmp18        [V23,T14] (  2,  1.50)   ubyte  ->   r8         "V04.[004..005)"
-;  V24 tmp19        [V24,T15] (  2,  1.50)     int  ->  rax         "V04.[008..012)"
-;  V25 tmp20        [V25,T08] (  3,  3   )  struct (16) [rbp-0x20]  do-not-enreg[SFR] multireg-ret must-init "Return value temp for multi-reg return (rejected tail call)." <System.ReadOnlySpan`1[ubyte]>
-;  V26 tmp21        [V26,T02] (  3,  6   )  struct ( 8) [rbp-0x28]  do-not-enreg[SF] "by-value struct argument" <System.Formats.Asn1.Asn1Tag>
-;  V27 tmp22        [V27,T00] (  4,  8   )  struct (16) [rbp-0x38]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.ReadOnlySpan`1[ubyte]>
-;  V28 tmp23        [V28,T07] (  2,  4   )     int  ->  rdx         "argument with side effect"
-;* V29 cse0         [V29,T16] (  0,  0   )    long  ->  zero-ref    "CSE - moderate"
+;  V18 tmp13        [V18,T07] (  3,  2   )   ubyte  ->  rcx         "field V10._controlFlags (fldOffset=0x0)" P-INDEP
+;  V19 tmp14        [V19,T08] (  3,  2   )     int  ->  r10         "field V10.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
+;  V20 tmp15        [V20,T09] (  2,  2   )   byref  ->  rax         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
+;  V21 tmp16        [V21,T10] (  2,  2   )     int  ->  rdx         "field V11._length (fldOffset=0x8)" P-INDEP
+;  V22 tmp17        [V22,T11] (  2,  2   )   ubyte  ->  rcx         "V04.[000..001)"
+;  V23 tmp18        [V23,T12] (  2,  1.50)   ubyte  ->   r8         "V04.[004..005)"
+;  V24 tmp19        [V24,T13] (  2,  1.50)     int  ->  rax         "V04.[008..012)"
+;  V25 tmp20        [V25,T06] (  3,  3   )  struct (16) [rbp-0x20]  do-not-enreg[SFR] multireg-ret must-init "Return value temp for multi-reg return (rejected tail call)." <System.ReadOnlySpan`1[ubyte]>
+;  V26 tmp21        [V26,T01] (  3,  6   )  struct ( 8) [rbp-0x28]  do-not-enreg[SF] "by-value struct argument" <System.Formats.Asn1.Asn1Tag>
+;* V27 cse0         [V27,T14] (  0,  0   )    long  ->  zero-ref    "CSE - moderate"
 ;
-; Lcl frame size = 64
+; Lcl frame size = 48
 
 G_M37843_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 64
-       lea      rbp, [rsp+0x40]
+       sub      rsp, 48
+       lea      rbp, [rsp+0x30]
        xor      eax, eax
-       mov      qword ptr [rbp-0x38], rax
-       vxorps   xmm8, xmm8, xmm8
-       vmovdqu  ymmword ptr [rbp-0x30], ymm8
+       mov      qword ptr [rbp-0x20], rax
        mov      qword ptr [rbp-0x10], r8
        mov      dword ptr [rbp-0x08], r9d
        mov      r9, rcx
        ; byrRegs +[r9]
-                       ;; size=37 bbWeight=1 PerfScore 7.58
+                       ;; size=27 bbWeight=1 PerfScore 5.25
 G_M37843_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0280 {rdi r9}, byref, isz
        ; byrRegs +[rdi]
        movzx    rcx, byte  ptr [rbp-0x10]
@@ -72,12 +68,8 @@ G_M37843_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0280 {rdi r9
        mov      r10d, eax
                        ;; size=7 bbWeight=0.50 PerfScore 0.25
 G_M37843_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0280 {rdi r9}, byref
-       mov      bword ptr [rbp-0x38], rdi
-       mov      dword ptr [rbp-0x30], esi
        mov      byte  ptr [rbp-0x28], cl
        mov      dword ptr [rbp-0x24], r10d
-       mov      rdi, bword ptr [rbp-0x38]
-       mov      rsi, qword ptr [rbp-0x30]
        mov      rcx, qword ptr [rbp-0x28]
        mov      r8d, 2
        call     [System.Formats.Asn1.AsnDecoder:GetIntegerContents(System.ReadOnlySpan`1[ubyte],int,System.Formats.Asn1.Asn1Tag,int,byref):System.ReadOnlySpan`1[ubyte]]
@@ -86,14 +78,14 @@ G_M37843_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0280 {rdi r9},
        mov      qword ptr [rbp-0x18], rdx
        mov      rax, bword ptr [rbp-0x20]
        mov      edx, dword ptr [rbp-0x18]
-                       ;; size=53 bbWeight=1 PerfScore 14.25
+                       ;; size=38 bbWeight=1 PerfScore 10.25
 G_M37843_IG06:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 64
+       add      rsp, 48
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 129, prolog size 26, PerfScore 29.33, instruction count 36, allocated bytes for code 129 (MethodHash=cd5d6c2c) for method System.Formats.Asn1.AsnDecoder:ReadIntegerBytes(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.ReadOnlySpan`1[ubyte] (Tier1)
+; Total bytes of code 104, prolog size 16, PerfScore 23.00, instruction count 30, allocated bytes for code 104 (MethodHash=cd5d6c2c) for method System.Formats.Asn1.AsnDecoder:ReadIntegerBytes(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.ReadOnlySpan`1[ubyte] (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -106,5 +98,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

-14 (-17.95%) : 27873.dasm - System.Numerics.Tests.Perf_Matrix4x4:CreateTranslationFromVectorBenchmark():System.Numerics.Matrix4x4:this (Tier0)

@@ -9,43 +9,38 @@
 ;  V01 RetBuf       [V01    ] (  1,  1   )   byref  ->  [rbp-0x10]  do-not-enreg[]
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03    ] (  1,  1   )  simd12  ->  [rbp-0x20]  do-not-enreg[SFA] multireg-arg "by-value struct argument" <System.Numerics.Vector3>
-;  V04 tmp2         [V04    ] (  1,  1   )   byref  ->  [rbp-0x28]  do-not-enreg[] must-init "argument with side effect"
 ;
-; Lcl frame size = 48
+; Lcl frame size = 32
 
 G_M53925_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 48
+       sub      rsp, 32
        vzeroupper 
-       lea      rbp, [rsp+0x30]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x28], rax
+       lea      rbp, [rsp+0x20]
        mov      gword ptr [rbp-0x08], rdi
        mov      bword ptr [rbp-0x10], rsi
-                       ;; size=27 bbWeight=1 PerfScore 6.00
+                       ;; size=21 bbWeight=1 PerfScore 4.75
 G_M53925_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      rdi, bword ptr [rbp-0x10]
-       ; byrRegs +[rdi]
-       mov      bword ptr [rbp-0x28], rdi
        vmovups  xmm0, xmmword ptr [reloc @RWD00]
        vmovaps  xmmword ptr [rbp-0x20], xmm0
-       mov      rdi, bword ptr [rbp-0x28]
        vmovsd   xmm0, qword ptr [rbp-0x20]
        vmovss   xmm1, dword ptr [rbp-0x18]
+       mov      rdi, bword ptr [rbp-0x10]
+       ; byrRegs +[rdi]
        call     [<unknown method>]
        ; byrRegs -[rdi]
        mov      rax, bword ptr [rbp-0x10]
        ; byrRegs +[rax]
-                       ;; size=45 bbWeight=1 PerfScore 17.00
+                       ;; size=37 bbWeight=1 PerfScore 15.00
 G_M53925_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 48
+       add      rsp, 32
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 RWD00      dq  000000003F800000h, 0000000000000000h
 
 
-; Total bytes of code 78, prolog size 19, PerfScore 24.75, instruction count 20, allocated bytes for code 78 (MethodHash=3ace2d5a) for method System.Numerics.Tests.Perf_Matrix4x4:CreateTranslationFromVectorBenchmark():System.Numerics.Matrix4x4:this (Tier0)
+; Total bytes of code 64, prolog size 13, PerfScore 21.50, instruction count 16, allocated bytes for code 64 (MethodHash=3ace2d5a) for method System.Numerics.Tests.Perf_Matrix4x4:CreateTranslationFromVectorBenchmark():System.Numerics.Matrix4x4:this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -58,5 +53,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+4 (+1.14%) : 32383.dasm - System.Formats.Asn1.AsnWriter:WriteObjectIdentifier(System.ReadOnlySpan1[ushort],System.Nullable1[System.Formats.Asn1.Asn1Tag]):this (Tier1)

@@ -22,7 +22,7 @@
 ;* V11 tmp6         [V11    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V12 tmp7         [V12    ] (  0,  0   )  struct ( 8) zero-ref    <System.Formats.Asn1.Asn1Tag>
 ;* V13 tmp8         [V13    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
-;  V14 tmp9         [V14,T12] (  2,  2   )     int  ->  rdi         "impAppendStmt"
+;  V14 tmp9         [V14,T12] (  2,  2   )     int  ->  rsi         "impAppendStmt"
 ;* V15 tmp10        [V15    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Formats.Asn1.Asn1Tag>
 ;* V16 tmp11        [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp12        [V17    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
@@ -39,7 +39,7 @@
 ;* V28 tmp23        [V28    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V29 tmp24        [V29    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;  V30 tmp25        [V30,T13] (  2,  2   )    long  ->  rdx         "Inlining Arg"
-;  V31 tmp26        [V31,T14] (  2,  2   )     int  ->  rdi         "impAppendStmt"
+;  V31 tmp26        [V31,T14] (  2,  2   )     int  ->  rsi         "impAppendStmt"
 ;* V32 tmp27        [V32    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Formats.Asn1.Asn1Tag>
 ;* V33 tmp28        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V34 tmp29        [V34    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
@@ -48,17 +48,17 @@
 ;  V37 tmp32        [V37,T23] (  2,  1.50)   byref  ->  r13         "field V03._reference (fldOffset=0x0)" P-INDEP
 ;  V38 tmp33        [V38,T06] (  6,  4   )     int  ->  r12         "field V03._length (fldOffset=0x8)" P-INDEP
 ;  V39 tmp34        [V39,T09] (  4,  2   )   ubyte  ->  registers   "field V04._controlFlags (fldOffset=0x0)" P-INDEP
-;  V40 tmp35        [V40,T10] (  4,  2   )     int  ->  rsi         "field V04.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
+;  V40 tmp35        [V40,T10] (  4,  2   )     int  ->  rdi         "field V04.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
 ;* V41 tmp36        [V41    ] (  0,  0   )   byref  ->  zero-ref    "field V06._reference (fldOffset=0x0)" P-DEP
 ;* V42 tmp37        [V42    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-DEP
-;  V43 tmp38        [V43,T17] (  3,  1.50)   ubyte  ->  rdi         "field V09._controlFlags (fldOffset=0x0)" P-INDEP
-;  V44 tmp39        [V44,T18] (  3,  1.50)     int  ->  rsi         "field V09.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
-;  V45 tmp40        [V45,T19] (  3,  1.50)   ubyte  ->  rdi         "field V12._controlFlags (fldOffset=0x0)" P-INDEP
-;  V46 tmp41        [V46,T20] (  3,  1.50)     int  ->  rsi         "field V12.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
+;  V43 tmp38        [V43,T17] (  3,  1.50)   ubyte  ->  rsi         "field V09._controlFlags (fldOffset=0x0)" P-INDEP
+;  V44 tmp39        [V44,T18] (  3,  1.50)     int  ->  rdx         "field V09.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
+;  V45 tmp40        [V45,T19] (  3,  1.50)   ubyte  ->  rsi         "field V12._controlFlags (fldOffset=0x0)" P-INDEP
+;  V46 tmp41        [V46,T20] (  3,  1.50)     int  ->  rdi         "field V12.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
 ;* V47 tmp42        [V47    ] (  0,  0   )   byref  ->  zero-ref    "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V48 tmp43        [V48    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
-;  V49 tmp44        [V49,T25] (  2,  1   )   ubyte  ->  rdi         "field V15._controlFlags (fldOffset=0x0)" P-INDEP
-;  V50 tmp45        [V50,T26] (  2,  1   )     int  ->  rsi         "field V15.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
+;  V49 tmp44        [V49,T25] (  2,  1   )   ubyte  ->  rsi         "field V15._controlFlags (fldOffset=0x0)" P-INDEP
+;  V50 tmp45        [V50,T26] (  2,  1   )     int  ->  rdi         "field V15.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
 ;  V51 tmp46        [V51,T15] (  3,  1.50)   byref  ->  rdi         "field V18._reference (fldOffset=0x0)" P-INDEP
 ;  V52 tmp47        [V52,T21] (  3,  1.50)     int  ->  r14         "field V18._length (fldOffset=0x8)" P-INDEP
 ;  V53 tmp48        [V53,T24] (  2,  1   )   byref  ->  rdi         single-def "field V21._reference (fldOffset=0x0)" P-INDEP
@@ -67,14 +67,12 @@
 ;* V56 tmp51        [V56    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x8)" P-INDEP
 ;* V57 tmp52        [V57    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V27._reference (fldOffset=0x0)" P-INDEP
 ;* V58 tmp53        [V58    ] (  0,  0   )     int  ->  zero-ref    "field V27._length (fldOffset=0x8)" P-INDEP
-;  V59 tmp54        [V59,T28] (  2,  1   )   ubyte  ->  rdi         "field V32._controlFlags (fldOffset=0x0)" P-INDEP
-;  V60 tmp55        [V60,T29] (  2,  1   )     int  ->  rsi         "field V32.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
+;  V59 tmp54        [V59,T28] (  2,  1   )   ubyte  ->  rsi         "field V32._controlFlags (fldOffset=0x0)" P-INDEP
+;  V60 tmp55        [V60,T29] (  2,  1   )     int  ->  rdx         "field V32.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
 ;  V61 tmp56        [V61,T02] (  6,  6   )  struct ( 8) [rbp-0x40]  do-not-enreg[SF] "by-value struct argument" <System.Formats.Asn1.Asn1Tag>
-;* V62 tmp57        [V62,T31] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;* V63 tmp58        [V63,T32] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;* V64 cse0         [V64,T30] (  0,  0   )    long  ->  zero-ref    multi-def "CSE - moderate"
-;  V65 cse1         [V65,T22] (  3,  1.50)     int  ->  r14         "CSE - moderate"
-;  V66 cse2         [V66,T16] (  3,  1.50)     ref  ->  rsi         "CSE - moderate"
+;* V62 cse0         [V62,T30] (  0,  0   )    long  ->  zero-ref    multi-def "CSE - moderate"
+;  V63 cse1         [V63,T22] (  3,  1.50)     int  ->  r14         "CSE - moderate"
+;  V64 cse2         [V64,T16] (  3,  1.50)     ref  ->  rsi         "CSE - moderate"
 ;
 ; Lcl frame size = 24
 
@@ -115,23 +113,23 @@ G_M42154_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=2000 {r13
        ; byrRegs -[rax r15]
        cmp      byte  ptr [rbp-0x38], 0
        jne      SHORT G_M42154_IG04
-       xor      edi, edi
-       mov      esi, 6
+       xor      esi, esi
+       mov      edi, 6
        jmp      SHORT G_M42154_IG05
                        ;; size=15 bbWeight=0.50 PerfScore 2.75
 G_M42154_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=2000 {r13}, byref
        movzx    r15, byte  ptr [rbp-0x34]
-       mov      esi, dword ptr [rbp-0x30]
+       mov      edi, dword ptr [rbp-0x30]
        and      r15d, -33
-       movzx    rdi, r15b
-       and      edi, 224
+       movzx    rsi, r15b
+       and      esi, 224
                        ;; size=22 bbWeight=0.50 PerfScore 1.38
 G_M42154_IG05:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=2000 {r13}, byref, isz
-       mov      byte  ptr [rbp-0x40], dil
-       mov      dword ptr [rbp-0x3C], esi
+       mov      byte  ptr [rbp-0x40], sil
+       mov      dword ptr [rbp-0x3C], edi
+       mov      rsi, qword ptr [rbp-0x40]
        mov      rdi, rbx
        ; gcrRegs +[rdi]
-       mov      rsi, qword ptr [rbp-0x40]
        call     [System.Formats.Asn1.AsnWriter:WriteTag(System.Formats.Asn1.Asn1Tag):this]
        ; gcrRegs -[rdi]
        mov      rdi, rbx
@@ -198,26 +196,28 @@ G_M42154_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
        ; byrRegs +[r15]
        cmp      byte  ptr [rbp-0x38], 0
        jne      SHORT G_M42154_IG11
-       xor      edi, edi
-       mov      esi, 6
+       xor      esi, esi
+       mov      edx, 6
        jmp      SHORT G_M42154_IG12
                        ;; size=15 bbWeight=0.50 PerfScore 2.75
 G_M42154_IG11:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref
-       movzx    rdi, byte  ptr [rbp-0x34]
-       mov      esi, dword ptr [rbp-0x30]
-       and      edi, -33
-       movzx    rdi, dil
-       and      edi, 224
-                       ;; size=21 bbWeight=0.50 PerfScore 1.38
+       movzx    rsi, byte  ptr [rbp-0x34]
+       mov      edi, dword ptr [rbp-0x30]
+       mov      edx, esi
+       and      edx, -33
+       movzx    rsi, dl
+       and      esi, 224
+       mov      edx, edi
+                       ;; size=25 bbWeight=0.50 PerfScore 1.62
 G_M42154_IG12:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=8000 {r15}, byref
-       mov      byte  ptr [rbp-0x40], dil
-       mov      dword ptr [rbp-0x3C], esi
-       mov      rdi, rbx
-       ; gcrRegs +[rdi]
+       mov      byte  ptr [rbp-0x40], sil
+       mov      dword ptr [rbp-0x3C], edx
        mov      rsi, qword ptr [rbp-0x40]
        mov      rdx, r15
        ; byrRegs +[rdx]
        mov      ecx, r14d
+       mov      rdi, rbx
+       ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rbx rdi]
        ; byrRegs -[rdx r15]
@@ -242,7 +242,7 @@ G_M42154_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 352, prolog size 19, PerfScore 54.00, instruction count 106, allocated bytes for code 352 (MethodHash=cb645b55) for method System.Formats.Asn1.AsnWriter:WriteObjectIdentifier(System.ReadOnlySpan`1[ushort],System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this (Tier1)
+; Total bytes of code 356, prolog size 19, PerfScore 54.25, instruction count 108, allocated bytes for code 356 (MethodHash=cb645b55) for method System.Formats.Asn1.AsnWriter:WriteObjectIdentifier(System.ReadOnlySpan`1[ushort],System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this (Tier1)
 ; ============================================================
 
 Unwind Info:

+7 (+2.21%) : 913.dasm - System.Runtime.InteropServices.Marshalling.Utf8StringMarshaller+ManagedToUnmanagedIn:FromManaged(System.String,System.Span`1[ubyte]):this (Tier0)

@@ -5,68 +5,69 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )   byref  ->  [rbp-0x10]  do-not-enreg[] this
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [rbp-0x18]  do-not-enreg[] class-hnd <System.String>
-;  V02 arg2         [V02    ] (  1,  1   )  struct (16) [rbp-0x28]  do-not-enreg[XSFA] multireg-arg addr-exposed ld-addr-op <System.Span`1[ubyte]>
-;  V03 loc0         [V03    ] (  1,  1   )     int  ->  [rbp-0x2C]  do-not-enreg[]
-;  V04 loc1         [V04    ] (  1,  1   )     int  ->  [rbp-0x30]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )   byref  ->  [rbp-0x08]  do-not-enreg[] this
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [rbp-0x10]  do-not-enreg[] class-hnd <System.String>
+;  V02 arg2         [V02    ] (  1,  1   )  struct (16) [rbp-0x20]  do-not-enreg[XSFA] multireg-arg addr-exposed ld-addr-op <System.Span`1[ubyte]>
+;  V03 loc0         [V03    ] (  1,  1   )     int  ->  [rbp-0x24]  do-not-enreg[]
+;  V04 loc1         [V04    ] (  1,  1   )     int  ->  [rbp-0x28]  do-not-enreg[]
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [rbp-0x40]  do-not-enreg[SAR] multireg-arg multireg-ret must-init "Return value temp for multireg return" <System.ReadOnlySpan`1[ushort]>
-;  V07 tmp2         [V07    ] (  1,  1   )     ref  ->  [rbp-0x48]  do-not-enreg[] must-init class-hnd "impAppendStmt" <<unknown class>>
-;  V08 tmp3         [V08    ] (  1,  1   )     ref  ->  [rbp-0x50]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp4         [V09    ] (  1,  1   )    long  ->  [rbp-0x58]  do-not-enreg[] "argument with side effect"
-;  V10 tmp5         [V10    ] (  1,  1   )    long  ->  [rbp-0x60]  do-not-enreg[] "Cast away GC"
+;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [rbp-0x38]  do-not-enreg[SAR] multireg-arg multireg-ret must-init "Return value temp for multireg return" <System.ReadOnlySpan`1[ushort]>
+;  V07 tmp2         [V07    ] (  1,  1   )     ref  ->  [rbp-0x40]  do-not-enreg[] must-init class-hnd "impAppendStmt" <<unknown class>>
+;  V08 tmp3         [V08    ] (  1,  1   )     ref  ->  [rbp-0x48]  do-not-enreg[] must-init "argument with side effect"
+;  V09 tmp4         [V09    ] (  1,  1   )    long  ->  [rbp-0x50]  do-not-enreg[] "argument with side effect"
+;  V10 tmp5         [V10    ] (  1,  1   )    long  ->  [rbp-0x58]  do-not-enreg[] "Cast away GC"
 ;
-; Lcl frame size = 88
+; Lcl frame size = 96
 
 G_M1038_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       push     rbx
-       sub      rsp, 88
+       sub      rsp, 96
        lea      rbp, [rsp+0x60]
+       xor      eax, eax
+       mov      qword ptr [rbp-0x48], rax
        vxorps   xmm8, xmm8, xmm8
-       vmovdqu  ymmword ptr [rbp-0x50], ymm8
-       mov      bword ptr [rbp-0x10], rdi
-       mov      gword ptr [rbp-0x18], rsi
-       mov      bword ptr [rbp-0x28], rdx
-       mov      qword ptr [rbp-0x20], rcx
-                       ;; size=37 bbWeight=1 PerfScore 9.08
+       vmovdqa  xmmword ptr [rbp-0x40], xmm8
+       mov      qword ptr [rbp-0x30], rax
+       mov      bword ptr [rbp-0x08], rdi
+       mov      gword ptr [rbp-0x10], rsi
+       mov      bword ptr [rbp-0x20], rdx
+       mov      qword ptr [rbp-0x18], rcx
+                       ;; size=46 bbWeight=1 PerfScore 10.33
 G_M1038_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
-       mov      rax, bword ptr [rbp-0x10]
+       mov      rax, bword ptr [rbp-0x08]
        ; byrRegs +[rax]
        mov      byte  ptr [rax+0x08], 0
-       cmp      gword ptr [rbp-0x18], 0
+       cmp      gword ptr [rbp-0x10], 0
        jne      SHORT G_M1038_IG04
-       mov      rax, bword ptr [rbp-0x10]
+       mov      rax, bword ptr [rbp-0x08]
        xor      ecx, ecx
        mov      qword ptr [rax], rcx
                        ;; size=24 bbWeight=1 PerfScore 7.25
 G_M1038_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 88
-       pop      rbx
+       add      rsp, 96
        pop      rbp
        ret      
-                       ;; size=7 bbWeight=1 PerfScore 2.25
+                       ;; size=6 bbWeight=1 PerfScore 1.75
 G_M1038_IG04:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
        ; byrRegs -[rax]
-       mov      rax, gword ptr [rbp-0x18]
+       mov      rax, gword ptr [rbp-0x10]
        ; gcrRegs +[rax]
        mov      eax, dword ptr [rax+0x08]
        ; gcrRegs -[rax]
        mov      eax, eax
        lea      rax, [rax+2*rax]
-       mov      ecx, dword ptr [rbp-0x20]
+       mov      ecx, dword ptr [rbp-0x18]
        mov      ecx, ecx
        cmp      rax, rcx
        jl       SHORT G_M1038_IG05
        call     [<unknown method>]
        ; gcrRegs +[rax]
-       mov      gword ptr [rbp-0x50], rax
-       mov      rdi, gword ptr [rbp-0x50]
+       mov      gword ptr [rbp-0x48], rax
+       mov      rdi, gword ptr [rbp-0x48]
        ; gcrRegs +[rdi]
-       mov      rsi, gword ptr [rbp-0x18]
+       mov      rsi, gword ptr [rbp-0x10]
        ; gcrRegs +[rsi]
-       mov      rax, gword ptr [rbp-0x50]
+       mov      rax, gword ptr [rbp-0x48]
        mov      rax, qword ptr [rax]
        ; gcrRegs -[rax]
        mov      rax, qword ptr [rax+0x58]
@@ -74,55 +75,55 @@ G_M1038_IG04:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
        ; gcrRegs -[rsi rdi]
        add      eax, 1
        jo       G_M1038_IG08
-       mov      dword ptr [rbp-0x30], eax
-       mov      edi, dword ptr [rbp-0x30]
-       cmp      edi, dword ptr [rbp-0x20]
+       mov      dword ptr [rbp-0x28], eax
+       mov      edi, dword ptr [rbp-0x28]
+       cmp      edi, dword ptr [rbp-0x18]
        jle      SHORT G_M1038_IG05
-       mov      edi, dword ptr [rbp-0x30]
+       mov      edi, dword ptr [rbp-0x28]
        movsxd   rdi, edi
        call     [<unknown method>]
-       mov      qword ptr [rbp-0x58], rax
-       mov      rsi, qword ptr [rbp-0x58]
-       lea      rdi, [rbp-0x28]
-       mov      edx, dword ptr [rbp-0x30]
+       mov      qword ptr [rbp-0x50], rax
+       mov      rsi, qword ptr [rbp-0x50]
+       lea      rdi, [rbp-0x20]
+       mov      edx, dword ptr [rbp-0x28]
        call     [<unknown method>]
-       mov      rdi, bword ptr [rbp-0x10]
+       mov      rdi, bword ptr [rbp-0x08]
        ; byrRegs +[rdi]
        mov      byte  ptr [rdi+0x08], 1
                        ;; size=116 bbWeight=1 PerfScore 39.25
 G_M1038_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; byrRegs -[rdi]
-       mov      rbx, bword ptr [rbp-0x10]
-       ; byrRegs +[rbx]
-       mov      rdi, bword ptr [rbp-0x28]
+       mov      rdi, bword ptr [rbp-0x20]
        ; byrRegs +[rdi]
-       mov      rsi, qword ptr [rbp-0x20]
+       mov      rsi, qword ptr [rbp-0x18]
        call     [<unknown method>]
        ; byrRegs -[rdi] +[rax]
-       mov      qword ptr [rbp-0x60], rax
-       mov      rax, qword ptr [rbp-0x60]
+       mov      qword ptr [rbp-0x58], rax
+       mov      rax, qword ptr [rbp-0x58]
        ; byrRegs -[rax]
-       mov      qword ptr [rbx], rax
+       mov      rcx, bword ptr [rbp-0x08]
+       ; byrRegs +[rcx]
+       mov      qword ptr [rcx], rax
        call     [<unknown method>]
        ; gcrRegs +[rax]
-       ; byrRegs -[rbx]
-       mov      gword ptr [rbp-0x48], rax
-       mov      rdi, gword ptr [rbp-0x18]
+       ; byrRegs -[rcx]
+       mov      gword ptr [rbp-0x40], rax
+       mov      rdi, gword ptr [rbp-0x10]
        ; gcrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rax rdi]
        ; byrRegs +[rax]
-       mov      bword ptr [rbp-0x40], rax
-       mov      qword ptr [rbp-0x38], rdx
-       mov      rcx, bword ptr [rbp-0x28]
+       mov      bword ptr [rbp-0x38], rax
+       mov      qword ptr [rbp-0x30], rdx
+       mov      rcx, bword ptr [rbp-0x20]
        ; byrRegs +[rcx]
-       mov      r8, qword ptr [rbp-0x20]
-       mov      rsi, bword ptr [rbp-0x40]
+       mov      r8, qword ptr [rbp-0x18]
+       mov      rsi, bword ptr [rbp-0x38]
        ; byrRegs +[rsi]
-       mov      rdx, qword ptr [rbp-0x38]
-       mov      rdi, gword ptr [rbp-0x48]
+       mov      rdx, qword ptr [rbp-0x30]
+       mov      rdi, gword ptr [rbp-0x40]
        ; gcrRegs +[rdi]
-       mov      rax, gword ptr [rbp-0x48]
+       mov      rax, gword ptr [rbp-0x40]
        ; gcrRegs +[rax]
        ; byrRegs -[rax]
        mov      rax, qword ptr [rax]
@@ -131,22 +132,21 @@ G_M1038_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        call     [rax+0x28]<unknown method>
        ; gcrRegs -[rdi]
        ; byrRegs -[rcx rsi]
-       mov      dword ptr [rbp-0x2C], eax
-       mov      eax, dword ptr [rbp-0x20]
-       cmp      dword ptr [rbp-0x2C], eax
+       mov      dword ptr [rbp-0x24], eax
+       mov      eax, dword ptr [rbp-0x18]
+       cmp      dword ptr [rbp-0x24], eax
        jae      SHORT G_M1038_IG07
-       mov      rax, bword ptr [rbp-0x28]
+       mov      rax, bword ptr [rbp-0x20]
        ; byrRegs +[rax]
-       mov      ecx, dword ptr [rbp-0x2C]
+       mov      ecx, dword ptr [rbp-0x24]
        mov      ecx, ecx
        mov      byte  ptr [rax+rcx], 0
                        ;; size=115 bbWeight=1 PerfScore 40.25
 G_M1038_IG06:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 88
-       pop      rbx
+       add      rsp, 96
        pop      rbp
        ret      
-                       ;; size=7 bbWeight=1 PerfScore 2.25
+                       ;; size=6 bbWeight=1 PerfScore 1.75
 G_M1038_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        ; byrRegs -[rax]
        call     CORINFO_HELP_RNGCHKFAIL
@@ -156,7 +156,7 @@ G_M1038_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 317, prolog size 21, PerfScore 100.33, instruction count 90, allocated bytes for code 317 (MethodHash=85e8fbf1) for method System.Runtime.InteropServices.Marshalling.Utf8StringMarshaller+ManagedToUnmanagedIn:FromManaged(System.String,System.Span`1[ubyte]):this (Tier0)
+; Total bytes of code 324, prolog size 30, PerfScore 100.58, instruction count 90, allocated bytes for code 324 (MethodHash=85e8fbf1) for method System.Runtime.InteropServices.Marshalling.Utf8StringMarshaller+ManagedToUnmanagedIn:FromManaged(System.String,System.Span`1[ubyte]):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -164,11 +164,10 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x06
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x05
+  CountOfUnwindCodes: 2
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 10 * 8 + 8 = 88 = 0x58
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 11 * 8 + 8 = 96 = 0x60
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+6 (+3.33%) : 20636.dasm - Newtonsoft.Json.JsonReader:Pop():int:this (Tier1)

@@ -27,7 +27,7 @@
 ;* V16 tmp13        [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "field V01.HasIndex (fldOffset=0x10)" P-INDEP
 ;  V17 tmp14        [V17,T09] (  2,  1   )   ubyte  ->  rcx         single-def "field V02.hasValue (fldOffset=0x0)" P-INDEP
 ;  V18 tmp15        [V18,T10] (  2,  1   )     int  ->  rdx         single-def "field V02.value (fldOffset=0x4)" P-INDEP
-;  V19 tmp16        [V19,T03] (  3,  3   )     ref  ->  rsi         single-def "arr expr"
+;  V19 tmp16        [V19,T03] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
 ;  V20 cse0         [V20,T08] (  3,  1.50)     int  ->  r13         "CSE - moderate"
 ;  V21 cse1         [V21,T04] (  4,  2   )     int  ->  rdi         "CSE - aggressive"
 ;  V22 cse2         [V22,T02] (  5,  3.50)     ref  ->  r15         "CSE - aggressive"
@@ -60,16 +60,19 @@ G_M12313_IG03:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
        lea      r13d, [rdi-0x01]
        mov      eax, r13d
        cmp      eax, edi
-       jae      SHORT G_M12313_IG10
-       lea      rdi, bword ptr [rbx+0x48]
-       ; byrRegs +[rdi]
-       mov      rsi, gword ptr [rsi+0x08]
-       cmp      eax, dword ptr [rsi+0x08]
+       jae      G_M12313_IG10
+       mov      rdi, gword ptr [rsi+0x08]
+       ; gcrRegs +[rdi]
+       cmp      eax, dword ptr [rdi+0x08]
        jae      SHORT G_M12313_IG09
-       lea      rax, [rax+2*rax]
-       lea      rsi, bword ptr [rsi+8*rax+0x10]
+       mov      esi, eax
        ; gcrRegs -[rsi]
+       lea      rsi, [rsi+2*rsi]
+       lea      rsi, bword ptr [rdi+8*rsi+0x10]
        ; byrRegs +[rsi]
+       lea      rdi, bword ptr [rbx+0x48]
+       ; gcrRegs -[rdi]
+       ; byrRegs +[rdi]
        call     CORINFO_HELP_ASSIGN_BYREF
        movsq    
        movsq    
@@ -81,7 +84,7 @@ G_M12313_IG03:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
        call     [System.Collections.Generic.List`1[Newtonsoft.Json.JsonPosition]:RemoveAt(int):this]
        ; gcrRegs -[rdi r15]
        jmp      SHORT G_M12313_IG05
-                       ;; size=71 bbWeight=0.50 PerfScore 12.00
+                       ;; size=77 bbWeight=0.50 PerfScore 12.12
 G_M12313_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      r14d, dword ptr [rbx+0x50]
        xor      edi, edi
@@ -129,7 +132,7 @@ G_M12313_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 180, prolog size 13, PerfScore 38.88, instruction count 61, allocated bytes for code 180 (MethodHash=3fb5cfe6) for method Newtonsoft.Json.JsonReader:Pop():int:this (Tier1)
+; Total bytes of code 186, prolog size 13, PerfScore 39.00, instruction count 62, allocated bytes for code 186 (MethodHash=3fb5cfe6) for method Newtonsoft.Json.JsonReader:Pop():int:this (Tier1)
 ; ============================================================
 
 Unwind Info:

coreclr_tests.run.linux.x64.checked.mch

-15 (-28.30%) : 607936.dasm - (dynamicClass):ABIStress_TailCaller968(long,ABIStress.S13U,ABIStress.S12U,ABIStress.S16U,ABIStress.S2P,double):int (FullOpts)

@@ -11,41 +11,38 @@
 ;* V00 arg0         [V00    ] (  0,  0   )    long  ->  zero-ref    single-def
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SA] multireg-arg single-def <ABIStress.S13U>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SA] multireg-arg single-def <ABIStress.S12U>
-;  V03 arg3         [V03,T03] (  1,  1   )  struct (16) [rsp+0x20]  single-def <ABIStress.S16U>
+;  V03 arg3         [V03,T02] (  2,  2   )  struct (16) [rsp+0x10]  do-not-enreg[SFA] multireg-arg single-def <ABIStress.S16U>
 ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def <ABIStress.S2P>
 ;* V05 arg5         [V05    ] (  0,  0   )  double  ->  zero-ref    single-def
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <ABIStress.S2U>
-;* V08 tmp2         [V08,T04] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V09 tmp3         [V09,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;  V10 tmp4         [V10,T02] (  1,  1   )   short  ->   r9         single-def "field V04.F0 (fldOffset=0x0)" P-INDEP
-;* V11 tmp5         [V11,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V07.F0 (fldOffset=0x0)" P-INDEP
-;* V12 tmp6         [V12,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V07.F1 (fldOffset=0x1)" P-INDEP
-;  V13 tmp7         [V13,T00] (  3,  6   )  struct ( 8) [rsp+0x10]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S2U>
-;  V14 tmp8         [V14,T01] (  3,  6   )  struct (16) [rsp+0x00]  do-not-enreg[SFA] multireg-arg "argument with side effect" <ABIStress.S16U>
+;* V08 tmp2         [V08,T03] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V09 tmp3         [V09,T04] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;  V10 tmp4         [V10,T01] (  1,  1   )   short  ->   r9         single-def "field V04.F0 (fldOffset=0x0)" P-INDEP
+;* V11 tmp5         [V11,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V07.F0 (fldOffset=0x0)" P-INDEP
+;* V12 tmp6         [V12,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V07.F1 (fldOffset=0x1)" P-INDEP
+;  V13 tmp7         [V13,T00] (  3,  6   )  struct ( 8) [rsp+0x00]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S2U>
 ;
-; Lcl frame size = 24
+; Lcl frame size = 8
 
 G_M51367_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 24
-                       ;; size=4 bbWeight=1 PerfScore 0.25
+       push     rax
+                       ;; size=1 bbWeight=1 PerfScore 1.00
 G_M51367_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       vmovups  xmm0, xmmword ptr [rsp+0x20]
-       vmovups  xmmword ptr [rsp], xmm0
-       mov      byte  ptr [rsp+0x10], 198
-       mov      byte  ptr [rsp+0x11], 124
-       mov      rdi, qword ptr [rsp]
-       mov      rsi, qword ptr [rsp+0x08]
-       movzx    rdx, word  ptr [rsp+0x10]
+       mov      byte  ptr [rsp], 198
+       mov      byte  ptr [rsp+0x01], 124
+       movzx    rdx, word  ptr [rsp]
+       mov      rdi, qword ptr [rsp+0x10]
+       mov      rsi, qword ptr [rsp+0x18]
        mov      ecx, 0xD1FFAB1E
-                       ;; size=40 bbWeight=1 PerfScore 9.25
+                       ;; size=28 bbWeight=1 PerfScore 5.25
 G_M51367_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 24
+       add      rsp, 8
        jmp      <unknown method>
        ; gcr arg pop 0
                        ;; size=9 bbWeight=1 PerfScore 2.25
 
-; Total bytes of code 53, prolog size 4, PerfScore 11.75, instruction count 11, allocated bytes for code 53 (MethodHash=53463758) for method (dynamicClass):ABIStress_TailCaller968(long,ABIStress.S13U,ABIStress.S12U,ABIStress.S16U,ABIStress.S2P,double):int (FullOpts)
+; Total bytes of code 38, prolog size 1, PerfScore 8.50, instruction count 9, allocated bytes for code 38 (MethodHash=53463758) for method (dynamicClass):ABIStress_TailCaller968(long,ABIStress.S13U,ABIStress.S12U,ABIStress.S16U,ABIStress.S2P,double):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -53,9 +50,9 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x04
+  SizeOfProlog      : 0x01
   CountOfUnwindCodes: 1
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 2 * 8 + 8 = 24 = 0x18
+    CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08

-18 (-25.35%) : 606989.dasm - (dynamicClass):ABIStressTailCaller427(ABIStress.S4P,ABIStress.S11U,ABIStress.S2U,ABIStress.S17U,ABIStress.S4P,ABIStress.I1282,ABIStress.S7U,System.Int128,ABIStress.S8U,System.Runtime.Intrinsics.Vector1281[int],ABIStress.I128_1,float,System.Numerics.Vector1[int]):int (FullOpts)

@@ -9,7 +9,7 @@
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct ( 8) zero-ref    single-def <ABIStress.S4P>
-;  V01 arg1         [V01,T02] (  3,  3   )  struct (16) [rsp+0x18]  do-not-enreg[SA] multireg-arg single-def <ABIStress.S11U>
+;  V01 arg1         [V01,T01] (  4,  4   )  struct (16) [rsp+0x08]  do-not-enreg[SA] multireg-arg single-def <ABIStress.S11U>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct ( 8) zero-ref    single-def <ABIStress.S2U>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[S] single-def <ABIStress.S17U>
 ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def <ABIStress.S4P>
@@ -23,46 +23,41 @@
 ;* V12 arg12        [V12    ] (  0,  0   )  simd32  ->  zero-ref    single-def <System.Numerics.Vector`1[int]>
 ;# V13 OutArgs      [V13    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V14 tmp1         [V14    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <ABIStress.S3U>
-;* V15 tmp2         [V15,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V16 tmp3         [V16,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V17 tmp4         [V17,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;  V18 tmp5         [V18,T03] (  1,  1   )     int  ->  rdi         single-def "field V00.F0 (fldOffset=0x0)" P-INDEP
-;  V19 tmp6         [V19,T04] (  1,  1   )     int  ->   r8         single-def "field V04.F0 (fldOffset=0x0)" P-INDEP
+;* V15 tmp2         [V15,T04] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V16 tmp3         [V16,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V17 tmp4         [V17,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;  V18 tmp5         [V18,T02] (  1,  1   )     int  ->  rdi         single-def "field V00.F0 (fldOffset=0x0)" P-INDEP
+;  V19 tmp6         [V19,T03] (  1,  1   )     int  ->   r8         single-def "field V04.F0 (fldOffset=0x0)" P-INDEP
 ;* V20 tmp7         [V20    ] (  0,  0   )    long  ->  zero-ref    single-def "field V07._lower (fldOffset=0x0)" P-INDEP
 ;* V21 tmp8         [V21    ] (  0,  0   )    long  ->  zero-ref    single-def "field V07._upper (fldOffset=0x8)" P-INDEP
-;* V22 tmp9         [V22,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V14.F0 (fldOffset=0x0)" P-INDEP
-;* V23 tmp10        [V23,T09] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V14.F1 (fldOffset=0x1)" P-INDEP
-;* V24 tmp11        [V24,T10] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V14.F2 (fldOffset=0x2)" P-INDEP
-;  V25 tmp12        [V25,T00] (  4,  8   )  struct ( 8) [rsp+0x10]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S3U>
-;  V26 tmp13        [V26,T01] (  3,  6   )  struct (16) [rsp+0x00]  do-not-enreg[SFA] multireg-arg "argument with side effect" <ABIStress.S11U>
+;* V22 tmp9         [V22,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V14.F0 (fldOffset=0x0)" P-INDEP
+;* V23 tmp10        [V23,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V14.F1 (fldOffset=0x1)" P-INDEP
+;* V24 tmp11        [V24,T09] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V14.F2 (fldOffset=0x2)" P-INDEP
+;  V25 tmp12        [V25,T00] (  4,  8   )  struct ( 8) [rsp+0x00]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S3U>
 ;
-; Lcl frame size = 40
+; Lcl frame size = 24
 
 G_M37639_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 40
-       mov      qword ptr [rsp+0x18], rsi
-       mov      dword ptr [rsp+0x20], edx
+       sub      rsp, 24
+       mov      qword ptr [rsp+0x08], rsi
+       mov      dword ptr [rsp+0x10], edx
                        ;; size=13 bbWeight=1 PerfScore 2.25
 G_M37639_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      rdi, qword ptr [rsp+0x18]
-       mov      qword ptr [rsp], rdi
-       mov      edi, dword ptr [rsp+0x1F]
-       mov      dword ptr [rsp+0x07], edi
-       mov      byte  ptr [rsp+0x10], 247
-       mov      byte  ptr [rsp+0x11], 92
-       mov      byte  ptr [rsp+0x12], 71
-       mov      rdi, qword ptr [rsp]
-       mov      esi, dword ptr [rsp+0x08]
-       mov      ecx, dword ptr [rsp+0x10]
+       mov      byte  ptr [rsp], 247
+       mov      byte  ptr [rsp+0x01], 92
+       mov      byte  ptr [rsp+0x02], 71
+       mov      ecx, dword ptr [rsp]
+       mov      rdi, qword ptr [rsp+0x08]
+       mov      esi, dword ptr [rsp+0x10]
        mov      edx, 0x74C3
-                       ;; size=49 bbWeight=1 PerfScore 10.25
+                       ;; size=31 bbWeight=1 PerfScore 6.25
 G_M37639_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 40
+       add      rsp, 24
        jmp      <unknown method>
        ; gcr arg pop 0
                        ;; size=9 bbWeight=1 PerfScore 2.25
 
-; Total bytes of code 71, prolog size 13, PerfScore 14.75, instruction count 16, allocated bytes for code 71 (MethodHash=b8e86cf8) for method (dynamicClass):ABIStress_TailCaller427(ABIStress.S4P,ABIStress.S11U,ABIStress.S2U,ABIStress.S17U,ABIStress.S4P,ABIStress.I128_2,ABIStress.S7U,System.Int128,ABIStress.S8U,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.I128_1,float,System.Numerics.Vector`1[int]):int (FullOpts)
+; Total bytes of code 53, prolog size 13, PerfScore 10.75, instruction count 12, allocated bytes for code 53 (MethodHash=b8e86cf8) for method (dynamicClass):ABIStress_TailCaller427(ABIStress.S4P,ABIStress.S11U,ABIStress.S2U,ABIStress.S17U,ABIStress.S4P,ABIStress.I128_2,ABIStress.S7U,System.Int128,ABIStress.S8U,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.I128_1,float,System.Numerics.Vector`1[int]):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -75,4 +70,4 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
+    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 2 * 8 + 8 = 24 = 0x18

-31 (-19.87%) : 617543.dasm - Test10w5d.testout1+CL06621:.ctor():this (FullOpts)

@@ -10,70 +10,59 @@
 ;
 ;  V00 this         [V00,T00] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <Test_10w5d.testout1+CL_0_6_6_2_1>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02    ] (  7,  7   )  struct (16) [rsp+0x08]  do-not-enreg[XSF] addr-exposed "NewObjArrayArgs"
+;  V02 tmp1         [V02    ] (  7,  7   )  struct (16) [rsp+0x00]  do-not-enreg[XSF] addr-exposed "NewObjArrayArgs"
 ;  V03 tmp2         [V03,T01] (  2,  4   )    long  ->  rdx         "argument with side effect"
 ;  V04 tmp3         [V04,T02] (  2,  4   )    long  ->  rdx         "argument with side effect"
-;  TEMP_01                                   byref  ->  [rsp+0x18]
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M22520_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbx
-       sub      rsp, 32
-       xor      eax, eax
-       mov      qword ptr [rsp+0x18], rax
+       sub      rsp, 16
        mov      rbx, rdi
        ; gcrRegs +[rbx]
-                       ;; size=15 bbWeight=1 PerfScore 2.75
+                       ;; size=8 bbWeight=1 PerfScore 1.50
 G_M22520_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       lea      rdi, bword ptr [rbx+0x08]
-       ; byrRegs +[rdi]
-       mov      bword ptr [rsp+0x18], rdi
-       mov      dword ptr [rsp+0x08], 3
-       mov      dword ptr [rsp+0x0C], 11
-       lea      rdx, [rsp+0x08]
+       mov      dword ptr [rsp], 3
+       mov      dword ptr [rsp+0x04], 11
+       lea      rdx, [rsp]
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
-       ; byrRegs -[rdi]
        mov      esi, 2
        call     CORINFO_HELP_NEW_MDARR
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      rdi, bword ptr [rsp+0x18]
+       lea      rdi, bword ptr [rbx+0x08]
        ; byrRegs +[rdi]
        mov      rsi, rax
        ; gcrRegs +[rsi]
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rax rsi]
        ; byrRegs -[rdi]
-       lea      rdi, bword ptr [rbx+0x10]
-       ; byrRegs +[rdi]
-       mov      bword ptr [rsp+0x18], rdi
-       mov      dword ptr [rsp+0x08], 5
-       mov      dword ptr [rsp+0x0C], 11
-       mov      dword ptr [rsp+0x10], 4
-       lea      rdx, [rsp+0x08]
+       mov      dword ptr [rsp], 5
+       mov      dword ptr [rsp+0x04], 11
+       mov      dword ptr [rsp+0x08], 4
+       lea      rdx, [rsp]
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
-       ; byrRegs -[rdi]
        mov      esi, 3
        call     CORINFO_HELP_NEW_MDARR
-       ; gcrRegs -[rbx] +[rax]
+       ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      rdi, bword ptr [rsp+0x18]
+       lea      rdi, bword ptr [rbx+0x10]
        ; byrRegs +[rdi]
        mov      rsi, rax
        ; gcrRegs +[rsi]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rax rsi]
+       ; gcrRegs -[rax rbx rsi]
        ; byrRegs -[rdi]
        nop      
-                       ;; size=135 bbWeight=1 PerfScore 16.75
+                       ;; size=111 bbWeight=1 PerfScore 12.75
 G_M22520_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 32
+       add      rsp, 16
        pop      rbx
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 156, prolog size 12, PerfScore 21.25, instruction count 32, allocated bytes for code 156 (MethodHash=ac2ca807) for method Test_10w5d.testout1+CL_0_6_6_2_1:.ctor():this (FullOpts)
+; Total bytes of code 125, prolog size 5, PerfScore 16.00, instruction count 26, allocated bytes for code 125 (MethodHash=ac2ca807) for method Test_10w5d.testout1+CL_0_6_6_2_1:.ctor():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -86,5 +75,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 1 * 8 + 8 = 16 = 0x10
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)

+5 (+6.25%) : 687331.dasm - NullableTest:BoxUnboxToNQ(System.ValueType):ubyte (FullOpts)

@@ -15,10 +15,9 @@
 ;* V04 tmp2         [V04    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <NotEmptyStructQ>
 ;* V05 tmp3         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <NotEmptyStructQ>
 ;* V06 tmp4         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Nullable`1[int]>
-;* V07 tmp5         [V07,T04] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V06.hasValue (fldOffset=0x0)" P-INDEP
-;* V08 tmp6         [V08,T05] (  0,  0   )     int  ->  zero-ref    single-def "field V06.value (fldOffset=0x4)" P-INDEP
+;* V07 tmp5         [V07,T03] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V06.hasValue (fldOffset=0x0)" P-INDEP
+;* V08 tmp6         [V08,T04] (  0,  0   )     int  ->  zero-ref    single-def "field V06.value (fldOffset=0x4)" P-INDEP
 ;  V09 tmp7         [V09,T01] (  3,  6   )  struct ( 8) [rsp+0x00]  do-not-enreg[SF] "by-value struct argument" <NotEmptyStructQ>
-;  V10 tmp8         [V10,T03] (  2,  4   )    long  ->  rdi         "argument with side effect"
 ;
 ; Lcl frame size = 16
 
@@ -42,23 +41,24 @@ G_M4996_IG03:        ; bbWeight=0.25, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, b
        ; gcr arg pop 0
                        ;; size=19 bbWeight=0.25 PerfScore 0.88
 G_M4996_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       mov      rdi, qword ptr [rbx+0x08]
-       mov      qword ptr [rsp+0x08], rdi
+       mov      rsi, qword ptr [rbx+0x08]
+       mov      qword ptr [rsp+0x08], rsi
        mov      byte  ptr [rsp], 1
        mov      dword ptr [rsp+0x04], 101
        mov      rsi, qword ptr [rsp]
+       mov      rdi, qword ptr [rsp+0x08]
        call     [Helper:Compare(NotEmptyStructQ,NotEmptyStructQ):ubyte]
        ; gcrRegs -[rbx]
        ; gcr arg pop 0
        nop      
-                       ;; size=32 bbWeight=1 PerfScore 9.25
+                       ;; size=37 bbWeight=1 PerfScore 10.25
 G_M4996_IG05:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 16
        pop      rbx
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 80, prolog size 5, PerfScore 17.62, instruction count 19, allocated bytes for code 80 (MethodHash=1831ec7b) for method NullableTest:BoxUnboxToNQ(System.ValueType):ubyte (FullOpts)
+; Total bytes of code 85, prolog size 5, PerfScore 18.62, instruction count 20, allocated bytes for code 85 (MethodHash=1831ec7b) for method NullableTest:BoxUnboxToNQ(System.ValueType):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:

+5 (+6.94%) : 687553.dasm - NullableTest:BoxUnboxToNQ[System.Nullable1[NotEmptyStructConstrainedGenQ1[int]]](System.Nullable1[NotEmptyStructConstrainedGenQ1[int]]):ubyte (FullOpts)

@@ -15,10 +15,9 @@
 ;* V04 tmp2         [V04    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <NotEmptyStructConstrainedGenQ`1[int]>
 ;* V05 tmp3         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <NotEmptyStructConstrainedGenQ`1[int]>
 ;* V06 tmp4         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Nullable`1[int]>
-;* V07 tmp5         [V07,T03] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V06.hasValue (fldOffset=0x0)" P-INDEP
-;* V08 tmp6         [V08,T04] (  0,  0   )     int  ->  zero-ref    single-def "field V06.value (fldOffset=0x4)" P-INDEP
+;* V07 tmp5         [V07,T02] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V06.hasValue (fldOffset=0x0)" P-INDEP
+;* V08 tmp6         [V08,T03] (  0,  0   )     int  ->  zero-ref    single-def "field V06.value (fldOffset=0x4)" P-INDEP
 ;  V09 tmp7         [V09,T00] (  3,  6   )  struct ( 8) [rsp+0x08]  do-not-enreg[SF] "by-value struct argument" <NotEmptyStructConstrainedGenQ`1[int]>
-;  V10 tmp8         [V10,T02] (  2,  4   )    long  ->  rdi         "argument with side effect"
 ;
 ; Lcl frame size = 40
 
@@ -33,22 +32,23 @@ G_M19706_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     CORINFO_HELP_BOX_NULLABLE
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      rdi, qword ptr [rax+0x08]
-       mov      qword ptr [rsp+0x10], rdi
+       mov      rsi, qword ptr [rax+0x08]
+       mov      qword ptr [rsp+0x10], rsi
        mov      byte  ptr [rsp+0x08], 1
        mov      dword ptr [rsp+0x0C], 12
        mov      rsi, qword ptr [rsp+0x08]
+       mov      rdi, qword ptr [rsp+0x10]
        call     [Helper:Compare(NotEmptyStructConstrainedGenQ`1[int],NotEmptyStructConstrainedGenQ`1[int]):ubyte]
        ; gcrRegs -[rax]
        ; gcr arg pop 0
        nop      
-                       ;; size=54 bbWeight=1 PerfScore 11.00
+                       ;; size=59 bbWeight=1 PerfScore 12.00
 G_M19706_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 40
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 72, prolog size 4, PerfScore 14.50, instruction count 15, allocated bytes for code 72 (MethodHash=2525b305) for method NullableTest:BoxUnboxToNQ[System.Nullable`1[NotEmptyStructConstrainedGenQ`1[int]]](System.Nullable`1[NotEmptyStructConstrainedGenQ`1[int]]):ubyte (FullOpts)
+; Total bytes of code 77, prolog size 4, PerfScore 15.50, instruction count 16, allocated bytes for code 77 (MethodHash=2525b305) for method NullableTest:BoxUnboxToNQ[System.Nullable`1[NotEmptyStructConstrainedGenQ`1[int]]](System.Nullable`1[NotEmptyStructConstrainedGenQ`1[int]]):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:

+5 (+6.94%) : 687532.dasm - NullableTest:BoxUnboxToNQ[System.Nullable1[NotEmptyStructQ]](System.Nullable1[NotEmptyStructQ]):ubyte (FullOpts)

@@ -15,10 +15,9 @@
 ;* V04 tmp2         [V04    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <NotEmptyStructQ>
 ;* V05 tmp3         [V05    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <NotEmptyStructQ>
 ;* V06 tmp4         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Nullable`1[int]>
-;* V07 tmp5         [V07,T03] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V06.hasValue (fldOffset=0x0)" P-INDEP
-;* V08 tmp6         [V08,T04] (  0,  0   )     int  ->  zero-ref    single-def "field V06.value (fldOffset=0x4)" P-INDEP
+;* V07 tmp5         [V07,T02] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V06.hasValue (fldOffset=0x0)" P-INDEP
+;* V08 tmp6         [V08,T03] (  0,  0   )     int  ->  zero-ref    single-def "field V06.value (fldOffset=0x4)" P-INDEP
 ;  V09 tmp7         [V09,T00] (  3,  6   )  struct ( 8) [rsp+0x08]  do-not-enreg[SF] "by-value struct argument" <NotEmptyStructQ>
-;  V10 tmp8         [V10,T02] (  2,  4   )    long  ->  rdi         "argument with side effect"
 ;
 ; Lcl frame size = 40
 
@@ -33,22 +32,23 @@ G_M314_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     CORINFO_HELP_BOX_NULLABLE
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      rdi, qword ptr [rax+0x08]
-       mov      qword ptr [rsp+0x10], rdi
+       mov      rsi, qword ptr [rax+0x08]
+       mov      qword ptr [rsp+0x10], rsi
        mov      byte  ptr [rsp+0x08], 1
        mov      dword ptr [rsp+0x0C], 101
        mov      rsi, qword ptr [rsp+0x08]
+       mov      rdi, qword ptr [rsp+0x10]
        call     [Helper:Compare(NotEmptyStructQ,NotEmptyStructQ):ubyte]
        ; gcrRegs -[rax]
        ; gcr arg pop 0
        nop      
-                       ;; size=54 bbWeight=1 PerfScore 11.00
+                       ;; size=59 bbWeight=1 PerfScore 12.00
 G_M314_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 40
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 72, prolog size 4, PerfScore 14.50, instruction count 15, allocated bytes for code 72 (MethodHash=6b5dfec5) for method NullableTest:BoxUnboxToNQ[System.Nullable`1[NotEmptyStructQ]](System.Nullable`1[NotEmptyStructQ]):ubyte (FullOpts)
+; Total bytes of code 77, prolog size 4, PerfScore 15.50, instruction count 16, allocated bytes for code 77 (MethodHash=6b5dfec5) for method NullableTest:BoxUnboxToNQ[System.Nullable`1[NotEmptyStructQ]](System.Nullable`1[NotEmptyStructQ]):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:

libraries.crossgen2.linux.x64.checked.mch

-25 (-49.02%) : 173914.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[double]):System.Text.Json.Nodes.JsonNode (FullOpts)

@@ -11,37 +11,32 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Nullable`1[double]>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  2,  2   )   ubyte  ->  rdi         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
-;  V04 tmp2         [V04,T05] (  2,  2   )  double  ->  mm0         single-def "field V00.value (fldOffset=0x8)" P-INDEP
-;* V05 tmp3         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
-;  V07 tmp5         [V07,T01] (  3,  6   )  struct ( 8) [rsp+0x10]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V08 tmp6         [V08,T00] (  4,  8   )  struct (16) [rsp+0x00]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.Nullable`1[double]>
+;  V03 tmp1         [V03,T01] (  2,  2   )   ubyte  ->  rdi         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
+;  V04 tmp2         [V04,T04] (  2,  2   )  double  ->  mm0         single-def "field V00.value (fldOffset=0x8)" P-INDEP
+;* V05 tmp3         [V05,T02] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp4         [V06,T03] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
+;  V07 tmp5         [V07,T00] (  3,  6   )  struct ( 8) [rsp+0x00]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 24
+; Lcl frame size = 8
 
 G_M42124_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 24
-                       ;; size=4 bbWeight=1 PerfScore 0.25
+       push     rax
+                       ;; size=1 bbWeight=1 PerfScore 1.00
 G_M42124_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      byte  ptr [rsp], dil
-       movsd    qword ptr [rsp+0x08], xmm0
-       mov      byte  ptr [rsp+0x10], 0
-       mov      byte  ptr [rsp+0x11], 0
-       mov      rdi, qword ptr [rsp]
-       movsd    xmm0, qword ptr [rsp+0x08]
-       movzx    rsi, word  ptr [rsp+0x10]
+       mov      byte  ptr [rsp], 0
+       mov      byte  ptr [rsp+0x01], 0
+       movzx    rsi, word  ptr [rsp]
        call     [System.Text.Json.Nodes.JsonValue:Create(System.Nullable`1[double],System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonValue]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        nop      
-                       ;; size=42 bbWeight=1 PerfScore 12.25
+                       ;; size=20 bbWeight=1 PerfScore 6.25
 G_M42124_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 24
+       add      rsp, 8
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 51, prolog size 4, PerfScore 13.75, instruction count 12, allocated bytes for code 51 (MethodHash=91715b73) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[double]):System.Text.Json.Nodes.JsonNode (FullOpts)
+; Total bytes of code 26, prolog size 1, PerfScore 8.50, instruction count 8, allocated bytes for code 26 (MethodHash=91715b73) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[double]):System.Text.Json.Nodes.JsonNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -49,9 +44,9 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x04
+  SizeOfProlog      : 0x01
   CountOfUnwindCodes: 1
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 2 * 8 + 8 = 24 = 0x18
+    CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08

-23 (-46.94%) : 173933.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)

@@ -11,37 +11,32 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Nullable`1[ulong]>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  2,  2   )   ubyte  ->  rdi         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
-;  V04 tmp2         [V04,T03] (  2,  2   )    long  ->  rsi         single-def "field V00.value (fldOffset=0x8)" P-INDEP
-;* V05 tmp3         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp4         [V06,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
-;  V07 tmp5         [V07,T01] (  3,  6   )  struct ( 8) [rsp+0x10]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V08 tmp6         [V08,T00] (  4,  8   )  struct (16) [rsp+0x00]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.Nullable`1[ulong]>
+;  V03 tmp1         [V03,T01] (  2,  2   )   ubyte  ->  rdi         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
+;  V04 tmp2         [V04,T02] (  2,  2   )    long  ->  rsi         single-def "field V00.value (fldOffset=0x8)" P-INDEP
+;* V05 tmp3         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
+;  V07 tmp5         [V07,T00] (  3,  6   )  struct ( 8) [rsp+0x00]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 24
+; Lcl frame size = 8
 
 G_M16550_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 24
-                       ;; size=4 bbWeight=1 PerfScore 0.25
+       push     rax
+                       ;; size=1 bbWeight=1 PerfScore 1.00
 G_M16550_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      byte  ptr [rsp], dil
-       mov      qword ptr [rsp+0x08], rsi
-       mov      byte  ptr [rsp+0x10], 0
-       mov      byte  ptr [rsp+0x11], 0
-       mov      rdi, qword ptr [rsp]
-       mov      rsi, qword ptr [rsp+0x08]
-       movzx    rdx, word  ptr [rsp+0x10]
+       mov      byte  ptr [rsp], 0
+       mov      byte  ptr [rsp+0x01], 0
+       movzx    rdx, word  ptr [rsp]
        call     [System.Text.Json.Nodes.JsonValue:Create(System.Nullable`1[ulong],System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonValue]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        nop      
-                       ;; size=40 bbWeight=1 PerfScore 10.25
+                       ;; size=20 bbWeight=1 PerfScore 6.25
 G_M16550_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 24
+       add      rsp, 8
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 49, prolog size 4, PerfScore 11.75, instruction count 12, allocated bytes for code 49 (MethodHash=b260bf59) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)
+; Total bytes of code 26, prolog size 1, PerfScore 8.50, instruction count 8, allocated bytes for code 26 (MethodHash=b260bf59) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -49,9 +44,9 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x04
+  SizeOfProlog      : 0x01
   CountOfUnwindCodes: 1
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 2 * 8 + 8 = 24 = 0x18
+    CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08

-23 (-46.94%) : 173922.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[long]):System.Text.Json.Nodes.JsonNode (FullOpts)

@@ -11,37 +11,32 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Nullable`1[long]>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  2,  2   )   ubyte  ->  rdi         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
-;  V04 tmp2         [V04,T03] (  2,  2   )    long  ->  rsi         single-def "field V00.value (fldOffset=0x8)" P-INDEP
-;* V05 tmp3         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp4         [V06,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
-;  V07 tmp5         [V07,T01] (  3,  6   )  struct ( 8) [rsp+0x10]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V08 tmp6         [V08,T00] (  4,  8   )  struct (16) [rsp+0x00]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.Nullable`1[long]>
+;  V03 tmp1         [V03,T01] (  2,  2   )   ubyte  ->  rdi         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
+;  V04 tmp2         [V04,T02] (  2,  2   )    long  ->  rsi         single-def "field V00.value (fldOffset=0x8)" P-INDEP
+;* V05 tmp3         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
+;  V07 tmp5         [V07,T00] (  3,  6   )  struct ( 8) [rsp+0x00]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 24
+; Lcl frame size = 8
 
 G_M61747_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 24
-                       ;; size=4 bbWeight=1 PerfScore 0.25
+       push     rax
+                       ;; size=1 bbWeight=1 PerfScore 1.00
 G_M61747_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      byte  ptr [rsp], dil
-       mov      qword ptr [rsp+0x08], rsi
-       mov      byte  ptr [rsp+0x10], 0
-       mov      byte  ptr [rsp+0x11], 0
-       mov      rdi, qword ptr [rsp]
-       mov      rsi, qword ptr [rsp+0x08]
-       movzx    rdx, word  ptr [rsp+0x10]
+       mov      byte  ptr [rsp], 0
+       mov      byte  ptr [rsp+0x01], 0
+       movzx    rdx, word  ptr [rsp]
        call     [System.Text.Json.Nodes.JsonValue:Create(System.Nullable`1[long],System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonValue]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        nop      
-                       ;; size=40 bbWeight=1 PerfScore 10.25
+                       ;; size=20 bbWeight=1 PerfScore 6.25
 G_M61747_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 24
+       add      rsp, 8
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 49, prolog size 4, PerfScore 11.75, instruction count 12, allocated bytes for code 49 (MethodHash=5fc80ecc) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[long]):System.Text.Json.Nodes.JsonNode (FullOpts)
+; Total bytes of code 26, prolog size 1, PerfScore 8.50, instruction count 8, allocated bytes for code 26 (MethodHash=5fc80ecc) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[long]):System.Text.Json.Nodes.JsonNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -49,9 +44,9 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x04
+  SizeOfProlog      : 0x01
   CountOfUnwindCodes: 1
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 2 * 8 + 8 = 24 = 0x18
+    CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08

+15 (+4.78%) : 16292.dasm - System.Globalization.TimeSpanParse:TryParseExactMultipleTimeSpan(System.ReadOnlySpan`1[ushort],System.String[],System.IFormatProvider,int,byref):ubyte (FullOpts)

@@ -15,42 +15,41 @@
 ;  V03 arg3         [V03,T08] (  3,  6   )     int  ->  r12         single-def
 ;  V04 arg4         [V04,T14] (  7,  4.50)   byref  ->  [rbp-0x68]  single-def
 ;  V05 loc0         [V05,T00] (  5, 16.50)     int  ->  [rbp-0x2C] 
-;  V06 loc1         [V06,T03] (  4, 14   )     ref  ->  rdx         class-hnd exact <System.String>
+;  V06 loc1         [V06,T03] (  4, 14   )     ref  ->  rdi         class-hnd exact <System.String>
 ;  V07 loc2         [V07    ] (  6, 20.50)  struct (32) [rbp-0x50]  do-not-enreg[XSF] must-init addr-exposed ld-addr-op <System.Globalization.TimeSpanParse+TimeSpanResult>
 ;* V08 loc3         [V08    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[ushort]>
 ;  V09 OutArgs      [V09    ] (  1,  1   )  struct ( 8) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V11 tmp2         [V11    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
-;* V12 tmp3         [V12,T19] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;* V12 tmp3         [V12,T18] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
 ;* V13 tmp4         [V13    ] (  0,  0   )  struct (16) zero-ref    "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V14 tmp5         [V14    ] (  0,  0   )  struct (16) zero-ref    multireg-arg "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V15 tmp6         [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V16 tmp7         [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
 ;  V17 tmp8         [V17,T02] (  2, 16   )     int  ->  rsi         "Inlining Arg"
-;  V18 tmp9         [V18,T01] (  2, 16   )   byref  ->  rdx         "Inlining Arg"
+;  V18 tmp9         [V18,T01] (  2, 16   )   byref  ->  rdi         "Inlining Arg"
 ;* V19 tmp10        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp11        [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V21 tmp12        [V21,T16] (  4,  4   )     int  ->  rax         "Single return block return value"
 ;  V22 tmp13        [V22,T05] (  3,  9   )   byref  ->  r15         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
 ;  V23 tmp14        [V23,T04] (  4,  9.50)     int  ->  rbx         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;* V24 tmp15        [V24,T20] (  0,  0   )   ubyte  ->  zero-ref    "field V08.hasValue (fldOffset=0x0)" P-INDEP
-;* V25 tmp16        [V25,T21] (  0,  0   )  ushort  ->  zero-ref    "field V08.value (fldOffset=0x2)" P-INDEP
+;* V24 tmp15        [V24,T19] (  0,  0   )   ubyte  ->  zero-ref    "field V08.hasValue (fldOffset=0x0)" P-INDEP
+;* V25 tmp16        [V25,T20] (  0,  0   )  ushort  ->  zero-ref    "field V08.value (fldOffset=0x2)" P-INDEP
 ;* V26 tmp17        [V26    ] (  0,  0   )   byref  ->  zero-ref    "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V27 tmp18        [V27    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
 ;* V28 tmp19        [V28    ] (  0,  0   )   byref  ->  zero-ref    "field V11._reference (fldOffset=0x0)" P-INDEP
 ;* V29 tmp20        [V29    ] (  0,  0   )     int  ->  zero-ref    "field V11._length (fldOffset=0x8)" P-INDEP
 ;* V30 tmp21        [V30    ] (  0,  0   )   byref  ->  zero-ref    "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
-;  V32 tmp23        [V32,T10] (  2,  8   )   byref  ->  rdx         "field V14._reference (fldOffset=0x0)" P-INDEP
-;  V33 tmp24        [V33,T12] (  2,  8   )     int  ->   r8         "field V14._length (fldOffset=0x8)" P-INDEP
-;  V34 tmp25        [V34,T11] (  2,  8   )   byref  ->  rdx         "field V15._reference (fldOffset=0x0)" P-INDEP
+;  V32 tmp23        [V32,T10] (  2,  8   )   byref  ->   r8         "field V14._reference (fldOffset=0x0)" P-INDEP
+;  V33 tmp24        [V33,T12] (  2,  8   )     int  ->   r9         "field V14._length (fldOffset=0x8)" P-INDEP
+;  V34 tmp25        [V34,T11] (  2,  8   )   byref  ->  rdi         "field V15._reference (fldOffset=0x0)" P-INDEP
 ;  V35 tmp26        [V35,T13] (  2,  8   )     int  ->  rsi         "field V15._length (fldOffset=0x8)" P-INDEP
 ;* V36 tmp27        [V36    ] (  0,  0   )   byref  ->  zero-ref    "field V16._reference (fldOffset=0x0)" P-INDEP
 ;* V37 tmp28        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V16._length (fldOffset=0x8)" P-INDEP
 ;  V38 tmp29        [V38,T17] (  3,  3   )  struct ( 8) [rbp-0x58]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[ushort]>
-;  V39 tmp30        [V39,T18] (  2,  2   )   byref  ->  rdi         single-def "argument with side effect"
-;  V40 cse0         [V40,T15] (  4,  5.50)     int  ->  [rbp-0x5C]  spill-single-def "CSE - moderate"
-;  V41 cse1         [V41,T09] (  3,  8   )     int  ->  rsi         "CSE - moderate"
+;  V39 cse0         [V39,T15] (  4,  5.50)     int  ->  [rbp-0x5C]  spill-single-def "CSE - moderate"
+;  V40 cse1         [V40,T09] (  3,  8   )     int  ->  rsi         "CSE - moderate"
 ;
 ; Lcl frame size = 72
 
@@ -74,17 +73,17 @@ G_M22928_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      r13, rcx
        ; gcrRegs +[r13]
        mov      r12d, r8d
-       mov      rdi, r9
-       ; byrRegs +[rdi]
+       mov      rcx, r9
+       ; byrRegs +[rcx]
                        ;; size=50 bbWeight=1 PerfScore 12.58
-G_M22928_IG02:        ; bbWeight=1, gcrefRegs=6000 {r13 r14}, byrefRegs=8080 {rdi r15}, byref, isz
+G_M22928_IG02:        ; bbWeight=1, gcrefRegs=6000 {r13 r14}, byrefRegs=8002 {rcx r15}, byref, isz
        test     r14, r14
        jne      SHORT G_M22928_IG05
                        ;; size=5 bbWeight=1 PerfScore 1.25
-G_M22928_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
+G_M22928_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref
        ; gcrRegs -[r13-r14]
        ; byrRegs -[r15]
-       cmp      byte  ptr [rdi+0x08], 0
+       cmp      byte  ptr [rcx+0x08], 0
        jne      G_M22928_IG18
        xor      eax, eax
                        ;; size=12 bbWeight=0.50 PerfScore 2.12
@@ -98,70 +97,82 @@ G_M22928_IG04:        ; bbWeight=0.50, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=15 bbWeight=0.50 PerfScore 2.12
-G_M22928_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=6000 {r13 r14}, byrefRegs=8080 {rdi r15}, gcvars, byref, isz
+G_M22928_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=6000 {r13 r14}, byrefRegs=8002 {rcx r15}, gcvars, byref, isz
        ; gcrRegs +[r13-r14]
        ; byrRegs +[r15]
        test     ebx, ebx
        jne      SHORT G_M22928_IG07
                        ;; size=4 bbWeight=0.50 PerfScore 0.62
-G_M22928_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
+G_M22928_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref
        ; gcrRegs -[r13-r14]
        ; byrRegs -[r15]
+       mov      rdi, rcx
+       ; byrRegs +[rdi]
        call     [System.Globalization.TimeSpanParse+TimeSpanResult:SetBadTimeSpanFailure():ubyte:this]
-       ; byrRegs -[rdi]
+       ; byrRegs -[rcx rdi]
        jmp      G_M22928_IG14
-                       ;; size=11 bbWeight=0.50 PerfScore 2.50
-G_M22928_IG07:        ; bbWeight=0.50, gcrefRegs=6000 {r13 r14}, byrefRegs=8080 {rdi r15}, byref, isz
+                       ;; size=14 bbWeight=0.50 PerfScore 2.62
+G_M22928_IG07:        ; bbWeight=0.50, gcrefRegs=6000 {r13 r14}, byrefRegs=8002 {rcx r15}, byref, isz
        ; gcrRegs +[r13-r14]
-       ; byrRegs +[rdi r15]
-       mov      ecx, dword ptr [r14+0x08]
-       mov      dword ptr [rbp-0x5C], ecx
-       test     ecx, ecx
+       ; byrRegs +[rcx r15]
+       mov      edx, dword ptr [r14+0x08]
+       mov      dword ptr [rbp-0x5C], edx
+       test     edx, edx
        jne      SHORT G_M22928_IG08
+       mov      rdi, rcx
+       ; byrRegs +[rdi]
        call     [System.Globalization.TimeSpanParse+TimeSpanResult:SetNoFormatSpecifierFailure():ubyte:this]
        ; gcrRegs -[r13-r14]
-       ; byrRegs -[rdi r15]
+       ; byrRegs -[rcx rdi r15]
        jmp      G_M22928_IG14
-                       ;; size=22 bbWeight=0.50 PerfScore 4.62
-G_M22928_IG08:        ; bbWeight=0.50, gcrefRegs=6000 {r13 r14}, byrefRegs=8080 {rdi r15}, byref, isz
+                       ;; size=25 bbWeight=0.50 PerfScore 4.75
+G_M22928_IG08:        ; bbWeight=0.50, gcrefRegs=6000 {r13 r14}, byrefRegs=8002 {rcx r15}, byref, isz
        ; gcrRegs +[r13-r14]
-       ; byrRegs +[rdi r15]
+       ; byrRegs +[rcx r15]
        xor      eax, eax
-       test     ecx, ecx
+       test     edx, edx
        jle      SHORT G_M22928_IG06
                        ;; size=6 bbWeight=0.50 PerfScore 0.75
-G_M22928_IG09:        ; bbWeight=4, gcrefRegs=6000 {r13 r14}, byrefRegs=8080 {rdi r15}, byref, isz
+G_M22928_IG09:        ; bbWeight=4, gcrefRegs=6000 {r13 r14}, byrefRegs=8002 {rcx r15}, byref, isz
        mov      dword ptr [rbp-0x2C], eax
-       mov      esi, eax
-       mov      rdx, gword ptr [r14+8*rsi+0x10]
-       ; gcrRegs +[rdx]
-       test     rdx, rdx
+       mov      edi, eax
+       mov      rdi, gword ptr [r14+8*rdi+0x10]
+       ; gcrRegs +[rdi]
+       test     rdi, rdi
        je       SHORT G_M22928_IG13
                        ;; size=15 bbWeight=4 PerfScore 18.00
-G_M22928_IG10:        ; bbWeight=2, gcrefRegs=6004 {rdx r13 r14}, byrefRegs=8080 {rdi r15}, byref, isz
-       mov      esi, dword ptr [rdx+0x08]
+G_M22928_IG10:        ; bbWeight=2, gcrefRegs=6080 {rdi r13 r14}, byrefRegs=8002 {rcx r15}, byref, isz
+       mov      esi, dword ptr [rdi+0x08]
        test     esi, esi
        je       SHORT G_M22928_IG13
                        ;; size=7 bbWeight=2 PerfScore 6.50
-G_M22928_IG11:        ; bbWeight=4, gcrefRegs=6004 {rdx r13 r14}, byrefRegs=8080 {rdi r15}, byref, isz
-       mov      bword ptr [rbp-0x68], rdi
+G_M22928_IG11:        ; bbWeight=4, gcrefRegs=6080 {rdi r13 r14}, byrefRegs=8002 {rcx r15}, byref, isz
+       mov      bword ptr [rbp-0x68], rcx
        ; GC ptr vars +{V04}
        xor      r8d, r8d
        mov      qword ptr [rbp-0x50], r8
        mov      byte  ptr [rbp-0x48], 0
        mov      bword ptr [rbp-0x40], r15
        mov      dword ptr [rbp-0x38], ebx
-       add      rdx, 12
-       ; gcrRegs -[rdx]
-       ; byrRegs +[rdx]
-       mov      r8d, esi
-       lea      rsi, [rbp-0x50]
-       mov      qword ptr [rsp], rsi
+       add      rdi, 12
+       ; gcrRegs -[rdi]
+       ; byrRegs +[rdi]
+       mov      r8, rdi
+       ; byrRegs +[r8]
+       mov      r9d, esi
+       lea      rdi, [rbp-0x50]
+       ; byrRegs -[rdi]
+       mov      qword ptr [rsp], rdi
        mov      rdi, r15
+       ; byrRegs +[rdi]
        mov      esi, ebx
-       mov      ecx, r8d
+       mov      rdx, r8
+       ; byrRegs +[rdx]
+       mov      ecx, r9d
+       ; byrRegs -[rcx]
        mov      r8, r13
        ; gcrRegs +[r8]
+       ; byrRegs -[r8]
        mov      r9d, r12d
        call     [<unknown method>]
        ; gcrRegs -[r8]
@@ -170,25 +181,27 @@ G_M22928_IG11:        ; bbWeight=4, gcrefRegs=6004 {rdx r13 r14}, byrefRegs=8080
        jne      SHORT G_M22928_IG16
        mov      eax, dword ptr [rbp-0x2C]
        inc      eax
-       mov      edi, dword ptr [rbp-0x5C]
-       cmp      edi, eax
-       mov      rdi, bword ptr [rbp-0x68]
-       ; byrRegs +[rdi]
+       mov      esi, dword ptr [rbp-0x5C]
+       cmp      esi, eax
+       mov      rcx, bword ptr [rbp-0x68]
+       ; byrRegs +[rcx]
        jg       SHORT G_M22928_IG09
-                       ;; size=77 bbWeight=4 PerfScore 69.00
-G_M22928_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, gcvars, byref
+                       ;; size=83 bbWeight=4 PerfScore 71.00
+G_M22928_IG12:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, gcvars, byref
        ; gcrRegs -[r13-r14]
        ; byrRegs -[r15]
        ; GC ptr vars -{V04}
        jmp      G_M22928_IG06
                        ;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M22928_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0080 {rdi}, byref
+G_M22928_IG13:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref
        mov      byte  ptr [rbp-0x58], 0
        mov      word  ptr [rbp-0x56], 0
        mov      esi, dword ptr [rbp-0x58]
+       mov      rdi, rcx
+       ; byrRegs +[rdi]
        call     [System.Globalization.TimeSpanParse+TimeSpanResult:SetBadFormatSpecifierFailure(System.Nullable`1[ushort]):ubyte:this]
-       ; byrRegs -[rdi]
-                       ;; size=19 bbWeight=0.50 PerfScore 3.00
+       ; byrRegs -[rcx rdi]
+                       ;; size=22 bbWeight=0.50 PerfScore 3.12
 G_M22928_IG14:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        movzx    rax, al
                        ;; size=3 bbWeight=0.50 PerfScore 0.12
@@ -231,7 +244,7 @@ G_M22928_IG18:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
                        ;; size=17 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 314, prolog size 33, PerfScore 130.08, instruction count 105, allocated bytes for code 314 (MethodHash=d9dba66f) for method System.Globalization.TimeSpanParse:TryParseExactMultipleTimeSpan(System.ReadOnlySpan`1[ushort],System.String[],System.IFormatProvider,int,byref):ubyte (FullOpts)
+; Total bytes of code 329, prolog size 33, PerfScore 132.46, instruction count 110, allocated bytes for code 329 (MethodHash=d9dba66f) for method System.Globalization.TimeSpanParse:TryParseExactMultipleTimeSpan(System.ReadOnlySpan`1[ushort],System.String[],System.IFormatProvider,int,byref):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:

+3 (+7.89%) : 31041.dasm - Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable1[int]):this (FullOpts)

@@ -8,7 +8,7 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel>
+;  V00 this         [V00,T01] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->  rsi         class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
 ;* V02 arg2         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <Microsoft.CodeAnalysis.ISymbol>
 ;  V03 arg3         [V03,T04] (  3,  3   )   ubyte  ->  rcx         single-def
@@ -17,34 +17,30 @@
 ;* V06 arg6         [V06    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Nullable`1[int]>
 ;* V07 loc0         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[int]>
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V09 tmp1         [V09,T05] (  2,  2   )     ref  ->   r9         single-def "field V05._source (fldOffset=0x0)" P-INDEP
-;* V10 tmp2         [V10,T11] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V07.hasValue (fldOffset=0x0)" P-INDEP
-;* V11 tmp3         [V11,T12] (  0,  0   )     int  ->  zero-ref    single-def "field V07.value (fldOffset=0x4)" P-INDEP
-;  V12 tmp4         [V12,T01] (  3,  6   )  struct ( 8) [rsp+0x00]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
-;* V13 tmp5         [V13,T10] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V14 tmp6         [V14,T06] (  2,  4   )     ref  ->  rsi         single-def "argument with side effect"
-;  V15 tmp7         [V15,T09] (  2,  4   )     int  ->  rdx         "argument with side effect"
-;  V16 tmp8         [V16,T07] (  2,  4   )     ref  ->  rcx         single-def "argument with side effect"
-;  V17 tmp9         [V17,T08] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V09 tmp1         [V09,T05] (  2,  2   )     ref  ->  rax         single-def "field V05._source (fldOffset=0x0)" P-INDEP
+;* V10 tmp2         [V10,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V07.hasValue (fldOffset=0x0)" P-INDEP
+;* V11 tmp3         [V11,T07] (  0,  0   )     int  ->  zero-ref    single-def "field V07.value (fldOffset=0x4)" P-INDEP
+;  V12 tmp4         [V12,T00] (  3,  6   )  struct ( 8) [rsp+0x00]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
 ;
 ; Lcl frame size = 8
 
 G_M26014_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rax
-                       ;; size=1 bbWeight=1 PerfScore 1.00
-G_M26014_IG02:        ; bbWeight=1, gcrefRegs=03C0 {rsi rdi r8 r9}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rsi rdi r8-r9]
+       mov      rax, r9
+       ; gcrRegs +[rax]
+                       ;; size=4 bbWeight=1 PerfScore 1.25
+G_M26014_IG02:        ; bbWeight=1, gcrefRegs=01C1 {rax rsi rdi r8}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rsi rdi r8]
+       mov      byte  ptr [rsp], 0
+       xor      r9d, r9d
+       mov      dword ptr [rsp+0x04], r9d
+       mov      r9, qword ptr [rsp]
        movzx    rdx, cl
        mov      rcx, r8
        ; gcrRegs +[rcx]
-       mov      r8, r9
-       mov      byte  ptr [rsp], 0
-       xor      r9d, r9d
-       ; gcrRegs -[r9]
-       mov      dword ptr [rsp+0x04], r9d
-       mov      r9, qword ptr [rsp]
+       mov      r8, rax
        call     [Microsoft.CodeAnalysis.VisualBasic.VisualBasicDeclarationComputer:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SemanticModel,Microsoft.CodeAnalysis.SyntaxNode,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable`1[int])]
-       ; gcrRegs -[rcx rsi rdi r8]
+       ; gcrRegs -[rax rcx rsi rdi r8]
        ; gcr arg pop 0
        nop      
                        ;; size=32 bbWeight=1 PerfScore 7.25
@@ -53,7 +49,7 @@ G_M26014_IG03:        ; bbWeight=1, epilog, nogc, extend
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 38, prolog size 1, PerfScore 9.50, instruction count 12, allocated bytes for code 38 (MethodHash=5e2a9a61) for method Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable`1[int]):this (FullOpts)
+; Total bytes of code 41, prolog size 1, PerfScore 9.75, instruction count 13, allocated bytes for code 41 (MethodHash=5e2a9a61) for method Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable`1[int]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+27 (+15.79%) : 22236.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:CreateDirectoryHandle(System.String,ubyte):long:this (FullOpts)

@@ -9,9 +9,9 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  3,  2.50)     ref  ->  [rbp-0x30]  this class-hnd single-def <System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]>
-;  V01 arg1         [V01,T01] (  4,  3   )     ref  ->  [rbp-0x38]  class-hnd single-def <System.String>
-;  V02 arg2         [V02,T02] (  3,  2.50)   ubyte  ->  r14         single-def
+;  V00 this         [V00,T01] (  4,  2.50)     ref  ->  [rbp-0x30]  this class-hnd single-def <System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]>
+;  V01 arg1         [V01,T00] (  4,  3   )     ref  ->  [rbp-0x38]  class-hnd single-def <System.String>
+;  V02 arg2         [V02,T02] (  4,  2.50)   ubyte  ->  r14         single-def
 ;  V03 loc0         [V03,T05] (  3,  2.50)    long  ->  rax        
 ;* V04 loc1         [V04    ] (  0,  0   )  struct ( 8) zero-ref    <Interop+ErrorInfo>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -19,10 +19,9 @@
 ;  V07 tmp2         [V07,T04] (  3,  3   )     int  ->  r13         "Inlining Arg"
 ;* V08 tmp3         [V08    ] (  0,  0   )     int  ->  zero-ref    "field V04._error (fldOffset=0x0)" P-INDEP
 ;* V09 tmp4         [V09    ] (  0,  0   )     int  ->  zero-ref    "field V04._rawErrno (fldOffset=0x4)" P-INDEP
-;  V10 tmp5         [V10,T06] (  2,  1   )     int  ->  rbx         "field V06._error (fldOffset=0x0)" P-INDEP
-;  V11 tmp6         [V11,T07] (  2,  1   )     int  ->  r13         "field V06._rawErrno (fldOffset=0x4)" P-INDEP
-;  V12 tmp7         [V12,T03] (  4,  3   )  struct ( 8) [rbp-0x28]  do-not-enreg[SF] "by-value struct argument" <Interop+ErrorInfo>
-;* V13 tmp8         [V13,T08] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V10 tmp5         [V10,T06] (  3,  1   )     int  ->  rbx         "field V06._error (fldOffset=0x0)" P-INDEP
+;  V11 tmp6         [V11,T07] (  3,  1   )     int  ->  r13         "field V06._rawErrno (fldOffset=0x4)" P-INDEP
+;  V12 tmp7         [V12,T03] (  7,  3   )  struct ( 8) [rbp-0x28]  do-not-enreg[SF] "by-value struct argument" <Interop+ErrorInfo>
 ;
 ; Lcl frame size = 32
 
@@ -36,17 +35,17 @@ G_M13357_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        lea      rbp, [rsp+0x40]
        mov      gword ptr [rbp-0x30], rdi
        ; GC ptr vars +{V00}
-       mov      r15, rsi
-       ; gcrRegs +[r15]
+       mov      rbx, rsi
+       ; gcrRegs +[rbx]
        mov      r14d, edx
                        ;; size=27 bbWeight=1 PerfScore 7.25
-G_M13357_IG02:        ; bbWeight=1, gcVars=0000000000000001 {V00}, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       mov      gword ptr [rbp-0x38], r15
+G_M13357_IG02:        ; bbWeight=1, gcVars=0000000000000002 {V00}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+       mov      gword ptr [rbp-0x38], rbx
        ; GC ptr vars +{V01}
-       mov      rdi, r15
+       mov      rdi, rbx
        ; gcrRegs +[rdi]
        call     [<unknown method>]
-       ; gcrRegs -[rdi r15]
+       ; gcrRegs -[rbx rdi]
        test     rax, rax
        jne      SHORT G_M13357_IG07
                        ;; size=18 bbWeight=1 PerfScore 5.50
@@ -58,24 +57,24 @@ G_M13357_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
 G_M13357_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        call     [<unknown method>]
        mov      ebx, eax
-       mov      rdi, qword ptr [(reloc)]
-       cmp      dword ptr [rdi], 0
+       mov      rsi, qword ptr [(reloc)]
+       cmp      dword ptr [rsi], 0
        jne      SHORT G_M13357_IG08
-                       ;; size=20 bbWeight=0.50 PerfScore 4.62
-G_M13357_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        mov      dword ptr [rbp-0x28], ebx
        mov      dword ptr [rbp-0x24], r13d
-       mov      rdi, gword ptr [rbp-0x30]
-       ; gcrRegs +[rdi]
        mov      rsi, qword ptr [rbp-0x28]
        movzx    rdx, r14b
-       ; GC ptr vars -{V00}
+       mov      rdi, gword ptr [rbp-0x30]
+       ; gcrRegs +[rdi]
+       ; GC ptr vars -{V00 V01}
        call     [System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:InternalContinueOnError(Interop+ErrorInfo,ubyte):ubyte:this]
        ; gcrRegs -[rdi]
        test     eax, eax
        je       SHORT G_M13357_IG09
+                       ;; size=49 bbWeight=0.50 PerfScore 8.88
+G_M13357_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        xor      eax, eax
-                       ;; size=31 bbWeight=0.50 PerfScore 4.38
+                       ;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M13357_IG06:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
@@ -86,7 +85,6 @@ G_M13357_IG06:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
                        ;; size=13 bbWeight=0.50 PerfScore 1.88
 G_M13357_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
-       ; GC ptr vars -{V01}
        add      rsp, 32
        pop      rbx
        pop      r13
@@ -98,15 +96,23 @@ G_M13357_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
 G_M13357_IG08:        ; bbWeight=0, gcVars=0000000000000003 {V00 V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
        ; GC ptr vars +{V00 V01}
        call     [CORINFO_HELP_POLL_GC]
-       jmp      SHORT G_M13357_IG05
-                       ;; size=8 bbWeight=0 PerfScore 0.00
-G_M13357_IG09:        ; bbWeight=0, gcVars=0000000000000002 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; GC ptr vars -{V00}
+       mov      dword ptr [rbp-0x28], ebx
+       mov      dword ptr [rbp-0x24], r13d
+       mov      rsi, qword ptr [rbp-0x28]
+       movzx    rdx, r14b
+       mov      rdi, gword ptr [rbp-0x30]
+       ; gcrRegs +[rdi]
+       ; GC ptr vars -{V00 V01}
+       call     [System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:InternalContinueOnError(Interop+ErrorInfo,ubyte):ubyte:this]
+       ; gcrRegs -[rdi]
+       test     eax, eax
+       jne      SHORT G_M13357_IG05
+                       ;; size=35 bbWeight=0 PerfScore 0.00
+G_M13357_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rdi, qword ptr [rbp-0x28]
        mov      rsi, gword ptr [rbp-0x38]
        ; gcrRegs +[rsi]
        mov      edx, 1
-       ; GC ptr vars -{V01}
        call     [<unknown method>]
        ; gcrRegs -[rsi] +[rax]
        mov      rdi, rax
@@ -116,7 +122,7 @@ G_M13357_IG09:        ; bbWeight=0, gcVars=0000000000000002 {V01}, gcrefRegs=000
        int3     
                        ;; size=29 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 171, prolog size 17, PerfScore 27.25, instruction count 55, allocated bytes for code 171 (MethodHash=29b6cbd2) for method System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:CreateDirectoryHandle(System.String,ubyte):long:this (FullOpts)
+; Total bytes of code 198, prolog size 17, PerfScore 27.25, instruction count 62, allocated bytes for code 198 (MethodHash=29b6cbd2) for method System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:CreateDirectoryHandle(System.String,ubyte):long:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

libraries.pmi.linux.x64.checked.mch

-23 (-46.94%) : 134538.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)

@@ -10,37 +10,32 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Nullable`1[System.DateTime]>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  2,  2   )   ubyte  ->  rdi         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
-;  V04 tmp2         [V04,T03] (  2,  2   )    long  ->  rsi         single-def "field V00.value (fldOffset=0x8)" P-INDEP
-;* V05 tmp3         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp4         [V06,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
-;  V07 tmp5         [V07,T01] (  3,  6   )  struct ( 8) [rsp+0x10]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V08 tmp6         [V08,T00] (  4,  8   )  struct (16) [rsp+0x00]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.Nullable`1[System.DateTime]>
+;  V03 tmp1         [V03,T01] (  2,  2   )   ubyte  ->  rdi         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
+;  V04 tmp2         [V04,T02] (  2,  2   )    long  ->  rsi         single-def "field V00.value (fldOffset=0x8)" P-INDEP
+;* V05 tmp3         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
+;  V07 tmp5         [V07,T00] (  3,  6   )  struct ( 8) [rsp+0x00]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 24
+; Lcl frame size = 8
 
 G_M46195_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 24
-                       ;; size=4 bbWeight=1 PerfScore 0.25
+       push     rax
+                       ;; size=1 bbWeight=1 PerfScore 1.00
 G_M46195_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      byte  ptr [rsp], dil
-       mov      qword ptr [rsp+0x08], rsi
-       mov      byte  ptr [rsp+0x10], 0
-       mov      byte  ptr [rsp+0x11], 0
-       mov      rdi, qword ptr [rsp]
-       mov      rsi, qword ptr [rsp+0x08]
-       movzx    rdx, word  ptr [rsp+0x10]
+       mov      byte  ptr [rsp], 0
+       mov      byte  ptr [rsp+0x01], 0
+       movzx    rdx, word  ptr [rsp]
        call     [System.Text.Json.Nodes.JsonValue:Create(System.Nullable`1[System.DateTime],System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonValue]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        nop      
-                       ;; size=40 bbWeight=1 PerfScore 10.25
+                       ;; size=20 bbWeight=1 PerfScore 6.25
 G_M46195_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 24
+       add      rsp, 8
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 49, prolog size 4, PerfScore 11.75, instruction count 12, allocated bytes for code 49 (MethodHash=8d094b8c) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)
+; Total bytes of code 26, prolog size 1, PerfScore 8.50, instruction count 8, allocated bytes for code 26 (MethodHash=8d094b8c) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -48,9 +43,9 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x04
+  SizeOfProlog      : 0x01
   CountOfUnwindCodes: 1
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 2 * 8 + 8 = 24 = 0x18
+    CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08

-23 (-46.94%) : 134539.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.DateTimeOffset):System.Text.Json.Nodes.JsonNode (FullOpts)

@@ -10,37 +10,32 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.DateTimeOffset>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  2,  2   )   short  ->  rdi         single-def "field V00._offsetMinutes (fldOffset=0x0)" P-INDEP
-;  V04 tmp2         [V04,T03] (  2,  2   )    long  ->  rsi         single-def "field V00._dateTime (fldOffset=0x8)" P-INDEP
-;* V05 tmp3         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp4         [V06,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
-;  V07 tmp5         [V07,T01] (  3,  6   )  struct ( 8) [rsp+0x10]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V08 tmp6         [V08,T00] (  4,  8   )  struct (16) [rsp+0x00]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.DateTimeOffset>
+;  V03 tmp1         [V03,T01] (  2,  2   )   short  ->  rdi         single-def "field V00._offsetMinutes (fldOffset=0x0)" P-INDEP
+;  V04 tmp2         [V04,T02] (  2,  2   )    long  ->  rsi         single-def "field V00._dateTime (fldOffset=0x8)" P-INDEP
+;* V05 tmp3         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
+;  V07 tmp5         [V07,T00] (  3,  6   )  struct ( 8) [rsp+0x00]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 24
+; Lcl frame size = 8
 
 G_M31891_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 24
-                       ;; size=4 bbWeight=1 PerfScore 0.25
+       push     rax
+                       ;; size=1 bbWeight=1 PerfScore 1.00
 G_M31891_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      word  ptr [rsp], di
-       mov      qword ptr [rsp+0x08], rsi
-       mov      byte  ptr [rsp+0x10], 0
-       mov      byte  ptr [rsp+0x11], 0
-       mov      rdi, qword ptr [rsp]
-       mov      rsi, qword ptr [rsp+0x08]
-       movzx    rdx, word  ptr [rsp+0x10]
+       mov      byte  ptr [rsp], 0
+       mov      byte  ptr [rsp+0x01], 0
+       movzx    rdx, word  ptr [rsp]
        call     [System.Text.Json.Nodes.JsonValue:Create(System.DateTimeOffset,System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonValue]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        nop      
-                       ;; size=40 bbWeight=1 PerfScore 10.25
+                       ;; size=20 bbWeight=1 PerfScore 6.25
 G_M31891_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 24
+       add      rsp, 8
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 49, prolog size 4, PerfScore 11.75, instruction count 12, allocated bytes for code 49 (MethodHash=d63e836c) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.DateTimeOffset):System.Text.Json.Nodes.JsonNode (FullOpts)
+; Total bytes of code 26, prolog size 1, PerfScore 8.50, instruction count 8, allocated bytes for code 26 (MethodHash=d63e836c) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.DateTimeOffset):System.Text.Json.Nodes.JsonNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -48,9 +43,9 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x04
+  SizeOfProlog      : 0x01
   CountOfUnwindCodes: 1
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 2 * 8 + 8 = 24 = 0x18
+    CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08

-23 (-46.94%) : 134563.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)

@@ -10,37 +10,32 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Nullable`1[ulong]>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  2,  2   )   ubyte  ->  rdi         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
-;  V04 tmp2         [V04,T03] (  2,  2   )    long  ->  rsi         single-def "field V00.value (fldOffset=0x8)" P-INDEP
-;* V05 tmp3         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp4         [V06,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
-;  V07 tmp5         [V07,T01] (  3,  6   )  struct ( 8) [rsp+0x10]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V08 tmp6         [V08,T00] (  4,  8   )  struct (16) [rsp+0x00]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.Nullable`1[ulong]>
+;  V03 tmp1         [V03,T01] (  2,  2   )   ubyte  ->  rdi         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
+;  V04 tmp2         [V04,T02] (  2,  2   )    long  ->  rsi         single-def "field V00.value (fldOffset=0x8)" P-INDEP
+;* V05 tmp3         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
+;  V07 tmp5         [V07,T00] (  3,  6   )  struct ( 8) [rsp+0x00]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 24
+; Lcl frame size = 8
 
 G_M16550_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 24
-                       ;; size=4 bbWeight=1 PerfScore 0.25
+       push     rax
+                       ;; size=1 bbWeight=1 PerfScore 1.00
 G_M16550_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      byte  ptr [rsp], dil
-       mov      qword ptr [rsp+0x08], rsi
-       mov      byte  ptr [rsp+0x10], 0
-       mov      byte  ptr [rsp+0x11], 0
-       mov      rdi, qword ptr [rsp]
-       mov      rsi, qword ptr [rsp+0x08]
-       movzx    rdx, word  ptr [rsp+0x10]
+       mov      byte  ptr [rsp], 0
+       mov      byte  ptr [rsp+0x01], 0
+       movzx    rdx, word  ptr [rsp]
        call     [System.Text.Json.Nodes.JsonValue:Create(System.Nullable`1[ulong],System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonValue]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        nop      
-                       ;; size=40 bbWeight=1 PerfScore 10.25
+                       ;; size=20 bbWeight=1 PerfScore 6.25
 G_M16550_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 24
+       add      rsp, 8
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 49, prolog size 4, PerfScore 11.75, instruction count 12, allocated bytes for code 49 (MethodHash=b260bf59) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)
+; Total bytes of code 26, prolog size 1, PerfScore 8.50, instruction count 8, allocated bytes for code 26 (MethodHash=b260bf59) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -48,9 +43,9 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x04
+  SizeOfProlog      : 0x01
   CountOfUnwindCodes: 1
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 2 * 8 + 8 = 24 = 0x18
+    CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08

+6 (+6.19%) : 129391.dasm - System.Net.NegotiateAuthenticationPal+UnixNegotiateAuthenticationPal:VerifyMIC(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan1[ubyte]):ubyte:this (FullOpts)

@@ -14,32 +14,29 @@
 ;* V03 loc0         [V03    ] (  0,  0   )     int  ->  zero-ref   
 ;  V04 loc1         [V04    ] (  1,  1   )     int  ->  [rsp+0x10]  do-not-enreg[X] addr-exposed ld-addr-op
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06,T14] (  2,  2   )     int  ->  rax         "Inline return value spill temp"
+;  V06 tmp1         [V06,T11] (  2,  2   )     int  ->  rax         "Inline return value spill temp"
 ;* V07 tmp2         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;  V08 tmp3         [V08    ] (  2,  2   )   byref  ->  [rsp+0x08]  must-init pinned "Inline stloc first use temp"
 ;* V09 tmp4         [V09    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;* V10 tmp5         [V10    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;  V11 tmp6         [V11    ] (  2,  2   )   byref  ->  [rsp+0x00]  must-init pinned "Inline stloc first use temp"
 ;* V12 tmp7         [V12    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V13 tmp8         [V13,T05] (  2,  4   )     ref  ->   r8         class-hnd exact single-def "Inlining Arg" <Microsoft.Win32.SafeHandles.SafeGssContextHandle>
+;  V13 tmp8         [V13,T05] (  2,  4   )     ref  ->  rdx         class-hnd exact single-def "Inlining Arg" <Microsoft.Win32.SafeHandles.SafeGssContextHandle>
 ;* V14 tmp9         [V14    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V15 tmp10        [V15,T00] (  5,  5   )   byref  ->  rdi         "Inline stloc first use temp"
+;  V15 tmp10        [V15,T00] (  5,  5   )   byref  ->   r8         "Inline stloc first use temp"
 ;* V16 tmp11        [V16    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V17 tmp12        [V17,T01] (  5,  5   )   byref  ->  rsi         "Inline stloc first use temp"
+;  V17 tmp12        [V17,T01] (  5,  5   )   byref  ->   r8         "Inline stloc first use temp"
 ;  V18 tmp13        [V18,T06] (  2,  2   )   byref  ->  rsi         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V19 tmp14        [V19,T03] (  3,  3   )     int  ->  rdx         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V19 tmp14        [V19,T03] (  3,  3   )     int  ->   r9         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;  V20 tmp15        [V20,T07] (  2,  2   )   byref  ->  rcx         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
-;  V21 tmp16        [V21,T04] (  3,  3   )     int  ->   r9         single-def "field V02._length (fldOffset=0x8)" P-INDEP
+;  V21 tmp16        [V21,T04] (  3,  3   )     int  ->  rax         single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V22 tmp17        [V22    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V07._reference (fldOffset=0x0)" P-INDEP
 ;* V23 tmp18        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V07._length (fldOffset=0x8)" P-INDEP
 ;* V24 tmp19        [V24    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V10._reference (fldOffset=0x0)" P-INDEP
 ;* V25 tmp20        [V25    ] (  0,  0   )     int  ->  zero-ref    "field V10._length (fldOffset=0x8)" P-INDEP
-;  V26 tmp21        [V26,T09] (  2,  4   )    long  ->  rdi         "Cast away GC"
-;  V27 tmp22        [V27,T10] (  2,  4   )    long  ->  rax         "Cast away GC"
-;  V28 tmp23        [V28,T08] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V29 tmp24        [V29,T11] (  2,  4   )    long  ->  rdi         "argument with side effect"
-;  V30 tmp25        [V30,T12] (  2,  4   )     int  ->  rcx         "argument with side effect"
-;  V31 tmp26        [V31,T13] (  2,  4   )    long  ->  rax         "argument with side effect"
+;  V26 tmp21        [V26,T08] (  2,  4   )    long  ->  r10         "Cast away GC"
+;  V27 tmp22        [V27,T09] (  2,  4   )    long  ->   r8         "Cast away GC"
+;  V28 tmp23        [V28,T10] (  2,  4   )    long  ->   r8         "argument with side effect"
 ;
 ; Lcl frame size = 24
 
@@ -48,41 +45,42 @@ G_M45951_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        xor      eax, eax
        mov      qword ptr [rsp+0x08], rax
        mov      qword ptr [rsp], rax
-       mov      r9d, r8d
-                       ;; size=18 bbWeight=1 PerfScore 2.75
+       mov      r9d, edx
+       mov      eax, r8d
+                       ;; size=21 bbWeight=1 PerfScore 3.00
 G_M45951_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0042 {rcx rsi}, byref
        ; gcrRegs +[rdi]
        ; byrRegs +[rcx rsi]
-       mov      r8, gword ptr [rdi+0x18]
-       ; gcrRegs +[r8]
-       xor      rdi, rdi
-       ; gcrRegs -[rdi]
-       ; byrRegs +[rdi]
-       test     edx, edx
-       cmovne   rdi, rsi
-       mov      bword ptr [rsp+0x08], rdi
-       xor      rsi, rsi
+       mov      rdx, gword ptr [rdi+0x18]
+       ; gcrRegs +[rdx]
+       xor      r8, r8
+       ; byrRegs +[r8]
        test     r9d, r9d
-       cmovne   rsi, rcx
-       mov      bword ptr [rsp], rsi
-       mov      ecx, edx
-       ; byrRegs -[rcx]
-       mov      rax, rsi
-       mov      rsi, r8
+       cmovne   r8, rsi
+       mov      bword ptr [rsp+0x08], r8
+       mov      r10, r8
+       xor      r8, r8
+       test     eax, eax
+       cmovne   r8, rcx
+       mov      bword ptr [rsp], r8
+       lea      rdi, [rsp+0x10]
+       ; gcrRegs -[rdi]
+       mov      rsi, rdx
        ; gcrRegs +[rsi]
        ; byrRegs -[rsi]
-       mov      rdx, rdi
-       mov      r8, rax
-       ; gcrRegs -[r8]
-       lea      rdi, [rsp+0x10]
-       ; byrRegs -[rdi]
+       mov      rdx, r10
+       ; gcrRegs -[rdx]
+       mov      ecx, r9d
+       ; byrRegs -[rcx]
+       mov      r9d, eax
        call     [<unknown method>]
        ; gcrRegs -[rsi]
+       ; byrRegs -[r8]
        ; gcr arg pop 0
        xor      rcx, rcx
        ; byrRegs +[rcx]
        mov      bword ptr [rsp+0x08], rcx
-                       ;; size=62 bbWeight=1 PerfScore 11.50
+                       ;; size=65 bbWeight=1 PerfScore 11.50
 G_M45951_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs -[rcx]
        mov      bword ptr [rsp], rcx
@@ -95,7 +93,7 @@ G_M45951_IG04:        ; bbWeight=1, epilog, nogc, extend
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 97, prolog size 15, PerfScore 18.00, instruction count 29, allocated bytes for code 97 (MethodHash=56bb4c80) for method System.Net.NegotiateAuthenticationPal+UnixNegotiateAuthenticationPal:VerifyMIC(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte:this (FullOpts)
+; Total bytes of code 103, prolog size 15, PerfScore 18.25, instruction count 30, allocated bytes for code 103 (MethodHash=56bb4c80) for method System.Net.NegotiateAuthenticationPal+UnixNegotiateAuthenticationPal:VerifyMIC(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+12 (+6.82%) : 130821.dasm - System.Security.Cryptography.Xml.Transform:AcceptsType(System.Type):ubyte:this (FullOpts)

@@ -7,36 +7,37 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T04] (  8, 16.50)     ref  ->  r15         this class-hnd single-def <System.Security.Cryptography.Xml.Transform>
-;  V01 arg1         [V01,T01] (  5, 14   )     ref  ->  rbx         class-hnd single-def <System.Type>
-;  V02 loc0         [V02,T00] (  8, 28.50)     int  ->  r13        
+;  V00 this         [V00,T03] (  8, 16.50)     ref  ->  rbx         this class-hnd single-def <System.Security.Cryptography.Xml.Transform>
+;  V01 arg1         [V01,T04] (  5, 14   )     ref  ->  r15         class-hnd single-def <System.Type>
+;  V02 loc0         [V02,T00] (  7, 24.50)     int  ->  r13        
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T02] (  3, 24   )     ref  ->  rax         "arr expr"
+;  V04 tmp1         [V04,T01] (  3, 24   )     ref  ->  rax         "arr expr"
 ;  V05 tmp2         [V05,T05] (  2, 16   )     ref  ->  rsi         "argument with side effect"
-;* V06 tmp3         [V06,T08] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V07 tmp4         [V07,T03] (  3, 24   )     ref  ->  rax         "arr expr"
-;  V08 tmp5         [V08,T06] (  2, 16   )     ref  ->  rsi         "argument with side effect"
-;* V09 tmp6         [V09,T09] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V10 cse0         [V10,T07] (  6, 14.50)    long  ->  r14         "CSE - moderate"
+;  V06 tmp3         [V06,T02] (  3, 24   )     ref  ->  rax         "arr expr"
+;  V07 tmp4         [V07,T06] (  2, 16   )     ref  ->  rsi         "argument with side effect"
+;  V08 cse0         [V08,T07] (  6, 14.50)    long  ->  r14         "CSE - aggressive"
+;  V09 cse1         [V09,T08] (  3, 12   )    long  ->  r12         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M18864_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        push     r15
        push     r14
        push     r13
+       push     r12
        push     rbx
-       lea      rbp, [rsp+0x20]
-       mov      r15, rdi
-       ; gcrRegs +[r15]
-       mov      rbx, rsi
+       push     rax
+       lea      rbp, [rsp+0x30]
+       mov      rbx, rdi
        ; gcrRegs +[rbx]
-                       ;; size=19 bbWeight=1 PerfScore 6.00
+       mov      r15, rsi
+       ; gcrRegs +[r15]
+                       ;; size=22 bbWeight=1 PerfScore 8.00
 G_M18864_IG02:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
-       mov      rdi, r15
+       mov      rdi, rbx
        ; gcrRegs +[rdi]
-       mov      rax, qword ptr [r15]
+       mov      rax, qword ptr [rbx]
        mov      r14, qword ptr [rax+0x48]
        call     [r14+0x20]<unknown method>
        ; gcrRegs -[rdi] +[rax]
@@ -46,7 +47,7 @@ G_M18864_IG02:        ; bbWeight=1, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
 G_M18864_IG03:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
        xor      r13d, r13d
-       mov      rdi, r15
+       mov      rdi, rbx
        ; gcrRegs +[rdi]
        call     [r14+0x20]<unknown method>
        ; gcrRegs -[rdi] +[rax]
@@ -55,33 +56,32 @@ G_M18864_IG03:        ; bbWeight=0.50, gcrefRegs=8008 {rbx r15}, byrefRegs=0000
                        ;; size=16 bbWeight=0.50 PerfScore 3.75
 G_M18864_IG04:        ; bbWeight=4, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
-       mov      rdi, r15
+       mov      rdi, rbx
        ; gcrRegs +[rdi]
        call     [r14+0x20]<unknown method>
        ; gcrRegs -[rdi] +[rax]
        cmp      r13d, dword ptr [rax+0x08]
        jae      SHORT G_M18864_IG09
-       mov      esi, r13d
-       mov      rsi, gword ptr [rax+8*rsi+0x10]
+       mov      r12d, r13d
+       mov      rsi, gword ptr [rax+8*r12+0x10]
        ; gcrRegs +[rsi]
-       mov      rdi, rbx
+       mov      rdi, r15
        ; gcrRegs +[rdi]
        call     [System.Type:op_Equality(System.Type,System.Type):ubyte]
        ; gcrRegs -[rax rsi rdi]
        test     eax, eax
        jne      SHORT G_M18864_IG07
-       mov      rdi, r15
+       mov      rdi, rbx
        ; gcrRegs +[rdi]
        call     [r14+0x20]<unknown method>
        ; gcrRegs -[rdi] +[rax]
        cmp      r13d, dword ptr [rax+0x08]
        jae      SHORT G_M18864_IG09
-       mov      esi, r13d
-       mov      rsi, gword ptr [rax+8*rsi+0x10]
+       mov      rsi, gword ptr [rax+8*r12+0x10]
        ; gcrRegs +[rsi]
-       mov      rdi, rbx
+       mov      rdi, r15
        ; gcrRegs +[rdi]
-       mov      rax, qword ptr [rbx]
+       mov      rax, qword ptr [r15]
        ; gcrRegs -[rax]
        mov      rax, qword ptr [rax+0xB8]
        call     [rax+0x18]<unknown method>
@@ -89,42 +89,46 @@ G_M18864_IG04:        ; bbWeight=4, gcrefRegs=8008 {rbx r15}, byrefRegs=0000 {},
        test     eax, eax
        jne      SHORT G_M18864_IG07
        inc      r13d
-       mov      rdi, r15
+       mov      rdi, rbx
        ; gcrRegs +[rdi]
        call     [r14+0x20]<unknown method>
        ; gcrRegs -[rdi] +[rax]
        cmp      dword ptr [rax+0x08], r13d
        jg       SHORT G_M18864_IG04
-                       ;; size=91 bbWeight=4 PerfScore 158.00
+                       ;; size=88 bbWeight=4 PerfScore 157.00
 G_M18864_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax rbx r15]
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M18864_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 8
        pop      rbx
+       pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=0.50 PerfScore 1.75
+                       ;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M18864_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        mov      eax, 1
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M18864_IG08:        ; bbWeight=0.50, epilog, nogc, extend
+       add      rsp, 8
        pop      rbx
+       pop      r12
        pop      r13
        pop      r14
        pop      r15
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=0.50 PerfScore 1.75
+                       ;; size=15 bbWeight=0.50 PerfScore 2.12
 G_M18864_IG09:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 176, prolog size 13, PerfScore 180.00, instruction count 62, allocated bytes for code 176 (MethodHash=64fdb64f) for method System.Security.Cryptography.Xml.Transform:AcceptsType(System.Type):ubyte:this (FullOpts)
+; Total bytes of code 188, prolog size 16, PerfScore 181.75, instruction count 67, allocated bytes for code 188 (MethodHash=64fdb64f) for method System.Security.Cryptography.Xml.Transform:AcceptsType(System.Type):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -132,12 +136,14 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x08
-  CountOfUnwindCodes: 5
+  SizeOfProlog      : 0x0B
+  CountOfUnwindCodes: 7
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x0B UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
+    CodeOffset: 0x0A UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x09 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r12 (12)
     CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r13 (13)
     CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
     CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)

+3 (+7.89%) : 21684.dasm - Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable1[int]):this (FullOpts)

@@ -7,7 +7,7 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel>
+;  V00 this         [V00,T01] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->  rsi         class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
 ;* V02 arg2         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <Microsoft.CodeAnalysis.ISymbol>
 ;  V03 arg3         [V03,T04] (  3,  3   )   ubyte  ->  rcx         single-def
@@ -16,34 +16,30 @@
 ;* V06 arg6         [V06    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Nullable`1[int]>
 ;* V07 loc0         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[int]>
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V09 tmp1         [V09,T05] (  2,  2   )     ref  ->   r9         single-def "field V05._source (fldOffset=0x0)" P-INDEP
-;* V10 tmp2         [V10,T11] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V07.hasValue (fldOffset=0x0)" P-INDEP
-;* V11 tmp3         [V11,T12] (  0,  0   )     int  ->  zero-ref    single-def "field V07.value (fldOffset=0x4)" P-INDEP
-;  V12 tmp4         [V12,T01] (  3,  6   )  struct ( 8) [rsp+0x00]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
-;* V13 tmp5         [V13,T10] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V14 tmp6         [V14,T06] (  2,  4   )     ref  ->  rsi         single-def "argument with side effect"
-;  V15 tmp7         [V15,T09] (  2,  4   )     int  ->  rdx         "argument with side effect"
-;  V16 tmp8         [V16,T07] (  2,  4   )     ref  ->  rcx         single-def "argument with side effect"
-;  V17 tmp9         [V17,T08] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
+;  V09 tmp1         [V09,T05] (  2,  2   )     ref  ->  rax         single-def "field V05._source (fldOffset=0x0)" P-INDEP
+;* V10 tmp2         [V10,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V07.hasValue (fldOffset=0x0)" P-INDEP
+;* V11 tmp3         [V11,T07] (  0,  0   )     int  ->  zero-ref    single-def "field V07.value (fldOffset=0x4)" P-INDEP
+;  V12 tmp4         [V12,T00] (  3,  6   )  struct ( 8) [rsp+0x00]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
 ;
 ; Lcl frame size = 8
 
 G_M26014_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rax
-                       ;; size=1 bbWeight=1 PerfScore 1.00
-G_M26014_IG02:        ; bbWeight=1, gcrefRegs=03C0 {rsi rdi r8 r9}, byrefRegs=0000 {}, byref
-       ; gcrRegs +[rsi rdi r8-r9]
+       mov      rax, r9
+       ; gcrRegs +[rax]
+                       ;; size=4 bbWeight=1 PerfScore 1.25
+G_M26014_IG02:        ; bbWeight=1, gcrefRegs=01C1 {rax rsi rdi r8}, byrefRegs=0000 {}, byref
+       ; gcrRegs +[rsi rdi r8]
+       mov      byte  ptr [rsp], 0
+       xor      r9d, r9d
+       mov      dword ptr [rsp+0x04], r9d
+       mov      r9, qword ptr [rsp]
        movzx    rdx, cl
        mov      rcx, r8
        ; gcrRegs +[rcx]
-       mov      r8, r9
-       mov      byte  ptr [rsp], 0
-       xor      r9d, r9d
-       ; gcrRegs -[r9]
-       mov      dword ptr [rsp+0x04], r9d
-       mov      r9, qword ptr [rsp]
+       mov      r8, rax
        call     [Microsoft.CodeAnalysis.VisualBasic.VisualBasicDeclarationComputer:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SemanticModel,Microsoft.CodeAnalysis.SyntaxNode,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable`1[int])]
-       ; gcrRegs -[rcx rsi rdi r8]
+       ; gcrRegs -[rax rcx rsi rdi r8]
        ; gcr arg pop 0
        nop      
                        ;; size=32 bbWeight=1 PerfScore 7.25
@@ -52,7 +48,7 @@ G_M26014_IG03:        ; bbWeight=1, epilog, nogc, extend
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 38, prolog size 1, PerfScore 9.50, instruction count 12, allocated bytes for code 38 (MethodHash=5e2a9a61) for method Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable`1[int]):this (FullOpts)
+; Total bytes of code 41, prolog size 1, PerfScore 9.75, instruction count 13, allocated bytes for code 41 (MethodHash=5e2a9a61) for method Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable`1[int]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:

libraries_tests.run.linux.x64.Release.mch

-37 (-27.61%) : 57142.dasm - System.Collections.Concurrent.ConcurrentDictionary2[Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ImportInfo,System.Collections.Immutable.ImmutableArray1[System.Canon]]:TryUpdate(Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ImportInfo,System.Collections.Immutable.ImmutableArray1[System.__Canon],System.Collections.Immutable.ImmutableArray1[System.Canon]):ubyte:this (Tier1)

@@ -7,57 +7,39 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4,  4   )     ref  ->  rdi         this class-hnd single-def <System.Collections.Concurrent.ConcurrentDictionary`2[Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ImportInfo,System.Collections.Immutable.ImmutableArray`1[System.__Canon]]>
-;  V01 arg1         [V01,T08] (  1,  1   )  struct (24) [rsp+0x60]  do-not-enreg[S] single-def <Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ImportInfo>
+;  V00 this         [V00,T00] (  4,  4   )     ref  ->  [rsp+0x28]  this class-hnd single-def <System.Collections.Concurrent.ConcurrentDictionary`2[Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ImportInfo,System.Collections.Immutable.ImmutableArray`1[System.__Canon]]>
+;  V01 arg1         [V01,T05] (  1,  1   )  struct (24) [rsp+0x40]  do-not-enreg[S] single-def <Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ImportInfo>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Collections.Immutable.ImmutableArray`1[System.__Canon]>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Collections.Immutable.ImmutableArray`1[System.__Canon]>
 ;* V04 loc0         [V04    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[int]>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (24) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06,T02] (  2,  4   )     ref  ->  rsi         class-hnd exact single-def "impAppendStmt" <<unknown class>>
-;  V07 tmp2         [V07,T03] (  2,  2   )     ref  ->  [rsp+0x20]  single-def "field V02.array (fldOffset=0x0)" P-INDEP
+;  V06 tmp1         [V06,T02] (  2,  4   )     ref  ->  [rsp+0x20]  class-hnd exact spill-single-def "impAppendStmt" <<unknown class>>
+;  V07 tmp2         [V07,T03] (  2,  2   )     ref  ->  [rsp+0x18]  single-def "field V02.array (fldOffset=0x0)" P-INDEP
 ;  V08 tmp3         [V08,T04] (  2,  2   )     ref  ->   r8         single-def "field V03.array (fldOffset=0x0)" P-INDEP
-;* V09 tmp4         [V09,T09] (  0,  0   )   ubyte  ->  zero-ref    "field V04.hasValue (fldOffset=0x0)" P-INDEP
-;* V10 tmp5         [V10,T10] (  0,  0   )     int  ->  zero-ref    "field V04.value (fldOffset=0x4)" P-INDEP
-;  V11 tmp6         [V11,T01] (  3,  6   )  struct ( 8) [rsp+0x40]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
-;* V12 tmp7         [V12,T07] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V13 tmp8         [V13,T05] (  2,  4   )     ref  ->  rsi         single-def "argument with side effect"
-;  V14 tmp9         [V14,T06] (  2,  4   )  struct (24) [rsp+0x28]  do-not-enreg[S] single-def "argument with side effect" <Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ImportInfo>
-;  TEMP_02                                     ref  ->  [rsp+0x50]
-;  TEMP_01                                     ref  ->  [rsp+0x48]
+;* V09 tmp4         [V09,T06] (  0,  0   )   ubyte  ->  zero-ref    "field V04.hasValue (fldOffset=0x0)" P-INDEP
+;* V10 tmp5         [V10,T07] (  0,  0   )     int  ->  zero-ref    "field V04.value (fldOffset=0x4)" P-INDEP
+;  V11 tmp6         [V11,T01] (  3,  6   )  struct ( 8) [rsp+0x30]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
 ;
-; Lcl frame size = 88
+; Lcl frame size = 56
 
 G_M29310_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 88
-       vzeroupper 
-       xor      eax, eax
-       mov      qword ptr [rsp+0x48], rax
-       mov      qword ptr [rsp+0x50], rax
-       mov      gword ptr [rsp+0x20], rsi
+       sub      rsp, 56
+       mov      gword ptr [rsp+0x18], rsi
        ; GC ptr vars +{V07}
        mov      r8, rdx
        ; gcrRegs +[r8]
-                       ;; size=27 bbWeight=1 PerfScore 4.75
+                       ;; size=12 bbWeight=1 PerfScore 1.50
 G_M29310_IG02:        ; bbWeight=1, gcVars=0000000000000008 {V07}, gcrefRegs=0180 {rdi r8}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[rdi]
+       mov      gword ptr [rsp+0x28], rdi
+       ; GC ptr vars +{V00}
        mov      rsi, gword ptr [rdi+0x08]
        ; gcrRegs +[rsi]
-                       ;; size=4 bbWeight=1 PerfScore 2.00
-G_M29310_IG03:        ; bbWeight=1, nogc, extend
-       vmovdqu  xmm0, xmmword ptr [rsp+0x60]
-       vmovdqu  xmmword ptr [rsp+0x28], xmm0
-       mov      rdx, qword ptr [rsp+0x70]
-       mov      qword ptr [rsp+0x38], rdx
-                       ;; size=22 bbWeight=1 PerfScore 6.00
-G_M29310_IG04:        ; bbWeight=1, extend
-       mov      byte  ptr [rsp+0x40], 0
-       xor      edx, edx
-       mov      dword ptr [rsp+0x44], edx
-       mov      gword ptr [rsp+0x50], rdi
-       mov      gword ptr [rsp+0x48], rsi
+       mov      gword ptr [rsp+0x20], rsi
+       ; GC ptr vars +{V06}
        lea      rdi, [rsp]
        ; gcrRegs -[rdi]
-       lea      rsi, [rsp+0x28]
+       lea      rsi, [rsp+0x40]
        ; gcrRegs -[rsi]
        mov      rcx, gword ptr [rsi]
        ; gcrRegs +[rcx]
@@ -67,24 +49,27 @@ G_M29310_IG04:        ; bbWeight=1, extend
        add      rdi, 8
        movsq    
        movsq    
-       mov      rdx, qword ptr [rsp+0x40]
-       mov      rcx, gword ptr [rsp+0x20]
-       mov      rdi, gword ptr [rsp+0x50]
-       ; gcrRegs +[rdi]
-       mov      rsi, gword ptr [rsp+0x48]
+       mov      byte  ptr [rsp+0x30], 0
+       xor      edx, edx
+       mov      dword ptr [rsp+0x34], edx
+       mov      rdx, qword ptr [rsp+0x30]
+       mov      rsi, gword ptr [rsp+0x20]
        ; gcrRegs +[rsi]
-       ; GC ptr vars -{V07}
+       mov      rdi, gword ptr [rsp+0x28]
+       ; gcrRegs +[rdi]
+       mov      rcx, gword ptr [rsp+0x18]
+       ; GC ptr vars -{V00 V06 V07}
        call     [<unknown method>]
        ; gcrRegs -[rcx rsi rdi r8]
        ; gcr arg pop 0
        nop      
-                       ;; size=76 bbWeight=1 PerfScore 18.00
-G_M29310_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 88
+                       ;; size=80 bbWeight=1 PerfScore 20.00
+G_M29310_IG03:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 56
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 134, prolog size 19, PerfScore 32.00, instruction count 33, allocated bytes for code 134 (MethodHash=6c1d8d81) for method System.Collections.Concurrent.ConcurrentDictionary`2[Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ImportInfo,System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:TryUpdate(Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ImportInfo,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[System.__Canon]):ubyte:this (Tier1)
+; Total bytes of code 97, prolog size 4, PerfScore 22.75, instruction count 25, allocated bytes for code 97 (MethodHash=6c1d8d81) for method System.Collections.Concurrent.ConcurrentDictionary`2[Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ImportInfo,System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:TryUpdate(Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ImportInfo,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[System.__Canon]):ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -97,4 +82,4 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 10 * 8 + 8 = 88 = 0x58
+    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 6 * 8 + 8 = 56 = 0x38

-23 (-24.73%) : 661708.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlyMemory`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (Tier1)

@@ -7,45 +7,34 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  3,  3   )  struct (16) [rbp-0x10]  do-not-enreg[SA] multireg-arg single-def <System.ReadOnlyMemory`1[ubyte]>
+;  V00 arg0         [V00,T00] (  4,  4   )  struct (16) [rbp-0x10]  do-not-enreg[SA] multireg-arg single-def <System.ReadOnlyMemory`1[ubyte]>
 ;  V01 arg1         [V01    ] (  3,  3   )  struct ( 8) [rbp-0x18]  do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.Text.Json.JsonDocumentOptions>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03    ] (  2,  4   )  struct ( 8) [rbp-0x20]  do-not-enreg[SB] "spilled call-like call argument" <System.Text.Json.JsonReaderOptions>
-;  V04 tmp2         [V04,T02] (  2,  4   )     int  ->  [rbp-0x20]  do-not-enreg[] "field V03._maxDepth (fldOffset=0x0)" P-DEP
-;  V05 tmp3         [V05,T03] (  2,  4   )   ubyte  ->  [rbp-0x1C]  do-not-enreg[] "field V03._commentHandling (fldOffset=0x4)" P-DEP
-;  V06 tmp4         [V06,T04] (  2,  4   )   ubyte  ->  [rbp-0x1B]  do-not-enreg[] "field V03.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-DEP
-;  V07 tmp5         [V07,T05] (  2,  4   )  struct ( 8) [rbp-0x28]  do-not-enreg[S] "by-value struct argument" <System.Text.Json.JsonReaderOptions>
-;  V08 tmp6         [V08,T00] (  3,  6   )  struct (16) [rbp-0x38]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.ReadOnlyMemory`1[ubyte]>
+;  V04 tmp2         [V04,T01] (  2,  4   )     int  ->  [rbp-0x20]  do-not-enreg[] "field V03._maxDepth (fldOffset=0x0)" P-DEP
+;  V05 tmp3         [V05,T02] (  2,  4   )   ubyte  ->  [rbp-0x1C]  do-not-enreg[] "field V03._commentHandling (fldOffset=0x4)" P-DEP
+;  V06 tmp4         [V06,T03] (  2,  4   )   ubyte  ->  [rbp-0x1B]  do-not-enreg[] "field V03.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-DEP
+;  V07 tmp5         [V07,T04] (  2,  4   )  struct ( 8) [rbp-0x28]  do-not-enreg[S] "by-value struct argument" <System.Text.Json.JsonReaderOptions>
 ;
-; Lcl frame size = 64
+; Lcl frame size = 48
 
 G_M57583_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 64
-       vzeroupper 
-       lea      rbp, [rsp+0x40]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x38], rax
+       sub      rsp, 48
+       lea      rbp, [rsp+0x30]
        mov      gword ptr [rbp-0x10], rdi
        mov      qword ptr [rbp-0x08], rsi
        mov      qword ptr [rbp-0x18], rdx
-                       ;; size=31 bbWeight=1 PerfScore 7.00
+                       ;; size=22 bbWeight=1 PerfScore 4.75
 G_M57583_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        lea      rdi, [rbp-0x18]
        call     [System.Text.Json.JsonDocumentOptions:GetReaderOptions():System.Text.Json.JsonReaderOptions:this]
        mov      qword ptr [rbp-0x20], rax
-                       ;; size=14 bbWeight=1 PerfScore 4.50
-G_M57583_IG03:        ; bbWeight=1, nogc, extend
-       vmovdqu  xmm0, xmmword ptr [rbp-0x10]
-       vmovdqu  xmmword ptr [rbp-0x38], xmm0
-                       ;; size=10 bbWeight=1 PerfScore 4.00
-G_M57583_IG04:        ; bbWeight=1, extend
-       mov      rdi, qword ptr [rbp-0x20]
-       mov      qword ptr [rbp-0x28], rdi
-       mov      rdi, gword ptr [rbp-0x38]
+       mov      rdx, qword ptr [rbp-0x20]
+       mov      qword ptr [rbp-0x28], rdx
+       mov      rdi, gword ptr [rbp-0x10]
        ; gcrRegs +[rdi]
-       mov      rsi, qword ptr [rbp-0x30]
-       mov      rdx, qword ptr [rbp-0x28]
+       mov      rsi, qword ptr [rbp-0x08]
        xor      rcx, rcx
        ; gcrRegs +[rcx]
        xor      r8, r8
@@ -53,14 +42,14 @@ G_M57583_IG04:        ; bbWeight=1, extend
        call     [<unknown method>]
        ; gcrRegs -[rcx rdi r8] +[rax]
        nop      
-                       ;; size=32 bbWeight=1 PerfScore 8.75
-G_M57583_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 64
+                       ;; size=42 bbWeight=1 PerfScore 12.25
+G_M57583_IG03:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 48
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 93, prolog size 19, PerfScore 26.00, instruction count 26, allocated bytes for code 93 (MethodHash=4c311f10) for method System.Text.Json.JsonDocument:Parse(System.ReadOnlyMemory`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (Tier1)
+; Total bytes of code 70, prolog size 10, PerfScore 18.75, instruction count 20, allocated bytes for code 70 (MethodHash=4c311f10) for method System.Text.Json.JsonDocument:Parse(System.ReadOnlyMemory`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -73,5 +62,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

-46 (-24.60%) : 129035.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:Add(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite):this (Tier1)

@@ -10,69 +10,47 @@
 ;
 ;  V00 this         [V00,T03] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier>
-;  V02 arg2         [V02,T04] (  3,  3   )     ref  ->  [rbp-0x48]  class-hnd single-def <Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite>
+;  V02 arg2         [V02,T04] (  3,  3   )     ref  ->  [rbp-0x30]  class-hnd single-def <Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite>
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )  struct (24) zero-ref    do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCacheKey>
-;  V05 tmp2         [V05,T00] (  3,  6   )     ref  ->  rdi         class-hnd single-def "impAppendStmt" <<unknown class>>
+;  V05 tmp2         [V05,T00] (  3,  6   )     ref  ->  [rbp-0x38]  class-hnd spill-single-def "impAppendStmt" <<unknown class>>
 ;  V06 tmp3         [V06,T01] (  3,  6   )  struct (24) [rbp-0x18]  do-not-enreg[S] must-init "Inlining Arg" <Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCacheKey>
 ;* V07 tmp4         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Nullable`1[int]>
-;  V08 tmp5         [V08,T05] (  2,  4   )     ref  ->  rsi         class-hnd exact single-def "impAppendStmt" <<unknown class>>
+;  V08 tmp5         [V08,T05] (  2,  4   )     ref  ->  [rbp-0x40]  class-hnd exact spill-single-def "impAppendStmt" <<unknown class>>
 ;  V09 tmp6         [V09    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite>
 ;  V10 tmp7         [V10,T06] (  2,  2   )     ref  ->  rsi         single-def "field V01.<ServiceKey>k__BackingField (fldOffset=0x0)" P-INDEP
 ;  V11 tmp8         [V11,T07] (  2,  2   )     ref  ->  rdx         single-def "field V01.<ServiceType>k__BackingField (fldOffset=0x8)" P-INDEP
-;* V12 tmp9         [V12,T11] (  0,  0   )   ubyte  ->  zero-ref    "field V07.hasValue (fldOffset=0x0)" P-INDEP
-;* V13 tmp10        [V13,T12] (  0,  0   )     int  ->  zero-ref    "field V07.value (fldOffset=0x4)" P-INDEP
+;* V12 tmp9         [V12,T08] (  0,  0   )   ubyte  ->  zero-ref    "field V07.hasValue (fldOffset=0x0)" P-INDEP
+;* V13 tmp10        [V13,T09] (  0,  0   )     int  ->  zero-ref    "field V07.value (fldOffset=0x4)" P-INDEP
 ;* V14 tmp11        [V14    ] (  0,  0   )     int  ->  zero-ref    "V04.[000..004)"
 ;* V15 tmp12        [V15    ] (  0,  0   )     ref  ->  zero-ref    single-def "V04.[008..016)"
 ;* V16 tmp13        [V16    ] (  0,  0   )     ref  ->  zero-ref    single-def "V04.[016..024)"
 ;  V17 tmp14        [V17,T02] (  3,  6   )  struct ( 8) [rbp-0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
-;  V18 tmp15        [V18,T08] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
-;  V19 tmp16        [V19,T09] (  2,  4   )     ref  ->  rsi         single-def "argument with side effect"
-;  V20 tmp17        [V20,T10] (  2,  4   )  struct (24) [rbp-0x40]  do-not-enreg[S] single-def "argument with side effect" <Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCacheKey>
-;  TEMP_02                                     ref  ->  [rbp-0x50]
-;  TEMP_01                                     ref  ->  [rbp-0x58]
 ;
-; Lcl frame size = 128
+; Lcl frame size = 96
 
 G_M55102_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 128
-       vzeroupper 
-       lea      rbp, [rsp+0x80]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x58], rax
+       sub      rsp, 96
+       lea      rbp, [rsp+0x60]
        vxorps   xmm8, xmm8, xmm8
-       vmovdqu  ymmword ptr [rbp-0x50], ymm8
-       vmovdqu  ymmword ptr [rbp-0x30], ymm8
-       vmovdqa  xmmword ptr [rbp-0x10], xmm8
-       mov      gword ptr [rbp-0x48], rcx
+       vmovdqu  ymmword ptr [rbp-0x20], ymm8
+       mov      gword ptr [rbp-0x30], rcx
        ; GC ptr vars +{V02}
-                       ;; size=49 bbWeight=1 PerfScore 11.33
+                       ;; size=24 bbWeight=1 PerfScore 5.08
 G_M55102_IG02:        ; bbWeight=1, gcVars=0000000000000010 {V02}, gcrefRegs=00C4 {rdx rsi rdi}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[rdx rsi rdi]
        mov      rdi, gword ptr [rdi+0x10]
+       mov      gword ptr [rbp-0x38], rdi
+       ; GC ptr vars +{V05}
        mov      gword ptr [rbp-0x10], rsi
        mov      gword ptr [rbp-0x08], rdx
        mov      rsi, gword ptr [rdi+0x08]
-                       ;; size=16 bbWeight=1 PerfScore 6.00
-G_M55102_IG03:        ; bbWeight=1, nogc, extend
-       vmovdqu  xmm0, xmmword ptr [rbp-0x18]
-       vmovdqu  xmmword ptr [rbp-0x40], xmm0
-       mov      rdx, qword ptr [rbp-0x08]
-       ; gcrRegs -[rdx]
-       mov      qword ptr [rbp-0x30], rdx
-                       ;; size=18 bbWeight=1 PerfScore 6.00
-G_M55102_IG04:        ; bbWeight=1, extend
-       mov      byte  ptr [rbp-0x28], 0
-       xor      edx, edx
-       mov      dword ptr [rbp-0x24], edx
-       lea      rdx, [rbp-0x20]
-       mov      qword ptr [rsp+0x18], rdx
-       mov      gword ptr [rbp-0x50], rdi
-       mov      gword ptr [rbp-0x58], rsi
+       mov      gword ptr [rbp-0x40], rsi
+       ; GC ptr vars +{V08}
        lea      rdi, [rsp]
        ; gcrRegs -[rdi]
-       lea      rsi, [rbp-0x40]
+       lea      rsi, [rbp-0x18]
        ; gcrRegs -[rsi]
        movsq    
        mov      rcx, gword ptr [rsi]
@@ -82,26 +60,32 @@ G_M55102_IG04:        ; bbWeight=1, extend
        add      rdi, 8
        mov      rcx, gword ptr [rsi]
        mov      gword ptr [rsp+0x10], rcx
+       mov      byte  ptr [rbp-0x28], 0
+       xor      edx, edx
+       ; gcrRegs -[rdx]
+       mov      dword ptr [rbp-0x24], edx
+       lea      rdx, [rbp-0x20]
+       mov      qword ptr [rsp+0x18], rdx
        mov      rdx, qword ptr [rbp-0x28]
-       mov      rcx, gword ptr [rbp-0x48]
+       mov      rsi, gword ptr [rbp-0x40]
+       ; gcrRegs +[rsi]
+       mov      rdi, gword ptr [rbp-0x38]
+       ; gcrRegs +[rdi]
+       mov      rcx, gword ptr [rbp-0x30]
        mov      r8d, 1
        mov      r9d, 1
-       mov      rdi, gword ptr [rbp-0x50]
-       ; gcrRegs +[rdi]
-       mov      rsi, gword ptr [rbp-0x58]
-       ; gcrRegs +[rsi]
-       ; GC ptr vars -{V02}
+       ; GC ptr vars -{V02 V05 V08}
        call     [<unknown method>]
        ; gcrRegs -[rcx rsi rdi]
        nop      
-                       ;; size=95 bbWeight=1 PerfScore 22.00
-G_M55102_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 128
+                       ;; size=111 bbWeight=1 PerfScore 28.00
+G_M55102_IG03:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 96
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=1 PerfScore 1.75
+                       ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 187, prolog size 45, PerfScore 47.08, instruction count 46, allocated bytes for code 187 (MethodHash=44df28c1) for method Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:Add(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite):this (Tier1)
+; Total bytes of code 141, prolog size 20, PerfScore 34.83, instruction count 37, allocated bytes for code 141 (MethodHash=44df28c1) for method Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:Add(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -109,10 +93,10 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x08
+  SizeOfProlog      : 0x05
   CountOfUnwindCodes: 2
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 15 * 8 + 8 = 128 = 0x80
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 11 * 8 + 8 = 96 = 0x60
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+8 (+5.67%) : 277094.dasm - System.Data.Tests.SqlTypes.SqlStringTest+<>cDisplayClass14_0:b0():System.Object:this (Tier0)

@@ -5,73 +5,74 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x10]  do-not-enreg[] this class-hnd <System.Data.Tests.SqlTypes.SqlStringTest+<>c__DisplayClass14_0>
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x08]  do-not-enreg[] this class-hnd <System.Data.Tests.SqlTypes.SqlStringTest+<>c__DisplayClass14_0>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02    ] (  1,  1   )     ref  ->  [rbp-0x18]  do-not-enreg[] must-init class-hnd exact "Single-def Box Helper" <<unknown class>>
-;  V03 tmp2         [V03    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init "Field obj"
-;  V04 tmp3         [V04    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V05 tmp4         [V05    ] (  1,  1   )   byref  ->  [rbp-0x30]  do-not-enreg[] must-init "argument with side effect"
+;  V02 tmp1         [V02    ] (  1,  1   )     ref  ->  [rbp-0x10]  do-not-enreg[] must-init class-hnd exact "Single-def Box Helper" <<unknown class>>
+;  V03 tmp2         [V03    ] (  1,  1   )     ref  ->  [rbp-0x18]  do-not-enreg[] must-init "Field obj"
+;  V04 tmp3         [V04    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init "argument with side effect"
+;  V05 tmp4         [V05    ] (  1,  1   )   byref  ->  [rbp-0x28]  do-not-enreg[] must-init "argument with side effect"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 48
 
 G_M31389_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       push     rbx
-       sub      rsp, 40
+       sub      rsp, 48
        lea      rbp, [rsp+0x30]
+       xor      eax, eax
+       mov      qword ptr [rbp-0x28], rax
        vxorps   xmm8, xmm8, xmm8
-       vmovdqu  ymmword ptr [rbp-0x30], ymm8
-       mov      gword ptr [rbp-0x10], rdi
-                       ;; size=25 bbWeight=1 PerfScore 6.08
+       vmovdqa  xmmword ptr [rbp-0x20], xmm8
+       mov      qword ptr [rbp-0x10], rax
+       mov      gword ptr [rbp-0x08], rdi
+                       ;; size=34 bbWeight=1 PerfScore 7.33
 G_M31389_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
-       mov      gword ptr [rbp-0x18], rax
-       mov      rbx, gword ptr [rbp-0x18]
-       ; gcrRegs +[rbx]
-       mov      rsi, gword ptr [rbp-0x10]
+       mov      gword ptr [rbp-0x10], rax
+       mov      rsi, gword ptr [rbp-0x08]
        ; gcrRegs +[rsi]
        mov      rsi, gword ptr [rsi+0x08]
-       mov      gword ptr [rbp-0x20], rsi
-       mov      rsi, gword ptr [rbp-0x20]
+       mov      gword ptr [rbp-0x18], rsi
+       mov      rsi, gword ptr [rbp-0x18]
        cmp      byte  ptr [rsi], sil
-       mov      rsi, gword ptr [rbp-0x20]
+       mov      rsi, gword ptr [rbp-0x18]
        add      rsi, 8
        ; gcrRegs -[rsi]
        ; byrRegs +[rsi]
-       mov      bword ptr [rbp-0x30], rsi
-       mov      rsi, gword ptr [rbp-0x10]
+       mov      bword ptr [rbp-0x28], rsi
+       mov      rsi, gword ptr [rbp-0x08]
        ; gcrRegs +[rsi]
        ; byrRegs -[rsi]
        cmp      byte  ptr [rsi], sil
-       mov      rsi, gword ptr [rbp-0x10]
+       mov      rsi, gword ptr [rbp-0x08]
        add      rsi, 16
        ; gcrRegs -[rsi]
        ; byrRegs +[rsi]
        mov      rdi, 0xD1FFAB1E      ; System.Data.SqlTypes.SqlByte
        call     CORINFO_HELP_BOX
        ; byrRegs -[rsi]
-       mov      gword ptr [rbp-0x28], rax
-       mov      rsi, gword ptr [rbp-0x28]
+       mov      gword ptr [rbp-0x20], rax
+       mov      rsi, gword ptr [rbp-0x20]
        ; gcrRegs +[rsi]
-       mov      rdi, bword ptr [rbp-0x30]
+       mov      rdi, bword ptr [rbp-0x28]
        ; byrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rax rsi]
        ; byrRegs -[rdi]
-       mov      dword ptr [rbx+0x08], eax
-       mov      rax, gword ptr [rbp-0x18]
+       mov      rcx, gword ptr [rbp-0x10]
+       ; gcrRegs +[rcx]
+       mov      dword ptr [rcx+0x08], eax
+       mov      rax, gword ptr [rbp-0x10]
        ; gcrRegs +[rax]
                        ;; size=109 bbWeight=1 PerfScore 28.00
 G_M31389_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 40
-       pop      rbx
+       add      rsp, 48
        pop      rbp
        ret      
-                       ;; size=7 bbWeight=1 PerfScore 2.25
+                       ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 141, prolog size 21, PerfScore 36.33, instruction count 35, allocated bytes for code 141 (MethodHash=09578562) for method System.Data.Tests.SqlTypes.SqlStringTest+<>c__DisplayClass14_0:<CompareToArgumentException>b__0():System.Object:this (Tier0)
+; Total bytes of code 149, prolog size 30, PerfScore 37.08, instruction count 36, allocated bytes for code 149 (MethodHash=09578562) for method System.Data.Tests.SqlTypes.SqlStringTest+<>c__DisplayClass14_0:<CompareToArgumentException>b__0():System.Object:this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -79,11 +80,10 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x06
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x05
+  CountOfUnwindCodes: 2
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+8 (+5.67%) : 273796.dasm - System.Data.Tests.SqlTypes.SqlBinaryTest+<>cDisplayClass8_0:b0():System.Object:this (Tier0)

@@ -5,73 +5,74 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x10]  do-not-enreg[] this class-hnd <System.Data.Tests.SqlTypes.SqlBinaryTest+<>c__DisplayClass8_0>
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x08]  do-not-enreg[] this class-hnd <System.Data.Tests.SqlTypes.SqlBinaryTest+<>c__DisplayClass8_0>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02    ] (  1,  1   )     ref  ->  [rbp-0x18]  do-not-enreg[] must-init class-hnd exact "Single-def Box Helper" <<unknown class>>
-;  V03 tmp2         [V03    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init "Field obj"
-;  V04 tmp3         [V04    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V05 tmp4         [V05    ] (  1,  1   )   byref  ->  [rbp-0x30]  do-not-enreg[] must-init "argument with side effect"
+;  V02 tmp1         [V02    ] (  1,  1   )     ref  ->  [rbp-0x10]  do-not-enreg[] must-init class-hnd exact "Single-def Box Helper" <<unknown class>>
+;  V03 tmp2         [V03    ] (  1,  1   )     ref  ->  [rbp-0x18]  do-not-enreg[] must-init "Field obj"
+;  V04 tmp3         [V04    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init "argument with side effect"
+;  V05 tmp4         [V05    ] (  1,  1   )   byref  ->  [rbp-0x28]  do-not-enreg[] must-init "argument with side effect"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 48
 
 G_M36478_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       push     rbx
-       sub      rsp, 40
+       sub      rsp, 48
        lea      rbp, [rsp+0x30]
+       xor      eax, eax
+       mov      qword ptr [rbp-0x28], rax
        vxorps   xmm8, xmm8, xmm8
-       vmovdqu  ymmword ptr [rbp-0x30], ymm8
-       mov      gword ptr [rbp-0x10], rdi
-                       ;; size=25 bbWeight=1 PerfScore 6.08
+       vmovdqa  xmmword ptr [rbp-0x20], xmm8
+       mov      qword ptr [rbp-0x10], rax
+       mov      gword ptr [rbp-0x08], rdi
+                       ;; size=34 bbWeight=1 PerfScore 7.33
 G_M36478_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rdi, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
-       mov      gword ptr [rbp-0x18], rax
-       mov      rbx, gword ptr [rbp-0x18]
-       ; gcrRegs +[rbx]
-       mov      rsi, gword ptr [rbp-0x10]
+       mov      gword ptr [rbp-0x10], rax
+       mov      rsi, gword ptr [rbp-0x08]
        ; gcrRegs +[rsi]
        mov      rsi, gword ptr [rsi+0x08]
-       mov      gword ptr [rbp-0x20], rsi
-       mov      rsi, gword ptr [rbp-0x20]
+       mov      gword ptr [rbp-0x18], rsi
+       mov      rsi, gword ptr [rbp-0x18]
        cmp      byte  ptr [rsi], sil
-       mov      rsi, gword ptr [rbp-0x20]
+       mov      rsi, gword ptr [rbp-0x18]
        add      rsi, 8
        ; gcrRegs -[rsi]
        ; byrRegs +[rsi]
-       mov      bword ptr [rbp-0x30], rsi
-       mov      rsi, gword ptr [rbp-0x10]
+       mov      bword ptr [rbp-0x28], rsi
+       mov      rsi, gword ptr [rbp-0x08]
        ; gcrRegs +[rsi]
        ; byrRegs -[rsi]
        cmp      byte  ptr [rsi], sil
-       mov      rsi, gword ptr [rbp-0x10]
+       mov      rsi, gword ptr [rbp-0x08]
        add      rsi, 16
        ; gcrRegs -[rsi]
        ; byrRegs +[rsi]
        mov      rdi, 0xD1FFAB1E      ; System.Data.SqlTypes.SqlString
        call     CORINFO_HELP_BOX
        ; byrRegs -[rsi]
-       mov      gword ptr [rbp-0x28], rax
-       mov      rsi, gword ptr [rbp-0x28]
+       mov      gword ptr [rbp-0x20], rax
+       mov      rsi, gword ptr [rbp-0x20]
        ; gcrRegs +[rsi]
-       mov      rdi, bword ptr [rbp-0x30]
+       mov      rdi, bword ptr [rbp-0x28]
        ; byrRegs +[rdi]
        call     [<unknown method>]
        ; gcrRegs -[rax rsi]
        ; byrRegs -[rdi]
-       mov      dword ptr [rbx+0x08], eax
-       mov      rax, gword ptr [rbp-0x18]
+       mov      rcx, gword ptr [rbp-0x10]
+       ; gcrRegs +[rcx]
+       mov      dword ptr [rcx+0x08], eax
+       mov      rax, gword ptr [rbp-0x10]
        ; gcrRegs +[rax]
                        ;; size=109 bbWeight=1 PerfScore 28.00
 G_M36478_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 40
-       pop      rbx
+       add      rsp, 48
        pop      rbp
        ret      
-                       ;; size=7 bbWeight=1 PerfScore 2.25
+                       ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 141, prolog size 21, PerfScore 36.33, instruction count 35, allocated bytes for code 141 (MethodHash=59a97181) for method System.Data.Tests.SqlTypes.SqlBinaryTest+<>c__DisplayClass8_0:<CompareTo>b__0():System.Object:this (Tier0)
+; Total bytes of code 149, prolog size 30, PerfScore 37.08, instruction count 36, allocated bytes for code 149 (MethodHash=59a97181) for method System.Data.Tests.SqlTypes.SqlBinaryTest+<>c__DisplayClass8_0:<CompareTo>b__0():System.Object:this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -79,11 +80,10 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x06
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x05
+  CountOfUnwindCodes: 2
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+8 (+5.97%) : 339694.dasm - System.IO.Tests.RandomAccessBase`1[long]:b60():System.Object:this (Instrumented Tier0)

@@ -5,68 +5,69 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x10]  do-not-enreg[] this class-hnd <System.IO.Tests.RandomAccess_Base`1[long]>
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [rbp-0x08]  do-not-enreg[] this class-hnd <System.IO.Tests.RandomAccess_Base`1[long]>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02    ] (  1,  1   )     ref  ->  [rbp-0x18]  do-not-enreg[] must-init class-hnd exact "Single-def Box Helper" <System.Int64>
-;  V03 tmp2         [V03    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init "handle histogram profile tmp"
-;  V04 tmp3         [V04    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V05 tmp4         [V05    ] (  1,  1   )     ref  ->  [rbp-0x30]  do-not-enreg[] must-init "argument with side effect"
+;  V02 tmp1         [V02    ] (  1,  1   )     ref  ->  [rbp-0x10]  do-not-enreg[] must-init class-hnd exact "Single-def Box Helper" <System.Int64>
+;  V03 tmp2         [V03    ] (  1,  1   )     ref  ->  [rbp-0x18]  do-not-enreg[] must-init "handle histogram profile tmp"
+;  V04 tmp3         [V04    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init "argument with side effect"
+;  V05 tmp4         [V05    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init "argument with side effect"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 48
 
 G_M63280_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       push     rbx
-       sub      rsp, 40
+       sub      rsp, 48
        lea      rbp, [rsp+0x30]
+       xor      eax, eax
+       mov      qword ptr [rbp-0x28], rax
        vxorps   xmm8, xmm8, xmm8
-       vmovdqu  ymmword ptr [rbp-0x30], ymm8
-       mov      gword ptr [rbp-0x10], rdi
-                       ;; size=25 bbWeight=1 PerfScore 6.08
+       vmovdqa  xmmword ptr [rbp-0x20], xmm8
+       mov      qword ptr [rbp-0x10], rax
+       mov      gword ptr [rbp-0x08], rdi
+                       ;; size=34 bbWeight=1 PerfScore 7.33
 G_M63280_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rdi, 0xD1FFAB1E      ; System.Int64
        call     CORINFO_HELP_NEWSFAST
        ; gcrRegs +[rax]
-       mov      gword ptr [rbp-0x18], rax
-       mov      rbx, gword ptr [rbp-0x18]
-       ; gcrRegs +[rbx]
-       mov      rdi, gword ptr [rbp-0x10]
+       mov      gword ptr [rbp-0x10], rax
+       mov      rdi, gword ptr [rbp-0x08]
        ; gcrRegs +[rdi]
-       mov      gword ptr [rbp-0x20], rdi
-       mov      rdi, gword ptr [rbp-0x20]
+       mov      gword ptr [rbp-0x18], rdi
+       mov      rdi, gword ptr [rbp-0x18]
        mov      rsi, 0xD1FFAB1E
        call     CORINFO_HELP_CLASSPROFILE32
        ; gcrRegs -[rax rdi]
-       mov      rax, gword ptr [rbp-0x20]
+       mov      rax, gword ptr [rbp-0x18]
        ; gcrRegs +[rax]
-       mov      gword ptr [rbp-0x28], rax
+       mov      gword ptr [rbp-0x20], rax
        call     [<unknown method>]
-       mov      gword ptr [rbp-0x30], rax
-       mov      rdi, gword ptr [rbp-0x28]
+       mov      gword ptr [rbp-0x28], rax
+       mov      rdi, gword ptr [rbp-0x20]
        ; gcrRegs +[rdi]
-       mov      rdx, gword ptr [rbp-0x30]
+       mov      rdx, gword ptr [rbp-0x28]
        ; gcrRegs +[rdx]
        xor      rsi, rsi
        ; gcrRegs +[rsi]
        xor      ecx, ecx
-       mov      rax, gword ptr [rbp-0x28]
+       mov      rax, gword ptr [rbp-0x20]
        mov      rax, qword ptr [rax]
        ; gcrRegs -[rax]
        mov      rax, qword ptr [rax+0x48]
        call     [rax+0x38]<unknown method>
        ; gcrRegs -[rdx rsi rdi]
-       mov      qword ptr [rbx+0x08], rax
-       mov      rax, gword ptr [rbp-0x18]
+       mov      rcx, gword ptr [rbp-0x10]
+       ; gcrRegs +[rcx]
+       mov      qword ptr [rcx+0x08], rax
+       mov      rax, gword ptr [rbp-0x10]
        ; gcrRegs +[rax]
                        ;; size=102 bbWeight=1 PerfScore 26.00
 G_M63280_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 40
-       pop      rbx
+       add      rsp, 48
        pop      rbp
        ret      
-                       ;; size=7 bbWeight=1 PerfScore 2.25
+                       ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 134, prolog size 21, PerfScore 34.33, instruction count 34, allocated bytes for code 134 (MethodHash=e1f008cf) for method System.IO.Tests.RandomAccess_Base`1[long]:<ThrowsArgumentNullExceptionForNullHandle>b__6_0():System.Object:this (Instrumented Tier0)
+; Total bytes of code 142, prolog size 30, PerfScore 35.08, instruction count 35, allocated bytes for code 142 (MethodHash=e1f008cf) for method System.IO.Tests.RandomAccess_Base`1[long]:<ThrowsArgumentNullExceptionForNullHandle>b__6_0():System.Object:this (Instrumented Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -74,11 +75,10 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x06
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x05
+  CountOfUnwindCodes: 2
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 4 * 8 + 8 = 40 = 0x28
-    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

librariestestsnotieredcompilation.run.linux.x64.Release.mch

-26 (-42.62%) : 255558.dasm - System.Text.Json.Nodes.Tests.JsonValueTests+<>cDisplayClass160:<FromElementWrongNodeTypeThrows>b0():System.Object:this (FullOpts)

@@ -12,49 +12,40 @@
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Text.Json.JsonElement>
-;  V04 tmp2         [V04,T00] (  3,  6   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
-;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonElement>
-;* V06 tmp4         [V06,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V07 tmp5         [V07,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.value (fldOffset=0x1)" P-INDEP
+;  V04 tmp2         [V04,T00] (  3,  6   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
+;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonElement>
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V07 tmp5         [V07,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.value (fldOffset=0x1)" P-INDEP
 ;* V08 tmp6         [V08    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V03._parent (fldOffset=0x0)" P-INDEP
 ;* V09 tmp7         [V09    ] (  0,  0   )     int  ->  zero-ref    single-def "field V03._idx (fldOffset=0x8)" P-INDEP
-;  V10 tmp8         [V10,T05] (  2,  2   )     ref  ->  rsi         single-def "field V05._parent (fldOffset=0x0)" P-INDEP
-;* V11 tmp9         [V11,T08] (  0,  0   )     int  ->  zero-ref    single-def "field V05._idx (fldOffset=0x8)" P-INDEP
-;  V12 tmp10        [V12,T01] (  3,  6   )  struct ( 8) [rsp+0x10]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V13 tmp11        [V13,T03] (  2,  4   )  struct (16) [rsp+0x00]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.Text.Json.JsonElement>
-;  V14 cse0         [V14,T04] (  3,  3   )     ref  ->  rdi         "CSE - aggressive"
+;  V10 tmp8         [V10,T03] (  2,  2   )     ref  ->  rdi         single-def "field V05._parent (fldOffset=0x0)" P-INDEP
+;* V11 tmp9         [V11,T06] (  0,  0   )     int  ->  zero-ref    single-def "field V05._idx (fldOffset=0x8)" P-INDEP
+;  V12 tmp10        [V12,T01] (  3,  6   )  struct ( 8) [rsp+0x00]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 24
+; Lcl frame size = 8
 
 G_M18200_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 24
-       xor      eax, eax
-       mov      qword ptr [rsp], rax
-       mov      qword ptr [rsp+0x08], rax
-                       ;; size=15 bbWeight=1 PerfScore 2.50
+       push     rax
+                       ;; size=1 bbWeight=1 PerfScore 1.00
 G_M18200_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rdi]
        mov      rdi, gword ptr [rdi+0x08]
-       mov      rsi, rdi
-       ; gcrRegs +[rsi]
-       cmp      byte  ptr [rsi], sil
-       mov      gword ptr [rsp], rsi
-       mov      byte  ptr [rsp+0x10], 0
-       mov      byte  ptr [rsp+0x11], 0
-       mov      rsi, qword ptr [rsp+0x08]
-       ; gcrRegs -[rsi]
-       movzx    rdx, word  ptr [rsp+0x10]
+       cmp      byte  ptr [rdi], dil
+       mov      byte  ptr [rsp], 0
+       mov      byte  ptr [rsp+0x01], 0
+       movzx    rdx, word  ptr [rsp]
+       xor      esi, esi
        call     [System.Text.Json.Nodes.JsonValue:Create(System.Text.Json.JsonElement,System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonValue]
        ; gcrRegs -[rdi] +[rax]
        ; gcr arg pop 0
        nop      
-                       ;; size=41 bbWeight=1 PerfScore 13.50
+                       ;; size=29 bbWeight=1 PerfScore 11.50
 G_M18200_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 24
+       add      rsp, 8
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 61, prolog size 15, PerfScore 17.25, instruction count 16, allocated bytes for code 61 (MethodHash=e2eeb8e7) for method System.Text.Json.Nodes.Tests.JsonValueTests+<>c__DisplayClass16_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
+; Total bytes of code 35, prolog size 1, PerfScore 13.75, instruction count 11, allocated bytes for code 35 (MethodHash=e2eeb8e7) for method System.Text.Json.Nodes.Tests.JsonValueTests+<>c__DisplayClass16_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -62,9 +53,9 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x04
+  SizeOfProlog      : 0x01
   CountOfUnwindCodes: 1
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 2 * 8 + 8 = 24 = 0x18
+    CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08

-26 (-42.62%) : 265030.dasm - System.Text.Json.Nodes.Tests.JsonObjectTests+<>cDisplayClass160:<FromElementWrongNodeTypeThrows>b0():System.Object:this (FullOpts)

@@ -12,49 +12,40 @@
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Text.Json.JsonElement>
-;  V04 tmp2         [V04,T00] (  3,  6   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
-;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonElement>
-;* V06 tmp4         [V06,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V07 tmp5         [V07,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.value (fldOffset=0x1)" P-INDEP
+;  V04 tmp2         [V04,T00] (  3,  6   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
+;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonElement>
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V07 tmp5         [V07,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.value (fldOffset=0x1)" P-INDEP
 ;* V08 tmp6         [V08    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V03._parent (fldOffset=0x0)" P-INDEP
 ;* V09 tmp7         [V09    ] (  0,  0   )     int  ->  zero-ref    single-def "field V03._idx (fldOffset=0x8)" P-INDEP
-;  V10 tmp8         [V10,T05] (  2,  2   )     ref  ->  rsi         single-def "field V05._parent (fldOffset=0x0)" P-INDEP
-;* V11 tmp9         [V11,T08] (  0,  0   )     int  ->  zero-ref    single-def "field V05._idx (fldOffset=0x8)" P-INDEP
-;  V12 tmp10        [V12,T01] (  3,  6   )  struct ( 8) [rsp+0x10]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V13 tmp11        [V13,T03] (  2,  4   )  struct (16) [rsp+0x00]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.Text.Json.JsonElement>
-;  V14 cse0         [V14,T04] (  3,  3   )     ref  ->  rdi         "CSE - aggressive"
+;  V10 tmp8         [V10,T03] (  2,  2   )     ref  ->  rdi         single-def "field V05._parent (fldOffset=0x0)" P-INDEP
+;* V11 tmp9         [V11,T06] (  0,  0   )     int  ->  zero-ref    single-def "field V05._idx (fldOffset=0x8)" P-INDEP
+;  V12 tmp10        [V12,T01] (  3,  6   )  struct ( 8) [rsp+0x00]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 24
+; Lcl frame size = 8
 
 G_M65350_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 24
-       xor      eax, eax
-       mov      qword ptr [rsp], rax
-       mov      qword ptr [rsp+0x08], rax
-                       ;; size=15 bbWeight=1 PerfScore 2.50
+       push     rax
+                       ;; size=1 bbWeight=1 PerfScore 1.00
 G_M65350_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rdi]
        mov      rdi, gword ptr [rdi+0x08]
-       mov      rsi, rdi
-       ; gcrRegs +[rsi]
-       cmp      byte  ptr [rsi], sil
-       mov      gword ptr [rsp], rsi
-       mov      byte  ptr [rsp+0x10], 0
-       mov      byte  ptr [rsp+0x11], 0
-       mov      rsi, qword ptr [rsp+0x08]
-       ; gcrRegs -[rsi]
-       movzx    rdx, word  ptr [rsp+0x10]
+       cmp      byte  ptr [rdi], dil
+       mov      byte  ptr [rsp], 0
+       mov      byte  ptr [rsp+0x01], 0
+       movzx    rdx, word  ptr [rsp]
+       xor      esi, esi
        call     [System.Text.Json.Nodes.JsonObject:Create(System.Text.Json.JsonElement,System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonObject]
        ; gcrRegs -[rdi] +[rax]
        ; gcr arg pop 0
        nop      
-                       ;; size=41 bbWeight=1 PerfScore 13.50
+                       ;; size=29 bbWeight=1 PerfScore 11.50
 G_M65350_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 24
+       add      rsp, 8
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 61, prolog size 15, PerfScore 17.25, instruction count 16, allocated bytes for code 61 (MethodHash=0bb900b9) for method System.Text.Json.Nodes.Tests.JsonObjectTests+<>c__DisplayClass16_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
+; Total bytes of code 35, prolog size 1, PerfScore 13.75, instruction count 11, allocated bytes for code 35 (MethodHash=0bb900b9) for method System.Text.Json.Nodes.Tests.JsonObjectTests+<>c__DisplayClass16_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -62,9 +53,9 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x04
+  SizeOfProlog      : 0x01
   CountOfUnwindCodes: 1
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 2 * 8 + 8 = 24 = 0x18
+    CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08

-26 (-42.62%) : 257231.dasm - System.Text.Json.Nodes.Tests.JsonArrayTests+<>cDisplayClass10:<FromElementWrongNodeTypeThrows>b0():System.Object:this (FullOpts)

@@ -12,49 +12,40 @@
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Text.Json.JsonElement>
-;  V04 tmp2         [V04,T00] (  3,  6   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
-;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonElement>
-;* V06 tmp4         [V06,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V07 tmp5         [V07,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.value (fldOffset=0x1)" P-INDEP
+;  V04 tmp2         [V04,T00] (  3,  6   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
+;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonElement>
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V07 tmp5         [V07,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.value (fldOffset=0x1)" P-INDEP
 ;* V08 tmp6         [V08    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V03._parent (fldOffset=0x0)" P-INDEP
 ;* V09 tmp7         [V09    ] (  0,  0   )     int  ->  zero-ref    single-def "field V03._idx (fldOffset=0x8)" P-INDEP
-;  V10 tmp8         [V10,T05] (  2,  2   )     ref  ->  rsi         single-def "field V05._parent (fldOffset=0x0)" P-INDEP
-;* V11 tmp9         [V11,T08] (  0,  0   )     int  ->  zero-ref    single-def "field V05._idx (fldOffset=0x8)" P-INDEP
-;  V12 tmp10        [V12,T01] (  3,  6   )  struct ( 8) [rsp+0x10]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V13 tmp11        [V13,T03] (  2,  4   )  struct (16) [rsp+0x00]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.Text.Json.JsonElement>
-;  V14 cse0         [V14,T04] (  3,  3   )     ref  ->  rdi         "CSE - aggressive"
+;  V10 tmp8         [V10,T03] (  2,  2   )     ref  ->  rdi         single-def "field V05._parent (fldOffset=0x0)" P-INDEP
+;* V11 tmp9         [V11,T06] (  0,  0   )     int  ->  zero-ref    single-def "field V05._idx (fldOffset=0x8)" P-INDEP
+;  V12 tmp10        [V12,T01] (  3,  6   )  struct ( 8) [rsp+0x00]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 24
+; Lcl frame size = 8
 
 G_M52572_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 24
-       xor      eax, eax
-       mov      qword ptr [rsp], rax
-       mov      qword ptr [rsp+0x08], rax
-                       ;; size=15 bbWeight=1 PerfScore 2.50
+       push     rax
+                       ;; size=1 bbWeight=1 PerfScore 1.00
 G_M52572_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rdi]
        mov      rdi, gword ptr [rdi+0x08]
-       mov      rsi, rdi
-       ; gcrRegs +[rsi]
-       cmp      byte  ptr [rsi], sil
-       mov      gword ptr [rsp], rsi
-       mov      byte  ptr [rsp+0x10], 0
-       mov      byte  ptr [rsp+0x11], 0
-       mov      rsi, qword ptr [rsp+0x08]
-       ; gcrRegs -[rsi]
-       movzx    rdx, word  ptr [rsp+0x10]
+       cmp      byte  ptr [rdi], dil
+       mov      byte  ptr [rsp], 0
+       mov      byte  ptr [rsp+0x01], 0
+       movzx    rdx, word  ptr [rsp]
+       xor      esi, esi
        call     [System.Text.Json.Nodes.JsonArray:Create(System.Text.Json.JsonElement,System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonArray]
        ; gcrRegs -[rdi] +[rax]
        ; gcr arg pop 0
        nop      
-                       ;; size=41 bbWeight=1 PerfScore 13.50
+                       ;; size=29 bbWeight=1 PerfScore 11.50
 G_M52572_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 24
+       add      rsp, 8
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 61, prolog size 15, PerfScore 17.25, instruction count 16, allocated bytes for code 61 (MethodHash=419932a3) for method System.Text.Json.Nodes.Tests.JsonArrayTests+<>c__DisplayClass1_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
+; Total bytes of code 35, prolog size 1, PerfScore 13.75, instruction count 11, allocated bytes for code 35 (MethodHash=419932a3) for method System.Text.Json.Nodes.Tests.JsonArrayTests+<>c__DisplayClass1_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -62,9 +53,9 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x04
+  SizeOfProlog      : 0x01
   CountOfUnwindCodes: 1
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 2 * 8 + 8 = 24 = 0x18
+    CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08

+49 (+6.86%) : 259867.dasm - System.Text.Json.Serialization.Tests.JsonElementClass:Initialize():this (FullOpts)

@@ -22,11 +22,11 @@
 ;* V11 tmp8         [V11    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Text.Json.JsonDocumentOptions>
 ;* V12 tmp9         [V12    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlyMemory`1[ushort]>
 ;* V13 tmp10        [V13    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlyMemory`1[ushort]>
-;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
+;  V14 tmp11        [V14    ] (  5, 10   )  struct (16) [rbp-0x20]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
 ;* V15 tmp12        [V15    ] (  0,  0   )     int  ->  zero-ref   
 ;* V16 tmp13        [V16    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V17 tmp14        [V17    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V18 tmp15        [V18,T09] (  4,  7   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
+;  V18 tmp15        [V18,T02] (  4,  7   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
 ;* V19 tmp16        [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonElement>
 ;* V20 tmp17        [V20    ] (  0,  0   )  struct (16) zero-ref    multireg-ret single-def "Inline return value spill temp" <System.Text.Json.JsonElement>
 ;* V21 tmp18        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -34,11 +34,11 @@
 ;* V23 tmp20        [V23    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Text.Json.JsonDocumentOptions>
 ;* V24 tmp21        [V24    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlyMemory`1[ushort]>
 ;* V25 tmp22        [V25    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlyMemory`1[ushort]>
-;* V26 tmp23        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
+;  V26 tmp23        [V26    ] (  5, 10   )  struct (16) [rbp-0x30]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
 ;* V27 tmp24        [V27    ] (  0,  0   )     int  ->  zero-ref   
 ;* V28 tmp25        [V28    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V29 tmp26        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V30 tmp27        [V30,T10] (  4,  7   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
+;  V30 tmp27        [V30,T03] (  4,  7   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
 ;* V31 tmp28        [V31    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonElement>
 ;* V32 tmp29        [V32    ] (  0,  0   )  struct (16) zero-ref    multireg-ret single-def "Inline return value spill temp" <System.Text.Json.JsonElement>
 ;* V33 tmp30        [V33    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -46,11 +46,11 @@
 ;* V35 tmp32        [V35    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Text.Json.JsonDocumentOptions>
 ;* V36 tmp33        [V36    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlyMemory`1[ushort]>
 ;* V37 tmp34        [V37    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlyMemory`1[ushort]>
-;* V38 tmp35        [V38    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
+;  V38 tmp35        [V38    ] (  5, 10   )  struct (16) [rbp-0x40]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
 ;* V39 tmp36        [V39    ] (  0,  0   )     int  ->  zero-ref   
 ;* V40 tmp37        [V40    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V41 tmp38        [V41    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V42 tmp39        [V42,T11] (  4,  7   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
+;  V42 tmp39        [V42,T04] (  4,  7   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
 ;* V43 tmp40        [V43    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonElement>
 ;* V44 tmp41        [V44    ] (  0,  0   )  struct (16) zero-ref    multireg-ret single-def "Inline return value spill temp" <System.Text.Json.JsonElement>
 ;* V45 tmp42        [V45    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -58,11 +58,11 @@
 ;* V47 tmp44        [V47    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Text.Json.JsonDocumentOptions>
 ;* V48 tmp45        [V48    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlyMemory`1[ushort]>
 ;* V49 tmp46        [V49    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlyMemory`1[ushort]>
-;* V50 tmp47        [V50    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
+;  V50 tmp47        [V50    ] (  5, 10   )  struct (16) [rbp-0x50]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
 ;* V51 tmp48        [V51    ] (  0,  0   )     int  ->  zero-ref   
 ;* V52 tmp49        [V52    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V53 tmp50        [V53    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V54 tmp51        [V54,T12] (  4,  7   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
+;  V54 tmp51        [V54,T05] (  4,  7   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
 ;* V55 tmp52        [V55    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonElement>
 ;* V56 tmp53        [V56    ] (  0,  0   )  struct (16) zero-ref    multireg-ret single-def "Inline return value spill temp" <System.Text.Json.JsonElement>
 ;* V57 tmp54        [V57    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -70,9 +70,9 @@
 ;* V59 tmp56        [V59    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Text.Json.JsonDocumentOptions>
 ;* V60 tmp57        [V60    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlyMemory`1[ushort]>
 ;* V61 tmp58        [V61    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlyMemory`1[ushort]>
-;* V62 tmp59        [V62    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
+;  V62 tmp59        [V62    ] (  5, 10   )  struct (16) [rbp-0x60]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
 ;* V63 tmp60        [V63    ] (  0,  0   )     int  ->  zero-ref   
-;  V64 tmp61        [V64,T13] (  4,  7   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
+;  V64 tmp61        [V64,T06] (  4,  7   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
 ;* V65 tmp62        [V65    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonElement>
 ;* V66 tmp63        [V66    ] (  0,  0   )  struct (16) zero-ref    multireg-ret single-def "Inline return value spill temp" <System.Text.Json.JsonElement>
 ;* V67 tmp64        [V67    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -80,9 +80,9 @@
 ;* V69 tmp66        [V69    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Text.Json.JsonDocumentOptions>
 ;* V70 tmp67        [V70    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlyMemory`1[ushort]>
 ;* V71 tmp68        [V71    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlyMemory`1[ushort]>
-;* V72 tmp69        [V72    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
+;  V72 tmp69        [V72    ] (  5, 10   )  struct (16) [rbp-0x70]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
 ;* V73 tmp70        [V73    ] (  0,  0   )     int  ->  zero-ref   
-;  V74 tmp71        [V74,T14] (  4,  7   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
+;  V74 tmp71        [V74,T07] (  4,  7   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
 ;* V75 tmp72        [V75    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonElement>
 ;* V76 tmp73        [V76    ] (  0,  0   )  struct (16) zero-ref    multireg-ret single-def "Inline return value spill temp" <System.Text.Json.JsonElement>
 ;* V77 tmp74        [V77    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -90,9 +90,9 @@
 ;* V79 tmp76        [V79    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Text.Json.JsonDocumentOptions>
 ;* V80 tmp77        [V80    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlyMemory`1[ushort]>
 ;* V81 tmp78        [V81    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlyMemory`1[ushort]>
-;* V82 tmp79        [V82    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
+;  V82 tmp79        [V82    ] (  5, 10   )  struct (16) [rbp-0x80]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
 ;* V83 tmp80        [V83    ] (  0,  0   )     int  ->  zero-ref   
-;  V84 tmp81        [V84,T15] (  4,  7   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
+;  V84 tmp81        [V84,T08] (  4,  7   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
 ;* V85 tmp82        [V85    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonElement>
 ;* V86 tmp83        [V86    ] (  0,  0   )  struct (16) zero-ref    multireg-ret single-def "Inline return value spill temp" <System.Text.Json.JsonElement>
 ;* V87 tmp84        [V87    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
@@ -116,126 +116,119 @@
 ;* V105 tmp102      [V105    ] (  0,  0   )     int  ->  zero-ref    "field V09._idx (fldOffset=0x8)" P-INDEP
 ;* V106 tmp103      [V106    ] (  0,  0   )     ref  ->  zero-ref    "field V10._parent (fldOffset=0x0)" P-INDEP
 ;* V107 tmp104      [V107    ] (  0,  0   )     int  ->  zero-ref    "field V10._idx (fldOffset=0x8)" P-INDEP
-;* V108 tmp105      [V108,T44] (  0,  0   )     int  ->  zero-ref    single-def "field V11._maxDepth (fldOffset=0x0)" P-INDEP
-;* V109 tmp106      [V109,T45] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V11._commentHandling (fldOffset=0x4)" P-INDEP
-;* V110 tmp107      [V110,T46] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V11.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
+;* V108 tmp105      [V108,T51] (  0,  0   )     int  ->  zero-ref    single-def "field V11._maxDepth (fldOffset=0x0)" P-INDEP
+;* V109 tmp106      [V109,T52] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V11._commentHandling (fldOffset=0x4)" P-INDEP
+;* V110 tmp107      [V110,T53] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V11.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
 ;* V111 tmp108      [V111    ] (  0,  0   )     ref  ->  zero-ref    "field V12._object (fldOffset=0x0)" P-INDEP
 ;* V112 tmp109      [V112    ] (  0,  0   )     int  ->  zero-ref    "field V12._index (fldOffset=0x8)" P-INDEP
 ;* V113 tmp110      [V113    ] (  0,  0   )     int  ->  zero-ref    "field V12._length (fldOffset=0xc)" P-INDEP
 ;* V114 tmp111      [V114    ] (  0,  0   )     ref  ->  zero-ref    "field V13._object (fldOffset=0x0)" P-INDEP
 ;* V115 tmp112      [V115    ] (  0,  0   )     int  ->  zero-ref    "field V13._index (fldOffset=0x8)" P-INDEP
 ;* V116 tmp113      [V116    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0xc)" P-INDEP
-;* V117 tmp114      [V117,T37] (  0,  0   )     ref  ->  zero-ref    single-def "field V14._object (fldOffset=0x0)" P-INDEP
-;* V118 tmp115      [V118,T47] (  0,  0   )     int  ->  zero-ref    single-def "field V14._index (fldOffset=0x8)" P-INDEP
-;* V119 tmp116      [V119,T48] (  0,  0   )     int  ->  zero-ref    single-def "field V14._length (fldOffset=0xc)" P-INDEP
-;  V120 tmp117      [V120,T16] (  3,  2.50)     ref  ->  rsi         single-def "field V19._parent (fldOffset=0x0)" P-INDEP
-;* V121 tmp118      [V121,T49] (  0,  0   )     int  ->  zero-ref    single-def "field V19._idx (fldOffset=0x8)" P-INDEP
-;  V122 tmp119      [V122,T23] (  3,  2   )     ref  ->  rsi         single-def "field V20._parent (fldOffset=0x0)" P-INDEP
-;  V123 tmp120      [V123,T30] (  3,  2   )     int  ->  r15         single-def "field V20._idx (fldOffset=0x8)" P-INDEP
-;* V124 tmp121      [V124,T50] (  0,  0   )     int  ->  zero-ref    single-def "field V23._maxDepth (fldOffset=0x0)" P-INDEP
-;* V125 tmp122      [V125,T51] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V23._commentHandling (fldOffset=0x4)" P-INDEP
-;* V126 tmp123      [V126,T52] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V23.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
+;  V117 tmp114      [V117,T09] (  3,  5   )     ref  ->  [rbp-0x20]  do-not-enreg[] single-def "field V14._object (fldOffset=0x0)" P-DEP
+;  V118 tmp115      [V118,T16] (  3,  5   )     int  ->  [rbp-0x18]  do-not-enreg[] single-def "field V14._index (fldOffset=0x8)" P-DEP
+;  V119 tmp116      [V119,T17] (  3,  5   )     int  ->  [rbp-0x14]  do-not-enreg[] single-def "field V14._length (fldOffset=0xc)" P-DEP
+;  V120 tmp117      [V120,T30] (  3,  2.50)     ref  ->  rsi         single-def "field V19._parent (fldOffset=0x0)" P-INDEP
+;* V121 tmp118      [V121,T54] (  0,  0   )     int  ->  zero-ref    single-def "field V19._idx (fldOffset=0x8)" P-INDEP
+;  V122 tmp119      [V122,T37] (  3,  2   )     ref  ->  rsi         single-def "field V20._parent (fldOffset=0x0)" P-INDEP
+;  V123 tmp120      [V123,T44] (  3,  2   )     int  ->  r15         single-def "field V20._idx (fldOffset=0x8)" P-INDEP
+;* V124 tmp121      [V124,T55] (  0,  0   )     int  ->  zero-ref    single-def "field V23._maxDepth (fldOffset=0x0)" P-INDEP
+;* V125 tmp122      [V125,T56] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V23._commentHandling (fldOffset=0x4)" P-INDEP
+;* V126 tmp123      [V126,T57] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V23.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
 ;* V127 tmp124      [V127    ] (  0,  0   )     ref  ->  zero-ref    "field V24._object (fldOffset=0x0)" P-INDEP
 ;* V128 tmp125      [V128    ] (  0,  0   )     int  ->  zero-ref    "field V24._index (fldOffset=0x8)" P-INDEP
 ;* V129 tmp126      [V129    ] (  0,  0   )     int  ->  zero-ref    "field V24._length (fldOffset=0xc)" P-INDEP
 ;* V130 tmp127      [V130    ] (  0,  0   )     ref  ->  zero-ref    "field V25._object (fldOffset=0x0)" P-INDEP
 ;* V131 tmp128      [V131    ] (  0,  0   )     int  ->  zero-ref    "field V25._index (fldOffset=0x8)" P-INDEP
 ;* V132 tmp129      [V132    ] (  0,  0   )     int  ->  zero-ref    "field V25._length (fldOffset=0xc)" P-INDEP
-;* V133 tmp130      [V133,T38] (  0,  0   )     ref  ->  zero-ref    single-def "field V26._object (fldOffset=0x0)" P-INDEP
-;* V134 tmp131      [V134,T53] (  0,  0   )     int  ->  zero-ref    single-def "field V26._index (fldOffset=0x8)" P-INDEP
-;* V135 tmp132      [V135,T54] (  0,  0   )     int  ->  zero-ref    single-def "field V26._length (fldOffset=0xc)" P-INDEP
-;  V136 tmp133      [V136,T17] (  3,  2.50)     ref  ->  rsi         single-def "field V31._parent (fldOffset=0x0)" P-INDEP
-;* V137 tmp134      [V137,T55] (  0,  0   )     int  ->  zero-ref    single-def "field V31._idx (fldOffset=0x8)" P-INDEP
-;  V138 tmp135      [V138,T24] (  3,  2   )     ref  ->  rsi         single-def "field V32._parent (fldOffset=0x0)" P-INDEP
-;  V139 tmp136      [V139,T31] (  3,  2   )     int  ->  r15         single-def "field V32._idx (fldOffset=0x8)" P-INDEP
-;* V140 tmp137      [V140,T56] (  0,  0   )     int  ->  zero-ref    single-def "field V35._maxDepth (fldOffset=0x0)" P-INDEP
-;* V141 tmp138      [V141,T57] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V35._commentHandling (fldOffset=0x4)" P-INDEP
-;* V142 tmp139      [V142,T58] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V35.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
+;  V133 tmp130      [V133,T10] (  3,  5   )     ref  ->  [rbp-0x30]  do-not-enreg[] single-def "field V26._object (fldOffset=0x0)" P-DEP
+;  V134 tmp131      [V134,T18] (  3,  5   )     int  ->  [rbp-0x28]  do-not-enreg[] single-def "field V26._index (fldOffset=0x8)" P-DEP
+;  V135 tmp132      [V135,T19] (  3,  5   )     int  ->  [rbp-0x24]  do-not-enreg[] single-def "field V26._length (fldOffset=0xc)" P-DEP
+;  V136 tmp133      [V136,T31] (  3,  2.50)     ref  ->  rsi         single-def "field V31._parent (fldOffset=0x0)" P-INDEP
+;* V137 tmp134      [V137,T58] (  0,  0   )     int  ->  zero-ref    single-def "field V31._idx (fldOffset=0x8)" P-INDEP
+;  V138 tmp135      [V138,T38] (  3,  2   )     ref  ->  rsi         single-def "field V32._parent (fldOffset=0x0)" P-INDEP
+;  V139 tmp136      [V139,T45] (  3,  2   )     int  ->  r15         single-def "field V32._idx (fldOffset=0x8)" P-INDEP
+;* V140 tmp137      [V140,T59] (  0,  0   )     int  ->  zero-ref    single-def "field V35._maxDepth (fldOffset=0x0)" P-INDEP
+;* V141 tmp138      [V141,T60] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V35._commentHandling (fldOffset=0x4)" P-INDEP
+;* V142 tmp139      [V142,T61] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V35.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
 ;* V143 tmp140      [V143    ] (  0,  0   )     ref  ->  zero-ref    "field V36._object (fldOffset=0x0)" P-INDEP
 ;* V144 tmp141      [V144    ] (  0,  0   )     int  ->  zero-ref    "field V36._index (fldOffset=0x8)" P-INDEP
 ;* V145 tmp142      [V145    ] (  0,  0   )     int  ->  zero-ref    "field V36._length (fldOffset=0xc)" P-INDEP
 ;* V146 tmp143      [V146    ] (  0,  0   )     ref  ->  zero-ref    "field V37._object (fldOffset=0x0)" P-INDEP
 ;* V147 tmp144      [V147    ] (  0,  0   )     int  ->  zero-ref    "field V37._index (fldOffset=0x8)" P-INDEP
 ;* V148 tmp145      [V148    ] (  0,  0   )     int  ->  zero-ref    "field V37._length (fldOffset=0xc)" P-INDEP
-;* V149 tmp146      [V149,T39] (  0,  0   )     ref  ->  zero-ref    single-def "field V38._object (fldOffset=0x0)" P-INDEP
-;* V150 tmp147      [V150,T59] (  0,  0   )     int  ->  zero-ref    single-def "field V38._index (fldOffset=0x8)" P-INDEP
-;* V151 tmp148      [V151,T60] (  0,  0   )     int  ->  zero-ref    single-def "field V38._length (fldOffset=0xc)" P-INDEP
-;  V152 tmp149      [V152,T18] (  3,  2.50)     ref  ->  rsi         single-def "field V43._parent (fldOffset=0x0)" P-INDEP
-;* V153 tmp150      [V153,T61] (  0,  0   )     int  ->  zero-ref    single-def "field V43._idx (fldOffset=0x8)" P-INDEP
-;  V154 tmp151      [V154,T25] (  3,  2   )     ref  ->  rsi         single-def "field V44._parent (fldOffset=0x0)" P-INDEP
-;  V155 tmp152      [V155,T32] (  3,  2   )     int  ->  r15         single-def "field V44._idx (fldOffset=0x8)" P-INDEP
-;* V156 tmp153      [V156,T62] (  0,  0   )     int  ->  zero-ref    single-def "field V47._maxDepth (fldOffset=0x0)" P-INDEP
-;* V157 tmp154      [V157,T63] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V47._commentHandling (fldOffset=0x4)" P-INDEP
-;* V158 tmp155      [V158,T64] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V47.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
+;  V149 tmp146      [V149,T11] (  3,  5   )     ref  ->  [rbp-0x40]  do-not-enreg[] single-def "field V38._object (fldOffset=0x0)" P-DEP
+;  V150 tmp147      [V150,T20] (  3,  5   )     int  ->  [rbp-0x38]  do-not-enreg[] single-def "field V38._index (fldOffset=0x8)" P-DEP
+;  V151 tmp148      [V151,T21] (  3,  5   )     int  ->  [rbp-0x34]  do-not-enreg[] single-def "field V38._length (fldOffset=0xc)" P-DEP
+;  V152 tmp149      [V152,T32] (  3,  2.50)     ref  ->  rsi         single-def "field V43._parent (fldOffset=0x0)" P-INDEP
+;* V153 tmp150      [V153,T62] (  0,  0   )     int  ->  zero-ref    single-def "field V43._idx (fldOffset=0x8)" P-INDEP
+;  V154 tmp151      [V154,T39] (  3,  2   )     ref  ->  rsi         single-def "field V44._parent (fldOffset=0x0)" P-INDEP
+;  V155 tmp152      [V155,T46] (  3,  2   )     int  ->  r15         single-def "field V44._idx (fldOffset=0x8)" P-INDEP
+;* V156 tmp153      [V156,T63] (  0,  0   )     int  ->  zero-ref    single-def "field V47._maxDepth (fldOffset=0x0)" P-INDEP
+;* V157 tmp154      [V157,T64] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V47._commentHandling (fldOffset=0x4)" P-INDEP
+;* V158 tmp155      [V158,T65] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V47.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
 ;* V159 tmp156      [V159    ] (  0,  0   )     ref  ->  zero-ref    "field V48._object (fldOffset=0x0)" P-INDEP
 ;* V160 tmp157      [V160    ] (  0,  0   )     int  ->  zero-ref    "field V48._index (fldOffset=0x8)" P-INDEP
 ;* V161 tmp158      [V161    ] (  0,  0   )     int  ->  zero-ref    "field V48._length (fldOffset=0xc)" P-INDEP
 ;* V162 tmp159      [V162    ] (  0,  0   )     ref  ->  zero-ref    "field V49._object (fldOffset=0x0)" P-INDEP
 ;* V163 tmp160      [V163    ] (  0,  0   )     int  ->  zero-ref    "field V49._index (fldOffset=0x8)" P-INDEP
 ;* V164 tmp161      [V164    ] (  0,  0   )     int  ->  zero-ref    "field V49._length (fldOffset=0xc)" P-INDEP
-;* V165 tmp162      [V165,T40] (  0,  0   )     ref  ->  zero-ref    single-def "field V50._object (fldOffset=0x0)" P-INDEP
-;* V166 tmp163      [V166,T65] (  0,  0   )     int  ->  zero-ref    single-def "field V50._index (fldOffset=0x8)" P-INDEP
-;* V167 tmp164      [V167,T66] (  0,  0   )     int  ->  zero-ref    single-def "field V50._length (fldOffset=0xc)" P-INDEP
-;  V168 tmp165      [V168,T19] (  3,  2.50)     ref  ->  rsi         single-def "field V55._parent (fldOffset=0x0)" P-INDEP
-;* V169 tmp166      [V169,T67] (  0,  0   )     int  ->  zero-ref    single-def "field V55._idx (fldOffset=0x8)" P-INDEP
-;  V170 tmp167      [V170,T26] (  3,  2   )     ref  ->  rsi         single-def "field V56._parent (fldOffset=0x0)" P-INDEP
-;  V171 tmp168      [V171,T33] (  3,  2   )     int  ->  r15         single-def "field V56._idx (fldOffset=0x8)" P-INDEP
-;* V172 tmp169      [V172,T68] (  0,  0   )     int  ->  zero-ref    single-def "field V59._maxDepth (fldOffset=0x0)" P-INDEP
-;* V173 tmp170      [V173,T69] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V59._commentHandling (fldOffset=0x4)" P-INDEP
-;* V174 tmp171      [V174,T70] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V59.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
+;  V165 tmp162      [V165,T12] (  3,  5   )     ref  ->  [rbp-0x50]  do-not-enreg[] single-def "field V50._object (fldOffset=0x0)" P-DEP
+;  V166 tmp163      [V166,T22] (  3,  5   )     int  ->  [rbp-0x48]  do-not-enreg[] single-def "field V50._index (fldOffset=0x8)" P-DEP
+;  V167 tmp164      [V167,T23] (  3,  5   )     int  ->  [rbp-0x44]  do-not-enreg[] single-def "field V50._length (fldOffset=0xc)" P-DEP
+;  V168 tmp165      [V168,T33] (  3,  2.50)     ref  ->  rsi         single-def "field V55._parent (fldOffset=0x0)" P-INDEP
+;* V169 tmp166      [V169,T66] (  0,  0   )     int  ->  zero-ref    single-def "field V55._idx (fldOffset=0x8)" P-INDEP
+;  V170 tmp167      [V170,T40] (  3,  2   )     ref  ->  rsi         single-def "field V56._parent (fldOffset=0x0)" P-INDEP
+;  V171 tmp168      [V171,T47] (  3,  2   )     int  ->  r15         single-def "field V56._idx (fldOffset=0x8)" P-INDEP
+;* V172 tmp169      [V172,T67] (  0,  0   )     int  ->  zero-ref    single-def "field V59._maxDepth (fldOffset=0x0)" P-INDEP
+;* V173 tmp170      [V173,T68] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V59._commentHandling (fldOffset=0x4)" P-INDEP
+;* V174 tmp171      [V174,T69] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V59.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
 ;* V175 tmp172      [V175    ] (  0,  0   )     ref  ->  zero-ref    "field V60._object (fldOffset=0x0)" P-INDEP
 ;* V176 tmp173      [V176    ] (  0,  0   )     int  ->  zero-ref    "field V60._index (fldOffset=0x8)" P-INDEP
 ;* V177 tmp174      [V177    ] (  0,  0   )     int  ->  zero-ref    "field V60._length (fldOffset=0xc)" P-INDEP
 ;* V178 tmp175      [V178    ] (  0,  0   )     ref  ->  zero-ref    "field V61._object (fldOffset=0x0)" P-INDEP
 ;* V179 tmp176      [V179    ] (  0,  0   )     int  ->  zero-ref    "field V61._index (fldOffset=0x8)" P-INDEP
 ;* V180 tmp177      [V180    ] (  0,  0   )     int  ->  zero-ref    "field V61._length (fldOffset=0xc)" P-INDEP
-;* V181 tmp178      [V181,T41] (  0,  0   )     ref  ->  zero-ref    single-def "field V62._object (fldOffset=0x0)" P-INDEP
-;* V182 tmp179      [V182,T71] (  0,  0   )     int  ->  zero-ref    single-def "field V62._index (fldOffset=0x8)" P-INDEP
-;* V183 tmp180      [V183,T72] (  0,  0   )     int  ->  zero-ref    single-def "field V62._length (fldOffset=0xc)" P-INDEP
-;  V184 tmp181      [V184,T20] (  3,  2.50)     ref  ->  rsi         single-def "field V65._parent (fldOffset=0x0)" P-INDEP
-;* V185 tmp182      [V185,T73] (  0,  0   )     int  ->  zero-ref    single-def "field V65._idx (fldOffset=0x8)" P-INDEP
-;  V186 tmp183      [V186,T27] (  3,  2   )     ref  ->  rsi         single-def "field V66._parent (fldOffset=0x0)" P-INDEP
-;  V187 tmp184      [V187,T34] (  3,  2   )     int  ->  r15         single-def "field V66._idx (fldOffset=0x8)" P-INDEP
-;* V188 tmp185      [V188,T74] (  0,  0   )     int  ->  zero-ref    single-def "field V69._maxDepth (fldOffset=0x0)" P-INDEP
-;* V189 tmp186      [V189,T75] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V69._commentHandling (fldOffset=0x4)" P-INDEP
-;* V190 tmp187      [V190,T76] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V69.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
+;  V181 tmp178      [V181,T13] (  3,  5   )     ref  ->  [rbp-0x60]  do-not-enreg[] single-def "field V62._object (fldOffset=0x0)" P-DEP
+;  V182 tmp179      [V182,T24] (  3,  5   )     int  ->  [rbp-0x58]  do-not-enreg[] single-def "field V62._index (fldOffset=0x8)" P-DEP
+;  V183 tmp180      [V183,T25] (  3,  5   )     int  ->  [rbp-0x54]  do-not-enreg[] single-def "field V62._length (fldOffset=0xc)" P-DEP
+;  V184 tmp181      [V184,T34] (  3,  2.50)     ref  ->  rsi         single-def "field V65._parent (fldOffset=0x0)" P-INDEP
+;* V185 tmp182      [V185,T70] (  0,  0   )     int  ->  zero-ref    single-def "field V65._idx (fldOffset=0x8)" P-INDEP
+;  V186 tmp183      [V186,T41] (  3,  2   )     ref  ->  rsi         single-def "field V66._parent (fldOffset=0x0)" P-INDEP
+;  V187 tmp184      [V187,T48] (  3,  2   )     int  ->  r15         single-def "field V66._idx (fldOffset=0x8)" P-INDEP
+;* V188 tmp185      [V188,T71] (  0,  0   )     int  ->  zero-ref    single-def "field V69._maxDepth (fldOffset=0x0)" P-INDEP
+;* V189 tmp186      [V189,T72] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V69._commentHandling (fldOffset=0x4)" P-INDEP
+;* V190 tmp187      [V190,T73] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V69.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
 ;* V191 tmp188      [V191    ] (  0,  0   )     ref  ->  zero-ref    "field V70._object (fldOffset=0x0)" P-INDEP
 ;* V192 tmp189      [V192    ] (  0,  0   )     int  ->  zero-ref    "field V70._index (fldOffset=0x8)" P-INDEP
 ;* V193 tmp190      [V193    ] (  0,  0   )     int  ->  zero-ref    "field V70._length (fldOffset=0xc)" P-INDEP
 ;* V194 tmp191      [V194    ] (  0,  0   )     ref  ->  zero-ref    "field V71._object (fldOffset=0x0)" P-INDEP
 ;* V195 tmp192      [V195    ] (  0,  0   )     int  ->  zero-ref    "field V71._index (fldOffset=0x8)" P-INDEP
 ;* V196 tmp193      [V196    ] (  0,  0   )     int  ->  zero-ref    "field V71._length (fldOffset=0xc)" P-INDEP
-;* V197 tmp194      [V197,T42] (  0,  0   )     ref  ->  zero-ref    single-def "field V72._object (fldOffset=0x0)" P-INDEP
-;* V198 tmp195      [V198,T77] (  0,  0   )     int  ->  zero-ref    single-def "field V72._index (fldOffset=0x8)" P-INDEP
-;* V199 tmp196      [V199,T78] (  0,  0   )     int  ->  zero-ref    single-def "field V72._length (fldOffset=0xc)" P-INDEP
-;  V200 tmp197      [V200,T21] (  3,  2.50)     ref  ->  rsi         single-def "field V75._parent (fldOffset=0x0)" P-INDEP
-;* V201 tmp198      [V201,T79] (  0,  0   )     int  ->  zero-ref    single-def "field V75._idx (fldOffset=0x8)" P-INDEP
-;  V202 tmp199      [V202,T28] (  3,  2   )     ref  ->  rsi         single-def "field V76._parent (fldOffset=0x0)" P-INDEP
-;  V203 tmp200      [V203,T35] (  3,  2   )     int  ->  r15         single-def "field V76._idx (fldOffset=0x8)" P-INDEP
-;* V204 tmp201      [V204,T80] (  0,  0   )     int  ->  zero-ref    single-def "field V79._maxDepth (fldOffset=0x0)" P-INDEP
-;* V205 tmp202      [V205,T81] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V79._commentHandling (fldOffset=0x4)" P-INDEP
-;* V206 tmp203      [V206,T82] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V79.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
+;  V197 tmp194      [V197,T14] (  3,  5   )     ref  ->  [rbp-0x70]  do-not-enreg[] single-def "field V72._object (fldOffset=0x0)" P-DEP
+;  V198 tmp195      [V198,T26] (  3,  5   )     int  ->  [rbp-0x68]  do-not-enreg[] single-def "field V72._index (fldOffset=0x8)" P-DEP
...

+3 (+7.50%) : 122845.dasm - System.IO.Compression.Tests.ZipFileZipArchiveCreate+<>cDisplayClass0_0:b1():System.Object:this (FullOpts)

@@ -10,14 +10,12 @@
 ;
 ;  V00 this         [V00,T00] (  4,  4   )     ref  ->  rdi         this class-hnd single-def <System.IO.Compression.Tests.ZipFile_ZipArchive_Create+<>c__DisplayClass0_0>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T02] (  2,  4   )     ref  ->  rcx         class-hnd single-def "Inlining Arg" <System.IO.Compression.ZipArchive>
-;  V03 tmp2         [V03,T03] (  2,  4   )     ref  ->  rdx         class-hnd exact single-def "Inlining Arg" <System.String>
+;  V02 tmp1         [V02,T02] (  2,  4   )     ref  ->  rdx         class-hnd single-def "Inlining Arg" <System.IO.Compression.ZipArchive>
+;  V03 tmp2         [V03,T03] (  2,  4   )     ref  ->  rsi         class-hnd exact single-def "Inlining Arg" <System.String>
 ;* V04 tmp3         [V04    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.Nullable`1[int]>
-;* V05 tmp4         [V05,T06] (  0,  0   )   ubyte  ->  zero-ref    "field V04.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp5         [V06,T07] (  0,  0   )     int  ->  zero-ref    "field V04.value (fldOffset=0x4)" P-INDEP
+;* V05 tmp4         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V04.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp5         [V06,T05] (  0,  0   )     int  ->  zero-ref    "field V04.value (fldOffset=0x4)" P-INDEP
 ;  V07 tmp6         [V07,T01] (  3,  6   )  struct ( 8) [rsp+0x00]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
-;  V08 tmp7         [V08,T04] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
-;  V09 tmp8         [V09,T05] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
 ;
 ; Lcl frame size = 8
 
@@ -26,29 +24,28 @@ G_M17240_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=1 bbWeight=1 PerfScore 1.00
 G_M17240_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rdi]
-       mov      rcx, gword ptr [rdi+0x08]
-       ; gcrRegs +[rcx]
-       mov      rdx, gword ptr [rdi+0x18]
+       mov      rdx, gword ptr [rdi+0x08]
        ; gcrRegs +[rdx]
-       mov      rdi, rcx
+       mov      rsi, gword ptr [rdi+0x18]
+       ; gcrRegs +[rsi]
        mov      byte  ptr [rsp], 0
        xor      ecx, ecx
-       ; gcrRegs -[rcx]
        mov      dword ptr [rsp+0x04], ecx
        mov      rcx, qword ptr [rsp]
+       mov      rdi, rdx
+       mov      rdx, rsi
        xor      rsi, rsi
-       ; gcrRegs +[rsi]
        call     [<unknown method>]
        ; gcrRegs -[rdx rsi rdi] +[rax]
        ; gcr arg pop 0
        nop      
-                       ;; size=34 bbWeight=1 PerfScore 11.00
+                       ;; size=37 bbWeight=1 PerfScore 11.25
 G_M17240_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 8
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 40, prolog size 1, PerfScore 13.25, instruction count 13, allocated bytes for code 40 (MethodHash=2822bca7) for method System.IO.Compression.Tests.ZipFile_ZipArchive_Create+<>c__DisplayClass0_0:<CreateEntryFromFileExtension>b__1():System.Object:this (FullOpts)
+; Total bytes of code 43, prolog size 1, PerfScore 13.50, instruction count 14, allocated bytes for code 43 (MethodHash=2822bca7) for method System.IO.Compression.Tests.ZipFile_ZipArchive_Create+<>c__DisplayClass0_0:<CreateEntryFromFileExtension>b__1():System.Object:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+9 (+19.15%) : 263719.dasm - System.Text.Json.Serialization.Tests.DefaultJsonTypeInfoResolverTests+<>cDisplayClass86_0`1[System.Canon]:b__12():System.Object:this (FullOpts)

@@ -15,13 +15,15 @@
 ;  V04 tmp2         [V04,T00] (  3,  6   )     ref  ->  rbx         class-hnd single-def "Inlining Arg" <System.Text.Json.Serialization.Metadata.JsonPolymorphismOptions>
 ;  V05 tmp3         [V05,T02] (  3,  5   )     ref  ->  rdi         class-hnd single-def "dup spill" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
 ;* V06 tmp4         [V06    ] (  0,  0   )     ref  ->  zero-ref    single-def
-;  V07 cse0         [V07,T03] (  3,  3   )     ref  ->  rbx         "CSE - aggressive"
+;  V07 cse0         [V07,T03] (  3,  3   )     ref  ->  r15         "CSE - aggressive"
 ;
-; Lcl frame size = 0
+; Lcl frame size = 8
 
 G_M10397_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+       push     r15
        push     rbx
-                       ;; size=1 bbWeight=1 PerfScore 1.00
+       push     rax
+                       ;; size=4 bbWeight=1 PerfScore 3.00
 G_M10397_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rdi]
        mov      rbx, gword ptr [rdi+0x18]
@@ -36,23 +38,26 @@ G_M10397_IG03:        ; bbWeight=0.50, gcrefRegs=0088 {rbx rdi}, byrefRegs=0000
        ; gcr arg pop 0
                        ;; size=6 bbWeight=0.50 PerfScore 1.50
 G_M10397_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
+       mov      r15, 0xD1FFAB1E
+       ; gcrRegs +[r15]
        lea      rdi, bword ptr [rbx+0x10]
        ; byrRegs +[rdi]
-       mov      rbx, 0xD1FFAB1E
-       mov      rsi, rbx
+       mov      rsi, r15
        ; gcrRegs +[rsi]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rsi]
+       ; gcrRegs -[rbx rsi]
        ; byrRegs -[rdi]
-       mov      rax, rbx
+       mov      rax, r15
        ; gcrRegs +[rax]
                        ;; size=25 bbWeight=1 PerfScore 2.25
 G_M10397_IG05:        ; bbWeight=1, epilog, nogc, extend
+       add      rsp, 8
        pop      rbx
+       pop      r15
        ret      
-                       ;; size=2 bbWeight=1 PerfScore 1.50
+                       ;; size=8 bbWeight=1 PerfScore 2.25
 
-; Total bytes of code 47, prolog size 1, PerfScore 11.50, instruction count 13, allocated bytes for code 47 (MethodHash=b2f5d762) for method System.Text.Json.Serialization.Tests.DefaultJsonTypeInfoResolverTests+<>c__DisplayClass86_0`1[System.__Canon]:<TestTypeInfoImmutability>b__12():System.Object:this (FullOpts)
+; Total bytes of code 56, prolog size 4, PerfScore 14.25, instruction count 17, allocated bytes for code 56 (MethodHash=b2f5d762) for method System.Text.Json.Serialization.Tests.DefaultJsonTypeInfoResolverTests+<>c__DisplayClass86_0`1[System.__Canon]:<TestTypeInfoImmutability>b__12():System.Object:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -60,9 +65,11 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x01
-  CountOfUnwindCodes: 1
+  SizeOfProlog      : 0x04
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)

realworld.run.linux.x64.checked.mch

-25 (-19.38%) : 14766.dasm - System.Formats.Asn1.AsnDecoder:ReadIntegerBytes(System.ReadOnlySpan1[ubyte],int,byref,System.Nullable1[System.Formats.Asn1.Asn1Tag]):System.ReadOnlySpan`1ubyte

@@ -9,9 +9,9 @@
 ; Final local variable assignments
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
-;  V01 arg1         [V01,T04] (  3,  3   )     int  ->  rdx         single-def
-;  V02 arg2         [V02,T03] (  3,  3   )   byref  ->   r9         single-def
-;  V03 arg3         [V03,T01] (  5,  5   )  struct (16) [rbp-0x10]  do-not-enreg[SA] multireg-arg single-def <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
+;  V01 arg1         [V01,T03] (  3,  3   )     int  ->  rdx         single-def
+;  V02 arg2         [V02,T02] (  3,  3   )   byref  ->   r9         single-def
+;  V03 arg3         [V03,T00] (  5,  5   )  struct (16) [rbp-0x10]  do-not-enreg[SA] multireg-arg single-def <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
 ;* V04 loc0         [V04    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op <System.Nullable`1[System.Formats.Asn1.Asn1Tag]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct (16) zero-ref    <System.ReadOnlySpan`1[ubyte]>
@@ -20,40 +20,36 @@
 ;* V09 tmp4         [V09    ] (  0,  0   )     int  ->  zero-ref   
 ;* V10 tmp5         [V10    ] (  0,  0   )  struct ( 8) zero-ref    <System.Formats.Asn1.Asn1Tag>
 ;* V11 tmp6         [V11    ] (  0,  0   )  struct (16) zero-ref    multireg-ret "Return value temp for multireg return" <System.ReadOnlySpan`1[ubyte]>
-;  V12 tmp7         [V12,T05] (  2,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V13 tmp8         [V13,T06] (  2,  2   )     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V12 tmp7         [V12,T04] (  2,  2   )   byref  ->  rdi         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V13 tmp8         [V13,T05] (  2,  2   )     int  ->  rsi         single-def "field V00._length (fldOffset=0x8)" P-INDEP
 ;* V14 tmp9         [V14    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V15 tmp10        [V15    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
 ;* V16 tmp11        [V16    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V17 tmp12        [V17    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
-;  V18 tmp13        [V18,T09] (  3,  2   )   ubyte  ->  rcx         "field V10._controlFlags (fldOffset=0x0)" P-INDEP
-;  V19 tmp14        [V19,T10] (  3,  2   )     int  ->  r10         "field V10.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
-;  V20 tmp15        [V20,T11] (  2,  2   )   byref  ->  rax         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
-;  V21 tmp16        [V21,T12] (  2,  2   )     int  ->  rdx         "field V11._length (fldOffset=0x8)" P-INDEP
-;  V22 tmp17        [V22,T13] (  2,  2   )   ubyte  ->  rcx         "V04.[000..001)"
-;  V23 tmp18        [V23,T14] (  2,  1.50)   ubyte  ->   r8         "V04.[004..005)"
-;  V24 tmp19        [V24,T15] (  2,  1.50)     int  ->  rax         "V04.[008..012)"
-;  V25 tmp20        [V25,T08] (  3,  3   )  struct (16) [rbp-0x20]  do-not-enreg[SFR] multireg-ret must-init "Return value temp for multi-reg return (rejected tail call)." <System.ReadOnlySpan`1[ubyte]>
-;  V26 tmp21        [V26,T02] (  3,  6   )  struct ( 8) [rbp-0x28]  do-not-enreg[SF] "by-value struct argument" <System.Formats.Asn1.Asn1Tag>
-;  V27 tmp22        [V27,T00] (  4,  8   )  struct (16) [rbp-0x38]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.ReadOnlySpan`1[ubyte]>
-;  V28 tmp23        [V28,T07] (  2,  4   )     int  ->  rdx         "argument with side effect"
-;* V29 cse0         [V29,T16] (  0,  0   )    long  ->  zero-ref    "CSE - moderate"
+;  V18 tmp13        [V18,T07] (  3,  2   )   ubyte  ->  rcx         "field V10._controlFlags (fldOffset=0x0)" P-INDEP
+;  V19 tmp14        [V19,T08] (  3,  2   )     int  ->  r10         "field V10.<TagValue>k__BackingField (fldOffset=0x4)" P-INDEP
+;  V20 tmp15        [V20,T09] (  2,  2   )   byref  ->  rax         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
+;  V21 tmp16        [V21,T10] (  2,  2   )     int  ->  rdx         "field V11._length (fldOffset=0x8)" P-INDEP
+;  V22 tmp17        [V22,T11] (  2,  2   )   ubyte  ->  rcx         "V04.[000..001)"
+;  V23 tmp18        [V23,T12] (  2,  1.50)   ubyte  ->   r8         "V04.[004..005)"
+;  V24 tmp19        [V24,T13] (  2,  1.50)     int  ->  rax         "V04.[008..012)"
+;  V25 tmp20        [V25,T06] (  3,  3   )  struct (16) [rbp-0x20]  do-not-enreg[SFR] multireg-ret must-init "Return value temp for multi-reg return (rejected tail call)." <System.ReadOnlySpan`1[ubyte]>
+;  V26 tmp21        [V26,T01] (  3,  6   )  struct ( 8) [rbp-0x28]  do-not-enreg[SF] "by-value struct argument" <System.Formats.Asn1.Asn1Tag>
+;* V27 cse0         [V27,T14] (  0,  0   )    long  ->  zero-ref    "CSE - moderate"
 ;
-; Lcl frame size = 64
+; Lcl frame size = 48
 
 G_M37843_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 64
-       lea      rbp, [rsp+0x40]
+       sub      rsp, 48
+       lea      rbp, [rsp+0x30]
        xor      eax, eax
-       mov      qword ptr [rbp-0x38], rax
-       vxorps   xmm8, xmm8, xmm8
-       vmovdqu  ymmword ptr [rbp-0x30], ymm8
+       mov      qword ptr [rbp-0x20], rax
        mov      qword ptr [rbp-0x10], r8
        mov      dword ptr [rbp-0x08], r9d
        mov      r9, rcx
        ; byrRegs +[r9]
-                       ;; size=37 bbWeight=1 PerfScore 7.58
+                       ;; size=27 bbWeight=1 PerfScore 5.25
 G_M37843_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0280 {rdi r9}, byref, isz
        ; byrRegs +[rdi]
        movzx    rcx, byte  ptr [rbp-0x10]
@@ -72,12 +68,8 @@ G_M37843_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0280 {rdi r9
        mov      r10d, eax
                        ;; size=7 bbWeight=0.50 PerfScore 0.25
 G_M37843_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0280 {rdi r9}, byref
-       mov      bword ptr [rbp-0x38], rdi
-       mov      dword ptr [rbp-0x30], esi
        mov      byte  ptr [rbp-0x28], cl
        mov      dword ptr [rbp-0x24], r10d
-       mov      rdi, bword ptr [rbp-0x38]
-       mov      rsi, qword ptr [rbp-0x30]
        mov      rcx, qword ptr [rbp-0x28]
        mov      r8d, 2
        call     [System.Formats.Asn1.AsnDecoder:GetIntegerContents(System.ReadOnlySpan`1[ubyte],int,System.Formats.Asn1.Asn1Tag,int,byref):System.ReadOnlySpan`1[ubyte]]
@@ -86,14 +78,14 @@ G_M37843_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0280 {rdi r9},
        mov      qword ptr [rbp-0x18], rdx
        mov      rax, bword ptr [rbp-0x20]
        mov      edx, dword ptr [rbp-0x18]
-                       ;; size=53 bbWeight=1 PerfScore 14.25
+                       ;; size=38 bbWeight=1 PerfScore 10.25
 G_M37843_IG06:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 64
+       add      rsp, 48
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 129, prolog size 26, PerfScore 29.33, instruction count 36, allocated bytes for code 129 (MethodHash=cd5d6c2c) for method System.Formats.Asn1.AsnDecoder:ReadIntegerBytes(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.ReadOnlySpan`1[ubyte] (FullOpts)
+; Total bytes of code 104, prolog size 16, PerfScore 23.00, instruction count 30, allocated bytes for code 104 (MethodHash=cd5d6c2c) for method System.Formats.Asn1.AsnDecoder:ReadIntegerBytes(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.ReadOnlySpan`1[ubyte] (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -106,5 +98,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

-9 (-19.15%) : 13636.dasm - Microsoft.ML.Trainers.SdcaTrainerBase3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]:ApplyAt(long,Microsoft.ML.Trainers.SdcaTrainerBase3+Visitor[System.Canon,System.Canon,System.__Canon]):this (FullOpts)

@@ -9,38 +9,32 @@
 ;
 ;  V00 this         [V00,T03] (  3,  3   )     ref  ->  rdi         this class-hnd single-def <Microsoft.ML.Trainers.SdcaTrainerBase`3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T00] (  5,  5   )    long  ->  rsi         single-def
-;  V02 arg2         [V02,T04] (  3,  3   )     ref  ->  rdx         class-hnd single-def <Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]>
+;  V02 arg2         [V02,T01] (  4,  4   )     ref  ->  rax         class-hnd single-def <Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T01] (  3,  6   )     ref  ->  rdi         single-def "arr expr"
-;  V05 tmp2         [V05,T02] (  3,  6   )     ref  ->  rax         single-def "argument with side effect"
-;  V06 tmp3         [V06,T06] (  2,  4   )    long  ->  rdx         "argument with side effect"
-;  V07 tmp4         [V07,T05] (  2,  4   )   byref  ->  rdi         single-def "argument with side effect"
+;  V04 tmp1         [V04,T02] (  3,  6   )     ref  ->  rdx         single-def "arr expr"
+;  V05 tmp2         [V05,T04] (  2,  4   )   byref  ->  rdx         single-def "argument with side effect"
 ;
 ; Lcl frame size = 8
 
 G_M22309_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rax
-                       ;; size=1 bbWeight=1 PerfScore 1.00
-G_M22309_IG02:        ; bbWeight=1, gcrefRegs=0084 {rdx rdi}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rdx rdi]
        mov      rax, rdx
        ; gcrRegs +[rax]
-       mov      rdx, rsi
-       ; gcrRegs -[rdx]
-       mov      rdi, gword ptr [rdi+0x08]
-       cmp      esi, dword ptr [rdi+0x08]
+                       ;; size=4 bbWeight=1 PerfScore 1.25
+G_M22309_IG02:        ; bbWeight=1, gcrefRegs=0081 {rax rdi}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs +[rdi]
+       mov      rdx, gword ptr [rdi+0x08]
+       ; gcrRegs +[rdx]
+       cmp      esi, dword ptr [rdx+0x08]
        jae      SHORT G_M22309_IG04
-       mov      esi, esi
-       lea      rdi, bword ptr [rdi+4*rsi+0x10]
+       mov      edi, esi
        ; gcrRegs -[rdi]
-       ; byrRegs +[rdi]
-       mov      rsi, rdx
-       mov      rdx, rdi
+       lea      rdx, bword ptr [rdx+4*rdi+0x10]
+       ; gcrRegs -[rdx]
        ; byrRegs +[rdx]
        mov      rdi, gword ptr [rax+0x08]
        ; gcrRegs +[rdi]
-       ; byrRegs -[rdi]
-                       ;; size=32 bbWeight=1 PerfScore 10.25
+                       ;; size=20 bbWeight=1 PerfScore 9.25
 G_M22309_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 8
        tail.jmp [rax+0x18]<unknown method>
@@ -53,7 +47,7 @@ G_M22309_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 47, prolog size 1, PerfScore 13.50, instruction count 15, allocated bytes for code 47 (MethodHash=cc0aa8da) for method Microsoft.ML.Trainers.SdcaTrainerBase`3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]:ApplyAt(long,Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]):this (FullOpts)
+; Total bytes of code 38, prolog size 4, PerfScore 12.75, instruction count 12, allocated bytes for code 38 (MethodHash=cc0aa8da) for method Microsoft.ML.Trainers.SdcaTrainerBase`3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]:ApplyAt(long,Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-20 (-16.39%) : 3236.dasm - System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)

@@ -10,63 +10,56 @@
 ;
 ;  V00 this         [V00,T00] ( 10,  7   )   byref  ->  rbx         this single-def
 ;* V01 TypeCtx      [V01    ] (  0,  0   )    long  ->  zero-ref    single-def
-;  V02 loc0         [V02,T01] (  4,  3   )     ref  ->  [rbp-0x18]  class-hnd spill-single-def <<unknown class>>
+;  V02 loc0         [V02,T01] (  4,  3   )     ref  ->  rdi         class-hnd single-def <<unknown class>>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T02] (  3,  3   )     ref  ->  rax         single-def "arr expr"
+;  V04 tmp1         [V04,T02] (  3,  3   )     ref  ->  rdi         single-def "arr expr"
 ;  V05 tmp2         [V05,T03] (  3,  3   )     int  ->  rsi         "index expr"
 ;  V06 cse0         [V06,T05] (  3,  1.50)     int  ->  rsi         "CSE - moderate"
 ;  V07 cse1         [V07,T04] (  3,  2.50)     ref  ->  r15         "CSE - aggressive"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 0
 
 G_M60837_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        push     r15
        push     rbx
-       sub      rsp, 16
-       lea      rbp, [rsp+0x20]
+       lea      rbp, [rsp+0x10]
        mov      rbx, rdi
        ; byrRegs +[rbx]
-                       ;; size=16 bbWeight=1 PerfScore 4.00
+                       ;; size=12 bbWeight=1 PerfScore 3.75
 G_M60837_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        mov      r15, gword ptr [rbx]
        ; gcrRegs +[r15]
        mov      rdi, r15
        ; gcrRegs +[rdi]
-       mov      gword ptr [rbp-0x18], rdi
-       ; GC ptr vars +{V02}
        mov      esi, dword ptr [rbx+0x14]
        cmp      esi, dword ptr [rdi+0x14]
        jne      SHORT G_M60837_IG08
-                       ;; size=18 bbWeight=1 PerfScore 9.25
-G_M60837_IG03:        ; bbWeight=0.50, gcVars=0000000000000002 {V02}, gcrefRegs=8080 {rdi r15}, byrefRegs=0008 {rbx}, gcvars, byref, isz
+                       ;; size=14 bbWeight=1 PerfScore 8.25
+G_M60837_IG03:        ; bbWeight=0.50, gcrefRegs=8080 {rdi r15}, byrefRegs=0008 {rbx}, byref, isz
        mov      esi, dword ptr [rbx+0x10]
        cmp      esi, dword ptr [rdi+0x10]
        jae      SHORT G_M60837_IG05
+       mov      rdi, gword ptr [rdi+0x08]
+       cmp      esi, dword ptr [rdi+0x08]
+       jae      SHORT G_M60837_IG07
+       mov      rsi, gword ptr [rdi+8*rsi+0x10]
+       ; gcrRegs +[rsi]
        lea      rdi, bword ptr [rbx+0x08]
        ; gcrRegs -[rdi]
        ; byrRegs +[rdi]
-       mov      rax, gword ptr [rbp-0x18]
-       ; gcrRegs +[rax]
-       mov      rax, gword ptr [rax+0x08]
-       cmp      esi, dword ptr [rax+0x08]
-       jae      SHORT G_M60837_IG07
-       mov      rsi, gword ptr [rax+8*rsi+0x10]
-       ; gcrRegs +[rsi]
-       ; GC ptr vars -{V02}
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       ; gcrRegs -[rax rsi r15]
+       ; gcrRegs -[rsi r15]
        ; byrRegs -[rdi]
        inc      dword ptr [rbx+0x10]
        mov      eax, 1
-                       ;; size=43 bbWeight=0.50 PerfScore 9.88
+                       ;; size=39 bbWeight=0.50 PerfScore 9.38
 G_M60837_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 16
        pop      rbx
        pop      r15
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=0.50 PerfScore 1.38
+                       ;; size=5 bbWeight=0.50 PerfScore 1.25
 G_M60837_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=8000 {r15}, byrefRegs=0008 {rbx}, gcvars, byref
        ; gcrRegs +[r15]
        mov      eax, dword ptr [r15+0x10]
@@ -79,12 +72,11 @@ G_M60837_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800
 G_M60837_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        ; gcrRegs -[rax r15]
        ; byrRegs -[rbx]
-       add      rsp, 16
        pop      rbx
        pop      r15
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=0.50 PerfScore 1.38
+                       ;; size=5 bbWeight=0.50 PerfScore 1.25
 G_M60837_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
                        ;; size=5 bbWeight=0 PerfScore 0.00
@@ -93,7 +85,7 @@ G_M60837_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 122, prolog size 13, PerfScore 28.12, instruction count 42, allocated bytes for code 122 (MethodHash=5726125a) for method System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 102, prolog size 9, PerfScore 26.12, instruction count 37, allocated bytes for code 102 (MethodHash=5726125a) for method System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -101,12 +93,11 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x08
-  CountOfUnwindCodes: 4
+  SizeOfProlog      : 0x04
+  CountOfUnwindCodes: 3
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 1 * 8 + 8 = 16 = 0x10
     CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+35 (+2.46%) : 23800.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindConditionalOperator(Microsoft.CodeAnalysis.CSharp.Syntax.ConditionalExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)

@@ -11,23 +11,23 @@
 ;  V00 this         [V00,T07] (  4,  3.50)     ref  ->  r14         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Binder>
 ;  V01 arg1         [V01,T00] ( 14, 10.50)     ref  ->  rbx         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.ConditionalExpressionSyntax>
 ;  V02 arg2         [V02,T01] ( 11,  8.50)     ref  ->  r15         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag>
-;  V03 loc0         [V03,T08] (  5,  3.50)     ref  ->  r13         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax>
+;  V03 loc0         [V03,T12] (  5,  3.50)     ref  ->  r13         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax>
 ;  V04 loc1         [V04    ] (  3,  2.50)   ubyte  ->  [rbp-0x30]  do-not-enreg[X] must-init addr-exposed ld-addr-op
-;  V05 loc2         [V05,T09] (  5,  3.50)     ref  ->  r12         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax>
+;  V05 loc2         [V05,T13] (  5,  3.50)     ref  ->  r12         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax>
 ;  V06 loc3         [V06    ] (  3,  2   )   ubyte  ->  [rbp-0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;  V07 loc4         [V07    ] ( 16,  8   )  struct (24) [rbp-0x50]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.SyntaxToken>
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V09 tmp1         [V09,T16] (  3,  2   )     int  ->  rdi        
+;  V09 tmp1         [V09,T16] (  3,  2   )     int  ->   r8        
 ;* V10 tmp2         [V10    ] (  0,  0   )     int  ->  zero-ref    single-def
-;* V11 tmp3         [V11,T59] (  0,  0   )     int  ->  zero-ref   
+;* V11 tmp3         [V11,T53] (  0,  0   )     int  ->  zero-ref   
 ;* V12 tmp4         [V12    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V13 tmp5         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax>
 ;  V14 tmp6         [V14,T02] (  5,  7   )   byref  ->  r13         single-def "Inlining Arg"
 ;  V15 tmp7         [V15,T14] (  4,  3.50)     ref  ->  r12         class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax>
 ;  V16 tmp8         [V16,T29] (  4,  2   )     ref  ->  [rbp-0x80]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
 ;  V17 tmp9         [V17,T27] (  3,  2.25)     ref  ->  rax         single-def "CASTCLASS eval op1"
-;  V18 tmp10        [V18,T60] (  3,  1.25)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
-;  V19 tmp11        [V19,T12] (  5,  3.75)     ref  ->  rsi         class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax>
+;  V18 tmp10        [V18,T54] (  3,  1.25)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V19 tmp11        [V19,T10] (  5,  3.75)     ref  ->  rsi         class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax>
 ;* V20 tmp12        [V20    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax>
 ;* V21 tmp13        [V21    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax>
 ;* V22 tmp14        [V22    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax>
@@ -35,14 +35,14 @@
 ;  V24 tmp16        [V24,T15] (  4,  3.50)     ref  ->  [rbp-0x88]  class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax>
 ;  V25 tmp17        [V25,T30] (  4,  2   )     ref  ->  [rbp-0x90]  class-hnd spill-single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.GreenNode>
 ;  V26 tmp18        [V26,T28] (  3,  2.25)     ref  ->  rax         single-def "CASTCLASS eval op1"
-;  V27 tmp19        [V27,T61] (  3,  1.25)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
-;  V28 tmp20        [V28,T13] (  5,  3.75)     ref  ->  rsi         class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax>
+;  V27 tmp19        [V27,T55] (  3,  1.25)    long  ->  rdi         "fgMakeTemp is creating a new local variable"
+;  V28 tmp20        [V28,T11] (  5,  3.75)     ref  ->  rsi         class-hnd "spilling QMark2" <Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax>
 ;* V29 tmp21        [V29    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax>
 ;* V30 tmp22        [V30    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax>
 ;* V31 tmp23        [V31    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V32 tmp24        [V32,T33] (  2,  2   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNavigator>
+;  V32 tmp24        [V32,T31] (  2,  2   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNavigator>
 ;* V33 tmp25        [V33    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V34 tmp26        [V34,T34] (  2,  2   )     ref  ->  rcx         class-hnd single-def "impAppendStmt" <System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte]>
+;  V34 tmp26        [V34,T32] (  2,  2   )     ref  ->  rcx         class-hnd single-def "impAppendStmt" <System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte]>
 ;* V35 tmp27        [V35    ] (  0,  0   )     int  ->  zero-ref   
 ;* V36 tmp28        [V36    ] (  0,  0   )     int  ->  zero-ref   
 ;* V37 tmp29        [V37    ] (  0,  0   )     int  ->  zero-ref   
@@ -51,15 +51,15 @@
 ;* V40 tmp32        [V40    ] (  0,  0   )     int  ->  zero-ref   
 ;* V41 tmp33        [V41    ] (  0,  0   )     int  ->  zero-ref   
 ;* V42 tmp34        [V42    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V43 tmp35        [V43,T53] (  3,  1.50)     ref  ->  [rbp-0x98]  class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.Location>
+;  V43 tmp35        [V43,T47] (  3,  1.50)     ref  ->  [rbp-0x98]  class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.Location>
 ;* V44 tmp36        [V44    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxTree>
 ;* V45 tmp37        [V45    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <Microsoft.CodeAnalysis.Text.TextSpan>
-;  V46 tmp38        [V46,T31] (  4,  2   )     ref  ->  [rbp-0xA0]  class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxTree>
-;  V47 tmp39        [V47,T10] (  4,  4   )     ref  ->  rdi         class-hnd single-def "dup spill" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V46 tmp38        [V46,T25] (  5,  2.50)     ref  ->  [rbp-0xA0]  class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxTree>
+;  V47 tmp39        [V47,T08] (  4,  4   )     ref  ->  rdi         class-hnd single-def "dup spill" <Microsoft.CodeAnalysis.SyntaxNode>
 ;* V48 tmp40        [V48    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V49 tmp41        [V49    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <Microsoft.CodeAnalysis.Text.TextSpan>
-;  V50 tmp42        [V50,T45] (  2,  2   )     int  ->  [rbp-0x54]  spill-single-def "impAppendStmt"
-;  V51 tmp43        [V51,T46] (  2,  2   )     int  ->  [rbp-0x58]  spill-single-def "impAppendStmt"
+;  V50 tmp42        [V50,T39] (  2,  2   )     int  ->  [rbp-0x54]  spill-single-def "impAppendStmt"
+;  V51 tmp43        [V51,T40] (  2,  2   )     int  ->  [rbp-0x58]  spill-single-def "impAppendStmt"
 ;  V52 tmp44        [V52    ] (  4,  4   )  struct ( 8) [rbp-0x60]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.Text.TextSpan>
 ;* V53 tmp45        [V53    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.Text.TextSpan>
 ;* V54 tmp46        [V54    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo>
@@ -71,9 +71,9 @@
 ;* V60 tmp52        [V60    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnostic>
 ;  V61 tmp53        [V61,T19] (  3,  3   )     ref  ->  [rbp-0xC0]  class-hnd spill-single-def "Inlining Arg" <System.Collections.Concurrent.ConcurrentQueue`1[Microsoft.CodeAnalysis.Diagnostic]>
 ;* V62 tmp54        [V62    ] (  0,  0   )     ref  ->  zero-ref    ld-addr-op class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V63 tmp55        [V63,T35] (  2,  2   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNavigator>
+;  V63 tmp55        [V63,T33] (  2,  2   )     ref  ->  rdi         class-hnd exact single-def "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNavigator>
 ;* V64 tmp56        [V64    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V65 tmp57        [V65,T36] (  2,  2   )     ref  ->  rcx         class-hnd single-def "impAppendStmt" <System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte]>
+;  V65 tmp57        [V65,T34] (  2,  2   )     ref  ->  rcx         class-hnd single-def "impAppendStmt" <System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte]>
 ;* V66 tmp58        [V66    ] (  0,  0   )     int  ->  zero-ref   
 ;* V67 tmp59        [V67    ] (  0,  0   )     int  ->  zero-ref   
 ;* V68 tmp60        [V68    ] (  0,  0   )     int  ->  zero-ref   
@@ -82,15 +82,15 @@
 ;* V71 tmp63        [V71    ] (  0,  0   )     int  ->  zero-ref   
 ;* V72 tmp64        [V72    ] (  0,  0   )     int  ->  zero-ref   
 ;* V73 tmp65        [V73    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V74 tmp66        [V74,T54] (  3,  1.50)     ref  ->  [rbp-0xC8]  class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.Location>
+;  V74 tmp66        [V74,T48] (  3,  1.50)     ref  ->  [rbp-0xC8]  class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.Location>
 ;* V75 tmp67        [V75    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxTree>
 ;* V76 tmp68        [V76    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <Microsoft.CodeAnalysis.Text.TextSpan>
-;  V77 tmp69        [V77,T32] (  4,  2   )     ref  ->  [rbp-0xD0]  class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxTree>
-;  V78 tmp70        [V78,T11] (  4,  4   )     ref  ->  rdi         class-hnd single-def "dup spill" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V77 tmp69        [V77,T26] (  5,  2.50)     ref  ->  [rbp-0xD0]  class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxTree>
+;  V78 tmp70        [V78,T09] (  4,  4   )     ref  ->  rdi         class-hnd single-def "dup spill" <Microsoft.CodeAnalysis.SyntaxNode>
 ;* V79 tmp71        [V79    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V80 tmp72        [V80    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <Microsoft.CodeAnalysis.Text.TextSpan>
-;  V81 tmp73        [V81,T47] (  2,  2   )     int  ->  [rbp-0x64]  spill-single-def "impAppendStmt"
-;  V82 tmp74        [V82,T48] (  2,  2   )     int  ->  [rbp-0x68]  spill-single-def "impAppendStmt"
+;  V81 tmp73        [V81,T41] (  2,  2   )     int  ->  [rbp-0x64]  spill-single-def "impAppendStmt"
+;  V82 tmp74        [V82,T42] (  2,  2   )     int  ->  [rbp-0x68]  spill-single-def "impAppendStmt"
 ;  V83 tmp75        [V83    ] (  4,  4   )  struct ( 8) [rbp-0x70]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.Text.TextSpan>
 ;* V84 tmp76        [V84    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.Text.TextSpan>
 ;* V85 tmp77        [V85    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo>
@@ -107,41 +107,33 @@
 ;  V96 tmp88        [V96    ] (  4,  2   )     int  ->  [rbp-0x3C]  do-not-enreg[X] addr-exposed "field V07.<Position>k__BackingField (fldOffset=0x14)" P-DEP
 ;* V97 tmp89        [V97    ] (  0,  0   )     int  ->  zero-ref    "field V45.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
 ;* V98 tmp90        [V98    ] (  0,  0   )     int  ->  zero-ref    "field V45.<Length>k__BackingField (fldOffset=0x4)" P-INDEP
-;  V99 tmp91        [V99,T55] (  3,  1.50)     int  ->  rax         "field V49.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
-;  V100 tmp92       [V100,T56] (  3,  1.50)     int  ->  rcx         "field V49.<Length>k__BackingField (fldOffset=0x4)" P-INDEP
+;  V99 tmp91        [V99,T49] (  3,  1.50)     int  ->  rcx         "field V49.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
+;  V100 tmp92       [V100,T50] (  3,  1.50)     int  ->  rdx         "field V49.<Length>k__BackingField (fldOffset=0x4)" P-INDEP
 ;  V101 tmp93       [V101    ] (  3,  2.50)     int  ->  [rbp-0x60]  do-not-enreg[X] addr-exposed "field V52.<Start>k__BackingField (fldOffset=0x0)" P-DEP
 ;  V102 tmp94       [V102    ] (  3,  2.50)     int  ->  [rbp-0x5C]  do-not-enreg[X] addr-exposed "field V52.<Length>k__BackingField (fldOffset=0x4)" P-DEP
 ;* V103 tmp95       [V103    ] (  0,  0   )     int  ->  zero-ref    single-def "field V53.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
 ;* V104 tmp96       [V104    ] (  0,  0   )     int  ->  zero-ref    single-def "field V53.<Length>k__BackingField (fldOffset=0x4)" P-INDEP
 ;* V105 tmp97       [V105    ] (  0,  0   )     int  ->  zero-ref    "field V76.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
 ;* V106 tmp98       [V106    ] (  0,  0   )     int  ->  zero-ref    "field V76.<Length>k__BackingField (fldOffset=0x4)" P-INDEP
-;  V107 tmp99       [V107,T57] (  3,  1.50)     int  ->  rax         "field V80.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
-;  V108 tmp100      [V108,T58] (  3,  1.50)     int  ->  rcx         "field V80.<Length>k__BackingField (fldOffset=0x4)" P-INDEP
+;  V107 tmp99       [V107,T51] (  3,  1.50)     int  ->  rcx         "field V80.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
+;  V108 tmp100      [V108,T52] (  3,  1.50)     int  ->  rdx         "field V80.<Length>k__BackingField (fldOffset=0x4)" P-INDEP
 ;  V109 tmp101      [V109    ] (  3,  2.50)     int  ->  [rbp-0x70]  do-not-enreg[X] addr-exposed "field V83.<Start>k__BackingField (fldOffset=0x0)" P-DEP
 ;  V110 tmp102      [V110    ] (  3,  2.50)     int  ->  [rbp-0x6C]  do-not-enreg[X] addr-exposed "field V83.<Length>k__BackingField (fldOffset=0x4)" P-DEP
 ;* V111 tmp103      [V111    ] (  0,  0   )     int  ->  zero-ref    single-def "field V84.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
 ;* V112 tmp104      [V112    ] (  0,  0   )     int  ->  zero-ref    single-def "field V84.<Length>k__BackingField (fldOffset=0x4)" P-INDEP
 ;  V113 tmp105      [V113,T23] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V114 tmp106      [V114,T49] (  2,  2   )     int  ->  rdx         "argument with side effect"
+;  V114 tmp106      [V114,T43] (  2,  2   )     int  ->  rdx         "argument with side effect"
 ;  V115 tmp107      [V115,T24] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V116 tmp108      [V116,T50] (  2,  2   )     int  ->  rdx         "argument with side effect"
-;  V117 tmp109      [V117,T37] (  2,  2   )     ref  ->  rdx         single-def "arr expr"
+;  V116 tmp108      [V116,T44] (  2,  2   )     int  ->  rdx         "argument with side effect"
+;  V117 tmp109      [V117,T35] (  2,  2   )     ref  ->   r8         single-def "arr expr"
 ;* V118 tmp110      [V118    ] (  0,  0   )     int  ->  zero-ref    "index expr"
-;  V119 tmp111      [V119,T38] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;* V120 tmp112      [V120,T62] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V121 tmp113      [V121,T39] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V122 tmp114      [V122,T40] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
-;  V123 tmp115      [V123,T51] (  2,  2   )     int  ->  rdx         "argument with side effect"
-;  V124 tmp116      [V124,T06] (  6,  6   )  struct ( 8) [rbp-0x78]  do-not-enreg[SF] "by-value struct argument" <Microsoft.CodeAnalysis.Text.TextSpan>
-;  V125 tmp117      [V125,T25] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
-;  V126 tmp118      [V126,T41] (  2,  2   )     ref  ->  rdx         single-def "arr expr"
-;* V127 tmp119      [V127    ] (  0,  0   )     int  ->  zero-ref    "index expr"
-;  V128 tmp120      [V128,T42] (  2,  2   )     ref  ->  rdi         single-def "argument with side effect"
-;* V129 tmp121      [V129,T63] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V130 tmp122      [V130,T43] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V131 tmp123      [V131,T44] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
-;  V132 tmp124      [V132,T52] (  2,  2   )     int  ->  rdx         "argument with side effect"
-;  V133 tmp125      [V133,T26] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
+;  V119 tmp111      [V119,T36] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
+;  V120 tmp112      [V120,T45] (  2,  2   )     int  ->  rdx         "argument with side effect"
+;  V121 tmp113      [V121,T06] (  6,  6   )  struct ( 8) [rbp-0x78]  do-not-enreg[SF] "by-value struct argument" <Microsoft.CodeAnalysis.Text.TextSpan>
+;  V122 tmp114      [V122,T37] (  2,  2   )     ref  ->   r8         single-def "arr expr"
+;* V123 tmp115      [V123    ] (  0,  0   )     int  ->  zero-ref    "index expr"
+;  V124 tmp116      [V124,T38] (  2,  2   )     ref  ->   r8         single-def "argument with side effect"
+;  V125 tmp117      [V125,T46] (  2,  2   )     int  ->  rdx         "argument with side effect"
 ;
 ; Lcl frame size = 200
 
@@ -336,11 +328,11 @@ G_M58562_IG12:        ; bbWeight=1, gcrefRegs=E009 {rax rbx r13 r14 r15}, byrefR
                        ;; size=25 bbWeight=1 PerfScore 7.25
 G_M58562_IG13:        ; bbWeight=0.50, gcrefRegs=F008 {rbx r12 r13 r14 r15}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
-       xor      edi, edi
+       xor      r8d, r8d
        cmp      byte  ptr [rbp-0x38], 1
-       sete     dil
+       sete     r8b
        jmp      SHORT G_M58562_IG16
-                       ;; size=12 bbWeight=0.50 PerfScore 2.62
+                       ;; size=13 bbWeight=0.50 PerfScore 2.62
 G_M58562_IG14:        ; bbWeight=0.50, gcVars=0000000000008000 {V24}, gcrefRegs=E008 {rbx r13 r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[r12]
        ; GC ptr vars +{V15 V24}
@@ -351,29 +343,29 @@ G_M58562_IG14:        ; bbWeight=0.50, gcVars=0000000000008000 {V24}, gcrefRegs=
 G_M58562_IG15:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=F008 {rbx r12 r13 r14 r15}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax] +[r12]
        ; GC ptr vars -{V15 V24}
-       xor      edi, edi
-                       ;; size=2 bbWeight=0.50 PerfScore 0.12
+       xor      r8d, r8d
+                       ;; size=3 bbWeight=0.50 PerfScore 0.12
 G_M58562_IG16:        ; bbWeight=1, gcrefRegs=F008 {rbx r12 r13 r14 r15}, byrefRegs=0000 {}, byref
-       test     edi, edi
+       test     r8d, r8d
        jne      G_M58562_IG31
-                       ;; size=8 bbWeight=1 PerfScore 1.25
+                       ;; size=9 bbWeight=1 PerfScore 1.25
 G_M58562_IG17:        ; bbWeight=0.50, gcrefRegs=F008 {rbx r12 r13 r14 r15}, byrefRegs=0000 {}, byref, isz
        cmp      byte  ptr [rbp-0x38], 1
        jne      G_M58562_IG24
        cmp      byte  ptr [r12], r12b
-       mov      rdi, 0xD1FFAB1E      ; const ptr
-       mov      rdi, gword ptr [rdi]
+       mov      r8, 0xD1FFAB1E      ; const ptr
+       mov      rdi, gword ptr [r8]
        ; gcrRegs +[rdi]
-       mov      rdx, 0xD1FFAB1E      ; const ptr
-       mov      rcx, gword ptr [rdx]
+       mov      r8, 0xD1FFAB1E      ; const ptr
+       mov      rcx, gword ptr [r8]
        ; gcrRegs +[rcx]
-       mov      rdx, 0xD1FFAB1E      ; const ptr
-       mov      rdx, gword ptr [rdx]
-       ; gcrRegs +[rdx]
-       mov      r8, gword ptr [rdx+0x10]
+       mov      r8, 0xD1FFAB1E      ; const ptr
+       mov      r8, gword ptr [r8]
        ; gcrRegs +[r8]
-       mov      rdx, r12
+       mov      r8, gword ptr [r8+0x10]
        lea      rsi, [rbp-0x50]
+       mov      rdx, r12
+       ; gcrRegs +[rdx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx rdi r8]
        mov      rdi, gword ptr [rbp-0x50]
@@ -382,43 +374,42 @@ G_M58562_IG17:        ; bbWeight=0.50, gcrefRegs=F008 {rbx r12 r13 r14 r15}, byr
        jne      SHORT G_M58562_IG18
        xor      rax, rax
        ; gcrRegs +[rax]
-       xor      rdi, rdi
        jmp      SHORT G_M58562_IG19
-                       ;; size=85 bbWeight=0.50 PerfScore 11.62
+                       ;; size=83 bbWeight=0.50 PerfScore 11.50
 G_M58562_IG18:        ; bbWeight=0.50, gcrefRegs=F088 {rbx rdi r12 r13 r14 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x50]
        call     [rax+0x30]<unknown method>
        ; gcrRegs -[rdi] +[rax]
-       mov      rdi, rax
-       ; gcrRegs +[rdi]
-                       ;; size=13 bbWeight=0.50 PerfScore 3.62
-G_M58562_IG19:        ; bbWeight=0.50, gcrefRegs=F088 {rbx rdi r12 r13 r14 r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax]
-       mov      gword ptr [rbp-0xA0], rdi
+                       ;; size=10 bbWeight=0.50 PerfScore 3.50
+G_M58562_IG19:        ; bbWeight=0.50, gcrefRegs=F009 {rax rbx r12 r13 r14 r15}, byrefRegs=0000 {}, byref, isz
+       mov      gword ptr [rbp-0xA0], rax
        ; GC ptr vars +{V46}
-       test     rdi, rdi
-       je       SHORT G_M58562_IG22
+       test     rax, rax
+       je       G_M58562_IG22
+       mov      rax, gword ptr [rbp-0xA0]
        cmp      gword ptr [rbp-0x48], 0
        jne      SHORT G_M58562_IG20
-       xor      eax, eax
        xor      ecx, ecx
...

+16 (+2.54%) : 25771.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:g_enforceMemberNotNullOnMember|612(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.String):this (FullOpts)

@@ -10,33 +10,33 @@
 ;
 ;  V00 this         [V00,T05] (  5, 10   )     ref  ->  r15         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.NullableWalker>
 ;  V01 arg1         [V01,T04] (  6, 10   )     ref  ->  rbx         class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
-;  V02 arg2         [V02,T37] (  1,  4   )  struct (40) [rbp+0x10]  do-not-enreg[S] single-def <Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState>
-;  V03 arg3         [V03,T27] (  4,  4   )     ref  ->  rdx         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
-;  V04 arg4         [V04,T34] (  3,  3   )     ref  ->  r14         class-hnd single-def <System.String>
+;  V02 arg2         [V02,T32] (  1,  4   )  struct (40) [rbp+0x10]  do-not-enreg[S] single-def <Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState>
+;  V03 arg3         [V03,T22] (  4,  4   )     ref  ->  rdx         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
+;  V04 arg4         [V04,T29] (  3,  3   )     ref  ->  r14         class-hnd single-def <System.String>
 ;* V05 loc0         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbol]>
 ;* V06 loc1         [V06    ] (  0,  0   )  struct ( 8) zero-ref    multireg-ret ld-addr-op single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]>
 ;  V07 loc2         [V07,T06] (  4, 12   )     ref  ->  r12         class-hnd <Microsoft.CodeAnalysis.CSharp.Symbol>
 ;  V08 loc3         [V08    ] (  8, 16   )  struct (24) [rbp-0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.SyntaxToken>
 ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T36] (  2,  4   )     ref  ->  [rbp-0x70]  spill-single-def
+;  V10 tmp1         [V10,T31] (  2,  4   )     ref  ->  [rbp-0x70]  spill-single-def
 ;* V11 tmp2         [V11    ] (  0,  0   )     int  ->  zero-ref   
 ;* V12 tmp3         [V12    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V13 tmp4         [V13    ] (  0,  0   )     int  ->  zero-ref   
-;  V14 tmp5         [V14,T28] (  3,  6   )     ref  ->  registers  
+;  V14 tmp5         [V14,T23] (  3,  6   )     ref  ->  registers  
 ;* V15 tmp6         [V15    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V16 tmp7         [V16    ] (  0,  0   )     int  ->  zero-ref   
 ;  V17 tmp8         [V17,T11] (  4,  8   )     ref  ->  [rbp-0x78] 
 ;  V18 tmp9         [V18,T07] (  3, 12   )     ref  ->  [rbp-0x80]  class-hnd exact spill-single-def "dup spill" <System.Object[]>
-;  V19 tmp10        [V19,T13] (  2,  8   )     ref  ->  rax         class-hnd exact "Strict ordering of exceptions for Array store" <System.String>
+;  V19 tmp10        [V19,T12] (  2,  8   )     ref  ->  rax         class-hnd exact "Strict ordering of exceptions for Array store" <System.String>
 ;* V20 tmp11        [V20    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol]>
 ;* V21 tmp12        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Collections.Immutable.ImmutableArray`1+Enumerator[Microsoft.CodeAnalysis.CSharp.Symbol]>
 ;* V22 tmp13        [V22    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <System.__Canon[]>
-;  V23 tmp14        [V23,T14] (  2,  8   )     ref  ->  [rbp-0x88]  class-hnd spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxTree>
+;  V23 tmp14        [V23,T08] (  3, 12   )     ref  ->  [rbp-0x88]  class-hnd spill-single-def "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxTree>
 ;  V24 tmp15        [V24    ] (  2,  8   )  struct ( 8) [rbp-0x48]  do-not-enreg[SB] "spilled call-like call argument" <Microsoft.CodeAnalysis.Text.TextSpan>
-;  V25 tmp16        [V25,T08] (  3, 12   )     ref  ->  rdx         ld-addr-op class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V26 tmp17        [V26,T15] (  2,  8   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNavigator>
+;  V25 tmp16        [V25,T09] (  3, 12   )     ref  ->  rdx         ld-addr-op class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNode>
+;  V26 tmp17        [V26,T13] (  2,  8   )     ref  ->  rdi         class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxNavigator>
 ;* V27 tmp18        [V27    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <Microsoft.CodeAnalysis.SyntaxNode>
-;  V28 tmp19        [V28,T16] (  2,  8   )     ref  ->  rcx         class-hnd "impAppendStmt" <System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte]>
+;  V28 tmp19        [V28,T14] (  2,  8   )     ref  ->  rcx         class-hnd "impAppendStmt" <System.Func`2[Microsoft.CodeAnalysis.SyntaxToken,ubyte]>
 ;* V29 tmp20        [V29    ] (  0,  0   )     int  ->  zero-ref   
 ;* V30 tmp21        [V30    ] (  0,  0   )     int  ->  zero-ref   
 ;* V31 tmp22        [V31    ] (  0,  0   )     int  ->  zero-ref   
@@ -45,50 +45,45 @@
 ;* V34 tmp25        [V34    ] (  0,  0   )     int  ->  zero-ref   
 ;* V35 tmp26        [V35    ] (  0,  0   )     int  ->  zero-ref   
 ;* V36 tmp27        [V36    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
-;  V37 tmp28        [V37,T29] (  3,  6   )     ref  ->   r9         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.Location>
+;  V37 tmp28        [V37,T24] (  3,  6   )     ref  ->   r9         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.Location>
 ;* V38 tmp29        [V38    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxTree>
 ;* V39 tmp30        [V39    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <Microsoft.CodeAnalysis.Text.TextSpan>
-;  V40 tmp31        [V40,T12] (  4,  8   )     ref  ->  [rbp-0x90]  class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxTree>
+;  V40 tmp31        [V40,T10] (  5, 10   )     ref  ->  [rbp-0x90]  class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxTree>
 ;  V41 tmp32        [V41,T01] (  4, 16   )     ref  ->  rdi         class-hnd "dup spill" <Microsoft.CodeAnalysis.SyntaxNode>
 ;* V42 tmp33        [V42    ] (  0,  0   )     ref  ->  zero-ref   
 ;* V43 tmp34        [V43    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <Microsoft.CodeAnalysis.Text.TextSpan>
-;  V44 tmp35        [V44,T22] (  2,  8   )     int  ->  [rbp-0x4C]  spill-single-def "impAppendStmt"
-;  V45 tmp36        [V45,T23] (  2,  8   )     int  ->  [rbp-0x50]  spill-single-def "impAppendStmt"
+;  V44 tmp35        [V44,T17] (  2,  8   )     int  ->  [rbp-0x4C]  spill-single-def "impAppendStmt"
+;  V45 tmp36        [V45,T18] (  2,  8   )     int  ->  [rbp-0x50]  spill-single-def "impAppendStmt"
 ;  V46 tmp37        [V46    ] (  4, 16   )  struct ( 8) [rbp-0x58]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.Text.TextSpan>
 ;* V47 tmp38        [V47    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.Text.TextSpan>
 ;  V48 tmp39        [V48,T03] (  4, 13   )     int  ->  r12         "Inline stloc first use temp"
-;  V49 tmp40        [V49,T35] (  2,  5   )     ref  ->  r13         single-def "field V05._array (fldOffset=0x0)" P-INDEP
+;  V49 tmp40        [V49,T30] (  2,  5   )     ref  ->  r13         single-def "field V05._array (fldOffset=0x0)" P-INDEP
 ;  V50 tmp41        [V50,T02] (  4, 13   )     int  ->  [rbp-0x5C]  "field V05._index (fldOffset=0x8)" P-INDEP
-;  V51 tmp42        [V51,T38] (  3,  3   )     ref  ->  rax         "field V06.array (fldOffset=0x0)" P-INDEP
+;  V51 tmp42        [V51,T33] (  3,  3   )     ref  ->  rax         "field V06.array (fldOffset=0x0)" P-INDEP
 ;  V52 tmp43        [V52    ] (  2,  4   )     ref  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed "field V08.<Parent>k__BackingField (fldOffset=0x0)" P-DEP
 ;  V53 tmp44        [V53    ] (  6, 12   )     ref  ->  [rbp-0x38]  do-not-enreg[X] addr-exposed "field V08.<Node>k__BackingField (fldOffset=0x8)" P-DEP
 ;  V54 tmp45        [V54    ] (  1,  2   )     int  ->  [rbp-0x30]  do-not-enreg[X] addr-exposed "field V08.<Index>k__BackingField (fldOffset=0x10)" P-DEP
 ;  V55 tmp46        [V55    ] (  2,  4   )     int  ->  [rbp-0x2C]  do-not-enreg[X] addr-exposed "field V08.<Position>k__BackingField (fldOffset=0x14)" P-DEP
 ;* V56 tmp47        [V56    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V20.array (fldOffset=0x0)" P-INDEP
-;  V57 tmp48        [V57,T39] (  2,  2   )     ref  ->  r13         single-def "field V21._array (fldOffset=0x0)" P-INDEP
-;* V58 tmp49        [V58,T40] (  0,  0   )     int  ->  zero-ref    single-def "field V21._index (fldOffset=0x8)" P-INDEP
-;  V59 tmp50        [V59,T24] (  2,  8   )     int  ->  [rbp-0x48]  do-not-enreg[] "field V24.<Start>k__BackingField (fldOffset=0x0)" P-DEP
-;  V60 tmp51        [V60,T25] (  2,  8   )     int  ->  [rbp-0x44]  do-not-enreg[] "field V24.<Length>k__BackingField (fldOffset=0x4)" P-DEP
+;  V57 tmp48        [V57,T34] (  2,  2   )     ref  ->  r13         single-def "field V21._array (fldOffset=0x0)" P-INDEP
+;* V58 tmp49        [V58,T35] (  0,  0   )     int  ->  zero-ref    single-def "field V21._index (fldOffset=0x8)" P-INDEP
+;  V59 tmp50        [V59,T19] (  2,  8   )     int  ->  [rbp-0x48]  do-not-enreg[] "field V24.<Start>k__BackingField (fldOffset=0x0)" P-DEP
+;  V60 tmp51        [V60,T20] (  2,  8   )     int  ->  [rbp-0x44]  do-not-enreg[] "field V24.<Length>k__BackingField (fldOffset=0x4)" P-DEP
 ;* V61 tmp52        [V61    ] (  0,  0   )     int  ->  zero-ref    "field V39.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
 ;* V62 tmp53        [V62    ] (  0,  0   )     int  ->  zero-ref    "field V39.<Length>k__BackingField (fldOffset=0x4)" P-INDEP
-;  V63 tmp54        [V63,T31] (  3,  6   )     int  ->  rax         "field V43.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
-;  V64 tmp55        [V64,T32] (  3,  6   )     int  ->  rcx         "field V43.<Length>k__BackingField (fldOffset=0x4)" P-INDEP
+;  V63 tmp54        [V63,T26] (  3,  6   )     int  ->  rcx         "field V43.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
+;  V64 tmp55        [V64,T27] (  3,  6   )     int  ->  rdx         "field V43.<Length>k__BackingField (fldOffset=0x4)" P-INDEP
 ;  V65 tmp56        [V65    ] (  3, 10   )     int  ->  [rbp-0x58]  do-not-enreg[X] addr-exposed "field V46.<Start>k__BackingField (fldOffset=0x0)" P-DEP
 ;  V66 tmp57        [V66    ] (  3, 10   )     int  ->  [rbp-0x54]  do-not-enreg[X] addr-exposed "field V46.<Length>k__BackingField (fldOffset=0x4)" P-DEP
 ;* V67 tmp58        [V67    ] (  0,  0   )     int  ->  zero-ref    "field V47.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
 ;* V68 tmp59        [V68    ] (  0,  0   )     int  ->  zero-ref    "field V47.<Length>k__BackingField (fldOffset=0x4)" P-INDEP
-;  V69 tmp60        [V69,T30] (  3,  6   )     ref  ->  rax         single-def "argument with side effect"
+;  V69 tmp60        [V69,T25] (  3,  6   )     ref  ->  rax         single-def "argument with side effect"
 ;  V70 tmp61        [V70,T00] (  5, 20   )  struct ( 8) [rbp-0x68]  do-not-enreg[S] "by-value struct argument" <Microsoft.CodeAnalysis.Text.TextSpan>
-;  V71 tmp62        [V71,T09] (  3, 12   )     ref  ->  rdi         "argument with side effect"
-;  V72 tmp63        [V72,T17] (  2,  8   )     ref  ->   r8         "arr expr"
-;* V73 tmp64        [V73    ] (  0,  0   )     int  ->  zero-ref    "index expr"
-;  V74 tmp65        [V74,T18] (  2,  8   )     ref  ->  rdi         "argument with side effect"
-;  V75 tmp66        [V75,T19] (  2,  8   )     ref  ->  rdx         "argument with side effect"
-;  V76 tmp67        [V76,T20] (  2,  8   )     ref  ->  rcx         "argument with side effect"
-;  V77 tmp68        [V77,T21] (  2,  8   )     ref  ->   r8         "argument with side effect"
-;  V78 tmp69        [V78,T26] (  2,  8   )     int  ->  rdx         "argument with side effect"
-;  V79 tmp70        [V79,T10] (  3, 12   )     ref  ->  rdi         "argument with side effect"
-;  V80 cse0         [V80,T33] (  3,  6   )     int  ->  r14         "CSE - moderate"
+;  V71 tmp62        [V71,T15] (  2,  8   )     ref  ->   r8         "arr expr"
+;* V72 tmp63        [V72    ] (  0,  0   )     int  ->  zero-ref    "index expr"
+;  V73 tmp64        [V73,T16] (  2,  8   )     ref  ->   r8         "argument with side effect"
+;  V74 tmp65        [V74,T21] (  2,  8   )     int  ->  rdx         "argument with side effect"
+;  V75 cse0         [V75,T28] (  3,  6   )     int  ->  r14         "CSE - aggressive"
 ;
 ; Lcl frame size = 152
 
@@ -177,7 +172,7 @@ G_M39317_IG04:        ; bbWeight=2, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=
        ; gcrRegs +[rcx]
        jmp      SHORT G_M39317_IG06
                        ;; size=17 bbWeight=2 PerfScore 13.00
-G_M39317_IG05:        ; bbWeight=2, gcVars=0000001000000000 {V10}, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, gcvars, byref
+G_M39317_IG05:        ; bbWeight=2, gcVars=0000000080000000 {V10}, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax rcx]
        mov      rdi, rbx
        ; gcrRegs +[rdi]
@@ -192,10 +187,10 @@ G_M39317_IG05:        ; bbWeight=2, gcVars=0000001000000000 {V10}, gcrefRegs=B00
        call     [Microsoft.CodeAnalysis.SyntaxNode:get_Span():Microsoft.CodeAnalysis.Text.TextSpan:this]
        ; gcrRegs -[rax rdi]
        mov      qword ptr [rbp-0x48], rax
-       mov      rdi, gword ptr [rbp-0x88]
-       ; gcrRegs +[rdi]
        mov      rsi, qword ptr [rbp-0x48]
        mov      qword ptr [rbp-0x68], rsi
+       mov      rdi, gword ptr [rbp-0x88]
+       ; gcrRegs +[rdi]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x60]
        ; GC ptr vars -{V23}
@@ -212,19 +207,17 @@ G_M39317_IG06:        ; bbWeight=2, gcrefRegs=B00A {rcx rbx r12 r13 r15}, byrefR
        mov      gword ptr [rbp-0x78], r9
        ; GC ptr vars +{V17}
        jne      G_M39317_IG13
-       mov      rdi, gword ptr [r15+0x20]
-       ; gcrRegs +[rdi]
-       mov      rdx, gword ptr [rdi+0x08]
+       mov      r8, gword ptr [r15+0x20]
+       ; gcrRegs +[r8]
+       mov      rdx, gword ptr [r8+0x08]
        ; gcrRegs +[rdx]
        cmp      byte  ptr [rdx], dl
-       mov      rdi, 0xD1FFAB1E      ; const ptr
-       ; gcrRegs -[rdi]
-       mov      rdi, gword ptr [rdi]
+       mov      r8, 0xD1FFAB1E      ; const ptr
+       ; gcrRegs -[r8]
+       mov      rdi, gword ptr [r8]
        ; gcrRegs +[rdi]
-       mov      rcx, 0xD1FFAB1E      ; const ptr
-       ; gcrRegs -[rcx]
-       mov      rcx, gword ptr [rcx]
-       ; gcrRegs +[rcx]
+       mov      r8, 0xD1FFAB1E      ; const ptr
+       mov      rcx, gword ptr [r8]
        mov      r8, 0xD1FFAB1E      ; const ptr
        mov      r8, gword ptr [r8]
        ; gcrRegs +[r8]
@@ -239,43 +232,43 @@ G_M39317_IG06:        ; bbWeight=2, gcrefRegs=B00A {rcx rbx r12 r13 r15}, byrefR
        jne      SHORT G_M39317_IG07
        xor      rax, rax
        ; gcrRegs +[rax]
-       xor      rdi, rdi
        jmp      SHORT G_M39317_IG08
-                       ;; size=94 bbWeight=2 PerfScore 53.00
+                       ;; size=92 bbWeight=2 PerfScore 52.50
 G_M39317_IG07:        ; bbWeight=2, gcrefRegs=B088 {rbx rdi r12 r13 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x50]
        call     [rax+0x30]<unknown method>
        ; gcrRegs -[rdi] +[rax]
-       mov      rdi, rax
-       ; gcrRegs +[rdi]
-                       ;; size=13 bbWeight=2 PerfScore 14.50
-G_M39317_IG08:        ; bbWeight=2, gcrefRegs=B088 {rbx rdi r12 r13 r15}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs -[rax]
-       mov      gword ptr [rbp-0x90], rdi
+                       ;; size=10 bbWeight=2 PerfScore 14.00
+G_M39317_IG08:        ; bbWeight=2, gcrefRegs=B009 {rax rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
+       mov      gword ptr [rbp-0x90], rax
        ; GC ptr vars +{V40}
-       test     rdi, rdi
-       je       SHORT G_M39317_IG11
+       test     rax, rax
+       je       G_M39317_IG11
+       mov      rax, gword ptr [rbp-0x90]
        cmp      gword ptr [rbp-0x38], 0
        jne      SHORT G_M39317_IG09
-       xor      eax, eax
        xor      ecx, ecx
+       xor      edx, edx
        jmp      SHORT G_M39317_IG10
-                       ;; size=25 bbWeight=2 PerfScore 15.50
-G_M39317_IG09:        ; bbWeight=2, gcVars=0000001000001000 {V10 V40}, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, gcvars, byref
-       ; gcrRegs -[rdi]
-       mov      eax, dword ptr [rbp-0x2C]
-       mov      dword ptr [rbp-0x4C], eax
+                       ;; size=36 bbWeight=2 PerfScore 17.50
+G_M39317_IG09:        ; bbWeight=2, gcrefRegs=B009 {rax rbx r12 r13 r15}, byrefRegs=0000 {}, byref
+       ; GC ptr vars -{V10 V40}
+       mov      gword ptr [rbp-0x90], rax
+       ; GC ptr vars +{V40}
+       mov      ecx, dword ptr [rbp-0x2C]
+       mov      dword ptr [rbp-0x4C], ecx
        mov      rdi, gword ptr [rbp-0x38]
        ; gcrRegs +[rdi]
-       mov      rcx, gword ptr [rbp-0x38]
-       ; gcrRegs +[rcx]
-       mov      rcx, qword ptr [rcx]
-       ; gcrRegs -[rcx]
-       mov      rcx, qword ptr [rcx+0x58]
-       call     [rcx+0x08]<unknown method>
-       ; gcrRegs -[rdi]
+       mov      rdx, gword ptr [rbp-0x38]
+       ; gcrRegs +[rdx]
+       mov      rdx, qword ptr [rdx]
+       ; gcrRegs -[rdx]
+       mov      rdx, qword ptr [rdx+0x58]
+       ; GC ptr vars +{V10}
+       call     [rdx+0x08]<unknown method>
+       ; gcrRegs -[rax rdi]
        add      eax, dword ptr [rbp-0x4C]
        mov      dword ptr [rbp-0x50], eax
        xor      edi, edi
@@ -293,24 +286,27 @@ G_M39317_IG09:        ; bbWeight=2, gcVars=0000001000001000 {V10 V40}, gcrefRegs
        lea      rdi, [rbp-0x58]
        mov      esi, dword ptr [rbp-0x50]
        call     [Microsoft.CodeAnalysis.Text.TextSpan:.ctor(int,int):this]
-       mov      eax, dword ptr [rbp-0x58]
-       mov      ecx, dword ptr [rbp-0x54]
-                       ;; size=74 bbWeight=2 PerfScore 62.00
-G_M39317_IG10:        ; bbWeight=2, gcrefRegs=B008 {rbx r12 r13 r15}, byrefRegs=0000 {}, byref, isz
-       mov      rdi, gword ptr [rbp-0x90]
-       ; gcrRegs +[rdi]
-       mov      dword ptr [rbp-0x68], eax
-       mov      dword ptr [rbp-0x64], ecx
+       mov      ecx, dword ptr [rbp-0x58]
+       mov      edx, dword ptr [rbp-0x54]
+       mov      rax, gword ptr [rbp-0x90]
+       ; gcrRegs +[rax]
+                       ;; size=88 bbWeight=2 PerfScore 66.00
+G_M39317_IG10:        ; bbWeight=2, gcVars=0000000080000000 {V10}, gcrefRegs=B009 {rax rbx r12 r13 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; GC ptr vars -{V10 V40}
+       mov      dword ptr [rbp-0x68], ecx
...

+12 (+2.89%) : 20457.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbol:CreateConstructorSymbol(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.CSharp.Syntax.ConstructorDeclarationSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbol (FullOpts)

@@ -16,18 +16,18 @@
 ;  V05 loc1         [V05    ] (  8,  5   )  struct (24) [rbp-0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <Microsoft.CodeAnalysis.SyntaxToken>
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct ( 8) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V07 tmp1         [V07,T06] (  2,  4   )  struct (24) [rbp-0x58]  do-not-enreg[HS] must-init hidden-struct-arg "spilled call-like call argument" <Microsoft.CodeAnalysis.SyntaxTokenList>
-;  V08 tmp2         [V08,T11] (  2,  2   )     int  ->  r12        
+;  V08 tmp2         [V08,T10] (  2,  2   )     int  ->  r12        
 ;  V09 tmp3         [V09,T02] (  3,  6   )     ref  ->  [rbp-0x90]  class-hnd exact spill-single-def "NewObj constructor temp" <Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbol>
 ;  V10 tmp4         [V10    ] (  2,  4   )  struct (24) [rbp-0x70]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <Microsoft.CodeAnalysis.SyntaxTokenList>
-;  V11 tmp5         [V11,T10] (  3,  2   )     ref  ->  [rbp-0x98]  class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.Location>
+;  V11 tmp5         [V11,T09] (  3,  2   )     ref  ->  [rbp-0x98]  class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.Location>
 ;* V12 tmp6         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def "Inline stloc first use temp" <Microsoft.CodeAnalysis.SyntaxTree>
 ;* V13 tmp7         [V13    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <Microsoft.CodeAnalysis.Text.TextSpan>
-;  V14 tmp8         [V14,T09] (  4,  2.50)     ref  ->  [rbp-0xA0]  class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxTree>
+;  V14 tmp8         [V14,T07] (  5,  3   )     ref  ->  [rbp-0xA0]  class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.SyntaxTree>
 ;  V15 tmp9         [V15,T01] (  4,  6   )     ref  ->  rdi         class-hnd single-def "dup spill" <Microsoft.CodeAnalysis.SyntaxNode>
 ;* V16 tmp10        [V16    ] (  0,  0   )     ref  ->  zero-ref    single-def
 ;* V17 tmp11        [V17    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <Microsoft.CodeAnalysis.Text.TextSpan>
-;  V18 tmp12        [V18,T12] (  2,  2   )     int  ->  [rbp-0x74]  spill-single-def "impAppendStmt"
-;  V19 tmp13        [V19,T13] (  2,  2   )     int  ->  [rbp-0x78]  spill-single-def "impAppendStmt"
+;  V18 tmp12        [V18,T11] (  2,  2   )     int  ->  [rbp-0x74]  spill-single-def "impAppendStmt"
+;  V19 tmp13        [V19,T12] (  2,  2   )     int  ->  [rbp-0x78]  spill-single-def "impAppendStmt"
 ;  V20 tmp14        [V20    ] (  4,  4   )  struct ( 8) [rbp-0x80]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <Microsoft.CodeAnalysis.Text.TextSpan>
 ;* V21 tmp15        [V21    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.Text.TextSpan>
 ;  V22 tmp16        [V22    ] (  2,  2   )     ref  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed "field V05.<Parent>k__BackingField (fldOffset=0x0)" P-DEP
@@ -36,15 +36,14 @@
 ;  V25 tmp19        [V25    ] (  2,  1.50)     int  ->  [rbp-0x2C]  do-not-enreg[X] addr-exposed "field V05.<Position>k__BackingField (fldOffset=0x14)" P-DEP
 ;* V26 tmp20        [V26    ] (  0,  0   )     int  ->  zero-ref    "field V13.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
 ;* V27 tmp21        [V27    ] (  0,  0   )     int  ->  zero-ref    "field V13.<Length>k__BackingField (fldOffset=0x4)" P-INDEP
-;  V28 tmp22        [V28,T15] (  3,  1.50)     int  ->  rax         "field V17.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
-;  V29 tmp23        [V29,T16] (  3,  1.50)     int  ->  rcx         "field V17.<Length>k__BackingField (fldOffset=0x4)" P-INDEP
+;  V28 tmp22        [V28,T14] (  3,  1.50)     int  ->  rcx         "field V17.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
+;  V29 tmp23        [V29,T15] (  3,  1.50)     int  ->  rdx         "field V17.<Length>k__BackingField (fldOffset=0x4)" P-INDEP
 ;  V30 tmp24        [V30    ] (  3,  2.50)     int  ->  [rbp-0x80]  do-not-enreg[X] addr-exposed "field V20.<Start>k__BackingField (fldOffset=0x0)" P-DEP
 ;  V31 tmp25        [V31    ] (  3,  2.50)     int  ->  [rbp-0x7C]  do-not-enreg[X] addr-exposed "field V20.<Length>k__BackingField (fldOffset=0x4)" P-DEP
 ;* V32 tmp26        [V32    ] (  0,  0   )     int  ->  zero-ref    single-def "field V21.<Start>k__BackingField (fldOffset=0x0)" P-INDEP
 ;* V33 tmp27        [V33    ] (  0,  0   )     int  ->  zero-ref    single-def "field V21.<Length>k__BackingField (fldOffset=0x4)" P-INDEP
-;  V34 tmp28        [V34,T14] (  2,  2   )     int  ->  rdx         "argument with side effect"
+;  V34 tmp28        [V34,T13] (  2,  2   )     int  ->  rdx         "argument with side effect"
 ;  V35 tmp29        [V35,T08] (  3,  3   )  struct ( 8) [rbp-0x88]  do-not-enreg[SF] "by-value struct argument" <Microsoft.CodeAnalysis.Text.TextSpan>
-;  V36 tmp30        [V36,T07] (  3,  3   )     ref  ->  rdi         single-def "argument with side effect"
 ;
 ; Lcl frame size = 136
 
@@ -107,46 +106,46 @@ G_M54551_IG05:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
        ; gcrRegs -[rdi]
        xor      rax, rax
        ; gcrRegs +[rax]
-       xor      rdi, rdi
-       ; gcrRegs +[rdi]
        jmp      SHORT G_M54551_IG07
-                       ;; size=6 bbWeight=0.50 PerfScore 1.25
+                       ;; size=4 bbWeight=0.50 PerfScore 1.12
 G_M54551_IG06:        ; bbWeight=0.50, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax]
+       ; gcrRegs -[rax] +[rdi]
        mov      rax, qword ptr [rdi]
        mov      rax, qword ptr [rax+0x50]
        call     [rax+0x30]<unknown method>
        ; gcrRegs -[rdi] +[rax]
-       mov      rdi, rax
-       ; gcrRegs +[rdi]
-                       ;; size=13 bbWeight=0.50 PerfScore 3.62
-G_M54551_IG07:        ; bbWeight=1, gcrefRegs=C088 {rbx rdi r14 r15}, byrefRegs=0000 {}, byref
-       ; gcrRegs -[rax]
-       mov      gword ptr [rbp-0xA0], rdi
+                       ;; size=10 bbWeight=0.50 PerfScore 3.50
+G_M54551_IG07:        ; bbWeight=1, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, byref
+       mov      gword ptr [rbp-0xA0], rax
        ; GC ptr vars +{V14}
-       test     rdi, rdi
+       test     rax, rax
        je       G_M54551_IG11
                        ;; size=16 bbWeight=1 PerfScore 2.25
-G_M54551_IG08:        ; bbWeight=0.50, gcVars=0000000000000200 {V14}, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       ; gcrRegs -[rdi]
+G_M54551_IG08:        ; bbWeight=0.50, gcVars=0000000000000080 {V14}, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
+       ; gcrRegs -[rax]
+       mov      rax, gword ptr [rbp-0xA0]
+       ; gcrRegs +[rax]
        cmp      gword ptr [rbp-0x38], 0
        jne      SHORT G_M54551_IG09
-       xor      eax, eax
        xor      ecx, ecx
+       xor      edx, edx
        jmp      SHORT G_M54551_IG10
-                       ;; size=13 bbWeight=0.50 PerfScore 2.75
-G_M54551_IG09:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
-       mov      eax, dword ptr [rbp-0x2C]
-       mov      dword ptr [rbp-0x74], eax
+                       ;; size=20 bbWeight=0.50 PerfScore 3.25
+G_M54551_IG09:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref
+       ; GC ptr vars -{V14}
+       mov      gword ptr [rbp-0xA0], rax
+       ; GC ptr vars +{V14}
+       mov      ecx, dword ptr [rbp-0x2C]
+       mov      dword ptr [rbp-0x74], ecx
        mov      rdi, gword ptr [rbp-0x38]
        ; gcrRegs +[rdi]
-       mov      rcx, gword ptr [rbp-0x38]
-       ; gcrRegs +[rcx]
-       mov      rcx, qword ptr [rcx]
-       ; gcrRegs -[rcx]
-       mov      rcx, qword ptr [rcx+0x58]
-       call     [rcx+0x08]<unknown method>
-       ; gcrRegs -[rdi]
+       mov      rdx, gword ptr [rbp-0x38]
+       ; gcrRegs +[rdx]
+       mov      rdx, qword ptr [rdx]
+       ; gcrRegs -[rdx]
+       mov      rdx, qword ptr [rdx+0x58]
+       call     [rdx+0x08]<unknown method>
+       ; gcrRegs -[rax rdi]
        add      eax, dword ptr [rbp-0x74]
        mov      dword ptr [rbp-0x78], eax
        xor      edi, edi
@@ -164,24 +163,27 @@ G_M54551_IG09:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
        lea      rdi, [rbp-0x80]
        mov      esi, dword ptr [rbp-0x78]
        call     [Microsoft.CodeAnalysis.Text.TextSpan:.ctor(int,int):this]
-       mov      eax, dword ptr [rbp-0x80]
-       mov      ecx, dword ptr [rbp-0x7C]
-                       ;; size=74 bbWeight=0.50 PerfScore 15.50
-G_M54551_IG10:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref, isz
-       mov      rdi, gword ptr [rbp-0xA0]
-       ; gcrRegs +[rdi]
-       mov      dword ptr [rbp-0x88], eax
-       mov      dword ptr [rbp-0x84], ecx
-       mov      rsi, qword ptr [rbp-0x88]
-       mov      rax, qword ptr [rdi]
-       mov      rax, qword ptr [rax+0x60]
+       mov      ecx, dword ptr [rbp-0x80]
+       mov      edx, dword ptr [rbp-0x7C]
+       mov      rax, gword ptr [rbp-0xA0]
+       ; gcrRegs +[rax]
+                       ;; size=88 bbWeight=0.50 PerfScore 16.50
+G_M54551_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=C009 {rax rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref, isz
        ; GC ptr vars -{V14}
+       mov      dword ptr [rbp-0x88], ecx
+       mov      dword ptr [rbp-0x84], edx
+       mov      rsi, qword ptr [rbp-0x88]
+       mov      rdi, rax
+       ; gcrRegs +[rdi]
+       mov      rax, qword ptr [rax]
+       ; gcrRegs -[rax]
+       mov      rax, qword ptr [rax+0x60]
        call     [rax+0x28]<unknown method>
        ; gcrRegs -[rdi] +[rax]
        mov      gword ptr [rbp-0x98], rax
        ; GC ptr vars +{V11}
        jmp      SHORT G_M54551_IG12
-                       ;; size=45 bbWeight=0.50 PerfScore 7.00
+                       ;; size=41 bbWeight=0.50 PerfScore 6.62
 G_M54551_IG11:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        ; GC ptr vars -{V11}
@@ -191,7 +193,7 @@ G_M54551_IG11:        ; bbWeight=0.50, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0
        mov      gword ptr [rbp-0x98], rax
        ; GC ptr vars +{V11}
                        ;; size=20 bbWeight=0.50 PerfScore 1.62
-G_M54551_IG12:        ; bbWeight=1, gcVars=0000000000000400 {V11}, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref
+G_M54551_IG12:        ; bbWeight=1, gcVars=0000000000000200 {V11}, gcrefRegs=C008 {rbx r14 r15}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[rax]
        mov      rdi, 0xD1FFAB1E      ; Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbol
        call     CORINFO_HELP_NEWSFAST
@@ -209,7 +211,7 @@ G_M54551_IG12:        ; bbWeight=1, gcVars=0000000000000400 {V11}, gcrefRegs=C00
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        mov      r8d, r12d
-       ; GC ptr vars -{V11}
+       ; GC ptr vars -{V09 V11}
        call     [<unknown method>]
        ; gcrRegs -[rax rcx rdx rbx rsi rdi r14-r15]
        mov      rax, gword ptr [rbp-0x90]
@@ -226,7 +228,7 @@ G_M54551_IG13:        ; bbWeight=1, epilog, nogc, extend
        ret      
                        ;; size=18 bbWeight=1 PerfScore 4.25
 
-; Total bytes of code 415, prolog size 49, PerfScore 85.58, instruction count 108, allocated bytes for code 415 (MethodHash=23a22ae8) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbol:CreateConstructorSymbol(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.CSharp.Syntax.ConstructorDeclarationSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbol (FullOpts)
+; Total bytes of code 427, prolog size 49, PerfScore 86.46, instruction count 109, allocated bytes for code 427 (MethodHash=23a22ae8) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbol:CreateConstructorSymbol(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.CSharp.Syntax.ConstructorDeclarationSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbol (FullOpts)
 ; ============================================================
 
 Unwind Info:

smoke_tests.nativeaot.linux.x64.checked.mch

-4 (-13.79%) : 10866.dasm - System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (FullOpts)

@@ -9,40 +9,36 @@
 ;
 ;  V00 arg0         [V00,T00] (  3,  3   )     ref  ->  rdi         class-hnd exact single-def <System.String>
 ;  V01 arg1         [V01,T02] (  3,  3   )  ushort  ->  rsi         single-def
-;  V02 arg2         [V02,T03] (  3,  3   )     int  ->  rdx         single-def
+;  V02 arg2         [V02,T03] (  3,  3   )     int  ->  rax         single-def
 ;  V03 arg3         [V03,T01] (  3,  3   )   byref  ->  rcx         single-def
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
-;  V06 tmp2         [V06,T05] (  2,  4   )    long  ->   r8         "Cast away GC"
-;  V07 tmp3         [V07,T06] (  2,  4   )    long  ->   r8         "argument with side effect"
-;  V08 tmp4         [V08,T04] (  2,  4   )     ref  ->  rdi         single-def "argument with side effect"
-;  V09 tmp5         [V09,T07] (  2,  4   )     int  ->  rax         "argument with side effect"
-;  V10 tmp6         [V10,T08] (  2,  4   )     int  ->   r9         "argument with side effect"
+;  V06 tmp2         [V06,T04] (  2,  4   )    long  ->   r8         "Cast away GC"
+;  V07 tmp3         [V07,T05] (  2,  4   )    long  ->   r8         "argument with side effect"
 ;
 ; Lcl frame size = 0
 
 G_M56677_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-                       ;; size=0 bbWeight=1 PerfScore 0.00
+       mov      eax, edx
+                       ;; size=2 bbWeight=1 PerfScore 0.25
 G_M56677_IG02:        ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0002 {rcx}, byref
        ; gcrRegs +[rdi]
        ; byrRegs +[rcx]
-       movzx    rax, si
-       mov      r9d, edx
        mov      r8, rcx
+       movzx    rdx, si
        mov      rsi, rdi
        ; gcrRegs +[rsi]
-       mov      edx, eax
-       mov      ecx, r9d
+       mov      ecx, eax
        ; byrRegs -[rcx]
        lea      rdi, [(reloc)]      ; function address
        ; gcrRegs -[rdi]
-                       ;; size=24 bbWeight=1 PerfScore 2.00
+                       ;; size=18 bbWeight=1 PerfScore 1.50
 G_M56677_IG03:        ; bbWeight=1, epilog, nogc, extend
        jmp      Interop+Globalization:EnumCalendarInfo(long,System.String,ushort,int,long):ubyte
        ; gcr arg pop 0
                        ;; size=5 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 29, prolog size 0, PerfScore 4.00, instruction count 8, allocated bytes for code 29 (MethodHash=eeac229a) for method System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (FullOpts)
+; Total bytes of code 25, prolog size 2, PerfScore 3.75, instruction count 7, allocated bytes for code 25 (MethodHash=eeac229a) for method System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (FullOpts)
 ; ============================================================
 
 Cfi Info:

-22 (-13.17%) : 20050.dasm - Internal.CompilerGenerated.:NativeToManaged__InlineArrayStruct(byref,byref) (FullOpts)

@@ -27,25 +27,21 @@
 ;* V17 tmp2         [V17    ] (  0,  0   )   short  ->  zero-ref    "Inline return value spill temp"
 ;* V18 tmp3         [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp4         [V19    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
-;  V20 tmp5         [V20,T05] (  2,  4   )    long  ->  r15         "Cast away GC"
-;  V21 tmp6         [V21,T06] (  2,  4   )    long  ->  r15         "argument with side effect"
-;  TEMP_01                                   byref  ->  [rbp-0x18]
+;  V20 tmp5         [V20,T05] (  2,  4   )    long  ->  rdi         "Cast away GC"
+;  V21 tmp6         [V21,T06] (  2,  4   )    long  ->  rdi         "argument with side effect"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 0
 
 G_M8134_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
        push     r15
        push     rbx
-       sub      rsp, 16
-       lea      rbp, [rsp+0x20]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x18], rax
+       lea      rbp, [rsp+0x10]
        mov      r15, rdi
        ; byrRegs +[r15]
        mov      rbx, rsi
        ; byrRegs +[rbx]
-                       ;; size=25 bbWeight=1 PerfScore 5.50
+                       ;; size=15 bbWeight=1 PerfScore 4.00
 G_M8134_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
        mov      edi, dword ptr [r15]
        mov      dword ptr [rbx+0x10], edi
@@ -83,40 +79,35 @@ G_M8134_IG03:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15},
                        ;; size=36 bbWeight=4 PerfScore 54.00
 G_M8134_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=8008 {rbx r15}, byref
        ; gcrRegs -[rsi]
-       lea      rdi, bword ptr [rbx+0x08]
-       ; byrRegs +[rdi]
-       mov      bword ptr [rbp-0x18], rdi
        add      r15, 268
        mov      rdi, r15
-       ; byrRegs -[rdi]
        mov      esi, 11
        call     Internal.Runtime.CompilerHelpers.InteropHelpers:ByValAnsiStringToString(ulong,int):System.String
        ; gcrRegs +[rax]
-       ; byrRegs -[rbx r15]
+       ; byrRegs -[r15]
        ; gcr arg pop 0
-       mov      rdi, bword ptr [rbp-0x18]
+       lea      rdi, bword ptr [rbx+0x08]
        ; byrRegs +[rdi]
        mov      rsi, rax
        ; gcrRegs +[rsi]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        ; gcrRegs -[rax rsi]
-       ; byrRegs -[rdi]
+       ; byrRegs -[rbx rdi]
        nop      
-                       ;; size=41 bbWeight=1 PerfScore 5.75
+                       ;; size=33 bbWeight=1 PerfScore 3.75
 G_M8134_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 16
        pop      rbx
        pop      r15
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=1 PerfScore 2.75
+                       ;; size=5 bbWeight=1 PerfScore 2.50
 G_M8134_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        call     CORINFO_HELP_RNGCHKFAIL
        ; gcr arg pop 0
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 167, prolog size 25, PerfScore 80.50, instruction count 50, allocated bytes for code 167 (MethodHash=6c21e039) for method Internal.CompilerGenerated.<Module>:NativeToManaged__InlineArrayStruct(byref,byref) (FullOpts)
+; Total bytes of code 145, prolog size 15, PerfScore 76.75, instruction count 44, allocated bytes for code 145 (MethodHash=6c21e039) for method Internal.CompilerGenerated.<Module>:NativeToManaged__InlineArrayStruct(byref,byref) (FullOpts)
 ; ============================================================
 
 Cfi Info:
@@ -128,4 +119,3 @@ Cfi Info:
     CodeOffset: 0x03 Op: RelOffset DwarfReg:0xf Offset:0x0
     CodeOffset: 0x04 Op: AdjustCfaOffset Offset:0x8
     CodeOffset: 0x04 Op: RelOffset DwarfReg:0x3 Offset:0x0
-    CodeOffset: 0x08 Op: AdjustCfaOffset Offset:0x10

-10 (-12.82%) : 9155.dasm - System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)

@@ -9,7 +9,7 @@
 ;
 ;  V00 this         [V00,T00] (  5,  5   )     ref  ->  rbx         this class-hnd single-def <System.Threading.QueueUserWorkItemCallbackBase>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T01] (  2,  4   )   ubyte  ->  rdi         "Inlining Arg"
+;* V02 tmp1         [V02    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;
 ; Lcl frame size = 8
 
@@ -33,11 +33,8 @@ G_M21281_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        mov      edi, 1
        xchg     dword ptr [rbx], edi
        test     edi, edi
-       sete     dil
-       movzx    rdi, dil
-       test     edi, edi
-       jne      SHORT G_M21281_IG05
-                       ;; size=35 bbWeight=1 PerfScore 27.50
+       je       SHORT G_M21281_IG05
+                       ;; size=25 bbWeight=1 PerfScore 26.00
 G_M21281_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs -[rbx]
        lea      rdi, gword ptr [(reloc)]
@@ -59,7 +56,7 @@ G_M21281_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ret      
                        ;; size=7 bbWeight=0.50 PerfScore 1.12
 
-; Total bytes of code 78, prolog size 8, PerfScore 34.50, instruction count 26, allocated bytes for code 78 (MethodHash=f256acde) for method System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
+; Total bytes of code 68, prolog size 8, PerfScore 33.00, instruction count 23, allocated bytes for code 68 (MethodHash=f256acde) for method System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
 ; ============================================================
 
 Cfi Info:

+9 (+3.12%) : 24194.dasm - System.Text.UnicodeEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)

@@ -10,34 +10,31 @@
 ;  V00 this         [V00,T05] (  3,  3   )     ref  ->  rdi         this class-hnd exact single-def <System.Text.UnicodeEncoding>
 ;  V01 arg1         [V01,T03] (  5,  5   )     ref  ->  rsi         class-hnd exact single-def <System.String>
 ;  V02 arg2         [V02,T01] (  6,  5   )     int  ->  rdx         single-def
-;  V03 arg3         [V03,T02] (  6,  5   )     int  ->  rcx         single-def
+;  V03 arg3         [V03,T02] (  6,  5   )     int  ->  rax         single-def
 ;  V04 arg4         [V04,T04] (  5,  5   )     ref  ->   r8         class-hnd single-def <ubyte[]>
 ;  V05 arg5         [V05,T00] (  6,  6   )     int  ->   r9         single-def
-;  V06 loc0         [V06,T13] (  2,  2   )     int  ->  rax        
+;  V06 loc0         [V06,T11] (  2,  2   )     int  ->  r10        
 ;* V07 loc1         [V07    ] (  0,  0   )    long  ->  zero-ref   
 ;  V08 loc2         [V08    ] (  2,  2   )   byref  ->  [rbp-0x10]  must-init pinned single-def
 ;* V09 loc3         [V09    ] (  0,  0   )    long  ->  zero-ref   
 ;  V10 loc4         [V10    ] (  1,  1   )   byref  ->  [rbp-0x18]  must-init pinned single-def
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T16] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
-;  V13 tmp2         [V13,T14] (  2,  2   )    long  ->  rsi        
+;  V12 tmp1         [V12,T13] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
+;  V13 tmp2         [V13,T12] (  2,  2   )    long  ->  rsi        
 ;* V14 tmp3         [V14    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
-;  V15 tmp4         [V15,T17] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
+;  V15 tmp4         [V15,T14] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
 ;* V16 tmp5         [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V17 tmp6         [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V18 tmp7         [V18    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V19 tmp8         [V19    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
-;  V20 tmp9         [V20,T11] (  3,  3   )   byref  ->   r8         "field V16._reference (fldOffset=0x0)" P-INDEP
+;  V20 tmp9         [V20,T09] (  3,  3   )   byref  ->   r8         "field V16._reference (fldOffset=0x0)" P-INDEP
 ;* V21 tmp10        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V16._length (fldOffset=0x8)" P-INDEP
 ;* V22 tmp11        [V22    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V17._reference (fldOffset=0x0)" P-INDEP
 ;* V23 tmp12        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V17._length (fldOffset=0x8)" P-INDEP
 ;  V24 tmp13        [V24,T06] (  2,  4   )    long  ->  rsi         "Cast away GC"
 ;  V25 tmp14        [V25,T07] (  2,  4   )    long  ->   r8         "Cast away GC"
-;* V26 tmp15        [V26,T15] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V27 tmp16        [V27,T08] (  2,  4   )    long  ->  rsi         "argument with side effect"
-;  V28 tmp17        [V28,T09] (  2,  4   )     int  ->  rdx         "argument with side effect"
-;  V29 tmp18        [V29,T10] (  2,  4   )    long  ->  rcx         "argument with side effect"
-;  V30 cse0         [V30,T12] (  3,  3   )     int  ->  rax         "CSE - moderate"
+;  V26 tmp15        [V26,T08] (  2,  4   )    long  ->  rcx         "argument with side effect"
+;  V27 cse0         [V27,T10] (  3,  3   )     int  ->  rcx         "CSE - moderate"
 ;
 ; Lcl frame size = 24
 
@@ -49,27 +46,29 @@ G_M25035_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        xor      eax, eax
        mov      qword ptr [rbp-0x10], rax
        mov      qword ptr [rbp-0x18], rax
-                       ;; size=21 bbWeight=1 PerfScore 5.00
+       mov      eax, ecx
+                       ;; size=23 bbWeight=1 PerfScore 5.25
 G_M25035_IG02:        ; bbWeight=1, gcrefRegs=01C0 {rsi rdi r8}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rsi rdi r8]
        test     rsi, rsi
        je       SHORT G_M25035_IG04
        test     r8, r8
-       je       SHORT G_M25035_IG05
+       je       G_M25035_IG05
        test     edx, edx
        jl       G_M25035_IG06
-       test     ecx, ecx
+       test     eax, eax
        jl       G_M25035_IG07
-       mov      eax, dword ptr [rsi+0x08]
-       sub      eax, edx
-       cmp      eax, ecx
+       mov      ecx, dword ptr [rsi+0x08]
+       sub      ecx, edx
+       cmp      ecx, eax
        jl       G_M25035_IG08
        test     r9d, r9d
        jl       G_M25035_IG09
-       mov      eax, dword ptr [r8+0x08]
-       cmp      eax, r9d
+       mov      ecx, dword ptr [r8+0x08]
+       cmp      ecx, r9d
        jl       G_M25035_IG09
-       sub      eax, r9d
+       sub      ecx, r9d
+       mov      r10d, ecx
        add      rsi, 12
        ; gcrRegs -[rsi]
        ; byrRegs +[rsi]
@@ -79,13 +78,13 @@ G_M25035_IG02:        ; bbWeight=1, gcrefRegs=01C0 {rsi rdi r8}, byrefRegs=0000
        ; gcrRegs -[r8]
        ; byrRegs +[r8]
        mov      bword ptr [rbp-0x18], r8
+       movsxd   rcx, r9d
+       add      rcx, r8
        movsxd   rdx, edx
        lea      rsi, [rsi+2*rdx]
        ; byrRegs -[rsi]
-       mov      edx, ecx
-       movsxd   rcx, r9d
-       add      rcx, r8
-       mov      r8d, eax
+       mov      edx, eax
+       mov      r8d, r10d
        ; byrRegs -[r8]
        xor      r9, r9
        ; gcrRegs +[r9]
@@ -93,7 +92,7 @@ G_M25035_IG02:        ; bbWeight=1, gcrefRegs=01C0 {rsi rdi r8}, byrefRegs=0000
        call     <unknown method>
        ; gcrRegs -[rdi r9]
        nop      
-                       ;; size=113 bbWeight=1 PerfScore 23.00
+                       ;; size=120 bbWeight=1 PerfScore 23.25
 G_M25035_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 24
        pop      rbx
@@ -123,7 +122,7 @@ G_M25035_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=15 bbWeight=0 PerfScore 0.00
 G_M25035_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      edi, ecx
+       mov      edi, eax
        lea      rsi, gword ptr [(reloc)]
        ; gcrRegs +[rsi]
        call     System.ArgumentOutOfRangeException:ThrowNegative[int](int,System.String)
@@ -170,7 +169,7 @@ G_M25035_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=46 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 288, prolog size 21, PerfScore 30.25, instruction count 77, allocated bytes for code 288 (MethodHash=45cf9e34) for method System.Text.UnicodeEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)
+; Total bytes of code 297, prolog size 21, PerfScore 30.75, instruction count 79, allocated bytes for code 297 (MethodHash=45cf9e34) for method System.Text.UnicodeEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)
 ; ============================================================
 
 Cfi Info:

+9 (+3.12%) : 20708.dasm - System.Text.UnicodeEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)

@@ -10,34 +10,31 @@
 ;  V00 this         [V00,T05] (  3,  3   )     ref  ->  rdi         this class-hnd exact single-def <System.Text.UnicodeEncoding>
 ;  V01 arg1         [V01,T03] (  5,  5   )     ref  ->  rsi         class-hnd exact single-def <System.String>
 ;  V02 arg2         [V02,T01] (  6,  5   )     int  ->  rdx         single-def
-;  V03 arg3         [V03,T02] (  6,  5   )     int  ->  rcx         single-def
+;  V03 arg3         [V03,T02] (  6,  5   )     int  ->  rax         single-def
 ;  V04 arg4         [V04,T04] (  5,  5   )     ref  ->   r8         class-hnd single-def <ubyte[]>
 ;  V05 arg5         [V05,T00] (  6,  6   )     int  ->   r9         single-def
-;  V06 loc0         [V06,T13] (  2,  2   )     int  ->  rax        
+;  V06 loc0         [V06,T11] (  2,  2   )     int  ->  r10        
 ;* V07 loc1         [V07    ] (  0,  0   )    long  ->  zero-ref   
 ;  V08 loc2         [V08    ] (  2,  2   )   byref  ->  [rbp-0x10]  must-init pinned single-def
 ;* V09 loc3         [V09    ] (  0,  0   )    long  ->  zero-ref   
 ;  V10 loc4         [V10    ] (  1,  1   )   byref  ->  [rbp-0x18]  must-init pinned single-def
 ;# V11 OutArgs      [V11    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V12 tmp1         [V12,T16] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
-;  V13 tmp2         [V13,T14] (  2,  2   )    long  ->  rsi        
+;  V12 tmp1         [V12,T13] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
+;  V13 tmp2         [V13,T12] (  2,  2   )    long  ->  rsi        
 ;* V14 tmp3         [V14    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
-;  V15 tmp4         [V15,T17] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
+;  V15 tmp4         [V15,T14] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <System.ArgumentOutOfRangeException>
 ;* V16 tmp5         [V16    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V17 tmp6         [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V18 tmp7         [V18    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V19 tmp8         [V19    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
-;  V20 tmp9         [V20,T11] (  3,  3   )   byref  ->   r8         "field V16._reference (fldOffset=0x0)" P-INDEP
+;  V20 tmp9         [V20,T09] (  3,  3   )   byref  ->   r8         "field V16._reference (fldOffset=0x0)" P-INDEP
 ;* V21 tmp10        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V16._length (fldOffset=0x8)" P-INDEP
 ;* V22 tmp11        [V22    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V17._reference (fldOffset=0x0)" P-INDEP
 ;* V23 tmp12        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V17._length (fldOffset=0x8)" P-INDEP
 ;  V24 tmp13        [V24,T06] (  2,  4   )    long  ->  rsi         "Cast away GC"
 ;  V25 tmp14        [V25,T07] (  2,  4   )    long  ->   r8         "Cast away GC"
-;* V26 tmp15        [V26,T15] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V27 tmp16        [V27,T08] (  2,  4   )    long  ->  rsi         "argument with side effect"
-;  V28 tmp17        [V28,T09] (  2,  4   )     int  ->  rdx         "argument with side effect"
-;  V29 tmp18        [V29,T10] (  2,  4   )    long  ->  rcx         "argument with side effect"
-;  V30 cse0         [V30,T12] (  3,  3   )     int  ->  rax         "CSE - moderate"
+;  V26 tmp15        [V26,T08] (  2,  4   )    long  ->  rcx         "argument with side effect"
+;  V27 cse0         [V27,T10] (  3,  3   )     int  ->  rcx         "CSE - moderate"
 ;
 ; Lcl frame size = 24
 
@@ -49,27 +46,29 @@ G_M25035_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        xor      eax, eax
        mov      qword ptr [rbp-0x10], rax
        mov      qword ptr [rbp-0x18], rax
-                       ;; size=21 bbWeight=1 PerfScore 5.00
+       mov      eax, ecx
+                       ;; size=23 bbWeight=1 PerfScore 5.25
 G_M25035_IG02:        ; bbWeight=1, gcrefRegs=01C0 {rsi rdi r8}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rsi rdi r8]
        test     rsi, rsi
        je       SHORT G_M25035_IG04
        test     r8, r8
-       je       SHORT G_M25035_IG05
+       je       G_M25035_IG05
        test     edx, edx
        jl       G_M25035_IG06
-       test     ecx, ecx
+       test     eax, eax
        jl       G_M25035_IG07
-       mov      eax, dword ptr [rsi+0x08]
-       sub      eax, edx
-       cmp      eax, ecx
+       mov      ecx, dword ptr [rsi+0x08]
+       sub      ecx, edx
+       cmp      ecx, eax
        jl       G_M25035_IG08
        test     r9d, r9d
        jl       G_M25035_IG09
-       mov      eax, dword ptr [r8+0x08]
-       cmp      eax, r9d
+       mov      ecx, dword ptr [r8+0x08]
+       cmp      ecx, r9d
        jl       G_M25035_IG09
-       sub      eax, r9d
+       sub      ecx, r9d
+       mov      r10d, ecx
        add      rsi, 12
        ; gcrRegs -[rsi]
        ; byrRegs +[rsi]
@@ -79,13 +78,13 @@ G_M25035_IG02:        ; bbWeight=1, gcrefRegs=01C0 {rsi rdi r8}, byrefRegs=0000
        ; gcrRegs -[r8]
        ; byrRegs +[r8]
        mov      bword ptr [rbp-0x18], r8
+       movsxd   rcx, r9d
+       add      rcx, r8
        movsxd   rdx, edx
        lea      rsi, [rsi+2*rdx]
        ; byrRegs -[rsi]
-       mov      edx, ecx
-       movsxd   rcx, r9d
-       add      rcx, r8
-       mov      r8d, eax
+       mov      edx, eax
+       mov      r8d, r10d
        ; byrRegs -[r8]
        xor      r9, r9
        ; gcrRegs +[r9]
@@ -93,7 +92,7 @@ G_M25035_IG02:        ; bbWeight=1, gcrefRegs=01C0 {rsi rdi r8}, byrefRegs=0000
        call     <unknown method>
        ; gcrRegs -[rdi r9]
        nop      
-                       ;; size=113 bbWeight=1 PerfScore 23.00
+                       ;; size=120 bbWeight=1 PerfScore 23.25
 G_M25035_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 24
        pop      rbx
@@ -123,7 +122,7 @@ G_M25035_IG06:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=15 bbWeight=0 PerfScore 0.00
 G_M25035_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      edi, ecx
+       mov      edi, eax
        lea      rsi, gword ptr [(reloc)]
        ; gcrRegs +[rsi]
        call     System.ArgumentOutOfRangeException:ThrowNegative[int](int,System.String)
@@ -170,7 +169,7 @@ G_M25035_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=46 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 288, prolog size 21, PerfScore 30.25, instruction count 77, allocated bytes for code 288 (MethodHash=45cf9e34) for method System.Text.UnicodeEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)
+; Total bytes of code 297, prolog size 21, PerfScore 30.75, instruction count 79, allocated bytes for code 297 (MethodHash=45cf9e34) for method System.Text.UnicodeEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)
 ; ============================================================
 
 Cfi Info:

+26 (+15.76%) : 9130.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:CreateDirectoryHandle(System.String,ubyte):long:this (FullOpts)

@@ -7,9 +7,9 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  3,  2.50)     ref  ->  [rbp-0x30]  this class-hnd single-def <System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]>
-;  V01 arg1         [V01,T01] (  4,  3   )     ref  ->  [rbp-0x38]  class-hnd exact single-def <System.String>
-;  V02 arg2         [V02,T02] (  3,  2.50)   ubyte  ->  r14         single-def
+;  V00 this         [V00,T01] (  4,  2.50)     ref  ->  [rbp-0x30]  this class-hnd single-def <System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]>
+;  V01 arg1         [V01,T00] (  4,  3   )     ref  ->  [rbp-0x38]  class-hnd exact single-def <System.String>
+;  V02 arg2         [V02,T02] (  4,  2.50)   ubyte  ->  r14         single-def
 ;  V03 loc0         [V03,T05] (  3,  2.50)    long  ->  rax        
 ;* V04 loc1         [V04    ] (  0,  0   )  struct ( 8) zero-ref    <Interop+ErrorInfo>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -17,10 +17,9 @@
 ;  V07 tmp2         [V07,T04] (  3,  3   )     int  ->  r13         "Inlining Arg"
 ;* V08 tmp3         [V08    ] (  0,  0   )     int  ->  zero-ref    "field V04._error (fldOffset=0x0)" P-INDEP
 ;* V09 tmp4         [V09    ] (  0,  0   )     int  ->  zero-ref    "field V04._rawErrno (fldOffset=0x4)" P-INDEP
-;  V10 tmp5         [V10,T06] (  2,  1   )     int  ->  rbx         "field V06._error (fldOffset=0x0)" P-INDEP
-;  V11 tmp6         [V11,T07] (  2,  1   )     int  ->  r13         "field V06._rawErrno (fldOffset=0x4)" P-INDEP
-;  V12 tmp7         [V12,T03] (  4,  3   )  struct ( 8) [rbp-0x28]  do-not-enreg[SF] "by-value struct argument" <Interop+ErrorInfo>
-;* V13 tmp8         [V13,T08] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V10 tmp5         [V10,T06] (  3,  1   )     int  ->  rbx         "field V06._error (fldOffset=0x0)" P-INDEP
+;  V11 tmp6         [V11,T07] (  3,  1   )     int  ->  r13         "field V06._rawErrno (fldOffset=0x4)" P-INDEP
+;  V12 tmp7         [V12,T03] (  7,  3   )  struct ( 8) [rbp-0x28]  do-not-enreg[SF] "by-value struct argument" <Interop+ErrorInfo>
 ;
 ; Lcl frame size = 32
 
@@ -34,17 +33,17 @@ G_M13357_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        lea      rbp, [rsp+0x40]
        mov      gword ptr [rbp-0x30], rdi
        ; GC ptr vars +{V00}
-       mov      r15, rsi
-       ; gcrRegs +[r15]
+       mov      rbx, rsi
+       ; gcrRegs +[rbx]
        mov      r14d, edx
                        ;; size=27 bbWeight=1 PerfScore 7.25
-G_M13357_IG02:        ; bbWeight=1, gcVars=0000000000000001 {V00}, gcrefRegs=8000 {r15}, byrefRegs=0000 {}, gcvars, byref, isz
-       mov      gword ptr [rbp-0x38], r15
+G_M13357_IG02:        ; bbWeight=1, gcVars=0000000000000002 {V00}, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, gcvars, byref, isz
+       mov      gword ptr [rbp-0x38], rbx
        ; GC ptr vars +{V01}
-       mov      rdi, r15
+       mov      rdi, rbx
        ; gcrRegs +[rdi]
        call     <unknown method>
-       ; gcrRegs -[rdi r15]
+       ; gcrRegs -[rbx rdi]
        test     rax, rax
        jne      SHORT G_M13357_IG07
                        ;; size=17 bbWeight=1 PerfScore 3.50
@@ -60,21 +59,21 @@ G_M13357_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        mov      ebx, eax
        cmp      dword ptr [(reloc)], 0
        jne      SHORT G_M13357_IG08
-                       ;; size=16 bbWeight=0.50 PerfScore 2.62
-G_M13357_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        mov      dword ptr [rbp-0x28], ebx
        mov      dword ptr [rbp-0x24], r13d
-       mov      rdi, gword ptr [rbp-0x30]
-       ; gcrRegs +[rdi]
        mov      rsi, qword ptr [rbp-0x28]
        movzx    rdx, r14b
-       ; GC ptr vars -{V00}
+       mov      rdi, gword ptr [rbp-0x30]
+       ; gcrRegs +[rdi]
+       ; GC ptr vars -{V00 V01}
        call     System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:InternalContinueOnError(Interop+ErrorInfo,ubyte):ubyte:this
        ; gcrRegs -[rdi]
        test     eax, eax
        je       SHORT G_M13357_IG09
+                       ;; size=44 bbWeight=0.50 PerfScore 5.88
+G_M13357_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        xor      eax, eax
-                       ;; size=30 bbWeight=0.50 PerfScore 3.38
+                       ;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M13357_IG06:        ; bbWeight=0.50, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
@@ -85,7 +84,6 @@ G_M13357_IG06:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
                        ;; size=13 bbWeight=0.50 PerfScore 1.88
 G_M13357_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, epilog, nogc
-       ; GC ptr vars -{V01}
        add      rsp, 32
        pop      rbx
        pop      r13
@@ -97,15 +95,23 @@ G_M13357_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
 G_M13357_IG08:        ; bbWeight=0, gcVars=0000000000000003 {V00 V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
        ; GC ptr vars +{V00 V01}
        call     CORINFO_HELP_POLL_GC
-       jmp      SHORT G_M13357_IG05
-                       ;; size=7 bbWeight=0 PerfScore 0.00
-G_M13357_IG09:        ; bbWeight=0, gcVars=0000000000000002 {V01}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
-       ; GC ptr vars -{V00}
+       mov      dword ptr [rbp-0x28], ebx
+       mov      dword ptr [rbp-0x24], r13d
+       mov      rsi, qword ptr [rbp-0x28]
+       movzx    rdx, r14b
+       mov      rdi, gword ptr [rbp-0x30]
+       ; gcrRegs +[rdi]
+       ; GC ptr vars -{V00 V01}
+       call     System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:InternalContinueOnError(Interop+ErrorInfo,ubyte):ubyte:this
+       ; gcrRegs -[rdi]
+       test     eax, eax
+       jne      SHORT G_M13357_IG05
+                       ;; size=33 bbWeight=0 PerfScore 0.00
+G_M13357_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rdi, qword ptr [rbp-0x28]
        mov      rsi, gword ptr [rbp-0x38]
        ; gcrRegs +[rsi]
        mov      edx, 1
-       ; GC ptr vars -{V01}
        call     <unknown method>
        ; gcrRegs -[rsi] +[rax]
        mov      rdi, rax
@@ -115,7 +121,7 @@ G_M13357_IG09:        ; bbWeight=0, gcVars=0000000000000002 {V01}, gcrefRegs=000
        int3     
                        ;; size=27 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 165, prolog size 17, PerfScore 22.12, instruction count 54, allocated bytes for code 165 (MethodHash=29b6cbd2) for method System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:CreateDirectoryHandle(System.String,ubyte):long:this (FullOpts)
+; Total bytes of code 191, prolog size 17, PerfScore 22.12, instruction count 61, allocated bytes for code 191 (MethodHash=29b6cbd2) for method System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:CreateDirectoryHandle(System.String,ubyte):long:this (FullOpts)
 ; ============================================================
 
 Cfi Info:

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.linux.x64.checked.mch 657 222 62 373 -4,396 +484
benchmarks.run_pgo.linux.x64.checked.mch 4,024 1,310 1,555 1,159 -39,845 +4,860
benchmarks.run_tiered.linux.x64.checked.mch 214 115 21 78 -2,265 +158
coreclr_tests.run.linux.x64.checked.mch 11,440 9,917 265 1,258 -380,399 +1,803
libraries.crossgen2.linux.x64.checked.mch 2,181 782 145 1,254 -21,562 +664
libraries.pmi.linux.x64.checked.mch 4,806 1,622 535 2,649 -29,725 +4,334
libraries_tests.run.linux.x64.Release.mch 24,579 17,465 1,531 5,583 -498,576 +9,869
librariestestsnotieredcompilation.run.linux.x64.Release.mch 15,645 2,164 504 12,977 -45,377 +4,111
realworld.run.linux.x64.checked.mch 894 330 137 427 -7,938 +1,937
smoke_tests.nativeaot.linux.x64.checked.mch 227 61 26 140 -472 +131
64,667 33,988 4,781 25,898 -1,030,555 +28,351

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.x64.checked.mch 34,995 3,164 31,831 4 (0.01%) 4 (0.01%)
benchmarks.run_pgo.linux.x64.checked.mch 155,969 58,399 97,570 151 (0.10%) 151 (0.10%)
benchmarks.run_tiered.linux.x64.checked.mch 58,888 44,312 14,576 2 (0.00%) 2 (0.00%)
coreclr_tests.run.linux.x64.checked.mch 694,084 429,241 264,843 329 (0.05%) 329 (0.05%)
libraries.crossgen2.linux.x64.checked.mch 233,626 15 233,611 0 (0.00%) 0 (0.00%)
libraries.pmi.linux.x64.checked.mch 295,414 6 295,408 8 (0.00%) 8 (0.00%)
libraries_tests.run.linux.x64.Release.mch 756,819 495,271 261,548 3,121 (0.41%) 3,124 (0.41%)
librariestestsnotieredcompilation.run.linux.x64.Release.mch 304,605 21,873 282,732 10 (0.00%) 10 (0.00%)
realworld.run.linux.x64.checked.mch 33,163 39 33,124 3 (0.01%) 4 (0.01%)
smoke_tests.nativeaot.linux.x64.checked.mch 27,440 9 27,431 0 (0.00%) 0 (0.00%)
2,595,003 1,052,329 1,542,674 3,628 (0.14%) 3,632 (0.14%)

jit-analyze output

benchmarks.run.linux.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 13735124 (overridden on cmd)
Total bytes of diff: 13731212 (overridden on cmd)
Total bytes of delta: -3912 (-0.03 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          63 : 7518.dasm (0.53 % of base)
          55 : 19629.dasm (3.46 % of base)
          52 : 1380.dasm (6.27 % of base)
          39 : 24571.dasm (0.35 % of base)
          25 : 24559.dasm (0.46 % of base)
          18 : 20791.dasm (0.89 % of base)
          13 : 20457.dasm (0.54 % of base)
          12 : 20481.dasm (0.53 % of base)
          12 : 20388.dasm (0.50 % of base)
          12 : 24584.dasm (0.36 % of base)
          10 : 17486.dasm (0.44 % of base)
          10 : 7769.dasm (0.76 % of base)
           9 : 33492.dasm (0.78 % of base)
           9 : 12873.dasm (1.21 % of base)
           8 : 915.dasm (1.44 % of base)
           7 : 19618.dasm (0.74 % of base)
           7 : 20835.dasm (0.39 % of base)
           6 : 12070.dasm (2.31 % of base)
           6 : 16903.dasm (2.31 % of base)
           6 : 5090.dasm (3.33 % of base)

Top file improvements (bytes):
        -364 : 9626.dasm (-10.02 % of base)
        -193 : 11284.dasm (-9.91 % of base)
        -114 : 15049.dasm (-6.14 % of base)
        -107 : 5328.dasm (-5.41 % of base)
         -92 : 6786.dasm (-3.36 % of base)
         -87 : 20751.dasm (-14.01 % of base)
         -84 : 6720.dasm (-7.09 % of base)
         -80 : 22360.dasm (-1.97 % of base)
         -79 : 2573.dasm (-12.87 % of base)
         -78 : 28306.dasm (-13.22 % of base)
         -73 : 5371.dasm (-11.30 % of base)
         -67 : 8533.dasm (-2.37 % of base)
         -64 : 1046.dasm (-9.68 % of base)
         -62 : 6703.dasm (-3.05 % of base)
         -61 : 6159.dasm (-8.69 % of base)
         -56 : 21271.dasm (-0.42 % of base)
         -53 : 21459.dasm (-1.39 % of base)
         -50 : 8745.dasm (-0.59 % of base)
         -49 : 22357.dasm (-9.02 % of base)
         -49 : 5367.dasm (-2.51 % of base)

71 total files with Code Size differences (41 improved, 30 regressed), 20 unchanged.

Top method regressions (bytes):
          63 (0.53 % of base) : 7518.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
          55 (3.46 % of base) : 19629.dasm - V8.Crypto.BigInteger:modPow(V8.Crypto.BigInteger,V8.Crypto.BigInteger):V8.Crypto.BigInteger:this (FullOpts)
          52 (6.27 % of base) : 1380.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
          39 (0.35 % of base) : 24571.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
          25 (0.46 % of base) : 24559.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (FullOpts)
          18 (0.89 % of base) : 20791.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ModifierUtils:CheckModifiers(ubyte,ubyte,uint,uint,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Nullable`1[Microsoft.CodeAnalysis.SyntaxTokenList],byref):uint (FullOpts)
          13 (0.54 % of base) : 20457.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ModifierUtils:ToDeclarationModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,ubyte,Microsoft.CodeAnalysis.DiagnosticBag,ubyte):uint (FullOpts)
          12 (0.53 % of base) : 20481.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:CreateRootSingleNamespaceDeclaration(Microsoft.CodeAnalysis.CSharp.Syntax.CompilationUnitSyntax,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.SingleNamespaceOrTypeDeclaration],ubyte):Microsoft.CodeAnalysis.CSharp.RootSingleNamespaceDeclaration:this (FullOpts)
          12 (0.50 % of base) : 20388.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitNamespaceChildren(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.SingleNamespaceOrTypeDeclaration]:this (FullOpts)
          12 (0.36 % of base) : 24584.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:ReportParameterErrors(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,int,int,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte,System.Nullable`1[ubyte],Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (FullOpts)
          10 (0.44 % of base) : 17486.dasm - MessagePack.Formatters.ListFormatter`1[int]:Serialize(byref,int,System.Collections.Generic.List`1[int],MessagePack.IFormatterResolver):int:this (FullOpts)
          10 (0.76 % of base) : 7769.dasm - System.Net.Http.HttpConnection:ParseStatusLineCore(System.Span`1[ubyte],System.Net.Http.HttpResponseMessage) (FullOpts)
           9 (0.78 % of base) : 33492.dasm - BenchmarksGame.ReverseComplement_1:Bench(System.IO.Stream,System.IO.Stream) (FullOpts)
           9 (1.21 % of base) : 12873.dasm - System.Collections.Immutable.ImmutableSortedSet`1[System.__Canon]:LeafToRootRefill(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableSortedSet`1[System.__Canon]:this (FullOpts)
           8 (1.44 % of base) : 915.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetConverterForType(System.Type,System.Text.Json.JsonSerializerOptions,ubyte):System.Text.Json.Serialization.JsonConverter (FullOpts)
           7 (0.39 % of base) : 20835.dasm - Microsoft.CodeAnalysis.PEModule:EnsureForwardTypeToAssemblyMap():this (FullOpts)
           7 (0.74 % of base) : 19618.dasm - V8.Crypto.BigInteger:squareTo(V8.Crypto.BigInteger):this (FullOpts)
           6 (2.31 % of base) : 12070.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext:ListActiveOrUpcomingEventSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.List`1[MicroBenchmarks.Serializers.ActiveOrUpcomingEvent]):this (FullOpts)
           6 (2.31 % of base) : 16901.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext:ListMyEventsListerItemSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.List`1[MicroBenchmarks.Serializers.MyEventsListerItem]):this (FullOpts)
           6 (2.31 % of base) : 16903.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext:ListMyEventsListerItemTaskSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.List`1[MicroBenchmarks.Serializers.MyEventsListerItemTask]):this (FullOpts)

Top method improvements (bytes):
        -364 (-10.02 % of base) : 9626.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -193 (-9.91 % of base) : 11284.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -114 (-6.14 % of base) : 15049.dasm - System.Xml.Schema.XsdDateTime+Parser:Parse(System.String,int):ubyte:this (FullOpts)
        -107 (-5.41 % of base) : 5328.dasm - Microsoft.Extensions.DependencyInjection.ServiceProvider:.ctor(System.Collections.Generic.ICollection`1[Microsoft.Extensions.DependencyInjection.ServiceDescriptor],Microsoft.Extensions.DependencyInjection.ServiceProviderOptions):this (FullOpts)
         -92 (-3.36 % of base) : 6786.dasm - System.Reflection.Emit.RuntimeTypeBuilder:CreateTypeNoLock():System.Reflection.TypeInfo:this (FullOpts)
         -87 (-14.01 % of base) : 20751.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NonMissingAssemblySymbol:LookupDeclaredTopLevelMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
         -84 (-7.09 % of base) : 6720.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMemberRefToken(System.Reflection.MethodBase,System.Type[]):int:this (FullOpts)
         -80 (-1.97 % of base) : 22360.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AnonymousTypeManager:AssignTemplatesNamesAndCompile(Microsoft.CodeAnalysis.CSharp.MethodCompiler,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         -79 (-12.87 % of base) : 2573.dasm - System.Formats.Asn1.AsnDecoder:TryReadOctetString(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):ubyte (FullOpts)
         -78 (-13.22 % of base) : 28306.dasm - Benchstone.MDBenchF.MDLLoops:Test():ubyte:this (FullOpts)
         -73 (-11.30 % of base) : 5371.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:TryCreateOpenGeneric(Microsoft.Extensions.DependencyInjection.ServiceDescriptor,Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain,int,ubyte):Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite:this (FullOpts)
         -67 (-2.37 % of base) : 8533.dasm - ProtoBuf.Internal.Serializers.TypeSerializer`1[System.__Canon]:ProtoBuf.Internal.Serializers.IRuntimeProtoSerializerNode.EmitRead(ProtoBuf.Compiler.CompilerContext,ProtoBuf.Compiler.Local):this (FullOpts)
         -64 (-9.68 % of base) : 1046.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon],System.__Canon]:GetOrAdd[System.__Canon](System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon],System.Func`3[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon],System.__Canon,System.__Canon],System.__Canon):System.__Canon:this (FullOpts)
         -62 (-3.05 % of base) : 6703.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetFieldTokenNoLock(System.Reflection.FieldInfo):int:this (FullOpts)
         -61 (-8.69 % of base) : 6159.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.ILEmitResolverBuilder:BuildType(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite):Microsoft.Extensions.DependencyInjection.ServiceLookup.ILEmitResolverBuilder+GeneratedMethod:this (FullOpts)
         -56 (-0.42 % of base) : 21271.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         -53 (-1.39 % of base) : 21459.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:MakeParameters[System.__Canon,System.__Canon,System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,System.__Canon,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[System.__Canon],byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte,ubyte,int,System.Func`12[System.__Canon,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.__Canon,ubyte,int,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,ubyte,ubyte,System.__Canon,System.__Canon],ubyte):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (FullOpts)
         -50 (-0.59 % of base) : 8745.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -49 (-9.02 % of base) : 22357.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (FullOpts)
         -49 (-2.51 % of base) : 5367.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:TryCreateEnumerable(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteChain):Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite:this (FullOpts)

Top method regressions (percentages):
          52 (6.27 % of base) : 1380.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
          55 (3.46 % of base) : 19629.dasm - V8.Crypto.BigInteger:modPow(V8.Crypto.BigInteger,V8.Crypto.BigInteger):V8.Crypto.BigInteger:this (FullOpts)
           6 (3.33 % of base) : 5090.dasm - Newtonsoft.Json.JsonReader:Pop():int:this (FullOpts)
           2 (2.90 % of base) : 29395.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[int,int]:set_Item(int,int):this (FullOpts)
           6 (2.31 % of base) : 12070.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext:ListActiveOrUpcomingEventSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.List`1[MicroBenchmarks.Serializers.ActiveOrUpcomingEvent]):this (FullOpts)
           6 (2.31 % of base) : 16901.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext:ListMyEventsListerItemSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.List`1[MicroBenchmarks.Serializers.MyEventsListerItem]):this (FullOpts)
           6 (2.31 % of base) : 16903.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext:ListMyEventsListerItemTaskSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Collections.Generic.List`1[MicroBenchmarks.Serializers.MyEventsListerItemTask]):this (FullOpts)
           4 (1.96 % of base) : 20322.dasm - Microsoft.CodeAnalysis.Emit.EmitOptions:.ctor(Microsoft.CodeAnalysis.Emit.EmitOptions):this (FullOpts)
           2 (1.67 % of base) : 19616.dasm - V8.Crypto.BigInteger:copyTo(V8.Crypto.BigInteger):this (FullOpts)
           8 (1.44 % of base) : 915.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:GetConverterForType(System.Type,System.Text.Json.JsonSerializerOptions,ubyte):System.Text.Json.Serialization.JsonConverter (FullOpts)
           9 (1.21 % of base) : 12873.dasm - System.Collections.Immutable.ImmutableSortedSet`1[System.__Canon]:LeafToRootRefill(System.Collections.Generic.IEnumerable`1[System.__Canon]):System.Collections.Immutable.ImmutableSortedSet`1[System.__Canon]:this (FullOpts)
           4 (1.14 % of base) : 2651.dasm - System.Formats.Asn1.AsnWriter:WriteObjectIdentifier(System.ReadOnlySpan`1[ushort],System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this (FullOpts)
          18 (0.89 % of base) : 20791.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ModifierUtils:CheckModifiers(ubyte,ubyte,uint,uint,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Nullable`1[Microsoft.CodeAnalysis.SyntaxTokenList],byref):uint (FullOpts)
           2 (0.89 % of base) : 17096.dasm - System.Text.Json.JsonSerializerOptions:TryGetPolymorphicTypeInfoForRootType(System.Object,byref):ubyte:this (FullOpts)
           9 (0.78 % of base) : 33492.dasm - BenchmarksGame.ReverseComplement_1:Bench(System.IO.Stream,System.IO.Stream) (FullOpts)
          10 (0.76 % of base) : 7769.dasm - System.Net.Http.HttpConnection:ParseStatusLineCore(System.Span`1[ubyte],System.Net.Http.HttpResponseMessage) (FullOpts)
           7 (0.74 % of base) : 19618.dasm - V8.Crypto.BigInteger:squareTo(V8.Crypto.BigInteger):this (FullOpts)
           4 (0.73 % of base) : 1132.dasm - System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver:CreatePropertyInfo(System.Text.Json.Serialization.Metadata.JsonTypeInfo,System.Type,System.Reflection.MemberInfo,System.Text.Json.JsonSerializerOptions,ubyte,ubyte):System.Text.Json.Serialization.Metadata.JsonPropertyInfo (FullOpts)
           3 (0.70 % of base) : 7091.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindStartPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],byref,int,byref,byref):ubyte:this (FullOpts)
           4 (0.70 % of base) : 10994.dasm - BitOps:DoBitfieldIteration(int[],int[],int,byref):long (FullOpts)

Top method improvements (percentages):
         -31 (-32.98 % of base) : 30360.dasm - Span.IndexerBench:SameIndex2():ubyte:this (FullOpts)
         -34 (-30.63 % of base) : 29424.dasm - System.Buffers.Text.Tests.Utf8FormatterTests:FormatterDateTimeOffsetNow(System.DateTimeOffset):ubyte:this (FullOpts)
         -25 (-19.38 % of base) : 2864.dasm - System.Formats.Asn1.AsnDecoder:ReadIntegerBytes(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.ReadOnlySpan`1[ubyte] (FullOpts)
         -21 (-17.50 % of base) : 2332.dasm - System.Formats.Asn1.AsnDecoder:TryReadPrimitiveOctetString(System.ReadOnlySpan`1[ubyte],int,byref,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):ubyte (FullOpts)
         -20 (-16.00 % of base) : 19868.dasm - System.Text.Json.Serialization.Tests.ReadJson`1[MicroBenchmarks.Serializers.SimpleStructWithProperties]:DeserializeFromUtf8Bytes():MicroBenchmarks.Serializers.SimpleStructWithProperties:this (FullOpts)
         -16 (-15.84 % of base) : 33615.dasm - System.Text.Json.Serialization.Tests.ReadJson`1[int]:DeserializeFromUtf8Bytes():int:this (FullOpts)
         -21 (-14.89 % of base) : 2312.dasm - System.Formats.Asn1.AsnDecoder:TryReadInt32(System.ReadOnlySpan`1[ubyte],int,byref,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):ubyte (FullOpts)
         -20 (-14.81 % of base) : 1268.dasm - System.Collections.Generic.List`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:MoveNext():ubyte:this (FullOpts)
         -20 (-14.81 % of base) : 1093.dasm - System.Collections.Generic.List`1+Enumerator[System.Text.Json.Serialization.Metadata.JsonDerivedType]:MoveNext():ubyte:this (FullOpts)
         -87 (-14.01 % of base) : 20751.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NonMissingAssemblySymbol:LookupDeclaredTopLevelMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
         -29 (-13.94 % of base) : 6174.dasm - Microsoft.Extensions.DependencyInjection.ServiceProvider:ReplaceServiceAccessor(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite,System.Func`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope,System.Object]):this (FullOpts)
         -78 (-13.22 % of base) : 28306.dasm - Benchstone.MDBenchF.MDLLoops:Test():ubyte:this (FullOpts)
         -79 (-12.87 % of base) : 2573.dasm - System.Formats.Asn1.AsnDecoder:TryReadOctetString(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):ubyte (FullOpts)
         -16 (-12.50 % of base) : 11420.dasm - System.Diagnostics.ActivityTagsCollection+Enumerator:MoveNext():ubyte:this (FullOpts)
         -21 (-12.14 % of base) : 2319.dasm - System.Formats.Asn1.AsnDecoder:ReadObjectIdentifier(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.String (FullOpts)
         -28 (-11.91 % of base) : 3655.dasm - System.Collections.Generic.Stack`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -37 (-11.90 % of base) : 5548.dasm - System.Text.Json.Node.Tests.Perf_ParseThenWrite:ParseThenWrite():this (FullOpts)
         -10 (-11.63 % of base) : 6157.dasm - System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
         -28 (-11.57 % of base) : 27231.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteValidator:ValidateCallSite(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite):this (FullOpts)
         -30 (-11.36 % of base) : 2518.dasm - System.Formats.Asn1.AsnDecoder:TryReadPrimitiveBitString(System.ReadOnlySpan`1[ubyte],int,byref,byref,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):ubyte (FullOpts)


benchmarks.run_pgo.linux.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 68635056 (overridden on cmd)
Total bytes of diff: 68600071 (overridden on cmd)
Total bytes of delta: -34985 (-0.05 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          15 : 92532.dasm (0.32 % of base)
          13 : 90805.dasm (2.49 % of base)
          11 : 58148.dasm (0.44 % of base)
          11 : 83371.dasm (0.52 % of base)
          11 : 85071.dasm (0.32 % of base)
          11 : 86023.dasm (0.69 % of base)
          11 : 89008.dasm (0.69 % of base)
          11 : 89636.dasm (0.46 % of base)
          11 : 14030.dasm (0.61 % of base)
          11 : 14376.dasm (0.10 % of base)
          11 : 17932.dasm (0.44 % of base)
          11 : 18622.dasm (0.77 % of base)
          11 : 2914.dasm (0.61 % of base)
          11 : 89680.dasm (0.32 % of base)
          11 : 90814.dasm (0.25 % of base)
          11 : 90885.dasm (0.69 % of base)
          11 : 91065.dasm (0.28 % of base)
          11 : 97766.dasm (0.98 % of base)
          11 : 84584.dasm (0.97 % of base)
          11 : 86967.dasm (0.28 % of base)

Top file improvements (bytes):
        -504 : 28300.dasm (-2.52 % of base)
        -385 : 84323.dasm (-6.97 % of base)
        -324 : 37004.dasm (-4.89 % of base)
        -301 : 34586.dasm (-4.51 % of base)
        -295 : 20142.dasm (-6.76 % of base)
        -295 : 32863.dasm (-6.76 % of base)
        -288 : 83962.dasm (-2.83 % of base)
        -280 : 32883.dasm (-7.32 % of base)
        -258 : 90006.dasm (-4.72 % of base)
        -258 : 86373.dasm (-4.72 % of base)
        -252 : 36428.dasm (-8.85 % of base)
        -252 : 152951.dasm (-8.42 % of base)
        -252 : 32769.dasm (-10.68 % of base)
        -239 : 152849.dasm (-9.77 % of base)
        -235 : 20124.dasm (-8.03 % of base)
        -209 : 113029.dasm (-5.20 % of base)
        -207 : 42178.dasm (-5.86 % of base)
        -207 : 95190.dasm (-5.86 % of base)
        -202 : 88460.dasm (-3.77 % of base)
        -191 : 37141.dasm (-0.72 % of base)

85 total files with Code Size differences (52 improved, 33 regressed), 20 unchanged.

Top method regressions (bytes):
          15 (0.32 % of base) : 92532.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (Tier1)
          13 (2.49 % of base) : 90805.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetParameters(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol] (Instrumented Tier0)
          11 (0.28 % of base) : 91065.dasm - Microsoft.Cci.MetadataWriter:PopulateMethodSemanticsTableRows():this (Instrumented Tier0)
          11 (0.28 % of base) : 86967.dasm - Microsoft.Cci.MetadataWriter:PopulateMethodSemanticsTableRows():this (Instrumented Tier0)
          11 (0.46 % of base) : 89636.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindStatement(Microsoft.CodeAnalysis.CSharp.Syntax.StatementSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (Instrumented Tier0)
          11 (0.32 % of base) : 85071.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindToNaturalType(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Instrumented Tier0)
          11 (0.32 % of base) : 89680.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindToNaturalType(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Instrumented Tier0)
          11 (0.69 % of base) : 86023.dasm - Microsoft.CodeAnalysis.CSharp.DocumentationCommentCompiler:WriteDocumentationCommentXml(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.String,System.IO.Stream,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken,Microsoft.CodeAnalysis.SyntaxTree,System.Nullable`1[Microsoft.CodeAnalysis.Text.TextSpan]) (Instrumented Tier0)
          11 (0.69 % of base) : 90885.dasm - Microsoft.CodeAnalysis.CSharp.DocumentationCommentCompiler:WriteDocumentationCommentXml(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.String,System.IO.Stream,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken,Microsoft.CodeAnalysis.SyntaxTree,System.Nullable`1[Microsoft.CodeAnalysis.Text.TextSpan]) (Instrumented Tier0)
          11 (0.25 % of base) : 90814.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:InterceptCallAndAdjustArguments(byref,byref,byref,byref,ubyte,Microsoft.CodeAnalysis.Location):this (Instrumented Tier0)
          11 (0.69 % of base) : 89008.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEFieldSymbol:EnsureSignatureIsLoaded():this (Instrumented Tier0)
          11 (0.52 % of base) : 83371.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:IsTupleTypeOfCardinality(byref):ubyte:this (Instrumented Tier0)
          11 (0.52 % of base) : 87632.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:IsTupleTypeOfCardinality(byref):ubyte:this (Instrumented Tier0)
          11 (0.97 % of base) : 84584.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckTypeParameterNameConflicts(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Instrumented Tier0)
          11 (0.98 % of base) : 97766.dasm - Microsoft.CodeAnalysis.CSharp.WithPrimaryConstructorParametersBinder:LookupSymbolsInSingleBinder(Microsoft.CodeAnalysis.CSharp.LookupResult,System.String,int,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],int,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,byref):this (Instrumented Tier0)
          11 (0.44 % of base) : 58148.dasm - Microsoft.Extensions.Configuration.ConfigurationBinder:BindDictionary(System.Object,System.Type,Microsoft.Extensions.Configuration.IConfiguration,Microsoft.Extensions.Configuration.BinderOptions) (Instrumented Tier0)
          11 (0.77 % of base) : 18622.dasm - Sigil.Emit`1[System.__Canon]:LoadLocal(Sigil.Local):Sigil.Emit`1[System.__Canon]:this (Instrumented Tier0)
          11 (0.44 % of base) : 17932.dasm - Sigil.NonGeneric.Emit:ValidateDelegateType(System.Type):this (Instrumented Tier0)
          11 (0.10 % of base) : 14376.dasm - System.Net.Http.HttpConnection+<SendAsync>d__57:MoveNext():this (Instrumented Tier0)
          11 (0.61 % of base) : 14030.dasm - System.Reflection.CustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,ubyte):System.Object[] (Instrumented Tier0)

Top method improvements (bytes):
        -504 (-2.52 % of base) : 28300.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (Instrumented Tier0)
        -385 (-6.97 % of base) : 84323.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckMembersAgainstBaseType(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):this (Instrumented Tier0)
        -324 (-4.89 % of base) : 37004.dasm - System.Xml.Serialization.TypeScope:ImportTypeDesc(System.Type,System.Reflection.MemberInfo,ubyte):System.Xml.Serialization.TypeDesc:this (Instrumented Tier0)
        -301 (-4.51 % of base) : 34586.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper:ImportDataMembers():this (Instrumented Tier0)
        -295 (-6.76 % of base) : 20142.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenNoLock(System.Reflection.MethodInfo,ubyte):int:this (Instrumented Tier0)
        -295 (-6.76 % of base) : 32863.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenNoLock(System.Reflection.MethodInfo,ubyte):int:this (Instrumented Tier0)
        -288 (-2.83 % of base) : 83962.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Instrumented Tier0)
        -280 (-7.32 % of base) : 32883.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetFieldTokenNoLock(System.Reflection.FieldInfo):int:this (Instrumented Tier0)
        -258 (-4.72 % of base) : 90006.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol+<Microsoft-Cci-ITypeDefinition-GetExplicitImplementationOverrides>d__30:MoveNext():ubyte:this (Instrumented Tier0)
        -258 (-4.72 % of base) : 86373.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol+<Microsoft-Cci-ITypeDefinition-GetExplicitImplementationOverrides>d__30:MoveNext():ubyte:this (Instrumented Tier0)
        -252 (-8.42 % of base) : 152951.dasm - Newtonsoft.Json.Serialization.JsonSerializerInternalWriter:SerializeValue(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.Serialization.JsonContract,Newtonsoft.Json.Serialization.JsonProperty,Newtonsoft.Json.Serialization.JsonContainerContract,Newtonsoft.Json.Serialization.JsonProperty):this (Instrumented Tier0)
        -252 (-10.68 % of base) : 32769.dasm - System.Linq.Expressions.Expression:Call(System.Linq.Expressions.Expression,System.Reflection.MethodInfo,System.Collections.Generic.IEnumerable`1[System.Linq.Expressions.Expression]):System.Linq.Expressions.MethodCallExpression (Instrumented Tier0)
        -252 (-8.85 % of base) : 36428.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract:RequiresMemberAccessForRead(System.Security.SecurityException):ubyte:this (Instrumented Tier0)
        -239 (-9.77 % of base) : 152849.dasm - Newtonsoft.Json.Serialization.DefaultContractResolver:IsValidCallback(System.Reflection.MethodInfo,System.Reflection.ParameterInfo[],System.Type,System.Reflection.MethodInfo,byref):ubyte (Instrumented Tier0)
        -235 (-8.03 % of base) : 20124.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodMetadataToken(System.Reflection.ConstructorInfo):int:this (Instrumented Tier0)
        -209 (-5.20 % of base) : 113029.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (Instrumented Tier0)
        -207 (-5.86 % of base) : 42178.dasm - System.Xml.Linq.XContainer+ContentReader:ReadContentFrom(System.Xml.Linq.XContainer,System.Xml.XmlReader):ubyte:this (Instrumented Tier0)
        -207 (-5.86 % of base) : 95190.dasm - System.Xml.Linq.XContainer+ContentReader:ReadContentFrom(System.Xml.Linq.XContainer,System.Xml.XmlReader):ubyte:this (Instrumented Tier0)
        -202 (-3.77 % of base) : 88460.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__createConversion|210_0(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Instrumented Tier0)
        -191 (-0.72 % of base) : 37141.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportAccessorMapping(System.Xml.Serialization.MemberMapping,System.Xml.Serialization.FieldModel,System.Xml.Serialization.XmlAttributes,System.String,System.Type,ubyte,ubyte,System.Xml.Serialization.RecursionLimiter):this (Instrumented Tier0)

Top method regressions (percentages):
           8 (4.28 % of base) : 82807.dasm - System.Reflection.PortableExecutable.PEBinaryReader:.ctor(System.IO.Stream,int):this (Instrumented Tier0)
          13 (2.49 % of base) : 90805.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetParameters(Microsoft.CodeAnalysis.CSharp.Symbol):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol] (Instrumented Tier0)
           7 (2.21 % of base) : 1053.dasm - System.Runtime.InteropServices.Marshalling.Utf8StringMarshaller+ManagedToUnmanagedIn:FromManaged(System.String,System.Span`1[ubyte]):this (Tier0)
           8 (1.53 % of base) : 119984.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindStartPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],byref,int,byref,byref):ubyte:this (Tier1-OSR)
           4 (1.48 % of base) : 18920.dasm - System.Linq.Enumerable+SelectArrayIterator`2[short,System.Collections.NotKnownComparable]:Fill(System.ReadOnlySpan`1[short],System.Span`1[System.Collections.NotKnownComparable],System.Func`2[short,System.Collections.NotKnownComparable]) (Instrumented Tier0)
           6 (1.41 % of base) : 47395.dasm - System.Linq.Enumerable+WhereSelectArrayIterator`2[int,int]:MoveNext():ubyte:this (Instrumented Tier0)
           5 (1.30 % of base) : 16479.dasm - System.Reflection.Emit.DynamicResolver:Finalize():this (Instrumented Tier0)
           6 (1.29 % of base) : 89887.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions:GetParameterCount(Microsoft.CodeAnalysis.CSharp.Symbol):int (Instrumented Tier0)
           3 (1.17 % of base) : 93219.dasm - Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode:GetLeadingTrivia():Microsoft.CodeAnalysis.SyntaxTriviaList:this (Tier1)
           4 (1.02 % of base) : 26098.dasm - System.Runtime.Serialization.CodeGenerator:InitILGeneration(System.Type[]):this (Instrumented Tier0)
          11 (0.98 % of base) : 97766.dasm - Microsoft.CodeAnalysis.CSharp.WithPrimaryConstructorParametersBinder:LookupSymbolsInSingleBinder(Microsoft.CodeAnalysis.CSharp.LookupResult,System.String,int,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],int,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,byref):this (Instrumented Tier0)
          11 (0.97 % of base) : 84584.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckTypeParameterNameConflicts(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Instrumented Tier0)
          11 (0.77 % of base) : 18622.dasm - Sigil.Emit`1[System.__Canon]:LoadLocal(Sigil.Local):Sigil.Emit`1[System.__Canon]:this (Instrumented Tier0)
           2 (0.70 % of base) : 98155.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetGlobalAnnotationState():ubyte:this (Instrumented Tier0)
          11 (0.69 % of base) : 86023.dasm - Microsoft.CodeAnalysis.CSharp.DocumentationCommentCompiler:WriteDocumentationCommentXml(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.String,System.IO.Stream,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken,Microsoft.CodeAnalysis.SyntaxTree,System.Nullable`1[Microsoft.CodeAnalysis.Text.TextSpan]) (Instrumented Tier0)
          11 (0.69 % of base) : 90885.dasm - Microsoft.CodeAnalysis.CSharp.DocumentationCommentCompiler:WriteDocumentationCommentXml(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,System.String,System.IO.Stream,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken,Microsoft.CodeAnalysis.SyntaxTree,System.Nullable`1[Microsoft.CodeAnalysis.Text.TextSpan]) (Instrumented Tier0)
          11 (0.69 % of base) : 89008.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEFieldSymbol:EnsureSignatureIsLoaded():this (Instrumented Tier0)
           5 (0.64 % of base) : 45618.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindEndPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+InitialStateFindOptimizationsHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],int,int,byref,byref,byref,byref,byref,byref):ubyte:this (Tier1-OSR)
           4 (0.63 % of base) : 125606.dasm - BenchmarksGame.KNucleotide_1:Bench(System.IO.Stream,BenchmarksGame.NucleotideHelpers,ubyte):ubyte (Tier1-OSR)
          11 (0.61 % of base) : 14030.dasm - System.Reflection.CustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,ubyte):System.Object[] (Instrumented Tier0)

Top method improvements (percentages):
         -52 (-29.21 % of base) : 107103.dasm - System.Numerics.Tests.Perf_Matrix4x4:TransformBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -31 (-27.93 % of base) : 19077.dasm - System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Instrumented Tier0)
         -31 (-27.93 % of base) : 19031.dasm - System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Tier0)
         -35 (-20.35 % of base) : 90772.dasm - Microsoft.CodeAnalysis.CSharp.AccessCheck:IsSymbolAccessible(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):ubyte (Instrumented Tier0)
         -14 (-17.95 % of base) : 69988.dasm - System.Numerics.Tests.Perf_Matrix4x4:CreateFromQuaternionBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -14 (-17.95 % of base) : 134891.dasm - System.Numerics.Tests.Perf_Matrix4x4:CreateScaleFromVectorBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -14 (-17.95 % of base) : 41045.dasm - System.Numerics.Tests.Perf_Matrix4x4:CreateTranslationFromVectorBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -14 (-17.07 % of base) : 124761.dasm - System.Numerics.Tests.Perf_Matrix4x4:CreateRotationXWithCenterBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -14 (-17.07 % of base) : 26529.dasm - System.Numerics.Tests.Perf_Matrix4x4:CreateRotationYWithCenterBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -14 (-17.07 % of base) : 144644.dasm - System.Numerics.Tests.Perf_Matrix4x4:CreateScaleFromScalarWithCenterBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -14 (-16.28 % of base) : 68838.dasm - System.Numerics.Tests.Perf_Matrix4x4:CreateFromAxisAngleBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -24 (-15.48 % of base) : 41359.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.Text.RegularExpressions.RegexCache+Key,System.__Canon]:TryAdd(System.Text.RegularExpressions.RegexCache+Key,System.__Canon):ubyte:this (Tier1)
        -138 (-15.33 % of base) : 120637.dasm - Benchstone.MDBenchF.MDLLoops:Test():ubyte:this (Instrumented Tier0)
         -79 (-15.08 % of base) : 83760.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.ValueTuple`2[System.__Canon,int],System.__Canon]:GetOrAdd(System.ValueTuple`2[System.__Canon,int],System.Func`2[System.ValueTuple`2[System.__Canon,int],System.__Canon]):System.__Canon:this (Instrumented Tier0)
        -104 (-14.99 % of base) : 78805.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon],System.__Canon]:GetOrAdd[System.__Canon](System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon],System.Func`3[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon],System.__Canon,System.__Canon],System.__Canon):System.__Canon:this (Instrumented Tier0)
         -26 (-14.86 % of base) : 46078.dasm - System.Formats.Asn1.AsnValueReader:ThrowIfNotEmpty():this (Tier1)
         -26 (-14.86 % of base) : 22043.dasm - System.Formats.Asn1.AsnValueReader:ThrowIfNotEmpty():this (Tier1)
         -26 (-14.86 % of base) : 93749.dasm - System.Formats.Asn1.AsnValueReader:ThrowIfNotEmpty():this (Tier1)
         -26 (-14.86 % of base) : 54541.dasm - System.Formats.Asn1.AsnValueReader:ThrowIfNotEmpty():this (Tier1)
         -26 (-14.86 % of base) : 121765.dasm - System.Formats.Asn1.AsnValueReader:ThrowIfNotEmpty():this (Tier1)


benchmarks.run_tiered.linux.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 17373152 (overridden on cmd)
Total bytes of diff: 17371045 (overridden on cmd)
Total bytes of delta: -2107 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          52 : 4291.dasm (6.21 % of base)
          25 : 50434.dasm (0.47 % of base)
          18 : 51035.dasm (0.89 % of base)
          13 : 50977.dasm (0.56 % of base)
           7 : 913.dasm (2.21 % of base)
           6 : 20636.dasm (3.33 % of base)
           6 : 51171.dasm (0.10 % of base)
           4 : 24649.dasm (0.70 % of base)
           4 : 32383.dasm (1.14 % of base)
           3 : 53657.dasm (0.65 % of base)
           3 : 32933.dasm (0.54 % of base)
           3 : 50377.dasm (0.06 % of base)
           3 : 52323.dasm (0.32 % of base)
           3 : 50804.dasm (0.22 % of base)
           2 : 5478.dasm (0.52 % of base)
           1 : 18856.dasm (0.10 % of base)
           1 : 47926.dasm (0.24 % of base)
           1 : 51174.dasm (0.03 % of base)
           1 : 3998.dasm (0.29 % of base)
           1 : 50421.dasm (0.03 % of base)

Top file improvements (bytes):
        -138 : 53957.dasm (-15.86 % of base)
         -87 : 47715.dasm (-14.01 % of base)
         -84 : 15557.dasm (-7.06 % of base)
         -81 : 48551.dasm (-16.07 % of base)
         -79 : 32428.dasm (-12.87 % of base)
         -72 : 30405.dasm (-9.84 % of base)
         -62 : 15552.dasm (-3.04 % of base)
         -55 : 48552.dasm (-11.55 % of base)
         -52 : 52120.dasm (-29.21 % of base)
         -50 : 21898.dasm (-0.59 % of base)
         -49 : 48882.dasm (-9.02 % of base)
         -47 : 17745.dasm (-10.88 % of base)
         -43 : 21660.dasm (-4.46 % of base)
         -43 : 14960.dasm (-4.36 % of base)
         -40 : 21662.dasm (-3.00 % of base)
         -40 : 14968.dasm (-3.28 % of base)
         -36 : 6408.dasm (-1.72 % of base)
         -36 : 15531.dasm (-1.72 % of base)
         -31 : 6706.dasm (-27.93 % of base)
         -31 : 53384.dasm (-12.11 % of base)

59 total files with Code Size differences (38 improved, 21 regressed), 20 unchanged.

Top method regressions (bytes):
          52 (6.21 % of base) : 4291.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
          25 (0.47 % of base) : 50434.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (Tier1)
          18 (0.89 % of base) : 51035.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ModifierUtils:CheckModifiers(ubyte,ubyte,uint,uint,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Nullable`1[Microsoft.CodeAnalysis.SyntaxTokenList],byref):uint (Tier1)
          13 (0.56 % of base) : 50977.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ModifierUtils:ToDeclarationModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,ubyte,Microsoft.CodeAnalysis.DiagnosticBag,ubyte):uint (Tier1)
           7 (2.21 % of base) : 913.dasm - System.Runtime.InteropServices.Marshalling.Utf8StringMarshaller+ManagedToUnmanagedIn:FromManaged(System.String,System.Span`1[ubyte]):this (Tier0)
           6 (0.10 % of base) : 51171.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier1)
           6 (3.33 % of base) : 20636.dasm - Newtonsoft.Json.JsonReader:Pop():int:this (Tier1)
           4 (0.70 % of base) : 24649.dasm - BitOps:DoBitfieldIteration(int[],int[],int,byref):long (Tier1)
           4 (1.14 % of base) : 32383.dasm - System.Formats.Asn1.AsnWriter:WriteObjectIdentifier(System.ReadOnlySpan`1[ushort],System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this (Tier1)
           3 (0.06 % of base) : 50377.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindNamespaceOrTypeOrAliasSymbol(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],ubyte):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations:this (Tier1)
           3 (0.22 % of base) : 50804.dasm - Microsoft.CodeAnalysis.CSharp.ControlFlowPass:RemoveReturns():System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2+PendingBranch[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalFunctionState]]:this (Tier1)
           3 (0.32 % of base) : 52323.dasm - System.Collections.Hashtable:Insert(System.Object,System.Object,ubyte):this (Tier1)
           3 (0.65 % of base) : 53657.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindStartPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],byref,int,byref,byref):ubyte:this (Tier1-OSR)
           3 (0.54 % of base) : 32933.dasm - System.TimeZoneInfo:GetUtcOffsetFromUtc(System.DateTime,System.TimeZoneInfo,byref,byref):System.TimeSpan (Tier1)
           2 (0.52 % of base) : 5478.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:Open(System.String,int,int,ubyte,byref,System.Func`4[Interop+ErrorInfo,int,System.String,System.Exception]):Microsoft.Win32.SafeHandles.SafeFileHandle (Tier1)
           1 (0.03 % of base) : 50421.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindDeclarationStatementParts(Microsoft.CodeAnalysis.CSharp.Syntax.LocalDeclarationStatementSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (Tier1)
           1 (0.03 % of base) : 51174.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindToNaturalType(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
           1 (0.18 % of base) : 51138.dasm - Microsoft.CodeAnalysis.CSharp.Binder:ReportDiagnosticsIfObsoleteInternal(Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.SyntaxNodeOrToken,Microsoft.CodeAnalysis.CSharp.Symbol,uint):int (Tier1)
           1 (0.24 % of base) : 47926.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ModifierUtils:ReportDuplicateModifiers(Microsoft.CodeAnalysis.SyntaxToken,uint,uint,byref,Microsoft.CodeAnalysis.DiagnosticBag) (Tier1)
           1 (0.29 % of base) : 3998.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:GetOrAdd(System.__Canon,System.Func`2[System.__Canon,System.__Canon]):System.__Canon:this (Tier1)

Top method improvements (bytes):
        -138 (-15.86 % of base) : 53957.dasm - Benchstone.MDBenchF.MDLLoops:Test():ubyte:this (Tier0)
         -87 (-14.01 % of base) : 47715.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NonMissingAssemblySymbol:LookupDeclaredTopLevelMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier1)
         -84 (-7.06 % of base) : 15557.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMemberRefToken(System.Reflection.MethodBase,System.Type[]):int:this (Tier1)
         -81 (-16.07 % of base) : 48551.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NonMissingAssemblySymbol:CacheTopLevelMetadataType(byref,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier1)
         -79 (-12.87 % of base) : 32428.dasm - System.Formats.Asn1.AsnDecoder:TryReadOctetString(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):ubyte (Tier1)
         -72 (-9.84 % of base) : 30405.dasm - AssignRect:Run():double:this (Tier0)
         -62 (-3.04 % of base) : 15552.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetFieldTokenNoLock(System.Reflection.FieldInfo):int:this (Tier1)
         -55 (-11.55 % of base) : 48552.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[Microsoft.CodeAnalysis.MetadataTypeName+Key,System.__Canon]:GetOrAdd(Microsoft.CodeAnalysis.MetadataTypeName+Key,System.__Canon):System.__Canon:this (Tier1)
         -52 (-29.21 % of base) : 52120.dasm - System.Numerics.Tests.Perf_Matrix4x4:TransformBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -50 (-0.59 % of base) : 21898.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier1)
         -49 (-9.02 % of base) : 48882.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (Tier1)
         -47 (-10.88 % of base) : 17745.dasm - System.Formats.Asn1.AsnDecoder:ReadEncodedValue(System.ReadOnlySpan`1[ubyte],int,byref,byref,byref):System.Formats.Asn1.Asn1Tag (Tier1)
         -43 (-4.46 % of base) : 21660.dasm - System.Text.Encoding:GetBytesWithFallback(ulong,int,ulong,int,int,int,System.Text.EncoderNLS):int:this (Tier0)
         -43 (-4.36 % of base) : 14960.dasm - System.Text.Encoding:GetCharsWithFallback(ulong,int,ulong,int,int,int,System.Text.DecoderNLS):int:this (Tier0)
         -40 (-3.00 % of base) : 21662.dasm - System.Text.Encoding:GetBytesWithFallback(System.ReadOnlySpan`1[ushort],int,System.Span`1[ubyte],int,System.Text.EncoderNLS,ubyte):int:this (Tier0)
         -40 (-3.28 % of base) : 14968.dasm - System.Text.Encoding:GetCharsWithFallback(System.ReadOnlySpan`1[ubyte],int,System.Span`1[ushort],int,System.Text.DecoderNLS,ubyte):int:this (Tier0)
         -36 (-1.72 % of base) : 6408.dasm - System.Buffers.SharedArrayPool`1[System.__Canon]:Trim():ubyte:this (Tier0)
         -36 (-1.72 % of base) : 15531.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenNoLock(System.Reflection.MethodInfo,ubyte):int:this (Tier1)
         -31 (-12.11 % of base) : 53384.dasm - Benchstone.MDBenchF.MDInProd:InitMatrix(double[,]) (Tier0)
         -31 (-27.93 % of base) : 6706.dasm - System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Tier0)

Top method regressions (percentages):
          52 (6.21 % of base) : 4291.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
           6 (3.33 % of base) : 20636.dasm - Newtonsoft.Json.JsonReader:Pop():int:this (Tier1)
           7 (2.21 % of base) : 913.dasm - System.Runtime.InteropServices.Marshalling.Utf8StringMarshaller+ManagedToUnmanagedIn:FromManaged(System.String,System.Span`1[ubyte]):this (Tier0)
           4 (1.14 % of base) : 32383.dasm - System.Formats.Asn1.AsnWriter:WriteObjectIdentifier(System.ReadOnlySpan`1[ushort],System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this (Tier1)
          18 (0.89 % of base) : 51035.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ModifierUtils:CheckModifiers(ubyte,ubyte,uint,uint,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Nullable`1[Microsoft.CodeAnalysis.SyntaxTokenList],byref):uint (Tier1)
           4 (0.70 % of base) : 24649.dasm - BitOps:DoBitfieldIteration(int[],int[],int,byref):long (Tier1)
           3 (0.65 % of base) : 53657.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindStartPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],byref,int,byref,byref):ubyte:this (Tier1-OSR)
          13 (0.56 % of base) : 50977.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ModifierUtils:ToDeclarationModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,ubyte,Microsoft.CodeAnalysis.DiagnosticBag,ubyte):uint (Tier1)
           3 (0.54 % of base) : 32933.dasm - System.TimeZoneInfo:GetUtcOffsetFromUtc(System.DateTime,System.TimeZoneInfo,byref,byref):System.TimeSpan (Tier1)
           2 (0.52 % of base) : 5478.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:Open(System.String,int,int,ubyte,byref,System.Func`4[Interop+ErrorInfo,int,System.String,System.Exception]):Microsoft.Win32.SafeHandles.SafeFileHandle (Tier1)
          25 (0.47 % of base) : 50434.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (Tier1)
           3 (0.32 % of base) : 52323.dasm - System.Collections.Hashtable:Insert(System.Object,System.Object,ubyte):this (Tier1)
           1 (0.29 % of base) : 3998.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:GetOrAdd(System.__Canon,System.Func`2[System.__Canon,System.__Canon]):System.__Canon:this (Tier1)
           1 (0.24 % of base) : 47926.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ModifierUtils:ReportDuplicateModifiers(Microsoft.CodeAnalysis.SyntaxToken,uint,uint,byref,Microsoft.CodeAnalysis.DiagnosticBag) (Tier1)
           3 (0.22 % of base) : 50804.dasm - Microsoft.CodeAnalysis.CSharp.ControlFlowPass:RemoveReturns():System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2+PendingBranch[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalFunctionState]]:this (Tier1)
           1 (0.18 % of base) : 51138.dasm - Microsoft.CodeAnalysis.CSharp.Binder:ReportDiagnosticsIfObsoleteInternal(Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.SyntaxNodeOrToken,Microsoft.CodeAnalysis.CSharp.Symbol,uint):int (Tier1)
           1 (0.10 % of base) : 18856.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (Tier1)
           6 (0.10 % of base) : 51171.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier1)
           3 (0.06 % of base) : 50377.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindNamespaceOrTypeOrAliasSymbol(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],ubyte):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations:this (Tier1)
           1 (0.03 % of base) : 50421.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindDeclarationStatementParts(Microsoft.CodeAnalysis.CSharp.Syntax.LocalDeclarationStatementSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (Tier1)

Top method improvements (percentages):
         -52 (-29.21 % of base) : 52120.dasm - System.Numerics.Tests.Perf_Matrix4x4:TransformBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -31 (-27.93 % of base) : 6706.dasm - System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Tier0)
         -25 (-19.38 % of base) : 32685.dasm - System.Formats.Asn1.AsnDecoder:ReadIntegerBytes(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.ReadOnlySpan`1[ubyte] (Tier1)
         -14 (-17.95 % of base) : 37480.dasm - System.Numerics.Tests.Perf_Matrix4x4:CreateFromQuaternionBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -14 (-17.95 % of base) : 55121.dasm - System.Numerics.Tests.Perf_Matrix4x4:CreateScaleFromVectorBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -14 (-17.95 % of base) : 27873.dasm - System.Numerics.Tests.Perf_Matrix4x4:CreateTranslationFromVectorBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -21 (-17.50 % of base) : 17787.dasm - System.Formats.Asn1.AsnDecoder:TryReadPrimitiveOctetString(System.ReadOnlySpan`1[ubyte],int,byref,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):ubyte (Tier1)
         -14 (-17.07 % of base) : 54319.dasm - System.Numerics.Tests.Perf_Matrix4x4:CreateRotationXWithCenterBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -14 (-17.07 % of base) : 19708.dasm - System.Numerics.Tests.Perf_Matrix4x4:CreateRotationYWithCenterBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -14 (-17.07 % of base) : 56050.dasm - System.Numerics.Tests.Perf_Matrix4x4:CreateScaleFromScalarWithCenterBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -20 (-16.39 % of base) : 1396.dasm - System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (Tier1)
         -14 (-16.28 % of base) : 36202.dasm - System.Numerics.Tests.Perf_Matrix4x4:CreateFromAxisAngleBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -81 (-16.07 % of base) : 48551.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NonMissingAssemblySymbol:CacheTopLevelMetadataType(byref,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier1)
        -138 (-15.86 % of base) : 53957.dasm - Benchstone.MDBenchF.MDLLoops:Test():ubyte:this (Tier0)
         -21 (-14.89 % of base) : 17847.dasm - System.Formats.Asn1.AsnDecoder:TryReadInt32(System.ReadOnlySpan`1[ubyte],int,byref,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):ubyte (Tier1)
         -14 (-14.43 % of base) : 55497.dasm - System.Numerics.Tests.Perf_Matrix4x4:CreateScaleFromVectorWithCenterBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -14 (-14.29 % of base) : 58276.dasm - System.Numerics.Tests.Perf_Matrix4x4:CreateScaleFromScalarXYZBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -87 (-14.01 % of base) : 47715.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NonMissingAssemblySymbol:LookupDeclaredTopLevelMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier1)
         -14 (-13.08 % of base) : 19470.dasm - Benchstone.MDBenchI.MDAddArray2:.ctor():this (Tier0)
         -14 (-13.08 % of base) : 24376.dasm - Benchstone.MDBenchI.MDXposMatrix:.ctor():this (Tier0)


coreclr_tests.run.linux.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 459551078 (overridden on cmd)
Total bytes of diff: 459172482 (overridden on cmd)
Total bytes of delta: -378596 (-0.08 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         100 : 421274.dasm (8.03 % of base)
          89 : 416995.dasm (5.83 % of base)
          55 : 590177.dasm (3.46 % of base)
          52 : 573289.dasm (2.98 % of base)
          52 : 606726.dasm (3.46 % of base)
          48 : 607904.dasm (4.74 % of base)
          44 : 635116.dasm (1.08 % of base)
          39 : 596124.dasm (0.35 % of base)
          36 : 604389.dasm (5.49 % of base)
          33 : 606793.dasm (5.64 % of base)
          27 : 404439.dasm (0.42 % of base)
          27 : 406706.dasm (0.42 % of base)
          26 : 311785.dasm (1.44 % of base)
          25 : 596112.dasm (0.46 % of base)
          25 : 416758.dasm (0.42 % of base)
          18 : 593491.dasm (0.89 % of base)
          17 : 421120.dasm (0.26 % of base)
          17 : 692925.dasm (0.22 % of base)
          16 : 634599.dasm (5.80 % of base)
          16 : 606971.dasm (4.44 % of base)

Top file improvements (bytes):
        -733 : 295728.dasm (-1.98 % of base)
        -513 : 446995.dasm (-19.69 % of base)
        -385 : 232273.dasm (-6.97 % of base)
        -375 : 604691.dasm (-16.33 % of base)
        -364 : 592302.dasm (-10.04 % of base)
        -333 : 605344.dasm (-20.40 % of base)
        -325 : 412004.dasm (-5.75 % of base)
        -325 : 414285.dasm (-5.75 % of base)
        -319 : 604617.dasm (-17.60 % of base)
        -317 : 604736.dasm (-12.14 % of base)
        -308 : 690536.dasm (-6.54 % of base)
        -301 : 237642.dasm (-4.51 % of base)
        -300 : 606085.dasm (-15.35 % of base)
        -294 : 605522.dasm (-10.00 % of base)
        -293 : 604660.dasm (-11.05 % of base)
        -288 : 231888.dasm (-2.83 % of base)
        -282 : 605765.dasm (-11.50 % of base)
        -282 : 605409.dasm (-19.83 % of base)
        -276 : 604397.dasm (-23.90 % of base)
        -272 : 606186.dasm (-13.70 % of base)

90 total files with Code Size differences (59 improved, 31 regressed), 20 unchanged.

Top method regressions (bytes):
         100 (8.03 % of base) : 421274.dasm - Internal.JitInterface.CorInfoImpl:GetHelperFtnUncached(int):ILCompiler.DependencyAnalysis.ISymbolNode:this (Tier1)
          89 (5.83 % of base) : 416995.dasm - Internal.JitInterface.CorInfoImpl:GetHelperFtnUncached(int):ILCompiler.DependencyAnalysis.ISymbolNode:this (Tier1)
          55 (3.46 % of base) : 590177.dasm - V8.Crypto.BigInteger:modPow(V8.Crypto.BigInteger,V8.Crypto.BigInteger):V8.Crypto.BigInteger:this (FullOpts)
          52 (3.46 % of base) : 606726.dasm - (dynamicClass):ABIStress_TailCaller280(short,ubyte,ubyte,ABIStress.S31U,ABIStress.S16U,ABIStress.S32U,ABIStress.S15U,ABIStress.S31U,ABIStress.S3U,ABIStress.S8U,ABIStress.S8U,short,ABIStress.S17U,ABIStress.S2U,ABIStress.S31U,ABIStress.S17U,ABIStress.S8P,double,ubyte,ABIStress.S31U,System.Int128,System.Int128):int (FullOpts)
          52 (2.98 % of base) : 573289.dasm - ComWrappersTests.Program:ValidateComInterfaceCreation():this (FullOpts)
          48 (4.74 % of base) : 607904.dasm - (dynamicClass):ABIStress_TailCaller951(ABIStress.S16U,short,ABIStress.S13U,ABIStress.I128_2,ABIStress.S31U,ABIStress.S16U,ABIStress.S6U,System.Numerics.Vector`1[int],ABIStress.S5U,ABIStress.S9U,ABIStress.S2U,float,ABIStress.S13U,int,ABIStress.S3U,ABIStress.S17U,ABIStress.S10U,ABIStress.S16U):int (FullOpts)
          44 (1.08 % of base) : 635116.dasm - System.Xml.Xsl.IlGen.XmlILOptimizerVisitor:VisitEq(System.Xml.Xsl.Qil.QilBinary):System.Xml.Xsl.Qil.QilNode:this (FullOpts)
          39 (0.35 % of base) : 596124.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
          36 (5.49 % of base) : 604389.dasm - (dynamicClass):ABIStress_PInvoker30(ABIStress.S13U,ABIStress.S12U,ABIStress.S5U,ABIStress.S9U,System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S7U,ABIStress.S32U,double):int[] (FullOpts)
          33 (5.64 % of base) : 606793.dasm - (dynamicClass):ABIStress_TailCaller319(ABIStress.S32U,ABIStress.S17U,ABIStress.S2P,short,float,ABIStress.S8P,ubyte,ABIStress.S12U,ABIStress.S8P,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S8U,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S1P,ABIStress.S6U,int,System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S2U,ABIStress.S9U,ABIStress.S12U,ABIStress.S15U,ABIStress.S1P,ubyte,short,ABIStress.S32U,ABIStress.I128_2):int (FullOpts)
          27 (0.42 % of base) : 404439.dasm - ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayoutMap:CreateValueFromKey(Internal.TypeSystem.Ecma.EcmaModule):ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayout:this (Tier1-OSR)
          27 (0.42 % of base) : 406706.dasm - ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayoutMap:CreateValueFromKey(Internal.TypeSystem.Ecma.EcmaModule):ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayout:this (Tier1-OSR)
          26 (1.44 % of base) : 311785.dasm - test89834:ValidateExceptionStackFrame(System.Exception):int (Instrumented Tier0)
          25 (0.46 % of base) : 596112.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (FullOpts)
          25 (0.42 % of base) : 416758.dasm - System.Collections.Generic.ArraySortHelper`1[System.__Canon]:PickPivotAndPartition(System.Span`1[System.__Canon],System.Comparison`1[System.__Canon]):int (Tier1)
          18 (0.89 % of base) : 593491.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ModifierUtils:CheckModifiers(ubyte,ubyte,uint,uint,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Nullable`1[Microsoft.CodeAnalysis.SyntaxTokenList],byref):uint (FullOpts)
          17 (0.26 % of base) : 421120.dasm - Internal.JitInterface.CorInfoImpl:resolveVirtualMethod(ulong):ubyte:this (Tier1)
          17 (0.22 % of base) : 692925.dasm - Test_13662_b:TestEntryPoint():int (FullOpts)
          16 (4.44 % of base) : 606971.dasm - (dynamicClass):ABIStress_TailCaller418(ABIStress.S2P,ABIStress.S7U,ABIStress.S2U,int,ABIStress.S7U,ABIStress.S11U,ABIStress.S13U,ubyte):int (FullOpts)
          16 (5.80 % of base) : 634599.dasm - System.Xml.Xsl.XmlQueryTypeFactory:AddItemToChoice(System.Collections.Generic.List`1[System.Xml.Xsl.XmlQueryType],System.Xml.Xsl.XmlQueryType) (FullOpts)

Top method improvements (bytes):
        -733 (-1.98 % of base) : 295728.dasm - DefaultNamespace.cb6054ToByte_all:runTest():ubyte:this (Instrumented Tier0)
        -513 (-19.69 % of base) : 446995.dasm - FPBehaviorApp.Program:TestEntryPoint():int (FullOpts)
        -385 (-6.97 % of base) : 232273.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckMembersAgainstBaseType(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):this (Instrumented Tier0)
        -375 (-16.33 % of base) : 604691.dasm - (dynamicClass):ABIStress_PInvoker188(short,ABIStress.S14U,ABIStress.S1P,ABIStress.S3U,ABIStress.I128_1,ABIStress.S12U,ABIStress.S15U,ABIStress.S5U,double):int[] (FullOpts)
        -364 (-10.04 % of base) : 592302.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -333 (-20.40 % of base) : 605344.dasm - (dynamicClass):ABIStress_PInvoker529(System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S2P,ABIStress.S31U,int,ABIStress.S12U,ABIStress.S4P,ABIStress.S2U,ABIStress.S1P,ABIStress.S2U,ABIStress.S1P,ABIStress.S7U,ABIStress.S12U,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S13U,ABIStress.S12U,System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S10U):int[] (FullOpts)
        -325 (-5.75 % of base) : 412004.dasm - System.Xml.Linq.XContainer+ContentReader:ReadContentFromContainer(System.Xml.Linq.XContainer,System.Xml.XmlReader):ubyte:this (Instrumented Tier0)
        -325 (-5.75 % of base) : 414285.dasm - System.Xml.Linq.XContainer+ContentReader:ReadContentFromContainer(System.Xml.Linq.XContainer,System.Xml.XmlReader):ubyte:this (Instrumented Tier0)
        -319 (-17.60 % of base) : 604617.dasm - (dynamicClass):ABIStress_PInvoker150(ABIStress.S8U,float,ABIStress.S11U,ABIStress.S8P,ABIStress.S8U,ABIStress.S13U,ABIStress.S8P,ABIStress.S5U,ABIStress.S1P,ABIStress.S3U,ABIStress.I128_1,System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S6U,ABIStress.S6U,int,ubyte,ABIStress.I128_1):int[] (FullOpts)
        -317 (-12.14 % of base) : 604736.dasm - (dynamicClass):ABIStress_PInvoker211(ABIStress.S9U,ABIStress.S14U,System.Int128,ABIStress.S1P,ABIStress.Hfa1,ABIStress.S4P,ABIStress.S31U,float,System.Int128,short,int,ABIStress.S13U,ABIStress.S8U,ABIStress.S13U,ABIStress.S2U,ABIStress.I128_2,ubyte,ABIStress.S13U,float,ABIStress.S8U,System.Runtime.Intrinsics.Vector128`1[int],System.Int128,ABIStress.S11U,ABIStress.S1P,ABIStress.S2U):int[] (FullOpts)
        -308 (-6.54 % of base) : 690536.dasm - ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory:GenericLookupHelper(int,int,System.Object,Internal.JitInterface.GenericContext):ILCompiler.DependencyAnalysis.ISymbolNode:this (FullOpts)
        -301 (-4.51 % of base) : 237642.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper:ImportDataMembers():this (Instrumented Tier0)
        -300 (-15.35 % of base) : 606085.dasm - (dynamicClass):ABIStress_PInvoker929(ABIStress.S17U,ABIStress.S10U,double,System.Numerics.Vector`1[int],System.Int128,int,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S1P,ABIStress.S3U,ABIStress.I128_1,ABIStress.S7U,ABIStress.S8P,float,ABIStress.S8U,ABIStress.S15U,ABIStress.S16U,ABIStress.S6U,ABIStress.S31U,ABIStress.S2P,double,ABIStress.S7U,ABIStress.S3U,ABIStress.I128_2,ABIStress.Hfa1,short):int[] (FullOpts)
        -294 (-10.00 % of base) : 605522.dasm - (dynamicClass):ABIStress_PInvoker623(ABIStress.S9U,ABIStress.Hfa2,ABIStress.S6U):int[] (FullOpts)
        -293 (-11.05 % of base) : 604660.dasm - (dynamicClass):ABIStress_PInvoker172(ABIStress.S10U,ABIStress.Hfa1,ABIStress.S3U,ABIStress.S10U,ubyte):int[] (FullOpts)
        -288 (-2.83 % of base) : 231888.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Instrumented Tier0)
        -282 (-19.83 % of base) : 605409.dasm - (dynamicClass):ABIStress_PInvoker563(ABIStress.S10U,ABIStress.S4U,ABIStress.S9U,ABIStress.S32U,ABIStress.S2P,float,ABIStress.S7U,ABIStress.S2U,ABIStress.S31U,System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S2U,long,System.Int128):int[] (FullOpts)
        -282 (-11.50 % of base) : 605765.dasm - (dynamicClass):ABIStress_PInvoker756(ABIStress.S7U,ABIStress.S8U):int[] (FullOpts)
        -276 (-23.90 % of base) : 604397.dasm - (dynamicClass):ABIStress_PInvoker34(ABIStress.S16U,ABIStress.S5U,float,ABIStress.S7U,ubyte,ABIStress.S15U,ABIStress.Hfa2,ABIStress.S17U,ABIStress.S14U,System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S9U,ABIStress.S12U,System.Numerics.Vector`1[int],ABIStress.S13U,ABIStress.S2P,short,ABIStress.S11U,ubyte,ABIStress.S4P,ABIStress.S10U,float):int[] (FullOpts)
        -272 (-13.70 % of base) : 606186.dasm - (dynamicClass):ABIStress_PInvoker983(ABIStress.S11U,ABIStress.S32U,ABIStress.S14U,ABIStress.S8P,System.Numerics.Vector`1[int],ABIStress.S15U,short,System.Int128,ABIStress.S2U,ABIStress.S7U,ABIStress.S11U):int[] (FullOpts)

Top method regressions (percentages):
         100 (8.03 % of base) : 421274.dasm - Internal.JitInterface.CorInfoImpl:GetHelperFtnUncached(int):ILCompiler.DependencyAnalysis.ISymbolNode:this (Tier1)
           5 (6.94 % of base) : 687553.dasm - NullableTest:BoxUnboxToNQ[System.Nullable`1[NotEmptyStructConstrainedGenQ`1[int]]](System.Nullable`1[NotEmptyStructConstrainedGenQ`1[int]]):ubyte (FullOpts)
           5 (6.94 % of base) : 687532.dasm - NullableTest:BoxUnboxToNQ[System.Nullable`1[NotEmptyStructQ]](System.Nullable`1[NotEmptyStructQ]):ubyte (FullOpts)
           5 (6.25 % of base) : 687331.dasm - NullableTest:BoxUnboxToNQ(System.ValueType):ubyte (FullOpts)
           5 (6.25 % of base) : 687362.dasm - NullableTest:BoxUnboxToNQ(System.ValueType):ubyte (FullOpts)
          89 (5.83 % of base) : 416995.dasm - Internal.JitInterface.CorInfoImpl:GetHelperFtnUncached(int):ILCompiler.DependencyAnalysis.ISymbolNode:this (Tier1)
          16 (5.80 % of base) : 634599.dasm - System.Xml.Xsl.XmlQueryTypeFactory:AddItemToChoice(System.Collections.Generic.List`1[System.Xml.Xsl.XmlQueryType],System.Xml.Xsl.XmlQueryType) (FullOpts)
          33 (5.64 % of base) : 606793.dasm - (dynamicClass):ABIStress_TailCaller319(ABIStress.S32U,ABIStress.S17U,ABIStress.S2P,short,float,ABIStress.S8P,ubyte,ABIStress.S12U,ABIStress.S8P,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S8U,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S1P,ABIStress.S6U,int,System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S2U,ABIStress.S9U,ABIStress.S12U,ABIStress.S15U,ABIStress.S1P,ubyte,short,ABIStress.S32U,ABIStress.I128_2):int (FullOpts)
          36 (5.49 % of base) : 604389.dasm - (dynamicClass):ABIStress_PInvoker30(ABIStress.S13U,ABIStress.S12U,ABIStress.S5U,ABIStress.S9U,System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S7U,ABIStress.S32U,double):int[] (FullOpts)
           9 (5.23 % of base) : 607044.dasm - (dynamicClass):ABIStress_TailCaller456(ABIStress.S9U,ABIStress.S10U,ABIStress.S2P,ABIStress.S10U,ABIStress.S8U,ABIStress.S8U,System.Int128,ABIStress.I128_2,ABIStress.S15U,ABIStress.S8P,double,ABIStress.S4P,System.Int128,ABIStress.S7U,long,ABIStress.I128_1,ABIStress.S15U,ABIStress.S7U,ABIStress.S6U,System.Runtime.Intrinsics.Vector256`1[int],float,ABIStress.S6U):int (FullOpts)
          48 (4.74 % of base) : 607904.dasm - (dynamicClass):ABIStress_TailCaller951(ABIStress.S16U,short,ABIStress.S13U,ABIStress.I128_2,ABIStress.S31U,ABIStress.S16U,ABIStress.S6U,System.Numerics.Vector`1[int],ABIStress.S5U,ABIStress.S9U,ABIStress.S2U,float,ABIStress.S13U,int,ABIStress.S3U,ABIStress.S17U,ABIStress.S10U,ABIStress.S16U):int (FullOpts)
          16 (4.44 % of base) : 606971.dasm - (dynamicClass):ABIStress_TailCaller418(ABIStress.S2P,ABIStress.S7U,ABIStress.S2U,int,ABIStress.S7U,ABIStress.S11U,ABIStress.S13U,ubyte):int (FullOpts)
           8 (4.28 % of base) : 209862.dasm - System.Reflection.PortableExecutable.PEBinaryReader:.ctor(System.IO.Stream,int):this (Instrumented Tier0)
           8 (4.28 % of base) : 266710.dasm - System.Reflection.PortableExecutable.PEBinaryReader:.ctor(System.IO.Stream,int):this (Instrumented Tier0)
           3 (3.80 % of base) : 687332.dasm - NullableTest:BoxUnboxToQ(System.ValueType):ubyte (FullOpts)
           3 (3.80 % of base) : 687363.dasm - NullableTest:BoxUnboxToQ(System.ValueType):ubyte (FullOpts)
           3 (3.80 % of base) : 429638.dasm - NullableTest23:BoxUnboxToQ(System.Object):ubyte (FullOpts)
           3 (3.80 % of base) : 429680.dasm - NullableTest30:BoxUnboxToQ(System.Object):ubyte (FullOpts)
          55 (3.46 % of base) : 590177.dasm - V8.Crypto.BigInteger:modPow(V8.Crypto.BigInteger,V8.Crypto.BigInteger):V8.Crypto.BigInteger:this (FullOpts)
          52 (3.46 % of base) : 606726.dasm - (dynamicClass):ABIStress_TailCaller280(short,ubyte,ubyte,ABIStress.S31U,ABIStress.S16U,ABIStress.S32U,ABIStress.S15U,ABIStress.S31U,ABIStress.S3U,ABIStress.S8U,ABIStress.S8U,short,ABIStress.S17U,ABIStress.S2U,ABIStress.S31U,ABIStress.S17U,ABIStress.S8P,double,ubyte,ABIStress.S31U,System.Int128,System.Int128):int (FullOpts)

Top method improvements (percentages):
         -15 (-28.30 % of base) : 607936.dasm - (dynamicClass):ABIStress_TailCaller968(long,ABIStress.S13U,ABIStress.S12U,ABIStress.S16U,ABIStress.S2P,double):int (FullOpts)
        -147 (-26.82 % of base) : 607524.dasm - (dynamicClass):ABIStress_TailCaller728(ABIStress.S2U,ABIStress.S8P,ABIStress.S32U,ABIStress.S4P,ABIStress.S9U,System.Numerics.Vector`1[int],ABIStress.S15U,System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S2U,ABIStress.S5U,ABIStress.I128_1,ABIStress.S13U,ubyte,ABIStress.S14U,ABIStress.S16U,ABIStress.S17U,ABIStress.S32U,short,long,ABIStress.S31U,System.Int128,short,System.Int128):int (FullOpts)
         -18 (-25.35 % of base) : 606989.dasm - (dynamicClass):ABIStress_TailCaller427(ABIStress.S4P,ABIStress.S11U,ABIStress.S2U,ABIStress.S17U,ABIStress.S4P,ABIStress.I128_2,ABIStress.S7U,System.Int128,ABIStress.S8U,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.I128_1,float,System.Numerics.Vector`1[int]):int (FullOpts)
        -198 (-25.16 % of base) : 606109.dasm - (dynamicClass):ABIStress_PInvoker942(ABIStress.S14U,float,float,System.Int128,ABIStress.S2U,ABIStress.Hfa1,ABIStress.S9U,double,ABIStress.S17U,ABIStress.S9U,short,ABIStress.S6U,ABIStress.S6U,ubyte,System.Int128,ABIStress.S32U,ABIStress.S14U,ABIStress.S2U,ABIStress.S15U,double,ABIStress.S7U,ABIStress.S16U,ABIStress.S1P):int[] (FullOpts)
        -176 (-24.41 % of base) : 605959.dasm - (dynamicClass):ABIStress_PInvoker862(ABIStress.S17U,ABIStress.S8U,ABIStress.S14U,int,ABIStress.S4U,ABIStress.S15U,ABIStress.S5U,ABIStress.Hfa1,ABIStress.Hfa2,ABIStress.S10U,double,ABIStress.S10U,ABIStress.S4P,ABIStress.S13U,ABIStress.S8U,ubyte,ABIStress.S16U,ABIStress.S12U,ABIStress.S1P,int,System.Runtime.Intrinsics.Vector256`1[int],float,ABIStress.I128_2):int[] (FullOpts)
        -230 (-24.39 % of base) : 606741.dasm - (dynamicClass):ABIStress_TailCaller289(ubyte,ABIStress.S12U,ABIStress.S7U,ABIStress.S4P,ABIStress.S16U,ubyte,ABIStress.S12U,ABIStress.S17U,System.Numerics.Vector`1[int],ABIStress.S6U,System.Numerics.Vector`1[int],ABIStress.S7U,long,ABIStress.S16U,ABIStress.S15U,ABIStress.S14U,ABIStress.I128_2,ABIStress.S15U,ABIStress.I128_1,System.Int128):int (FullOpts)
        -276 (-23.90 % of base) : 604397.dasm - (dynamicClass):ABIStress_PInvoker34(ABIStress.S16U,ABIStress.S5U,float,ABIStress.S7U,ubyte,ABIStress.S15U,ABIStress.Hfa2,ABIStress.S17U,ABIStress.S14U,System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S9U,ABIStress.S12U,System.Numerics.Vector`1[int],ABIStress.S13U,ABIStress.S2P,short,ABIStress.S11U,ubyte,ABIStress.S4P,ABIStress.S10U,float):int[] (FullOpts)
        -152 (-23.49 % of base) : 605065.dasm - (dynamicClass):ABIStress_PInvoker384(ABIStress.S15U,ABIStress.S15U,double,ubyte,ABIStress.S9U,double,ABIStress.S4U,ABIStress.S16U,ABIStress.S4U,ABIStress.S7U,ABIStress.S2P,ABIStress.S7U,ABIStress.S8U,ABIStress.S16U,ABIStress.S2U,ABIStress.S7U,ubyte,ABIStress.S4P):int[] (FullOpts)
        -138 (-23.12 % of base) : 605857.dasm - (dynamicClass):ABIStress_PInvoker805(ABIStress.S15U,int,ABIStress.S3U,ABIStress.I128_2):int[] (FullOpts)
         -55 (-23.11 % of base) : 606724.dasm - (dynamicClass):ABIStress_TailCaller279(ABIStress.I128_2,ABIStress.I128_2,ABIStress.S3U,float,ubyte,ubyte,ABIStress.I128_2,int,ABIStress.S12U,double,ABIStress.S8P,int,ABIStress.S10U,ABIStress.S3U,ABIStress.S31U,ABIStress.S4P,double,ABIStress.S3U,ABIStress.S14U,ABIStress.S12U,int,ABIStress.S6U,ABIStress.S31U,System.Runtime.Intrinsics.Vector256`1[int]):int (FullOpts)
        -198 (-22.71 % of base) : 606357.dasm - (dynamicClass):IL_STUB_CallTailCallTarget(long,byref,long) (FullOpts)
        -196 (-22.37 % of base) : 604731.dasm - (dynamicClass):ABIStress_PInvoker208(int,ABIStress.S17U,ABIStress.S17U,short,ABIStress.S13U,ABIStress.S10U,float,ABIStress.S31U,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S15U,ABIStress.S32U,ABIStress.S11U,ABIStress.S6U,ABIStress.S10U):int[] (FullOpts)
        -178 (-21.19 % of base) : 604679.dasm - (dynamicClass):ABIStress_PInvoker182(ABIStress.S12U,ABIStress.S32U,ABIStress.S1P,ABIStress.S13U,ABIStress.S10U,int,ABIStress.S3U,ABIStress.S5U,ABIStress.S13U,ABIStress.S8P,ABIStress.Hfa1,ABIStress.S15U,ABIStress.S8U,short,ABIStress.S6U):int[] (FullOpts)
        -233 (-21.03 % of base) : 604721.dasm - (dynamicClass):ABIStress_PInvoker203(ABIStress.S8U,ABIStress.S14U,ABIStress.I128_2,short,ABIStress.S16U,ABIStress.S4U,ABIStress.S11U,ABIStress.S8U,ABIStress.S8U,ABIStress.S10U,System.Int128,System.Runtime.Intrinsics.Vector256`1[int],ABIStress.Hfa1,ABIStress.S9U,ABIStress.S8P,ABIStress.S2U,ABIStress.S16U,ABIStress.S32U,ubyte,ABIStress.S13U,ABIStress.S1P,ABIStress.S4P,ABIStress.S17U):int[] (FullOpts)
        -228 (-20.86 % of base) : 604554.dasm - (dynamicClass):ABIStress_PInvoker116(ABIStress.I128_1,ABIStress.S3U,ABIStress.S16U,ABIStress.S13U,long,long,float,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S17U,ABIStress.Hfa2,ABIStress.S16U,System.Numerics.Vector`1[int],ABIStress.S13U,System.Runtime.Intrinsics.Vector256`1[int],ABIStress.I128_1,ABIStress.S8U,ubyte,ABIStress.S3U,ABIStress.S11U,ABIStress.S4P,float,short,float,ABIStress.S15U):int[] (FullOpts)
        -142 (-20.85 % of base) : 604364.dasm - (dynamicClass):ABIStress_PInvoker17(ABIStress.S14U,float,ABIStress.S4P,ABIStress.S17U,ABIStress.Hfa1,System.Numerics.Vector`1[int],ABIStress.S32U,ABIStress.Hfa1,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S12U,ABIStress.S6U,ABIStress.S1P,ubyte,ABIStress.S9U,ABIStress.I128_2,ABIStress.S8P,ABIStress.I128_2):int[] (FullOpts)
        -124 (-20.84 % of base) : 605483.dasm - (dynamicClass):ABIStress_PInvoker603(short,ABIStress.S13U,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S1P,ABIStress.S1P,ABIStress.S14U,ABIStress.S31U,ABIStress.S31U,ABIStress.S14U,ABIStress.S4P,ABIStress.S13U,ABIStress.S11U,System.Numerics.Vector`1[int],ABIStress.S2P,ABIStress.Hfa1,ABIStress.S14U,System.Runtime.Intrinsics.Vector128`1[int],short,ABIStress.I128_2,ABIStress.Hfa2,ABIStress.S11U,int,ABIStress.S8P,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S3U):int[] (FullOpts)
         -96 (-20.82 % of base) : 606771.dasm - (dynamicClass):ABIStress_TailCaller306(ABIStress.S5U,ABIStress.S7U,ABIStress.S31U,ABIStress.S11U,ABIStress.S31U,ABIStress.S10U,ABIStress.S4U,ABIStress.S5U,ABIStress.S31U,int,System.Runtime.Intrinsics.Vector256`1[int],long,ABIStress.S15U,ABIStress.S6U,ABIStress.S11U,ABIStress.S2U,ABIStress.S12U,ABIStress.S4P,ABIStress.S10U,int):int (FullOpts)
        -207 (-20.80 % of base) : 605669.dasm - (dynamicClass):ABIStress_PInvoker706(ABIStress.S10U,ABIStress.S6U,double,ABIStress.S8U,ABIStress.S17U,ABIStress.S8P,ABIStress.S2U,ABIStress.S14U,System.Int128,ABIStress.S31U):int[] (FullOpts)
        -252 (-20.77 % of base) : 605697.dasm - (dynamicClass):ABIStress_PInvoker721(ABIStress.S32U,ABIStress.S12U,ABIStress.S8U,ABIStress.S4P,ABIStress.S10U,short,ABIStress.S17U,double,ABIStress.S32U,ABIStress.S5U,ABIStress.S6U,long,ABIStress.S4P):int[] (FullOpts)


libraries.crossgen2.linux.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 38670232 (overridden on cmd)
Total bytes of diff: 38649334 (overridden on cmd)
Total bytes of delta: -20898 (-0.05 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          44 : 199730.dasm (1.22 % of base)
          40 : 52011.dasm (3.35 % of base)
          32 : 51924.dasm (1.66 % of base)
          27 : 22236.dasm (15.79 % of base)
          26 : 168234.dasm (0.26 % of base)
          15 : 16292.dasm (4.78 % of base)
          14 : 229142.dasm (1.30 % of base)
          12 : 61898.dasm (0.18 % of base)
          12 : 139474.dasm (1.08 % of base)
          12 : 181830.dasm (1.08 % of base)
          11 : 217601.dasm (2.07 % of base)
          11 : 30618.dasm (2.55 % of base)
          11 : 30619.dasm (1.77 % of base)
          10 : 168062.dasm (0.22 % of base)
          10 : 169384.dasm (0.78 % of base)
          10 : 179048.dasm (3.25 % of base)
          10 : 3219.dasm (2.14 % of base)
          10 : 3221.dasm (2.13 % of base)
           9 : 95925.dasm (2.07 % of base)
           7 : 113444.dasm (0.39 % of base)

Top file improvements (bytes):
       -2405 : 139779.dasm (-8.98 % of base)
       -2405 : 182116.dasm (-8.98 % of base)
        -254 : 50103.dasm (-8.11 % of base)
        -206 : 219123.dasm (-23.93 % of base)
        -178 : 219111.dasm (-12.25 % of base)
        -173 : 140762.dasm (-3.22 % of base)
        -171 : 50092.dasm (-7.11 % of base)
        -168 : 209462.dasm (-5.09 % of base)
        -165 : 183076.dasm (-2.76 % of base)
        -150 : 30504.dasm (-0.49 % of base)
        -148 : 187119.dasm (-4.77 % of base)
        -142 : 57883.dasm (-2.87 % of base)
        -140 : 81082.dasm (-21.84 % of base)
        -130 : 140753.dasm (-18.34 % of base)
        -130 : 183067.dasm (-18.34 % of base)
        -130 : 58005.dasm (-23.90 % of base)
        -128 : 140751.dasm (-20.88 % of base)
        -128 : 183065.dasm (-20.88 % of base)
        -126 : 144871.dasm (-4.29 % of base)
        -126 : 201722.dasm (-6.16 % of base)

74 total files with Code Size differences (41 improved, 33 regressed), 20 unchanged.

Top method regressions (bytes):
          44 (1.22 % of base) : 199730.dasm - System.Xml.Xsl.IlGen.XmlILOptimizerVisitor:VisitEq(System.Xml.Xsl.Qil.QilBinary):System.Xml.Xsl.Qil.QilNode:this (FullOpts)
          40 (3.35 % of base) : 52011.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindFunctionPointerInvocation(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundFunctionPointerInvocation:this (FullOpts)
          32 (1.66 % of base) : 51924.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindIndexerOrIndexedPropertyAccess(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          27 (15.79 % of base) : 22236.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:CreateDirectoryHandle(System.String,ubyte):long:this (FullOpts)
          26 (0.26 % of base) : 168234.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
          15 (4.78 % of base) : 16292.dasm - System.Globalization.TimeSpanParse:TryParseExactMultipleTimeSpan(System.ReadOnlySpan`1[ushort],System.String[],System.IFormatProvider,int,byref):ubyte (FullOpts)
          14 (1.30 % of base) : 229142.dasm - Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadCompilationOptions(byref):Microsoft.Extensions.DependencyModel.CompilationOptions (FullOpts)
          12 (1.08 % of base) : 139474.dasm - Microsoft.CodeAnalysis.CompilationOptions:GetHashCodeHelper():int:this (FullOpts)
          12 (1.08 % of base) : 181830.dasm - Microsoft.CodeAnalysis.CompilationOptions:GetHashCodeHelper():int:this (FullOpts)
          12 (0.18 % of base) : 61898.dasm - Microsoft.CodeAnalysis.CSharp.CSharpDeclarationComputer:ComputeDeclarations(Microsoft.CodeAnalysis.SemanticModel,Microsoft.CodeAnalysis.ISymbol,Microsoft.CodeAnalysis.SyntaxNode,System.Func`3[Microsoft.CodeAnalysis.SyntaxNode,System.Nullable`1[int],ubyte],ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Nullable`1[int],System.Threading.CancellationToken) (FullOpts)
          11 (1.77 % of base) : 30619.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation:Create(System.String,Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilationOptions,System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.SyntaxTree],System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.MetadataReference],Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation,System.Type,System.Type,ubyte):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation (FullOpts)
          11 (2.55 % of base) : 30618.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation:CreateScriptCompilation(System.String,Microsoft.CodeAnalysis.SyntaxTree,System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.MetadataReference],Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilationOptions,Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation,System.Type,System.Type):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation (FullOpts)
          11 (2.07 % of base) : 217601.dasm - System.IO.Compression.ZipHelper:GetEncodedTruncatedBytesFromString(System.String,System.Text.Encoding,int,byref):ubyte[] (FullOpts)
          10 (3.25 % of base) : 179048.dasm - System.ComponentModel.PropertyTabAttribute:Equals(System.ComponentModel.PropertyTabAttribute):ubyte:this (FullOpts)
          10 (2.14 % of base) : 3219.dasm - System.MemoryExtensions:ToLowerInvariant(System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):int (FullOpts)
          10 (2.13 % of base) : 3221.dasm - System.MemoryExtensions:ToUpperInvariant(System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):int (FullOpts)
          10 (0.22 % of base) : 168062.dasm - System.Net.Http.Http3RequestStream+<SendAsync>d__29:MoveNext():this (FullOpts)
          10 (0.78 % of base) : 169384.dasm - System.Net.Http.HttpConnection:ParseStatusLineCore(System.Span`1[ubyte],System.Net.Http.HttpResponseMessage) (FullOpts)
           9 (2.07 % of base) : 95925.dasm - Microsoft.Diagnostics.Tracing.StackSources.ParallelLinuxPerfScriptStackSource:TryGetCompleteBuffer(Microsoft.Diagnostics.Tracing.Utilities.FastStream,uint,double,int,byref):ubyte:this (FullOpts)
           7 (0.39 % of base) : 113444.dasm - Microsoft.Diagnostics.Tracing.StartStopActivityComputer+<>c__DisplayClass0_0:<.ctor>b__1(Microsoft.Diagnostics.Tracing.TraceEvent):this (FullOpts)

Top method improvements (bytes):
       -2405 (-8.98 % of base) : 139779.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
       -2405 (-8.98 % of base) : 182116.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
        -254 (-8.11 % of base) : 50103.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation+DocumentationCommentCompiler+DocumentationCommentWalker:DefaultVisit(Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
        -206 (-23.93 % of base) : 219123.dasm - System.Formats.Asn1.AsnWriter:WriteUtcTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset):this (FullOpts)
        -178 (-12.25 % of base) : 219111.dasm - System.Formats.Asn1.AsnWriter:WriteGeneralizedTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset,ubyte):this (FullOpts)
        -173 (-3.22 % of base) : 140762.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RunGeneratorsCore(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.DiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriverState:this (FullOpts)
        -171 (-7.11 % of base) : 50092.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation+DocumentationCommentCompiler+IncludeElementExpander:BindAndReplaceCref(System.Xml.Linq.XAttribute,System.String):this (FullOpts)
        -168 (-5.09 % of base) : 209462.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -165 (-2.76 % of base) : 183076.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RunGeneratorsCore(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.DiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriverState:this (FullOpts)
        -150 (-0.49 % of base) : 30504.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
        -148 (-4.77 % of base) : 187119.dasm - Microsoft.CodeAnalysis.Emit.DefinitionMap:TryCreateVariableSlotAllocator(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Symbols.IMethodSymbolInternal,Microsoft.CodeAnalysis.Symbols.IMethodSymbolInternal,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator:this (FullOpts)
        -142 (-2.87 % of base) : 57883.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitForEachExpression(Microsoft.CodeAnalysis.CSharp.BoundForEachStatement):this (FullOpts)
        -140 (-21.84 % of base) : 81082.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+<>c__DisplayClass169_0:<VisitObjectElementInitializer>b__10(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):this (FullOpts)
        -130 (-23.90 % of base) : 58005.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitObjectElementInitializer>g__setAnalyzedNullability|169_1(Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate,System.Action`2[int,Microsoft.CodeAnalysis.CSharp.Symbol],ubyte):System.Action`2[int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]:this (FullOpts)
        -130 (-18.34 % of base) : 140753.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RemoveGenerators(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ISourceGenerator]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
        -130 (-18.34 % of base) : 183067.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RemoveGenerators(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ISourceGenerator]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
        -128 (-20.88 % of base) : 140751.dasm - Microsoft.CodeAnalysis.GeneratorDriver:AddGenerators(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ISourceGenerator]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
        -128 (-20.88 % of base) : 183065.dasm - Microsoft.CodeAnalysis.GeneratorDriver:AddGenerators(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ISourceGenerator]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
        -126 (-4.29 % of base) : 144871.dasm - Microsoft.CodeAnalysis.Emit.DefinitionMap:TryCreateVariableSlotAllocator(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Symbols.IMethodSymbolInternal,Microsoft.CodeAnalysis.Symbols.IMethodSymbolInternal,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator:this (FullOpts)
        -126 (-6.16 % of base) : 201722.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)

Top method regressions (percentages):
          27 (15.79 % of base) : 22236.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:CreateDirectoryHandle(System.String,ubyte):long:this (FullOpts)
           3 (7.89 % of base) : 31041.dasm - Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable`1[int]):this (FullOpts)
          15 (4.78 % of base) : 16292.dasm - System.Globalization.TimeSpanParse:TryParseExactMultipleTimeSpan(System.ReadOnlySpan`1[ushort],System.String[],System.IFormatProvider,int,byref):ubyte (FullOpts)
           3 (3.90 % of base) : 226257.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:TryUpdate(System.__Canon,System.__Canon,System.__Canon):ubyte:this (FullOpts)
           3 (3.80 % of base) : 91340.dasm - Microsoft.FSharp.Collections.ArrayModule+Parallel+Collect@2047-1[System.__Canon,System.__Canon]:Invoke(int):this (FullOpts)
           3 (3.80 % of base) : 91342.dasm - Microsoft.FSharp.Collections.ArrayModule+Parallel+Map@2060-2[System.__Canon,System.__Canon]:Invoke(int):this (FullOpts)
          40 (3.35 % of base) : 52011.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindFunctionPointerInvocation(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundFunctionPointerInvocation:this (FullOpts)
          10 (3.25 % of base) : 179048.dasm - System.ComponentModel.PropertyTabAttribute:Equals(System.ComponentModel.PropertyTabAttribute):ubyte:this (FullOpts)
           3 (3.23 % of base) : 140030.dasm - Microsoft.CodeAnalysis.SourceLocation:GetLineSpan():Microsoft.CodeAnalysis.FileLinePositionSpan:this (FullOpts)
           3 (3.23 % of base) : 182362.dasm - Microsoft.CodeAnalysis.SourceLocation:GetLineSpan():Microsoft.CodeAnalysis.FileLinePositionSpan:this (FullOpts)
           3 (3.23 % of base) : 140031.dasm - Microsoft.CodeAnalysis.SourceLocation:GetMappedLineSpan():Microsoft.CodeAnalysis.FileLinePositionSpan:this (FullOpts)
           3 (3.23 % of base) : 182363.dasm - Microsoft.CodeAnalysis.SourceLocation:GetMappedLineSpan():Microsoft.CodeAnalysis.FileLinePositionSpan:this (FullOpts)
           6 (2.94 % of base) : 176111.dasm - Internal.TypeSystem.InstantiatedMethod:CompareToImpl(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.TypeSystemComparer):int:this (FullOpts)
           6 (2.91 % of base) : 176154.dasm - Internal.TypeSystem.InstantiatedType:CompareToImpl(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeSystemComparer):int:this (FullOpts)
           5 (2.91 % of base) : 18379.dasm - System.Runtime.Intrinsics.Vector512`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Sum(System.Runtime.Intrinsics.Vector512`1[int]):int (FullOpts)
           5 (2.91 % of base) : 18738.dasm - System.Runtime.Intrinsics.Vector512`1[uint]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Sum(System.Runtime.Intrinsics.Vector512`1[uint]):uint (FullOpts)
          11 (2.55 % of base) : 30618.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation:CreateScriptCompilation(System.String,Microsoft.CodeAnalysis.SyntaxTree,System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.MetadataReference],Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilationOptions,Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation,System.Type,System.Type):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation (FullOpts)
           5 (2.16 % of base) : 18676.dasm - System.Runtime.Intrinsics.Vector512`1[ushort]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector512<T>,T>.Sum(System.Runtime.Intrinsics.Vector512`1[ushort]):ushort (FullOpts)
          10 (2.14 % of base) : 3219.dasm - System.MemoryExtensions:ToLowerInvariant(System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):int (FullOpts)
          10 (2.13 % of base) : 3221.dasm - System.MemoryExtensions:ToUpperInvariant(System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):int (FullOpts)

Top method improvements (percentages):
         -25 (-49.02 % of base) : 173914.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[double]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -23 (-46.94 % of base) : 173922.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[long]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -23 (-46.94 % of base) : 173908.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -23 (-46.94 % of base) : 173933.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -25 (-29.41 % of base) : 123157.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.NamespaceSymbol:GetRootNamespaceSymbol():Microsoft.CSharp.RuntimeBinder.Semantics.NamespaceSymbol (FullOpts)
         -91 (-29.17 % of base) : 57606.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:SetAnalyzedNullability(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState):this (FullOpts)
         -70 (-28.11 % of base) : 175007.dasm - System.Text.Json.Utf8JsonWriter:WritePropertyName(System.Decimal):this (FullOpts)
         -22 (-27.85 % of base) : 197309.dasm - System.Xml.XsdCachingReader:MoveToFirstAttribute():ubyte:this (FullOpts)
         -20 (-27.78 % of base) : 173910.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTimeOffset]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -20 (-27.78 % of base) : 173912.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.Decimal]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -67 (-27.02 % of base) : 51935.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GetMethodGroupDelegateType(Microsoft.CodeAnalysis.CSharp.BoundMethodGroup):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
        -117 (-25.83 % of base) : 140757.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ReplaceAdditionalTexts(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
        -117 (-25.83 % of base) : 183071.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ReplaceAdditionalTexts(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
         -18 (-25.71 % of base) : 173916.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.Guid]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -70 (-25.55 % of base) : 175069.dasm - System.Text.Json.Utf8JsonWriter:WriteNumberValueAsString(System.Decimal):this (FullOpts)
        -206 (-23.93 % of base) : 219123.dasm - System.Formats.Asn1.AsnWriter:WriteUtcTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset):this (FullOpts)
        -130 (-23.90 % of base) : 58005.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitObjectElementInitializer>g__setAnalyzedNullability|169_1(Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate,System.Action`2[int,Microsoft.CodeAnalysis.CSharp.Symbol],ubyte):System.Action`2[int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]:this (FullOpts)
        -140 (-21.84 % of base) : 81082.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+<>c__DisplayClass169_0:<VisitObjectElementInitializer>b__10(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):this (FullOpts)
         -51 (-21.52 % of base) : 175024.dasm - System.Text.Json.Utf8JsonWriter:WritePropertyName(System.Guid):this (FullOpts)
        -128 (-20.88 % of base) : 140751.dasm - Microsoft.CodeAnalysis.GeneratorDriver:AddGenerators(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ISourceGenerator]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)


libraries.pmi.linux.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 60144132 (overridden on cmd)
Total bytes of diff: 60118741 (overridden on cmd)
Total bytes of delta: -25391 (-0.04 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         212 : 43603.dasm (2.95 % of base)
         209 : 47846.dasm (0.70 % of base)
         158 : 171517.dasm (0.55 % of base)
          75 : 37000.dasm (1.58 % of base)
          66 : 209983.dasm (1.78 % of base)
          63 : 185708.dasm (0.53 % of base)
          58 : 202090.dasm (0.81 % of base)
          57 : 227536.dasm (1.60 % of base)
          48 : 43996.dasm (2.60 % of base)
          45 : 13669.dasm (0.79 % of base)
          44 : 259722.dasm (1.06 % of base)
          44 : 194271.dasm (3.04 % of base)
          44 : 72532.dasm (0.61 % of base)
          40 : 37249.dasm (0.67 % of base)
          39 : 72379.dasm (0.35 % of base)
          38 : 220288.dasm (0.20 % of base)
          38 : 18144.dasm (1.00 % of base)
          38 : 202680.dasm (0.20 % of base)
          37 : 71370.dasm (0.81 % of base)
          36 : 73376.dasm (1.37 % of base)

Top file improvements (bytes):
        -364 : 177150.dasm (-9.81 % of base)
        -308 : 83003.dasm (-6.54 % of base)
        -193 : 43106.dasm (-4.75 % of base)
        -193 : 253060.dasm (-9.91 % of base)
        -192 : 221316.dasm (-2.84 % of base)
        -172 : 43095.dasm (-6.29 % of base)
        -166 : 227458.dasm (-4.69 % of base)
        -163 : 21138.dasm (-0.47 % of base)
        -160 : 203727.dasm (-2.64 % of base)
        -155 : 221305.dasm (-21.44 % of base)
        -155 : 203716.dasm (-21.44 % of base)
        -152 : 265145.dasm (-3.98 % of base)
        -150 : 81273.dasm (-4.33 % of base)
        -149 : 203718.dasm (-18.65 % of base)
        -149 : 221307.dasm (-18.65 % of base)
        -146 : 77835.dasm (-8.52 % of base)
        -145 : 83001.dasm (-25.13 % of base)
        -144 : 50045.dasm (-2.32 % of base)
        -142 : 20946.dasm (-3.15 % of base)
        -140 : 214648.dasm (-9.67 % of base)

80 total files with Code Size differences (43 improved, 37 regressed), 20 unchanged.

Top method regressions (bytes):
         212 (2.95 % of base) : 43603.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeParameterConstraints(Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterConstraintClauseSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterConstraintClause,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.TypeConstraintSyntax]]:this (FullOpts)
         209 (0.70 % of base) : 47846.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
         158 (0.55 % of base) : 171517.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          75 (1.58 % of base) : 37000.dasm - Microsoft.CodeAnalysis.VisualBasic.AccessCheck:VerifyAccessExposureForMemberType(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.SyntaxNodeOrToken,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,ubyte) (FullOpts)
          66 (1.78 % of base) : 209983.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:PopulateEncLogTableRows(System.Collections.Immutable.ImmutableArray`1[int],byref,byref):this (FullOpts)
          63 (0.53 % of base) : 185708.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
          58 (0.81 % of base) : 202090.dasm - Microsoft.CodeAnalysis.CommonCompiler:CompileAndEmit(Microsoft.CodeAnalysis.TouchedFileLogger,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ISourceGenerator],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText],Microsoft.CodeAnalysis.AnalyzerConfigSet,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AnalyzerConfigOptionsResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.EmbeddedText],Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.ErrorLogger,System.Threading.CancellationToken,byref,byref,byref):this (FullOpts)
          57 (1.60 % of base) : 227536.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:PopulateEncLogTableRows(System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int]):this (FullOpts)
          48 (2.60 % of base) : 43996.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindFunctionPointerInvocation(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundFunctionPointerInvocation:this (FullOpts)
          45 (0.79 % of base) : 13669.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BuildBoundLambdaParameters(Microsoft.CodeAnalysis.VisualBasic.UnboundLambda,Microsoft.CodeAnalysis.VisualBasic.UnboundLambda+TargetSignature,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.BoundLambdaParameterSymbol]:this (FullOpts)
          44 (0.61 % of base) : 72532.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceCustomEventSymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.EventDeclarationSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
          44 (3.04 % of base) : 194271.dasm - System.Data.ConstraintCollection:FinishInitConstraints():this (FullOpts)
          44 (1.06 % of base) : 259722.dasm - System.Xml.Xsl.IlGen.XmlILOptimizerVisitor:VisitEq(System.Xml.Xsl.Qil.QilBinary):System.Xml.Xsl.Qil.QilNode:this (FullOpts)
          40 (0.67 % of base) : 37249.dasm - Microsoft.CodeAnalysis.VisualBasic.OverloadResolution:MatchArguments(Microsoft.CodeAnalysis.VisualBasic.BoundMethodOrPropertyGroup,byref,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.VisualBasic.Binder,byref,Microsoft.CodeAnalysis.SyntaxNode,ubyte,byref) (FullOpts)
          39 (0.35 % of base) : 72379.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
          38 (0.20 % of base) : 220288.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
          38 (0.20 % of base) : 202680.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
          38 (1.00 % of base) : 18144.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceNamedTypeSymbol:CreateTypeParameterInfoInPart(Microsoft.CodeAnalysis.SyntaxTree,Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceTypeParameterOnTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Syntax.TypeParameterListSyntax,ubyte,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
          37 (0.81 % of base) : 71370.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.FunctionPointerMethodSymbol:CreateFromSource(Microsoft.CodeAnalysis.CSharp.Syntax.FunctionPointerTypeSyntax,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol],ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.FunctionPointerMethodSymbol (FullOpts)
          36 (1.37 % of base) : 73376.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbol:GetAccessorDeclarations(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,byref,byref,byref,byref) (FullOpts)

Top method improvements (bytes):
        -364 (-9.81 % of base) : 177150.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -308 (-6.54 % of base) : 83003.dasm - ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory:GenericLookupHelper(int,int,System.Object,Internal.JitInterface.GenericContext):ILCompiler.DependencyAnalysis.ISymbolNode:this (FullOpts)
        -193 (-4.75 % of base) : 43106.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation+DocumentationCommentCompiler+DocumentationCommentWalker:DefaultVisit(Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
        -193 (-9.91 % of base) : 253060.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -192 (-2.84 % of base) : 221316.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RunGeneratorsCore(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.DiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriverState:this (FullOpts)
        -172 (-6.29 % of base) : 43095.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilation+DocumentationCommentCompiler+IncludeElementExpander:BindAndReplaceCref(System.Xml.Linq.XAttribute,System.String):this (FullOpts)
        -166 (-4.69 % of base) : 227458.dasm - Microsoft.CodeAnalysis.Emit.DefinitionMap:TryCreateVariableSlotAllocator(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Symbols.IMethodSymbolInternal,Microsoft.CodeAnalysis.Symbols.IMethodSymbolInternal,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator:this (FullOpts)
        -163 (-0.47 % of base) : 21138.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
        -160 (-2.64 % of base) : 203727.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RunGeneratorsCore(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.DiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriverState:this (FullOpts)
        -155 (-21.44 % of base) : 221305.dasm - Microsoft.CodeAnalysis.GeneratorDriver:AddGenerators(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ISourceGenerator]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
        -155 (-21.44 % of base) : 203716.dasm - Microsoft.CodeAnalysis.GeneratorDriver:AddGenerators(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ISourceGenerator]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
        -152 (-3.98 % of base) : 265145.dasm - System.Formats.Asn1.AsnWriter:WriteUtcTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset):this (FullOpts)
        -150 (-4.33 % of base) : 81273.dasm - Internal.JitInterface.CorInfoImpl:resolveVirtualMethod(ulong):ubyte:this (FullOpts)
        -149 (-18.65 % of base) : 203718.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RemoveGenerators(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ISourceGenerator]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
        -149 (-18.65 % of base) : 221307.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RemoveGenerators(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ISourceGenerator]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
        -146 (-8.52 % of base) : 77835.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+<>c__DisplayClass449_0:<VisitSwitchExpressionCore>g__convertArms|0(Microsoft.CodeAnalysis.CSharp.BoundSwitchExpression,Microsoft.CodeAnalysis.PooledObjects.PooledDictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte]],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Conversion],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState:this (FullOpts)
        -145 (-25.13 % of base) : 83001.dasm - ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory:CheckVirtualFunctionOverride(Internal.JitInterface.MethodWithToken,Internal.TypeSystem.TypeDesc,Internal.JitInterface.MethodWithToken):ILCompiler.DependencyAnalysis.ISymbolNode:this (FullOpts)
        -144 (-2.32 % of base) : 50045.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitForEachExpression(Microsoft.CodeAnalysis.CSharp.BoundForEachStatement):this (FullOpts)
        -142 (-3.15 % of base) : 20946.dasm - Microsoft.CodeAnalysis.VisualBasic.CodeGen.CodeGenerator:EmitOnedimensionalElementInitializers(Microsoft.CodeAnalysis.VisualBasic.Symbols.ArrayTypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],ubyte):this (FullOpts)
        -140 (-9.67 % of base) : 214648.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>c__DisplayClass11_0[ubyte]:<ExecuteDeclaringReferenceActions>g__executeNodeActionsByKind|1(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.SyntaxNode],Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+GroupedAnalyzerActions[ubyte],ubyte):this (FullOpts)

Top method regressions (percentages):
           3 (7.89 % of base) : 21684.dasm - Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable`1[int]):this (FullOpts)
          12 (6.82 % of base) : 130821.dasm - System.Security.Cryptography.Xml.Transform:AcceptsType(System.Type):ubyte:this (FullOpts)
           6 (6.19 % of base) : 129391.dasm - System.Net.NegotiateAuthenticationPal+UnixNegotiateAuthenticationPal:VerifyMIC(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte:this (FullOpts)
          16 (5.80 % of base) : 256407.dasm - System.Xml.Xsl.XmlQueryTypeFactory:AddItemToChoice(System.Collections.Generic.List`1[System.Xml.Xsl.XmlQueryType],System.Xml.Xsl.XmlQueryType) (FullOpts)
          27 (3.50 % of base) : 169644.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitConvertArithmeticResult(int,System.Type):this (FullOpts)
           6 (3.33 % of base) : 176421.dasm - Newtonsoft.Json.JsonReader:Pop():int:this (FullOpts)
           7 (3.20 % of base) : 93374.dasm - Microsoft.FSharp.Collections.MapTreeModule:mkFromEnumerator[System.__Canon,System.Nullable`1[int]](System.Collections.Generic.IComparer`1[System.__Canon],Microsoft.FSharp.Collections.MapTree`2[System.__Canon,System.Nullable`1[int]],System.Collections.Generic.IEnumerator`1[System.__Canon]):Microsoft.FSharp.Collections.MapTree`2[System.__Canon,System.Nullable`1[int]] (FullOpts)
          15 (3.12 % of base) : 149482.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:BindStandardBinop(int,Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.Expr):Microsoft.CSharp.RuntimeBinder.Semantics.Expr:this (FullOpts)
          44 (3.04 % of base) : 194271.dasm - System.Data.ConstraintCollection:FinishInitConstraints():this (FullOpts)
          10 (2.96 % of base) : 292143.dasm - System.Collections.ObjectModel.KeyedCollection`2[double,System.Nullable`1[int]]:Remove(double):ubyte:this (FullOpts)
         212 (2.95 % of base) : 43603.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeParameterConstraints(Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterConstraintClauseSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterConstraintClause,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.TypeConstraintSyntax]]:this (FullOpts)
           6 (2.84 % of base) : 106168.dasm - Microsoft.Build.Collections.ArrayDictionary`2[System.__Canon,System.Nullable`1[int]]:ContainsKey(System.__Canon):ubyte:this (FullOpts)
          16 (2.82 % of base) : 73964.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedRecordPropertySymbol:CreateSetAccessorSymbol(ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertyAccessorSymbol:this (FullOpts)
          22 (2.79 % of base) : 13972.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ReportXmlNamespacePrefixNotDefined(Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode,Microsoft.CodeAnalysis.SyntaxToken,System.String,ubyte,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundBadExpression:this (FullOpts)
          12 (2.76 % of base) : 72627.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceEventSymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.SyntaxTokenList,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.ExplicitInterfaceSpecifierSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
           6 (2.71 % of base) : 140422.dasm - Internal.TypeSystem.InstantiatedType:CompareToImpl(Internal.TypeSystem.TypeDesc,Internal.TypeSystem.TypeSystemComparer):int:this (FullOpts)
           6 (2.69 % of base) : 140372.dasm - Internal.TypeSystem.InstantiatedMethod:CompareToImpl(Internal.TypeSystem.MethodDesc,Internal.TypeSystem.TypeSystemComparer):int:this (FullOpts)
          12 (2.69 % of base) : 72496.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbol:CreateConstructorSymbol(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.CSharp.Syntax.ConstructorDeclarationSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbol (FullOpts)
          10 (2.61 % of base) : 292150.dasm - System.Collections.ObjectModel.KeyedCollection`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:Remove(System.Numerics.Vector`1[float]):ubyte:this (FullOpts)
          48 (2.60 % of base) : 43996.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindFunctionPointerInvocation(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundFunctionPointerInvocation:this (FullOpts)

Top method improvements (percentages):
         -23 (-46.94 % of base) : 134539.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.DateTimeOffset):System.Text.Json.Nodes.JsonNode (FullOpts)
         -23 (-46.94 % of base) : 134552.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[long]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -23 (-46.94 % of base) : 134538.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -23 (-46.94 % of base) : 134563.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -25 (-46.30 % of base) : 134544.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[double]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -22 (-28.57 % of base) : 134540.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTimeOffset]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -22 (-28.57 % of base) : 134542.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.Decimal]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -22 (-28.57 % of base) : 252641.dasm - System.Xml.XsdCachingReader:MoveToFirstAttribute():ubyte:this (FullOpts)
        -119 (-27.05 % of base) : 203722.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ReplaceAdditionalTexts(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
        -119 (-27.05 % of base) : 221311.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ReplaceAdditionalTexts(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
         -20 (-26.67 % of base) : 134546.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.Guid]):System.Text.Json.Nodes.JsonNode (FullOpts)
        -145 (-25.13 % of base) : 83001.dasm - ILCompiler.DependencyAnalysis.ReadyToRunSymbolNodeFactory:CheckVirtualFunctionOverride(Internal.JitInterface.MethodWithToken,Internal.TypeSystem.TypeDesc,Internal.JitInterface.MethodWithToken):ILCompiler.DependencyAnalysis.ISymbolNode:this (FullOpts)
         -23 (-24.73 % of base) : 132930.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlyMemory`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
         -46 (-24.60 % of base) : 293633.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:Add(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite):this (FullOpts)
         -68 (-24.46 % of base) : 49766.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:SetAnalyzedNullability(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState):this (FullOpts)
        -121 (-24.44 % of base) : 82940.dasm - ILCompiler.DependencyAnalysis.NodeFactory:VirtualResolutionFixupSignature(int,Internal.JitInterface.MethodWithToken,Internal.TypeSystem.TypeDesc,Internal.JitInterface.MethodWithToken):ILCompiler.DependencyAnalysis.ReadyToRun.VirtualResolutionFixupSignature:this (FullOpts)
        -114 (-23.80 % of base) : 203719.dasm - Microsoft.CodeAnalysis.GeneratorDriver:AddAdditionalTexts(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
        -114 (-23.80 % of base) : 221308.dasm - Microsoft.CodeAnalysis.GeneratorDriver:AddAdditionalTexts(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
        -127 (-23.69 % of base) : 50168.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitObjectElementInitializer>g__setAnalyzedNullability|169_1(Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate,System.Action`2[int,Microsoft.CodeAnalysis.CSharp.Symbol],ubyte):System.Action`2[int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]:this (FullOpts)
         -27 (-23.28 % of base) : 107186.dasm - Microsoft.Build.Graph.GraphBuilder+GraphEdges:set_Item(System.ValueTuple`2[Microsoft.Build.Graph.ProjectGraphNode,Microsoft.Build.Graph.ProjectGraphNode],Microsoft.Build.Execution.ProjectItemInstance):this (FullOpts)


libraries_tests.run.linux.x64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 333551492 (overridden on cmd)
Total bytes of diff: 333062785 (overridden on cmd)
Total bytes of delta: -488707 (-0.15 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         118 : 336352.dasm (6.89 % of base)
          88 : 95936.dasm (1.93 % of base)
          80 : 630625.dasm (3.62 % of base)
          66 : 659169.dasm (3.01 % of base)
          64 : 471947.dasm (1.55 % of base)
          63 : 548639.dasm (2.26 % of base)
          60 : 475082.dasm (1.21 % of base)
          60 : 705519.dasm (2.79 % of base)
          58 : 93248.dasm (2.60 % of base)
          56 : 551565.dasm (2.29 % of base)
          56 : 547580.dasm (2.32 % of base)
          46 : 460224.dasm (0.42 % of base)
          46 : 460275.dasm (0.56 % of base)
          45 : 58615.dasm (2.13 % of base)
          42 : 459640.dasm (0.44 % of base)
          42 : 95422.dasm (2.37 % of base)
          32 : 280132.dasm (2.21 % of base)
          31 : 74018.dasm (0.72 % of base)
          31 : 93250.dasm (2.72 % of base)
          30 : 480167.dasm (1.09 % of base)

Top file improvements (bytes):
       -1911 : 278406.dasm (-8.41 % of base)
       -1825 : 298675.dasm (-1.38 % of base)
       -1825 : 302681.dasm (-1.36 % of base)
       -1647 : 465911.dasm (-12.40 % of base)
       -1069 : 73891.dasm (-5.74 % of base)
        -761 : 517830.dasm (-14.87 % of base)
        -761 : 517866.dasm (-14.87 % of base)
        -751 : 517979.dasm (-14.44 % of base)
        -751 : 517948.dasm (-14.44 % of base)
        -713 : 456608.dasm (-7.20 % of base)
        -684 : 499353.dasm (-4.99 % of base)
        -552 : 594285.dasm (-2.42 % of base)
        -540 : 517898.dasm (-15.68 % of base)
        -540 : 517961.dasm (-15.68 % of base)
        -514 : 473016.dasm (-5.92 % of base)
        -514 : 473336.dasm (-5.92 % of base)
        -513 : 379866.dasm (-9.60 % of base)
        -513 : 379864.dasm (-9.60 % of base)
        -509 : 259251.dasm (-5.96 % of base)
        -504 : 470982.dasm (-7.71 % of base)

95 total files with Code Size differences (56 improved, 39 regressed), 20 unchanged.

Top method regressions (bytes):
         118 (6.89 % of base) : 336352.dasm - System.IO.Tests.File_ReadWriteAllText:OutputIsTheSameAsForStreamWriter(System.String,System.Text.Encoding):this (Tier1)
          88 (1.93 % of base) : 95936.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (Tier1)
          80 (3.62 % of base) : 630625.dasm - System.Text.Json.JsonTestHelper:AssertJsonEqual(System.String,System.String) (Tier1)
          66 (3.01 % of base) : 659169.dasm - System.Text.Json.JsonTestHelper:AssertJsonEqual(System.String,System.String) (Tier1)
          64 (1.55 % of base) : 471947.dasm - System.Xml.Xsl.IlGen.XmlILOptimizerVisitor:VisitEq(System.Xml.Xsl.Qil.QilBinary):System.Xml.Xsl.Qil.QilNode:this (Tier1)
          63 (2.26 % of base) : 548639.dasm - System.Tests.UInt128Tests+<Parse_Valid_TestData>d__13:MoveNext():ubyte:this (Tier1)
          60 (1.21 % of base) : 475082.dasm - (dynamicClass):<xsl:apply-templates>(System.Xml.Xsl.Runtime.XmlQueryRuntime,System.Xml.XPath.XPathNavigator) (FullOpts)
          60 (2.79 % of base) : 705519.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:ReportUnusedImports(Microsoft.CodeAnalysis.SyntaxTree,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):this (Tier1)
          58 (2.60 % of base) : 93248.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[ushort]:ExecuteDeclaringReferenceActions(Microsoft.CodeAnalysis.SyntaxReference,Microsoft.CodeAnalysis.Diagnostics.SymbolDeclaredCompilationEvent,Microsoft.CodeAnalysis.Diagnostics.AnalysisScope,Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+GroupedAnalyzerActions[ushort],Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+GroupedAnalyzerActions[ushort],ubyte,ubyte,ubyte,ubyte,ubyte,System.Threading.CancellationToken):this (Tier1)
          56 (2.32 % of base) : 547580.dasm - System.Tests.UInt32Tests+<Parse_Valid_TestData>d__11:MoveNext():ubyte:this (Tier1)
          56 (2.29 % of base) : 551565.dasm - System.Tests.UInt64Tests+<Parse_Valid_TestData>d__11:MoveNext():ubyte:this (Tier1)
          46 (0.56 % of base) : 460275.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteAttributes(System.Xml.Serialization.XmlSerializationReaderILGen+Member[],System.Xml.Serialization.XmlSerializationReaderILGen+Member,System.String,System.Reflection.Emit.LocalBuilder):this (Tier1)
          46 (0.42 % of base) : 460224.dasm - System.Xml.Serialization.XmlSerializationWriterILGen:WriteStructMethod(System.Xml.Serialization.StructMapping):this (Tier1)
          45 (2.13 % of base) : 58615.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:ReportUnusedImports(Microsoft.CodeAnalysis.SyntaxTree,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):this (Tier1)
          42 (2.37 % of base) : 95422.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:ReportUnusedImports(Microsoft.CodeAnalysis.SyntaxTree,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):this (Tier1)
          42 (0.44 % of base) : 459640.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteMemberElementsIf(System.Xml.Serialization.XmlSerializationReaderILGen+Member[],System.Xml.Serialization.XmlSerializationReaderILGen+Member,System.String):this (Tier1)
          32 (2.21 % of base) : 280132.dasm - System.Data.ConstNode:SmallestDecimal(System.Object):System.Object (Instrumented Tier0)
          31 (2.72 % of base) : 93250.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1[ushort]:ComputeDeclarationAnalysisData(Microsoft.CodeAnalysis.ISymbol,Microsoft.CodeAnalysis.SyntaxReference,Microsoft.CodeAnalysis.SemanticModel,Microsoft.CodeAnalysis.Diagnostics.AnalysisScope,System.Threading.CancellationToken):Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver+DeclarationAnalysisData (Tier1)
          31 (0.72 % of base) : 74018.dasm - System.Globalization.Tests.InvariantModeTests:TestCasing():this (Tier1-OSR)
          30 (1.09 % of base) : 480167.dasm - System.Xml.Schema.XmlSchemaSet:Add(System.Xml.Schema.XmlSchemaSet):this (Tier1)

Top method improvements (bytes):
       -1911 (-8.41 % of base) : 278406.dasm - System.Xml.Schema.SchemaNames:.ctor(System.Xml.XmlNameTable):this (Instrumented Tier0)
       -1825 (-1.38 % of base) : 298675.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach001.freach001.Test:MainMethod():int (Instrumented Tier0)
       -1825 (-1.36 % of base) : 302681.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach007.freach007.Test:MainMethod():int (Instrumented Tier0)
       -1647 (-12.40 % of base) : 465911.dasm - System.Xml.Xsl.Xslt.KeywordsTable:.ctor(System.Xml.XmlNameTable):this (Instrumented Tier0)
       -1069 (-5.74 % of base) : 73891.dasm - System.Globalization.Tests.InvariantModeTests:TestCultureData(System.String):this (Instrumented Tier0)
        -761 (-14.87 % of base) : 517830.dasm - System.Numerics.Tests.ToStringTest:RunCustomFormatToStringTests(System.Random,System.String,System.String,int,System.Numerics.Tests.ToStringTest+StringFormatter) (Instrumented Tier0)
        -761 (-14.87 % of base) : 517866.dasm - System.Numerics.Tests.ToStringTest:RunCustomFormatToStringTests(System.Random,System.String,System.String,int,System.Numerics.Tests.ToStringTest+StringFormatter) (Instrumented Tier0)
        -751 (-14.44 % of base) : 517979.dasm - System.Numerics.Tests.ToStringTest:RunStandardFormatToStringTests_Helper(System.Random,System.String,System.String,int,System.Numerics.Tests.ToStringTest+StringFormatter,ubyte) (Instrumented Tier0)
        -751 (-14.44 % of base) : 517948.dasm - System.Numerics.Tests.ToStringTest:RunStandardFormatToStringTests_Helper(System.Random,System.String,System.String,int,System.Numerics.Tests.ToStringTest+StringFormatter,ubyte) (Instrumented Tier0)
        -713 (-7.20 % of base) : 456608.dasm - System.Xml.Serialization.XmlSerializationReader:InitPrimitiveIDs():this (Instrumented Tier0)
        -684 (-4.99 % of base) : 499353.dasm - System.Reflection.Tests.PropertyTests:TestProperties_GetterSetter() (Instrumented Tier0)
        -552 (-2.42 % of base) : 594285.dasm - System.Security.Cryptography.Tests.CryptoConfigTests+<get_AllValidNames>d__27:MoveNext():ubyte:this (Instrumented Tier0)
        -540 (-15.68 % of base) : 517898.dasm - System.Numerics.Tests.ToStringTest:RunSimpleProviderToStringTests(System.Random,System.String,System.Globalization.NumberFormatInfo,int,System.Numerics.Tests.ToStringTest+StringFormatter) (Instrumented Tier0)
        -540 (-15.68 % of base) : 517961.dasm - System.Numerics.Tests.ToStringTest:RunSimpleProviderToStringTests(System.Random,System.String,System.Globalization.NumberFormatInfo,int,System.Numerics.Tests.ToStringTest+StringFormatter) (Instrumented Tier0)
        -514 (-5.92 % of base) : 473016.dasm - System.Xml.Xsl.Xslt.QilGenerator:System.Xml.Xsl.XPath.IXPathEnvironment.ResolveFunction(System.String,System.String,System.Collections.Generic.IList`1[System.Xml.Xsl.Qil.QilNode],System.Xml.Xsl.XPath.IFocus):System.Xml.Xsl.Qil.QilNode:this (Instrumented Tier0)
        -514 (-5.92 % of base) : 473336.dasm - System.Xml.Xsl.Xslt.QilGenerator:System.Xml.Xsl.XPath.IXPathEnvironment.ResolveFunction(System.String,System.String,System.Collections.Generic.IList`1[System.Xml.Xsl.Qil.QilNode],System.Xml.Xsl.XPath.IFocus):System.Xml.Xsl.Qil.QilNode:this (Instrumented Tier0)
        -513 (-9.60 % of base) : 379864.dasm - System.SpanTests.IndexOfAnyInRangeTests`1[System.__Canon]:MatrixOfLengthsAndOffsets_Any_FindsValueAtExpectedIndex():this (Instrumented Tier0)
        -513 (-9.60 % of base) : 379866.dasm - System.SpanTests.IndexOfAnyInRangeTests`1[System.__Canon]:MatrixOfLengthsAndOffsets_AnyExcept_FindsValueAtExpectedIndex():this (Instrumented Tier0)
        -509 (-5.96 % of base) : 259251.dasm - System.ComponentModel.Tests.DateTimeConverterTests+<ConvertToTestData>d__3:MoveNext():ubyte:this (Instrumented Tier0)
        -504 (-7.71 % of base) : 470982.dasm - System.Xml.Xsl.XPath.XPathBuilder:Function(System.String,System.String,System.Collections.Generic.IList`1[System.Xml.Xsl.Qil.QilNode]):System.Xml.Xsl.Qil.QilNode:this (Instrumented Tier0)

Top method regressions (percentages):
         118 (6.89 % of base) : 336352.dasm - System.IO.Tests.File_ReadWriteAllText:OutputIsTheSameAsForStreamWriter(System.String,System.Text.Encoding):this (Tier1)
           8 (5.97 % of base) : 339694.dasm - System.IO.Tests.RandomAccess_Base`1[long]:<ThrowsArgumentNullExceptionForNullHandle>b__6_0():System.Object:this (Instrumented Tier0)
           8 (5.67 % of base) : 273796.dasm - System.Data.Tests.SqlTypes.SqlBinaryTest+<>c__DisplayClass8_0:<CompareTo>b__0():System.Object:this (Tier0)
           8 (5.67 % of base) : 273282.dasm - System.Data.Tests.SqlTypes.SqlDateTimeTest+<>c__DisplayClass8_0:<CompareTo>b__0():System.Object:this (Tier0)
           8 (5.67 % of base) : 276465.dasm - System.Data.Tests.SqlTypes.SqlDecimalTest+<>c__DisplayClass13_0:<CompareTo>b__0():System.Object:this (Tier0)
           8 (5.67 % of base) : 277094.dasm - System.Data.Tests.SqlTypes.SqlStringTest+<>c__DisplayClass14_0:<CompareToArgumentException>b__0():System.Object:this (Tier0)
          14 (5.65 % of base) : 359310.dasm - System.Linq.Parallel.ConcatQueryOperator`1+ConcatQueryOperatorResults[int]:.ctor(System.Linq.Parallel.QueryResults`1[int],System.Linq.Parallel.QueryResults`1[int],System.Linq.Parallel.ConcatQueryOperator`1[int],System.Linq.Parallel.QuerySettings,ubyte):this (Instrumented Tier0)
           8 (5.56 % of base) : 648374.dasm - System.Text.Json.SourceGeneration.Tests.RealWorldContextTests:<BadCustomConverter_Struct>b__27_1():System.Object:this (Instrumented Tier0)
           8 (5.23 % of base) : 603899.dasm - System.Text.Tests.NegativeEncodingTests+<>c__DisplayClass3_0:<GetCharCount_Invalid>b__2():System.Object:this (Instrumented Tier0)
           8 (5.23 % of base) : 603900.dasm - System.Text.Tests.NegativeEncodingTests+<>c__DisplayClass3_0:<GetCharCount_Invalid>b__3():System.Object:this (Instrumented Tier0)
           8 (5.23 % of base) : 603901.dasm - System.Text.Tests.NegativeEncodingTests+<>c__DisplayClass3_0:<GetCharCount_Invalid>b__4():System.Object:this (Instrumented Tier0)
           8 (5.23 % of base) : 603906.dasm - System.Text.Tests.NegativeEncodingTests+<>c__DisplayClass3_0:<GetCharCount_Invalid>b__9():System.Object:this (Instrumented Tier0)
           8 (5.23 % of base) : 604167.dasm - System.Text.Tests.NegativeEncodingTests+<>c__DisplayClass4_0:<GetChars_Invalid>b__2():System.Object:this (Instrumented Tier0)
           8 (5.19 % of base) : 329419.dasm - System.IO.Compression.CompressionStreamUnitTestBase+<>c__DisplayClass18_0:<WrapStreamReturningBadReadValues>b__0():System.Object:this (Instrumented Tier0)
           8 (5.19 % of base) : 431160.dasm - System.IO.Tests.ConnectedStreamConformanceTests+<>c__DisplayClass49_0:<ReadTimeout_Expires_Throws>b__0():System.Object:this (Instrumented Tier0)
           8 (5.19 % of base) : 604241.dasm - System.Text.Tests.NegativeEncodingTests+<>c__DisplayClass1_0:<GetByteCount_Invalid>b__3():System.Object:this (Instrumented Tier0)
           8 (5.19 % of base) : 604242.dasm - System.Text.Tests.NegativeEncodingTests+<>c__DisplayClass1_0:<GetByteCount_Invalid>b__4():System.Object:this (Instrumented Tier0)
           8 (5.19 % of base) : 604243.dasm - System.Text.Tests.NegativeEncodingTests+<>c__DisplayClass1_0:<GetByteCount_Invalid>b__5():System.Object:this (Instrumented Tier0)
           8 (5.19 % of base) : 604247.dasm - System.Text.Tests.NegativeEncodingTests+<>c__DisplayClass1_0:<GetByteCount_Invalid>b__9():System.Object:this (Instrumented Tier0)
           8 (5.13 % of base) : 603904.dasm - System.Text.Tests.NegativeEncodingTests+<>c__DisplayClass3_0:<GetCharCount_Invalid>b__7():System.Object:this (Instrumented Tier0)

Top method improvements (percentages):
        -189 (-42.57 % of base) : 188698.dasm - Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression:Update(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.BoundObjectInitializerExpressionBase,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression:this (Instrumented Tier0)
        -184 (-35.18 % of base) : 709213.dasm - Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):this (Instrumented Tier0)
        -148 (-31.56 % of base) : 45462.dasm - Microsoft.CodeAnalysis.ProjectInfo:WithVersion(Microsoft.CodeAnalysis.VersionStamp):Microsoft.CodeAnalysis.ProjectInfo:this (Tier1)
        -424 (-28.71 % of base) : 154795.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:.ctor(Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions):this (Instrumented Tier0)
        -424 (-28.71 % of base) : 24122.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:.ctor(Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions):this (Instrumented Tier0)
        -424 (-28.71 % of base) : 167898.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions:.ctor(Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions):this (Instrumented Tier0)
         -37 (-27.61 % of base) : 57142.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ImportInfo,System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:TryUpdate(Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ImportInfo,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[System.__Canon]):ubyte:this (Tier1)
        -227 (-27.42 % of base) : 188686.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Synthesized(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte]):Microsoft.CodeAnalysis.CSharp.BoundCall (Instrumented Tier0)
        -113 (-26.65 % of base) : 82137.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalysisContextInfo:.ctor(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.IOperation):this (Instrumented Tier0)
        -174 (-25.63 % of base) : 689417.dasm - Microsoft.CodeAnalysis.CSharp.SyntheticBoundNodeFactory:Call(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],ubyte):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Instrumented Tier0)
         -69 (-25.09 % of base) : 116549.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedAccessorValueParameterSymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,int):this (Instrumented Tier0)
         -23 (-24.73 % of base) : 661708.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlyMemory`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (Tier1)
         -46 (-24.60 % of base) : 129035.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory:Add(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier,Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite):this (Tier1)
         -68 (-24.46 % of base) : 190082.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:SetAnalyzedNullability(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState):this (Tier1)
         -37 (-23.42 % of base) : 185612.dasm - Microsoft.CodeAnalysis.DocumentInfo:WithDesignTimeOnly(ubyte):Microsoft.CodeAnalysis.DocumentInfo:this (Tier1)
        -131 (-23.27 % of base) : 527639.dasm - System.Runtime.Serialization.ReflectionReader:ReflectionReadMember(System.Runtime.Serialization.XmlReaderDelegator,System.Runtime.Serialization.XmlObjectSerializerReadContext,System.Runtime.Serialization.DataContracts.ClassDataContract,byref,int,System.Runtime.Serialization.DataContracts.DataMember[]):this (Instrumented Tier0)
        -202 (-22.39 % of base) : 41115.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax:WithSemicolonToken(Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax:this (Instrumented Tier0)
         -73 (-22.32 % of base) : 426374.dasm - Kerberos.NET.Crypto.AESTransformer+<>c__DisplayClass17_0:<GetOrDeriveKey>b__0(System.ReadOnlyMemory`1[ubyte]):System.ReadOnlyMemory`1[ubyte]:this (Instrumented Tier0)
         -74 (-21.89 % of base) : 479764.dasm - System.Xml.Schema.XmlSchemaValidator:SendValidationEvent(System.String,System.String[],System.Exception):this (Instrumented Tier0)
         -48 (-21.52 % of base) : 448454.dasm - System.Numerics.Tests.QuaternionTests:QuaternionZeroTest():this (Tier0)


librariestestsnotieredcompilation.run.linux.x64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 130468363 (overridden on cmd)
Total bytes of diff: 130427097 (overridden on cmd)
Total bytes of delta: -41266 (-0.03 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         209 : 4279.dasm (0.72 % of base)
         158 : 59259.dasm (0.55 % of base)
          94 : 38119.dasm (1.40 % of base)
          66 : 207396.dasm (5.95 % of base)
          63 : 146899.dasm (0.53 % of base)
          61 : 206248.dasm (2.21 % of base)
          60 : 170493.dasm (1.52 % of base)
          59 : 38092.dasm (1.34 % of base)
          58 : 112484.dasm (2.83 % of base)
          56 : 178307.dasm (4.58 % of base)
          55 : 209081.dasm (2.28 % of base)
          55 : 203685.dasm (2.25 % of base)
          49 : 259867.dasm (6.86 % of base)
          48 : 10549.dasm (2.64 % of base)
          48 : 255158.dasm (1.59 % of base)
          45 : 50429.dasm (3.21 % of base)
          45 : 178057.dasm (3.83 % of base)
          44 : 169454.dasm (1.08 % of base)
          44 : 94543.dasm (3.04 % of base)
          38 : 80260.dasm (2.84 % of base)

Top file improvements (bytes):
        -850 : 14370.dasm (-12.12 % of base)
        -365 : 111481.dasm (-3.38 % of base)
        -364 : 41550.dasm (-10.02 % of base)
        -305 : 14375.dasm (-12.22 % of base)
        -271 : 265164.dasm (-7.08 % of base)
        -232 : 260292.dasm (-5.55 % of base)
        -197 : 19655.dasm (-1.05 % of base)
        -195 : 7852.dasm (-3.06 % of base)
        -193 : 33012.dasm (-9.91 % of base)
        -188 : 259183.dasm (-11.35 % of base)
        -180 : 259202.dasm (-10.60 % of base)
        -178 : 14404.dasm (-14.38 % of base)
        -169 : 156054.dasm (-5.93 % of base)
        -167 : 105338.dasm (-1.37 % of base)
        -167 : 114396.dasm (-1.37 % of base)
        -161 : 29781.dasm (-13.27 % of base)
        -160 : 14330.dasm (-12.62 % of base)
        -158 : 156140.dasm (-6.14 % of base)
        -152 : 115776.dasm (-3.98 % of base)
        -150 : 115726.dasm (-7.55 % of base)

78 total files with Code Size differences (44 improved, 34 regressed), 20 unchanged.

Top method regressions (bytes):
         209 (0.72 % of base) : 4279.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
         158 (0.55 % of base) : 59259.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          94 (1.40 % of base) : 38119.dasm - Microsoft.Extensions.DependencyModel.Tests.DependencyContextBuilderTests:FillsRuntimeLibraryProperties():this (FullOpts)
          66 (5.95 % of base) : 207396.dasm - System.Tests.StringTests:IsWhiteSpaceTrueLatin1() (FullOpts)
          63 (0.53 % of base) : 146899.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
          61 (2.21 % of base) : 206248.dasm - System.Tests.UInt128Tests+<Parse_Valid_TestData>d__13:MoveNext():ubyte:this (FullOpts)
          60 (1.52 % of base) : 170493.dasm - (dynamicClass):<xsl:apply-templates>(System.Xml.Xsl.Runtime.XmlQueryRuntime,System.Xml.XPath.XPathNavigator) (FullOpts)
          59 (1.34 % of base) : 38092.dasm - Microsoft.Extensions.DependencyModel.Tests.DependencyContextBuilderTests:FillsCompileLibraryProperties():this (FullOpts)
          58 (2.83 % of base) : 112484.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.basic.operate007a.operate007a.Test:Test2():ubyte (FullOpts)
          56 (4.58 % of base) : 178307.dasm - System.Reflection.Emit.ILGeneratorImpl:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
          55 (2.28 % of base) : 209081.dasm - System.Tests.UInt32Tests+<Parse_Valid_TestData>d__11:MoveNext():ubyte:this (FullOpts)
          55 (2.25 % of base) : 203685.dasm - System.Tests.UInt64Tests+<Parse_Valid_TestData>d__11:MoveNext():ubyte:this (FullOpts)
          49 (6.86 % of base) : 259867.dasm - System.Text.Json.Serialization.Tests.JsonElementClass:Initialize():this (FullOpts)
          48 (2.64 % of base) : 10549.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindFunctionPointerInvocation(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundFunctionPointerInvocation:this (FullOpts)
          48 (1.59 % of base) : 255158.dasm - System.Text.Json.Nodes.Tests.ParseTests:Parse_TryGetValue() (FullOpts)
          45 (3.21 % of base) : 50429.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:EnforceParameterNotNullOnExit(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState):this (FullOpts)
          45 (3.83 % of base) : 178057.dasm - System.Reflection.Emit.Tests.ConstructorBuilderDefineParameter:DefineParameter_MultipleParameters_NullParameterNames():this (FullOpts)
          44 (3.04 % of base) : 94543.dasm - System.Data.ConstraintCollection:FinishInitConstraints():this (FullOpts)
          44 (1.08 % of base) : 169454.dasm - System.Xml.Xsl.IlGen.XmlILOptimizerVisitor:VisitEq(System.Xml.Xsl.Qil.QilBinary):System.Xml.Xsl.Qil.QilNode:this (FullOpts)
          38 (2.84 % of base) : 80260.dasm - System.ComponentModel.DataAnnotations.Tests.CompareAttributeTests:InvalidValues():System.Collections.Generic.IEnumerable`1[System.ComponentModel.DataAnnotations.Tests.ValidationAttributeTestBase+TestCase]:this (FullOpts)

Top method improvements (bytes):
        -850 (-12.12 % of base) : 14370.dasm - Microsoft.CodeAnalysis.CSharp.Formatting.IndentBlockFormattingRule:AddAlignmentBlockOperation(System.Collections.Generic.List`1[Microsoft.CodeAnalysis.Formatting.Rules.IndentBlockOperation],Microsoft.CodeAnalysis.SyntaxNode) (FullOpts)
        -365 (-3.38 % of base) : 111481.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.returnType.covariant.usage001.usage001.Test:MainMethod(System.String[]):int (FullOpts)
        -364 (-10.02 % of base) : 41550.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -305 (-12.22 % of base) : 14375.dasm - Microsoft.CodeAnalysis.CSharp.Formatting.IndentBlockFormattingRule:AddBlockIndentationOperation(System.Collections.Generic.List`1[Microsoft.CodeAnalysis.Formatting.Rules.IndentBlockOperation],Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
        -271 (-7.08 % of base) : 265164.dasm - System.Text.Json.Nodes.Tests.JsonNodeTests:JsonTypes_Deserialize() (FullOpts)
        -232 (-5.55 % of base) : 260292.dasm - System.Text.Json.Nodes.Tests.ParentPathRootTests:GetPathAndRoot() (FullOpts)
        -197 (-1.05 % of base) : 19655.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
        -195 (-3.06 % of base) : 7852.dasm - Microsoft.CodeAnalysis.GeneratorDriver:RunGeneratorsCore(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.DiagnosticBag,System.Threading.CancellationToken):Microsoft.CodeAnalysis.GeneratorDriverState:this (FullOpts)
        -193 (-9.91 % of base) : 33012.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -188 (-11.35 % of base) : 259183.dasm - System.Text.Json.Nodes.Tests.OperatorTests:ImplicitOperators_FromNullValues() (FullOpts)
        -180 (-10.60 % of base) : 259202.dasm - System.Text.Json.Nodes.Tests.OperatorTests:ImplicitOperators_FromNullableValues() (FullOpts)
        -178 (-14.38 % of base) : 14404.dasm - Microsoft.CodeAnalysis.CSharp.Formatting.IndentBlockFormattingRule:AddLabelIndentationOperation(System.Collections.Generic.List`1[Microsoft.CodeAnalysis.Formatting.Rules.IndentBlockOperation],Microsoft.CodeAnalysis.SyntaxNode):this (FullOpts)
        -169 (-5.93 % of base) : 156054.dasm - Kerberos.NET.Entities.KrbError:Encode(System.Security.Cryptography.Asn1.AsnWriter,System.Security.Cryptography.Asn1.Asn1Tag):this (FullOpts)
        -167 (-1.37 % of base) : 114396.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.context.operate.compound.basic.context02b.context02b.Test:RunTest():System.Object:this (FullOpts)
        -167 (-1.37 % of base) : 105338.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.context.operate.compound.basic.context02c.context02c.Test:RunTest():System.Object:this (FullOpts)
        -161 (-13.27 % of base) : 29781.dasm - Microsoft.CodeAnalysis.Workspace:CreateProjectInfo(Microsoft.CodeAnalysis.Project):Microsoft.CodeAnalysis.ProjectInfo (FullOpts)
        -160 (-12.62 % of base) : 14330.dasm - Microsoft.CodeAnalysis.CSharp.Formatting.IndentUserSettingsFormattingRule:AddIndentBlockOperations(System.Collections.Generic.List`1[Microsoft.CodeAnalysis.Formatting.Rules.IndentBlockOperation],Microsoft.CodeAnalysis.SyntaxNode,byref):this (FullOpts)
        -158 (-6.14 % of base) : 156140.dasm - Kerberos.NET.Entities.KrbEncKdcRepPart:Encode(System.Security.Cryptography.Asn1.AsnWriter,System.Security.Cryptography.Asn1.Asn1Tag):this (FullOpts)
        -152 (-3.98 % of base) : 115776.dasm - System.Formats.Asn1.AsnWriter:WriteUtcTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset):this (FullOpts)
        -150 (-7.55 % of base) : 115726.dasm - System.Formats.Asn1.Tests.Reader.ReadBMPString:TryCopyBMPStringBytes(int,System.String,System.String) (FullOpts)

Top method regressions (percentages):
           9 (19.15 % of base) : 263719.dasm - System.Text.Json.Serialization.Tests.DefaultJsonTypeInfoResolverTests+<>c__DisplayClass86_0`1[System.__Canon]:<TestTypeInfoImmutability>b__12():System.Object:this (FullOpts)
           3 (7.50 % of base) : 122845.dasm - System.IO.Compression.Tests.ZipFile_ZipArchive_Create+<>c__DisplayClass0_0:<CreateEntryFromFileExtension>b__1():System.Object:this (FullOpts)
          49 (6.86 % of base) : 259867.dasm - System.Text.Json.Serialization.Tests.JsonElementClass:Initialize():this (FullOpts)
          12 (6.82 % of base) : 226154.dasm - System.Security.Cryptography.Xml.Transform:AcceptsType(System.Type):ubyte:this (FullOpts)
          66 (5.95 % of base) : 207396.dasm - System.Tests.StringTests:IsWhiteSpaceTrueLatin1() (FullOpts)
           8 (5.93 % of base) : 115544.dasm - System.Formats.Asn1.AsnWriter:WriteGeneralizedTime(System.DateTimeOffset,ubyte,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this (FullOpts)
          16 (5.80 % of base) : 169007.dasm - System.Xml.Xsl.XmlQueryTypeFactory:AddItemToChoice(System.Collections.Generic.List`1[System.Xml.Xsl.XmlQueryType],System.Xml.Xsl.XmlQueryType) (FullOpts)
          56 (4.58 % of base) : 178307.dasm - System.Reflection.Emit.ILGeneratorImpl:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
          13 (4.10 % of base) : 125415.dasm - System.IO.Tests.DirectoryInfo_CreateSubDirectory:PathAlreadyExistsAsDirectory(int):this (FullOpts)
          45 (3.83 % of base) : 178057.dasm - System.Reflection.Emit.Tests.ConstructorBuilderDefineParameter:DefineParameter_MultipleParameters_NullParameterNames():this (FullOpts)
           3 (3.80 % of base) : 259994.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c:<CheckInvalidString>b__76_0():System.Object:this (FullOpts)
          21 (3.66 % of base) : 123548.dasm - System.IO.Tests.FileStream_ctor_options:WhenDiskIsFullTheErrorMessageContainsAllDetails(int):this (FullOpts)
          21 (3.66 % of base) : 125772.dasm - System.IO.Tests.FileStream_ctor_options:WhenDiskIsFullTheErrorMessageContainsAllDetails(int):this (FullOpts)
           6 (3.33 % of base) : 20665.dasm - Newtonsoft.Json.JsonReader:Pop():int:this (FullOpts)
          45 (3.21 % of base) : 50429.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:EnforceParameterNotNullOnExit(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState):this (FullOpts)
           4 (3.17 % of base) : 124128.dasm - System.IO.Tests.AllGetSetAttributes+<>c__DisplayClass2_0:<SetAttributes_MissingFile>b__0():this (FullOpts)
          15 (3.12 % of base) : 25390.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder:BindStandardBinop(int,Microsoft.CSharp.RuntimeBinder.Semantics.Expr,Microsoft.CSharp.RuntimeBinder.Semantics.Expr):Microsoft.CSharp.RuntimeBinder.Semantics.Expr:this (FullOpts)
           3 (3.12 % of base) : 259869.dasm - System.Text.Json.Serialization.Tests.JsonDocumentClass:Initialize():this (FullOpts)
          44 (3.04 % of base) : 94543.dasm - System.Data.ConstraintCollection:FinishInitConstraints():this (FullOpts)
           2 (3.03 % of base) : 66679.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[int,int]:TryAdd(int,int):ubyte:this (FullOpts)

Top method improvements (percentages):
         -61 (-47.66 % of base) : 115738.dasm - System.Formats.Asn1.Tests.Reader.OverlappedReads:<NoOverlappedTextStrings>g__Method|3_0(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref,byref):ubyte (FullOpts)
         -26 (-42.62 % of base) : 257231.dasm - System.Text.Json.Nodes.Tests.JsonArrayTests+<>c__DisplayClass1_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
         -26 (-42.62 % of base) : 265030.dasm - System.Text.Json.Nodes.Tests.JsonObjectTests+<>c__DisplayClass16_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
         -26 (-42.62 % of base) : 255558.dasm - System.Text.Json.Nodes.Tests.JsonValueTests+<>c__DisplayClass16_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
         -47 (-36.43 % of base) : 222109.dasm - System.Security.Cryptography.X509Certificates.Tests.CertificateCreation.CrlBuilderTests+<>c__DisplayClass1_0:<AddEntryArgumentValidation>b__6():this (FullOpts)
         -47 (-32.64 % of base) : 222110.dasm - System.Security.Cryptography.X509Certificates.Tests.CertificateCreation.CrlBuilderTests+<>c__DisplayClass1_0:<AddEntryArgumentValidation>b__7():this (FullOpts)
        -135 (-31.62 % of base) : 42641.dasm - Microsoft.CodeAnalysis.ProjectInfo:WithDefaultNamespace(System.String):Microsoft.CodeAnalysis.ProjectInfo:this (FullOpts)
        -135 (-31.62 % of base) : 48272.dasm - Microsoft.CodeAnalysis.ProjectInfo:WithDefaultNamespace(System.String):Microsoft.CodeAnalysis.ProjectInfo:this (FullOpts)
        -148 (-31.56 % of base) : 3279.dasm - Microsoft.CodeAnalysis.ProjectInfo:WithVersion(Microsoft.CodeAnalysis.VersionStamp):Microsoft.CodeAnalysis.ProjectInfo:this (FullOpts)
        -139 (-31.38 % of base) : 42522.dasm - Microsoft.CodeAnalysis.ProjectInfo:WithVersion(Microsoft.CodeAnalysis.VersionStamp):Microsoft.CodeAnalysis.ProjectInfo:this (FullOpts)
        -139 (-31.38 % of base) : 48152.dasm - Microsoft.CodeAnalysis.ProjectInfo:WithVersion(Microsoft.CodeAnalysis.VersionStamp):Microsoft.CodeAnalysis.ProjectInfo:this (FullOpts)
         -43 (-29.45 % of base) : 222065.dasm - System.Security.Cryptography.X509Certificates.Tests.CertificateCreation.CrlBuilderTests+<>c__DisplayClass25_0:<AddInvalidSerial>b__2():this (FullOpts)
         -43 (-29.45 % of base) : 222066.dasm - System.Security.Cryptography.X509Certificates.Tests.CertificateCreation.CrlBuilderTests+<>c__DisplayClass25_0:<AddInvalidSerial>b__3():this (FullOpts)
         -38 (-26.57 % of base) : 222103.dasm - System.Security.Cryptography.X509Certificates.Tests.CertificateCreation.CrlBuilderTests+<>c__DisplayClass1_0:<AddEntryArgumentValidation>b__0():this (FullOpts)
         -41 (-26.28 % of base) : 222104.dasm - System.Security.Cryptography.X509Certificates.Tests.CertificateCreation.CrlBuilderTests+<>c__DisplayClass1_0:<AddEntryArgumentValidation>b__1():this (FullOpts)
         -47 (-26.26 % of base) : 222108.dasm - System.Security.Cryptography.X509Certificates.Tests.CertificateCreation.CrlBuilderTests+<>c__DisplayClass1_0:<AddEntryArgumentValidation>b__5():this (FullOpts)
         -43 (-25.00 % of base) : 222062.dasm - System.Security.Cryptography.X509Certificates.Tests.CertificateCreation.CrlBuilderTests+<>c__DisplayClass25_0:<AddInvalidSerial>b__0():this (FullOpts)
         -43 (-25.00 % of base) : 222064.dasm - System.Security.Cryptography.X509Certificates.Tests.CertificateCreation.CrlBuilderTests+<>c__DisplayClass25_0:<AddInvalidSerial>b__1():this (FullOpts)
         -43 (-24.71 % of base) : 222025.dasm - System.Security.Cryptography.X509Certificates.Tests.CertificateCreation.CrlBuilderTests+<>c__DisplayClass23_0:<UnsupportedRevocationReasons>b__0():this (FullOpts)
         -43 (-24.71 % of base) : 222029.dasm - System.Security.Cryptography.X509Certificates.Tests.CertificateCreation.CrlBuilderTests+<>c__DisplayClass23_0:<UnsupportedRevocationReasons>b__3():this (FullOpts)


realworld.run.linux.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 13194158 (overridden on cmd)
Total bytes of diff: 13188157 (overridden on cmd)
Total bytes of delta: -6001 (-0.05 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         303 : 6532.dasm (0.34 % of base)
         294 : 2503.dasm (3.05 % of base)
         209 : 16032.dasm (0.72 % of base)
          63 : 14098.dasm (0.53 % of base)
          53 : 15325.dasm (0.69 % of base)
          52 : 972.dasm (6.21 % of base)
          44 : 22678.dasm (0.62 % of base)
          39 : 20615.dasm (0.35 % of base)
          36 : 20489.dasm (1.40 % of base)
          35 : 23800.dasm (2.46 % of base)
          31 : 25872.dasm (2.04 % of base)
          25 : 23578.dasm (0.47 % of base)
          25 : 30408.dasm (1.33 % of base)
          24 : 22073.dasm (0.78 % of base)
          24 : 22261.dasm (1.11 % of base)
          24 : 24094.dasm (1.02 % of base)
          24 : 19736.dasm (1.20 % of base)
          24 : 21379.dasm (0.67 % of base)
          19 : 27563.dasm (1.30 % of base)
          18 : 22608.dasm (0.51 % of base)

Top file improvements (bytes):
        -197 : 13236.dasm (-25.22 % of base)
        -193 : 1787.dasm (-9.91 % of base)
        -146 : 25684.dasm (-8.63 % of base)
        -135 : 25156.dasm (-2.20 % of base)
        -131 : 24520.dasm (-6.11 % of base)
        -130 : 4540.dasm (-0.70 % of base)
        -127 : 23613.dasm (-23.69 % of base)
        -124 : 19705.dasm (-2.58 % of base)
        -118 : 15460.dasm (-3.60 % of base)
        -103 : 24187.dasm (-1.78 % of base)
         -95 : 13911.dasm (-3.78 % of base)
         -91 : 15678.dasm (-13.34 % of base)
         -87 : 19063.dasm (-14.01 % of base)
         -83 : 25446.dasm (-11.13 % of base)
         -81 : 26079.dasm (-4.99 % of base)
         -80 : 28404.dasm (-2.06 % of base)
         -79 : 23885.dasm (-1.41 % of base)
         -79 : 12974.dasm (-13.41 % of base)
         -72 : 24528.dasm (-14.66 % of base)
         -72 : 26148.dasm (-20.75 % of base)

71 total files with Code Size differences (41 improved, 30 regressed), 20 unchanged.

Top method regressions (bytes):
         303 (0.34 % of base) : 6532.dasm - FSharp.Compiler.TcGlobals+TcGlobals:.ctor(ubyte,FSharp.Compiler.AbstractIL.IL+ILGlobals,FSharp.Compiler.TypedTree+CcuThunk,System.String,ubyte,ubyte,Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Collections.FSharpList`1[System.String],Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+CcuThunk]]],ubyte,ubyte,Internal.Utilities.PathMap,FSharp.Compiler.Features+LanguageVersion):this (FullOpts)
         294 (3.05 % of base) : 2503.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.Features:.cctor() (FullOpts)
         209 (0.72 % of base) : 16032.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
          63 (0.53 % of base) : 14098.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
          53 (0.69 % of base) : 15325.dasm - Microsoft.ML.Trainers.SdcaMulticlassTrainerBase`1[System.__Canon]:TrainWithoutLock(Microsoft.ML.Runtime.IProgressChannelProvider,Microsoft.ML.Trainers.FloatLabelCursor+Factory,System.Random,Microsoft.ML.Trainers.SdcaTrainerBase`3+IdToIdxLookup[System.__Canon,System.__Canon,System.__Canon],int,Microsoft.ML.Trainers.SdcaTrainerBase`3+DualsTableBase[System.__Canon,System.__Canon,System.__Canon],float[],float[],float,Microsoft.ML.Data.VBuffer`1[float][],float[],Microsoft.ML.Data.VBuffer`1[float][],float[],float[]):this (FullOpts)
          52 (6.21 % of base) : 972.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
          44 (0.62 % of base) : 22678.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceCustomEventSymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.EventDeclarationSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
          39 (0.35 % of base) : 20615.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
          36 (1.40 % of base) : 20489.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbol:GetAccessorDeclarations(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,byref,byref,byref,byref) (FullOpts)
          35 (2.46 % of base) : 23800.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindConditionalOperator(Microsoft.CodeAnalysis.CSharp.Syntax.ConditionalExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          31 (2.04 % of base) : 25872.dasm - Microsoft.CodeAnalysis.CSharp.Binder+QueryTranslationState:AddRangeVariable(Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.RangeVariableSymbol:this (FullOpts)
          25 (0.47 % of base) : 23578.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (FullOpts)
          25 (1.33 % of base) : 30408.dasm - System.Management.Automation.ArgumentTypeConverterAttribute:Transform(System.Management.Automation.EngineIntrinsics,System.Object,ubyte,ubyte):System.Object:this (FullOpts)
          24 (1.02 % of base) : 24094.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindConditionalAccessReceiver(Microsoft.CodeAnalysis.CSharp.Syntax.ConditionalAccessExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          24 (1.20 % of base) : 19736.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:EnforceParameterNotNullOnExit(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState):this (FullOpts)
          24 (0.78 % of base) : 22073.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceDestructorSymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.CSharp.Syntax.DestructorDeclarationSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
          24 (0.67 % of base) : 21379.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol+SourceOrdinaryMethodSymbolComplex:MakeTypeParameters(Microsoft.CodeAnalysis.CSharp.Syntax.MethodDeclarationSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol]:this (FullOpts)
          24 (1.11 % of base) : 22261.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceUserDefinedOperatorSymbol:CreateUserDefinedOperatorSymbol(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.OperatorDeclarationSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceUserDefinedOperatorSymbol (FullOpts)
          19 (1.30 % of base) : 27563.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GenerateDisposeCall(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.MethodArgumentInfo,Microsoft.CodeAnalysis.CSharp.BoundAwaitableInfo,Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          18 (0.89 % of base) : 18997.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ModifierUtils:CheckModifiers(ubyte,ubyte,uint,uint,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Nullable`1[Microsoft.CodeAnalysis.SyntaxTokenList],byref):uint (FullOpts)

Top method improvements (bytes):
        -197 (-25.22 % of base) : 13236.dasm - Microsoft.ML.Internal.Utilities.Heap`1[Microsoft.ML.Internal.Utilities.MinWaiter+WaitStats]:BubbleDown(int):this (FullOpts)
        -193 (-9.91 % of base) : 1787.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -146 (-8.63 % of base) : 25684.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+<>c__DisplayClass449_0:<VisitSwitchExpressionCore>g__convertArms|0(Microsoft.CodeAnalysis.CSharp.BoundSwitchExpression,Microsoft.CodeAnalysis.PooledObjects.PooledDictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte]],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Conversion],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState:this (FullOpts)
        -135 (-2.20 % of base) : 25156.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitForEachExpression(Microsoft.CodeAnalysis.CSharp.BoundForEachStatement):this (FullOpts)
        -131 (-6.11 % of base) : 24520.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAnonymousFunction(Microsoft.CodeAnalysis.CSharp.Syntax.AnonymousFunctionExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.UnboundLambda:this (FullOpts)
        -130 (-0.70 % of base) : 4540.dasm - FSharp.Compiler.Lexer:token(FSharp.Compiler.Lexhelp+LexArgs,ubyte,Internal.Utilities.Text.Lexing.LexBuffer`1[ushort]):FSharp.Compiler.Parser+token (FullOpts)
        -127 (-23.69 % of base) : 23613.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitObjectElementInitializer>g__setAnalyzedNullability|169_1(Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate,System.Action`2[int,Microsoft.CodeAnalysis.CSharp.Symbol],ubyte):System.Action`2[int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]:this (FullOpts)
        -124 (-2.58 % of base) : 19705.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitAssignmentOperator(Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
        -118 (-3.60 % of base) : 15460.dasm - Microsoft.ML.Benchmarks.StochasticDualCoordinateAscentClassifierBench:Train(System.String):Microsoft.ML.Data.TransformerChain`1[Microsoft.ML.Data.MulticlassPredictionTransformer`1[Microsoft.ML.Trainers.MaximumEntropyModelParameters]]:this (FullOpts)
        -103 (-1.78 % of base) : 24187.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitConditionalAccess(Microsoft.CodeAnalysis.CSharp.BoundConditionalAccess,byref):this (FullOpts)
         -95 (-3.78 % of base) : 13911.dasm - Microsoft.ML.Benchmarks.StochasticDualCoordinateAscentClassifierBench:TrainSentiment():this (FullOpts)
         -91 (-13.34 % of base) : 15678.dasm - Microsoft.ML.StandardTrainersCatalog:SdcaMaximumEntropy(Microsoft.ML.MulticlassClassificationCatalog+MulticlassClassificationTrainers,Microsoft.ML.Trainers.SdcaMaximumEntropyMulticlassTrainer+Options):Microsoft.ML.Trainers.SdcaMaximumEntropyMulticlassTrainer (FullOpts)
         -87 (-14.01 % of base) : 19063.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NonMissingAssemblySymbol:LookupDeclaredTopLevelMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
         -83 (-11.13 % of base) : 25446.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitCollectionElementInitializer>g__setUpdatedSymbol|171_0(Microsoft.CodeAnalysis.CSharp.BoundCollectionElementInitializer,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate,ubyte):System.Action`2[int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]:this (FullOpts)
         -81 (-4.99 % of base) : 26079.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitDelegateCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundDelegateCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
         -80 (-2.06 % of base) : 28404.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.AnonymousTypeManager:AssignTemplatesNamesAndCompile(Microsoft.CodeAnalysis.CSharp.MethodCompiler,Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         -79 (-1.41 % of base) : 23885.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitConditionalOperatorCore(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
         -79 (-13.41 % of base) : 12974.dasm - Microsoft.ML.Trainers.SdcaBinaryTrainerBase`1[System.__Canon]:.ctor(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Trainers.SdcaBinaryTrainerBase`1+BinaryOptionsBase[System.__Canon],Microsoft.ML.Trainers.ISupportSdcaClassificationLoss,ubyte):this (FullOpts)
         -72 (-20.75 % of base) : 26148.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitDelegateCreationExpression>g__visitMethodGroupArgument|278_2(Microsoft.CodeAnalysis.CSharp.BoundDelegateCreationExpression,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundMethodGroup):System.Action`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (FullOpts)
         -72 (-14.66 % of base) : 24528.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+<>c__DisplayClass167_0:<VisitObjectCreationExpressionBase>b__5(Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState:this (FullOpts)

Top method regressions (percentages):
          52 (6.21 % of base) : 972.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
         294 (3.05 % of base) : 2503.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.Features:.cctor() (FullOpts)
          12 (2.89 % of base) : 20457.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbol:CreateConstructorSymbol(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.CSharp.Syntax.ConstructorDeclarationSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceConstructorSymbol (FullOpts)
          16 (2.54 % of base) : 25771.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<Scan>g__enforceMemberNotNullOnMember|61_2(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.String):this (FullOpts)
          35 (2.46 % of base) : 23800.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindConditionalOperator(Microsoft.CodeAnalysis.CSharp.Syntax.ConditionalExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          31 (2.04 % of base) : 25872.dasm - Microsoft.CodeAnalysis.CSharp.Binder+QueryTranslationState:AddRangeVariable(Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.RangeVariableSymbol:this (FullOpts)
          15 (1.96 % of base) : 24259.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindThis(Microsoft.CodeAnalysis.CSharp.Syntax.ThisExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundThisReference:this (FullOpts)
           4 (1.96 % of base) : 26475.dasm - Microsoft.CodeAnalysis.Emit.EmitOptions:.ctor(Microsoft.CodeAnalysis.Emit.EmitOptions):this (FullOpts)
          12 (1.91 % of base) : 12721.dasm - Microsoft.ML.Data.RowToRowTransformerBase+MapperBase:Microsoft.ML.Data.IRowMapper.CreateGetters(Microsoft.ML.DataViewRow,System.Func`2[int,ubyte],byref):System.Delegate[]:this (FullOpts)
          12 (1.41 % of base) : 5450.dasm - FSharp.Compiler.Lexer:token$cont@859(FSharp.Compiler.Lexhelp+LexArgs,ubyte,Internal.Utilities.Text.Lexing.LexBuffer`1[ushort],Microsoft.FSharp.Core.Unit):FSharp.Compiler.Parser+token (FullOpts)
          36 (1.40 % of base) : 20489.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbol:GetAccessorDeclarations(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,byref,byref,byref,byref) (FullOpts)
          25 (1.33 % of base) : 30408.dasm - System.Management.Automation.ArgumentTypeConverterAttribute:Transform(System.Management.Automation.EngineIntrinsics,System.Object,ubyte,ubyte):System.Object:this (FullOpts)
          19 (1.30 % of base) : 27563.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:GenerateDisposeCall(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.MethodArgumentInfo,Microsoft.CodeAnalysis.CSharp.BoundAwaitableInfo,Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          24 (1.20 % of base) : 19736.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:EnforceParameterNotNullOnExit(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState):this (FullOpts)
          24 (1.11 % of base) : 22261.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceUserDefinedOperatorSymbol:CreateUserDefinedOperatorSymbol(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.OperatorDeclarationSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourceUserDefinedOperatorSymbol (FullOpts)
          24 (1.02 % of base) : 24094.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindConditionalAccessReceiver(Microsoft.CodeAnalysis.CSharp.Syntax.ConditionalAccessExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          16 (1.00 % of base) : 24849.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckParenthesizedLambdaParameters(Microsoft.CodeAnalysis.SeparatedSyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.ParameterSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (FullOpts)
           8 (0.98 % of base) : 25653.dasm - Microsoft.CodeAnalysis.CSharp.Binder:ReportPatternMemberLookupDiagnostics(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.LookupResult,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,System.String,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
          18 (0.89 % of base) : 18997.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ModifierUtils:CheckModifiers(ubyte,ubyte,uint,uint,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Nullable`1[Microsoft.CodeAnalysis.SyntaxTokenList],byref):uint (FullOpts)
          10 (0.88 % of base) : 5884.dasm - FSharp.Compiler.AbstractIL.ILBinaryReader+typeDefReader@1688:Invoke(int):FSharp.Compiler.AbstractIL.IL+ILTypeDef:this (FullOpts)

Top method improvements (percentages):
        -197 (-25.22 % of base) : 13236.dasm - Microsoft.ML.Internal.Utilities.Heap`1[Microsoft.ML.Internal.Utilities.MinWaiter+WaitStats]:BubbleDown(int):this (FullOpts)
        -127 (-23.69 % of base) : 23613.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitObjectElementInitializer>g__setAnalyzedNullability|169_1(Microsoft.CodeAnalysis.CSharp.BoundAssignmentOperator,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate,System.Action`2[int,Microsoft.CodeAnalysis.CSharp.Symbol],ubyte):System.Action`2[int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]:this (FullOpts)
         -72 (-20.75 % of base) : 26148.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitDelegateCreationExpression>g__visitMethodGroupArgument|278_2(Microsoft.CodeAnalysis.CSharp.BoundDelegateCreationExpression,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.BoundMethodGroup):System.Action`1[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]:this (FullOpts)
         -25 (-19.38 % of base) : 14766.dasm - System.Formats.Asn1.AsnDecoder:ReadIntegerBytes(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.ReadOnlySpan`1[ubyte] (FullOpts)
          -9 (-19.15 % of base) : 13636.dasm - Microsoft.ML.Trainers.SdcaTrainerBase`3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]:ApplyAt(long,Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]):this (FullOpts)
         -20 (-16.39 % of base) : 3236.dasm - System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -37 (-15.95 % of base) : 19820.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:RecordImportDependencies(Microsoft.CodeAnalysis.CSharp.Syntax.UsingDirectiveSyntax,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]):this (FullOpts)
         -72 (-14.66 % of base) : 24528.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+<>c__DisplayClass167_0:<VisitObjectCreationExpressionBase>b__5(Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState:this (FullOpts)
         -40 (-14.49 % of base) : 19212.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:RecordImportInternal(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):this (FullOpts)
         -87 (-14.01 % of base) : 19063.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NonMissingAssemblySymbol:LookupDeclaredTopLevelMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
         -79 (-13.41 % of base) : 12974.dasm - Microsoft.ML.Trainers.SdcaBinaryTrainerBase`1[System.__Canon]:.ctor(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Trainers.SdcaBinaryTrainerBase`1+BinaryOptionsBase[System.__Canon],Microsoft.ML.Trainers.ISupportSdcaClassificationLoss,ubyte):this (FullOpts)
         -91 (-13.34 % of base) : 15678.dasm - Microsoft.ML.StandardTrainersCatalog:SdcaMaximumEntropy(Microsoft.ML.MulticlassClassificationCatalog+MulticlassClassificationTrainers,Microsoft.ML.Trainers.SdcaMaximumEntropyMulticlassTrainer+Options):Microsoft.ML.Trainers.SdcaMaximumEntropyMulticlassTrainer (FullOpts)
         -58 (-13.30 % of base) : 24235.dasm - Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:ExactTypeArgumentInference(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref):this (FullOpts)
         -21 (-12.14 % of base) : 14702.dasm - System.Formats.Asn1.AsnDecoder:ReadObjectIdentifier(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.String (FullOpts)
         -28 (-11.91 % of base) : 27107.dasm - System.Collections.Generic.Stack`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -14 (-11.86 % of base) : 13452.dasm - Microsoft.ML.Transforms.Text.TextFeaturizingEstimator+Transformer:.ctor(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Data.TransformerChain`1[Microsoft.ML.ITransformer]):this (FullOpts)
         -10 (-11.63 % of base) : 2378.dasm - System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
         -47 (-11.44 % of base) : 14846.dasm - System.Formats.Asn1.AsnDecoder:ReadEncodedValue(System.ReadOnlySpan`1[ubyte],int,byref,byref,byref):System.Formats.Asn1.Asn1Tag (FullOpts)
         -83 (-11.13 % of base) : 25446.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitCollectionElementInitializer>g__setUpdatedSymbol|171_0(Microsoft.CodeAnalysis.CSharp.BoundCollectionElementInitializer,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate,ubyte):System.Action`2[int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]:this (FullOpts)
         -38 (-10.41 % of base) : 25350.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitDiscardExpression(Microsoft.CodeAnalysis.CSharp.BoundDiscardExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)


smoke_tests.nativeaot.linux.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os linux -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 4198166 (overridden on cmd)
Total bytes of diff: 4197825 (overridden on cmd)
Total bytes of delta: -341 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          26 : 9130.dasm (15.76 % of base)
          10 : 9097.dasm (2.00 % of base)
          10 : 6386.dasm (0.54 % of base)
           9 : 17725.dasm (3.12 % of base)
           9 : 24194.dasm (3.12 % of base)
           9 : 22894.dasm (3.10 % of base)
           9 : 1278.dasm (3.12 % of base)
           9 : 20708.dasm (3.12 % of base)
           8 : 20007.dasm (2.22 % of base)
           4 : 9018.dasm (0.53 % of base)
           3 : 6903.dasm (0.96 % of base)
           2 : 18210.dasm (0.57 % of base)
           2 : 18222.dasm (1.45 % of base)
           2 : 21198.dasm (0.57 % of base)
           2 : 2185.dasm (1.45 % of base)
           2 : 2175.dasm (0.57 % of base)
           2 : 24688.dasm (0.57 % of base)
           2 : 3743.dasm (0.53 % of base)
           2 : 6394.dasm (0.26 % of base)
           2 : 21204.dasm (1.45 % of base)

Top file improvements (bytes):
         -32 : 8285.dasm (-12.31 % of base)
         -28 : 2784.dasm (-12.23 % of base)
         -22 : 20050.dasm (-13.17 % of base)
         -18 : 21508.dasm (-2.41 % of base)
         -18 : 24978.dasm (-2.56 % of base)
         -18 : 18536.dasm (-2.56 % of base)
         -18 : 18524.dasm (-2.41 % of base)
         -18 : 21521.dasm (-2.56 % of base)
         -18 : 24964.dasm (-2.41 % of base)
         -18 : 3285.dasm (-2.41 % of base)
         -18 : 3294.dasm (-2.56 % of base)
         -10 : 9155.dasm (-12.82 % of base)
          -9 : 19662.dasm (-8.18 % of base)
          -9 : 2755.dasm (-8.18 % of base)
          -9 : 4682.dasm (-8.18 % of base)
          -9 : 22659.dasm (-8.18 % of base)
          -9 : 26140.dasm (-8.18 % of base)
          -9 : 6330.dasm (-2.69 % of base)
          -9 : 6383.dasm (-3.10 % of base)
          -8 : 4918.dasm (-7.27 % of base)

48 total files with Code Size differences (27 improved, 21 regressed), 20 unchanged.

Top method regressions (bytes):
          26 (15.76 % of base) : 9130.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:CreateDirectoryHandle(System.String,ubyte):long:this (FullOpts)
          10 (0.54 % of base) : 6386.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
          10 (2.00 % of base) : 9097.dasm - System.MemoryExtensions:ToLowerInvariant(System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):int (FullOpts)
           9 (3.12 % of base) : 17725.dasm - System.Text.UnicodeEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)
           9 (3.12 % of base) : 24194.dasm - System.Text.UnicodeEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)
           9 (3.10 % of base) : 22894.dasm - System.Text.UnicodeEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)
           9 (3.12 % of base) : 1278.dasm - System.Text.UnicodeEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)
           9 (3.12 % of base) : 20708.dasm - System.Text.UnicodeEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)
           8 (2.22 % of base) : 20007.dasm - PInvokeTests.Program:InlineArrayTest(byref,byref):ubyte (FullOpts)
           4 (0.53 % of base) : 9018.dasm - System.Uri:GetHostViaCustomSyntax():this (FullOpts)
           3 (0.96 % of base) : 6903.dasm - System.Linq.Expressions.Interpreter.EnterTryFaultInstruction:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
           2 (0.26 % of base) : 6394.dasm - Internal.Runtime.TypeLoader.TypeBuilder:PrepareType(Internal.TypeSystem.TypeDesc):this (FullOpts)
           2 (0.53 % of base) : 3743.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:Open(System.String,int,int,ubyte,byref,System.Func`4[Interop+ErrorInfo,int,System.String,System.Exception]):Microsoft.Win32.SafeHandles.SafeFileHandle (FullOpts)
           2 (1.45 % of base) : 18222.dasm - System.Text.EncoderReplacementFallbackBuffer:Fallback(ushort,int):ubyte:this (FullOpts)
           2 (1.45 % of base) : 2185.dasm - System.Text.EncoderReplacementFallbackBuffer:Fallback(ushort,int):ubyte:this (FullOpts)
           2 (1.45 % of base) : 21204.dasm - System.Text.EncoderReplacementFallbackBuffer:Fallback(ushort,int):ubyte:this (FullOpts)
           2 (1.45 % of base) : 24697.dasm - System.Text.EncoderReplacementFallbackBuffer:Fallback(ushort,int):ubyte:this (FullOpts)
           2 (0.57 % of base) : 18210.dasm - System.Text.Encoding:GetByteCountWithFallback(ulong,int,int,System.Text.EncoderNLS):int:this (FullOpts)
           2 (0.57 % of base) : 21198.dasm - System.Text.Encoding:GetByteCountWithFallback(ulong,int,int,System.Text.EncoderNLS):int:this (FullOpts)
           2 (0.57 % of base) : 2175.dasm - System.Text.Encoding:GetByteCountWithFallback(ulong,int,int,System.Text.EncoderNLS):int:this (FullOpts)

Top method improvements (bytes):
         -32 (-12.31 % of base) : 8285.dasm - System.Globalization.TimeSpanParse:TryParseExactTimeSpan(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.IFormatProvider,int,byref):ubyte (FullOpts)
         -28 (-12.23 % of base) : 2784.dasm - System.Collections.Generic.Stack`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -22 (-13.17 % of base) : 20050.dasm - Internal.CompilerGenerated.<Module>:NativeToManaged__InlineArrayStruct(byref,byref) (FullOpts)
         -18 (-2.56 % of base) : 24978.dasm - System.Collections.Concurrent.ConcurrentUnifier`2+Container[System.__Canon,System.__Canon]:VerifyUnifierConsistency():this (FullOpts)
         -18 (-2.56 % of base) : 18536.dasm - System.Collections.Concurrent.ConcurrentUnifier`2+Container[System.__Canon,System.__Canon]:VerifyUnifierConsistency():this (FullOpts)
         -18 (-2.56 % of base) : 21521.dasm - System.Collections.Concurrent.ConcurrentUnifier`2+Container[System.__Canon,System.__Canon]:VerifyUnifierConsistency():this (FullOpts)
         -18 (-2.56 % of base) : 3294.dasm - System.Collections.Concurrent.ConcurrentUnifier`2+Container[System.__Canon,System.__Canon]:VerifyUnifierConsistency():this (FullOpts)
         -18 (-2.41 % of base) : 21508.dasm - System.Collections.Concurrent.ConcurrentUnifierW`2+Container[System.__Canon,System.__Canon]:VerifyUnifierConsistency():this (FullOpts)
         -18 (-2.41 % of base) : 18524.dasm - System.Collections.Concurrent.ConcurrentUnifierW`2+Container[System.__Canon,System.__Canon]:VerifyUnifierConsistency():this (FullOpts)
         -18 (-2.41 % of base) : 24964.dasm - System.Collections.Concurrent.ConcurrentUnifierW`2+Container[System.__Canon,System.__Canon]:VerifyUnifierConsistency():this (FullOpts)
         -18 (-2.41 % of base) : 3285.dasm - System.Collections.Concurrent.ConcurrentUnifierW`2+Container[System.__Canon,System.__Canon]:VerifyUnifierConsistency():this (FullOpts)
         -10 (-12.82 % of base) : 9155.dasm - System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
          -9 (-3.10 % of base) : 6383.dasm - Internal.TypeSystem.FunctionPointerType:InstantiateSignature(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation):Internal.TypeSystem.TypeDesc:this (FullOpts)
          -9 (-8.18 % of base) : 19662.dasm - System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -9 (-8.18 % of base) : 2755.dasm - System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -9 (-8.18 % of base) : 22659.dasm - System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -9 (-8.18 % of base) : 26140.dasm - System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -9 (-8.18 % of base) : 4682.dasm - System.Collections.Generic.LowLevelListWithIList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -9 (-2.69 % of base) : 6330.dasm - System.Linq.Expressions.Interpreter.ByRefNewInstruction:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
          -8 (-7.27 % of base) : 4918.dasm - System.Collections.Generic.LowLevelListWithIList`1+Enumerator[System.Reflection.CustomAttributeNamedArgument]:MoveNext():ubyte:this (FullOpts)

Top method regressions (percentages):
          26 (15.76 % of base) : 9130.dasm - System.IO.Enumeration.FileSystemEnumerator`1[System.__Canon]:CreateDirectoryHandle(System.String,ubyte):long:this (FullOpts)
           9 (3.12 % of base) : 17725.dasm - System.Text.UnicodeEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)
           9 (3.12 % of base) : 24194.dasm - System.Text.UnicodeEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)
           9 (3.12 % of base) : 1278.dasm - System.Text.UnicodeEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)
           9 (3.12 % of base) : 20708.dasm - System.Text.UnicodeEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)
           9 (3.10 % of base) : 22894.dasm - System.Text.UnicodeEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)
           8 (2.22 % of base) : 20007.dasm - PInvokeTests.Program:InlineArrayTest(byref,byref):ubyte (FullOpts)
          10 (2.00 % of base) : 9097.dasm - System.MemoryExtensions:ToLowerInvariant(System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):int (FullOpts)
           2 (1.45 % of base) : 18222.dasm - System.Text.EncoderReplacementFallbackBuffer:Fallback(ushort,int):ubyte:this (FullOpts)
           2 (1.45 % of base) : 2185.dasm - System.Text.EncoderReplacementFallbackBuffer:Fallback(ushort,int):ubyte:this (FullOpts)
           2 (1.45 % of base) : 21204.dasm - System.Text.EncoderReplacementFallbackBuffer:Fallback(ushort,int):ubyte:this (FullOpts)
           2 (1.45 % of base) : 24697.dasm - System.Text.EncoderReplacementFallbackBuffer:Fallback(ushort,int):ubyte:this (FullOpts)
           3 (0.96 % of base) : 6903.dasm - System.Linq.Expressions.Interpreter.EnterTryFaultInstruction:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
           2 (0.57 % of base) : 18210.dasm - System.Text.Encoding:GetByteCountWithFallback(ulong,int,int,System.Text.EncoderNLS):int:this (FullOpts)
           2 (0.57 % of base) : 21198.dasm - System.Text.Encoding:GetByteCountWithFallback(ulong,int,int,System.Text.EncoderNLS):int:this (FullOpts)
           2 (0.57 % of base) : 2175.dasm - System.Text.Encoding:GetByteCountWithFallback(ulong,int,int,System.Text.EncoderNLS):int:this (FullOpts)
           2 (0.57 % of base) : 24688.dasm - System.Text.Encoding:GetByteCountWithFallback(ulong,int,int,System.Text.EncoderNLS):int:this (FullOpts)
          10 (0.54 % of base) : 6386.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
           4 (0.53 % of base) : 9018.dasm - System.Uri:GetHostViaCustomSyntax():this (FullOpts)
           2 (0.53 % of base) : 3743.dasm - Microsoft.Win32.SafeHandles.SafeFileHandle:Open(System.String,int,int,ubyte,byref,System.Func`4[Interop+ErrorInfo,int,System.String,System.Exception]):Microsoft.Win32.SafeHandles.SafeFileHandle (FullOpts)

Top method improvements (percentages):
          -4 (-13.79 % of base) : 10866.dasm - System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (FullOpts)
         -22 (-13.17 % of base) : 20050.dasm - Internal.CompilerGenerated.<Module>:NativeToManaged__InlineArrayStruct(byref,byref) (FullOpts)
         -10 (-12.82 % of base) : 9155.dasm - System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
         -32 (-12.31 % of base) : 8285.dasm - System.Globalization.TimeSpanParse:TryParseExactTimeSpan(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],System.IFormatProvider,int,byref):ubyte (FullOpts)
         -28 (-12.23 % of base) : 2784.dasm - System.Collections.Generic.Stack`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -8 (-9.20 % of base) : 19745.dasm - System.ConsolePal:CheckTerminalSettingsInvalidated() (FullOpts)
          -8 (-9.20 % of base) : 26220.dasm - System.ConsolePal:CheckTerminalSettingsInvalidated() (FullOpts)
          -8 (-9.20 % of base) : 22747.dasm - System.ConsolePal:CheckTerminalSettingsInvalidated() (FullOpts)
          -8 (-9.20 % of base) : 7814.dasm - System.ConsolePal:CheckTerminalSettingsInvalidated() (FullOpts)
          -9 (-8.18 % of base) : 19662.dasm - System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -9 (-8.18 % of base) : 2755.dasm - System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -9 (-8.18 % of base) : 22659.dasm - System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -9 (-8.18 % of base) : 26140.dasm - System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -9 (-8.18 % of base) : 4682.dasm - System.Collections.Generic.LowLevelListWithIList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -5 (-7.46 % of base) : 6259.dasm - System.Linq.Expressions.Interpreter.LoadCachedObjectInstruction:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
          -8 (-7.27 % of base) : 4918.dasm - System.Collections.Generic.LowLevelListWithIList`1+Enumerator[System.Reflection.CustomAttributeNamedArgument]:MoveNext():ubyte:this (FullOpts)
          -3 (-4.29 % of base) : 6652.dasm - System.Linq.Expressions.Interpreter.InterpretedFrame:Dup():this (FullOpts)
          -9 (-3.10 % of base) : 6383.dasm - Internal.TypeSystem.FunctionPointerType:InstantiateSignature(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation):Internal.TypeSystem.TypeDesc:this (FullOpts)
          -9 (-2.69 % of base) : 6330.dasm - System.Linq.Expressions.Interpreter.ByRefNewInstruction:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
         -18 (-2.56 % of base) : 24978.dasm - System.Collections.Concurrent.ConcurrentUnifier`2+Container[System.__Canon,System.__Canon]:VerifyUnifierConsistency():this (FullOpts)



osx arm64

Diffs are based on 2,262,707 contexts (930,876 MinOpts, 1,331,831 FullOpts).

MISSED contexts: base: 3,256 (0.14%), diff: 3,258 (0.14%)

Overall (-803,772 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch 11,178,360 -2,736
benchmarks.run_pgo.osx.arm64.checked.mch 34,671,272 -41,660
benchmarks.run_tiered.osx.arm64.checked.mch 15,557,888 -13,832
coreclr_tests.run.osx.arm64.checked.mch 485,381,240 -229,068
libraries.crossgen2.osx.arm64.checked.mch 55,622,104 -12,124
libraries.pmi.osx.arm64.checked.mch 79,954,540 -11,800
libraries_tests.run.osx.arm64.Release.mch 312,899,776 -453,244
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 160,911,076 -30,976
realworld.run.osx.arm64.checked.mch 15,072,368 -8,332

MinOpts (-652,688 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch 16,473,280 -37,300
benchmarks.run_tiered.osx.arm64.checked.mch 11,515,076 -13,296
coreclr_tests.run.osx.arm64.checked.mch 332,306,456 -173,632
libraries_tests.run.osx.arm64.Release.mch 203,940,504 -423,000
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 13,137,528 -1,008
realworld.run.osx.arm64.checked.mch 568,404 -4,452

FullOpts (-151,084 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch 11,177,824 -2,736
benchmarks.run_pgo.osx.arm64.checked.mch 18,197,992 -4,360
benchmarks.run_tiered.osx.arm64.checked.mch 4,042,812 -536
coreclr_tests.run.osx.arm64.checked.mch 153,074,784 -55,436
libraries.crossgen2.osx.arm64.checked.mch 55,620,476 -12,124
libraries.pmi.osx.arm64.checked.mch 79,833,412 -11,800
libraries_tests.run.osx.arm64.Release.mch 108,959,272 -30,244
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 147,773,548 -29,968
realworld.run.osx.arm64.checked.mch 14,503,964 -3,880

Example diffs

benchmarks.run.osx.arm64.checked.mch

-16 (-14.29%) : 11697.dasm - System.Buffers.Text.Tests.Utf8FormatterTests:FormatterDateTimeOffsetNow(System.DateTimeOffset):ubyte:this (FullOpts)

@@ -8,79 +8,73 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T04] (  3,  3   )     ref  ->   x0         this class-hnd single-def <System.Buffers.Text.Tests.Utf8FormatterTests>
+;  V00 this         [V00,T02] (  3,  3   )     ref  ->   x0         this class-hnd single-def <System.Buffers.Text.Tests.Utf8FormatterTests>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.DateTimeOffset>
-;  V02 loc0         [V02    ] (  1,  1   )     int  ->  [fp+0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op
+;  V02 loc0         [V02    ] (  1,  1   )     int  ->  [fp+0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Buffers.StandardFormat>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Span`1[ubyte]>
-;  V06 tmp2         [V06,T02] (  4,  6   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <ubyte[]>
-;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-;  V08 tmp4         [V08,T05] (  2,  2   )   short  ->   x1         single-def "field V01._offsetMinutes (fldOffset=0x0)" P-INDEP
-;  V09 tmp5         [V09,T06] (  2,  2   )    long  ->   x2         single-def "field V01._dateTime (fldOffset=0x8)" P-INDEP
-;* V10 tmp6         [V10,T09] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._format (fldOffset=0x0)" P-INDEP
-;* V11 tmp7         [V11,T10] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._precision (fldOffset=0x1)" P-INDEP
+;  V06 tmp2         [V06,T00] (  4,  6   )     ref  ->   x5         class-hnd single-def "Inlining Arg" <ubyte[]>
+;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+;  V08 tmp4         [V08,T03] (  2,  2   )   short  ->   x1         single-def "field V01._offsetMinutes (fldOffset=0x0)" P-INDEP
+;  V09 tmp5         [V09,T04] (  2,  2   )    long  ->   x4         single-def "field V01._dateTime (fldOffset=0x8)" P-INDEP
+;* V10 tmp6         [V10,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._format (fldOffset=0x0)" P-INDEP
+;* V11 tmp7         [V11,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._precision (fldOffset=0x1)" P-INDEP
 ;* V12 tmp8         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V13 tmp9         [V13    ] (  0,  0   )     int  ->  zero-ref    single-def "field V05._length (fldOffset=0x8)" P-INDEP
-;  V14 tmp10        [V14,T07] (  3,  2   )   byref  ->   x3         "field V07._reference (fldOffset=0x0)" P-INDEP
-;  V15 tmp11        [V15,T08] (  3,  2   )     int  ->   x5         "field V07._length (fldOffset=0x8)" P-INDEP
-;  V16 tmp12        [V16,T03] (  3,  6   )  struct ( 8) [fp+0x30]  do-not-enreg[SF] "by-value struct argument" <System.Buffers.StandardFormat>
-;  V17 tmp13        [V17,T00] (  4,  8   )  struct (16) [fp+0x20]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.DateTimeOffset>
-;  V18 tmp14        [V18,T01] (  4,  8   )  struct (16) [fp+0x10]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.Span`1[ubyte]>
+;  V14 tmp10        [V14,T05] (  3,  2   )   byref  ->   x2         "field V07._reference (fldOffset=0x0)" P-INDEP
+;  V15 tmp11        [V15,T06] (  3,  2   )     int  ->   x3         "field V07._length (fldOffset=0x8)" P-INDEP
+;  V16 tmp12        [V16,T01] (  3,  6   )  struct ( 8) [fp+0x10]  do-not-enreg[SF] "by-value struct argument" <System.Buffers.StandardFormat>
 ;
-; Lcl frame size = 48
+; Lcl frame size = 16
 
 G_M7377_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-            str     xzr, [fp, #0x38]   // [V02 loc0]
-            stp     xzr, xzr, [fp, #0x10]  // [V18 tmp14], [V18 tmp14+0x08]
-                       ;; size=16 bbWeight=1 PerfScore 3.50
+            str     xzr, [fp, #0x18]   // [V02 loc0]
+            mov     x4, x2
+                       ;; size=16 bbWeight=1 PerfScore 3.00
 G_M7377_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
-            ldr     x0, [x0, #0x08]
-            cbnz    x0, G_M7377_IG04
+            ldr     x5, [x0, #0x08]
+            ; gcrRegs +[x5]
+            cbnz    x5, G_M7377_IG04
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M7377_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            mov     x3, xzr
-            ; byrRegs +[x3]
-            mov     w5, wzr
+            ; gcrRegs -[x0 x5]
+            mov     x2, xzr
+            ; byrRegs +[x2]
+            mov     w3, wzr
             b       G_M7377_IG05
                        ;; size=12 bbWeight=0.50 PerfScore 1.00
-G_M7377_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x0]
-            ; byrRegs -[x3]
-            add     x3, x0, #16
-            ; byrRegs +[x3]
-            ldr     w5, [x0, #0x08]
+G_M7377_IG04:        ; bbWeight=0.50, gcrefRegs=0020 {x5}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[x5]
+            ; byrRegs -[x2]
+            add     x2, x5, #16
+            ; byrRegs +[x2]
+            ldr     w3, [x5, #0x08]
                        ;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M7377_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
-            ; gcrRegs -[x0]
-            strh    w1, [fp, #0x20]    // [V17 tmp13]
-            str     x2, [fp, #0x28]    // [V17 tmp13+0x08]
-            str     x3, [fp, #0x10]    // [V18 tmp14]
-            str     w5, [fp, #0x18]    // [V18 tmp14+0x08]
-            strb    wzr, [fp, #0x30]   // [V16 tmp12]
-            strb    wzr, [fp, #0x31]   // [V16 tmp12+0x01]
-            ldp     x0, x1, [fp, #0x20]    // [V17 tmp13], [V17 tmp13+0x08]
-            ldp     x2, x3, [fp, #0x10]    // [V18 tmp14], [V18 tmp14+0x08]
-            ; byrRegs -[x3] +[x2]
-            ldrh    w5, [fp, #0x30]    // [V16 tmp12]
-            add     x4, fp, #56    // [V02 loc0]
+G_M7377_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0004 {x2}, byref
+            ; gcrRegs -[x5]
+            strb    wzr, [fp, #0x10]   // [V16 tmp12]
+            strb    wzr, [fp, #0x11]   // [V16 tmp12+0x01]
+            ldrh    w5, [fp, #0x10]    // [V16 tmp12]
+            mov     w0, w1
+            mov     x1, x4
+            add     x4, fp, #24    // [V02 loc0]
             movz    x6, #0xD1FFAB1E      // code for <unknown method>
             movk    x6, #0xD1FFAB1E LSL #16
             movk    x6, #1 LSL #32
             ldr     x6, [x6]
             blr     x6
             ; byrRegs -[x2]
-                       ;; size=60 bbWeight=1 PerfScore 20.00
+                       ;; size=44 bbWeight=1 PerfScore 11.00
 G_M7377_IG06:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x40
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 112, prolog size 16, PerfScore 32.25, instruction count 28, allocated bytes for code 112 (MethodHash=d298e32e) for method System.Buffers.Text.Tests.Utf8FormatterTests:FormatterDateTimeOffsetNow(System.DateTimeOffset):ubyte:this (FullOpts)
+; Total bytes of code 96, prolog size 12, PerfScore 22.75, instruction count 24, allocated bytes for code 96 (MethodHash=d298e32e) for method System.Buffers.Text.Tests.Utf8FormatterTests:FormatterDateTimeOffsetNow(System.DateTimeOffset):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -91,7 +85,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
+  Function Length   : 24 (0x00018) Actual length = 96 (0x000060)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -99,7 +93,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

-20 (-14.29%) : 19404.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)

@@ -8,9 +8,9 @@
 ; 0 inlinees with PGO data; 11 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
-;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
-;  V02 arg2         [V02,T03] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
+;  V00 this         [V00,T00] ( 13, 13   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
+;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (48) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[System.String]>
@@ -22,7 +22,7 @@
 ;* V11 tmp7         [V11    ] (  0,  0   )  struct (24) zero-ref    "impAppendStmt" <Microsoft.CodeAnalysis.BitVector>
 ;* V12 tmp8         [V12    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V13 tmp9         [V13    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
-;  V14 tmp10        [V14,T04] (  2,  2   )     ref  ->   x3         single-def "field V03.array (fldOffset=0x0)" P-INDEP
+;  V14 tmp10        [V14,T03] (  2,  2   )     ref  ->   x3         single-def "field V03.array (fldOffset=0x0)" P-INDEP
 ;* V15 tmp11        [V15    ] (  0,  0   )     ref  ->  zero-ref    "field V05.array (fldOffset=0x0)" P-INDEP
 ;* V16 tmp12        [V16    ] (  0,  0   )     ref  ->  zero-ref    "field V06.array (fldOffset=0x0)" P-INDEP
 ;* V17 tmp13        [V17    ] (  0,  0   )     ref  ->  zero-ref    "field V10.array (fldOffset=0x0)" P-INDEP
@@ -31,16 +31,12 @@
 ;* V20 tmp16        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V11._capacity (fldOffset=0x10)" P-INDEP
 ;* V21 tmp17        [V21    ] (  0,  0   )     ref  ->  zero-ref    "field V13.array (fldOffset=0x0)" P-INDEP
 ;  V22 tmp18        [V22    ] (  2,  4   )  struct (24) [fp+0x18]  do-not-enreg[XS] addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
-;  V23 tmp19        [V23,T00] ( 11, 22   )     ref  ->   x4         single-def "argument with side effect"
-;  V24 tmp20        [V24,T05] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V25 tmp21        [V25,T06] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
-;  V26 tmp22        [V26,T07] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V27 tmp23        [V27,T08] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
-;  V28 tmp24        [V28,T09] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
-;  V29 tmp25        [V29,T11] (  2,  4   )     int  ->   x7         "argument with side effect"
-;  V30 tmp26        [V30,T12] (  2,  4   )     int  ->   x8         "argument with side effect"
-;  V31 tmp27        [V31,T13] (  2,  4   )     int  ->   x9         "argument with side effect"
-;  V32 tmp28        [V32,T10] (  2,  4   )     ref  ->  x10         single-def "argument with side effect"
+;  V23 tmp19        [V23,T04] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
+;  V24 tmp20        [V24,T05] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
+;  V25 tmp21        [V25,T07] (  2,  4   )     int  ->   x6         "argument with side effect"
+;  V26 tmp22        [V26,T08] (  2,  4   )     int  ->   x7         "argument with side effect"
+;  V27 tmp23        [V27,T09] (  2,  4   )     int  ->   x8         "argument with side effect"
+;  V28 tmp24        [V28,T06] (  2,  4   )     ref  ->   x9         single-def "argument with side effect"
 ;
 ; Lcl frame size = 80
 
@@ -51,37 +47,30 @@ G_M55914_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=12 bbWeight=1 PerfScore 2.00
 G_M55914_IG02:        ; bbWeight=1, gcrefRegs=000F {x0 x1 x2 x3}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x0-x3]
-            mov     x4, x0
-            ; gcrRegs +[x4]
-            ldp     x5, x6, [x4, #0x40]
-            ; gcrRegs +[x5-x6]
-            ldrb    w7, [x4, #0x30]
-            ldrb    w8, [x4, #0x31]
-            ldrb    w9, [x4, #0x32]
-            ldr     x10, [x4, #0x50]
-            ; gcrRegs +[x10]
-                       ;; size=24 bbWeight=1 PerfScore 16.50
+            ldp     x4, x5, [x0, #0x40]
+            ; gcrRegs +[x4-x5]
+            ldrb    w6, [x0, #0x30]
+            ldrb    w7, [x0, #0x31]
+            ldrb    w8, [x0, #0x32]
+            ldr     x9, [x0, #0x50]
+            ; gcrRegs +[x9]
+                       ;; size=20 bbWeight=1 PerfScore 16.00
 G_M55914_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x11, x13, [x4, #0x58]
-            stp     x11, x13, [fp, #0x18]
-            ldr     x11, [x4, #0x68]
-            str     x11, [fp, #0x28]
+            ldp     x10, x11, [x0, #0x58]
+            stp     x10, x11, [fp, #0x18]
+            ldr     x10, [x0, #0x68]
+            str     x10, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M55914_IG04:        ; bbWeight=1, extend
-            ldrb    w11, [x4, #0x33]
-            strb    w11, [sp, #0x18]   // [V04 OutArgs+0x18]
-            ldr     x11, [x4, #0x70]
-            ; gcrRegs +[x11]
-            str     x11, [sp, #0x20]   // [V04 OutArgs+0x20]
-            ldr     x4, [x4, #0x18]
-            str     x4, [sp, #0x28]    // [V04 OutArgs+0x28]
-            mov     x4, x5
-            mov     x5, x6
-            mov     w6, w7
-            ; gcrRegs -[x6]
-            mov     w7, w8
-            strb    w9, [sp]   // [V04 OutArgs]
-            str     x10, [sp, #0x08]   // [V04 OutArgs+0x08]
+            ldrb    w10, [x0, #0x33]
+            strb    w10, [sp, #0x18]   // [V04 OutArgs+0x18]
+            ldr     x10, [x0, #0x70]
+            ; gcrRegs +[x10]
+            str     x10, [sp, #0x20]   // [V04 OutArgs+0x20]
+            ldr     x10, [x0, #0x18]
+            str     x10, [sp, #0x28]   // [V04 OutArgs+0x28]
+            strb    w8, [sp]   // [V04 OutArgs]
+            str     x9, [sp, #0x08]    // [V04 OutArgs+0x08]
             add     x8, fp, #24    // [V22 tmp18]
             str     x8, [sp, #0x10]    // [V04 OutArgs+0x10]
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
@@ -89,15 +78,15 @@ G_M55914_IG04:        ; bbWeight=1, extend
             movk    x8, #1 LSL #32
             ldr     x8, [x8]
             blr     x8
-            ; gcrRegs -[x1-x5 x10-x11]
-                       ;; size=76 bbWeight=1 PerfScore 23.00
+            ; gcrRegs -[x1-x5 x9-x10]
+                       ;; size=60 bbWeight=1 PerfScore 21.00
 G_M55914_IG05:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp, #0x30]
             add     sp, sp, #96
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 2.50
 
-; Total bytes of code 140, prolog size 12, PerfScore 53.00, instruction count 35, allocated bytes for code 140 (MethodHash=00902595) for method Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
+; Total bytes of code 120, prolog size 12, PerfScore 50.50, instruction count 30, allocated bytes for code 120 (MethodHash=00902595) for method Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -108,7 +97,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
+  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-16 (-13.33%) : 24121.dasm - Span.IndexerBench:SameIndex2():ubyte:this (FullOpts)

@@ -8,63 +8,57 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Span.IndexerBench>
+;  V00 this         [V00,T02] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Span.IndexerBench>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V02 tmp1         [V02    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
-;  V03 tmp2         [V03,T01] (  4,  6   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <ubyte[]>
-;* V04 tmp3         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+;  V03 tmp2         [V03,T00] (  4,  6   )     ref  ->   x2         class-hnd single-def "Inlining Arg" <ubyte[]>
+;* V04 tmp3         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V05 tmp4         [V05    ] (  0,  0   )   byref  ->  zero-ref    "field V02._reference (fldOffset=0x0)" P-INDEP
 ;* V06 tmp5         [V06    ] (  0,  0   )     int  ->  zero-ref    "field V02._length (fldOffset=0x8)" P-INDEP
-;  V07 tmp6         [V07,T06] (  3,  2   )   byref  ->   x1         "field V04._reference (fldOffset=0x0)" P-INDEP
-;  V08 tmp7         [V08,T07] (  3,  2   )     int  ->   x2         "field V04._length (fldOffset=0x8)" P-INDEP
-;  V09 tmp8         [V09,T02] (  3,  6   )     ref  ->   x0         single-def "arr expr"
-;  V10 tmp9         [V10,T00] (  4,  8   )  struct (16) [fp+0x10]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.Span`1[ubyte]>
-;  V11 tmp10        [V11,T05] (  2,  4   )   byref  ->   x2         single-def "argument with side effect"
-;  V12 cse0         [V12,T04] (  4,  4   )     ref  ->   x4         "CSE - aggressive"
+;  V07 tmp6         [V07,T05] (  3,  2   )   byref  ->   x0         "field V04._reference (fldOffset=0x0)" P-INDEP
+;  V08 tmp7         [V08,T06] (  3,  2   )     int  ->   x1         "field V04._length (fldOffset=0x8)" P-INDEP
+;  V09 tmp8         [V09,T01] (  3,  6   )     ref  ->   x2         single-def "arr expr"
+;  V10 tmp9         [V10,T04] (  2,  4   )   byref  ->   x2         single-def "argument with side effect"
+;  V11 cse0         [V11,T03] (  4,  4   )     ref  ->   x4         "CSE - aggressive"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 0
 
 G_M29415_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x20]!
+            stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
-            str     xzr, [fp, #0x10]   // [V10 tmp9]
-                       ;; size=12 bbWeight=1 PerfScore 2.50
+                       ;; size=8 bbWeight=1 PerfScore 1.50
 G_M29415_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
             ldr     x4, [x0, #0x08]
             ; gcrRegs +[x4]
-            mov     x0, x4
-            cbnz    x0, G_M29415_IG04
+            mov     x2, x4
+            ; gcrRegs +[x2]
+            cbnz    x2, G_M29415_IG04
                        ;; size=12 bbWeight=1 PerfScore 4.50
 G_M29415_IG03:        ; bbWeight=0.50, gcrefRegs=0010 {x4}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            mov     x1, xzr
-            ; byrRegs +[x1]
-            mov     w2, wzr
+            ; gcrRegs -[x0 x2]
+            mov     x0, xzr
+            ; byrRegs +[x0]
+            mov     w1, wzr
             b       G_M29415_IG05
                        ;; size=12 bbWeight=0.50 PerfScore 1.00
-G_M29415_IG04:        ; bbWeight=0.50, gcrefRegs=0011 {x0 x4}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x0]
-            ; byrRegs -[x1]
-            add     x1, x0, #16
-            ; byrRegs +[x1]
-            ldr     w2, [x0, #0x08]
-                       ;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M29415_IG05:        ; bbWeight=1, gcrefRegs=0010 {x4}, byrefRegs=0002 {x1}, byref, isz
-            ; gcrRegs -[x0]
-            str     x1, [fp, #0x10]    // [V10 tmp9]
-            str     w2, [fp, #0x18]    // [V10 tmp9+0x08]
-            mov     x0, x4
-            ; gcrRegs +[x0]
-            ldr     w1, [x0, #0x08]
-            ; byrRegs -[x1]
-            cmp     w1, #0
-            bls     G_M29415_IG07
-            add     x2, x0, #16
-            ; byrRegs +[x2]
-            ldp     x0, x1, [fp, #0x10]    // [V10 tmp9], [V10 tmp9+0x08]
-            ; gcrRegs -[x0]
+G_M29415_IG04:        ; bbWeight=0.50, gcrefRegs=0014 {x2 x4}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[x2]
+            ; byrRegs -[x0]
+            add     x0, x2, #16
             ; byrRegs +[x0]
+            ldr     w1, [x2, #0x08]
+                       ;; size=8 bbWeight=0.50 PerfScore 1.75
+G_M29415_IG05:        ; bbWeight=1, gcrefRegs=0010 {x4}, byrefRegs=0001 {x0}, byref, isz
+            ; gcrRegs -[x2]
+            mov     x2, x4
+            ; gcrRegs +[x2]
+            ldr     w3, [x2, #0x08]
+            cmp     w3, #0
+            bls     G_M29415_IG07
+            add     x2, x2, #16
+            ; gcrRegs -[x2]
+            ; byrRegs +[x2]
             ldr     w4, [x4, #0x08]
             ; gcrRegs -[x4]
             mov     w3, wzr
@@ -74,9 +68,9 @@ G_M29415_IG05:        ; bbWeight=1, gcrefRegs=0010 {x4}, byrefRegs=0002 {x1}, by
             ldr     x5, [x5]
             blr     x5
             ; byrRegs -[x0 x2]
-                       ;; size=60 bbWeight=1 PerfScore 19.50
+                       ;; size=48 bbWeight=1 PerfScore 14.50
 G_M29415_IG06:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x20
+            ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 G_M29415_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
@@ -84,7 +78,7 @@ G_M29415_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_unix #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 120, prolog size 12, PerfScore 31.25, instruction count 30, allocated bytes for code 120 (MethodHash=cb7c8d18) for method Span.IndexerBench:SameIndex2():ubyte:this (FullOpts)
+; Total bytes of code 104, prolog size 8, PerfScore 25.25, instruction count 26, allocated bytes for code 104 (MethodHash=cb7c8d18) for method Span.IndexerBench:SameIndex2():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -95,7 +89,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
+  Function Length   : 26 (0x0001a) Actual length = 104 (0x000068)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -103,7 +97,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    81          save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
     E4          end
     E4          end
 

+8 (+1.56%) : 13874.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1[ulong]:FindStartPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],byref,int,byref,byref):ubyte:this (FullOpts)

@@ -8,28 +8,28 @@
 ; 0 inlinees with PGO data; 9 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  8, 52   )     ref  ->  x19         this class-hnd single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]>
+;  V00 this         [V00,T04] (  8, 52   )     ref  ->  x19         this class-hnd single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ushort]>
-;  V02 arg2         [V02,T22] (  5,  4   )   byref  ->  [fp+0x10]  EH-live single-def
+;  V02 arg2         [V02,T22] (  5,  4   )   byref  ->  [fp+0x18]  EH-live single-def
 ;  V03 arg3         [V03,T19] (  3, 10   )     int  ->  x21         single-def
-;  V04 arg4         [V04,T09] (  6, 32   )   byref  ->  x20         single-def
+;  V04 arg4         [V04,T08] (  6, 32   )   byref  ->  x20         single-def
 ;  V05 arg5         [V05,T23] (  3,  4   )   byref  ->  x23         single-def
-;  V06 loc0         [V06,T10] (  8, 28   )     int  ->  [fp+0x24]  do-not-enreg[Z] EH-live
-;  V07 loc1         [V07,T15] (  3, 20   )   ubyte  ->  x25        
+;  V06 loc0         [V06,T10] (  7, 24   )     int  ->  [fp+0x2C]  do-not-enreg[Z] EH-live
+;  V07 loc1         [V07,T14] (  3, 20   )   ubyte  ->  x25        
 ;* V08 loc2         [V08    ] (  0,  0   )     int  ->  zero-ref   
 ;  V09 loc3         [V09,T28] (  3,  2   )   ubyte  ->   x0        
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V11 tmp1         [V11,T12] (  4, 24   )     int  ->   x2         "Inline return value spill temp"
-;  V12 tmp2         [V12,T08] (  3, 36   )     int  ->   x0         "Inlining Arg"
+;  V11 tmp1         [V11,T11] (  4, 24   )     int  ->   x2         "Inline return value spill temp"
+;  V12 tmp2         [V12,T07] (  3, 36   )     int  ->   x0         "Inlining Arg"
 ;* V13 tmp3         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V14 tmp4         [V14,T25] (  3,  6   )     int  ->   x2         "Inline return value spill temp"
 ;  V15 tmp5         [V15,T18] (  3, 12   )     ref  ->   x1         class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.MintermClassifier>
-;  V16 tmp6         [V16,T24] (  3,  6   )     ref  ->  x26         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V16 tmp6         [V16,T24] (  3,  6   )     ref  ->  x27         class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V17 tmp7         [V17,T16] (  4, 16   )     int  ->   x2         "Inlining Arg"
 ;  V18 tmp8         [V18,T17] (  3, 14   )   ubyte  ->  x25         "Inline return value spill temp"
-;  V19 tmp9         [V19,T11] (  4, 28   )     int  ->   x4         "Inline stloc first use temp"
-;  V20 tmp10        [V20,T21] (  3, 10   )     int  ->   x1         "Inline stloc first use temp"
-;  V21 tmp11        [V21    ] (  3, 36   )     ref  ->  [fp+0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]>
+;  V19 tmp9         [V19,T09] (  4, 28   )     int  ->   x4         "Inline stloc first use temp"
+;  V20 tmp10        [V20,T21] (  3, 10   )     int  ->   x5         "Inline stloc first use temp"
+;  V21 tmp11        [V21    ] (  3, 36   )     ref  ->  [fp+0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]>
 ;* V22 tmp12        [V22    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp13        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]>
 ;* V24 tmp14        [V24    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
@@ -39,30 +39,31 @@
 ;  V28 tmp18        [V28,T20] (  2,  9   )     int  ->  x22         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V29 tmp19        [V29    ] (  0,  0   )   byref  ->  zero-ref    "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V30 tmp20        [V30    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
-;  V31 tmp21        [V31,T06] (  3, 48   )     ref  ->   x0         "arr expr"
-;  V32 tmp22        [V32,T07] (  3, 48   )     int  ->   x1         "index expr"
-;  V33 tmp23        [V33,T13] (  3, 24   )     ref  ->   x1         "arr expr"
-;  V34 tmp24        [V34,T00] (  3, 96   )     ref  ->   x1         "arr expr"
-;  V35 tmp25        [V35,T01] (  3, 96   )     int  ->   x0         "index expr"
+;  V31 tmp21        [V31,T05] (  3, 48   )     ref  ->   x0         "arr expr"
+;  V32 tmp22        [V32,T06] (  3, 48   )     int  ->   x1         "index expr"
+;  V33 tmp23        [V33,T12] (  3, 24   )     ref  ->   x5         "arr expr"
+;  V34 tmp24        [V34,T00] (  3, 96   )     ref  ->   x5         "arr expr"
+;  V35 tmp25        [V35,T01] (  3, 96   )     int  ->   x1         "index expr"
 ;  V36 tmp26        [V36,T03] (  2, 64   )     ref  ->   x1         "argument with side effect"
-;  V37 tmp27        [V37,T04] (  2, 64   )     ref  ->   x1         "argument with side effect"
-;  V38 PSPSym       [V38,T29] (  1,  1   )    long  ->  [fp+0x28]  do-not-enreg[V] "PSPSym"
-;  V39 cse0         [V39,T14] (  3, 24   )     int  ->   x0         "CSE - aggressive"
-;  V40 cse1         [V40,T27] (  2,  4   )     int  ->   x0         "CSE - moderate"
+;  V37 PSPSym       [V37,T29] (  1,  1   )    long  ->  [fp+0x30]  do-not-enreg[V] "PSPSym"
+;  V38 cse0         [V38,T13] (  3, 24   )     int  ->   x1         "CSE - aggressive"
+;  V39 cse1         [V39,T15] (  3, 20   )     int  ->  x26         "CSE - aggressive"
+;  V40 cse2         [V40,T27] (  2,  4   )     int  ->   x0         "CSE - moderate"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 40
 
 G_M55933_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x70]!
-            stp     x19, x20, [sp, #0x30]
-            stp     x21, x22, [sp, #0x40]
-            stp     x23, x24, [sp, #0x50]
-            stp     x25, x26, [sp, #0x60]
+            stp     fp, lr, [sp, #-0x80]!
+            stp     x19, x20, [sp, #0x38]
+            stp     x21, x22, [sp, #0x48]
+            stp     x23, x24, [sp, #0x58]
+            stp     x25, x26, [sp, #0x68]
+            str     x27, [sp, #0x78]
             mov     fp, sp
-            str     xzr, [fp, #0x18]   // [V21 tmp11]
-            add     x7, sp, #112
-            str     x7, [fp, #0x28]    // [V38 PSPSym]
-            str     x3, [fp, #0x10]    // [V02 arg2]
+            str     xzr, [fp, #0x20]   // [V21 tmp11]
+            add     x7, sp, #128
+            str     x7, [fp, #0x30]    // [V37 PSPSym]
+            str     x3, [fp, #0x18]    // [V02 arg2]
             ; GC ptr vars +{V02}
             mov     x19, x0
             ; gcrRegs +[x19]
@@ -74,11 +75,11 @@ G_M55933_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x20]
             mov     x23, x6
             ; byrRegs +[x23]
-                       ;; size=64 bbWeight=1 PerfScore 12.00
+                       ;; size=68 bbWeight=1 PerfScore 13.00
 G_M55933_IG02:        ; bbWeight=1, gcVars=0000000000400000 {V02}, gcrefRegs=80000 {x19}, byrefRegs=1900008 {x3 x20 x23 x24}, gcvars, byref
             ; byrRegs +[x3]
             ldr     w0, [x3]
-            str     w0, [fp, #0x24]    // [V06 loc0]
+            str     w0, [fp, #0x2C]    // [V06 loc0]
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M55933_IG03:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
             ; byrRegs -[x3]
@@ -92,19 +93,20 @@ G_M55933_IG03:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x2
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
             ldrb    w25, [x0, w1, UXTW #2]
-            ldr     w0, [fp, #0x24]    // [V06 loc0]
+            ldr     w0, [fp, #0x2C]    // [V06 loc0]
             ; byrRegs -[x0]
-            sub     w0, w0, #1
+            sub     w26, w0, #1
+            sxtw    w0, w26
             cmp     w0, w22
             bhs     G_M55933_IG14
-                       ;; size=44 bbWeight=8 PerfScore 144.00
+                       ;; size=48 bbWeight=8 PerfScore 148.00
 G_M55933_IG04:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
             ldr     x1, [x19, #0x50]
             ; gcrRegs +[x1]
             ldrh    w2, [x24, w0, UXTW #2]
-            ldr     x26, [x1, #0x08]
-            ; gcrRegs +[x26]
-            ldr     w0, [x26, #0x08]
+            ldr     x27, [x1, #0x08]
+            ; gcrRegs +[x27]
+            ldr     w0, [x27, #0x08]
             cmp     w0, w2
             bhi     G_M55933_IG13
             ldr     x0, [x1, #0x10]
@@ -117,7 +119,7 @@ G_M55933_IG04:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x2
             ldr     x2, [x2]
             ldr     wzr, [x0]
             blr     x2
-            ; gcrRegs -[x0 x26]
+            ; gcrRegs -[x0 x27]
             ; gcr arg pop 0
             sxtw    w2, w0
                        ;; size=60 bbWeight=2 PerfScore 52.00
@@ -125,83 +127,80 @@ G_M55933_IG05:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x2
             tbz     w25, #2, G_M55933_IG07
                        ;; size=4 bbWeight=8 PerfScore 8.00
 G_M55933_IG06:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
-            ldr     w0, [fp, #0x24]    // [V06 loc0]
-            str     w0, [x23]
+            ldr     w1, [fp, #0x2C]    // [V06 loc0]
+            str     w1, [x23]
                        ;; size=8 bbWeight=2 PerfScore 6.00
 G_M55933_IG07:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
-            ldr     w0, [fp, #0x24]    // [V06 loc0]
-            cmp     w0, w21
+            ldr     w1, [fp, #0x2C]    // [V06 loc0]
+            cmp     w1, w21
             ble     G_M55933_IG17
                        ;; size=12 bbWeight=8 PerfScore 28.00
 G_M55933_IG08:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
             tbnz    w25, #1, G_M55933_IG17
-            ldr     w0, [x20, #0x08]
-            ldr     w1, [x19, #0xA4]
-            lsl     w1, w0, w1
-            orr     w4, w1, w2
-            ldr     x1, [x19, #0x20]
-            ; gcrRegs +[x1]
-            ldr     w5, [x1, #0x08]
-            cmp     w4, w5
+            ldr     w1, [x20, #0x08]
+            ldr     w5, [x19, #0xA4]
+            lsl     w5, w1, w5
+            orr     w4, w5, w2
+            ldr     x5, [x19, #0x20]
+            ; gcrRegs +[x5]
+            ldr     w0, [x5, #0x08]
+            cmp     w4, w0
             bhs     G_M55933_IG12
-            add     x1, x1, #16
-            ; gcrRegs -[x1]
-            ; byrRegs +[x1]
-            ldr     w1, [x1, w4, UXTW #2]
-            ; byrRegs -[x1]
-            cmp     w1, #0
+            add     x5, x5, #16
+            ; gcrRegs -[x5]
+            ; byrRegs +[x5]
+            ldr     w5, [x5, w4, UXTW #2]
+            ; byrRegs -[x5]
+            cmp     w5, #0
             ble     G_M55933_IG15
                        ;; size=52 bbWeight=4 PerfScore 82.00
 G_M55933_IG09:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
-            str     w1, [x20, #0x08]
+            str     w5, [x20, #0x08]
                        ;; size=4 bbWeight=2 PerfScore 2.00
 G_M55933_IG10:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
             mov     w25, #1
                        ;; size=4 bbWeight=8 PerfScore 4.00
 G_M55933_IG11:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
-            str     xzr, [fp, #0x18]   // [V21 tmp11]
+            str     xzr, [fp, #0x20]   // [V21 tmp11]
             cbz     w25, G_M55933_IG18
-            ldr     w0, [fp, #0x24]    // [V06 loc0]
-            sub     w0, w0, #1
-            str     w0, [fp, #0x24]    // [V06 loc0]
+            str     w26, [fp, #0x2C]   // [V06 loc0]
             b       G_M55933_IG03
-                       ;; size=24 bbWeight=4 PerfScore 26.00
+                       ;; size=16 bbWeight=4 PerfScore 16.00
 G_M55933_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
             ; byrRegs -[x20 x23-x24]
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M55933_IG13:        ; bbWeight=2, gcrefRegs=4080000 {x19 x26}, byrefRegs=1900000 {x20 x23 x24}, byref
-            ; gcrRegs +[x19 x26]
+G_M55933_IG13:        ; bbWeight=2, gcrefRegs=8080000 {x19 x27}, byrefRegs=1900000 {x20 x23 x24}, byref
+            ; gcrRegs +[x19 x27]
             ; byrRegs +[x20 x23-x24]
-            add     x0, x26, #16
-            ; byrRegs +[x0]
-            ldr     w2, [x0, w2, UXTW #2]
+            add     x1, x27, #16
+            ; byrRegs +[x1]
+            ldr     w2, [x1, w2, UXTW #2]
             b       G_M55933_IG05
                        ;; size=12 bbWeight=2 PerfScore 9.00
 G_M55933_IG14:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
-            ; gcrRegs -[x26]
-            ; byrRegs -[x0]
+            ; gcrRegs -[x27]
+            ; byrRegs -[x1]
             movn    w2, #0
             b       G_M55933_IG05
                        ;; size=8 bbWeight=2 PerfScore 3.00
 G_M55933_IG15:        ; bbWeight=16, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
-            mov     x1, x19
-            ; gcrRegs +[x1]
-            ldr     x1, [x1, #0x10]
-            ldr     w5, [x1, #0x08]
-            cmp     w0, w5
+            ldr     x5, [x19, #0x10]
+            ; gcrRegs +[x5]
+            ldr     w0, [x5, #0x08]
+            cmp     w1, w0
             bhs     G_M55933_IG12
-            add     x1, x1, #16
-            ; gcrRegs -[x1]
-            ; byrRegs +[x1]
-            ldr     x1, [x1, w0, UXTW #3]
...

+4 (+1.82%) : 6105.dasm - System.Text.Json.JsonDocument:ParseValue(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)

@@ -10,7 +10,7 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ubyte]>
 ;  V01 arg1         [V01    ] (  3,  3   )  struct ( 8) [fp+0x30]  do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.Text.Json.JsonDocumentOptions>
-;  V02 loc0         [V02,T02] (  4,  4   )     ref  ->  x21         class-hnd exact single-def <ubyte[]>
+;  V02 loc0         [V02,T01] (  5,  5   )     ref  ->  x21         class-hnd exact single-def <ubyte[]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Memory`1[ubyte]>
@@ -20,11 +20,11 @@
 ;* V09 tmp6         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V10 tmp7         [V10    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V11 tmp8         [V11    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V12 tmp9         [V12,T04] (  2,  4   )    long  ->   x2         "Inlining Arg"
-;* V13 tmp10        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]>
+;  V12 tmp9         [V12,T06] (  2,  4   )    long  ->   x2         "Inlining Arg"
+;  V13 tmp10        [V13    ] (  5, 10   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]>
 ;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Memory`1[ubyte]>
-;  V15 tmp12        [V15,T03] (  2,  2   )   byref  ->  x20         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V16 tmp13        [V16,T01] (  4,  4   )     int  ->  x19         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V15 tmp12        [V15,T05] (  2,  2   )   byref  ->  x20         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V16 tmp13        [V16,T00] (  4,  4   )     int  ->  x19         single-def "field V00._length (fldOffset=0x8)" P-INDEP
 ;* V17 tmp14        [V17    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V18 tmp15        [V18    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
 ;* V19 tmp16        [V19    ] (  0,  0   )     ref  ->  zero-ref    "field V05._object (fldOffset=0x0)" P-INDEP
@@ -33,21 +33,20 @@
 ;* V22 tmp19        [V22    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V06._object (fldOffset=0x0)" P-INDEP
 ;* V23 tmp20        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V06._index (fldOffset=0x8)" P-INDEP
 ;* V24 tmp21        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0xc)" P-INDEP
-;  V25 tmp22        [V25,T05] (  2,  4   )     int  ->  [fp+0x28]  do-not-enreg[] "field V07._maxDepth (fldOffset=0x0)" P-DEP
-;  V26 tmp23        [V26,T06] (  2,  4   )   ubyte  ->  [fp+0x2C]  do-not-enreg[] "field V07._commentHandling (fldOffset=0x4)" P-DEP
-;  V27 tmp24        [V27,T07] (  2,  4   )   ubyte  ->  [fp+0x2D]  do-not-enreg[] "field V07.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-DEP
-;  V28 tmp25        [V28,T10] (  2,  2   )   byref  ->   x0         "field V08._reference (fldOffset=0x0)" P-INDEP
-;  V29 tmp26        [V29,T11] (  2,  2   )     int  ->   x1         "field V08._length (fldOffset=0x8)" P-INDEP
+;  V25 tmp22        [V25,T07] (  2,  4   )     int  ->  [fp+0x28]  do-not-enreg[] "field V07._maxDepth (fldOffset=0x0)" P-DEP
+;  V26 tmp23        [V26,T08] (  2,  4   )   ubyte  ->  [fp+0x2C]  do-not-enreg[] "field V07._commentHandling (fldOffset=0x4)" P-DEP
+;  V27 tmp24        [V27,T09] (  2,  4   )   ubyte  ->  [fp+0x2D]  do-not-enreg[] "field V07.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-DEP
+;  V28 tmp25        [V28,T11] (  2,  2   )   byref  ->   x0         "field V08._reference (fldOffset=0x0)" P-INDEP
+;  V29 tmp26        [V29,T12] (  2,  2   )     int  ->   x1         "field V08._length (fldOffset=0x8)" P-INDEP
 ;* V30 tmp27        [V30    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V31 tmp28        [V31    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
-;  V32 tmp29        [V32,T09] (  3,  3   )     ref  ->  x21         "field V13._object (fldOffset=0x0)" P-INDEP
-;* V33 tmp30        [V33,T13] (  0,  0   )     int  ->  zero-ref    "field V13._index (fldOffset=0x8)" P-INDEP
-;  V34 tmp31        [V34,T12] (  2,  2   )     int  ->  x19         "field V13._length (fldOffset=0xc)" P-INDEP
+;  V32 tmp29        [V32,T02] (  3,  5   )     ref  ->  [fp+0x18]  do-not-enreg[] "field V13._object (fldOffset=0x0)" P-DEP
+;  V33 tmp30        [V33,T03] (  3,  5   )     int  ->  [fp+0x20]  do-not-enreg[] "field V13._index (fldOffset=0x8)" P-DEP
+;  V34 tmp31        [V34,T04] (  3,  5   )     int  ->  [fp+0x24]  do-not-enreg[] "field V13._length (fldOffset=0xc)" P-DEP
 ;* V35 tmp32        [V35    ] (  0,  0   )     ref  ->  zero-ref    "field V14._object (fldOffset=0x0)" P-INDEP
 ;* V36 tmp33        [V36    ] (  0,  0   )     int  ->  zero-ref    "field V14._index (fldOffset=0x8)" P-INDEP
 ;* V37 tmp34        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0xc)" P-INDEP
-;  V38 tmp35        [V38,T08] (  2,  4   )  struct ( 8) [fp+0x20]  do-not-enreg[S] "by-value struct argument" <System.Text.Json.JsonReaderOptions>
-;  V39 tmp36        [V39,T00] (  5, 10   )  struct (16) [fp+0x10]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.Memory`1[ubyte]>
+;  V38 tmp35        [V38,T10] (  2,  4   )  struct ( 8) [fp+0x10]  do-not-enreg[S] "by-value struct argument" <System.Text.Json.JsonReaderOptions>
 ;
 ; Lcl frame size = 40
 
@@ -56,7 +55,7 @@ G_M33801_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     x19, x20, [sp, #0x38]
             str     x21, [sp, #0x48]
             mov     fp, sp
-            str     xzr, [fp, #0x10]   // [V39 tmp36]
+            str     xzr, [fp, #0x18]   // [V13 tmp10]
             str     x2, [fp, #0x30]    // [V01 arg1]
             mov     x20, x0
             ; byrRegs +[x20]
@@ -86,29 +85,30 @@ G_M33801_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
             ldr     x3, [x3]
             blr     x3
             ; byrRegs -[x0-x1 x20]
-            ldr     w19, [x21, #0x08]
+            str     x21, [fp, #0x18]   // [V32 tmp29]
+            str     wzr, [fp, #0x20]   // [V33 tmp30]
+            ldr     w0, [x21, #0x08]
+            str     w0, [fp, #0x24]    // [V34 tmp31]
             add     x0, fp, #48    // [V01 arg1]
             movz    x1, #0xD1FFAB1E      // code for System.Text.Json.JsonDocumentOptions:GetReaderOptions():System.Text.Json.JsonReaderOptions:this
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #1 LSL #32
             ldr     x1, [x1]
             blr     x1
+            ; gcrRegs -[x21]
             str     x0, [fp, #0x28]    // [V07 tmp4]
-            str     x21, [fp, #0x10]   // [V39 tmp36]
-            stp     wzr, w19, [fp, #0x18]  // [V39 tmp36+0x08], [V39 tmp36+0x0c]
-            ldr     x0, [fp, #0x28]    // [V07 tmp4]
-            str     x0, [fp, #0x20]    // [V38 tmp35]
-            ldp     x0, x1, [fp, #0x10]    // [V39 tmp36], [V39 tmp36+0x08]
+            ldr     x2, [fp, #0x28]    // [V07 tmp4]
+            str     x2, [fp, #0x10]    // [V38 tmp35]
+            ldp     x2, x0, [fp, #0x10]    // [V38 tmp35], [V13 tmp10]
             ; gcrRegs +[x0]
-            ldr     x2, [fp, #0x20]    // [V38 tmp35]
+            ldr     x1, [fp, #0x20]    // [V13 tmp10+0x08]
             mov     w3, wzr
             movz    x4, #0xD1FFAB1E      // code for <unknown method>
             movk    x4, #0xD1FFAB1E LSL #16
             movk    x4, #1 LSL #32
             ldr     x4, [x4]
             blr     x4
-            ; gcrRegs -[x21]
-                       ;; size=148 bbWeight=1 PerfScore 41.00
+                       ;; size=152 bbWeight=1 PerfScore 42.00
 G_M33801_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x21, [sp, #0x48]
             ldp     x19, x20, [sp, #0x38]
@@ -125,7 +125,7 @@ G_M33801_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_unix #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 220, prolog size 20, PerfScore 52.50, instruction count 55, allocated bytes for code 220 (MethodHash=26bd7bf6) for method System.Text.Json.JsonDocument:ParseValue(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
+; Total bytes of code 224, prolog size 20, PerfScore 53.50, instruction count 56, allocated bytes for code 224 (MethodHash=26bd7bf6) for method System.Text.Json.JsonDocument:ParseValue(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -136,7 +136,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 55 (0x00037) Actual length = 220 (0x0000dc)
+  Function Length   : 56 (0x00038) Actual length = 224 (0x0000e0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+12.50%) : 1356.dasm - System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)

@@ -8,88 +8,86 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  9,  6.50)     ref  ->  [fp+0x18]  this class-hnd single-def <System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]>
+;  V00 this         [V00,T00] (  9,  6.50)     ref  ->  x19         this class-hnd single-def <System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]>
 ;  V01 loc0         [V01,T02] (  3,  2.50)     ref  ->   x1         class-hnd exact single-def <<unknown class>>
-;  V02 loc1         [V02,T03] (  3,  2.50)     int  ->   x3        
+;  V02 loc1         [V02,T03] (  3,  2.50)     int  ->   x2        
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04    ] (  2,  2   )  struct (32) [fp+0x20]  do-not-enreg[XS] addr-exposed "by-value struct argument" <BenchmarkDotNet.Reports.Measurement>
-;  V05 tmp2         [V05,T01] (  3,  3   )     ref  ->   x2         single-def "argument with side effect"
-;  V06 cse0         [V06,T04] (  3,  2.50)     int  ->   x2         "CSE - aggressive"
-;  V07 cse1         [V07,T05] (  2,  2   )     int  ->   x4         "CSE - aggressive"
+;  V04 tmp1         [V04    ] (  2,  2   )  struct (32) [fp+0x18]  do-not-enreg[XS] addr-exposed "by-value struct argument" <BenchmarkDotNet.Reports.Measurement>
+;  V05 tmp2         [V05,T01] (  3,  3   )     ref  ->   x3         single-def "argument with side effect"
+;  V06 cse0         [V06,T04] (  3,  2.50)     int  ->   x0         "CSE - aggressive"
+;  V07 cse1         [V07,T05] (  2,  2   )     int  ->   x3         "CSE - aggressive"
 ;
-; Lcl frame size = 48
+; Lcl frame size = 40
 
 G_M7274_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
+            str     x19, [sp, #0x38]
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M7274_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x0]
-            ldr     x1, [x0, #0x18]
+            mov     x19, x0
+            ; gcrRegs +[x19]
+                       ;; size=16 bbWeight=1 PerfScore 3.00
+G_M7274_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            ldr     x1, [x19, #0x18]
             ; gcrRegs +[x1]
-            ldr     w2, [x0, #0x14]
-            sub     w3, w2, #1
-            ldr     w4, [x1, #0x08]
-            cmp     w4, w3
+            ldr     w0, [x19, #0x14]
+            sub     w2, w0, #1
+            ldr     w3, [x1, #0x08]
+            cmp     w3, w2
             bls     G_M7274_IG05
                        ;; size=24 bbWeight=1 PerfScore 11.00
-G_M7274_IG03:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref
-            add     w2, w2, #1
-            str     w2, [x0, #0x14]
-            str     x0, [fp, #0x18]    // [V00 this]
-            ; GC ptr vars +{V00}
-            ldr     x2, [x0, #0x20]
-            ; gcrRegs +[x2]
-            ubfiz   x3, x3, #5, #32
-            add     x3, x3, #16
-            add     x1, x1, x3
+G_M7274_IG03:        ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
+            add     w0, w0, #1
+            str     w0, [x19, #0x14]
+            ldr     x3, [x19, #0x20]
+            ; gcrRegs +[x3]
+            ubfiz   x0, x2, #5, #32
+            add     x0, x0, #16
+            add     x1, x1, x0
             ; gcrRegs -[x1]
             ; byrRegs +[x1]
-            ldp     q16, q17, [x1]
-            stp     q16, q17, [fp, #0x20]
-            add     x1, fp, #32    // [V04 tmp1]
+            ldp     x0, x2, [x1]
+            stp     x0, x2, [fp, #0x18]
+            ldp     x0, x2, [x1, #0x10]
+            stp     x0, x2, [fp, #0x28]
+            add     x1, fp, #24    // [V04 tmp1]
             ; byrRegs -[x1]
-            ldr     x0, [x2, #0x08]
-            ldr     x2, [x2, #0x18]
-            ; gcrRegs -[x2]
-            blr     x2
-            ; gcrRegs -[x0]
-            ldr     x0, [fp, #0x18]    // [V00 this]
+            ldr     x0, [x3, #0x08]
             ; gcrRegs +[x0]
-            str     d0, [x0, #0x08]
+            ldr     x2, [x3, #0x18]
+            blr     x2
+            ; gcrRegs -[x0 x3]
+            str     d0, [x19, #0x08]
             mov     w0, #1
-            ; gcrRegs -[x0]
-                       ;; size=64 bbWeight=0.50 PerfScore 11.25
+                       ;; size=64 bbWeight=0.50 PerfScore 12.75
 G_M7274_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+            ldr     x19, [sp, #0x38]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M7274_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x0]
-            ; GC ptr vars -{V00}
-            str     xzr, [x0, #0x08]
-            movn    w1, #0
-            str     w1, [x0, #0x14]
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+G_M7274_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+            str     xzr, [x19, #0x08]
+            movn    w0, #0
+            str     w0, [x19, #0x14]
             mov     w0, wzr
-            ; gcrRegs -[x0]
                        ;; size=16 bbWeight=0.50 PerfScore 1.50
 G_M7274_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+            ldr     x19, [sp, #0x38]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 128, prolog size 8, PerfScore 27.25, instruction count 32, allocated bytes for code 128 (MethodHash=937fe395) for method System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 144, prolog size 12, PerfScore 32.25, instruction count 36, allocated bytes for code 144 (MethodHash=937fe395) for method System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 1
+  Code Words        : 2
   Epilog Count      : 2
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 32 (0x00020) Actual length = 128 (0x000080)
+  Function Length   : 36 (0x00024) Actual length = 144 (0x000090)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -100,7 +98,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
+    D0 07       save_reg X#0 Z#7 (0x07); str x19, [sp, #56]
     87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
     E4          end
     E4          end
+    E4          end
+    E4          end
 

benchmarks.run_pgo.osx.arm64.checked.mch

-44 (-26.83%) : 62622.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)

@@ -5,69 +5,52 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
-;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x60]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x58]  do-not-enreg[]
-;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x54]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x48]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
+;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x40]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
+;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x38]  do-not-enreg[]
+;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x34]  do-not-enreg[]
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x38]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-;  V08 tmp2         [V08    ] (  1,  1   )     ref  ->  [fp+0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp3         [V09    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp4         [V10    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V11 tmp5         [V11    ] (  1,  1   )     ref  ->  [fp+0x18]  do-not-enreg[] must-init "argument with side effect"
+;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;
-; Lcl frame size = 112
+; Lcl frame size = 80
 
 G_M19554_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x80]!
+            stp     fp, lr, [sp, #-0x60]!
             mov     fp, sp
-            add     x9, fp, #24
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     xzr, xzr, [x9, #0x20]
-            str     xzr, [x9, #0x30]
-            str     x0, [fp, #0x78]    // [V00 this]
-            str     x1, [fp, #0x70]    // [V01 arg1]
-            str     x2, [fp, #0x68]    // [V02 arg2]
-            str     x3, [fp, #0x60]    // [V03 arg3]
-            str     x4, [fp, #0x58]    // [V04 arg4]
-            str     w5, [fp, #0x54]    // [V05 arg5]
-                       ;; size=52 bbWeight=1 PerfScore 11.50
+            str     xzr, [fp, #0x18]   // [V07 tmp1]
+            str     xzr, [fp, #0x20]   // [V07 tmp1+0x08]
+            str     x0, [fp, #0x58]    // [V00 this]
+            str     x1, [fp, #0x50]    // [V01 arg1]
+            str     x2, [fp, #0x48]    // [V02 arg2]
+            str     x3, [fp, #0x40]    // [V03 arg3]
+            str     x4, [fp, #0x38]    // [V04 arg4]
+            str     w5, [fp, #0x34]    // [V05 arg5]
+                       ;; size=40 bbWeight=1 PerfScore 9.50
 G_M19554_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x78]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x30]    // [V08 tmp2]
-            ldr     x0, [fp, #0x70]    // [V01 arg1]
-            str     x0, [fp, #0x28]    // [V09 tmp3]
-            ldr     x0, [fp, #0x68]    // [V02 arg2]
-            str     x0, [fp, #0x20]    // [V10 tmp4]
-            ldr     x0, [fp, #0x60]    // [V03 arg3]
-            str     x0, [fp, #0x18]    // [V11 tmp5]
-            ldr     x0, [fp, #0x58]    // [V04 arg4]
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-                       ;; size=36 bbWeight=1 PerfScore 14.00
+            ldr     x5, [fp, #0x38]    // [V04 arg4]
+            ; byrRegs +[x5]
+                       ;; size=4 bbWeight=1 PerfScore 2.00
 G_M19554_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x1, x2, [x0]
-            stp     x1, x2, [fp, #0x38]
-            ldr     x1, [x0, #0x10]
-            str     x1, [fp, #0x48]
+            ldp     x1, x6, [x5]
+            stp     x1, x6, [fp, #0x18]
+            ldr     x1, [x5, #0x10]
+            str     x1, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M19554_IG04:        ; bbWeight=1, extend
-            ldr     x0, [fp, #0x30]    // [V08 tmp2]
-            ; gcrRegs +[x0]
-            ; byrRegs -[x0]
-            ldr     x1, [fp, #0x28]    // [V09 tmp3]
-            ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x20]    // [V10 tmp4]
-            ; gcrRegs +[x2]
-            ldr     x4, [fp, #0x18]    // [V11 tmp5]
-            ; gcrRegs +[x4]
-            add     x5, fp, #56    // [V07 tmp1]
-            ldr     w6, [fp, #0x54]    // [V05 arg5]
+            add     x5, fp, #24    // [V07 tmp1]
+            ; byrRegs -[x5]
+            ldr     w6, [fp, #0x34]    // [V05 arg5]
             uxtb    w6, w6
+            ldr     x1, [fp, #0x50]    // [V01 arg1]
+            ; gcrRegs +[x1]
+            ldr     x2, [fp, #0x48]    // [V02 arg2]
+            ; gcrRegs +[x2]
+            ldr     x4, [fp, #0x40]    // [V03 arg3]
+            ; gcrRegs +[x4]
+            ldr     x0, [fp, #0x58]    // [V00 this]
+            ; gcrRegs +[x0]
             mov     x3, xzr
             movz    x7, #0xD1FFAB1E      // code for <unknown method>
             movk    x7, #0xD1FFAB1E LSL #16
@@ -77,11 +60,11 @@ G_M19554_IG04:        ; bbWeight=1, extend
             ; gcrRegs -[x0-x2 x4]
                        ;; size=52 bbWeight=1 PerfScore 17.00
 G_M19554_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x80
+            ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 164, prolog size 28, PerfScore 53.50, instruction count 41, allocated bytes for code 164 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
+; Total bytes of code 120, prolog size 16, PerfScore 39.50, instruction count 30, allocated bytes for code 120 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -92,7 +75,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
+  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -100,7 +83,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    8F          save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
+    8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
     E4          end
     E4          end
 

-16 (-25.00%) : 70082.dasm - System.Text.Json.Utf8JsonWriter:TryFormatDouble(double,System.Span`1[ubyte],byref):ubyte (Tier1)

@@ -8,51 +8,44 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T08] (  3,  3   )  double  ->   d0         single-def
+;  V00 arg0         [V00,T06] (  3,  3   )  double  ->   d0         single-def
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[ubyte]>
-;  V02 arg2         [V02,T02] (  3,  3   )   byref  ->   x2         single-def
+;  V02 arg2         [V02,T01] (  3,  3   )   byref  ->   x2         single-def
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Buffers.StandardFormat>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Buffers.StandardFormat>
-;  V06 tmp2         [V06,T03] (  2,  2   )   byref  ->   x0         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V07 tmp3         [V07,T05] (  2,  2   )     int  ->   x1         single-def "field V01._length (fldOffset=0x8)" P-INDEP
-;* V08 tmp4         [V08,T06] (  0,  0   )   ubyte  ->  zero-ref    "field V03._format (fldOffset=0x0)" P-INDEP
-;* V09 tmp5         [V09,T07] (  0,  0   )   ubyte  ->  zero-ref    "field V03._precision (fldOffset=0x1)" P-INDEP
+;  V06 tmp2         [V06,T02] (  2,  2   )   byref  ->   x0         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V07 tmp3         [V07,T03] (  2,  2   )     int  ->   x1         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;* V08 tmp4         [V08,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V03._format (fldOffset=0x0)" P-INDEP
+;* V09 tmp5         [V09,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V03._precision (fldOffset=0x1)" P-INDEP
 ;* V10 tmp6         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "field V05._format (fldOffset=0x0)" P-INDEP
 ;* V11 tmp7         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    "field V05._precision (fldOffset=0x1)" P-INDEP
-;  V12 tmp8         [V12,T01] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Buffers.StandardFormat>
-;  V13 tmp9         [V13,T09] (  2,  4   )  double  ->   d0         "argument with side effect"
-;  V14 tmp10        [V14,T00] (  4,  8   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.Span`1[ubyte]>
-;  V15 tmp11        [V15,T04] (  2,  4   )   byref  ->   x2         single-def "argument with side effect"
+;  V12 tmp8         [V12,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Buffers.StandardFormat>
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M16219_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-            str     xzr, [fp, #0x18]   // [V14 tmp10]
-                       ;; size=12 bbWeight=1 PerfScore 2.50
+                       ;; size=8 bbWeight=1 PerfScore 1.50
 G_M16219_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0005 {x0 x2}, byref
             ; byrRegs +[x0 x2]
-            str     x0, [fp, #0x18]    // [V14 tmp10]
-            str     w1, [fp, #0x20]    // [V14 tmp10+0x08]
-            strb    wzr, [fp, #0x28]   // [V12 tmp8]
-            strb    wzr, [fp, #0x29]   // [V12 tmp8+0x01]
-            ldp     x0, x1, [fp, #0x18]    // [V14 tmp10], [V14 tmp10+0x08]
-            ldrh    w3, [fp, #0x28]    // [V12 tmp8]
+            strb    wzr, [fp, #0x18]   // [V12 tmp8]
+            strb    wzr, [fp, #0x19]   // [V12 tmp8+0x01]
+            ldrh    w3, [fp, #0x18]    // [V12 tmp8]
             movz    x4, #0xD1FFAB1E      // code for <unknown method>
             movk    x4, #0xD1FFAB1E LSL #16
             movk    x4, #1 LSL #32
             ldr     x4, [x4]
             blr     x4
             ; byrRegs -[x0 x2]
-                       ;; size=44 bbWeight=1 PerfScore 14.50
+                       ;; size=32 bbWeight=1 PerfScore 9.50
 G_M16219_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x30
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 64, prolog size 12, PerfScore 19.00, instruction count 16, allocated bytes for code 64 (MethodHash=0f30c0a4) for method System.Text.Json.Utf8JsonWriter:TryFormatDouble(double,System.Span`1[ubyte],byref):ubyte (Tier1)
+; Total bytes of code 48, prolog size 8, PerfScore 13.00, instruction count 12, allocated bytes for code 48 (MethodHash=0f30c0a4) for method System.Text.Json.Utf8JsonWriter:TryFormatDouble(double,System.Span`1[ubyte],byref):ubyte (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -63,7 +56,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
+  Function Length   : 12 (0x0000c) Actual length = 48 (0x000030)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -71,7 +64,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

-48 (-22.22%) : 62571.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)

@@ -5,80 +5,59 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x88]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x80]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbol>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
-;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax>
-;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x68]  do-not-enreg[]
-;  V05 arg5         [V05    ] (  1,  1   )     ref  ->  [fp+0x60]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax>
-;  V06 arg6         [V06    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
-;  V07 arg7         [V07    ] (  1,  1   )   ubyte  ->  [fp+0x54]  do-not-enreg[]
-;  V08 arg8         [V08    ] (  1,  1   )   ubyte  ->  [fp+0x90]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x60]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbol>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
+;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax>
+;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x48]  do-not-enreg[]
+;  V05 arg5         [V05    ] (  1,  1   )     ref  ->  [fp+0x40]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax>
+;  V06 arg6         [V06    ] (  1,  1   )     ref  ->  [fp+0x38]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
+;  V07 arg7         [V07    ] (  1,  1   )   ubyte  ->  [fp+0x34]  do-not-enreg[]
+;  V08 arg8         [V08    ] (  1,  1   )   ubyte  ->  [fp+0x70]  do-not-enreg[]
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10    ] (  1,  1   )  struct (24) [fp+0x38]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.SyntaxToken>
-;  V11 tmp2         [V11    ] (  1,  1   )     ref  ->  [fp+0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V12 tmp3         [V12    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V13 tmp4         [V13    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V14 tmp5         [V14    ] (  1,  1   )     int  ->  [fp+0x1C]  do-not-enreg[] "argument with side effect"
-;  V15 tmp6         [V15    ] (  1,  1   )     ref  ->  [fp+0x10]  do-not-enreg[] must-init "argument with side effect"
+;  V10 tmp1         [V10    ] (  1,  1   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.SyntaxToken>
 ;
-; Lcl frame size = 128
+; Lcl frame size = 96
 
 G_M62552_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x90]!
+            stp     fp, lr, [sp, #-0x70]!
             mov     fp, sp
-            add     x9, fp, #16
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     q16, q16, [x9, #0x20]
-            str     x0, [fp, #0x88]    // [V00 this]
-            str     x1, [fp, #0x80]    // [V01 arg1]
-            str     x2, [fp, #0x78]    // [V02 arg2]
-            str     x3, [fp, #0x70]    // [V03 arg3]
-            str     x4, [fp, #0x68]    // [V04 arg4]
-            str     x5, [fp, #0x60]    // [V05 arg5]
-            str     x6, [fp, #0x58]    // [V06 arg6]
-            str     w7, [fp, #0x54]    // [V07 arg7]
-                       ;; size=56 bbWeight=1 PerfScore 12.50
+            str     xzr, [fp, #0x18]   // [V10 tmp1]
+            str     xzr, [fp, #0x20]   // [V10 tmp1+0x08]
+            str     x0, [fp, #0x68]    // [V00 this]
+            str     x1, [fp, #0x60]    // [V01 arg1]
+            str     x2, [fp, #0x58]    // [V02 arg2]
+            str     x3, [fp, #0x50]    // [V03 arg3]
+            str     x4, [fp, #0x48]    // [V04 arg4]
+            str     x5, [fp, #0x40]    // [V05 arg5]
+            str     x6, [fp, #0x38]    // [V06 arg6]
+            str     w7, [fp, #0x34]    // [V07 arg7]
+                       ;; size=48 bbWeight=1 PerfScore 11.50
 G_M62552_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x88]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x30]    // [V11 tmp2]
-            ldr     x0, [fp, #0x80]    // [V01 arg1]
-            str     x0, [fp, #0x28]    // [V12 tmp3]
-            ldr     x0, [fp, #0x78]    // [V02 arg2]
-            str     x0, [fp, #0x20]    // [V13 tmp4]
-            ldr     w0, [fp, #0x90]    // [V08 arg8]
-            ; gcrRegs -[x0]
-            uxtb    w0, w0
-            str     w0, [fp, #0x1C]    // [V14 tmp5]
-            ldr     x0, [fp, #0x70]    // [V03 arg3]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x10]    // [V15 tmp6]
-            ldr     x0, [fp, #0x68]    // [V04 arg4]
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-                       ;; size=48 bbWeight=1 PerfScore 17.50
+            ldr     x6, [fp, #0x48]    // [V04 arg4]
+            ; byrRegs +[x6]
+                       ;; size=4 bbWeight=1 PerfScore 2.00
 G_M62552_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x1, x2, [x0]
-            stp     x1, x2, [fp, #0x38]
-            ldr     x1, [x0, #0x10]
-            str     x1, [fp, #0x48]
+            ldp     x4, x7, [x6]
+            stp     x4, x7, [fp, #0x18]
+            ldr     x4, [x6, #0x10]
+            str     x4, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M62552_IG04:        ; bbWeight=1, extend
-            ldr     x0, [fp, #0x30]    // [V11 tmp2]
-            ; gcrRegs +[x0]
-            ; byrRegs -[x0]
-            ldr     x1, [fp, #0x28]    // [V12 tmp3]
-            ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x20]    // [V13 tmp4]
-            ; gcrRegs +[x2]
-            ldr     w4, [fp, #0x1C]    // [V14 tmp5]
-            ldr     x5, [fp, #0x10]    // [V15 tmp6]
-            ; gcrRegs +[x5]
-            add     x6, fp, #56    // [V10 tmp1]
-            ldr     w7, [fp, #0x54]    // [V07 arg7]
+            add     x6, fp, #24    // [V10 tmp1]
+            ; byrRegs -[x6]
+            ldr     w7, [fp, #0x34]    // [V07 arg7]
             uxtb    w7, w7
+            ldr     w4, [fp, #0x70]    // [V08 arg8]
+            uxtb    w4, w4
+            ldr     x1, [fp, #0x60]    // [V01 arg1]
+            ; gcrRegs +[x1]
+            ldr     x2, [fp, #0x58]    // [V02 arg2]
+            ; gcrRegs +[x2]
+            ldr     x5, [fp, #0x50]    // [V03 arg3]
+            ; gcrRegs +[x5]
+            ldr     x0, [fp, #0x68]    // [V00 this]
+            ; gcrRegs +[x0]
             mov     w3, #1
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
             movk    x8, #0xD1FFAB1E LSL #16
@@ -86,33 +65,33 @@ G_M62552_IG04:        ; bbWeight=1, extend
             ldr     x8, [x8]
             blr     x8
             ; gcrRegs -[x0-x2 x5]
-            ldr     x14, [fp, #0x88]   // [V00 this]
+            ldr     x14, [fp, #0x68]   // [V00 this]
             ; gcrRegs +[x14]
             add     x14, x14, #80
             ; gcrRegs -[x14]
             ; byrRegs +[x14]
-            ldr     x15, [fp, #0x60]   // [V05 arg5]
+            ldr     x15, [fp, #0x40]   // [V05 arg5]
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x14]
-            ldr     x14, [fp, #0x88]   // [V00 this]
+            ldr     x14, [fp, #0x68]   // [V00 this]
             ; gcrRegs +[x14]
             add     x14, x14, #88
             ; gcrRegs -[x14]
             ; byrRegs +[x14]
-            ldr     x15, [fp, #0x58]   // [V06 arg6]
+            ldr     x15, [fp, #0x38]   // [V06 arg6]
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x14]
-                       ;; size=88 bbWeight=1 PerfScore 30.00
+                       ;; size=92 bbWeight=1 PerfScore 30.50
 G_M62552_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x90
+            ldp     fp, lr, [sp], #0x70
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 216, prolog size 24, PerfScore 71.00, instruction count 54, allocated bytes for code 216 (MethodHash=9edc0ba7) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)
+; Total bytes of code 168, prolog size 16, PerfScore 55.00, instruction count 42, allocated bytes for code 168 (MethodHash=9edc0ba7) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -123,7 +102,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 54 (0x00036) Actual length = 216 (0x0000d8)
+  Function Length   : 42 (0x0002a) Actual length = 168 (0x0000a8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -131,7 +110,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    91          save_fplr_x #17 (0x11); stp fp, lr, [sp, #-144]!
+    8D          save_fplr_x #13 (0x0D); stp fp, lr, [sp, #-112]!
     E4          end
     E4          end
 

+12 (+5.26%) : 31555.dasm - System.Security.Cryptography.HashProviderDispenser+AppleHmacProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this (Tier1)

@@ -14,17 +14,17 @@
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T03] (  2,  4   )   byref  ->  x22         single-def "impAppendStmt"
 ;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-;  V05 tmp3         [V05,T01] (  4,  8   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <ubyte[]>
+;  V05 tmp3         [V05,T01] (  4,  8   )     ref  ->   x1         class-hnd single-def "Inlining Arg" <ubyte[]>
 ;* V06 tmp4         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V07 tmp5         [V07    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V08 tmp6         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;  V09 tmp7         [V09    ] (  2,  2   )   byref  ->  [fp+0x18]  must-init pinned "Inline stloc first use temp"
+;  V09 tmp7         [V09    ] (  2,  2   )   byref  ->  [fp+0x10]  must-init pinned "Inline stloc first use temp"
 ;* V10 tmp8         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;  V11 tmp9         [V11,T04] (  2,  4   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Security.Cryptography.Apple.SafeHmacHandle>
 ;* V12 tmp10        [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V13 tmp11        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;  V14 tmp12        [V14,T05] (  2,  4   )   byref  ->   x0         single-def "Inlining Arg"
-;  V15 tmp13        [V15,T13] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V15 tmp13        [V15,T12] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V16 tmp14        [V16,T06] (  2,  4   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Security.Cryptography.Apple.SafeHmacHandle>
 ;* V17 tmp15        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V18 tmp16        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
@@ -32,8 +32,8 @@
 ;  V20 tmp18        [V20,T02] (  3,  3   )     int  ->  x20         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V21 tmp19        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V22 tmp20        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
-;  V23 tmp21        [V23,T11] (  4,  3   )   byref  ->   x1         "field V06._reference (fldOffset=0x0)" P-INDEP
-;  V24 tmp22        [V24,T12] (  3,  2   )     int  ->   x2         "field V06._length (fldOffset=0x8)" P-INDEP
+;  V23 tmp21        [V23,T10] (  4,  3   )   byref  ->  x23         "field V06._reference (fldOffset=0x0)" P-INDEP
+;  V24 tmp22        [V24,T11] (  3,  2   )     int  ->   x2         "field V06._length (fldOffset=0x8)" P-INDEP
 ;* V25 tmp23        [V25    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V26 tmp24        [V26    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
 ;* V27 tmp25        [V27    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V12._reference (fldOffset=0x0)" P-INDEP
@@ -44,50 +44,51 @@
 ;* V32 tmp30        [V32    ] (  0,  0   )     int  ->  zero-ref    "field V17._length (fldOffset=0x8)" P-INDEP
 ;* V33 tmp31        [V33    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V18._reference (fldOffset=0x0)" P-INDEP
 ;* V34 tmp32        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V18._length (fldOffset=0x8)" P-INDEP
-;  V35 tmp33        [V35,T09] (  2,  4   )    long  ->   x1         "Cast away GC"
-;  V36 tmp34        [V36,T08] (  2,  4   )     ref  ->   x0         single-def "argument with side effect"
-;  V37 tmp35        [V37,T10] (  2,  4   )    long  ->   x1         "argument with side effect"
+;  V35 tmp33        [V35,T08] (  2,  4   )    long  ->   x1         "Cast away GC"
+;  V36 tmp34        [V36,T09] (  2,  4   )    long  ->   x1         "argument with side effect"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 8
 
 G_M41892_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x20]
-            stp     x21, x22, [sp, #0x30]
+            stp     x19, x20, [sp, #0x18]
+            stp     x21, x22, [sp, #0x28]
+            str     x23, [sp, #0x38]
             mov     fp, sp
-            str     xzr, [fp, #0x18]   // [V09 tmp7]
+            str     xzr, [fp, #0x10]   // [V09 tmp7]
             mov     x19, x0
             ; gcrRegs +[x19]
             mov     x21, x1
             ; byrRegs +[x21]
             mov     w20, w2
-                       ;; size=32 bbWeight=1 PerfScore 6.00
+                       ;; size=36 bbWeight=1 PerfScore 7.00
 G_M41892_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
-            ldrb    w0, [x19, #0x10]
-            cbnz    w0, G_M41892_IG04
+            ldrb    w1, [x19, #0x10]
+            cbnz    w1, G_M41892_IG04
             add     x22, x19, #24
             ; byrRegs +[x22]
-            ldr     x0, [x19, #0x08]
-            ; gcrRegs +[x0]
-            cbz     x0, G_M41892_IG07
-            add     x1, x0, #16
-            ; byrRegs +[x1]
-            ldr     w2, [x0, #0x08]
+            ldr     x1, [x19, #0x08]
+            ; gcrRegs +[x1]
+            cbz     x1, G_M41892_IG07
+            add     x23, x1, #16
+            ; byrRegs +[x23]
+            ldr     w2, [x1, #0x08]
                        ;; size=28 bbWeight=1 PerfScore 12.00
-G_M41892_IG03:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=600002 {x1 x21 x22}, byref
-            ; gcrRegs -[x0]
+G_M41892_IG03:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=E00000 {x21 x22 x23}, byref
+            ; gcrRegs -[x1]
             ldr     x0, [x22]
             ; gcrRegs +[x0]
-            str     x1, [fp, #0x18]    // [V09 tmp7]
+            str     x23, [fp, #0x10]   // [V09 tmp7]
+            mov     x1, x23
             movz    x3, #0xD1FFAB1E      // code for <unknown method>
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs -[x0]
-            ; byrRegs -[x1 x22]
-            str     xzr, [fp, #0x18]   // [V09 tmp7]
-                       ;; size=32 bbWeight=1 PerfScore 10.50
+            ; byrRegs -[x22-x23]
+            str     xzr, [fp, #0x10]   // [V09 tmp7]
+                       ;; size=36 bbWeight=1 PerfScore 11.00
 G_M41892_IG04:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
             add     x0, x19, #24
             ; byrRegs +[x0]
@@ -113,21 +114,22 @@ G_M41892_IG05:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             strb    w0, [x19, #0x10]
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M41892_IG06:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x30]
-            ldp     x19, x20, [sp, #0x20]
+            ldr     x23, [sp, #0x38]
+            ldp     x21, x22, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=16 bbWeight=1 PerfScore 4.00
+                       ;; size=20 bbWeight=1 PerfScore 6.00
 G_M41892_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, gcvars, byref
             ; byrRegs +[x21-x22]
-            mov     x1, xzr
-            ; byrRegs +[x1]
+            mov     x23, xzr
+            ; byrRegs +[x23]
             mov     w2, wzr
             b       G_M41892_IG03
                        ;; size=12 bbWeight=0 PerfScore 0.00
 G_M41892_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
-            ; byrRegs -[x1 x21-x22]
+            ; byrRegs -[x21-x23]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
@@ -148,7 +150,7 @@ G_M41892_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=52 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 228, prolog size 20, PerfScore 46.50, instruction count 57, allocated bytes for code 228 (MethodHash=ee725c5b) for method System.Security.Cryptography.HashProviderDispenser+AppleHmacProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this (Tier1)
+; Total bytes of code 240, prolog size 24, PerfScore 50.00, instruction count 60, allocated bytes for code 240 (MethodHash=ee725c5b) for method System.Security.Cryptography.HashProviderDispenser+AppleHmacProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -159,7 +161,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 57 (0x00039) Actual length = 228 (0x0000e4)
+  Function Length   : 60 (0x0003c) Actual length = 240 (0x0000f0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -167,10 +169,9 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
+    D1 07       save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
     E6          save_next
-    C8 04       save_regp X#0 Z#4 (0x04); stp x19, x20, [sp, #32]
+    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
     87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
     E4          end
-    E4          end
-    E4          end
 

+12 (+5.26%) : 33867.dasm - System.Security.Cryptography.HashProviderDispenser+AppleHmacProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this (Tier1)

@@ -14,17 +14,17 @@
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03,T03] (  2,  4   )   byref  ->  x22         single-def "impAppendStmt"
 ;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
-;  V05 tmp3         [V05,T01] (  4,  8   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <ubyte[]>
+;  V05 tmp3         [V05,T01] (  4,  8   )     ref  ->   x1         class-hnd single-def "Inlining Arg" <ubyte[]>
 ;* V06 tmp4         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V07 tmp5         [V07    ] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V08 tmp6         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
-;  V09 tmp7         [V09    ] (  2,  2   )   byref  ->  [fp+0x18]  must-init pinned "Inline stloc first use temp"
+;  V09 tmp7         [V09    ] (  2,  2   )   byref  ->  [fp+0x10]  must-init pinned "Inline stloc first use temp"
 ;* V10 tmp8         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
 ;  V11 tmp9         [V11,T04] (  2,  4   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Security.Cryptography.Apple.SafeHmacHandle>
 ;* V12 tmp10        [V12    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V13 tmp11        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;  V14 tmp12        [V14,T05] (  2,  4   )   byref  ->   x0         single-def "Inlining Arg"
-;  V15 tmp13        [V15,T13] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V15 tmp13        [V15,T12] (  3,  0   )     ref  ->  x19         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V16 tmp14        [V16,T06] (  2,  4   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Security.Cryptography.Apple.SafeHmacHandle>
 ;* V17 tmp15        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
 ;* V18 tmp16        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ubyte]>
@@ -32,8 +32,8 @@
 ;  V20 tmp18        [V20,T02] (  3,  3   )     int  ->  x20         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V21 tmp19        [V21    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V22 tmp20        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
-;  V23 tmp21        [V23,T11] (  4,  3   )   byref  ->   x1         "field V06._reference (fldOffset=0x0)" P-INDEP
-;  V24 tmp22        [V24,T12] (  3,  2   )     int  ->   x2         "field V06._length (fldOffset=0x8)" P-INDEP
+;  V23 tmp21        [V23,T10] (  4,  3   )   byref  ->  x23         "field V06._reference (fldOffset=0x0)" P-INDEP
+;  V24 tmp22        [V24,T11] (  3,  2   )     int  ->   x2         "field V06._length (fldOffset=0x8)" P-INDEP
 ;* V25 tmp23        [V25    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V08._reference (fldOffset=0x0)" P-INDEP
 ;* V26 tmp24        [V26    ] (  0,  0   )     int  ->  zero-ref    "field V08._length (fldOffset=0x8)" P-INDEP
 ;* V27 tmp25        [V27    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V12._reference (fldOffset=0x0)" P-INDEP
@@ -44,50 +44,51 @@
 ;* V32 tmp30        [V32    ] (  0,  0   )     int  ->  zero-ref    "field V17._length (fldOffset=0x8)" P-INDEP
 ;* V33 tmp31        [V33    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V18._reference (fldOffset=0x0)" P-INDEP
 ;* V34 tmp32        [V34    ] (  0,  0   )     int  ->  zero-ref    "field V18._length (fldOffset=0x8)" P-INDEP
-;  V35 tmp33        [V35,T09] (  2,  4   )    long  ->   x1         "Cast away GC"
-;  V36 tmp34        [V36,T08] (  2,  4   )     ref  ->   x0         single-def "argument with side effect"
-;  V37 tmp35        [V37,T10] (  2,  4   )    long  ->   x1         "argument with side effect"
+;  V35 tmp33        [V35,T08] (  2,  4   )    long  ->   x1         "Cast away GC"
+;  V36 tmp34        [V36,T09] (  2,  4   )    long  ->   x1         "argument with side effect"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 8
 
 G_M41892_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x20]
-            stp     x21, x22, [sp, #0x30]
+            stp     x19, x20, [sp, #0x18]
+            stp     x21, x22, [sp, #0x28]
+            str     x23, [sp, #0x38]
             mov     fp, sp
-            str     xzr, [fp, #0x18]   // [V09 tmp7]
+            str     xzr, [fp, #0x10]   // [V09 tmp7]
             mov     x19, x0
             ; gcrRegs +[x19]
             mov     x21, x1
             ; byrRegs +[x21]
             mov     w20, w2
-                       ;; size=32 bbWeight=1 PerfScore 6.00
+                       ;; size=36 bbWeight=1 PerfScore 7.00
 G_M41892_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
-            ldrb    w0, [x19, #0x10]
-            cbnz    w0, G_M41892_IG04
+            ldrb    w1, [x19, #0x10]
+            cbnz    w1, G_M41892_IG04
             add     x22, x19, #24
             ; byrRegs +[x22]
-            ldr     x0, [x19, #0x08]
-            ; gcrRegs +[x0]
-            cbz     x0, G_M41892_IG07
-            add     x1, x0, #16
-            ; byrRegs +[x1]
-            ldr     w2, [x0, #0x08]
+            ldr     x1, [x19, #0x08]
+            ; gcrRegs +[x1]
+            cbz     x1, G_M41892_IG07
+            add     x23, x1, #16
+            ; byrRegs +[x23]
+            ldr     w2, [x1, #0x08]
                        ;; size=28 bbWeight=1 PerfScore 12.00
-G_M41892_IG03:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=600002 {x1 x21 x22}, byref
-            ; gcrRegs -[x0]
+G_M41892_IG03:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=E00000 {x21 x22 x23}, byref
+            ; gcrRegs -[x1]
             ldr     x0, [x22]
             ; gcrRegs +[x0]
-            str     x1, [fp, #0x18]    // [V09 tmp7]
+            str     x23, [fp, #0x10]   // [V09 tmp7]
+            mov     x1, x23
             movz    x3, #0xD1FFAB1E      // code for <unknown method>
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs -[x0]
-            ; byrRegs -[x1 x22]
-            str     xzr, [fp, #0x18]   // [V09 tmp7]
-                       ;; size=32 bbWeight=1 PerfScore 10.50
+            ; byrRegs -[x22-x23]
+            str     xzr, [fp, #0x10]   // [V09 tmp7]
+                       ;; size=36 bbWeight=1 PerfScore 11.00
 G_M41892_IG04:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=200000 {x21}, byref, isz
             add     x0, x19, #24
             ; byrRegs +[x0]
@@ -113,21 +114,22 @@ G_M41892_IG05:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             strb    w0, [x19, #0x10]
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M41892_IG06:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x30]
-            ldp     x19, x20, [sp, #0x20]
+            ldr     x23, [sp, #0x38]
+            ldp     x21, x22, [sp, #0x28]
+            ldp     x19, x20, [sp, #0x18]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=16 bbWeight=1 PerfScore 4.00
+                       ;; size=20 bbWeight=1 PerfScore 6.00
 G_M41892_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, gcvars, byref
             ; byrRegs +[x21-x22]
-            mov     x1, xzr
-            ; byrRegs +[x1]
+            mov     x23, xzr
+            ; byrRegs +[x23]
             mov     w2, wzr
             b       G_M41892_IG03
                        ;; size=12 bbWeight=0 PerfScore 0.00
 G_M41892_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
-            ; byrRegs -[x1 x21-x22]
+            ; byrRegs -[x21-x23]
             movz    x0, #0xD1FFAB1E
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
@@ -148,7 +150,7 @@ G_M41892_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             brk_unix #0
                        ;; size=52 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 228, prolog size 20, PerfScore 46.50, instruction count 57, allocated bytes for code 228 (MethodHash=ee725c5b) for method System.Security.Cryptography.HashProviderDispenser+AppleHmacProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this (Tier1)
+; Total bytes of code 240, prolog size 24, PerfScore 50.00, instruction count 60, allocated bytes for code 240 (MethodHash=ee725c5b) for method System.Security.Cryptography.HashProviderDispenser+AppleHmacProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -159,7 +161,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 57 (0x00039) Actual length = 228 (0x0000e4)
+  Function Length   : 60 (0x0003c) Actual length = 240 (0x0000f0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -167,10 +169,9 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
+    D1 07       save_reg X#4 Z#7 (0x07); str x23, [sp, #56]
     E6          save_next
-    C8 04       save_regp X#0 Z#4 (0x04); stp x19, x20, [sp, #32]
+    C8 03       save_regp X#0 Z#3 (0x03); stp x19, x20, [sp, #24]
     87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
     E4          end
-    E4          end
-    E4          end
 

+4 (+5.88%) : 63609.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)

@@ -9,44 +9,44 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] (  3,  3   )   byref  ->   x0         this single-def
-;  V01 arg1         [V01,T00] (  5,  5   )     ref  ->   x1         class-hnd single-def <System.Threading.ReaderWriterLockSlim>
+;  V01 arg1         [V01,T00] (  5,  5   )     ref  ->   x2         class-hnd single-def <System.Threading.ReaderWriterLockSlim>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;* V04 tmp2         [V04,T04] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V05 tmp3         [V05,T05] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04,T03] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
+;* V05 tmp3         [V05,T04] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V06 tmp4         [V06    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;* V07 tmp5         [V07,T06] (  0,  0   )     int  ->  zero-ref    "field V03._total (fldOffset=0x0)" P-INDEP
-;* V08 tmp6         [V08,T07] (  0,  0   )     int  ->  zero-ref    "field V03._start (fldOffset=0x4)" P-INDEP
+;* V07 tmp5         [V07,T05] (  0,  0   )     int  ->  zero-ref    "field V03._total (fldOffset=0x0)" P-INDEP
+;* V08 tmp6         [V08,T06] (  0,  0   )     int  ->  zero-ref    "field V03._start (fldOffset=0x4)" P-INDEP
 ;* V09 tmp7         [V09    ] (  0,  0   )     int  ->  zero-ref    "field V06._total (fldOffset=0x0)" P-INDEP
 ;* V10 tmp8         [V10    ] (  0,  0   )     int  ->  zero-ref    "field V06._start (fldOffset=0x4)" P-INDEP
 ;* V11 tmp9         [V11    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;  V12 tmp10        [V12,T01] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;  V13 tmp11        [V13,T03] (  2,  4   )     ref  ->   x0         single-def "argument with side effect"
 ;
 ; Lcl frame size = 16
 
 G_M44302_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M44302_IG02:        ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0001 {x0}, byref
-            ; gcrRegs +[x1]
+            mov     x2, x1
+            ; gcrRegs +[x2]
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M44302_IG02:        ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref
             ; byrRegs +[x0]
             mov     x14, x0
             ; byrRegs +[x14]
-            mov     x15, x1
+            mov     x15, x2
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_CHECKED_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x0 x14]
-            ldrsb   wzr, [x1]
-            mov     x0, x1
-            ; gcrRegs +[x0]
+            ldrsb   wzr, [x2]
             movn    w1, #0
-            ; gcrRegs -[x1]
             stp     w1, wzr, [fp, #0x18]   // [V12 tmp10], [V12 tmp10+0x04]
             ldr     x1, [fp, #0x18]    // [V12 tmp10]
+            mov     x0, x2
+            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            ; gcrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
@@ -58,7 +58,7 @@ G_M44302_IG03:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 68, prolog size 8, PerfScore 18.00, instruction count 17, allocated bytes for code 68 (MethodHash=a56c52f1) for method Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
+; Total bytes of code 72, prolog size 8, PerfScore 18.50, instruction count 18, allocated bytes for code 72 (MethodHash=a56c52f1) for method Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -69,7 +69,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 17 (0x00011) Actual length = 68 (0x000044)
+  Function Length   : 18 (0x00012) Actual length = 72 (0x000048)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

benchmarks.run_tiered.osx.arm64.checked.mch

-44 (-26.83%) : 40882.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)

@@ -5,69 +5,52 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
-;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x60]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x58]  do-not-enreg[]
-;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x54]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x48]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
+;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x40]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
+;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x38]  do-not-enreg[]
+;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x34]  do-not-enreg[]
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x38]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-;  V08 tmp2         [V08    ] (  1,  1   )     ref  ->  [fp+0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp3         [V09    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp4         [V10    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V11 tmp5         [V11    ] (  1,  1   )     ref  ->  [fp+0x18]  do-not-enreg[] must-init "argument with side effect"
+;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;
-; Lcl frame size = 112
+; Lcl frame size = 80
 
 G_M19554_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x80]!
+            stp     fp, lr, [sp, #-0x60]!
             mov     fp, sp
-            add     x9, fp, #24
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     xzr, xzr, [x9, #0x20]
-            str     xzr, [x9, #0x30]
-            str     x0, [fp, #0x78]    // [V00 this]
-            str     x1, [fp, #0x70]    // [V01 arg1]
-            str     x2, [fp, #0x68]    // [V02 arg2]
-            str     x3, [fp, #0x60]    // [V03 arg3]
-            str     x4, [fp, #0x58]    // [V04 arg4]
-            str     w5, [fp, #0x54]    // [V05 arg5]
-                       ;; size=52 bbWeight=1 PerfScore 11.50
+            str     xzr, [fp, #0x18]   // [V07 tmp1]
+            str     xzr, [fp, #0x20]   // [V07 tmp1+0x08]
+            str     x0, [fp, #0x58]    // [V00 this]
+            str     x1, [fp, #0x50]    // [V01 arg1]
+            str     x2, [fp, #0x48]    // [V02 arg2]
+            str     x3, [fp, #0x40]    // [V03 arg3]
+            str     x4, [fp, #0x38]    // [V04 arg4]
+            str     w5, [fp, #0x34]    // [V05 arg5]
+                       ;; size=40 bbWeight=1 PerfScore 9.50
 G_M19554_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x78]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x30]    // [V08 tmp2]
-            ldr     x0, [fp, #0x70]    // [V01 arg1]
-            str     x0, [fp, #0x28]    // [V09 tmp3]
-            ldr     x0, [fp, #0x68]    // [V02 arg2]
-            str     x0, [fp, #0x20]    // [V10 tmp4]
-            ldr     x0, [fp, #0x60]    // [V03 arg3]
-            str     x0, [fp, #0x18]    // [V11 tmp5]
-            ldr     x0, [fp, #0x58]    // [V04 arg4]
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-                       ;; size=36 bbWeight=1 PerfScore 14.00
+            ldr     x5, [fp, #0x38]    // [V04 arg4]
+            ; byrRegs +[x5]
+                       ;; size=4 bbWeight=1 PerfScore 2.00
 G_M19554_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x1, x2, [x0]
-            stp     x1, x2, [fp, #0x38]
-            ldr     x1, [x0, #0x10]
-            str     x1, [fp, #0x48]
+            ldp     x1, x6, [x5]
+            stp     x1, x6, [fp, #0x18]
+            ldr     x1, [x5, #0x10]
+            str     x1, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M19554_IG04:        ; bbWeight=1, extend
-            ldr     x0, [fp, #0x30]    // [V08 tmp2]
-            ; gcrRegs +[x0]
-            ; byrRegs -[x0]
-            ldr     x1, [fp, #0x28]    // [V09 tmp3]
-            ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x20]    // [V10 tmp4]
-            ; gcrRegs +[x2]
-            ldr     x4, [fp, #0x18]    // [V11 tmp5]
-            ; gcrRegs +[x4]
-            add     x5, fp, #56    // [V07 tmp1]
-            ldr     w6, [fp, #0x54]    // [V05 arg5]
+            add     x5, fp, #24    // [V07 tmp1]
+            ; byrRegs -[x5]
+            ldr     w6, [fp, #0x34]    // [V05 arg5]
             uxtb    w6, w6
+            ldr     x1, [fp, #0x50]    // [V01 arg1]
+            ; gcrRegs +[x1]
+            ldr     x2, [fp, #0x48]    // [V02 arg2]
+            ; gcrRegs +[x2]
+            ldr     x4, [fp, #0x40]    // [V03 arg3]
+            ; gcrRegs +[x4]
+            ldr     x0, [fp, #0x58]    // [V00 this]
+            ; gcrRegs +[x0]
             mov     x3, xzr
             movz    x7, #0xD1FFAB1E      // code for <unknown method>
             movk    x7, #0xD1FFAB1E LSL #16
@@ -77,11 +60,11 @@ G_M19554_IG04:        ; bbWeight=1, extend
             ; gcrRegs -[x0-x2 x4]
                        ;; size=52 bbWeight=1 PerfScore 17.00
 G_M19554_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x80
+            ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 164, prolog size 28, PerfScore 53.50, instruction count 41, allocated bytes for code 164 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
+; Total bytes of code 120, prolog size 16, PerfScore 39.50, instruction count 30, allocated bytes for code 120 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -92,7 +75,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
+  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -100,7 +83,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    8F          save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
+    8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
     E4          end
     E4          end
 

-48 (-22.22%) : 40831.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)

@@ -5,80 +5,59 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x88]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x80]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbol>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
-;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax>
-;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x68]  do-not-enreg[]
-;  V05 arg5         [V05    ] (  1,  1   )     ref  ->  [fp+0x60]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax>
-;  V06 arg6         [V06    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
-;  V07 arg7         [V07    ] (  1,  1   )   ubyte  ->  [fp+0x54]  do-not-enreg[]
-;  V08 arg8         [V08    ] (  1,  1   )   ubyte  ->  [fp+0x90]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x60]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbol>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
+;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax>
+;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x48]  do-not-enreg[]
+;  V05 arg5         [V05    ] (  1,  1   )     ref  ->  [fp+0x40]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax>
+;  V06 arg6         [V06    ] (  1,  1   )     ref  ->  [fp+0x38]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
+;  V07 arg7         [V07    ] (  1,  1   )   ubyte  ->  [fp+0x34]  do-not-enreg[]
+;  V08 arg8         [V08    ] (  1,  1   )   ubyte  ->  [fp+0x70]  do-not-enreg[]
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10    ] (  1,  1   )  struct (24) [fp+0x38]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.SyntaxToken>
-;  V11 tmp2         [V11    ] (  1,  1   )     ref  ->  [fp+0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V12 tmp3         [V12    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V13 tmp4         [V13    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V14 tmp5         [V14    ] (  1,  1   )     int  ->  [fp+0x1C]  do-not-enreg[] "argument with side effect"
-;  V15 tmp6         [V15    ] (  1,  1   )     ref  ->  [fp+0x10]  do-not-enreg[] must-init "argument with side effect"
+;  V10 tmp1         [V10    ] (  1,  1   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.SyntaxToken>
 ;
-; Lcl frame size = 128
+; Lcl frame size = 96
 
 G_M62552_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x90]!
+            stp     fp, lr, [sp, #-0x70]!
             mov     fp, sp
-            add     x9, fp, #16
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     q16, q16, [x9, #0x20]
-            str     x0, [fp, #0x88]    // [V00 this]
-            str     x1, [fp, #0x80]    // [V01 arg1]
-            str     x2, [fp, #0x78]    // [V02 arg2]
-            str     x3, [fp, #0x70]    // [V03 arg3]
-            str     x4, [fp, #0x68]    // [V04 arg4]
-            str     x5, [fp, #0x60]    // [V05 arg5]
-            str     x6, [fp, #0x58]    // [V06 arg6]
-            str     w7, [fp, #0x54]    // [V07 arg7]
-                       ;; size=56 bbWeight=1 PerfScore 12.50
+            str     xzr, [fp, #0x18]   // [V10 tmp1]
+            str     xzr, [fp, #0x20]   // [V10 tmp1+0x08]
+            str     x0, [fp, #0x68]    // [V00 this]
+            str     x1, [fp, #0x60]    // [V01 arg1]
+            str     x2, [fp, #0x58]    // [V02 arg2]
+            str     x3, [fp, #0x50]    // [V03 arg3]
+            str     x4, [fp, #0x48]    // [V04 arg4]
+            str     x5, [fp, #0x40]    // [V05 arg5]
+            str     x6, [fp, #0x38]    // [V06 arg6]
+            str     w7, [fp, #0x34]    // [V07 arg7]
+                       ;; size=48 bbWeight=1 PerfScore 11.50
 G_M62552_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x88]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x30]    // [V11 tmp2]
-            ldr     x0, [fp, #0x80]    // [V01 arg1]
-            str     x0, [fp, #0x28]    // [V12 tmp3]
-            ldr     x0, [fp, #0x78]    // [V02 arg2]
-            str     x0, [fp, #0x20]    // [V13 tmp4]
-            ldr     w0, [fp, #0x90]    // [V08 arg8]
-            ; gcrRegs -[x0]
-            uxtb    w0, w0
-            str     w0, [fp, #0x1C]    // [V14 tmp5]
-            ldr     x0, [fp, #0x70]    // [V03 arg3]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x10]    // [V15 tmp6]
-            ldr     x0, [fp, #0x68]    // [V04 arg4]
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-                       ;; size=48 bbWeight=1 PerfScore 17.50
+            ldr     x6, [fp, #0x48]    // [V04 arg4]
+            ; byrRegs +[x6]
+                       ;; size=4 bbWeight=1 PerfScore 2.00
 G_M62552_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x1, x2, [x0]
-            stp     x1, x2, [fp, #0x38]
-            ldr     x1, [x0, #0x10]
-            str     x1, [fp, #0x48]
+            ldp     x4, x7, [x6]
+            stp     x4, x7, [fp, #0x18]
+            ldr     x4, [x6, #0x10]
+            str     x4, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M62552_IG04:        ; bbWeight=1, extend
-            ldr     x0, [fp, #0x30]    // [V11 tmp2]
-            ; gcrRegs +[x0]
-            ; byrRegs -[x0]
-            ldr     x1, [fp, #0x28]    // [V12 tmp3]
-            ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x20]    // [V13 tmp4]
-            ; gcrRegs +[x2]
-            ldr     w4, [fp, #0x1C]    // [V14 tmp5]
-            ldr     x5, [fp, #0x10]    // [V15 tmp6]
-            ; gcrRegs +[x5]
-            add     x6, fp, #56    // [V10 tmp1]
-            ldr     w7, [fp, #0x54]    // [V07 arg7]
+            add     x6, fp, #24    // [V10 tmp1]
+            ; byrRegs -[x6]
+            ldr     w7, [fp, #0x34]    // [V07 arg7]
             uxtb    w7, w7
+            ldr     w4, [fp, #0x70]    // [V08 arg8]
+            uxtb    w4, w4
+            ldr     x1, [fp, #0x60]    // [V01 arg1]
+            ; gcrRegs +[x1]
+            ldr     x2, [fp, #0x58]    // [V02 arg2]
+            ; gcrRegs +[x2]
+            ldr     x5, [fp, #0x50]    // [V03 arg3]
+            ; gcrRegs +[x5]
+            ldr     x0, [fp, #0x68]    // [V00 this]
+            ; gcrRegs +[x0]
             mov     w3, #1
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
             movk    x8, #0xD1FFAB1E LSL #16
@@ -86,33 +65,33 @@ G_M62552_IG04:        ; bbWeight=1, extend
             ldr     x8, [x8]
             blr     x8
             ; gcrRegs -[x0-x2 x5]
-            ldr     x14, [fp, #0x88]   // [V00 this]
+            ldr     x14, [fp, #0x68]   // [V00 this]
             ; gcrRegs +[x14]
             add     x14, x14, #80
             ; gcrRegs -[x14]
             ; byrRegs +[x14]
-            ldr     x15, [fp, #0x60]   // [V05 arg5]
+            ldr     x15, [fp, #0x40]   // [V05 arg5]
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x14]
-            ldr     x14, [fp, #0x88]   // [V00 this]
+            ldr     x14, [fp, #0x68]   // [V00 this]
             ; gcrRegs +[x14]
             add     x14, x14, #88
             ; gcrRegs -[x14]
             ; byrRegs +[x14]
-            ldr     x15, [fp, #0x58]   // [V06 arg6]
+            ldr     x15, [fp, #0x38]   // [V06 arg6]
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x14]
-                       ;; size=88 bbWeight=1 PerfScore 30.00
+                       ;; size=92 bbWeight=1 PerfScore 30.50
 G_M62552_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x90
+            ldp     fp, lr, [sp], #0x70
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 216, prolog size 24, PerfScore 71.00, instruction count 54, allocated bytes for code 216 (MethodHash=9edc0ba7) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)
+; Total bytes of code 168, prolog size 16, PerfScore 55.00, instruction count 42, allocated bytes for code 168 (MethodHash=9edc0ba7) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -123,7 +102,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 54 (0x00036) Actual length = 216 (0x0000d8)
+  Function Length   : 42 (0x0002a) Actual length = 168 (0x0000a8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -131,7 +110,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    91          save_fplr_x #17 (0x11); stp fp, lr, [sp, #-144]!
+    8D          save_fplr_x #13 (0x0D); stp fp, lr, [sp, #-112]!
     E4          end
     E4          end
 

-28 (-21.88%) : 10365.dasm - System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Tier0)

@@ -5,49 +5,37 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00    ] (  1,  1   )     ref  ->  [fp+0x48]  do-not-enreg[] class-hnd <System.String>
-;  V01 arg1         [V01    ] (  1,  1   )  ushort  ->  [fp+0x44]  do-not-enreg[]
-;  V02 arg2         [V02    ] (  1,  1   )     int  ->  [fp+0x40]  do-not-enreg[]
-;  V03 arg3         [V03    ] (  1,  1   )   byref  ->  [fp+0x38]  do-not-enreg[]
+;  V00 arg0         [V00    ] (  1,  1   )     ref  ->  [fp+0x38]  do-not-enreg[] class-hnd <System.String>
+;  V01 arg1         [V01    ] (  1,  1   )  ushort  ->  [fp+0x34]  do-not-enreg[]
+;  V02 arg2         [V02    ] (  1,  1   )     int  ->  [fp+0x30]  do-not-enreg[]
+;  V03 arg3         [V03    ] (  1,  1   )   byref  ->  [fp+0x28]  do-not-enreg[]
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05    ] (  1,  1   )    long  ->  [fp+0x30]  do-not-enreg[] "Cast away GC"
-;  V06 tmp2         [V06    ] (  1,  1   )    long  ->  [fp+0x28]  do-not-enreg[] "argument with side effect"
-;  V07 tmp3         [V07    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V08 tmp4         [V08    ] (  1,  1   )     int  ->  [fp+0x1C]  do-not-enreg[] "argument with side effect"
-;  V09 tmp5         [V09    ] (  1,  1   )     int  ->  [fp+0x18]  do-not-enreg[] "argument with side effect"
+;  V05 tmp1         [V05    ] (  1,  1   )    long  ->  [fp+0x20]  do-not-enreg[] "Cast away GC"
+;  V06 tmp2         [V06    ] (  1,  1   )    long  ->  [fp+0x18]  do-not-enreg[] "argument with side effect"
 ;
-; Lcl frame size = 64
+; Lcl frame size = 48
 
 G_M56677_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x50]!
+            stp     fp, lr, [sp, #-0x40]!
             mov     fp, sp
-            str     xzr, [fp, #0x20]   // [V07 tmp3]
-            str     x0, [fp, #0x48]    // [V00 arg0]
-            str     w1, [fp, #0x44]    // [V01 arg1]
-            str     w2, [fp, #0x40]    // [V02 arg2]
-            str     x3, [fp, #0x38]    // [V03 arg3]
-                       ;; size=28 bbWeight=1 PerfScore 6.50
+            str     x0, [fp, #0x38]    // [V00 arg0]
+            str     w1, [fp, #0x34]    // [V01 arg1]
+            str     w2, [fp, #0x30]    // [V02 arg2]
+            str     x3, [fp, #0x28]    // [V03 arg3]
+                       ;; size=24 bbWeight=1 PerfScore 5.50
 G_M56677_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x4, [fp, #0x48]    // [V00 arg0]
-            ; gcrRegs +[x4]
-            str     x4, [fp, #0x20]    // [V07 tmp3]
-            ldr     w4, [fp, #0x44]    // [V01 arg1]
-            ; gcrRegs -[x4]
-            uxth    w4, w4
-            str     w4, [fp, #0x1C]    // [V08 tmp4]
-            ldr     w4, [fp, #0x40]    // [V02 arg2]
-            str     w4, [fp, #0x18]    // [V09 tmp5]
-            ldr     x4, [fp, #0x38]    // [V03 arg3]
+            ldr     x4, [fp, #0x28]    // [V03 arg3]
             ; byrRegs +[x4]
-            str     x4, [fp, #0x30]    // [V05 tmp1]
-            ldr     x4, [fp, #0x30]    // [V05 tmp1]
+            str     x4, [fp, #0x20]    // [V05 tmp1]
+            ldr     x4, [fp, #0x20]    // [V05 tmp1]
             ; byrRegs -[x4]
-            str     x4, [fp, #0x28]    // [V06 tmp2]
-            ldr     x4, [fp, #0x28]    // [V06 tmp2]
-            ldr     x1, [fp, #0x20]    // [V07 tmp3]
+            str     x4, [fp, #0x18]    // [V06 tmp2]
+            ldr     x4, [fp, #0x18]    // [V06 tmp2]
+            ldr     w2, [fp, #0x34]    // [V01 arg1]
+            uxth    w2, w2
+            ldr     x1, [fp, #0x38]    // [V00 arg0]
             ; gcrRegs +[x1]
-            ldr     w2, [fp, #0x1C]    // [V08 tmp4]
-            ldr     w3, [fp, #0x18]    // [V09 tmp5]
+            ldr     w3, [fp, #0x30]    // [V02 arg2]
             movz    x0, #0xD1FFAB1E      // code for <unknown method>
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #1 LSL #32
@@ -57,13 +45,13 @@ G_M56677_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ldr     x5, [x5]
             blr     x5
             ; gcrRegs -[x1]
-                       ;; size=92 bbWeight=1 PerfScore 30.50
+                       ;; size=68 bbWeight=1 PerfScore 21.50
 G_M56677_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x50
+            ldp     fp, lr, [sp], #0x40
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 128, prolog size 12, PerfScore 39.00, instruction count 32, allocated bytes for code 128 (MethodHash=eeac229a) for method System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Tier0)
+; Total bytes of code 100, prolog size 8, PerfScore 29.00, instruction count 25, allocated bytes for code 100 (MethodHash=eeac229a) for method System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -74,7 +62,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 32 (0x00020) Actual length = 128 (0x000080)
+  Function Length   : 25 (0x00019) Actual length = 100 (0x000064)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -82,7 +70,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    89          save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
+    87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
     E4          end
     E4          end
 

+8 (+1.57%) : 42617.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1[ulong]:FindStartPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],byref,int,byref,byref):ubyte:this (Tier1-OSR)

@@ -9,28 +9,28 @@
 ; 0 inlinees with PGO data; 9 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  8, 52   )     ref  ->  x19         this class-hnd single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]>
+;  V00 this         [V00,T04] (  8, 52   )     ref  ->  x19         this class-hnd single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ushort]>
-;  V02 arg2         [V02,T25] (  4,  3   )   byref  ->  [fp+0xA8]  EH-live single-def tier0-frame
+;  V02 arg2         [V02,T25] (  4,  3   )   byref  ->  [fp+0xB8]  EH-live single-def tier0-frame
 ;  V03 arg3         [V03,T19] (  3, 10   )     int  ->  x21         single-def
-;  V04 arg4         [V04,T09] (  6, 32   )   byref  ->  x20         single-def
+;  V04 arg4         [V04,T08] (  6, 32   )   byref  ->  x20         single-def
 ;  V05 arg5         [V05,T22] (  3,  4   )   byref  ->  x23         single-def
-;  V06 loc0         [V06,T11] (  7, 27   )     int  ->  [fp+0x8C]  do-not-enreg[Z] EH-live tier0-frame
-;  V07 loc1         [V07,T15] (  3, 20   )   ubyte  ->  x25        
+;  V06 loc0         [V06,T13] (  6, 23   )     int  ->  [fp+0x9C]  do-not-enreg[Z] EH-live tier0-frame
+;  V07 loc1         [V07,T14] (  3, 20   )   ubyte  ->  x25        
 ;* V08 loc2         [V08    ] (  0,  0   )     int  ->  zero-ref   
 ;  V09 loc3         [V09,T28] (  3,  2   )   ubyte  ->   x0        
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V11 tmp1         [V11,T12] (  4, 24   )     int  ->   x2         "Inline return value spill temp"
-;  V12 tmp2         [V12,T08] (  3, 36   )     int  ->   x0         "Inlining Arg"
+;  V11 tmp1         [V11,T10] (  4, 24   )     int  ->   x2         "Inline return value spill temp"
+;  V12 tmp2         [V12,T07] (  3, 36   )     int  ->   x0         "Inlining Arg"
 ;* V13 tmp3         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V14 tmp4         [V14,T24] (  3,  6   )     int  ->   x2         "Inline return value spill temp"
 ;  V15 tmp5         [V15,T18] (  3, 12   )     ref  ->   x1         class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.MintermClassifier>
-;  V16 tmp6         [V16,T23] (  3,  6   )     ref  ->  x26         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V16 tmp6         [V16,T23] (  3,  6   )     ref  ->  x27         class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V17 tmp7         [V17,T16] (  4, 16   )     int  ->   x2         "Inlining Arg"
 ;  V18 tmp8         [V18,T17] (  3, 14   )   ubyte  ->  x25         "Inline return value spill temp"
-;  V19 tmp9         [V19,T10] (  4, 28   )     int  ->   x4         "Inline stloc first use temp"
-;  V20 tmp10        [V20,T21] (  3, 10   )     int  ->   x1         "Inline stloc first use temp"
-;  V21 tmp11        [V21    ] (  3, 36   )     ref  ->  [fp+0x10]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]>
+;  V19 tmp9         [V19,T09] (  4, 28   )     int  ->   x4         "Inline stloc first use temp"
+;  V20 tmp10        [V20,T21] (  3, 10   )     int  ->   x5         "Inline stloc first use temp"
+;  V21 tmp11        [V21    ] (  3, 36   )     ref  ->  [fp+0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]>
 ;* V22 tmp12        [V22    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp13        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]>
 ;* V24 tmp14        [V24    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
@@ -40,38 +40,39 @@
 ;  V28 tmp18        [V28,T20] (  2,  9   )     int  ->  x22         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V29 tmp19        [V29    ] (  0,  0   )   byref  ->  zero-ref    "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V30 tmp20        [V30    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
-;  V31 tmp21        [V31,T06] (  3, 48   )     ref  ->   x0         "arr expr"
-;  V32 tmp22        [V32,T07] (  3, 48   )     int  ->   x1         "index expr"
-;  V33 tmp23        [V33,T13] (  3, 24   )     ref  ->   x1         "arr expr"
-;  V34 tmp24        [V34,T00] (  3, 96   )     ref  ->   x1         "arr expr"
-;  V35 tmp25        [V35,T01] (  3, 96   )     int  ->   x0         "index expr"
+;  V31 tmp21        [V31,T05] (  3, 48   )     ref  ->   x0         "arr expr"
+;  V32 tmp22        [V32,T06] (  3, 48   )     int  ->   x1         "index expr"
+;  V33 tmp23        [V33,T11] (  3, 24   )     ref  ->   x5         "arr expr"
+;  V34 tmp24        [V34,T00] (  3, 96   )     ref  ->   x5         "arr expr"
+;  V35 tmp25        [V35,T01] (  3, 96   )     int  ->   x1         "index expr"
 ;  V36 tmp26        [V36,T03] (  2, 64   )     ref  ->   x1         "argument with side effect"
-;  V37 tmp27        [V37,T04] (  2, 64   )     ref  ->   x1         "argument with side effect"
-;  V38 PSPSym       [V38,T29] (  1,  1   )    long  ->  [fp+0x18]  do-not-enreg[V] "PSPSym"
-;  V39 cse0         [V39,T14] (  3, 24   )     int  ->   x0         "CSE - aggressive"
-;  V40 cse1         [V40,T27] (  2,  4   )     int  ->   x0         "CSE - moderate"
+;  V37 PSPSym       [V37,T29] (  1,  1   )    long  ->  [fp+0x20]  do-not-enreg[V] "PSPSym"
+;  V38 cse0         [V38,T12] (  3, 24   )     int  ->   x1         "CSE - aggressive"
+;  V39 cse1         [V39,T15] (  3, 20   )     int  ->  x26         "CSE - aggressive"
+;  V40 cse2         [V40,T27] (  2,  4   )     int  ->   x0         "CSE - moderate"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 24
 
 G_M55933_IG01:        ; bbWeight=8, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x60]!
-            stp     x19, x20, [sp, #0x20]
-            stp     x21, x22, [sp, #0x30]
-            stp     x23, x24, [sp, #0x40]
-            stp     x25, x26, [sp, #0x50]
+            stp     fp, lr, [sp, #-0x70]!
+            stp     x19, x20, [sp, #0x28]
+            stp     x21, x22, [sp, #0x38]
+            stp     x23, x24, [sp, #0x48]
+            stp     x25, x26, [sp, #0x58]
+            str     x27, [sp, #0x68]
             mov     fp, sp
-            str     xzr, [fp, #0x10]   // [V21 tmp11]
-            add     xip1, sp, #208
-            str     xip1, [fp, #0x18]  // [V38 PSPSym]
-            ldr     x19, [fp, #0xC0]
+            str     xzr, [fp, #0x18]   // [V21 tmp11]
+            add     xip1, sp, #224
+            str     xip1, [fp, #0x20]  // [V37 PSPSym]
+            ldr     x19, [fp, #0xD0]
             ; gcrRegs +[x19]
-            ldr     w21, [fp, #0xA4]
-            ldp     x23, x20, [fp, #0x90]
+            ldr     w21, [fp, #0xB4]
+            ldp     x23, x20, [fp, #0xA0]
             ; byrRegs +[x20 x23]
-            ldr     x24, [fp, #0xB0]
+            ldr     x24, [fp, #0xC0]
             ; byrRegs +[x24]
-            ldr     w22, [fp, #0xB8]
-                       ;; size=56 bbWeight=8 PerfScore 152.00
+            ldr     w22, [fp, #0xC8]
+                       ;; size=60 bbWeight=8 PerfScore 160.00
 G_M55933_IG02:        ; bbWeight=8, gcVars=0000000002000000 {V02}, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, gcvars, byref, isz
             ; GC ptr vars +{V02}
             ldr     x0, [x19, #0x18]
@@ -84,19 +85,20 @@ G_M55933_IG02:        ; bbWeight=8, gcVars=0000000002000000 {V02}, gcrefRegs=800
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
             ldrb    w25, [x0, w1, UXTW #2]
-            ldr     w0, [fp, #0x8C]    // [V06 loc0]
+            ldr     w0, [fp, #0x9C]    // [V06 loc0]
             ; byrRegs -[x0]
-            sub     w0, w0, #1
+            sub     w26, w0, #1
+            sxtw    w0, w26
             cmp     w0, w22
             bhs     G_M55933_IG13
-                       ;; size=44 bbWeight=8 PerfScore 144.00
+                       ;; size=48 bbWeight=8 PerfScore 148.00
 G_M55933_IG03:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
             ldr     x1, [x19, #0x50]
             ; gcrRegs +[x1]
             ldrh    w2, [x24, w0, UXTW #2]
-            ldr     x26, [x1, #0x08]
-            ; gcrRegs +[x26]
-            ldr     w0, [x26, #0x08]
+            ldr     x27, [x1, #0x08]
+            ; gcrRegs +[x27]
+            ldr     w0, [x27, #0x08]
             cmp     w0, w2
             bhi     G_M55933_IG12
             ldr     x0, [x1, #0x10]
@@ -109,7 +111,7 @@ G_M55933_IG03:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x2
             ldr     x2, [x2]
             ldr     wzr, [x0]
             blr     x2
-            ; gcrRegs -[x0 x26]
+            ; gcrRegs -[x0 x27]
             ; gcr arg pop 0
             sxtw    w2, w0
                        ;; size=60 bbWeight=2 PerfScore 52.00
@@ -117,83 +119,80 @@ G_M55933_IG04:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x2
             tbz     w25, #2, G_M55933_IG06
                        ;; size=4 bbWeight=8 PerfScore 8.00
 G_M55933_IG05:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
-            ldr     w0, [fp, #0x8C]    // [V06 loc0]
-            str     w0, [x23]
+            ldr     w1, [fp, #0x9C]    // [V06 loc0]
+            str     w1, [x23]
                        ;; size=8 bbWeight=2 PerfScore 6.00
 G_M55933_IG06:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
-            ldr     w0, [fp, #0x8C]    // [V06 loc0]
-            cmp     w0, w21
+            ldr     w1, [fp, #0x9C]    // [V06 loc0]
+            cmp     w1, w21
             ble     G_M55933_IG16
                        ;; size=12 bbWeight=8 PerfScore 28.00
 G_M55933_IG07:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
             tbnz    w25, #1, G_M55933_IG16
-            ldr     w0, [x20, #0x08]
-            ldr     w1, [x19, #0xA4]
-            lsl     w1, w0, w1
-            orr     w4, w1, w2
-            ldr     x1, [x19, #0x20]
-            ; gcrRegs +[x1]
-            ldr     w5, [x1, #0x08]
-            cmp     w4, w5
+            ldr     w1, [x20, #0x08]
+            ldr     w5, [x19, #0xA4]
+            lsl     w5, w1, w5
+            orr     w4, w5, w2
+            ldr     x5, [x19, #0x20]
+            ; gcrRegs +[x5]
+            ldr     w0, [x5, #0x08]
+            cmp     w4, w0
             bhs     G_M55933_IG11
-            add     x1, x1, #16
-            ; gcrRegs -[x1]
-            ; byrRegs +[x1]
-            ldr     w1, [x1, w4, UXTW #2]
-            ; byrRegs -[x1]
-            cmp     w1, #0
+            add     x5, x5, #16
+            ; gcrRegs -[x5]
+            ; byrRegs +[x5]
+            ldr     w5, [x5, w4, UXTW #2]
+            ; byrRegs -[x5]
+            cmp     w5, #0
             ble     G_M55933_IG14
                        ;; size=52 bbWeight=4 PerfScore 82.00
 G_M55933_IG08:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
-            str     w1, [x20, #0x08]
+            str     w5, [x20, #0x08]
                        ;; size=4 bbWeight=2 PerfScore 2.00
 G_M55933_IG09:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
             mov     w25, #1
                        ;; size=4 bbWeight=8 PerfScore 4.00
 G_M55933_IG10:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
-            str     xzr, [fp, #0x10]   // [V21 tmp11]
+            str     xzr, [fp, #0x18]   // [V21 tmp11]
             cbz     w25, G_M55933_IG17
-            ldr     w0, [fp, #0x8C]    // [V06 loc0]
-            sub     w0, w0, #1
-            str     w0, [fp, #0x8C]    // [V06 loc0]
+            str     w26, [fp, #0x9C]   // [V06 loc0]
             b       G_M55933_IG02
-                       ;; size=24 bbWeight=4 PerfScore 26.00
+                       ;; size=16 bbWeight=4 PerfScore 16.00
 G_M55933_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
             ; byrRegs -[x20 x23-x24]
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M55933_IG12:        ; bbWeight=2, gcrefRegs=4080000 {x19 x26}, byrefRegs=1900000 {x20 x23 x24}, byref
-            ; gcrRegs +[x19 x26]
+G_M55933_IG12:        ; bbWeight=2, gcrefRegs=8080000 {x19 x27}, byrefRegs=1900000 {x20 x23 x24}, byref
+            ; gcrRegs +[x19 x27]
             ; byrRegs +[x20 x23-x24]
-            add     x0, x26, #16
-            ; byrRegs +[x0]
-            ldr     w2, [x0, w2, UXTW #2]
+            add     x1, x27, #16
+            ; byrRegs +[x1]
+            ldr     w2, [x1, w2, UXTW #2]
             b       G_M55933_IG04
                        ;; size=12 bbWeight=2 PerfScore 9.00
 G_M55933_IG13:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
-            ; gcrRegs -[x26]
-            ; byrRegs -[x0]
+            ; gcrRegs -[x27]
+            ; byrRegs -[x1]
             movn    w2, #0
             b       G_M55933_IG04
                        ;; size=8 bbWeight=2 PerfScore 3.00
 G_M55933_IG14:        ; bbWeight=16, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
-            mov     x1, x19
-            ; gcrRegs +[x1]
-            ldr     x1, [x1, #0x10]
-            ldr     w5, [x1, #0x08]
-            cmp     w0, w5
+            ldr     x5, [x19, #0x10]
+            ; gcrRegs +[x5]
+            ldr     w0, [x5, #0x08]
+            cmp     w1, w0
             bhs     G_M55933_IG11
-            add     x1, x1, #16
-            ; gcrRegs -[x1]
-            ; byrRegs +[x1]
-            ldr     x1, [x1, w0, UXTW #3]
+            add     x5, x5, #16
...

+12 (+2.86%) : 45524.dasm - System.Globalization.TextInfo:ChangeCaseCommonSystem.Globalization.TextInfo+ToUpperConversion:this (Tier1)

@@ -8,10 +8,10 @@
 ; 0 inlinees with PGO data; 26 single block inlinees; 11 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  7,  4.50)     ref  ->  x19         this class-hnd single-def <System.Globalization.TextInfo>
+;  V00 this         [V00,T01] (  7,  4.50)     ref  ->  x20         this class-hnd single-def <System.Globalization.TextInfo>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ushort]>
-;* V03 loc0         [V03,T22] (  0,  0   )   ubyte  ->  zero-ref   
+;* V03 loc0         [V03,T21] (  0,  0   )   ubyte  ->  zero-ref   
 ;  V04 loc1         [V04    ] (  5,  2.50)     int  ->  [fp+0x20]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V05 loc2         [V05    ] (  0,  0   )     int  ->  zero-ref   
 ;* V06 loc3         [V06    ] (  0,  0   )    long  ->  zero-ref   
@@ -60,7 +60,7 @@
 ;* V49 tmp39        [V49    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V50 tmp40        [V50    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V51 tmp41        [V51    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;* V52 tmp42        [V52,T23] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V52 tmp42        [V52,T22] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V53 tmp43        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V54 tmp44        [V54    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V55 tmp45        [V55    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
@@ -69,7 +69,7 @@
 ;* V58 tmp48        [V58    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V59 tmp49        [V59    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V60 tmp50        [V60    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;* V61 tmp51        [V61,T24] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V61 tmp51        [V61,T23] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V62 tmp52        [V62    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V63 tmp53        [V63    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V64 tmp54        [V64    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
@@ -79,7 +79,7 @@
 ;* V68 tmp58        [V68    ] (  0,  0   )    long  ->  zero-ref    "Inlining Arg"
 ;* V69 tmp59        [V69    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;  V70 tmp60        [V70,T02] (  4,  2.50)   byref  ->  x21         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V71 tmp61        [V71,T01] (  5,  3.50)     int  ->  x20         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V71 tmp61        [V71,T00] (  5,  3.50)     int  ->  x19         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;  V72 tmp62        [V72,T03] (  4,  2.50)   byref  ->  x22         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V73 tmp63        [V73,T04] (  4,  2.50)     int  ->  x23         single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V74 tmp64        [V74    ] (  0,  0   )   byref  ->  zero-ref    "field V18._reference (fldOffset=0x0)" P-INDEP
@@ -102,35 +102,34 @@
 ;* V91 tmp81        [V91    ] (  0,  0   )     int  ->  zero-ref    "field V39._length (fldOffset=0x8)" P-INDEP
 ;* V92 tmp82        [V92    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V93 tmp83        [V93    ] (  0,  0   )     int  ->  zero-ref    "field V43._length (fldOffset=0x8)" P-INDEP
-;* V94 tmp84        [V94,T16] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
-;* V95 tmp85        [V95,T25] (  0,  0   )     int  ->  zero-ref    "field V44._length (fldOffset=0x8)" P-INDEP
-;* V96 tmp86        [V96,T17] (  0,  0   )   byref  ->  zero-ref    single-def "field V45._reference (fldOffset=0x0)" P-INDEP
-;* V97 tmp87        [V97,T26] (  0,  0   )     int  ->  zero-ref    "field V45._length (fldOffset=0x8)" P-INDEP
+;* V94 tmp84        [V94,T15] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
+;* V95 tmp85        [V95,T24] (  0,  0   )     int  ->  zero-ref    "field V44._length (fldOffset=0x8)" P-INDEP
+;* V96 tmp86        [V96,T16] (  0,  0   )   byref  ->  zero-ref    single-def "field V45._reference (fldOffset=0x0)" P-INDEP
+;* V97 tmp87        [V97,T25] (  0,  0   )     int  ->  zero-ref    "field V45._length (fldOffset=0x8)" P-INDEP
 ;* V98 tmp88        [V98    ] (  0,  0   )   byref  ->  zero-ref    "field V46._reference (fldOffset=0x0)" P-INDEP
 ;* V99 tmp89        [V99    ] (  0,  0   )     int  ->  zero-ref    "field V46._length (fldOffset=0x8)" P-INDEP
-;* V100 tmp90       [V100,T18] (  0,  0   )   byref  ->  zero-ref    single-def "field V49._reference (fldOffset=0x0)" P-INDEP
+;* V100 tmp90       [V100,T17] (  0,  0   )   byref  ->  zero-ref    single-def "field V49._reference (fldOffset=0x0)" P-INDEP
 ;* V101 tmp91       [V101    ] (  0,  0   )     int  ->  zero-ref    "field V49._length (fldOffset=0x8)" P-INDEP
-;* V102 tmp92       [V102,T19] (  0,  0   )   byref  ->  zero-ref    single-def "field V53._reference (fldOffset=0x0)" P-INDEP
-;* V103 tmp93       [V103,T27] (  0,  0   )     int  ->  zero-ref    "field V53._length (fldOffset=0x8)" P-INDEP
+;* V102 tmp92       [V102,T18] (  0,  0   )   byref  ->  zero-ref    single-def "field V53._reference (fldOffset=0x0)" P-INDEP
+;* V103 tmp93       [V103,T26] (  0,  0   )     int  ->  zero-ref    "field V53._length (fldOffset=0x8)" P-INDEP
 ;* V104 tmp94       [V104    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V54._reference (fldOffset=0x0)" P-INDEP
 ;* V105 tmp95       [V105    ] (  0,  0   )     int  ->  zero-ref    "field V54._length (fldOffset=0x8)" P-INDEP
-;* V106 tmp96       [V106,T20] (  0,  0   )   byref  ->  zero-ref    single-def "field V58._reference (fldOffset=0x0)" P-INDEP
+;* V106 tmp96       [V106,T19] (  0,  0   )   byref  ->  zero-ref    single-def "field V58._reference (fldOffset=0x0)" P-INDEP
 ;* V107 tmp97       [V107    ] (  0,  0   )     int  ->  zero-ref    "field V58._length (fldOffset=0x8)" P-INDEP
-;* V108 tmp98       [V108,T21] (  0,  0   )   byref  ->  zero-ref    single-def "field V62._reference (fldOffset=0x0)" P-INDEP
-;* V109 tmp99       [V109,T28] (  0,  0   )     int  ->  zero-ref    "field V62._length (fldOffset=0x8)" P-INDEP
+;* V108 tmp98       [V108,T20] (  0,  0   )   byref  ->  zero-ref    single-def "field V62._reference (fldOffset=0x0)" P-INDEP
+;* V109 tmp99       [V109,T27] (  0,  0   )     int  ->  zero-ref    "field V62._length (fldOffset=0x8)" P-INDEP
 ;* V110 tmp100      [V110    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V64._reference (fldOffset=0x0)" P-INDEP
 ;* V111 tmp101      [V111    ] (  0,  0   )     int  ->  zero-ref    "field V64._length (fldOffset=0x8)" P-INDEP
 ;* V112 tmp102      [V112    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V65._reference (fldOffset=0x0)" P-INDEP
 ;* V113 tmp103      [V113    ] (  0,  0   )     int  ->  zero-ref    "field V65._length (fldOffset=0x8)" P-INDEP
 ;  V114 tmp104      [V114,T05] (  2,  2   )    long  ->  x21         "Cast away GC"
 ;  V115 tmp105      [V115,T06] (  2,  2   )    long  ->  x22         "Cast away GC"
-;* V116 tmp106      [V116,T15] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V117 tmp107      [V117,T07] (  2,  2   )    long  ->   x1         "argument with side effect"
-;  V118 tmp108      [V118,T08] (  2,  2   )     int  ->   x2         "argument with side effect"
-;  V119 tmp109      [V119,T09] (  2,  2   )    long  ->   x3         "argument with side effect"
-;  V120 cse0        [V120,T13] (  3,  1.50)    long  ->   x0         "CSE - moderate"
-;  V121 cse1        [V121,T14] (  3,  1.50)     int  ->   x0         "CSE - moderate"
-;  V122 cse2        [V122,T10] (  3,  1.50)     ref  ->   x1         "CSE - moderate"
+;  V116 tmp106      [V116,T07] (  2,  2   )    long  ->   x2         "argument with side effect"
+;  V117 tmp107      [V117,T08] (  2,  2   )     int  ->   x3         "argument with side effect"
+;  V118 tmp108      [V118,T09] (  2,  2   )    long  ->   x4         "argument with side effect"
+;  V119 cse0        [V119,T13] (  3,  1.50)    long  ->   x1         "CSE - moderate"
+;  V120 cse1        [V120,T14] (  3,  1.50)     int  ->   x0         "CSE - moderate"
+;  V121 cse2        [V121,T10] (  3,  1.50)     ref  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 24
 
@@ -141,20 +140,20 @@ G_M14148_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             str     x23, [sp, #0x48]
             mov     fp, sp
             stp     xzr, xzr, [fp, #0x10]  // [V09 loc6], [V07 loc4]
-            mov     x19, x0
-            ; gcrRegs +[x19]
+            mov     x20, x0
+            ; gcrRegs +[x20]
             mov     x21, x1
             ; byrRegs +[x21]
-            mov     w20, w2
+            mov     w19, w2
             mov     x22, x3
             ; byrRegs +[x22]
             mov     w23, w4
                        ;; size=44 bbWeight=1 PerfScore 8.00
-G_M14148_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, byref, isz
-            cbnz    w20, G_M14148_IG04
+G_M14148_IG02:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, byref, isz
+            cbnz    w19, G_M14148_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M14148_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[x19]
+            ; gcrRegs -[x20]
             ; byrRegs -[x21-x22]
             ldr     x23, [sp, #0x48]
             ldp     x21, x22, [sp, #0x38]
@@ -162,13 +161,13 @@ G_M14148_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ldp     fp, lr, [sp], #0x50
             ret     lr
                        ;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M14148_IG04:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, gcvars, byref, isz
-            ; gcrRegs +[x19]
+G_M14148_IG04:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, gcvars, byref, isz
+            ; gcrRegs +[x20]
             ; byrRegs +[x21-x22]
             str     wzr, [fp, #0x20]   // [V04 loc1]
-            ldrb    w0, [x19, #0x29]
+            ldrb    w0, [x20, #0x29]
             cbnz    w0, G_M14148_IG05
-            mov     x0, x19
+            mov     x0, x20
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for <unknown method>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -177,8 +176,8 @@ G_M14148_IG04:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800
             blr     x1
             ; gcrRegs -[x0]
                        ;; size=36 bbWeight=0.50 PerfScore 5.50
-G_M14148_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, byref, isz
-            ldrb    w0, [x19, #0x29]
+G_M14148_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, byref, isz
+            ldrb    w0, [x20, #0x29]
             cmp     w0, #2
             beq     G_M14148_IG06
             cmp     w0, #1
@@ -197,11 +196,11 @@ G_M14148_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {
             blr     x2
             ; gcrRegs -[x0]
                        ;; size=64 bbWeight=0.50 PerfScore 7.25
-G_M14148_IG06:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, byref, isz
-            ldrb    w0, [x19, #0x29]
+G_M14148_IG06:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, byref, isz
+            ldrb    w0, [x20, #0x29]
             cmp     w0, #2
             bne     G_M14148_IG08
-            cmp     w20, #0
+            cmp     w19, #0
             cset    x0, ge
             movz    x1, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
             movk    x1, #0xD1FFAB1E LSL #16
@@ -217,7 +216,7 @@ G_M14148_IG06:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {
             blr     x1
             mov     x0, x21
             ; byrRegs +[x0]
-            mov     w1, w20
+            mov     w1, w19
             mov     x2, x22
             ; byrRegs +[x2]
             mov     w3, w23
@@ -237,7 +236,7 @@ G_M14148_IG06:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {
             movk    x1, #1 LSL #32
             ldr     x1, [x1]
             blr     x1
-            ; gcrRegs -[x19]
+            ; gcrRegs -[x20]
             ; byrRegs -[x21-x22]
                        ;; size=144 bbWeight=0.50 PerfScore 16.75
 G_M14148_IG07:        ; bbWeight=0.50, epilog, nogc, extend
@@ -247,30 +246,33 @@ G_M14148_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x50
             ret     lr
                        ;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M14148_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, gcvars, byref
-            ; gcrRegs +[x19]
+G_M14148_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, gcvars, byref
+            ; gcrRegs +[x20]
             ; byrRegs +[x21-x22]
             stp     x22, x21, [fp, #0x10]  // [V09 loc6], [V07 loc4]
-            ldr     w0, [fp, #0x20]    // [V04 loc1]
-            sbfiz   x0, x0, #1, #32
-            add     x1, x21, x0
-            ldr     w2, [fp, #0x20]    // [V04 loc1]
-            sub     w2, w20, w2
-            add     x3, x22, x0
-            mov     x0, x19
-            ; gcrRegs +[x0]
+            ldr     w1, [fp, #0x20]    // [V04 loc1]
+            sbfiz   x1, x1, #1, #32
+            add     x2, x21, x1
+            ldr     w3, [fp, #0x20]    // [V04 loc1]
+            sub     w3, w19, w3
+            add     x4, x22, x1
+            mov     x1, x2
+            mov     w2, w3
+            mov     x3, x4
             ldr     w4, [fp, #0x20]    // [V04 loc1]
             sub     w4, w23, w4
+            mov     x0, x20
+            ; gcrRegs +[x0]
             mov     w5, #1
             movz    x6, #0xD1FFAB1E      // code for System.Globalization.TextInfo:IcuChangeCase(ulong,int,ulong,int,ubyte):this
             movk    x6, #0xD1FFAB1E LSL #16
             movk    x6, #1 LSL #32
             ldr     x6, [x6]
             blr     x6
-            ; gcrRegs -[x0 x19]
+            ; gcrRegs -[x0 x20]
             ; byrRegs -[x21-x22]
             stp     xzr, xzr, [fp, #0x10]  // [V09 loc6], [V07 loc4]
-                       ;; size=68 bbWeight=0.50 PerfScore 8.75
+                       ;; size=80 bbWeight=0.50 PerfScore 9.50
 G_M14148_IG09:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x23, [sp, #0x48]
             ldp     x21, x22, [sp, #0x38]
@@ -279,7 +281,7 @@ G_M14148_IG09:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=20 bbWeight=0.50 PerfScore 3.00
 
-; Total bytes of code 420, prolog size 24, PerfScore 56.25, instruction count 105, allocated bytes for code 420 (MethodHash=53d9c8bb) for method System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):this (Tier1)
+; Total bytes of code 432, prolog size 24, PerfScore 57.00, instruction count 108, allocated bytes for code 432 (MethodHash=53d9c8bb) for method System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -290,7 +292,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 105 (0x00069) Actual length = 420 (0x0001a4)
+  Function Length   : 108 (0x0006c) Actual length = 432 (0x0001b0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+5.88%) : 41343.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)

@@ -9,44 +9,44 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] (  3,  3   )   byref  ->   x0         this single-def
-;  V01 arg1         [V01,T00] (  5,  5   )     ref  ->   x1         class-hnd single-def <System.Threading.ReaderWriterLockSlim>
+;  V01 arg1         [V01,T00] (  5,  5   )     ref  ->   x2         class-hnd single-def <System.Threading.ReaderWriterLockSlim>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;* V04 tmp2         [V04,T04] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V05 tmp3         [V05,T05] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04,T03] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
+;* V05 tmp3         [V05,T04] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V06 tmp4         [V06    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;* V07 tmp5         [V07,T06] (  0,  0   )     int  ->  zero-ref    "field V03._total (fldOffset=0x0)" P-INDEP
-;* V08 tmp6         [V08,T07] (  0,  0   )     int  ->  zero-ref    "field V03._start (fldOffset=0x4)" P-INDEP
+;* V07 tmp5         [V07,T05] (  0,  0   )     int  ->  zero-ref    "field V03._total (fldOffset=0x0)" P-INDEP
+;* V08 tmp6         [V08,T06] (  0,  0   )     int  ->  zero-ref    "field V03._start (fldOffset=0x4)" P-INDEP
 ;* V09 tmp7         [V09    ] (  0,  0   )     int  ->  zero-ref    "field V06._total (fldOffset=0x0)" P-INDEP
 ;* V10 tmp8         [V10    ] (  0,  0   )     int  ->  zero-ref    "field V06._start (fldOffset=0x4)" P-INDEP
 ;* V11 tmp9         [V11    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;  V12 tmp10        [V12,T01] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;  V13 tmp11        [V13,T03] (  2,  4   )     ref  ->   x0         single-def "argument with side effect"
 ;
 ; Lcl frame size = 16
 
 G_M44302_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M44302_IG02:        ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0001 {x0}, byref
-            ; gcrRegs +[x1]
+            mov     x2, x1
+            ; gcrRegs +[x2]
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M44302_IG02:        ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref
             ; byrRegs +[x0]
             mov     x14, x0
             ; byrRegs +[x14]
-            mov     x15, x1
+            mov     x15, x2
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_CHECKED_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x0 x14]
-            ldrsb   wzr, [x1]
-            mov     x0, x1
-            ; gcrRegs +[x0]
+            ldrsb   wzr, [x2]
             movn    w1, #0
-            ; gcrRegs -[x1]
             stp     w1, wzr, [fp, #0x18]   // [V12 tmp10], [V12 tmp10+0x04]
             ldr     x1, [fp, #0x18]    // [V12 tmp10]
+            mov     x0, x2
+            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            ; gcrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
@@ -58,7 +58,7 @@ G_M44302_IG03:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 68, prolog size 8, PerfScore 18.00, instruction count 17, allocated bytes for code 68 (MethodHash=a56c52f1) for method Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
+; Total bytes of code 72, prolog size 8, PerfScore 18.50, instruction count 18, allocated bytes for code 72 (MethodHash=a56c52f1) for method Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -69,7 +69,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 17 (0x00011) Actual length = 68 (0x000044)
+  Function Length   : 18 (0x00012) Actual length = 72 (0x000048)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

coreclr_tests.run.osx.arm64.checked.mch

-48 (-30.00%) : 502373.dasm - (dynamicClass):ABIStress_TailCaller317(System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S11U,ABIStress.S1P,ABIStress.S9U,ABIStress.S4P,System.Int128,ABIStress.S3U,ABIStress.S11U,short,ABIStress.S7U,ABIStress.S6U,ABIStress.S6U,double,ABIStress.S16U,float,ABIStress.S1P,ABIStress.S3U,ABIStress.S15U,ABIStress.S12U):int (FullOpts)

@@ -11,7 +11,7 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (32) zero-ref    HFA(simd16)  multireg-arg single-def <System.Runtime.Intrinsics.Vector256`1[int]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SA] multireg-arg single-def <ABIStress.S11U>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct ( 8) zero-ref    single-def <ABIStress.S1P>
-;  V03 arg3         [V03,T04] (  3,  3   )  struct (16) [fp+0x60]  do-not-enreg[SA] multireg-arg single-def <ABIStress.S9U>
+;  V03 arg3         [V03,T01] (  4,  4   )  struct (16) [fp+0x20]  do-not-enreg[SA] multireg-arg single-def <ABIStress.S9U>
 ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def <ABIStress.S4P>
 ;* V05 arg5         [V05    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Int128>
 ;* V06 arg6         [V06    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] single-def <ABIStress.S3U>
@@ -25,89 +25,72 @@
 ;* V14 arg14        [V14    ] (  0,  0   )   float  ->  zero-ref    single-def
 ;* V15 arg15        [V15    ] (  0,  0   )  struct ( 8) zero-ref    single-def <ABIStress.S1P>
 ;* V16 arg16        [V16    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] single-def <ABIStress.S3U>
-;  V17 arg17        [V17,T11] (  1,  1   )  struct (16) [fp+0xC8]  do-not-enreg[S] single-def <ABIStress.S15U>
-;  V18 arg18        [V18,T12] (  1,  1   )  struct (16) [fp+0xD8]  do-not-enreg[SF] single-def <ABIStress.S12U>
+;  V17 arg17        [V17,T06] (  2,  2   )  struct (16) [fp+0x88]  do-not-enreg[SA] multireg-arg single-def <ABIStress.S15U>
+;  V18 arg18        [V18,T07] (  1,  1   )  struct (16) [fp+0x98]  do-not-enreg[SF] single-def <ABIStress.S12U>
 ;# V19 OutArgs      [V19    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V20 tmp1         [V20    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <ABIStress.S2P>
 ;* V21 tmp2         [V21    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <ABIStress.S4U>
 ;* V22 tmp3         [V22    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <ABIStress.S2P>
-;* V23 tmp4         [V23,T13] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V24 tmp5         [V24,T14] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V25 tmp6         [V25,T15] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V26 tmp7         [V26,T16] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;  V27 tmp8         [V27,T22] (  2,  2   )  simd16  ->   d0         HFA(simd16)  single-def "field V00._lower (fldOffset=0x0)" P-INDEP
-;  V28 tmp9         [V28,T23] (  2,  2   )  simd16  ->   d1         HFA(simd16)  single-def "field V00._upper (fldOffset=0x10)" P-INDEP
-;  V29 tmp10        [V29,T06] (  1,  1   )   ubyte  ->   x2         single-def "field V02.F0 (fldOffset=0x0)" P-INDEP
-;  V30 tmp11        [V30,T07] (  1,  1   )     int  ->   x5         single-def "field V04.F0 (fldOffset=0x0)" P-INDEP
-;  V31 tmp12        [V31,T08] (  1,  1   )    long  ->   x6         single-def "field V05._lower (fldOffset=0x0)" P-INDEP
-;  V32 tmp13        [V32,T09] (  1,  1   )    long  ->   x7         single-def "field V05._upper (fldOffset=0x8)" P-INDEP
+;* V23 tmp4         [V23,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V24 tmp5         [V24,T09] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V25 tmp6         [V25,T10] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V26 tmp7         [V26,T11] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;  V27 tmp8         [V27,T17] (  2,  2   )  simd16  ->   d0         HFA(simd16)  single-def "field V00._lower (fldOffset=0x0)" P-INDEP
+;  V28 tmp9         [V28,T18] (  2,  2   )  simd16  ->   d1         HFA(simd16)  single-def "field V00._upper (fldOffset=0x10)" P-INDEP
+;  V29 tmp10        [V29,T02] (  1,  1   )   ubyte  ->   x2         single-def "field V02.F0 (fldOffset=0x0)" P-INDEP
+;  V30 tmp11        [V30,T03] (  1,  1   )     int  ->   x5         single-def "field V04.F0 (fldOffset=0x0)" P-INDEP
+;  V31 tmp12        [V31,T04] (  1,  1   )    long  ->   x6         single-def "field V05._lower (fldOffset=0x0)" P-INDEP
+;  V32 tmp13        [V32,T05] (  1,  1   )    long  ->   x7         single-def "field V05._upper (fldOffset=0x8)" P-INDEP
 ;* V33 tmp14        [V33    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V15.F0 (fldOffset=0x0)" P-INDEP
-;* V34 tmp15        [V34,T17] (  0,  0   )   short  ->  zero-ref    single-def "field V20.F0 (fldOffset=0x0)" P-INDEP
-;* V35 tmp16        [V35,T18] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F0 (fldOffset=0x0)" P-INDEP
-;* V36 tmp17        [V36,T19] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F1 (fldOffset=0x1)" P-INDEP
-;* V37 tmp18        [V37,T20] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F2 (fldOffset=0x2)" P-INDEP
-;* V38 tmp19        [V38,T21] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F3 (fldOffset=0x3)" P-INDEP
+;* V34 tmp15        [V34,T12] (  0,  0   )   short  ->  zero-ref    single-def "field V20.F0 (fldOffset=0x0)" P-INDEP
+;* V35 tmp16        [V35,T13] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F0 (fldOffset=0x0)" P-INDEP
+;* V36 tmp17        [V36,T14] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F1 (fldOffset=0x1)" P-INDEP
+;* V37 tmp18        [V37,T15] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F2 (fldOffset=0x2)" P-INDEP
+;* V38 tmp19        [V38,T16] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F3 (fldOffset=0x3)" P-INDEP
 ;* V39 tmp20        [V39    ] (  0,  0   )   short  ->  zero-ref    single-def "field V22.F0 (fldOffset=0x0)" P-INDEP
-;  V40 tmp21        [V40,T00] (  5, 10   )  struct ( 8) [fp+0x58]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S4U>
-;  V41 tmp22        [V41,T02] (  3,  6   )  struct (16) [fp+0x48]  do-not-enreg[SFA] multireg-arg "argument with side effect" <ABIStress.S9U>
-;  V42 tmp23        [V42,T05] (  2,  4   )     int  ->   x2         "argument with side effect"
-;  V43 tmp24        [V43,T03] (  3,  6   )  struct (16) [fp+0x38]  do-not-enreg[SFA] multireg-arg "argument with side effect" <ABIStress.S15U>
-;  V44 tmp25        [V44,T01] (  4,  8   )  struct (32) [fp+0x18]  HFA(simd16)  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.Runtime.Intrinsics.Vector256`1[int]>
-;* V45 tmp26        [V45,T10] (  0,  0   )     int  ->  zero-ref    "argument with side effect"
+;  V40 tmp21        [V40,T00] (  5, 10   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S4U>
 ;
-; Lcl frame size = 96
+; Lcl frame size = 32
 
 G_M63451_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x70]!
+            stp     fp, lr, [sp, #-0x30]!
             mov     fp, sp
-            stp     x3, x4, [fp, #0x60]    // [V03 arg3], [V03 arg3+0x08]
+            stp     x3, x4, [fp, #0x20]    // [V03 arg3], [V03 arg3+0x08]
                        ;; size=12 bbWeight=1 PerfScore 2.50
 G_M63451_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x60]
-            str     x0, [fp, #0x48]
-            ldrb    w0, [fp, #0x68]
-            strb    w0, [fp, #0x50]
-            ldrb    w2, [fp, #0xE0]    // [V18 arg18+0x08]
-            ldr     x0, [fp, #0xC8]
-            str     x0, [fp, #0x38]
-            ldr     x0, [fp, #0xCF]
-            str     x0, [fp, #0x3F]
-            str     q0, [fp, #0x18]    // [V44 tmp25]
-            str     q1, [fp, #0x28]    // [V44 tmp25+0x10]
-            mov     w0, #6
-            strb    w0, [fp, #0x58]    // [V40 tmp21]
-            mov     w0, #36
-            strb    w0, [fp, #0x59]    // [V40 tmp21+0x01]
-            mov     w0, #53
-            strb    w0, [fp, #0x5A]    // [V40 tmp21+0x02]
-            mov     w0, #255
-            strb    w0, [fp, #0x5B]    // [V40 tmp21+0x03]
+            mov     w7, #6
+            strb    w7, [fp, #0x18]    // [V40 tmp21]
+            mov     w7, #36
+            strb    w7, [fp, #0x19]    // [V40 tmp21+0x01]
+            mov     w7, #53
+            strb    w7, [fp, #0x1A]    // [V40 tmp21+0x02]
+            mov     w7, #255
+            strb    w7, [fp, #0x1B]    // [V40 tmp21+0x03]
             nop     
-                       ;; size=80 bbWeight=1 PerfScore 22.50
+                       ;; size=36 bbWeight=1 PerfScore 6.50
 G_M63451_IG03:        ; bbWeight=1, nogc, extend
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            movk    x0, #0xD1FFAB1E LSL #48
-            str     x0, [fp, #0x70]    // [V06 arg6]
-            ldp     x0, x1, [fp, #0x48]    // [V41 tmp22], [V41 tmp22+0x08]
-            ldp     x3, x4, [fp, #0x38]    // [V43 tmp24], [V43 tmp24+0x08]
-            ldr     q0, [fp, #0x18]    // [V44 tmp25]
-            ldr     q1, [fp, #0x28]    // [V44 tmp25+0x10]
-            ldr     w7, [fp, #0x58]    // [V40 tmp21]
+            movz    x7, #0xD1FFAB1E
+            movk    x7, #0xD1FFAB1E LSL #16
+            movk    x7, #0xD1FFAB1E LSL #32
+            movk    x7, #0xD1FFAB1E LSL #48
+            str     x7, [fp, #0x30]    // [V06 arg6]
+            ldr     w7, [fp, #0x18]    // [V40 tmp21]
+            ldp     x0, x1, [fp, #0x20]    // [V03 arg3], [V03 arg3+0x08]
+            ldp     x3, x4, [fp, #0x88]    // [V17 arg17], [V17 arg17+0x08]
+            ldrb    w2, [fp, #0xA0]    // [V18 arg18+0x08]
             movn    w6, #0xD1FFAB1E
             movz    x5, #0xD1FFAB1E
             movk    x5, #0xD1FFAB1E LSL #16
             movk    x5, #0xD1FFAB1E LSL #32
             movk    x5, #0xD1FFAB1E LSL #48
-                       ;; size=60 bbWeight=1 PerfScore 17.50
+                       ;; size=56 bbWeight=1 PerfScore 15.50
 G_M63451_IG04:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x70
+            ldp     fp, lr, [sp], #0x30
             b       <unknown method>
             ; gcr arg pop 0
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 160, prolog size 12, PerfScore 44.50, instruction count 40, allocated bytes for code 160 (MethodHash=47390824) for method (dynamicClass):ABIStress_TailCaller317(System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S11U,ABIStress.S1P,ABIStress.S9U,ABIStress.S4P,System.Int128,ABIStress.S3U,ABIStress.S11U,short,ABIStress.S7U,ABIStress.S6U,ABIStress.S6U,double,ABIStress.S16U,float,ABIStress.S1P,ABIStress.S3U,ABIStress.S15U,ABIStress.S12U):int (FullOpts)
+; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=47390824) for method (dynamicClass):ABIStress_TailCaller317(System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S11U,ABIStress.S1P,ABIStress.S9U,ABIStress.S4P,System.Int128,ABIStress.S3U,ABIStress.S11U,short,ABIStress.S7U,ABIStress.S6U,ABIStress.S6U,double,ABIStress.S16U,float,ABIStress.S1P,ABIStress.S3U,ABIStress.S15U,ABIStress.S12U):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -118,7 +101,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 40 (0x00028) Actual length = 160 (0x0000a0)
+  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -126,7 +109,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    8D          save_fplr_x #13 (0x0D); stp fp, lr, [sp, #-112]!
+    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
     E4          end
     E4          end
 

-44 (-26.83%) : 242957.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)

@@ -5,69 +5,52 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
-;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x60]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x58]  do-not-enreg[]
-;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x54]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x48]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
+;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x40]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
+;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x38]  do-not-enreg[]
+;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x34]  do-not-enreg[]
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x38]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-;  V08 tmp2         [V08    ] (  1,  1   )     ref  ->  [fp+0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp3         [V09    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp4         [V10    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V11 tmp5         [V11    ] (  1,  1   )     ref  ->  [fp+0x18]  do-not-enreg[] must-init "argument with side effect"
+;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;
-; Lcl frame size = 112
+; Lcl frame size = 80
 
 G_M19554_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x80]!
+            stp     fp, lr, [sp, #-0x60]!
             mov     fp, sp
-            add     x9, fp, #24
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     xzr, xzr, [x9, #0x20]
-            str     xzr, [x9, #0x30]
-            str     x0, [fp, #0x78]    // [V00 this]
-            str     x1, [fp, #0x70]    // [V01 arg1]
-            str     x2, [fp, #0x68]    // [V02 arg2]
-            str     x3, [fp, #0x60]    // [V03 arg3]
-            str     x4, [fp, #0x58]    // [V04 arg4]
-            str     w5, [fp, #0x54]    // [V05 arg5]
-                       ;; size=52 bbWeight=1 PerfScore 11.50
+            str     xzr, [fp, #0x18]   // [V07 tmp1]
+            str     xzr, [fp, #0x20]   // [V07 tmp1+0x08]
+            str     x0, [fp, #0x58]    // [V00 this]
+            str     x1, [fp, #0x50]    // [V01 arg1]
+            str     x2, [fp, #0x48]    // [V02 arg2]
+            str     x3, [fp, #0x40]    // [V03 arg3]
+            str     x4, [fp, #0x38]    // [V04 arg4]
+            str     w5, [fp, #0x34]    // [V05 arg5]
+                       ;; size=40 bbWeight=1 PerfScore 9.50
 G_M19554_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x78]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x30]    // [V08 tmp2]
-            ldr     x0, [fp, #0x70]    // [V01 arg1]
-            str     x0, [fp, #0x28]    // [V09 tmp3]
-            ldr     x0, [fp, #0x68]    // [V02 arg2]
-            str     x0, [fp, #0x20]    // [V10 tmp4]
-            ldr     x0, [fp, #0x60]    // [V03 arg3]
-            str     x0, [fp, #0x18]    // [V11 tmp5]
-            ldr     x0, [fp, #0x58]    // [V04 arg4]
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-                       ;; size=36 bbWeight=1 PerfScore 14.00
+            ldr     x5, [fp, #0x38]    // [V04 arg4]
+            ; byrRegs +[x5]
+                       ;; size=4 bbWeight=1 PerfScore 2.00
 G_M19554_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x1, x2, [x0]
-            stp     x1, x2, [fp, #0x38]
-            ldr     x1, [x0, #0x10]
-            str     x1, [fp, #0x48]
+            ldp     x1, x6, [x5]
+            stp     x1, x6, [fp, #0x18]
+            ldr     x1, [x5, #0x10]
+            str     x1, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M19554_IG04:        ; bbWeight=1, extend
-            ldr     x0, [fp, #0x30]    // [V08 tmp2]
-            ; gcrRegs +[x0]
-            ; byrRegs -[x0]
-            ldr     x1, [fp, #0x28]    // [V09 tmp3]
-            ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x20]    // [V10 tmp4]
-            ; gcrRegs +[x2]
-            ldr     x4, [fp, #0x18]    // [V11 tmp5]
-            ; gcrRegs +[x4]
-            add     x5, fp, #56    // [V07 tmp1]
-            ldr     w6, [fp, #0x54]    // [V05 arg5]
+            add     x5, fp, #24    // [V07 tmp1]
+            ; byrRegs -[x5]
+            ldr     w6, [fp, #0x34]    // [V05 arg5]
             uxtb    w6, w6
+            ldr     x1, [fp, #0x50]    // [V01 arg1]
+            ; gcrRegs +[x1]
+            ldr     x2, [fp, #0x48]    // [V02 arg2]
+            ; gcrRegs +[x2]
+            ldr     x4, [fp, #0x40]    // [V03 arg3]
+            ; gcrRegs +[x4]
+            ldr     x0, [fp, #0x58]    // [V00 this]
+            ; gcrRegs +[x0]
             mov     x3, xzr
             movz    x7, #0xD1FFAB1E      // code for <unknown method>
             movk    x7, #0xD1FFAB1E LSL #16
@@ -77,11 +60,11 @@ G_M19554_IG04:        ; bbWeight=1, extend
             ; gcrRegs -[x0-x2 x4]
                        ;; size=52 bbWeight=1 PerfScore 17.00
 G_M19554_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x80
+            ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 164, prolog size 28, PerfScore 53.50, instruction count 41, allocated bytes for code 164 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
+; Total bytes of code 120, prolog size 16, PerfScore 39.50, instruction count 30, allocated bytes for code 120 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -92,7 +75,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
+  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -100,7 +83,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    8F          save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
+    8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
     E4          end
     E4          end
 

-16 (-26.67%) : 502864.dasm - (dynamicClass):ABIStress_TailCaller570(ABIStress.S10U,System.Runtime.Intrinsics.Vector128`1[int],short):int (FullOpts)

@@ -8,44 +8,39 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T02] (  3,  3   )  struct (16) [fp+0x30]  do-not-enreg[SA] multireg-arg single-def <ABIStress.S10U>
+;  V00 arg0         [V00,T00] (  4,  4   )  struct (16) [fp+0x20]  do-not-enreg[SA] multireg-arg single-def <ABIStress.S10U>
 ;* V01 arg1         [V01    ] (  0,  0   )  simd16  ->  zero-ref    HFA(simd16)  single-def <System.Runtime.Intrinsics.Vector128`1[int]>
 ;* V02 arg2         [V02    ] (  0,  0   )   short  ->  zero-ref    single-def
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <ABIStress.S2U>
-;* V05 tmp2         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V06 tmp3         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V07 tmp4         [V07,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V04.F0 (fldOffset=0x0)" P-INDEP
-;* V08 tmp5         [V08,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V04.F1 (fldOffset=0x1)" P-INDEP
-;  V09 tmp6         [V09,T00] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S2U>
-;  V10 tmp7         [V10,T01] (  3,  6   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg "argument with side effect" <ABIStress.S10U>
+;* V05 tmp2         [V05,T02] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V06 tmp3         [V06,T03] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V07 tmp4         [V07,T04] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V04.F0 (fldOffset=0x0)" P-INDEP
+;* V08 tmp5         [V08,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V04.F1 (fldOffset=0x1)" P-INDEP
+;  V09 tmp6         [V09,T01] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S2U>
 ;
-; Lcl frame size = 48
+; Lcl frame size = 32
 
 G_M42108_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
+            stp     fp, lr, [sp, #-0x30]!
             mov     fp, sp
-            stp     x0, x1, [fp, #0x30]    // [V00 arg0], [V00 arg0+0x08]
+            stp     x0, x1, [fp, #0x20]    // [V00 arg0], [V00 arg0+0x08]
                        ;; size=12 bbWeight=1 PerfScore 2.50
 G_M42108_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x30]
-            str     x0, [fp, #0x18]
-            ldrh    w0, [fp, #0x38]
-            strh    w0, [fp, #0x20]
-            mov     w0, #191
-            strb    w0, [fp, #0x28]    // [V09 tmp6]
-            mov     w0, #168
-            strb    w0, [fp, #0x29]    // [V09 tmp6+0x01]
-            ldp     x0, x1, [fp, #0x18]    // [V10 tmp7], [V10 tmp7+0x08]
-            ldrh    w2, [fp, #0x28]    // [V09 tmp6]
-                       ;; size=40 bbWeight=1 PerfScore 14.00
+            mov     w2, #191
+            strb    w2, [fp, #0x18]    // [V09 tmp6]
+            mov     w2, #168
+            strb    w2, [fp, #0x19]    // [V09 tmp6+0x01]
+            ldrh    w2, [fp, #0x18]    // [V09 tmp6]
+            ldp     x0, x1, [fp, #0x20]    // [V00 arg0], [V00 arg0+0x08]
+                       ;; size=24 bbWeight=1 PerfScore 8.00
 G_M42108_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x40
+            ldp     fp, lr, [sp], #0x30
             b       <unknown method>
             ; gcr arg pop 0
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 60, prolog size 12, PerfScore 18.50, instruction count 15, allocated bytes for code 60 (MethodHash=cee55b83) for method (dynamicClass):ABIStress_TailCaller570(ABIStress.S10U,System.Runtime.Intrinsics.Vector128`1[int],short):int (FullOpts)
+; Total bytes of code 44, prolog size 12, PerfScore 12.50, instruction count 11, allocated bytes for code 44 (MethodHash=cee55b83) for method (dynamicClass):ABIStress_TailCaller570(ABIStress.S10U,System.Runtime.Intrinsics.Vector128`1[int],short):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -56,7 +51,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
+  Function Length   : 11 (0x0000b) Actual length = 44 (0x00002c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -64,7 +59,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
     E4          end
     E4          end
 

+4 (+3.85%) : 580260.dasm - NullableTest:BoxUnboxToQ(System.ValueType):ubyte (FullOpts)

@@ -12,21 +12,20 @@
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <NotEmptyStructConstrainedGenQ`1[int]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03    ] (  2,  4   )  struct (16) [fp+0x20]  do-not-enreg[XSA] multireg-arg addr-exposed "UNBOXing a register returnable nullable" <System.Nullable`1[NotEmptyStructConstrainedGenQ`1[int]]>
-;* V04 tmp2         [V04,T07] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] "impAppendStmt" <System.Nullable`1[NotEmptyStructConstrainedGenQ`1[int]]>
+;* V04 tmp2         [V04,T06] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] "impAppendStmt" <System.Nullable`1[NotEmptyStructConstrainedGenQ`1[int]]>
 ;* V05 tmp3         [V05    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] "spilled call-like call argument" <NotEmptyStructConstrainedGenQ`1[int]>
 ;* V06 tmp4         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <NotEmptyStructConstrainedGenQ`1[int]>
 ;* V07 tmp5         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Nullable`1[int]>
 ;  V08 tmp6         [V08,T04] (  3,  2   )   ubyte  ->   x0         "Inline return value spill temp"
-;* V09 tmp7         [V09,T08] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <System.Nullable`1[NotEmptyStructConstrainedGenQ`1[int]]>
+;* V09 tmp7         [V09,T07] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SF] ld-addr-op "Inlining Arg" <System.Nullable`1[NotEmptyStructConstrainedGenQ`1[int]]>
 ;* V10 tmp8         [V10    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <NotEmptyStructConstrainedGenQ`1[int]>
-;* V11 tmp9         [V11,T09] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V07.hasValue (fldOffset=0x0)" P-INDEP
-;* V12 tmp10        [V12,T10] (  0,  0   )     int  ->  zero-ref    single-def "field V07.value (fldOffset=0x4)" P-INDEP
+;* V11 tmp9         [V11,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V07.hasValue (fldOffset=0x0)" P-INDEP
+;* V12 tmp10        [V12,T09] (  0,  0   )     int  ->  zero-ref    single-def "field V07.value (fldOffset=0x4)" P-INDEP
 ;* V13 tmp11        [V13    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "V09.[000..001)"
-;  V14 tmp12        [V14,T05] (  2,  2   )   ubyte  ->   x1         single-def "V04.[000..001)"
-;  V15 tmp13        [V15,T00] (  3,  6   )   byref  ->   x0         single-def "Spilling address for field-by-field copy"
+;  V14 tmp12        [V14,T05] (  2,  2   )   ubyte  ->   x0         single-def "V04.[000..001)"
+;  V15 tmp13        [V15,T00] (  3,  6   )   byref  ->   x1         single-def "Spilling address for field-by-field copy"
 ;  V16 tmp14        [V16,T03] (  3,  3   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <NotEmptyStructConstrainedGenQ`1[int]>
-;  V17 tmp15        [V17,T06] (  2,  2   )    long  ->   x0         "argument with side effect"
-;  V18 cse0         [V18,T02] (  2,  1.50)    long  ->   x0         "CSE - aggressive"
+;  V17 cse0         [V17,T02] (  2,  1.50)    long  ->   x2         "CSE - aggressive"
 ;
 ; Lcl frame size = 32
 
@@ -43,26 +42,27 @@ G_M2442_IG02:        ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0000 {}, byref
             movk    x1, #1 LSL #32
             bl      CORINFO_HELP_UNBOX_NULLABLE
             ; gcrRegs -[x2]
-            add     x0, fp, #32    // [V03 tmp1]
-            ; byrRegs +[x0]
-            ldrb    w1, [x0]
-            ldr     x0, [x0, #0x04]
-            ; byrRegs -[x0]
-            cbz     w1, G_M2442_IG04
+            add     x1, fp, #32    // [V03 tmp1]
+            ; byrRegs +[x1]
+            ldrb    w0, [x1]
+            ldr     x2, [x1, #0x04]
+            cbz     w0, G_M2442_IG04
                        ;; size=36 bbWeight=1 PerfScore 10.50
 G_M2442_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+            ; byrRegs -[x1]
             mov     w1, #1
             strb    w1, [fp, #0x18]    // [V16 tmp14]
             mov     w1, #12
             str     w1, [fp, #0x1C]    // [V16 tmp14+0x04]
             ldr     x1, [fp, #0x18]    // [V16 tmp14]
+            mov     x0, x2
             movz    x2, #0xD1FFAB1E      // code for Helper:Compare(NotEmptyStructConstrainedGenQ`1[int],NotEmptyStructConstrainedGenQ`1[int]):ubyte
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
             b       G_M2442_IG05
-                       ;; size=44 bbWeight=0.50 PerfScore 5.75
+                       ;; size=48 bbWeight=0.50 PerfScore 6.00
 G_M2442_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             mov     w0, wzr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
@@ -71,7 +71,7 @@ G_M2442_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 104, prolog size 8, PerfScore 20.50, instruction count 26, allocated bytes for code 104 (MethodHash=b6abf675) for method NullableTest:BoxUnboxToQ(System.ValueType):ubyte (FullOpts)
+; Total bytes of code 108, prolog size 8, PerfScore 20.75, instruction count 27, allocated bytes for code 108 (MethodHash=b6abf675) for method NullableTest:BoxUnboxToQ(System.ValueType):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -82,7 +82,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 26 (0x0001a) Actual length = 104 (0x000068)
+  Function Length   : 27 (0x0001b) Actual length = 108 (0x00006c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+5.88%) : 402680.dasm - SP1d:M(int,int,int,int,int,int,int):int (FullOpts)

@@ -8,50 +8,46 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T01] (  3,  3   )     int  ->   x0         single-def
-;  V01 arg1         [V01,T02] (  3,  3   )     int  ->   x1         single-def
+;  V01 arg1         [V01,T02] (  3,  3   )     int  ->   x7         single-def
 ;  V02 arg2         [V02,T03] (  3,  3   )     int  ->   x2         single-def
 ;  V03 arg3         [V03,T04] (  3,  3   )     int  ->   x3         single-def
 ;  V04 arg4         [V04,T05] (  3,  3   )     int  ->   x4         single-def
-;  V05 arg5         [V05,T06] (  3,  3   )     int  ->   x5         single-def
+;  V05 arg5         [V05,T06] (  3,  3   )     int  ->   x8         single-def
 ;  V06 arg6         [V06,T07] (  3,  3   )     int  ->   x6         single-def
 ;* V07 loc0         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <SP1d+S>
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V09 tmp1         [V09,T13] (  2,  2   )     int  ->   x3         single-def "field V07.i0 (fldOffset=0x0)" P-INDEP
-;  V10 tmp2         [V10,T14] (  2,  2   )     int  ->   x2         single-def "field V07.i1 (fldOffset=0x4)" P-INDEP
+;  V09 tmp1         [V09,T08] (  2,  2   )     int  ->   x3         single-def "field V07.i0 (fldOffset=0x0)" P-INDEP
+;  V10 tmp2         [V10,T09] (  2,  2   )     int  ->   x2         single-def "field V07.i1 (fldOffset=0x4)" P-INDEP
 ;  V11 tmp3         [V11,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <SP1d+S>
-;  V12 tmp4         [V12,T08] (  2,  4   )     int  ->   x1         "argument with side effect"
-;  V13 tmp5         [V13,T09] (  2,  4   )     int  ->   x7         "argument with side effect"
-;  V14 tmp6         [V14,T10] (  2,  4   )     int  ->   x4         "argument with side effect"
-;  V15 tmp7         [V15,T11] (  2,  4   )     int  ->   x5         "argument with side effect"
-;  V16 tmp8         [V16,T12] (  2,  4   )     int  ->   x6         "argument with side effect"
 ;
 ; Lcl frame size = 16
 
 G_M13440_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
+            mov     w7, w1
+            mov     w8, w5
+                       ;; size=16 bbWeight=1 PerfScore 2.50
 G_M13440_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            sxtw    w7, w0
             stp     w3, w2, [fp, #0x18]    // [V11 tmp3], [V11 tmp3+0x04]
-            mov     w0, w1
-            mov     w1, w7
-            mov     w2, w4
-            mov     w3, w5
-            mov     w4, w6
             ldr     x5, [fp, #0x18]    // [V11 tmp3]
+            mov     w1, w0
+            mov     w2, w4
+            mov     w3, w8
+            mov     w4, w6
+            mov     w0, w7
             movz    x6, #0xD1FFAB1E      // code for <unknown method>
             movk    x6, #0xD1FFAB1E LSL #16
             movk    x6, #1 LSL #32
             ldr     x6, [x6]
             blr     x6
-                       ;; size=52 bbWeight=1 PerfScore 11.50
+                       ;; size=48 bbWeight=1 PerfScore 11.00
 G_M13440_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 68, prolog size 8, PerfScore 15.00, instruction count 17, allocated bytes for code 68 (MethodHash=0379cb7f) for method SP1d:M(int,int,int,int,int,int,int):int (FullOpts)
+; Total bytes of code 72, prolog size 8, PerfScore 15.50, instruction count 18, allocated bytes for code 72 (MethodHash=0379cb7f) for method SP1d:M(int,int,int,int,int,int,int):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -62,7 +58,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 17 (0x00011) Actual length = 68 (0x000044)
+  Function Length   : 18 (0x00012) Actual length = 72 (0x000048)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+36 (+13.85%) : 503578.dasm - (dynamicClass):ABIStress_TailCaller965(ABIStress.S12U,System.Int128,System.Numerics.Vector1[int],ABIStress.S9U,ABIStress.I128_1,ABIStress.S4U,ABIStress.S13U,ABIStress.Hfa2,ABIStress.S5U,double,ABIStress.S6U,ABIStress.Hfa2,System.Runtime.Intrinsics.Vector1281[int],ubyte,long):int (FullOpts)

@@ -8,17 +8,17 @@
 ; 0 inlinees with PGO data; 6 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T02] (  4,  4   )  struct (16) [fp+0x40]  do-not-enreg[SFA] multireg-arg single-def <ABIStress.S12U>
+;  V00 arg0         [V00,T02] (  4,  4   )  struct (16) [fp+0x50]  do-not-enreg[SFA] multireg-arg single-def <ABIStress.S12U>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Int128>
 ;* V02 arg2         [V02    ] (  0,  0   )  simd16  ->  zero-ref    HFA(simd16)  single-def <System.Numerics.Vector`1[int]>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SA] multireg-arg single-def <ABIStress.S9U>
 ;* V04 arg4         [V04    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SA] multireg-arg single-def <ABIStress.I128_1>
-;  V05 arg5         [V05,T12] (  1,  1   )  struct ( 8) [fp+0x50]  do-not-enreg[S] single-def <ABIStress.S4U>
+;  V05 arg5         [V05,T09] (  1,  1   )  struct ( 8) [fp+0x60]  do-not-enreg[S] single-def <ABIStress.S4U>
 ;* V06 arg6         [V06    ] (  0,  0   )  struct (16) zero-ref    do-not-enreg[S] single-def <ABIStress.S13U>
 ;* V07 arg7         [V07    ] (  0,  0   )  struct (32) zero-ref    HFA(double)  multireg-arg single-def <ABIStress.Hfa2>
-;  V08 arg8         [V08,T11] (  2,  2   )  struct ( 8) [fp+0x68]  do-not-enreg[S] single-def <ABIStress.S5U>
+;  V08 arg8         [V08,T10] (  1,  1   )  struct ( 8) [fp+0x78]  do-not-enreg[S] single-def <ABIStress.S5U>
 ;* V09 arg9         [V09    ] (  0,  0   )  double  ->  zero-ref    single-def
-;  V10 arg10        [V10,T13] (  1,  1   )  struct ( 8) [fp+0x70]  do-not-enreg[S] single-def <ABIStress.S6U>
+;  V10 arg10        [V10,T11] (  1,  1   )  struct ( 8) [fp+0x80]  do-not-enreg[S] single-def <ABIStress.S6U>
 ;* V11 arg11        [V11    ] (  0,  0   )  struct (32) zero-ref    HFA(double)  do-not-enreg[S] single-def <ABIStress.Hfa2>
 ;* V12 arg12        [V12    ] (  0,  0   )  simd16  ->  zero-ref    HFA(simd16)  single-def <System.Runtime.Intrinsics.Vector128`1[int]>
 ;* V13 arg13        [V13    ] (  0,  0   )   ubyte  ->  zero-ref    single-def
@@ -33,134 +33,139 @@
 ;* V22 tmp7         [V22    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <ABIStress.S4P>
 ;* V23 tmp8         [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <ABIStress.S1P>
 ;* V24 tmp9         [V24    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <ABIStress.S8P>
-;  V25 tmp10        [V25,T00] ( 13, 26   )  struct (16) [fp+0x30]  do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <ABIStress.S11U>
+;  V25 tmp10        [V25,T00] ( 13, 26   )  struct (16) [fp+0x40]  do-not-enreg[SF] ld-addr-op "NewObj constructor temp" <ABIStress.S11U>
 ;* V26 tmp11        [V26    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <ABIStress.S1P>
-;* V27 tmp12        [V27,T14] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V28 tmp13        [V28,T15] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V29 tmp14        [V29,T16] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V30 tmp15        [V30,T17] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V31 tmp16        [V31,T18] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V32 tmp17        [V32,T19] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V33 tmp18        [V33,T20] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V34 tmp19        [V34,T21] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V35 tmp20        [V35,T22] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V36 tmp21        [V36,T23] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V37 tmp22        [V37,T24] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V38 tmp23        [V38,T25] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V39 tmp24        [V39,T26] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V40 tmp25        [V40,T27] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V41 tmp26        [V41,T28] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V42 tmp27        [V42,T29] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;  V43 tmp28        [V43,T09] (  1,  1   )    long  ->   x2         single-def "field V01._lower (fldOffset=0x0)" P-INDEP
-;  V44 tmp29        [V44,T10] (  1,  1   )    long  ->   x3         single-def "field V01._upper (fldOffset=0x8)" P-INDEP
-;  V45 tmp30        [V45,T41] (  1,  1   )  double  ->   d1         single-def "field V07.F0 (fldOffset=0x0)" P-INDEP
-;  V46 tmp31        [V46,T42] (  1,  1   )  double  ->   d2         single-def "field V07.F1 (fldOffset=0x8)" P-INDEP
-;  V47 tmp32        [V47,T43] (  1,  1   )  double  ->   d3         single-def "field V07.F2 (fldOffset=0x10)" P-INDEP
-;  V48 tmp33        [V48,T39] (  2,  2   )  double  ->   d4         single-def "field V07.F3 (fldOffset=0x18)" P-INDEP
-;* V49 tmp34        [V49,T30] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V16.F0 (fldOffset=0x0)" P-INDEP
-;* V50 tmp35        [V50,T31] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V16.F1 (fldOffset=0x1)" P-INDEP
-;* V51 tmp36        [V51,T32] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V17.F0 (fldOffset=0x0)" P-INDEP
-;* V52 tmp37        [V52,T33] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V17.F1 (fldOffset=0x1)" P-INDEP
-;* V53 tmp38        [V53,T34] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V17.F2 (fldOffset=0x2)" P-INDEP
+;* V27 tmp12        [V27,T12] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V28 tmp13        [V28,T13] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V29 tmp14        [V29,T14] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V30 tmp15        [V30,T15] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V31 tmp16        [V31,T16] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V32 tmp17        [V32,T17] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V33 tmp18        [V33,T18] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V34 tmp19        [V34,T19] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V35 tmp20        [V35,T20] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V36 tmp21        [V36,T21] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V37 tmp22        [V37,T22] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V38 tmp23        [V38,T23] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V39 tmp24        [V39,T24] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V40 tmp25        [V40,T25] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V41 tmp26        [V41,T26] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V42 tmp27        [V42,T27] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;  V43 tmp28        [V43,T07] (  1,  1   )    long  ->   x2         single-def "field V01._lower (fldOffset=0x0)" P-INDEP
+;  V44 tmp29        [V44,T08] (  1,  1   )    long  ->   x3         single-def "field V01._upper (fldOffset=0x8)" P-INDEP
+;  V45 tmp30        [V45,T37] (  1,  1   )  double  ->   d1         single-def "field V07.F0 (fldOffset=0x0)" P-INDEP
+;  V46 tmp31        [V46,T38] (  1,  1   )  double  ->   d2         single-def "field V07.F1 (fldOffset=0x8)" P-INDEP
+;  V47 tmp32        [V47,T39] (  1,  1   )  double  ->   d3         single-def "field V07.F2 (fldOffset=0x10)" P-INDEP
+;  V48 tmp33        [V48,T36] (  3,  3   )  double  ->   d4         single-def "field V07.F3 (fldOffset=0x18)" P-INDEP
+;* V49 tmp34        [V49,T28] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V16.F0 (fldOffset=0x0)" P-INDEP
+;* V50 tmp35        [V50,T29] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V16.F1 (fldOffset=0x1)" P-INDEP
+;* V51 tmp36        [V51,T30] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V17.F0 (fldOffset=0x0)" P-INDEP
+;* V52 tmp37        [V52,T31] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V17.F1 (fldOffset=0x1)" P-INDEP
+;* V53 tmp38        [V53,T32] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V17.F2 (fldOffset=0x2)" P-INDEP
 ;* V54 tmp39        [V54    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V18.F0 (fldOffset=0x0)" P-INDEP
 ;* V55 tmp40        [V55    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V18.F1 (fldOffset=0x1)" P-INDEP
-;* V56 tmp41        [V56,T35] (  0,  0   )     int  ->  zero-ref    single-def "field V19.F0 (fldOffset=0x0)" P-INDEP
+;* V56 tmp41        [V56,T33] (  0,  0   )     int  ->  zero-ref    single-def "field V19.F0 (fldOffset=0x0)" P-INDEP
 ;* V57 tmp42        [V57    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V20.F0 (fldOffset=0x0)" P-INDEP
 ;* V58 tmp43        [V58    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V20.F1 (fldOffset=0x1)" P-INDEP
 ;* V59 tmp44        [V59    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V20.F2 (fldOffset=0x2)" P-INDEP
-;* V60 tmp45        [V60,T36] (  0,  0   )    long  ->  zero-ref    single-def "field V21.F0 (fldOffset=0x0)" P-INDEP
+;* V60 tmp45        [V60,T34] (  0,  0   )    long  ->  zero-ref    single-def "field V21.F0 (fldOffset=0x0)" P-INDEP
 ;* V61 tmp46        [V61    ] (  0,  0   )     int  ->  zero-ref    single-def "field V22.F0 (fldOffset=0x0)" P-INDEP
-;* V62 tmp47        [V62,T37] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V23.F0 (fldOffset=0x0)" P-INDEP
+;* V62 tmp47        [V62,T35] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V23.F0 (fldOffset=0x0)" P-INDEP
 ;* V63 tmp48        [V63    ] (  0,  0   )    long  ->  zero-ref    single-def "field V24.F0 (fldOffset=0x0)" P-INDEP
 ;* V64 tmp49        [V64    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V26.F0 (fldOffset=0x0)" P-INDEP
-;  V65 tmp50        [V65,T03] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S2U>
-;  V66 tmp51        [V66,T01] (  4,  8   )  struct ( 8) [fp+0x20]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S3U>
-;  V67 tmp52        [V67,T40] (  2,  4   )  double  ->   d0         "argument with side effect"
-;  V68 tmp53        [V68,T04] (  2,  4   )    long  ->   x0         "argument with side effect"
-;  V69 tmp54        [V69,T05] (  2,  4   )    long  ->   x1         "argument with side effect"
-;  V70 tmp55        [V70,T06] (  2,  4   )    long  ->   x2         "argument with side effect"
-;  V71 tmp56        [V71,T38] (  3,  6   )  double  ->   d0         "argument with side effect"
-;  V72 tmp57        [V72,T07] (  2,  4   )     int  ->   x5         "argument with side effect"
-;  V73 rat0         [V73,T08] (  2,  4   )  struct ( 8) [fp+0x18]  do-not-enreg[S] "Fast tail call lowering is creating a new local variable" <ABIStress.S4U>
+;  V65 tmp50        [V65,T03] (  3,  6   )  struct ( 8) [fp+0x38]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S2U>
+;  V66 tmp51        [V66,T01] (  4,  8   )  struct ( 8) [fp+0x30]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S3U>
+;  V67 rat0         [V67,T05] (  2,  4   )  struct ( 8) [fp+0x28]  do-not-enreg[S] "Fast tail call lowering is creating a new local variable" <ABIStress.S4U>
+;  V68 rat1         [V68,T04] (  3,  6   )  struct ( 8) [fp+0x20]  do-not-enreg[S] "Fast tail call lowering is creating a new local variable" <ABIStress.S5U>
+;  V69 rat2         [V69,T06] (  2,  4   )  struct ( 8) [fp+0x18]  do-not-enreg[S] "Fast tail call lowering is creating a new local variable" <ABIStress.S6U>
 ;
-; Lcl frame size = 64
+; Lcl frame size = 80
 
 G_M63761_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x50]!
+            stp     fp, lr, [sp, #-0x60]!
             mov     fp, sp
-            stp     x0, x1, [fp, #0x40]    // [V00 arg0], [V00 arg0+0x08]
+            stp     x0, x1, [fp, #0x50]    // [V00 arg0], [V00 arg0+0x08]
                        ;; size=12 bbWeight=1 PerfScore 2.50
 G_M63761_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            str     xzr, [fp, #0x30]
-            str     wzr, [fp, #0x37]
-            mov     w0, #62
-            strb    w0, [fp, #0x30]    // [V25 tmp10]
-            mov     w0, #133
-            strb    w0, [fp, #0x31]    // [V25 tmp10+0x01]
-            mov     w0, #188
-            strb    w0, [fp, #0x32]    // [V25 tmp10+0x02]
-            mov     w0, #17
-            strb    w0, [fp, #0x33]    // [V25 tmp10+0x03]
-            mov     w0, #44
-            strb    w0, [fp, #0x34]    // [V25 tmp10+0x04]
-            mov     w0, #182
-            strb    w0, [fp, #0x35]    // [V25 tmp10+0x05]
-            mov     w0, #76
-            strb    w0, [fp, #0x36]    // [V25 tmp10+0x06]
-            mov     w0, #121
-            strb    w0, [fp, #0x37]    // [V25 tmp10+0x07]
-            mov     w0, #144
-            strb    w0, [fp, #0x38]    // [V25 tmp10+0x08]
-            mov     w0, #100
-            strb    w0, [fp, #0x39]    // [V25 tmp10+0x09]
-            mov     w0, #75
-            strb    w0, [fp, #0x3A]    // [V25 tmp10+0x0a]
-            fmov    d0, d4
-            ldp     x1, x0, [fp, #0x68]    // [V08 arg8], [V10 arg10]
-            ldr     x2, [fp, #0x68]    // [V08 arg8]
+            str     xzr, [fp, #0x40]
+            str     wzr, [fp, #0x47]
+            mov     w4, #62
+            strb    w4, [fp, #0x40]    // [V25 tmp10]
+            mov     w4, #133
+            strb    w4, [fp, #0x41]    // [V25 tmp10+0x01]
+            mov     w4, #188
+            strb    w4, [fp, #0x42]    // [V25 tmp10+0x02]
+            mov     w4, #17
+            strb    w4, [fp, #0x43]    // [V25 tmp10+0x03]
+            mov     w4, #44
+            strb    w4, [fp, #0x44]    // [V25 tmp10+0x04]
+            mov     w4, #182
+            strb    w4, [fp, #0x45]    // [V25 tmp10+0x05]
+            mov     w4, #76
+            strb    w4, [fp, #0x46]    // [V25 tmp10+0x06]
+            mov     w4, #121
+            strb    w4, [fp, #0x47]    // [V25 tmp10+0x07]
+            mov     w4, #144
+            strb    w4, [fp, #0x48]    // [V25 tmp10+0x08]
+            mov     w4, #100
+            strb    w4, [fp, #0x49]    // [V25 tmp10+0x09]
+            mov     w4, #75
+            strb    w4, [fp, #0x4A]    // [V25 tmp10+0x0a]
             mov     w4, #176
-            strb    w4, [fp, #0x28]    // [V65 tmp50]
+            strb    w4, [fp, #0x38]    // [V65 tmp50]
             mov     w4, #110
-            strb    w4, [fp, #0x29]    // [V65 tmp50+0x01]
-            ldrb    w5, [fp, #0x42]    // [V00 arg0+0x02]
+            strb    w4, [fp, #0x39]    // [V65 tmp50+0x01]
             mov     w4, #238
-            strb    w4, [fp, #0x20]    // [V66 tmp51]
+            strb    w4, [fp, #0x30]    // [V66 tmp51]
             mov     w4, #21
-            strb    w4, [fp, #0x21]    // [V66 tmp51+0x01]
+            strb    w4, [fp, #0x31]    // [V66 tmp51+0x01]
             mov     w4, #79
-            strb    w4, [fp, #0x22]    // [V66 tmp51+0x02]
+            strb    w4, [fp, #0x32]    // [V66 tmp51+0x02]
             nop     
-                       ;; size=156 bbWeight=1 PerfScore 34.00
+                       ;; size=140 bbWeight=1 PerfScore 26.50
 G_M63761_IG03:        ; bbWeight=1, nogc, extend
-            ldr     w4, [fp, #0x50]    // [V05 arg5]
-            str     w4, [fp, #0x18]    // [V73 rat0]
+            ldr     w4, [fp, #0x60]    // [V05 arg5]
+            str     w4, [fp, #0x28]    // [V67 rat0]
+            ldr     w4, [fp, #0x78]
+            str     w4, [fp, #0x20]
+            ldrb    w4, [fp, #0x7C]
+            strb    w4, [fp, #0x24]
+            ldr     w4, [fp, #0x80]
+            str     w4, [fp, #0x18]
+            ldrh    w4, [fp, #0x84]
+            strh    w4, [fp, #0x1C]
             movz    w4, #0xD1FFAB1E
             movk    w4, #0xD1FFAB1E LSL #16
-            str     w4, [fp, #0x50]    // [V05 arg5]
+            str     w4, [fp, #0x60]    // [V05 arg5]
             movz    x4, #0xD1FFAB1E
             movk    x4, #0xD1FFAB1E LSL #16
             movk    x4, #0xD1FFAB1E LSL #32
             movk    x4, #0xD1FFAB1E LSL #48
-            str     x4, [fp, #0x58]    // [V05 arg5+0x08]
+            str     x4, [fp, #0x68]    // [V05 arg5+0x08]
             mov     w4, #229
-            str     w4, [fp, #0x60]    // [V05 arg5+0x10]
-            ldp     x4, x6, [fp, #0x30]    // [V25 tmp10]
-            stp     x4, x6, [fp, #0x68]    // [V05 arg5+0x18]
-            ldrb    w4, [fp, #0x45]    // [V00 arg0+0x05]
-            strb    w4, [fp, #0x78]    // [V05 arg5+0x28]
-            fmov    d1, d0
-            ldrh    w4, [fp, #0x28]    // [V65 tmp50]
-            ldr     w6, [fp, #0x20]    // [V66 tmp51]
-            ldr     w7, [fp, #0x18]    // [V73 rat0]
+            str     w4, [fp, #0x70]    // [V05 arg5+0x10]
+            ldp     x4, x6, [fp, #0x40]    // [V25 tmp10]
+            stp     x4, x6, [fp, #0x78]    // [V05 arg5+0x18]
+            ldrb    w4, [fp, #0x55]    // [V00 arg0+0x05]
+            strb    w4, [fp, #0x88]    // [V05 arg5+0x28]
+            ldrh    w4, [fp, #0x38]    // [V65 tmp50]
+            ldr     w6, [fp, #0x30]    // [V66 tmp51]
+            ldr     x1, [fp, #0x20]    // [V68 rat1]
+            mov     x2, x1
+            fmov    d1, d4
+            fmov    d0, d4
+            ldrb    w5, [fp, #0x52]    // [V00 arg0+0x02]
+            ldr     x0, [fp, #0x18]    // [V69 rat2]
+            ldr     w7, [fp, #0x28]    // [V67 rat0]
             mov     w3, #0xD1FFAB1E
-                       ;; size=84 bbWeight=1 PerfScore 23.50
+                       ;; size=136 bbWeight=1 PerfScore 42.50
 G_M63761_IG04:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x50
+            ldp     fp, lr, [sp], #0x60
             b       <unknown method>
             ; gcr arg pop 0
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
...

libraries.crossgen2.osx.arm64.checked.mch

-12 (-21.43%) : 150538.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)

@@ -11,38 +11,34 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Nullable`1[System.DateTime]>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
-;  V04 tmp2         [V04,T03] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
-;* V05 tmp3         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp4         [V06,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
-;  V07 tmp5         [V07,T01] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V08 tmp6         [V08,T00] (  4,  8   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.Nullable`1[System.DateTime]>
+;  V03 tmp1         [V03,T01] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
+;  V04 tmp2         [V04,T02] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
+;* V05 tmp3         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
+;  V07 tmp5         [V07,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M46195_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M46195_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            strb    w0, [fp, #0x18]    // [V08 tmp6]
-            str     x1, [fp, #0x20]    // [V08 tmp6+0x08]
-            strb    wzr, [fp, #0x28]   // [V07 tmp5]
-            strb    wzr, [fp, #0x29]   // [V07 tmp5+0x01]
-            ldrh    w2, [fp, #0x28]    // [V07 tmp5]
-            ldp     x0, x1, [fp, #0x18]    // [V08 tmp6], [V08 tmp6+0x08]
+            strb    wzr, [fp, #0x18]   // [V07 tmp5]
+            strb    wzr, [fp, #0x19]   // [V07 tmp5+0x01]
+            ldrh    w2, [fp, #0x18]    // [V07 tmp5]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x3, [x11]
             blr     x3
             ; gcrRegs +[x0]
-                       ;; size=40 bbWeight=1 PerfScore 14.00
+                       ;; size=28 bbWeight=1 PerfScore 9.00
 G_M46195_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x30
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 56, prolog size 8, PerfScore 17.50, instruction count 14, allocated bytes for code 56 (MethodHash=8d094b8c) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)
+; Total bytes of code 44, prolog size 8, PerfScore 12.50, instruction count 11, allocated bytes for code 44 (MethodHash=8d094b8c) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +49,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 14 (0x0000e) Actual length = 56 (0x000038)
+  Function Length   : 11 (0x0000b) Actual length = 44 (0x00002c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -61,7 +57,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

-12 (-21.43%) : 150563.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)

@@ -11,38 +11,34 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Nullable`1[ulong]>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
-;  V04 tmp2         [V04,T03] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
-;* V05 tmp3         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp4         [V06,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
-;  V07 tmp5         [V07,T01] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V08 tmp6         [V08,T00] (  4,  8   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.Nullable`1[ulong]>
+;  V03 tmp1         [V03,T01] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
+;  V04 tmp2         [V04,T02] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
+;* V05 tmp3         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
+;  V07 tmp5         [V07,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M16550_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M16550_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            strb    w0, [fp, #0x18]    // [V08 tmp6]
-            str     x1, [fp, #0x20]    // [V08 tmp6+0x08]
-            strb    wzr, [fp, #0x28]   // [V07 tmp5]
-            strb    wzr, [fp, #0x29]   // [V07 tmp5+0x01]
-            ldrh    w2, [fp, #0x28]    // [V07 tmp5]
-            ldp     x0, x1, [fp, #0x18]    // [V08 tmp6], [V08 tmp6+0x08]
+            strb    wzr, [fp, #0x18]   // [V07 tmp5]
+            strb    wzr, [fp, #0x19]   // [V07 tmp5+0x01]
+            ldrh    w2, [fp, #0x18]    // [V07 tmp5]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x3, [x11]
             blr     x3
             ; gcrRegs +[x0]
-                       ;; size=40 bbWeight=1 PerfScore 14.00
+                       ;; size=28 bbWeight=1 PerfScore 9.00
 G_M16550_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x30
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 56, prolog size 8, PerfScore 17.50, instruction count 14, allocated bytes for code 56 (MethodHash=b260bf59) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)
+; Total bytes of code 44, prolog size 8, PerfScore 12.50, instruction count 11, allocated bytes for code 44 (MethodHash=b260bf59) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +49,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 14 (0x0000e) Actual length = 56 (0x000038)
+  Function Length   : 11 (0x0000b) Actual length = 44 (0x00002c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -61,7 +57,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

-12 (-21.43%) : 150552.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[long]):System.Text.Json.Nodes.JsonNode (FullOpts)

@@ -11,38 +11,34 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Nullable`1[long]>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
-;  V04 tmp2         [V04,T03] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
-;* V05 tmp3         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp4         [V06,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
-;  V07 tmp5         [V07,T01] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V08 tmp6         [V08,T00] (  4,  8   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.Nullable`1[long]>
+;  V03 tmp1         [V03,T01] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
+;  V04 tmp2         [V04,T02] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
+;* V05 tmp3         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
+;  V07 tmp5         [V07,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M61747_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M61747_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            strb    w0, [fp, #0x18]    // [V08 tmp6]
-            str     x1, [fp, #0x20]    // [V08 tmp6+0x08]
-            strb    wzr, [fp, #0x28]   // [V07 tmp5]
-            strb    wzr, [fp, #0x29]   // [V07 tmp5+0x01]
-            ldrh    w2, [fp, #0x28]    // [V07 tmp5]
-            ldp     x0, x1, [fp, #0x18]    // [V08 tmp6], [V08 tmp6+0x08]
+            strb    wzr, [fp, #0x18]   // [V07 tmp5]
+            strb    wzr, [fp, #0x19]   // [V07 tmp5+0x01]
+            ldrh    w2, [fp, #0x18]    // [V07 tmp5]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x3, [x11]
             blr     x3
             ; gcrRegs +[x0]
-                       ;; size=40 bbWeight=1 PerfScore 14.00
+                       ;; size=28 bbWeight=1 PerfScore 9.00
 G_M61747_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x30
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 56, prolog size 8, PerfScore 17.50, instruction count 14, allocated bytes for code 56 (MethodHash=5fc80ecc) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[long]):System.Text.Json.Nodes.JsonNode (FullOpts)
+; Total bytes of code 44, prolog size 8, PerfScore 12.50, instruction count 11, allocated bytes for code 44 (MethodHash=5fc80ecc) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[long]):System.Text.Json.Nodes.JsonNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +49,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 14 (0x0000e) Actual length = 56 (0x000038)
+  Function Length   : 11 (0x0000b) Actual length = 44 (0x00002c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -61,7 +57,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

+24 (+5.83%) : 129287.dasm - System.Reflection.Metadata.Ecma335.CustomAttributeDecoder1[System.__Canon]:DecodeFixedArguments(byref,byref,int,System.Reflection.Metadata.BlobReader):System.Collections.Immutable.ImmutableArray1[System.Reflection.Metadata.CustomAttributeTypedArgument`1[System.__Canon]]:this (FullOpts)

@@ -8,61 +8,59 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  4, 10   )   byref  ->  x19         this single-def
-;  V01 TypeCtx      [V01,T15] (  6,  4.50)    long  ->  x24         single-def
-;  V02 arg1         [V02,T05] (  3,  6   )   byref  ->  x21         single-def
-;  V03 arg2         [V03,T06] (  3,  6   )   byref  ->  x22         single-def
-;  V04 arg3         [V04,T07] (  6,  8   )     int  ->  x23         single-def
-;  V05 arg4         [V05,T03] (  3, 12   )   byref  ->  x20         single-def
-;  V06 loc0         [V06,T16] (  3,  5   )     ref  ->  x25         class-hnd single-def <<unknown class>>
-;  V07 loc1         [V07,T04] (  4, 12.50)     int  ->  x26        
-;  V08 loc2         [V08    ] (  2,  8   )  struct (24) [fp+0x50]  do-not-enreg[XS] must-init addr-exposed <System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1+ArgumentTypeInfo[System.__Canon]>
+;  V00 this         [V00,T04] (  4, 10   )   byref  ->  x20         this single-def
+;  V01 TypeCtx      [V01,T11] (  6,  4.50)    long  ->  x24         single-def
+;  V02 arg1         [V02,T07] (  3,  6   )   byref  ->  x22         single-def
+;  V03 arg2         [V03,T08] (  3,  6   )   byref  ->  x23         single-def
+;  V04 arg3         [V04,T05] (  6,  8   )     int  ->  x21         single-def
+;  V05 arg4         [V05,T02] (  3, 12   )   byref  ->  x19         single-def
+;  V06 loc0         [V06,T12] (  3,  5   )     ref  ->  x25         class-hnd single-def <<unknown class>>
+;  V07 loc1         [V07,T03] (  4, 12.50)     int  ->  x26        
+;  V08 loc2         [V08    ] (  2,  8   )  struct (24) [fp+0x48]  do-not-enreg[XS] must-init addr-exposed <System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1+ArgumentTypeInfo[System.__Canon]>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )  struct (16) zero-ref    multireg-arg multireg-ret "Return value temp for multireg return" <System.Reflection.Metadata.CustomAttributeTypedArgument`1[System.__Canon]>
 ;  V11 tmp2         [V11,T09] (  2,  8   )     ref  ->   x0         "field V10.<Type>k__BackingField (fldOffset=0x0)" P-INDEP
 ;  V12 tmp3         [V12,T10] (  2,  8   )     ref  ->   x2         "field V10.<Value>k__BackingField (fldOffset=0x8)" P-INDEP
-;  V13 tmp4         [V13,T17] (  2,  2   )    long  ->   x0         "argument with side effect"
-;  V14 tmp5         [V14    ] (  2, 16   )  struct (32) [fp+0x30]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Reflection.Metadata.BlobReader>
-;  V15 tmp6         [V15,T01] (  2, 16   )    long  ->   x1         "argument with side effect"
-;* V16 tmp7         [V16,T11] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V17 tmp8         [V17,T12] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;  V18 tmp9         [V18    ] (  2, 16   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1+ArgumentTypeInfo[System.__Canon]>
-;  V19 tmp10        [V19,T02] (  2, 16   )    long  ->   x1         "argument with side effect"
-;* V20 tmp11        [V20,T13] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V21 tmp12        [V21,T14] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;  V22 cse0         [V22,T08] (  3,  8.50)    long  ->  x24         hoist "CSE - aggressive"
+;  V13 tmp4         [V13,T14] (  2,  2   )    long  ->   x0         "argument with side effect"
+;  V14 tmp5         [V14    ] (  2, 16   )  struct (32) [fp+0x28]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Reflection.Metadata.BlobReader>
+;  V15 tmp6         [V15,T00] (  2, 16   )    long  ->   x1         "argument with side effect"
+;  V16 tmp7         [V16    ] (  2, 16   )  struct (24) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1+ArgumentTypeInfo[System.__Canon]>
+;  V17 tmp8         [V17,T01] (  2, 16   )    long  ->   x1         "argument with side effect"
+;  V18 cse0         [V18,T06] (  3,  8.50)    long  ->  x24         hoist "CSE - aggressive"
+;  V19 cse1         [V19,T13] (  2,  4.50)    long  ->  x27         hoist "CSE - aggressive"
 ;
-; Lcl frame size = 96
+; Lcl frame size = 88
 
 G_M22533_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0xB0]!
-            stp     x19, x20, [sp, #0x70]
-            stp     x21, x22, [sp, #0x80]
-            stp     x23, x24, [sp, #0x90]
-            stp     x25, x26, [sp, #0xA0]
+            stp     x19, x20, [sp, #0x68]
+            stp     x21, x22, [sp, #0x78]
+            stp     x23, x24, [sp, #0x88]
+            stp     x25, x26, [sp, #0x98]
+            str     x27, [sp, #0xA8]
             mov     fp, sp
-            add     x9, fp, #24
+            add     x9, fp, #16
             movi    v16.16b, #0
             stp     q16, q16, [x9]
             stp     q16, q16, [x9, #0x20]
             stp     xzr, xzr, [x9, #0x40]
-            str     x1, [fp, #0x68]
-            mov     x19, x0
-            ; byrRegs +[x19]
-            mov     x24, x1
-            mov     x21, x2
-            ; byrRegs +[x21]
-            mov     x22, x3
-            ; byrRegs +[x22]
-            mov     w23, w4
-            mov     x20, x5
+            str     x1, [fp, #0x60]
+            mov     x20, x0
             ; byrRegs +[x20]
-                       ;; size=72 bbWeight=1 PerfScore 13.50
-G_M22533_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=780000 {x19 x20 x21 x22}, byref, isz
-            cbnz    w23, G_M22533_IG05
+            mov     x24, x1
+            mov     x22, x2
+            ; byrRegs +[x22]
+            mov     x23, x3
+            ; byrRegs +[x23]
+            mov     w21, w4
+            mov     x19, x5
+            ; byrRegs +[x19]
+                       ;; size=76 bbWeight=1 PerfScore 14.50
+G_M22533_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=D80000 {x19 x20 x22 x23}, byref, isz
+            cbnz    w21, G_M22533_IG05
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M22533_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; byrRegs -[x19-x22]
+            ; byrRegs -[x19-x20 x22-x23]
             mov     x0, x24
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
@@ -79,22 +77,23 @@ G_M22533_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ldr     x0, [x0, #0x08]
                        ;; size=44 bbWeight=0.50 PerfScore 8.25
 G_M22533_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     x25, x26, [sp, #0xA0]
-            ldp     x23, x24, [sp, #0x90]
-            ldp     x21, x22, [sp, #0x80]
-            ldp     x19, x20, [sp, #0x70]
+            ldr     x27, [sp, #0xA8]
+            ldp     x25, x26, [sp, #0x98]
+            ldp     x23, x24, [sp, #0x88]
+            ldp     x21, x22, [sp, #0x78]
+            ldp     x19, x20, [sp, #0x68]
             ldp     fp, lr, [sp], #0xB0
             ret     lr
-                       ;; size=24 bbWeight=0.50 PerfScore 3.00
-G_M22533_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=780000 {x19 x20 x21 x22}, gcvars, byref, isz
+                       ;; size=28 bbWeight=0.50 PerfScore 4.00
+G_M22533_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=D80000 {x19 x20 x22 x23}, gcvars, byref, isz
             ; gcrRegs -[x0]
-            ; byrRegs +[x19-x22]
+            ; byrRegs +[x19-x20 x22-x23]
             mov     x0, x24
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x1, [x11]
             blr     x1
-            mov     w1, w23
+            mov     w1, w21
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x2, [x11]
@@ -103,7 +102,7 @@ G_M22533_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             mov     x25, x0
             ; gcrRegs +[x25]
             mov     w26, wzr
-            cmp     w23, #0
+            cmp     w21, #0
             ble     G_M22533_IG09
             mov     x0, x24
             ; gcrRegs -[x0]
@@ -112,36 +111,39 @@ G_M22533_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     x1, [x11]
             blr     x1
             mov     x24, x0
-                       ;; size=80 bbWeight=0.50 PerfScore 9.75
-G_M22533_IG06:        ; bbWeight=4, gcrefRegs=2000000 {x25}, byrefRegs=780000 {x19 x20 x21 x22}, byref
+            adrp    x27, [HIGH RELOC #0xD1FFAB1E]
+            add     x27, x27, [LOW RELOC #0xD1FFAB1E]
+                       ;; size=88 bbWeight=0.50 PerfScore 10.25
+G_M22533_IG06:        ; bbWeight=4, gcrefRegs=2000000 {x25}, byrefRegs=D80000 {x19 x20 x22 x23}, byref
             mov     x1, x24
-            ldp     q16, q17, [x20]
-            stp     q16, q17, [fp, #0x30]
-            add     x3, fp, #48    // [V14 tmp5]
-            mov     x0, x19
+            ldp     x3, x8, [x19]
+            stp     x3, x8, [fp, #0x28]
+            ldp     x3, x8, [x19, #0x10]
+            stp     x3, x8, [fp, #0x38]
+            add     x3, fp, #40    // [V14 tmp5]
+            add     x8, fp, #72    // [V08 loc2]
+            mov     x0, x20
             ; byrRegs +[x0]
-            mov     x2, x21
+            mov     x2, x22
             ; byrRegs +[x2]
-            add     x8, fp, #80    // [V08 loc2]
-            adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
-            add     x11, x11, [LOW RELOC #0xD1FFAB1E]
+            mov     x11, x27
             mov     w4, wzr
             ldr     x5, [x11]
             blr     x5
             ; byrRegs -[x0 x2]
             mov     x1, x24
-                       ;; size=52 bbWeight=4 PerfScore 50.00
+                       ;; size=56 bbWeight=4 PerfScore 72.00
 G_M22533_IG07:        ; bbWeight=4, nogc, extend
-            ldp     x0, x2, [fp, #0x50]
-            stp     x0, x2, [fp, #0x18]
-            ldr     x0, [fp, #0x60]
-            str     x0, [fp, #0x28]
+            ldp     x0, x2, [fp, #0x48]
+            stp     x0, x2, [fp, #0x10]
+            ldr     x0, [fp, #0x58]
+            str     x0, [fp, #0x20]
                        ;; size=16 bbWeight=4 PerfScore 28.00
 G_M22533_IG08:        ; bbWeight=4, isz, extend
-            add     x3, fp, #24    // [V18 tmp9]
-            mov     x0, x19
+            add     x3, fp, #16    // [V16 tmp7]
+            mov     x0, x20
             ; byrRegs +[x0]
-            mov     x2, x22
+            mov     x2, x23
             ; byrRegs +[x2]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
@@ -160,11 +162,11 @@ G_M22533_IG08:        ; bbWeight=4, isz, extend
             blr     x3
             ; gcrRegs -[x0-x2]
             add     w26, w26, #1
-            cmp     w26, w23
+            cmp     w26, w21
             blt     G_M22533_IG06
                        ;; size=72 bbWeight=4 PerfScore 72.00
 G_M22533_IG09:        ; bbWeight=0.50, gcrefRegs=2000000 {x25}, byrefRegs=0000 {}, byref
-            ; byrRegs -[x19-x22]
+            ; byrRegs -[x19-x20 x22-x23]
             mov     x0, x25
             ; gcrRegs +[x0]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
@@ -175,26 +177,27 @@ G_M22533_IG09:        ; bbWeight=0.50, gcrefRegs=2000000 {x25}, byrefRegs=0000 {
             ; gcrRegs -[x25]
                        ;; size=24 bbWeight=0.50 PerfScore 4.25
 G_M22533_IG10:        ; bbWeight=0.50, epilog, nogc, extend
-            ldp     x25, x26, [sp, #0xA0]
-            ldp     x23, x24, [sp, #0x90]
-            ldp     x21, x22, [sp, #0x80]
-            ldp     x19, x20, [sp, #0x70]
+            ldr     x27, [sp, #0xA8]
+            ldp     x25, x26, [sp, #0x98]
+            ldp     x23, x24, [sp, #0x88]
+            ldp     x21, x22, [sp, #0x78]
+            ldp     x19, x20, [sp, #0x68]
             ldp     fp, lr, [sp], #0xB0
             ret     lr
-                       ;; size=24 bbWeight=0.50 PerfScore 3.00
+                       ;; size=28 bbWeight=0.50 PerfScore 4.00
 
-; Total bytes of code 412, prolog size 48, PerfScore 192.75, instruction count 103, allocated bytes for code 412 (MethodHash=ae16a7fa) for method System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1[System.__Canon]:DecodeFixedArguments(byref,byref,int,System.Reflection.Metadata.BlobReader):System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.CustomAttributeTypedArgument`1[System.__Canon]]:this (FullOpts)
+; Total bytes of code 436, prolog size 52, PerfScore 218.25, instruction count 109, allocated bytes for code 436 (MethodHash=ae16a7fa) for method System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1[System.__Canon]:DecodeFixedArguments(byref,byref,int,System.Reflection.Metadata.BlobReader):System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.CustomAttributeTypedArgument`1[System.__Canon]]:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 3
   Epilog Count      : 2
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 103 (0x00067) Actual length = 412 (0x00019c)
+  Function Length   : 109 (0x0006d) Actual length = 436 (0x0001b4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -205,10 +208,13 @@ Unwind Info:
   ---- Unwind codes ----
...

+20 (+6.02%) : 72502.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)

@@ -9,8 +9,8 @@
 ; 0 inlinees with PGO data; 11 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
-;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression>
+;  V00 this         [V00,T01] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
+;  V01 arg1         [V01,T00] ( 12, 12   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (24) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -23,7 +23,7 @@
 ;* V11 tmp7         [V11    ] (  0,  0   )  struct (24) zero-ref    "impAppendStmt" <Microsoft.CodeAnalysis.BitVector>
 ;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    single-def "Inline return value spill temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;  V13 tmp9         [V13    ] (  4,  6   )  struct ( 8) [fp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V14 tmp10        [V14,T03] (  2,  4   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V14 tmp10        [V14,T02] (  2,  4   )     ref  ->   x1         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V15 tmp11        [V15    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V02.array (fldOffset=0x0)" P-INDEP
 ;* V16 tmp12        [V16    ] (  0,  0   )     ref  ->  zero-ref    "field V05.array (fldOffset=0x0)" P-INDEP
 ;* V17 tmp13        [V17    ] (  0,  0   )     ref  ->  zero-ref    "field V07.array (fldOffset=0x0)" P-INDEP
@@ -32,16 +32,14 @@
 ;* V20 tmp16        [V20    ] (  0,  0   )     ref  ->  zero-ref    "field V11._bits (fldOffset=0x0)" P-INDEP
 ;* V21 tmp17        [V21    ] (  0,  0   )    long  ->  zero-ref    "field V11._bits0 (fldOffset=0x8)" P-INDEP
 ;* V22 tmp18        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V11._capacity (fldOffset=0x10)" P-INDEP
-;  V23 tmp19        [V23,T10] (  3,  2   )     ref  ->   x2         single-def "field V12.array (fldOffset=0x0)" P-INDEP
+;  V23 tmp19        [V23,T08] (  3,  2   )     ref  ->   x2         single-def "field V12.array (fldOffset=0x0)" P-INDEP
 ;  V24 tmp20        [V24    ] (  4,  4   )     ref  ->  [fp+0x30]  do-not-enreg[X] addr-exposed "field V13.array (fldOffset=0x0)" P-DEP
 ;  V25 tmp21        [V25    ] (  2,  4   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
-;  V26 tmp22        [V26,T00] (  9, 18   )     ref  ->  x19         single-def "argument with side effect"
-;  V27 tmp23        [V27,T04] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V28 tmp24        [V28,T05] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
-;  V29 tmp25        [V29,T06] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V30 tmp26        [V30,T07] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
-;  V31 tmp27        [V31,T09] (  2,  4   )     int  ->   x5         "argument with side effect"
-;  V32 tmp28        [V32,T08] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
+;  V26 tmp22        [V26,T03] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
+;  V27 tmp23        [V27,T04] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
+;  V28 tmp24        [V28,T05] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
+;  V29 tmp25        [V29,T07] (  2,  4   )     int  ->   x6         "argument with side effect"
+;  V30 tmp26        [V30,T06] (  2,  4   )     ref  ->   x7         single-def "argument with side effect"
 ;
 ; Lcl frame size = 64
 
@@ -100,14 +98,9 @@ G_M12801_IG04:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
                        ;; size=40 bbWeight=0.50 PerfScore 6.00
 G_M12801_IG05:        ; bbWeight=1, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
-            ldr     x0, [x19, #0x18]
-            ; gcrRegs +[x0]
-            ldrsb   wzr, [x20]
-            adrp    x1, [HIGH RELOC #0xD1FFAB1E]      // const ptr
-            add     x1, x1, [LOW RELOC #0xD1FFAB1E]
-            ldr     x1, [x1]
-            ldr     x1, [x19, x1]
+            ldr     x1, [x19, #0x18]
             ; gcrRegs +[x1]
+            ldrsb   wzr, [x20]
             adrp    x3, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x3, x3, [LOW RELOC #0xD1FFAB1E]
             ldr     x3, [x3]
@@ -121,44 +114,56 @@ G_M12801_IG05:        ; bbWeight=1, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=000
             adrp    x5, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x5, x5, [LOW RELOC #0xD1FFAB1E]
             ldr     x5, [x5]
-            ldrb    w5, [x19, x5]
+            ldr     x5, [x19, x5]
+            ; gcrRegs +[x5]
             adrp    x6, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x6, x6, [LOW RELOC #0xD1FFAB1E]
             ldr     x6, [x6]
-            ldr     x6, [x19, x6]
-            ; gcrRegs +[x6]
+            ldrb    w6, [x19, x6]
             adrp    x7, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x7, x7, [LOW RELOC #0xD1FFAB1E]
             ldr     x7, [x7]
-            add     x7, x19, x7
-            ; byrRegs +[x7]
-                       ;; size=104 bbWeight=1 PerfScore 45.50
-G_M12801_IG06:        ; bbWeight=1, nogc, extend
-            ldp     x8, x11, [x7]
-            stp     x8, x11, [fp, #0x18]
-            ldr     x8, [x7, #0x10]
-            str     x8, [fp, #0x28]
-                       ;; size=16 bbWeight=1 PerfScore 9.00
-G_M12801_IG07:        ; bbWeight=1, extend
-            adrp    x7, [HIGH RELOC #0xD1FFAB1E]      // const ptr
-            ; byrRegs -[x7]
-            add     x7, x7, [LOW RELOC #0xD1FFAB1E]
-            ldr     x7, [x7]
             ldr     x7, [x19, x7]
             ; gcrRegs +[x7]
-            str     x7, [sp]   // [V04 OutArgs]
-            mov     x7, xzr
-            str     x7, [sp, #0x08]    // [V04 OutArgs+0x08]
-            str     x0, [sp, #0x10]    // [V04 OutArgs+0x10]
-            mov     x0, x19
+            adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
+            add     x0, x0, [LOW RELOC #0xD1FFAB1E]
+            ldr     x0, [x0]
+            add     x0, x19, x0
+            ; byrRegs +[x0]
+                       ;; size=104 bbWeight=1 PerfScore 45.50
+G_M12801_IG06:        ; bbWeight=1, nogc, extend
+            ldp     x8, x11, [x0]
+            stp     x8, x11, [fp, #0x18]
+            ldr     x8, [x0, #0x10]
+            str     x8, [fp, #0x28]
+                       ;; size=16 bbWeight=1 PerfScore 9.00
+G_M12801_IG07:        ; bbWeight=1, extend
+            adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
+            ; byrRegs -[x0]
+            add     x0, x0, [LOW RELOC #0xD1FFAB1E]
+            ldr     x0, [x0]
+            ldr     x0, [x19, x0]
+            ; gcrRegs +[x0]
+            str     x0, [sp]   // [V04 OutArgs]
+            mov     x0, xzr
+            str     x0, [sp, #0x08]    // [V04 OutArgs+0x08]
+            str     x1, [sp, #0x10]    // [V04 OutArgs+0x10]
+            mov     x1, x3
+            mov     x3, x4
+            mov     x4, x5
+            mov     w5, w6
+            ; gcrRegs -[x5]
+            mov     x6, x7
+            ; gcrRegs +[x6]
             add     x7, fp, #24    // [V25 tmp21]
             ; gcrRegs -[x7]
+            mov     x0, x19
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x8, [x11]
             blr     x8
             ; gcrRegs -[x1-x4 x6 x19-x20]
-                       ;; size=56 bbWeight=1 PerfScore 16.50
+                       ;; size=76 bbWeight=1 PerfScore 19.00
 G_M12801_IG08:        ; bbWeight=1, epilog, nogc, extend
             ldp     x19, x20, [sp, #0x50]
             ldp     fp, lr, [sp, #0x18]
@@ -166,7 +171,7 @@ G_M12801_IG08:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=16 bbWeight=1 PerfScore 3.50
 
-; Total bytes of code 332, prolog size 28, PerfScore 107.50, instruction count 83, allocated bytes for code 332 (MethodHash=9e98cdfe) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
+; Total bytes of code 352, prolog size 28, PerfScore 110.00, instruction count 88, allocated bytes for code 352 (MethodHash=9e98cdfe) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -177,7 +182,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 83 (0x00053) Actual length = 332 (0x00014c)
+  Function Length   : 88 (0x00058) Actual length = 352 (0x000160)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+7.14%) : 96547.dasm - Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable1[int]):this (FullOpts)

@@ -8,7 +8,7 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel>
+;  V00 this         [V00,T01] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
 ;* V02 arg2         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <Microsoft.CodeAnalysis.ISymbol>
 ;  V03 arg3         [V03,T04] (  3,  3   )   ubyte  ->   x3         single-def
@@ -17,33 +17,30 @@
 ;* V06 arg6         [V06    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Nullable`1[int]>
 ;* V07 loc0         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[int]>
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V09 tmp1         [V09,T05] (  2,  2   )     ref  ->   x5         single-def "field V05._source (fldOffset=0x0)" P-INDEP
-;* V10 tmp2         [V10,T11] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V07.hasValue (fldOffset=0x0)" P-INDEP
-;* V11 tmp3         [V11,T12] (  0,  0   )     int  ->  zero-ref    single-def "field V07.value (fldOffset=0x4)" P-INDEP
-;  V12 tmp4         [V12,T01] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
-;* V13 tmp5         [V13,T10] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V14 tmp6         [V14,T06] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V15 tmp7         [V15,T09] (  2,  4   )     int  ->   x2         "argument with side effect"
-;  V16 tmp8         [V16,T07] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V17 tmp9         [V17,T08] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
+;  V09 tmp1         [V09,T05] (  2,  2   )     ref  ->  x11         single-def "field V05._source (fldOffset=0x0)" P-INDEP
+;* V10 tmp2         [V10,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V07.hasValue (fldOffset=0x0)" P-INDEP
+;* V11 tmp3         [V11,T07] (  0,  0   )     int  ->  zero-ref    single-def "field V07.value (fldOffset=0x4)" P-INDEP
+;  V12 tmp4         [V12,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
 ;
 ; Lcl frame size = 16
 
 G_M26014_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M26014_IG02:        ; bbWeight=1, gcrefRegs=0033 {x0 x1 x4 x5}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x0-x1 x4-x5]
-            uxtb    w2, w3
-            mov     x3, x4
-            ; gcrRegs +[x3]
-            mov     x4, x5
+            mov     x11, x5
+            ; gcrRegs +[x11]
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M26014_IG02:        ; bbWeight=1, gcrefRegs=0813 {x0 x1 x4 x11}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[x0-x1 x4]
             strb    wzr, [fp, #0x18]   // [V12 tmp4]
             str     wzr, [fp, #0x1C]   // [V12 tmp4+0x04]
             ldr     x5, [fp, #0x18]    // [V12 tmp4]
-            ; gcrRegs -[x5]
+            uxtb    w2, w3
+            mov     x3, x4
+            ; gcrRegs +[x3]
+            mov     x4, x11
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
+            ; gcrRegs -[x11]
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x6, [x11]
             blr     x6
@@ -54,7 +51,7 @@ G_M26014_IG03:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 56, prolog size 8, PerfScore 14.00, instruction count 14, allocated bytes for code 56 (MethodHash=5e2a9a61) for method Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable`1[int]):this (FullOpts)
+; Total bytes of code 60, prolog size 8, PerfScore 14.50, instruction count 15, allocated bytes for code 60 (MethodHash=5e2a9a61) for method Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable`1[int]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -65,7 +62,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 14 (0x0000e) Actual length = 56 (0x000038)
+  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries.pmi.osx.arm64.checked.mch

-32 (-20.00%) : 77334.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)

@@ -8,7 +8,7 @@
 ; 0 inlinees with PGO data; 13 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
+;  V00 this         [V00,T00] ( 15, 15   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (48) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.BoundExpression>
@@ -22,7 +22,7 @@
 ;* V11 tmp9         [V11    ] (  0,  0   )  struct (24) zero-ref    "impAppendStmt" <Microsoft.CodeAnalysis.BitVector>
 ;* V12 tmp10        [V12    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V13 tmp11        [V13    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
-;  V14 tmp12        [V14,T02] (  2,  2   )     ref  ->   x1         single-def "field V01.array (fldOffset=0x0)" P-INDEP
+;  V14 tmp12        [V14,T01] (  2,  2   )     ref  ->   x3         single-def "field V01.array (fldOffset=0x0)" P-INDEP
 ;* V15 tmp13        [V15    ] (  0,  0   )     ref  ->  zero-ref    "field V05.array (fldOffset=0x0)" P-INDEP
 ;* V16 tmp14        [V16    ] (  0,  0   )     ref  ->  zero-ref    "field V06.array (fldOffset=0x0)" P-INDEP
 ;* V17 tmp15        [V17    ] (  0,  0   )     ref  ->  zero-ref    "field V10.array (fldOffset=0x0)" P-INDEP
@@ -31,16 +31,14 @@
 ;* V20 tmp18        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V11._capacity (fldOffset=0x10)" P-INDEP
 ;* V21 tmp19        [V21    ] (  0,  0   )     ref  ->  zero-ref    "field V13.array (fldOffset=0x0)" P-INDEP
 ;  V22 tmp20        [V22    ] (  2,  4   )  struct (24) [fp+0x18]  do-not-enreg[XS] addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
-;  V23 tmp21        [V23,T00] ( 13, 26   )     ref  ->   x2         single-def "argument with side effect"
-;  V24 tmp22        [V24,T03] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
+;  V23 tmp21        [V23,T02] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
+;  V24 tmp22        [V24,T03] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
 ;  V25 tmp23        [V25,T04] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
 ;  V26 tmp24        [V26,T05] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
-;  V27 tmp25        [V27,T06] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
-;  V28 tmp26        [V28,T07] (  2,  4   )     ref  ->   x7         single-def "argument with side effect"
+;  V27 tmp25        [V27,T07] (  2,  4   )     int  ->   x6         "argument with side effect"
+;  V28 tmp26        [V28,T08] (  2,  4   )     int  ->   x7         "argument with side effect"
 ;  V29 tmp27        [V29,T09] (  2,  4   )     int  ->   x8         "argument with side effect"
-;  V30 tmp28        [V30,T10] (  2,  4   )     int  ->   x9         "argument with side effect"
-;  V31 tmp29        [V31,T11] (  2,  4   )     int  ->  x10         "argument with side effect"
-;  V32 tmp30        [V32,T08] (  2,  4   )     ref  ->  x11         single-def "argument with side effect"
+;  V30 tmp28        [V30,T06] (  2,  4   )     ref  ->   x9         single-def "argument with side effect"
 ;
 ; Lcl frame size = 80
 
@@ -48,49 +46,37 @@ G_M12648_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             sub     sp, sp, #96
             stp     fp, lr, [sp, #0x30]
             add     fp, sp, #48
-                       ;; size=12 bbWeight=1 PerfScore 2.00
-G_M12648_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x0-x1]
-            mov     x2, x0
-            ; gcrRegs +[x2]
-            ldp     x3, x4, [x2, #0x20]
-            ; gcrRegs +[x3-x4]
-            mov     x5, x1
-            ; gcrRegs +[x5]
-            ldp     x6, x7, [x2, #0x40]
-            ; gcrRegs +[x6-x7]
-            ldrb    w8, [x2, #0x30]
-            ldrb    w9, [x2, #0x31]
-            ldrb    w10, [x2, #0x32]
-            ldr     x11, [x2, #0x50]
-            ; gcrRegs +[x11]
-                       ;; size=32 bbWeight=1 PerfScore 21.00
+            mov     x3, x1
+            ; gcrRegs +[x3]
+                       ;; size=16 bbWeight=1 PerfScore 2.50
+G_M12648_IG02:        ; bbWeight=1, gcrefRegs=0009 {x0 x3}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[x0]
+            ldp     x1, x2, [x0, #0x20]
+            ; gcrRegs +[x1-x2]
+            ldp     x4, x5, [x0, #0x40]
+            ; gcrRegs +[x4-x5]
+            ldrb    w6, [x0, #0x30]
+            ldrb    w7, [x0, #0x31]
+            ldrb    w8, [x0, #0x32]
+            ldr     x9, [x0, #0x50]
+            ; gcrRegs +[x9]
+                       ;; size=24 bbWeight=1 PerfScore 20.00
 G_M12648_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x1, x13, [x2, #0x58]
-            ; gcrRegs -[x1]
-            stp     x1, x13, [fp, #0x18]
-            ldr     x1, [x2, #0x68]
-            str     x1, [fp, #0x28]
+            ldp     x10, x11, [x0, #0x58]
+            stp     x10, x11, [fp, #0x18]
+            ldr     x10, [x0, #0x68]
+            str     x10, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M12648_IG04:        ; bbWeight=1, extend
-            ldrb    w1, [x2, #0x33]
-            strb    w1, [sp, #0x18]    // [V02 OutArgs+0x18]
-            ldr     x1, [x2, #0x70]
-            ; gcrRegs +[x1]
-            str     x1, [sp, #0x20]    // [V02 OutArgs+0x20]
-            ldr     x1, [x2, #0x18]
-            str     x1, [sp, #0x28]    // [V02 OutArgs+0x28]
-            mov     x1, x3
-            mov     x2, x4
-            mov     x3, x5
-            mov     x4, x6
-            mov     x5, x7
-            mov     w6, w8
-            ; gcrRegs -[x6]
-            mov     w7, w9
-            ; gcrRegs -[x7]
-            strb    w10, [sp]  // [V02 OutArgs]
-            str     x11, [sp, #0x08]   // [V02 OutArgs+0x08]
+            ldrb    w10, [x0, #0x33]
+            strb    w10, [sp, #0x18]   // [V02 OutArgs+0x18]
+            ldr     x10, [x0, #0x70]
+            ; gcrRegs +[x10]
+            str     x10, [sp, #0x20]   // [V02 OutArgs+0x20]
+            ldr     x10, [x0, #0x18]
+            str     x10, [sp, #0x28]   // [V02 OutArgs+0x28]
+            strb    w8, [sp]   // [V02 OutArgs]
+            str     x9, [sp, #0x08]    // [V02 OutArgs+0x08]
             add     x8, fp, #24    // [V22 tmp20]
             str     x8, [sp, #0x10]    // [V02 OutArgs+0x10]
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
@@ -98,15 +84,15 @@ G_M12648_IG04:        ; bbWeight=1, extend
             movk    x8, #1 LSL #32
             ldr     x8, [x8]
             blr     x8
-            ; gcrRegs -[x1-x5 x11]
-                       ;; size=88 bbWeight=1 PerfScore 24.50
+            ; gcrRegs -[x1-x5 x9-x10]
+                       ;; size=60 bbWeight=1 PerfScore 21.00
 G_M12648_IG05:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp, #0x30]
             add     sp, sp, #96
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 2.50
 
-; Total bytes of code 160, prolog size 12, PerfScore 59.00, instruction count 40, allocated bytes for code 160 (MethodHash=b8d0ce97) for method Microsoft.CodeAnalysis.CSharp.BoundCall:Update(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
+; Total bytes of code 128, prolog size 12, PerfScore 55.00, instruction count 32, allocated bytes for code 128 (MethodHash=b8d0ce97) for method Microsoft.CodeAnalysis.CSharp.BoundCall:Update(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -117,7 +103,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 40 (0x00028) Actual length = 160 (0x0000a0)
+  Function Length   : 32 (0x00020) Actual length = 128 (0x000080)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-20.00%) : 170194.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)

@@ -10,39 +10,35 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Nullable`1[System.DateTime]>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
-;  V04 tmp2         [V04,T03] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
-;* V05 tmp3         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp4         [V06,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
-;  V07 tmp5         [V07,T01] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V08 tmp6         [V08,T00] (  4,  8   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.Nullable`1[System.DateTime]>
+;  V03 tmp1         [V03,T01] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
+;  V04 tmp2         [V04,T02] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
+;* V05 tmp3         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
+;  V07 tmp5         [V07,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M46195_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M46195_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            strb    w0, [fp, #0x18]    // [V08 tmp6]
-            str     x1, [fp, #0x20]    // [V08 tmp6+0x08]
-            strb    wzr, [fp, #0x28]   // [V07 tmp5]
-            strb    wzr, [fp, #0x29]   // [V07 tmp5+0x01]
-            ldp     x0, x1, [fp, #0x18]    // [V08 tmp6], [V08 tmp6+0x08]
-            ldrh    w2, [fp, #0x28]    // [V07 tmp5]
+            strb    wzr, [fp, #0x18]   // [V07 tmp5]
+            strb    wzr, [fp, #0x19]   // [V07 tmp5+0x01]
+            ldrh    w2, [fp, #0x18]    // [V07 tmp5]
             movz    x3, #0xD1FFAB1E      // code for System.Text.Json.Nodes.JsonValue:Create(System.Nullable`1[System.DateTime],System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonValue
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs +[x0]
-                       ;; size=44 bbWeight=1 PerfScore 14.50
+                       ;; size=32 bbWeight=1 PerfScore 9.50
 G_M46195_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x30
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 60, prolog size 8, PerfScore 18.00, instruction count 15, allocated bytes for code 60 (MethodHash=8d094b8c) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 13.00, instruction count 12, allocated bytes for code 48 (MethodHash=8d094b8c) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +49,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
+  Function Length   : 12 (0x0000c) Actual length = 48 (0x000030)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -61,7 +57,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

-12 (-20.00%) : 170195.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.DateTimeOffset):System.Text.Json.Nodes.JsonNode (FullOpts)

@@ -10,39 +10,35 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.DateTimeOffset>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  2,  2   )   short  ->   x0         single-def "field V00._offsetMinutes (fldOffset=0x0)" P-INDEP
-;  V04 tmp2         [V04,T03] (  2,  2   )    long  ->   x1         single-def "field V00._dateTime (fldOffset=0x8)" P-INDEP
-;* V05 tmp3         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp4         [V06,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
-;  V07 tmp5         [V07,T01] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V08 tmp6         [V08,T00] (  4,  8   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.DateTimeOffset>
+;  V03 tmp1         [V03,T01] (  2,  2   )   short  ->   x0         single-def "field V00._offsetMinutes (fldOffset=0x0)" P-INDEP
+;  V04 tmp2         [V04,T02] (  2,  2   )    long  ->   x1         single-def "field V00._dateTime (fldOffset=0x8)" P-INDEP
+;* V05 tmp3         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
+;  V07 tmp5         [V07,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M31891_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M31891_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            strh    w0, [fp, #0x18]    // [V08 tmp6]
-            str     x1, [fp, #0x20]    // [V08 tmp6+0x08]
-            strb    wzr, [fp, #0x28]   // [V07 tmp5]
-            strb    wzr, [fp, #0x29]   // [V07 tmp5+0x01]
-            ldp     x0, x1, [fp, #0x18]    // [V08 tmp6], [V08 tmp6+0x08]
-            ldrh    w2, [fp, #0x28]    // [V07 tmp5]
+            strb    wzr, [fp, #0x18]   // [V07 tmp5]
+            strb    wzr, [fp, #0x19]   // [V07 tmp5+0x01]
+            ldrh    w2, [fp, #0x18]    // [V07 tmp5]
             movz    x3, #0xD1FFAB1E      // code for System.Text.Json.Nodes.JsonValue:Create(System.DateTimeOffset,System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonValue
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs +[x0]
-                       ;; size=44 bbWeight=1 PerfScore 14.50
+                       ;; size=32 bbWeight=1 PerfScore 9.50
 G_M31891_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x30
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 60, prolog size 8, PerfScore 18.00, instruction count 15, allocated bytes for code 60 (MethodHash=d63e836c) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.DateTimeOffset):System.Text.Json.Nodes.JsonNode (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 13.00, instruction count 12, allocated bytes for code 48 (MethodHash=d63e836c) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.DateTimeOffset):System.Text.Json.Nodes.JsonNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +49,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
+  Function Length   : 12 (0x0000c) Actual length = 48 (0x000030)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -61,7 +57,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

+4 (+6.67%) : 122574.dasm - Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable1[int]):this (FullOpts)

@@ -7,7 +7,7 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel>
+;  V00 this         [V00,T01] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
 ;* V02 arg2         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <Microsoft.CodeAnalysis.ISymbol>
 ;  V03 arg3         [V03,T04] (  3,  3   )   ubyte  ->   x3         single-def
@@ -16,33 +16,30 @@
 ;* V06 arg6         [V06    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Nullable`1[int]>
 ;* V07 loc0         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[int]>
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V09 tmp1         [V09,T05] (  2,  2   )     ref  ->   x5         single-def "field V05._source (fldOffset=0x0)" P-INDEP
-;* V10 tmp2         [V10,T11] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V07.hasValue (fldOffset=0x0)" P-INDEP
-;* V11 tmp3         [V11,T12] (  0,  0   )     int  ->  zero-ref    single-def "field V07.value (fldOffset=0x4)" P-INDEP
-;  V12 tmp4         [V12,T01] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
-;* V13 tmp5         [V13,T10] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V14 tmp6         [V14,T06] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V15 tmp7         [V15,T09] (  2,  4   )     int  ->   x2         "argument with side effect"
-;  V16 tmp8         [V16,T07] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V17 tmp9         [V17,T08] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
+;  V09 tmp1         [V09,T05] (  2,  2   )     ref  ->   x6         single-def "field V05._source (fldOffset=0x0)" P-INDEP
+;* V10 tmp2         [V10,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V07.hasValue (fldOffset=0x0)" P-INDEP
+;* V11 tmp3         [V11,T07] (  0,  0   )     int  ->  zero-ref    single-def "field V07.value (fldOffset=0x4)" P-INDEP
+;  V12 tmp4         [V12,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
 ;
 ; Lcl frame size = 16
 
 G_M26014_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M26014_IG02:        ; bbWeight=1, gcrefRegs=0033 {x0 x1 x4 x5}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x0-x1 x4-x5]
-            uxtb    w2, w3
-            mov     x3, x4
-            ; gcrRegs +[x3]
-            mov     x4, x5
+            mov     x6, x5
+            ; gcrRegs +[x6]
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M26014_IG02:        ; bbWeight=1, gcrefRegs=0053 {x0 x1 x4 x6}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[x0-x1 x4]
             strb    wzr, [fp, #0x18]   // [V12 tmp4]
             str     wzr, [fp, #0x1C]   // [V12 tmp4+0x04]
             ldr     x5, [fp, #0x18]    // [V12 tmp4]
-            ; gcrRegs -[x5]
+            uxtb    w2, w3
+            mov     x3, x4
+            ; gcrRegs +[x3]
+            mov     x4, x6
             movz    x6, #0xD1FFAB1E      // code for Microsoft.CodeAnalysis.VisualBasic.VisualBasicDeclarationComputer:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SemanticModel,Microsoft.CodeAnalysis.SyntaxNode,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable`1[int])
+            ; gcrRegs -[x6]
             movk    x6, #0xD1FFAB1E LSL #16
             movk    x6, #1 LSL #32
             ldr     x6, [x6]
@@ -54,7 +51,7 @@ G_M26014_IG03:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 60, prolog size 8, PerfScore 14.50, instruction count 15, allocated bytes for code 60 (MethodHash=5e2a9a61) for method Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable`1[int]):this (FullOpts)
+; Total bytes of code 64, prolog size 8, PerfScore 15.00, instruction count 16, allocated bytes for code 64 (MethodHash=5e2a9a61) for method Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable`1[int]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -65,7 +62,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
+  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+6.67%) : 236228.dasm - Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (FullOpts)

@@ -8,29 +8,30 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Microsoft.Cci.MetadataWriter>
-;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.Cci.ITypeDefinition>
+;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.Cci.ITypeDefinition>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03    ] (  2,  4   )  struct (48) [fp+0x10]  do-not-enreg[XS] addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.Emit.EmitContext>
-;  V04 tmp2         [V04,T02] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
 ;
 ; Lcl frame size = 48
 
 G_M23091_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M23091_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, nogc
-            ; gcrRegs +[x0-x1]
+            mov     x2, x1
+            ; gcrRegs +[x2]
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M23091_IG02:        ; bbWeight=1, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref, nogc
+            ; gcrRegs +[x0]
             ldp     q16, q17, [x0, #0xD0]
             stp     q16, q17, [fp, #0x10]
             ldr     q16, [x0, #0xF0]
             str     q16, [fp, #0x30]
                        ;; size=16 bbWeight=1 PerfScore 8.00
 G_M23091_IG03:        ; bbWeight=1, extend
-            mov     x0, x1
             add     x1, fp, #16    // [V03 tmp1]
-            ; gcrRegs -[x1]
+            mov     x0, x2
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            ; gcrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
@@ -42,7 +43,7 @@ G_M23091_IG04:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 60, prolog size 8, PerfScore 18.00, instruction count 15, allocated bytes for code 60 (MethodHash=af30a5cc) for method Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (FullOpts)
+; Total bytes of code 64, prolog size 8, PerfScore 18.50, instruction count 16, allocated bytes for code 64 (MethodHash=af30a5cc) for method Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +54,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
+  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+6.90%) : 107786.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:g_visitArgumentsAndUpdateCall|101(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)

@@ -8,9 +8,9 @@
 ; 0 inlinees with PGO data; 15 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
-;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
-;  V02 arg2         [V02,T03] (  3,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+;  V00 this         [V00,T01] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
+;  V01 arg1         [V01,T00] ( 15, 15   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
+;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (48) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -27,7 +27,7 @@
 ;* V16 tmp11        [V16    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
 ;* V17 tmp12        [V17    ] (  0,  0   )  struct ( 8) zero-ref    single-def "Inline return value spill temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V18 tmp13        [V18    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V19 tmp14        [V19,T04] (  2,  4   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V19 tmp14        [V19,T03] (  2,  4   )     ref  ->   x2         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V20 tmp15        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V03.array (fldOffset=0x0)" P-INDEP
 ;* V21 tmp16        [V21    ] (  0,  0   )     ref  ->  zero-ref    "field V06.array (fldOffset=0x0)" P-INDEP
 ;* V22 tmp17        [V22    ] (  0,  0   )     ref  ->  zero-ref    "field V08.array (fldOffset=0x0)" P-INDEP
@@ -37,30 +37,27 @@
 ;* V26 tmp21        [V26    ] (  0,  0   )    long  ->  zero-ref    "field V14._bits0 (fldOffset=0x8)" P-INDEP
 ;* V27 tmp22        [V27    ] (  0,  0   )     int  ->  zero-ref    "field V14._capacity (fldOffset=0x10)" P-INDEP
 ;* V28 tmp23        [V28    ] (  0,  0   )     ref  ->  zero-ref    "field V16.array (fldOffset=0x0)" P-INDEP
-;  V29 tmp24        [V29,T15] (  3,  2   )     ref  ->  x22         single-def "field V17.array (fldOffset=0x0)" P-INDEP
-;  V30 tmp25        [V30,T14] (  3,  2.50)     ref  ->   x2         single-def "field V18.array (fldOffset=0x0)" P-INDEP
-;  V31 tmp26        [V31    ] (  2,  4   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
-;  V32 tmp27        [V32,T00] ( 12, 24   )     ref  ->  x19         single-def "argument with side effect"
-;  V33 tmp28        [V33,T05] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V34 tmp29        [V34,T06] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
-;  V35 tmp30        [V35,T07] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V36 tmp31        [V36,T08] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
-;  V37 tmp32        [V37,T09] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
-;  V38 tmp33        [V38,T11] (  2,  4   )     int  ->   x6         "argument with side effect"
-;  V39 tmp34        [V39,T12] (  2,  4   )     int  ->   x7         "argument with side effect"
-;  V40 tmp35        [V40,T13] (  2,  4   )     int  ->   x8         "argument with side effect"
-;  V41 tmp36        [V41,T10] (  2,  4   )     ref  ->   x9         single-def "argument with side effect"
+;  V29 tmp24        [V29,T12] (  3,  2   )     ref  ->   x3         single-def "field V17.array (fldOffset=0x0)" P-INDEP
+;  V30 tmp25        [V30,T11] (  3,  2.50)     ref  ->   x2         single-def "field V18.array (fldOffset=0x0)" P-INDEP
+;  V31 tmp26        [V31    ] (  2,  4   )  struct (24) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
+;  V32 tmp27        [V32,T04] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
+;  V33 tmp28        [V33,T05] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
+;  V34 tmp29        [V34,T06] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
+;  V35 tmp30        [V35,T08] (  2,  4   )     int  ->   x7         "argument with side effect"
+;  V36 tmp31        [V36,T09] (  2,  4   )     int  ->   x0         "argument with side effect"
+;  V37 tmp32        [V37,T10] (  2,  4   )     int  ->   x1         "argument with side effect"
+;  V38 tmp33        [V38,T07] (  2,  4   )     ref  ->   x8         single-def "argument with side effect"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 72
 
 G_M26558_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            sub     sp, sp, #128
+            sub     sp, sp, #112
             stp     fp, lr, [sp, #0x30]
-            stp     x19, x20, [sp, #0x60]
-            stp     x21, x22, [sp, #0x70]
+            stp     x19, x20, [sp, #0x58]
+            str     x21, [sp, #0x68]
             add     fp, sp, #48
-            stp     xzr, xzr, [fp, #0x18]  // [V31 tmp26], [V31 tmp26+0x08]
-            str     xzr, [fp, #0x28]   // [V31 tmp26+0x10]
+            stp     xzr, xzr, [fp, #0x10]  // [V31 tmp26], [V31 tmp26+0x08]
+            str     xzr, [fp, #0x20]   // [V31 tmp26+0x10]
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     x19, x1
@@ -75,12 +72,12 @@ G_M26558_IG02:        ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=00
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M26558_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
-            mov     x22, xzr
-            ; gcrRegs +[x22]
+            mov     x3, xzr
+            ; gcrRegs +[x3]
             b       G_M26558_IG05
                        ;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M26558_IG04:        ; bbWeight=0.50, gcrefRegs=380004 {x2 x19 x20 x21}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x22] +[x2]
+            ; gcrRegs -[x3] +[x2]
             mov     x0, x20
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -92,73 +89,79 @@ G_M26558_IG04:        ; bbWeight=0.50, gcrefRegs=380004 {x2 x19 x20 x21}, byrefR
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs -[x2]
-            mov     x22, x0
-            ; gcrRegs +[x22]
-                       ;; size=40 bbWeight=0.50 PerfScore 4.00
-G_M26558_IG05:        ; bbWeight=1, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            ldr     x0, [x19, #0x18]
-            ; gcrRegs +[x0]
-            ldrsb   wzr, [x20]
-            mov     x1, x21
-            ; gcrRegs +[x1]
-            ldr     x2, [x19, #0x28]
-            ; gcrRegs +[x2]
-            mov     x3, x22
+            mov     x3, x0
             ; gcrRegs +[x3]
-            ldp     x4, x5, [x19, #0x40]
-            ; gcrRegs +[x4-x5]
-            ldrb    w6, [x19, #0x30]
-            ldrb    w7, [x19, #0x31]
-            ldrb    w8, [x19, #0x32]
-            ldr     x9, [x19, #0x50]
-            ; gcrRegs +[x9]
-                       ;; size=40 bbWeight=1 PerfScore 26.00
+                       ;; size=40 bbWeight=0.50 PerfScore 4.00
+G_M26558_IG05:        ; bbWeight=1, gcrefRegs=380008 {x3 x19 x20 x21}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0]
+            ldr     x2, [x19, #0x18]
+            ; gcrRegs +[x2]
+            ldrsb   wzr, [x20]
+            ldr     x4, [x19, #0x28]
+            ; gcrRegs +[x4]
+            ldp     x5, x6, [x19, #0x40]
+            ; gcrRegs +[x5-x6]
+            ldrb    w7, [x19, #0x30]
+            ldrb    w0, [x19, #0x31]
+            ldrb    w1, [x19, #0x32]
+            ldr     x8, [x19, #0x50]
+            ; gcrRegs +[x8]
+                       ;; size=32 bbWeight=1 PerfScore 25.00
 G_M26558_IG06:        ; bbWeight=1, nogc, extend
-            ldp     x10, x11, [x19, #0x58]
-            stp     x10, x11, [fp, #0x18]
-            ldr     x10, [x19, #0x68]
-            str     x10, [fp, #0x28]
+            ldp     x9, x10, [x19, #0x58]
+            stp     x9, x10, [fp, #0x10]
+            ldr     x9, [x19, #0x68]
+            str     x9, [fp, #0x20]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M26558_IG07:        ; bbWeight=1, extend
-            ldrb    w10, [x19, #0x33]
-            strb    w10, [sp, #0x18]   // [V05 OutArgs+0x18]
-            ldr     x10, [x19, #0x70]
-            ; gcrRegs +[x10]
-            str     x10, [sp, #0x20]   // [V05 OutArgs+0x20]
-            str     x0, [sp, #0x28]    // [V05 OutArgs+0x28]
+            ldrb    w9, [x19, #0x33]
+            strb    w9, [sp, #0x18]    // [V05 OutArgs+0x18]
+            ldr     x9, [x19, #0x70]
+            ; gcrRegs +[x9]
+            str     x9, [sp, #0x20]    // [V05 OutArgs+0x20]
+            str     x2, [sp, #0x28]    // [V05 OutArgs+0x28]
+            mov     x2, x4
+            mov     x4, x5
+            mov     x5, x6
+            mov     w6, w7
+            ; gcrRegs -[x6]
+            mov     w7, w0
+            strb    w1, [sp]   // [V05 OutArgs]
+            str     x8, [sp, #0x08]    // [V05 OutArgs+0x08]
+            add     x0, fp, #16    // [V31 tmp26]
+            str     x0, [sp, #0x10]    // [V05 OutArgs+0x10]
             mov     x0, x19
-            strb    w8, [sp]   // [V05 OutArgs]
-            str     x9, [sp, #0x08]    // [V05 OutArgs+0x08]
-            add     x8, fp, #24    // [V31 tmp26]
-            str     x8, [sp, #0x10]    // [V05 OutArgs+0x10]
+            ; gcrRegs +[x0]
+            mov     x1, x21
+            ; gcrRegs +[x1]
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
+            ; gcrRegs -[x8]
             movk    x8, #0xD1FFAB1E LSL #16
             movk    x8, #1 LSL #32
             ldr     x8, [x8]
             blr     x8
-            ; gcrRegs -[x1-x5 x9-x10 x19-x22]
-                       ;; size=60 bbWeight=1 PerfScore 18.50
+            ; gcrRegs -[x1-x5 x9 x19-x21]
+                       ;; size=84 bbWeight=1 PerfScore 21.50
 G_M26558_IG08:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x70]
-            ldp     x19, x20, [sp, #0x60]
+            ldr     x21, [sp, #0x68]
+            ldp     x19, x20, [sp, #0x58]
             ldp     fp, lr, [sp, #0x30]
-            add     sp, sp, #128
+            add     sp, sp, #112
             ret     lr
-                       ;; size=20 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 5.50
 
-; Total bytes of code 232, prolog size 28, PerfScore 74.25, instruction count 58, allocated bytes for code 232 (MethodHash=faef9841) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
+; Total bytes of code 248, prolog size 28, PerfScore 77.25, instruction count 62, allocated bytes for code 248 (MethodHash=faef9841) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 3
   Epilog Count      : 1
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 58 (0x0003a) Actual length = 232 (0x0000e8)
+  Function Length   : 62 (0x0003e) Actual length = 248 (0x0000f8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -166,9 +169,12 @@ Unwind Info:
   ---- Unwind codes ----
     E2 06       add_fp 6 (0x06); add fp, sp, #48
     ---- Epilog start at index 2 ----
-    E6          save_next
-    C8 0C       save_regp X#0 Z#12 (0x0C); stp x19, x20, [sp, #96]
+    D0 8D       save_reg X#2 Z#13 (0x0D); str x21, [sp, #104]
+    C8 0B       save_regp X#0 Z#11 (0x0B); stp x19, x20, [sp, #88]
     46          save_fplr #6 (0x06); stp fp, lr, [sp, #48]
-    08          alloc_s #8 (0x08); sub sp, sp, #128 (0x080)
+    07          alloc_s #7 (0x07); sub sp, sp, #112 (0x070)
+    E4          end
+    E4          end
+    E4          end
     E4          end
 

libraries_tests.run.osx.arm64.Release.mch

-40 (-27.03%) : 1141.dasm - Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Tier0)

@@ -5,72 +5,56 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] this class-hnd <Xunit.Sdk.TestCollection>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITestAssembly>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITypeInfo>
-;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x60]  do-not-enreg[] class-hnd <System.String>
-;  V04 loc0         [V04    ] (  1,  1   )  struct (24) [fp+0x48]  do-not-enreg[S] must-init ld-addr-op <System.Nullable`1[System.Guid]>
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] this class-hnd <Xunit.Sdk.TestCollection>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITestAssembly>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x48]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITypeInfo>
+;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x40]  do-not-enreg[] class-hnd <System.String>
+;  V04 loc0         [V04    ] (  1,  1   )  struct (24) [fp+0x28]  do-not-enreg[S] must-init ld-addr-op <System.Nullable`1[System.Guid]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06    ] (  1,  1   )  struct (24) [fp+0x30]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Nullable`1[System.Guid]>
-;  V07 tmp2         [V07    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V08 tmp3         [V08    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp4         [V09    ] (  1,  1   )     ref  ->  [fp+0x18]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp5         [V10    ] (  1,  1   )     ref  ->  [fp+0x10]  do-not-enreg[] must-init "argument with side effect"
+;  V06 tmp1         [V06    ] (  1,  1   )  struct (24) [fp+0x10]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Nullable`1[System.Guid]>
 ;
-; Lcl frame size = 112
+; Lcl frame size = 80
 
 G_M26555_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x80]!
+            stp     fp, lr, [sp, #-0x60]!
             mov     fp, sp
-            add     x9, fp, #16
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     q16, q16, [x9, #0x20]
-            stp     xzr, xzr, [x9, #0x40]
-            str     x0, [fp, #0x78]    // [V00 this]
-            str     x1, [fp, #0x70]    // [V01 arg1]
-            str     x2, [fp, #0x68]    // [V02 arg2]
-            str     x3, [fp, #0x60]    // [V03 arg3]
-                       ;; size=44 bbWeight=1 PerfScore 9.50
+            str     xzr, [fp, #0x28]   // [V04 loc0]
+            str     xzr, [fp, #0x30]   // [V04 loc0+0x08]
+            str     xzr, [fp, #0x38]   // [V04 loc0+0x10]
+            str     x0, [fp, #0x58]    // [V00 this]
+            str     x1, [fp, #0x50]    // [V01 arg1]
+            str     x2, [fp, #0x48]    // [V02 arg2]
+            str     x3, [fp, #0x40]    // [V03 arg3]
+                       ;; size=36 bbWeight=1 PerfScore 8.50
 G_M26555_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            stp     xzr, xzr, [fp, #0x48]
-            str     wzr, [fp, #0x58]
-            ldr     x0, [fp, #0x78]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x28]    // [V07 tmp2]
-            ldr     x0, [fp, #0x70]    // [V01 arg1]
-            str     x0, [fp, #0x20]    // [V08 tmp3]
-            ldr     x0, [fp, #0x68]    // [V02 arg2]
-            str     x0, [fp, #0x18]    // [V09 tmp4]
-            ldr     x0, [fp, #0x60]    // [V03 arg3]
-            str     x0, [fp, #0x10]    // [V10 tmp5]
-            ldp     x0, x1, [fp, #0x48]
-            ; gcrRegs -[x0]
-            stp     x0, x1, [fp, #0x30]
-            ldr     w0, [fp, #0x58]
-            str     w0, [fp, #0x40]
-            ldr     x0, [fp, #0x28]    // [V07 tmp2]
-            ; gcrRegs +[x0]
-            ldr     x1, [fp, #0x20]    // [V08 tmp3]
+            stp     xzr, xzr, [fp, #0x28]
+            str     wzr, [fp, #0x38]
+            ldp     x1, x2, [fp, #0x28]
+            stp     x1, x2, [fp, #0x10]
+            ldr     w1, [fp, #0x38]
+            str     w1, [fp, #0x20]
+            add     x4, fp, #16    // [V06 tmp1]
+            ldr     x1, [fp, #0x50]    // [V01 arg1]
             ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x18]    // [V09 tmp4]
+            ldr     x2, [fp, #0x48]    // [V02 arg2]
             ; gcrRegs +[x2]
-            ldr     x3, [fp, #0x10]    // [V10 tmp5]
+            ldr     x3, [fp, #0x40]    // [V03 arg3]
             ; gcrRegs +[x3]
-            add     x4, fp, #48    // [V06 tmp1]
+            ldr     x0, [fp, #0x58]    // [V00 this]
+            ; gcrRegs +[x0]
             movz    x5, #0xD1FFAB1E      // code for <unknown method>
             movk    x5, #0xD1FFAB1E LSL #16
             movk    x5, #1 LSL #32
             ldr     x5, [x5]
             blr     x5
             ; gcrRegs -[x0-x3]
-                       ;; size=96 bbWeight=1 PerfScore 35.00
+                       ;; size=64 bbWeight=1 PerfScore 23.00
 G_M26555_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x80
+            ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 148, prolog size 28, PerfScore 46.50, instruction count 37, allocated bytes for code 148 (MethodHash=cefa9844) for method Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Tier0)
+; Total bytes of code 108, prolog size 20, PerfScore 33.50, instruction count 27, allocated bytes for code 108 (MethodHash=cefa9844) for method Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -81,7 +65,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
+  Function Length   : 27 (0x0001b) Actual length = 108 (0x00006c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -89,7 +73,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    8F          save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
+    8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
     E4          end
     E4          end
 

-40 (-27.03%) : 100887.dasm - Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Instrumented Tier0)

@@ -5,72 +5,56 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] this class-hnd <Xunit.Sdk.TestCollection>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITestAssembly>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITypeInfo>
-;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x60]  do-not-enreg[] class-hnd <System.String>
-;  V04 loc0         [V04    ] (  1,  1   )  struct (24) [fp+0x48]  do-not-enreg[S] must-init ld-addr-op <System.Nullable`1[System.Guid]>
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] this class-hnd <Xunit.Sdk.TestCollection>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITestAssembly>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x48]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITypeInfo>
+;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x40]  do-not-enreg[] class-hnd <System.String>
+;  V04 loc0         [V04    ] (  1,  1   )  struct (24) [fp+0x28]  do-not-enreg[S] must-init ld-addr-op <System.Nullable`1[System.Guid]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06    ] (  1,  1   )  struct (24) [fp+0x30]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Nullable`1[System.Guid]>
-;  V07 tmp2         [V07    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V08 tmp3         [V08    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp4         [V09    ] (  1,  1   )     ref  ->  [fp+0x18]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp5         [V10    ] (  1,  1   )     ref  ->  [fp+0x10]  do-not-enreg[] must-init "argument with side effect"
+;  V06 tmp1         [V06    ] (  1,  1   )  struct (24) [fp+0x10]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Nullable`1[System.Guid]>
 ;
-; Lcl frame size = 112
+; Lcl frame size = 80
 
 G_M26555_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x80]!
+            stp     fp, lr, [sp, #-0x60]!
             mov     fp, sp
-            add     x9, fp, #16
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     q16, q16, [x9, #0x20]
-            stp     xzr, xzr, [x9, #0x40]
-            str     x0, [fp, #0x78]    // [V00 this]
-            str     x1, [fp, #0x70]    // [V01 arg1]
-            str     x2, [fp, #0x68]    // [V02 arg2]
-            str     x3, [fp, #0x60]    // [V03 arg3]
-                       ;; size=44 bbWeight=1 PerfScore 9.50
+            str     xzr, [fp, #0x28]   // [V04 loc0]
+            str     xzr, [fp, #0x30]   // [V04 loc0+0x08]
+            str     xzr, [fp, #0x38]   // [V04 loc0+0x10]
+            str     x0, [fp, #0x58]    // [V00 this]
+            str     x1, [fp, #0x50]    // [V01 arg1]
+            str     x2, [fp, #0x48]    // [V02 arg2]
+            str     x3, [fp, #0x40]    // [V03 arg3]
+                       ;; size=36 bbWeight=1 PerfScore 8.50
 G_M26555_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            stp     xzr, xzr, [fp, #0x48]
-            str     wzr, [fp, #0x58]
-            ldr     x0, [fp, #0x78]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x28]    // [V07 tmp2]
-            ldr     x0, [fp, #0x70]    // [V01 arg1]
-            str     x0, [fp, #0x20]    // [V08 tmp3]
-            ldr     x0, [fp, #0x68]    // [V02 arg2]
-            str     x0, [fp, #0x18]    // [V09 tmp4]
-            ldr     x0, [fp, #0x60]    // [V03 arg3]
-            str     x0, [fp, #0x10]    // [V10 tmp5]
-            ldp     x0, x1, [fp, #0x48]
-            ; gcrRegs -[x0]
-            stp     x0, x1, [fp, #0x30]
-            ldr     w0, [fp, #0x58]
-            str     w0, [fp, #0x40]
-            ldr     x0, [fp, #0x28]    // [V07 tmp2]
-            ; gcrRegs +[x0]
-            ldr     x1, [fp, #0x20]    // [V08 tmp3]
+            stp     xzr, xzr, [fp, #0x28]
+            str     wzr, [fp, #0x38]
+            ldp     x1, x2, [fp, #0x28]
+            stp     x1, x2, [fp, #0x10]
+            ldr     w1, [fp, #0x38]
+            str     w1, [fp, #0x20]
+            add     x4, fp, #16    // [V06 tmp1]
+            ldr     x1, [fp, #0x50]    // [V01 arg1]
             ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x18]    // [V09 tmp4]
+            ldr     x2, [fp, #0x48]    // [V02 arg2]
             ; gcrRegs +[x2]
-            ldr     x3, [fp, #0x10]    // [V10 tmp5]
+            ldr     x3, [fp, #0x40]    // [V03 arg3]
             ; gcrRegs +[x3]
-            add     x4, fp, #48    // [V06 tmp1]
+            ldr     x0, [fp, #0x58]    // [V00 this]
+            ; gcrRegs +[x0]
             movz    x5, #0xD1FFAB1E      // code for <unknown method>
             movk    x5, #0xD1FFAB1E LSL #16
             movk    x5, #1 LSL #32
             ldr     x5, [x5]
             blr     x5
             ; gcrRegs -[x0-x3]
-                       ;; size=96 bbWeight=1 PerfScore 35.00
+                       ;; size=64 bbWeight=1 PerfScore 23.00
 G_M26555_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x80
+            ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 148, prolog size 28, PerfScore 46.50, instruction count 37, allocated bytes for code 148 (MethodHash=cefa9844) for method Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Instrumented Tier0)
+; Total bytes of code 108, prolog size 20, PerfScore 33.50, instruction count 27, allocated bytes for code 108 (MethodHash=cefa9844) for method Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Instrumented Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -81,7 +65,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
+  Function Length   : 27 (0x0001b) Actual length = 108 (0x00006c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -89,7 +73,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    8F          save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
+    8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
     E4          end
     E4          end
 

-44 (-26.83%) : 43213.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Instrumented Tier0)

@@ -5,69 +5,52 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
-;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x60]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x58]  do-not-enreg[]
-;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x54]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x48]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
+;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x40]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
+;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x38]  do-not-enreg[]
+;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x34]  do-not-enreg[]
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x38]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-;  V08 tmp2         [V08    ] (  1,  1   )     ref  ->  [fp+0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp3         [V09    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp4         [V10    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V11 tmp5         [V11    ] (  1,  1   )     ref  ->  [fp+0x18]  do-not-enreg[] must-init "argument with side effect"
+;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;
-; Lcl frame size = 112
+; Lcl frame size = 80
 
 G_M19554_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x80]!
+            stp     fp, lr, [sp, #-0x60]!
             mov     fp, sp
-            add     x9, fp, #24
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     xzr, xzr, [x9, #0x20]
-            str     xzr, [x9, #0x30]
-            str     x0, [fp, #0x78]    // [V00 this]
-            str     x1, [fp, #0x70]    // [V01 arg1]
-            str     x2, [fp, #0x68]    // [V02 arg2]
-            str     x3, [fp, #0x60]    // [V03 arg3]
-            str     x4, [fp, #0x58]    // [V04 arg4]
-            str     w5, [fp, #0x54]    // [V05 arg5]
-                       ;; size=52 bbWeight=1 PerfScore 11.50
+            str     xzr, [fp, #0x18]   // [V07 tmp1]
+            str     xzr, [fp, #0x20]   // [V07 tmp1+0x08]
+            str     x0, [fp, #0x58]    // [V00 this]
+            str     x1, [fp, #0x50]    // [V01 arg1]
+            str     x2, [fp, #0x48]    // [V02 arg2]
+            str     x3, [fp, #0x40]    // [V03 arg3]
+            str     x4, [fp, #0x38]    // [V04 arg4]
+            str     w5, [fp, #0x34]    // [V05 arg5]
+                       ;; size=40 bbWeight=1 PerfScore 9.50
 G_M19554_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x78]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x30]    // [V08 tmp2]
-            ldr     x0, [fp, #0x70]    // [V01 arg1]
-            str     x0, [fp, #0x28]    // [V09 tmp3]
-            ldr     x0, [fp, #0x68]    // [V02 arg2]
-            str     x0, [fp, #0x20]    // [V10 tmp4]
-            ldr     x0, [fp, #0x60]    // [V03 arg3]
-            str     x0, [fp, #0x18]    // [V11 tmp5]
-            ldr     x0, [fp, #0x58]    // [V04 arg4]
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-                       ;; size=36 bbWeight=1 PerfScore 14.00
+            ldr     x5, [fp, #0x38]    // [V04 arg4]
+            ; byrRegs +[x5]
+                       ;; size=4 bbWeight=1 PerfScore 2.00
 G_M19554_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x1, x2, [x0]
-            stp     x1, x2, [fp, #0x38]
-            ldr     x1, [x0, #0x10]
-            str     x1, [fp, #0x48]
+            ldp     x1, x6, [x5]
+            stp     x1, x6, [fp, #0x18]
+            ldr     x1, [x5, #0x10]
+            str     x1, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M19554_IG04:        ; bbWeight=1, extend
-            ldr     x0, [fp, #0x30]    // [V08 tmp2]
-            ; gcrRegs +[x0]
-            ; byrRegs -[x0]
-            ldr     x1, [fp, #0x28]    // [V09 tmp3]
-            ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x20]    // [V10 tmp4]
-            ; gcrRegs +[x2]
-            ldr     x4, [fp, #0x18]    // [V11 tmp5]
-            ; gcrRegs +[x4]
-            add     x5, fp, #56    // [V07 tmp1]
-            ldr     w6, [fp, #0x54]    // [V05 arg5]
+            add     x5, fp, #24    // [V07 tmp1]
+            ; byrRegs -[x5]
+            ldr     w6, [fp, #0x34]    // [V05 arg5]
             uxtb    w6, w6
+            ldr     x1, [fp, #0x50]    // [V01 arg1]
+            ; gcrRegs +[x1]
+            ldr     x2, [fp, #0x48]    // [V02 arg2]
+            ; gcrRegs +[x2]
+            ldr     x4, [fp, #0x40]    // [V03 arg3]
+            ; gcrRegs +[x4]
+            ldr     x0, [fp, #0x58]    // [V00 this]
+            ; gcrRegs +[x0]
             mov     x3, xzr
             movz    x7, #0xD1FFAB1E      // code for <unknown method>
             movk    x7, #0xD1FFAB1E LSL #16
@@ -77,11 +60,11 @@ G_M19554_IG04:        ; bbWeight=1, extend
             ; gcrRegs -[x0-x2 x4]
                        ;; size=52 bbWeight=1 PerfScore 17.00
 G_M19554_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x80
+            ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 164, prolog size 28, PerfScore 53.50, instruction count 41, allocated bytes for code 164 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Instrumented Tier0)
+; Total bytes of code 120, prolog size 16, PerfScore 39.50, instruction count 30, allocated bytes for code 120 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Instrumented Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -92,7 +75,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
+  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -100,7 +83,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    8F          save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
+    8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
     E4          end
     E4          end
 

+4 (+5.88%) : 66450.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+WriteLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)

@@ -9,44 +9,44 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] (  3,  3   )   byref  ->   x0         this single-def
-;  V01 arg1         [V01,T00] (  5,  5   )     ref  ->   x1         class-hnd single-def <System.Threading.ReaderWriterLockSlim>
+;  V01 arg1         [V01,T00] (  5,  5   )     ref  ->   x2         class-hnd single-def <System.Threading.ReaderWriterLockSlim>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;* V04 tmp2         [V04,T04] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V05 tmp3         [V05,T05] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04,T03] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
+;* V05 tmp3         [V05,T04] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V06 tmp4         [V06    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;* V07 tmp5         [V07,T06] (  0,  0   )     int  ->  zero-ref    "field V03._total (fldOffset=0x0)" P-INDEP
-;* V08 tmp6         [V08,T07] (  0,  0   )     int  ->  zero-ref    "field V03._start (fldOffset=0x4)" P-INDEP
+;* V07 tmp5         [V07,T05] (  0,  0   )     int  ->  zero-ref    "field V03._total (fldOffset=0x0)" P-INDEP
+;* V08 tmp6         [V08,T06] (  0,  0   )     int  ->  zero-ref    "field V03._start (fldOffset=0x4)" P-INDEP
 ;* V09 tmp7         [V09    ] (  0,  0   )     int  ->  zero-ref    "field V06._total (fldOffset=0x0)" P-INDEP
 ;* V10 tmp8         [V10    ] (  0,  0   )     int  ->  zero-ref    "field V06._start (fldOffset=0x4)" P-INDEP
 ;* V11 tmp9         [V11    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;  V12 tmp10        [V12,T01] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;  V13 tmp11        [V13,T03] (  2,  4   )     ref  ->   x0         single-def "argument with side effect"
 ;
 ; Lcl frame size = 16
 
 G_M47585_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M47585_IG02:        ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0001 {x0}, byref
-            ; gcrRegs +[x1]
+            mov     x2, x1
+            ; gcrRegs +[x2]
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M47585_IG02:        ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref
             ; byrRegs +[x0]
             mov     x14, x0
             ; byrRegs +[x14]
-            mov     x15, x1
+            mov     x15, x2
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_CHECKED_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x0 x14]
-            ldrsb   wzr, [x1]
-            mov     x0, x1
-            ; gcrRegs +[x0]
+            ldrsb   wzr, [x2]
             movn    w1, #0
-            ; gcrRegs -[x1]
             stp     w1, wzr, [fp, #0x18]   // [V12 tmp10], [V12 tmp10+0x04]
             ldr     x1, [fp, #0x18]    // [V12 tmp10]
+            mov     x0, x2
+            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            ; gcrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
@@ -58,7 +58,7 @@ G_M47585_IG03:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 68, prolog size 8, PerfScore 18.00, instruction count 17, allocated bytes for code 68 (MethodHash=d7ac461e) for method Roslyn.Utilities.ReaderWriterLockSlimExtensions+WriteLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
+; Total bytes of code 72, prolog size 8, PerfScore 18.50, instruction count 18, allocated bytes for code 72 (MethodHash=d7ac461e) for method Roslyn.Utilities.ReaderWriterLockSlimExtensions+WriteLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -69,7 +69,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 17 (0x00011) Actual length = 68 (0x000044)
+  Function Length   : 18 (0x00012) Actual length = 72 (0x000048)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+6.67%) : 605957.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:g_visitArgumentsAndUpdateCall|101(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)

@@ -7,9 +7,9 @@
 ; 1 inlinees with PGO data; 16 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  4,  3.48)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
-;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
-;  V02 arg2         [V02,T03] (  3,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+;  V00 this         [V00,T01] (  4,  3.48)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
+;  V01 arg1         [V01,T00] ( 16, 16   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
+;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (48) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -27,7 +27,7 @@
 ;* V17 tmp12        [V17    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
 ;* V18 tmp13        [V18    ] (  0,  0   )  struct ( 8) zero-ref    single-def "Inline return value spill temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V19 tmp14        [V19    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V20 tmp15        [V20,T04] (  2,  4   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V20 tmp15        [V20,T03] (  2,  4   )     ref  ->   x2         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V21 tmp16        [V21    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V03.array (fldOffset=0x0)" P-INDEP
 ;* V22 tmp17        [V22    ] (  0,  0   )     ref  ->  zero-ref    "field V06.array (fldOffset=0x0)" P-INDEP
 ;* V23 tmp18        [V23    ] (  0,  0   )     ref  ->  zero-ref    "field V09.array (fldOffset=0x0)" P-INDEP
@@ -37,31 +37,28 @@
 ;* V27 tmp22        [V27    ] (  0,  0   )    long  ->  zero-ref    "field V15._bits0 (fldOffset=0x8)" P-INDEP
 ;* V28 tmp23        [V28    ] (  0,  0   )     int  ->  zero-ref    "field V15._capacity (fldOffset=0x10)" P-INDEP
 ;* V29 tmp24        [V29    ] (  0,  0   )     ref  ->  zero-ref    "field V17.array (fldOffset=0x0)" P-INDEP
-;  V30 tmp25        [V30,T16] (  3,  1.50)     ref  ->  x22         single-def "field V18.array (fldOffset=0x0)" P-INDEP
-;  V31 tmp26        [V31,T15] (  3,  2.48)     ref  ->   x2         single-def "field V19.array (fldOffset=0x0)" P-INDEP
-;  V32 tmp27        [V32    ] (  2,  4   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
-;  V33 tmp28        [V33,T00] ( 13, 26   )     ref  ->  x19         single-def "argument with side effect"
-;  V34 tmp29        [V34,T05] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V35 tmp30        [V35,T11] (  2,  4   )     int  ->   x2         "argument with side effect"
-;  V36 tmp31        [V36,T06] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V37 tmp32        [V37,T07] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
-;  V38 tmp33        [V38,T08] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
-;  V39 tmp34        [V39,T09] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
-;  V40 tmp35        [V40,T12] (  2,  4   )     int  ->   x7         "argument with side effect"
-;  V41 tmp36        [V41,T13] (  2,  4   )     int  ->   x8         "argument with side effect"
-;  V42 tmp37        [V42,T14] (  2,  4   )     int  ->   x9         "argument with side effect"
-;  V43 tmp38        [V43,T10] (  2,  4   )     ref  ->  x10         single-def "argument with side effect"
+;  V30 tmp25        [V30,T13] (  3,  1.50)     ref  ->   x4         single-def "field V18.array (fldOffset=0x0)" P-INDEP
+;  V31 tmp26        [V31,T12] (  3,  2.48)     ref  ->   x2         single-def "field V19.array (fldOffset=0x0)" P-INDEP
+;  V32 tmp27        [V32    ] (  2,  4   )  struct (24) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
+;  V33 tmp28        [V33,T08] (  2,  4   )     int  ->   x3         "argument with side effect"
+;  V34 tmp29        [V34,T04] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
+;  V35 tmp30        [V35,T05] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
+;  V36 tmp31        [V36,T06] (  2,  4   )     ref  ->   x7         single-def "argument with side effect"
+;  V37 tmp32        [V37,T09] (  2,  4   )     int  ->   x1         "argument with side effect"
+;  V38 tmp33        [V38,T10] (  2,  4   )     int  ->   x0         "argument with side effect"
+;  V39 tmp34        [V39,T11] (  2,  4   )     int  ->   x8         "argument with side effect"
+;  V40 tmp35        [V40,T07] (  2,  4   )     ref  ->   x9         single-def "argument with side effect"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 72
 
 G_M26558_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            sub     sp, sp, #128
+            sub     sp, sp, #112
             stp     fp, lr, [sp, #0x30]
-            stp     x19, x20, [sp, #0x60]
-            stp     x21, x22, [sp, #0x70]
+            stp     x19, x20, [sp, #0x58]
+            str     x21, [sp, #0x68]
             add     fp, sp, #48
-            stp     xzr, xzr, [fp, #0x18]  // [V32 tmp27], [V32 tmp27+0x08]
-            str     xzr, [fp, #0x28]   // [V32 tmp27+0x10]
+            stp     xzr, xzr, [fp, #0x10]  // [V32 tmp27], [V32 tmp27+0x08]
+            str     xzr, [fp, #0x20]   // [V32 tmp27+0x10]
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     x19, x1
@@ -86,81 +83,88 @@ G_M26558_IG03:        ; bbWeight=0.48, gcrefRegs=380004 {x2 x19 x20 x21}, byrefR
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs -[x2]
-            mov     x22, x0
-            ; gcrRegs +[x22]
-                       ;; size=40 bbWeight=0.48 PerfScore 3.83
-G_M26558_IG04:        ; bbWeight=1, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            ldr     x0, [x19, #0x18]
-            ; gcrRegs +[x0]
-            ldrsb   wzr, [x20]
-            mov     x1, x21
-            ; gcrRegs +[x1]
-            ldrb    w2, [x19, #0x30]
-            ldr     x3, [x19, #0x28]
-            ; gcrRegs +[x3]
-            mov     x4, x22
+            mov     x4, x0
             ; gcrRegs +[x4]
-            ldp     x5, x6, [x19, #0x40]
-            ; gcrRegs +[x5-x6]
-            ldrb    w7, [x19, #0x31]
-            ldrb    w8, [x19, #0x32]
-            ldrb    w9, [x19, #0x33]
-            ldr     x10, [x19, #0x50]
-            ; gcrRegs +[x10]
-                       ;; size=44 bbWeight=1 PerfScore 29.00
+                       ;; size=40 bbWeight=0.48 PerfScore 3.83
+G_M26558_IG04:        ; bbWeight=1, gcrefRegs=380010 {x4 x19 x20 x21}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0]
+            ldr     x2, [x19, #0x18]
+            ; gcrRegs +[x2]
+            ldrsb   wzr, [x20]
+            ldrb    w3, [x19, #0x30]
+            ldr     x5, [x19, #0x28]
+            ; gcrRegs +[x5]
+            ldp     x6, x7, [x19, #0x40]
+            ; gcrRegs +[x6-x7]
+            ldrb    w1, [x19, #0x31]
+            ldrb    w0, [x19, #0x32]
+            ldrb    w8, [x19, #0x33]
+            ldr     x9, [x19, #0x50]
+            ; gcrRegs +[x9]
+                       ;; size=36 bbWeight=1 PerfScore 28.00
 G_M26558_IG05:        ; bbWeight=1, nogc, extend
-            ldp     x11, x13, [x19, #0x58]
-            stp     x11, x13, [fp, #0x18]
-            ldr     x11, [x19, #0x68]
-            str     x11, [fp, #0x28]
+            ldp     x10, x11, [x19, #0x58]
+            stp     x10, x11, [fp, #0x10]
+            ldr     x10, [x19, #0x68]
+            str     x10, [fp, #0x20]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M26558_IG06:        ; bbWeight=1, extend
-            ldrb    w11, [x19, #0x34]
-            strb    w11, [sp, #0x18]   // [V05 OutArgs+0x18]
-            ldr     x11, [x19, #0x70]
-            ; gcrRegs +[x11]
-            str     x11, [sp, #0x20]   // [V05 OutArgs+0x20]
-            str     x0, [sp, #0x28]    // [V05 OutArgs+0x28]
+            ldrb    w10, [x19, #0x34]
+            strb    w10, [sp, #0x18]   // [V05 OutArgs+0x18]
+            ldr     x10, [x19, #0x70]
+            ; gcrRegs +[x10]
+            str     x10, [sp, #0x20]   // [V05 OutArgs+0x20]
+            str     x2, [sp, #0x28]    // [V05 OutArgs+0x28]
+            mov     w2, w3
+            ; gcrRegs -[x2]
+            mov     x3, x5
+            ; gcrRegs +[x3]
+            mov     x5, x6
+            mov     x6, x7
+            mov     w7, w1
+            ; gcrRegs -[x7]
+            strb    w0, [sp]   // [V05 OutArgs]
+            strb    w8, [sp, #0x01]    // [V05 OutArgs+0x01]
+            str     x9, [sp, #0x08]    // [V05 OutArgs+0x08]
+            add     x1, fp, #16    // [V32 tmp27]
+            str     x1, [sp, #0x10]    // [V05 OutArgs+0x10]
+            mov     x1, x21
+            ; gcrRegs +[x1]
             mov     x0, x19
-            strb    w8, [sp]   // [V05 OutArgs]
-            strb    w9, [sp, #0x01]    // [V05 OutArgs+0x01]
-            str     x10, [sp, #0x08]   // [V05 OutArgs+0x08]
-            add     x8, fp, #24    // [V32 tmp27]
-            str     x8, [sp, #0x10]    // [V05 OutArgs+0x10]
+            ; gcrRegs +[x0]
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
             movk    x8, #0xD1FFAB1E LSL #16
             movk    x8, #1 LSL #32
             ldr     x8, [x8]
             blr     x8
-            ; gcrRegs -[x1 x3-x6 x10-x11 x19-x22]
-                       ;; size=64 bbWeight=1 PerfScore 19.50
+            ; gcrRegs -[x1 x3-x6 x9-x10 x19-x21]
+                       ;; size=88 bbWeight=1 PerfScore 22.50
 G_M26558_IG07:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x70]
-            ldp     x19, x20, [sp, #0x60]
+            ldr     x21, [sp, #0x68]
+            ldp     x19, x20, [sp, #0x58]
             ldp     fp, lr, [sp, #0x30]
-            add     sp, sp, #128
+            add     sp, sp, #112
             ret     lr
-                       ;; size=20 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 5.50
 G_M26558_IG08:        ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0] +[x19-x21]
-            mov     x22, xzr
-            ; gcrRegs +[x22]
+            mov     x4, xzr
+            ; gcrRegs +[x4]
             b       G_M26558_IG04
                        ;; size=8 bbWeight=0.02 PerfScore 0.03
 
-; Total bytes of code 240, prolog size 28, PerfScore 77.36, instruction count 60, allocated bytes for code 240 (MethodHash=faef9841) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
+; Total bytes of code 256, prolog size 28, PerfScore 80.36, instruction count 64, allocated bytes for code 256 (MethodHash=faef9841) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 3
   Epilog Count      : 1
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 60 (0x0003c) Actual length = 240 (0x0000f0)
+  Function Length   : 64 (0x00040) Actual length = 256 (0x000100)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -168,9 +172,12 @@ Unwind Info:
   ---- Unwind codes ----
     E2 06       add_fp 6 (0x06); add fp, sp, #48
     ---- Epilog start at index 2 ----
-    E6          save_next
-    C8 0C       save_regp X#0 Z#12 (0x0C); stp x19, x20, [sp, #96]
+    D0 8D       save_reg X#2 Z#13 (0x0D); str x21, [sp, #104]
+    C8 0B       save_regp X#0 Z#11 (0x0B); stp x19, x20, [sp, #88]
     46          save_fplr #6 (0x06); stp fp, lr, [sp, #48]
-    08          alloc_s #8 (0x08); sub sp, sp, #128 (0x080)
+    07          alloc_s #7 (0x07); sub sp, sp, #112 (0x070)
+    E4          end
+    E4          end
+    E4          end
     E4          end
 

+4 (+6.67%) : 610471.dasm - Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (Tier1)

@@ -8,29 +8,30 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Microsoft.Cci.MetadataWriter>
-;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.Cci.ITypeDefinition>
+;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.Cci.ITypeDefinition>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03    ] (  2,  4   )  struct (48) [fp+0x10]  do-not-enreg[XS] addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.Emit.EmitContext>
-;  V04 tmp2         [V04,T02] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
 ;
 ; Lcl frame size = 48
 
 G_M23091_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M23091_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, nogc
-            ; gcrRegs +[x0-x1]
+            mov     x2, x1
+            ; gcrRegs +[x2]
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M23091_IG02:        ; bbWeight=1, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref, nogc
+            ; gcrRegs +[x0]
             ldp     q16, q17, [x0, #0xD0]
             stp     q16, q17, [fp, #0x10]
             ldr     q16, [x0, #0xF0]
             str     q16, [fp, #0x30]
                        ;; size=16 bbWeight=1 PerfScore 8.00
 G_M23091_IG03:        ; bbWeight=1, extend
-            mov     x0, x1
             add     x1, fp, #16    // [V03 tmp1]
-            ; gcrRegs -[x1]
+            mov     x0, x2
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            ; gcrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
@@ -42,7 +43,7 @@ G_M23091_IG04:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 60, prolog size 8, PerfScore 18.00, instruction count 15, allocated bytes for code 60 (MethodHash=af30a5cc) for method Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (Tier1)
+; Total bytes of code 64, prolog size 8, PerfScore 18.50, instruction count 16, allocated bytes for code 64 (MethodHash=af30a5cc) for method Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +54,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
+  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

librariestestsnotieredcompilation.run.osx.arm64.Release.mch

-32 (-27.59%) : 114464.dasm - System.Formats.Asn1.Tests.Reader.OverlappedReads:g_Method|30(System.ReadOnlySpan1[ubyte],System.Span1[ubyte],int,byref,byref):ubyte (FullOpts)

@@ -10,58 +10,45 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[ubyte]>
-;  V02 arg2         [V02,T04] (  3,  3   )     int  ->   x4         single-def
-;  V03 arg3         [V03,T02] (  3,  3   )   byref  ->   x7         single-def
-;  V04 arg4         [V04,T03] (  3,  3   )   byref  ->   x8         single-def
+;  V02 arg2         [V02,T02] (  3,  3   )     int  ->   x4         single-def
+;  V03 arg3         [V03,T00] (  3,  3   )   byref  ->   x7         single-def
+;  V04 arg4         [V04,T01] (  3,  3   )   byref  ->   x8         single-def
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06    ] (  3,  6   )  struct ( 8) [fp+0x38]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.Formats.Asn1.Asn1Tag>
+;  V06 tmp1         [V06    ] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.Formats.Asn1.Asn1Tag>
 ;* V07 tmp2         [V07    ] (  0,  0   )   byref  ->  zero-ref   
-;  V08 tmp3         [V08,T11] (  3,  3   )   byref  ->   x5         single-def
+;  V08 tmp3         [V08,T08] (  3,  3   )   byref  ->   x5         single-def
 ;* V09 tmp4         [V09    ] (  0,  0   )     int  ->  zero-ref   
 ;* V10 tmp5         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V11 tmp6         [V11,T05] (  2,  2   )   byref  ->   x0         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V12 tmp7         [V12,T07] (  2,  2   )     int  ->   x1         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V13 tmp8         [V13,T06] (  2,  2   )   byref  ->   x2         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V14 tmp9         [V14,T08] (  2,  2   )     int  ->   x3         single-def "field V01._length (fldOffset=0x8)" P-INDEP
-;  V15 tmp10        [V15    ] (  3,  6   )   ubyte  ->  [fp+0x38]  do-not-enreg[X] addr-exposed "field V06._controlFlags (fldOffset=0x0)" P-DEP
-;  V16 tmp11        [V16    ] (  3,  6   )     int  ->  [fp+0x3C]  do-not-enreg[X] addr-exposed "field V06.<TagValue>k__BackingField (fldOffset=0x4)" P-DEP
-;  V17 tmp12        [V17,T09] (  2,  4   )  struct ( 8) [fp+0x30]  do-not-enreg[S] "by-value struct argument" <System.Formats.Asn1.Asn1Tag>
-;  V18 tmp13        [V18,T00] (  4,  8   )  struct (16) [fp+0x20]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.ReadOnlySpan`1[ubyte]>
-;  V19 tmp14        [V19,T01] (  4,  8   )  struct (16) [fp+0x10]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.Span`1[ubyte]>
-;  V20 tmp15        [V20,T10] (  2,  4   )     int  ->   x4         "argument with side effect"
+;  V11 tmp6         [V11,T03] (  2,  2   )   byref  ->   x0         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V12 tmp7         [V12,T05] (  2,  2   )     int  ->   x1         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V13 tmp8         [V13,T04] (  2,  2   )   byref  ->   x2         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V14 tmp9         [V14,T06] (  2,  2   )     int  ->   x3         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V15 tmp10        [V15    ] (  3,  6   )   ubyte  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V06._controlFlags (fldOffset=0x0)" P-DEP
+;  V16 tmp11        [V16    ] (  3,  6   )     int  ->  [fp+0x1C]  do-not-enreg[X] addr-exposed "field V06.<TagValue>k__BackingField (fldOffset=0x4)" P-DEP
+;  V17 tmp12        [V17,T07] (  2,  4   )  struct ( 8) [fp+0x10]  do-not-enreg[S] "by-value struct argument" <System.Formats.Asn1.Asn1Tag>
 ;
-; Lcl frame size = 48
+; Lcl frame size = 16
 
 G_M25606_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-            str     xzr, [fp, #0x20]   // [V18 tmp13]
-            str     xzr, [fp, #0x10]   // [V19 tmp14]
             mov     x7, x5
             ; byrRegs +[x7]
             mov     x8, x6
             ; byrRegs +[x8]
-                       ;; size=24 bbWeight=1 PerfScore 4.50
+                       ;; size=16 bbWeight=1 PerfScore 2.50
 G_M25606_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0185 {x0 x2 x7 x8}, byref
             ; byrRegs +[x0 x2]
-            str     xzr, [fp, #0x38]   // [V06 tmp1]
-            add     x5, fp, #56    // [V06 tmp1]
+            str     xzr, [fp, #0x18]   // [V06 tmp1]
+            add     x5, fp, #24    // [V06 tmp1]
             ; byrRegs +[x5]
             strb    wzr, [x5]
             mov     w6, #12
             str     w6, [x5, #0x04]
-            str     x0, [fp, #0x20]    // [V18 tmp13]
-            str     w1, [fp, #0x28]    // [V18 tmp13+0x08]
-            str     x2, [fp, #0x10]    // [V19 tmp14]
-            str     w3, [fp, #0x18]    // [V19 tmp14+0x08]
-            ldr     x0, [fp, #0x38]    // [V06 tmp1]
-            ; byrRegs -[x0]
-            str     x0, [fp, #0x30]    // [V17 tmp12]
-            ldp     x0, x1, [fp, #0x20]    // [V18 tmp13], [V18 tmp13+0x08]
-            ; byrRegs +[x0]
-            ldp     x2, x3, [fp, #0x10]    // [V19 tmp14], [V19 tmp14+0x08]
-            ldr     x5, [fp, #0x30]    // [V17 tmp12]
+            ldr     x5, [fp, #0x18]    // [V06 tmp1]
             ; byrRegs -[x5]
+            str     x5, [fp, #0x10]    // [V17 tmp12]
+            ldr     x5, [fp, #0x10]    // [V17 tmp12]
             mov     x6, x7
             ; byrRegs +[x6]
             mov     x7, x8
@@ -72,13 +59,13 @@ G_M25606_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0185 {x0 x2 x7
             ldr     x8, [x8]
             blr     x8
             ; byrRegs -[x0 x2 x6-x7]
-                       ;; size=84 bbWeight=1 PerfScore 25.50
+                       ;; size=60 bbWeight=1 PerfScore 15.50
 G_M25606_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x40
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 116, prolog size 16, PerfScore 32.00, instruction count 29, allocated bytes for code 116 (MethodHash=7f649bf9) for method System.Formats.Asn1.Tests.Reader.OverlappedReads:<NoOverlappedTextStrings>g__Method|3_0(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref,byref):ubyte (FullOpts)
+; Total bytes of code 84, prolog size 8, PerfScore 20.00, instruction count 21, allocated bytes for code 84 (MethodHash=7f649bf9) for method System.Formats.Asn1.Tests.Reader.OverlappedReads:<NoOverlappedTextStrings>g__Method|3_0(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref,byref):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -89,7 +76,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
+  Function Length   : 21 (0x00015) Actual length = 84 (0x000054)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -97,7 +84,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

-28 (-16.67%) : 263246.dasm - System.Text.Json.Tests.JsonDocumentTests+<>cDisplayClass88_0:b0():System.Object:this (FullOpts)

@@ -8,32 +8,30 @@
 ; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] (  3,  3   )     ref  ->   x0         this class-hnd single-def <System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass88_0>
+;  V00 this         [V00,T05] (  3,  3   )     ref  ->   x0         this class-hnd single-def <System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass88_0>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Text.Json.JsonDocumentOptions>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "impAppendStmt" <System.String>
+;  V03 tmp1         [V03,T01] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "impAppendStmt" <System.String>
 ;* V04 tmp2         [V04    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Text.Json.JsonDocumentOptions>
-;  V05 tmp3         [V05    ] (  4,  8   )  struct (16) [fp+0x30]  do-not-enreg[SBR] multireg-ret must-init single-def "spilled call-like call argument" <System.ReadOnlyMemory`1[ushort]>
-;* V06 tmp4         [V06,T07] (  0,  0   )     int  ->  zero-ref    single-def "field V01._maxDepth (fldOffset=0x0)" P-INDEP
-;* V07 tmp5         [V07,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01._commentHandling (fldOffset=0x4)" P-INDEP
-;* V08 tmp6         [V08,T09] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
+;  V05 tmp3         [V05    ] (  3,  6   )  struct (16) [fp+0x20]  do-not-enreg[SFAR] multireg-arg multireg-ret must-init "spilled call-like call argument" <System.ReadOnlyMemory`1[ushort]>
+;* V06 tmp4         [V06,T06] (  0,  0   )     int  ->  zero-ref    single-def "field V01._maxDepth (fldOffset=0x0)" P-INDEP
+;* V07 tmp5         [V07,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01._commentHandling (fldOffset=0x4)" P-INDEP
+;* V08 tmp6         [V08,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
 ;* V09 tmp7         [V09    ] (  0,  0   )     int  ->  zero-ref    single-def "field V04._maxDepth (fldOffset=0x0)" P-INDEP
 ;* V10 tmp8         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V04._commentHandling (fldOffset=0x4)" P-INDEP
 ;* V11 tmp9         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V04.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
-;  V12 tmp10        [V12,T04] (  2,  3   )     ref  ->  [fp+0x30]  do-not-enreg[] "field V05._object (fldOffset=0x0)" P-DEP
-;  V13 tmp11        [V13,T05] (  2,  3   )     int  ->  [fp+0x38]  do-not-enreg[] "field V05._index (fldOffset=0x8)" P-DEP
-;  V14 tmp12        [V14,T06] (  2,  3   )     int  ->  [fp+0x3C]  do-not-enreg[] "field V05._length (fldOffset=0xc)" P-DEP
-;  V15 tmp13        [V15,T01] (  4,  8   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Text.Json.JsonDocumentOptions>
-;  V16 tmp14        [V16,T00] (  5, 10   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.ReadOnlyMemory`1[ushort]>
+;  V12 tmp10        [V12,T02] (  3,  6   )     ref  ->  [fp+0x20]  do-not-enreg[] "field V05._object (fldOffset=0x0)" P-DEP
+;  V13 tmp11        [V13,T03] (  3,  6   )     int  ->  [fp+0x28]  do-not-enreg[] "field V05._index (fldOffset=0x8)" P-DEP
+;  V14 tmp12        [V14,T04] (  3,  6   )     int  ->  [fp+0x2C]  do-not-enreg[] "field V05._length (fldOffset=0xc)" P-DEP
+;  V15 tmp13        [V15,T00] (  4,  8   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Text.Json.JsonDocumentOptions>
 ;
-; Lcl frame size = 48
+; Lcl frame size = 32
 
 G_M21463_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
+            stp     fp, lr, [sp, #-0x30]!
             mov     fp, sp
-            stp     xzr, xzr, [fp, #0x30]  // [V05 tmp3], [V05 tmp3+0x08]
-            stp     xzr, xzr, [fp, #0x18]  // [V16 tmp14], [V16 tmp14+0x08]
-                       ;; size=16 bbWeight=1 PerfScore 3.50
+            stp     xzr, xzr, [fp, #0x20]  // [V05 tmp3], [V05 tmp3+0x08]
+                       ;; size=12 bbWeight=1 PerfScore 2.50
 G_M21463_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
             ldr     x0, [x0, #0x08]
@@ -43,29 +41,21 @@ G_M21463_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             movk    x1, #1 LSL #32
             ldr     x1, [x1]
             blr     x1
-            stp     x0, x1, [fp, #0x30]    // [V05 tmp3], [V05 tmp3+0x08]
-            ldr     x0, [fp, #0x30]    // [V12 tmp10]
-            str     x0, [fp, #0x18]    // [V16 tmp14]
-            ldr     w0, [fp, #0x38]    // [V13 tmp11]
-            ; gcrRegs -[x0]
-            str     w0, [fp, #0x20]    // [V16 tmp14+0x08]
-            ldr     w0, [fp, #0x3C]    // [V14 tmp12]
-            str     w0, [fp, #0x24]    // [V16 tmp14+0x0c]
-            mov     w0, #32
-            str     w0, [fp, #0x28]    // [V15 tmp13]
-            strb    wzr, [fp, #0x2C]   // [V15 tmp13+0x04]
-            strb    wzr, [fp, #0x2D]   // [V15 tmp13+0x05]
-            ldp     x0, x1, [fp, #0x18]    // [V16 tmp14], [V16 tmp14+0x08]
-            ; gcrRegs +[x0]
-            ldr     x2, [fp, #0x28]    // [V15 tmp13]
+            stp     x0, x1, [fp, #0x20]    // [V05 tmp3], [V05 tmp3+0x08]
+            mov     w2, #32
+            str     w2, [fp, #0x18]    // [V15 tmp13]
+            strb    wzr, [fp, #0x1C]   // [V15 tmp13+0x04]
+            strb    wzr, [fp, #0x1D]   // [V15 tmp13+0x05]
+            ldp     x2, x0, [fp, #0x18]    // [V15 tmp13], [V05 tmp3]
+            ldr     x1, [fp, #0x28]    // [V05 tmp3+0x08]
             movz    x3, #0xD1FFAB1E      // code for <unknown method>
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
             ldr     x3, [x3]
             blr     x3
-                       ;; size=100 bbWeight=1 PerfScore 33.50
+                       ;; size=76 bbWeight=1 PerfScore 24.50
 G_M21463_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x40
+            ldp     fp, lr, [sp], #0x30
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 G_M21463_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
@@ -85,7 +75,7 @@ G_M21463_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_unix #0
                        ;; size=44 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 168, prolog size 16, PerfScore 39.00, instruction count 42, allocated bytes for code 168 (MethodHash=64cbac28) for method System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass88_0:<HonorReaderOptionsMaxDepth>b__0():System.Object:this (FullOpts)
+; Total bytes of code 140, prolog size 12, PerfScore 29.00, instruction count 35, allocated bytes for code 140 (MethodHash=64cbac28) for method System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass88_0:<HonorReaderOptionsMaxDepth>b__0():System.Object:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -96,7 +86,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 42 (0x0002a) Actual length = 168 (0x0000a8)
+  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -104,7 +94,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
     E4          end
     E4          end
 

-28 (-16.67%) : 263250.dasm - System.Text.Json.Tests.JsonDocumentTests+<>cDisplayClass88_0:b3():System.Object:this (FullOpts)

@@ -8,32 +8,30 @@
 ; 0 inlinees with PGO data; 0 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] (  3,  3   )     ref  ->   x0         this class-hnd single-def <System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass88_0>
+;  V00 this         [V00,T05] (  3,  3   )     ref  ->   x0         this class-hnd single-def <System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass88_0>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Text.Json.JsonDocumentOptions>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "impAppendStmt" <System.String>
+;  V03 tmp1         [V03,T01] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "impAppendStmt" <System.String>
 ;* V04 tmp2         [V04    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Text.Json.JsonDocumentOptions>
-;  V05 tmp3         [V05    ] (  4,  8   )  struct (16) [fp+0x30]  do-not-enreg[SBR] multireg-ret must-init single-def "spilled call-like call argument" <System.ReadOnlyMemory`1[ushort]>
-;* V06 tmp4         [V06,T07] (  0,  0   )     int  ->  zero-ref    single-def "field V01._maxDepth (fldOffset=0x0)" P-INDEP
-;* V07 tmp5         [V07,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01._commentHandling (fldOffset=0x4)" P-INDEP
-;* V08 tmp6         [V08,T09] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
+;  V05 tmp3         [V05    ] (  3,  6   )  struct (16) [fp+0x20]  do-not-enreg[SFAR] multireg-arg multireg-ret must-init "spilled call-like call argument" <System.ReadOnlyMemory`1[ushort]>
+;* V06 tmp4         [V06,T06] (  0,  0   )     int  ->  zero-ref    single-def "field V01._maxDepth (fldOffset=0x0)" P-INDEP
+;* V07 tmp5         [V07,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01._commentHandling (fldOffset=0x4)" P-INDEP
+;* V08 tmp6         [V08,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
 ;* V09 tmp7         [V09    ] (  0,  0   )     int  ->  zero-ref    single-def "field V04._maxDepth (fldOffset=0x0)" P-INDEP
 ;* V10 tmp8         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V04._commentHandling (fldOffset=0x4)" P-INDEP
 ;* V11 tmp9         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V04.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
-;  V12 tmp10        [V12,T04] (  2,  3   )     ref  ->  [fp+0x30]  do-not-enreg[] "field V05._object (fldOffset=0x0)" P-DEP
-;  V13 tmp11        [V13,T05] (  2,  3   )     int  ->  [fp+0x38]  do-not-enreg[] "field V05._index (fldOffset=0x8)" P-DEP
-;  V14 tmp12        [V14,T06] (  2,  3   )     int  ->  [fp+0x3C]  do-not-enreg[] "field V05._length (fldOffset=0xc)" P-DEP
-;  V15 tmp13        [V15,T01] (  4,  8   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Text.Json.JsonDocumentOptions>
-;  V16 tmp14        [V16,T00] (  5, 10   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.ReadOnlyMemory`1[ushort]>
+;  V12 tmp10        [V12,T02] (  3,  6   )     ref  ->  [fp+0x20]  do-not-enreg[] "field V05._object (fldOffset=0x0)" P-DEP
+;  V13 tmp11        [V13,T03] (  3,  6   )     int  ->  [fp+0x28]  do-not-enreg[] "field V05._index (fldOffset=0x8)" P-DEP
+;  V14 tmp12        [V14,T04] (  3,  6   )     int  ->  [fp+0x2C]  do-not-enreg[] "field V05._length (fldOffset=0xc)" P-DEP
+;  V15 tmp13        [V15,T00] (  4,  8   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Text.Json.JsonDocumentOptions>
 ;
-; Lcl frame size = 48
+; Lcl frame size = 32
 
 G_M25908_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
+            stp     fp, lr, [sp, #-0x30]!
             mov     fp, sp
-            stp     xzr, xzr, [fp, #0x30]  // [V05 tmp3], [V05 tmp3+0x08]
-            stp     xzr, xzr, [fp, #0x18]  // [V16 tmp14], [V16 tmp14+0x08]
-                       ;; size=16 bbWeight=1 PerfScore 3.50
+            stp     xzr, xzr, [fp, #0x20]  // [V05 tmp3], [V05 tmp3+0x08]
+                       ;; size=12 bbWeight=1 PerfScore 2.50
 G_M25908_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
             ldr     x0, [x0, #0x08]
@@ -43,29 +41,21 @@ G_M25908_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byre
             movk    x1, #1 LSL #32
             ldr     x1, [x1]
             blr     x1
-            stp     x0, x1, [fp, #0x30]    // [V05 tmp3], [V05 tmp3+0x08]
-            ldr     x0, [fp, #0x30]    // [V12 tmp10]
-            str     x0, [fp, #0x18]    // [V16 tmp14]
-            ldr     w0, [fp, #0x38]    // [V13 tmp11]
-            ; gcrRegs -[x0]
-            str     w0, [fp, #0x20]    // [V16 tmp14+0x08]
-            ldr     w0, [fp, #0x3C]    // [V14 tmp12]
-            str     w0, [fp, #0x24]    // [V16 tmp14+0x0c]
-            mov     w0, #64
-            str     w0, [fp, #0x28]    // [V15 tmp13]
-            strb    wzr, [fp, #0x2C]   // [V15 tmp13+0x04]
-            strb    wzr, [fp, #0x2D]   // [V15 tmp13+0x05]
-            ldp     x0, x1, [fp, #0x18]    // [V16 tmp14], [V16 tmp14+0x08]
-            ; gcrRegs +[x0]
-            ldr     x2, [fp, #0x28]    // [V15 tmp13]
+            stp     x0, x1, [fp, #0x20]    // [V05 tmp3], [V05 tmp3+0x08]
+            mov     w2, #64
+            str     w2, [fp, #0x18]    // [V15 tmp13]
+            strb    wzr, [fp, #0x1C]   // [V15 tmp13+0x04]
+            strb    wzr, [fp, #0x1D]   // [V15 tmp13+0x05]
+            ldp     x2, x0, [fp, #0x18]    // [V15 tmp13], [V05 tmp3]
+            ldr     x1, [fp, #0x28]    // [V05 tmp3+0x08]
             movz    x3, #0xD1FFAB1E      // code for <unknown method>
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
             ldr     x3, [x3]
             blr     x3
-                       ;; size=100 bbWeight=1 PerfScore 33.50
+                       ;; size=76 bbWeight=1 PerfScore 24.50
 G_M25908_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x40
+            ldp     fp, lr, [sp], #0x30
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 G_M25908_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
@@ -85,7 +75,7 @@ G_M25908_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_unix #0
                        ;; size=44 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 168, prolog size 16, PerfScore 39.00, instruction count 42, allocated bytes for code 168 (MethodHash=85659acb) for method System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass88_0:<HonorReaderOptionsMaxDepth>b__3():System.Object:this (FullOpts)
+; Total bytes of code 140, prolog size 12, PerfScore 29.00, instruction count 35, allocated bytes for code 140 (MethodHash=85659acb) for method System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass88_0:<HonorReaderOptionsMaxDepth>b__3():System.Object:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -96,7 +86,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 42 (0x0002a) Actual length = 168 (0x0000a8)
+  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -104,7 +94,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
     E4          end
     E4          end
 

+16 (+6.67%) : 56228.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:g_visitArgumentsAndUpdateCall|101(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)

@@ -8,9 +8,9 @@
 ; 0 inlinees with PGO data; 16 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
-;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
-;  V02 arg2         [V02,T03] (  3,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+;  V00 this         [V00,T01] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
+;  V01 arg1         [V01,T00] ( 16, 16   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
+;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (48) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -28,7 +28,7 @@
 ;* V17 tmp12        [V17    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
 ;* V18 tmp13        [V18    ] (  0,  0   )  struct ( 8) zero-ref    single-def "Inline return value spill temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V19 tmp14        [V19    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V20 tmp15        [V20,T04] (  2,  4   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V20 tmp15        [V20,T03] (  2,  4   )     ref  ->   x2         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V21 tmp16        [V21    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V03.array (fldOffset=0x0)" P-INDEP
 ;* V22 tmp17        [V22    ] (  0,  0   )     ref  ->  zero-ref    "field V06.array (fldOffset=0x0)" P-INDEP
 ;* V23 tmp18        [V23    ] (  0,  0   )     ref  ->  zero-ref    "field V09.array (fldOffset=0x0)" P-INDEP
@@ -38,31 +38,28 @@
 ;* V27 tmp22        [V27    ] (  0,  0   )    long  ->  zero-ref    "field V15._bits0 (fldOffset=0x8)" P-INDEP
 ;* V28 tmp23        [V28    ] (  0,  0   )     int  ->  zero-ref    "field V15._capacity (fldOffset=0x10)" P-INDEP
 ;* V29 tmp24        [V29    ] (  0,  0   )     ref  ->  zero-ref    "field V17.array (fldOffset=0x0)" P-INDEP
-;  V30 tmp25        [V30,T16] (  3,  2   )     ref  ->  x22         single-def "field V18.array (fldOffset=0x0)" P-INDEP
-;  V31 tmp26        [V31,T15] (  3,  2.50)     ref  ->   x2         single-def "field V19.array (fldOffset=0x0)" P-INDEP
-;  V32 tmp27        [V32    ] (  2,  4   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
-;  V33 tmp28        [V33,T00] ( 13, 26   )     ref  ->  x19         single-def "argument with side effect"
-;  V34 tmp29        [V34,T05] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V35 tmp30        [V35,T11] (  2,  4   )     int  ->   x2         "argument with side effect"
-;  V36 tmp31        [V36,T06] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V37 tmp32        [V37,T07] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
-;  V38 tmp33        [V38,T08] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
-;  V39 tmp34        [V39,T09] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
-;  V40 tmp35        [V40,T12] (  2,  4   )     int  ->   x7         "argument with side effect"
-;  V41 tmp36        [V41,T13] (  2,  4   )     int  ->   x8         "argument with side effect"
-;  V42 tmp37        [V42,T14] (  2,  4   )     int  ->   x9         "argument with side effect"
-;  V43 tmp38        [V43,T10] (  2,  4   )     ref  ->  x10         single-def "argument with side effect"
+;  V30 tmp25        [V30,T13] (  3,  2   )     ref  ->   x4         single-def "field V18.array (fldOffset=0x0)" P-INDEP
+;  V31 tmp26        [V31,T12] (  3,  2.50)     ref  ->   x2         single-def "field V19.array (fldOffset=0x0)" P-INDEP
+;  V32 tmp27        [V32    ] (  2,  4   )  struct (24) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
+;  V33 tmp28        [V33,T08] (  2,  4   )     int  ->   x3         "argument with side effect"
+;  V34 tmp29        [V34,T04] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
+;  V35 tmp30        [V35,T05] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
+;  V36 tmp31        [V36,T06] (  2,  4   )     ref  ->   x7         single-def "argument with side effect"
+;  V37 tmp32        [V37,T09] (  2,  4   )     int  ->   x1         "argument with side effect"
+;  V38 tmp33        [V38,T10] (  2,  4   )     int  ->   x0         "argument with side effect"
+;  V39 tmp34        [V39,T11] (  2,  4   )     int  ->   x8         "argument with side effect"
+;  V40 tmp35        [V40,T07] (  2,  4   )     ref  ->   x9         single-def "argument with side effect"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 72
 
 G_M26558_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            sub     sp, sp, #128
+            sub     sp, sp, #112
             stp     fp, lr, [sp, #0x30]
-            stp     x19, x20, [sp, #0x60]
-            stp     x21, x22, [sp, #0x70]
+            stp     x19, x20, [sp, #0x58]
+            str     x21, [sp, #0x68]
             add     fp, sp, #48
-            stp     xzr, xzr, [fp, #0x18]  // [V32 tmp27], [V32 tmp27+0x08]
-            str     xzr, [fp, #0x28]   // [V32 tmp27+0x10]
+            stp     xzr, xzr, [fp, #0x10]  // [V32 tmp27], [V32 tmp27+0x08]
+            str     xzr, [fp, #0x20]   // [V32 tmp27+0x10]
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     x19, x1
@@ -77,12 +74,12 @@ G_M26558_IG02:        ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=00
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M26558_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
-            mov     x22, xzr
-            ; gcrRegs +[x22]
+            mov     x4, xzr
+            ; gcrRegs +[x4]
             b       G_M26558_IG05
                        ;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M26558_IG04:        ; bbWeight=0.50, gcrefRegs=380004 {x2 x19 x20 x21}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x22] +[x2]
+            ; gcrRegs -[x4] +[x2]
             mov     x0, x20
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -94,75 +91,82 @@ G_M26558_IG04:        ; bbWeight=0.50, gcrefRegs=380004 {x2 x19 x20 x21}, byrefR
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs -[x2]
-            mov     x22, x0
-            ; gcrRegs +[x22]
-                       ;; size=40 bbWeight=0.50 PerfScore 4.00
-G_M26558_IG05:        ; bbWeight=1, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            ldr     x0, [x19, #0x18]
-            ; gcrRegs +[x0]
-            ldrsb   wzr, [x20]
-            mov     x1, x21
-            ; gcrRegs +[x1]
-            ldrb    w2, [x19, #0x30]
-            ldr     x3, [x19, #0x28]
-            ; gcrRegs +[x3]
-            mov     x4, x22
+            mov     x4, x0
             ; gcrRegs +[x4]
-            ldp     x5, x6, [x19, #0x40]
-            ; gcrRegs +[x5-x6]
-            ldrb    w7, [x19, #0x31]
-            ldrb    w8, [x19, #0x32]
-            ldrb    w9, [x19, #0x33]
-            ldr     x10, [x19, #0x50]
-            ; gcrRegs +[x10]
-                       ;; size=44 bbWeight=1 PerfScore 29.00
+                       ;; size=40 bbWeight=0.50 PerfScore 4.00
+G_M26558_IG05:        ; bbWeight=1, gcrefRegs=380010 {x4 x19 x20 x21}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0]
+            ldr     x2, [x19, #0x18]
+            ; gcrRegs +[x2]
+            ldrsb   wzr, [x20]
+            ldrb    w3, [x19, #0x30]
+            ldr     x5, [x19, #0x28]
+            ; gcrRegs +[x5]
+            ldp     x6, x7, [x19, #0x40]
+            ; gcrRegs +[x6-x7]
+            ldrb    w1, [x19, #0x31]
+            ldrb    w0, [x19, #0x32]
+            ldrb    w8, [x19, #0x33]
+            ldr     x9, [x19, #0x50]
+            ; gcrRegs +[x9]
+                       ;; size=36 bbWeight=1 PerfScore 28.00
 G_M26558_IG06:        ; bbWeight=1, nogc, extend
-            ldp     x11, x13, [x19, #0x58]
-            stp     x11, x13, [fp, #0x18]
-            ldr     x11, [x19, #0x68]
-            str     x11, [fp, #0x28]
+            ldp     x10, x11, [x19, #0x58]
+            stp     x10, x11, [fp, #0x10]
+            ldr     x10, [x19, #0x68]
+            str     x10, [fp, #0x20]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M26558_IG07:        ; bbWeight=1, extend
-            ldrb    w11, [x19, #0x34]
-            strb    w11, [sp, #0x18]   // [V05 OutArgs+0x18]
-            ldr     x11, [x19, #0x70]
-            ; gcrRegs +[x11]
-            str     x11, [sp, #0x20]   // [V05 OutArgs+0x20]
-            str     x0, [sp, #0x28]    // [V05 OutArgs+0x28]
+            ldrb    w10, [x19, #0x34]
+            strb    w10, [sp, #0x18]   // [V05 OutArgs+0x18]
+            ldr     x10, [x19, #0x70]
+            ; gcrRegs +[x10]
+            str     x10, [sp, #0x20]   // [V05 OutArgs+0x20]
+            str     x2, [sp, #0x28]    // [V05 OutArgs+0x28]
+            mov     w2, w3
+            ; gcrRegs -[x2]
+            mov     x3, x5
+            ; gcrRegs +[x3]
+            mov     x5, x6
+            mov     x6, x7
+            mov     w7, w1
+            ; gcrRegs -[x7]
+            strb    w0, [sp]   // [V05 OutArgs]
+            strb    w8, [sp, #0x01]    // [V05 OutArgs+0x01]
+            str     x9, [sp, #0x08]    // [V05 OutArgs+0x08]
+            add     x1, fp, #16    // [V32 tmp27]
+            str     x1, [sp, #0x10]    // [V05 OutArgs+0x10]
+            mov     x1, x21
+            ; gcrRegs +[x1]
             mov     x0, x19
-            strb    w8, [sp]   // [V05 OutArgs]
-            strb    w9, [sp, #0x01]    // [V05 OutArgs+0x01]
-            str     x10, [sp, #0x08]   // [V05 OutArgs+0x08]
-            add     x8, fp, #24    // [V32 tmp27]
-            str     x8, [sp, #0x10]    // [V05 OutArgs+0x10]
+            ; gcrRegs +[x0]
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
             movk    x8, #0xD1FFAB1E LSL #16
             movk    x8, #1 LSL #32
             ldr     x8, [x8]
             blr     x8
-            ; gcrRegs -[x1 x3-x6 x10-x11 x19-x22]
-                       ;; size=64 bbWeight=1 PerfScore 19.50
+            ; gcrRegs -[x1 x3-x6 x9-x10 x19-x21]
+                       ;; size=88 bbWeight=1 PerfScore 22.50
 G_M26558_IG08:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x70]
-            ldp     x19, x20, [sp, #0x60]
+            ldr     x21, [sp, #0x68]
+            ldp     x19, x20, [sp, #0x58]
             ldp     fp, lr, [sp, #0x30]
-            add     sp, sp, #128
+            add     sp, sp, #112
             ret     lr
-                       ;; size=20 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 5.50
 
-; Total bytes of code 240, prolog size 28, PerfScore 78.25, instruction count 60, allocated bytes for code 240 (MethodHash=faef9841) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
+; Total bytes of code 256, prolog size 28, PerfScore 81.25, instruction count 64, allocated bytes for code 256 (MethodHash=faef9841) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 3
   Epilog Count      : 1
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 60 (0x0003c) Actual length = 240 (0x0000f0)
+  Function Length   : 64 (0x00040) Actual length = 256 (0x000100)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -170,9 +174,12 @@ Unwind Info:
   ---- Unwind codes ----
     E2 06       add_fp 6 (0x06); add fp, sp, #48
     ---- Epilog start at index 2 ----
-    E6          save_next
-    C8 0C       save_regp X#0 Z#12 (0x0C); stp x19, x20, [sp, #96]
+    D0 8D       save_reg X#2 Z#13 (0x0D); str x21, [sp, #104]
+    C8 0B       save_regp X#0 Z#11 (0x0B); stp x19, x20, [sp, #88]
     46          save_fplr #6 (0x06); stp fp, lr, [sp, #48]
-    08          alloc_s #8 (0x08); sub sp, sp, #128 (0x080)
+    07          alloc_s #7 (0x07); sub sp, sp, #112 (0x070)
+    E4          end
+    E4          end
+    E4          end
     E4          end
 

+8 (+7.69%) : 259332.dasm - System.Text.Json.Serialization.Tests.JsonDocumentClass:Initialize():this (FullOpts)

@@ -8,36 +8,35 @@
 ; 1 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  3,  3   )     ref  ->  x19         this class-hnd single-def <System.Text.Json.Serialization.Tests.JsonDocumentClass>
+;  V00 this         [V00,T01] (  3,  3   )     ref  ->  x19         this class-hnd single-def <System.Text.Json.Serialization.Tests.JsonDocumentClass>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Text.Json.JsonDocumentOptions>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Text.Json.JsonDocumentOptions>
 ;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlyMemory`1[ushort]>
 ;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlyMemory`1[ushort]>
-;* V06 tmp4         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
+;  V06 tmp4         [V06    ] (  5, 10   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
 ;* V07 tmp5         [V07    ] (  0,  0   )     int  ->  zero-ref   
-;* V08 tmp6         [V08,T05] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V08 tmp6         [V08,T07] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp7         [V09    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V10 tmp8         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V11 tmp9         [V11,T03] (  2,  4   )     ref  ->  x15         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
+;  V11 tmp9         [V11,T05] (  2,  4   )     ref  ->  x15         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
 ;* V12 tmp10        [V12    ] (  0,  0   )     int  ->  zero-ref    single-def "field V01._maxDepth (fldOffset=0x0)" P-INDEP
 ;* V13 tmp11        [V13    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01._commentHandling (fldOffset=0x4)" P-INDEP
 ;* V14 tmp12        [V14    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
-;* V15 tmp13        [V15,T07] (  0,  0   )     int  ->  zero-ref    single-def "field V03._maxDepth (fldOffset=0x0)" P-INDEP
-;* V16 tmp14        [V16,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._commentHandling (fldOffset=0x4)" P-INDEP
-;* V17 tmp15        [V17,T09] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
+;* V15 tmp13        [V15,T08] (  0,  0   )     int  ->  zero-ref    single-def "field V03._maxDepth (fldOffset=0x0)" P-INDEP
+;* V16 tmp14        [V16,T09] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._commentHandling (fldOffset=0x4)" P-INDEP
+;* V17 tmp15        [V17,T10] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
 ;* V18 tmp16        [V18    ] (  0,  0   )     ref  ->  zero-ref    "field V04._object (fldOffset=0x0)" P-INDEP
 ;* V19 tmp17        [V19    ] (  0,  0   )     int  ->  zero-ref    "field V04._index (fldOffset=0x8)" P-INDEP
 ;* V20 tmp18        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0xc)" P-INDEP
 ;* V21 tmp19        [V21    ] (  0,  0   )     ref  ->  zero-ref    "field V05._object (fldOffset=0x0)" P-INDEP
 ;* V22 tmp20        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V05._index (fldOffset=0x8)" P-INDEP
 ;* V23 tmp21        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0xc)" P-INDEP
-;* V24 tmp22        [V24,T06] (  0,  0   )     ref  ->  zero-ref    single-def "field V06._object (fldOffset=0x0)" P-INDEP
-;* V25 tmp23        [V25,T10] (  0,  0   )     int  ->  zero-ref    single-def "field V06._index (fldOffset=0x8)" P-INDEP
-;* V26 tmp24        [V26,T11] (  0,  0   )     int  ->  zero-ref    single-def "field V06._length (fldOffset=0xc)" P-INDEP
-;  V27 tmp25        [V27,T00] (  4,  8   )  struct ( 8) [fp+0x20]  do-not-enreg[SF] "by-value struct argument" <System.Text.Json.JsonDocumentOptions>
-;  V28 tmp26        [V28,T01] (  4,  8   )  struct (16) [fp+0x10]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.ReadOnlyMemory`1[ushort]>
-;* V29 cse0         [V29,T04] (  0,  0   )     ref  ->  zero-ref    "CSE - aggressive"
+;  V24 tmp22        [V24,T02] (  3,  5   )     ref  ->  [fp+0x18]  do-not-enreg[] single-def "field V06._object (fldOffset=0x0)" P-DEP
+;  V25 tmp23        [V25,T03] (  3,  5   )     int  ->  [fp+0x20]  do-not-enreg[] single-def "field V06._index (fldOffset=0x8)" P-DEP
+;  V26 tmp24        [V26,T04] (  3,  5   )     int  ->  [fp+0x24]  do-not-enreg[] single-def "field V06._length (fldOffset=0xc)" P-DEP
+;  V27 tmp25        [V27,T00] (  4,  8   )  struct ( 8) [fp+0x10]  do-not-enreg[SF] "by-value struct argument" <System.Text.Json.JsonDocumentOptions>
+;  V28 cse0         [V28,T06] (  2,  2   )     ref  ->   x2         "CSE - aggressive"
 ;
 ; Lcl frame size = 24
 
@@ -45,22 +44,24 @@ G_M62249_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     fp, lr, [sp, #-0x30]!
             str     x19, [sp, #0x28]
             mov     fp, sp
-            stp     xzr, xzr, [fp, #0x10]  // [V28 tmp26], [V28 tmp26+0x08]
+            stp     xzr, xzr, [fp, #0x18]  // [V06 tmp4], [V06 tmp4+0x08]
             mov     x19, x0
             ; gcrRegs +[x19]
                        ;; size=20 bbWeight=1 PerfScore 4.00
 G_M62249_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
-            str     x0, [fp, #0x10]    // [V28 tmp26]
-            mov     w0, #129
-            stp     w0, wzr, [fp, #0x1C]   // [V28 tmp26+0x0c], [V27 tmp25]
-            strb    wzr, [fp, #0x24]   // [V27 tmp25+0x04]
-            strb    wzr, [fp, #0x25]   // [V27 tmp25+0x05]
-            ldp     x0, x1, [fp, #0x10]    // [V28 tmp26], [V28 tmp26+0x08]
+            movz    x2, #0xD1FFAB1E
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #1 LSL #32
+            str     x2, [fp, #0x18]    // [V24 tmp22]
+            str     wzr, [fp, #0x20]   // [V25 tmp23]
+            mov     w2, #129
+            str     w2, [fp, #0x24]    // [V26 tmp24]
+            str     wzr, [fp, #0x10]   // [V27 tmp25]
+            strb    wzr, [fp, #0x14]   // [V27 tmp25+0x04]
+            strb    wzr, [fp, #0x15]   // [V27 tmp25+0x05]
+            ldp     x2, x0, [fp, #0x10]    // [V27 tmp25], [V06 tmp4]
             ; gcrRegs +[x0]
-            ldr     x2, [fp, #0x20]    // [V27 tmp25]
+            ldr     x1, [fp, #0x20]    // [V06 tmp4+0x08]
             movz    x3, #0xD1FFAB1E      // code for <unknown method>
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
@@ -73,14 +74,14 @@ G_M62249_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15 x19]
             ; byrRegs -[x14]
-                       ;; size=72 bbWeight=1 PerfScore 18.50
+                       ;; size=80 bbWeight=1 PerfScore 20.50
 G_M62249_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x19, [sp, #0x28]
             ldp     fp, lr, [sp], #0x30
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 104, prolog size 16, PerfScore 26.50, instruction count 26, allocated bytes for code 104 (MethodHash=de8b0cd6) for method System.Text.Json.Serialization.Tests.JsonDocumentClass:Initialize():this (FullOpts)
+; Total bytes of code 112, prolog size 16, PerfScore 28.50, instruction count 28, allocated bytes for code 112 (MethodHash=de8b0cd6) for method System.Text.Json.Serialization.Tests.JsonDocumentClass:Initialize():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -91,7 +92,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 26 (0x0001a) Actual length = 104 (0x000068)
+  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+10.00%) : 259383.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c:b_760():System.Object:this (FullOpts)

@@ -14,59 +14,60 @@
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Text.Json.JsonDocumentOptions>
 ;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlyMemory`1[ushort]>
 ;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlyMemory`1[ushort]>
-;* V06 tmp4         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
+;  V06 tmp4         [V06    ] (  5, 10   )  struct (16) [fp+0x20]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
 ;* V07 tmp5         [V07    ] (  0,  0   )     int  ->  zero-ref   
 ;* V08 tmp6         [V08    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp7         [V09    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V10 tmp8         [V10    ] (  0,  0   )     int  ->  zero-ref    single-def "field V01._maxDepth (fldOffset=0x0)" P-INDEP
 ;* V11 tmp9         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01._commentHandling (fldOffset=0x4)" P-INDEP
 ;* V12 tmp10        [V12    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
-;* V13 tmp11        [V13,T03] (  0,  0   )     int  ->  zero-ref    single-def "field V03._maxDepth (fldOffset=0x0)" P-INDEP
-;* V14 tmp12        [V14,T04] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._commentHandling (fldOffset=0x4)" P-INDEP
-;* V15 tmp13        [V15,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
+;* V13 tmp11        [V13,T04] (  0,  0   )     int  ->  zero-ref    single-def "field V03._maxDepth (fldOffset=0x0)" P-INDEP
+;* V14 tmp12        [V14,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._commentHandling (fldOffset=0x4)" P-INDEP
+;* V15 tmp13        [V15,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
 ;* V16 tmp14        [V16    ] (  0,  0   )     ref  ->  zero-ref    "field V04._object (fldOffset=0x0)" P-INDEP
 ;* V17 tmp15        [V17    ] (  0,  0   )     int  ->  zero-ref    "field V04._index (fldOffset=0x8)" P-INDEP
 ;* V18 tmp16        [V18    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0xc)" P-INDEP
 ;* V19 tmp17        [V19    ] (  0,  0   )     ref  ->  zero-ref    "field V05._object (fldOffset=0x0)" P-INDEP
 ;* V20 tmp18        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V05._index (fldOffset=0x8)" P-INDEP
 ;* V21 tmp19        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0xc)" P-INDEP
-;* V22 tmp20        [V22,T02] (  0,  0   )     ref  ->  zero-ref    single-def "field V06._object (fldOffset=0x0)" P-INDEP
-;* V23 tmp21        [V23,T06] (  0,  0   )     int  ->  zero-ref    single-def "field V06._index (fldOffset=0x8)" P-INDEP
-;* V24 tmp22        [V24,T07] (  0,  0   )     int  ->  zero-ref    single-def "field V06._length (fldOffset=0xc)" P-INDEP
-;  V25 tmp23        [V25,T00] (  4,  8   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Text.Json.JsonDocumentOptions>
-;  V26 tmp24        [V26,T01] (  4,  8   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.ReadOnlyMemory`1[ushort]>
+;  V22 tmp20        [V22,T01] (  3,  5   )     ref  ->  [fp+0x20]  do-not-enreg[] single-def "field V06._object (fldOffset=0x0)" P-DEP
+;  V23 tmp21        [V23,T02] (  3,  5   )     int  ->  [fp+0x28]  do-not-enreg[] single-def "field V06._index (fldOffset=0x8)" P-DEP
+;  V24 tmp22        [V24,T03] (  3,  5   )     int  ->  [fp+0x2C]  do-not-enreg[] single-def "field V06._length (fldOffset=0xc)" P-DEP
+;  V25 tmp23        [V25,T00] (  4,  8   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Text.Json.JsonDocumentOptions>
 ;
 ; Lcl frame size = 32
 
 G_M36232_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x30]!
             mov     fp, sp
-            stp     xzr, xzr, [fp, #0x18]  // [V26 tmp24], [V26 tmp24+0x08]
+            stp     xzr, xzr, [fp, #0x20]  // [V06 tmp4], [V06 tmp4+0x08]
                        ;; size=12 bbWeight=1 PerfScore 2.50
 G_M36232_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #1 LSL #32
-            str     x0, [fp, #0x18]    // [V26 tmp24]
-            mov     w0, #21
-            stp     w0, wzr, [fp, #0x24]   // [V26 tmp24+0x0c], [V25 tmp23]
-            strb    wzr, [fp, #0x2C]   // [V25 tmp23+0x04]
-            strb    wzr, [fp, #0x2D]   // [V25 tmp23+0x05]
-            ldp     x0, x1, [fp, #0x18]    // [V26 tmp24], [V26 tmp24+0x08]
+            movz    x2, #0xD1FFAB1E
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #1 LSL #32
+            str     x2, [fp, #0x20]    // [V22 tmp20]
+            str     wzr, [fp, #0x28]   // [V23 tmp21]
+            mov     w2, #21
+            str     w2, [fp, #0x2C]    // [V24 tmp22]
+            str     wzr, [fp, #0x18]   // [V25 tmp23]
+            strb    wzr, [fp, #0x1C]   // [V25 tmp23+0x04]
+            strb    wzr, [fp, #0x1D]   // [V25 tmp23+0x05]
+            ldp     x2, x0, [fp, #0x18]    // [V25 tmp23], [V06 tmp4]
             ; gcrRegs +[x0]
-            ldr     x2, [fp, #0x28]    // [V25 tmp23]
+            ldr     x1, [fp, #0x28]    // [V06 tmp4+0x08]
             movz    x3, #0xD1FFAB1E      // code for <unknown method>
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #1 LSL #32
             ldr     x3, [x3]
             blr     x3
-                       ;; size=60 bbWeight=1 PerfScore 16.50
+                       ;; size=68 bbWeight=1 PerfScore 18.50
 G_M36232_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x30
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 80, prolog size 12, PerfScore 21.00, instruction count 20, allocated bytes for code 80 (MethodHash=6ea77277) for method System.Text.Json.Tests.JsonDocumentTests+<>c:<CheckInvalidString>b__76_0():System.Object:this (FullOpts)
+; Total bytes of code 88, prolog size 12, PerfScore 23.00, instruction count 22, allocated bytes for code 88 (MethodHash=6ea77277) for method System.Text.Json.Tests.JsonDocumentTests+<>c:<CheckInvalidString>b__76_0():System.Object:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -77,7 +78,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 20 (0x00014) Actual length = 80 (0x000050)
+  Function Length   : 22 (0x00016) Actual length = 88 (0x000058)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

realworld.run.osx.arm64.checked.mch

-12 (-15.79%) : 13018.dasm - Microsoft.ML.Trainers.SdcaTrainerBase3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]:ApplyAt(long,Microsoft.ML.Trainers.SdcaTrainerBase3+Visitor[System.Canon,System.Canon,System.__Canon]):this (FullOpts)

@@ -9,43 +9,37 @@
 ;
 ;  V00 this         [V00,T03] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Microsoft.ML.Trainers.SdcaTrainerBase`3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T00] (  5,  5   )    long  ->   x1         single-def
-;  V02 arg2         [V02,T04] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]>
+;  V02 arg2         [V02,T01] (  4,  4   )     ref  ->   x3         class-hnd single-def <Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T01] (  3,  6   )     ref  ->   x0         single-def "arr expr"
-;  V05 tmp2         [V05,T02] (  3,  6   )     ref  ->   x3         single-def "argument with side effect"
-;  V06 tmp3         [V06,T06] (  2,  4   )    long  ->   x2         "argument with side effect"
-;  V07 tmp4         [V07,T05] (  2,  4   )   byref  ->   x0         single-def "argument with side effect"
+;  V04 tmp1         [V04,T02] (  3,  6   )     ref  ->   x2         single-def "arr expr"
+;  V05 tmp2         [V05,T04] (  2,  4   )   byref  ->   x2         single-def "argument with side effect"
 ;
 ; Lcl frame size = 0
 
 G_M22309_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M22309_IG02:        ; bbWeight=1, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x0 x2]
             mov     x3, x2
             ; gcrRegs +[x3]
-            mov     x2, x1
-            ; gcrRegs -[x2]
-            ldr     x0, [x0, #0x08]
-            ldr     w4, [x0, #0x08]
-            cmp     w1, w4
-            bhs     G_M22309_IG04
-            add     x0, x0, #16
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M22309_IG02:        ; bbWeight=1, gcrefRegs=0009 {x0 x3}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x0]
+            ldr     x2, [x0, #0x08]
+            ; gcrRegs +[x2]
+            ldr     w0, [x2, #0x08]
             ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-            ubfiz   x1, x1, #2, #32
-            add     x0, x0, x1
-            mov     x1, x2
-            mov     x2, x0
+            cmp     w1, w0
+            bhs     G_M22309_IG04
+            add     x2, x2, #16
+            ; gcrRegs -[x2]
             ; byrRegs +[x2]
+            ubfiz   x0, x1, #2, #32
+            add     x2, x2, x0
             ldr     x0, [x3, #0x08]
             ; gcrRegs +[x0]
-            ; byrRegs -[x0]
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
-                       ;; size=52 bbWeight=1 PerfScore 17.50
+                       ;; size=36 bbWeight=1 PerfScore 15.50
 G_M22309_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             br      x3
@@ -59,7 +53,7 @@ G_M22309_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_unix #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 76, prolog size 8, PerfScore 21.00, instruction count 19, allocated bytes for code 76 (MethodHash=cc0aa8da) for method Microsoft.ML.Trainers.SdcaTrainerBase`3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]:ApplyAt(long,Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]):this (FullOpts)
+; Total bytes of code 64, prolog size 12, PerfScore 19.50, instruction count 16, allocated bytes for code 64 (MethodHash=cc0aa8da) for method Microsoft.ML.Trainers.SdcaTrainerBase`3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]:ApplyAt(long,Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -70,7 +64,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 19 (0x00013) Actual length = 76 (0x00004c)
+  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-20 (-14.29%) : 24234.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)

@@ -8,9 +8,9 @@
 ; 0 inlinees with PGO data; 11 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
-;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
-;  V02 arg2         [V02,T03] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
+;  V00 this         [V00,T00] ( 13, 13   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
+;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (48) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[System.String]>
@@ -22,7 +22,7 @@
 ;* V11 tmp7         [V11    ] (  0,  0   )  struct (24) zero-ref    "impAppendStmt" <Microsoft.CodeAnalysis.BitVector>
 ;* V12 tmp8         [V12    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V13 tmp9         [V13    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
-;  V14 tmp10        [V14,T04] (  2,  2   )     ref  ->   x3         single-def "field V03.array (fldOffset=0x0)" P-INDEP
+;  V14 tmp10        [V14,T03] (  2,  2   )     ref  ->   x3         single-def "field V03.array (fldOffset=0x0)" P-INDEP
 ;* V15 tmp11        [V15    ] (  0,  0   )     ref  ->  zero-ref    "field V05.array (fldOffset=0x0)" P-INDEP
 ;* V16 tmp12        [V16    ] (  0,  0   )     ref  ->  zero-ref    "field V06.array (fldOffset=0x0)" P-INDEP
 ;* V17 tmp13        [V17    ] (  0,  0   )     ref  ->  zero-ref    "field V10.array (fldOffset=0x0)" P-INDEP
@@ -31,16 +31,12 @@
 ;* V20 tmp16        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V11._capacity (fldOffset=0x10)" P-INDEP
 ;* V21 tmp17        [V21    ] (  0,  0   )     ref  ->  zero-ref    "field V13.array (fldOffset=0x0)" P-INDEP
 ;  V22 tmp18        [V22    ] (  2,  4   )  struct (24) [fp+0x18]  do-not-enreg[XS] addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
-;  V23 tmp19        [V23,T00] ( 11, 22   )     ref  ->   x4         single-def "argument with side effect"
-;  V24 tmp20        [V24,T05] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V25 tmp21        [V25,T06] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
-;  V26 tmp22        [V26,T07] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V27 tmp23        [V27,T08] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
-;  V28 tmp24        [V28,T09] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
-;  V29 tmp25        [V29,T11] (  2,  4   )     int  ->   x7         "argument with side effect"
-;  V30 tmp26        [V30,T12] (  2,  4   )     int  ->   x8         "argument with side effect"
-;  V31 tmp27        [V31,T13] (  2,  4   )     int  ->   x9         "argument with side effect"
-;  V32 tmp28        [V32,T10] (  2,  4   )     ref  ->  x10         single-def "argument with side effect"
+;  V23 tmp19        [V23,T04] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
+;  V24 tmp20        [V24,T05] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
+;  V25 tmp21        [V25,T07] (  2,  4   )     int  ->   x6         "argument with side effect"
+;  V26 tmp22        [V26,T08] (  2,  4   )     int  ->   x7         "argument with side effect"
+;  V27 tmp23        [V27,T09] (  2,  4   )     int  ->   x8         "argument with side effect"
+;  V28 tmp24        [V28,T06] (  2,  4   )     ref  ->   x9         single-def "argument with side effect"
 ;
 ; Lcl frame size = 80
 
@@ -51,37 +47,30 @@ G_M55914_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=12 bbWeight=1 PerfScore 2.00
 G_M55914_IG02:        ; bbWeight=1, gcrefRegs=000F {x0 x1 x2 x3}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x0-x3]
-            mov     x4, x0
-            ; gcrRegs +[x4]
-            ldp     x5, x6, [x4, #0x40]
-            ; gcrRegs +[x5-x6]
-            ldrb    w7, [x4, #0x30]
-            ldrb    w8, [x4, #0x31]
-            ldrb    w9, [x4, #0x32]
-            ldr     x10, [x4, #0x50]
-            ; gcrRegs +[x10]
-                       ;; size=24 bbWeight=1 PerfScore 16.50
+            ldp     x4, x5, [x0, #0x40]
+            ; gcrRegs +[x4-x5]
+            ldrb    w6, [x0, #0x30]
+            ldrb    w7, [x0, #0x31]
+            ldrb    w8, [x0, #0x32]
+            ldr     x9, [x0, #0x50]
+            ; gcrRegs +[x9]
+                       ;; size=20 bbWeight=1 PerfScore 16.00
 G_M55914_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x11, x13, [x4, #0x58]
-            stp     x11, x13, [fp, #0x18]
-            ldr     x11, [x4, #0x68]
-            str     x11, [fp, #0x28]
+            ldp     x10, x11, [x0, #0x58]
+            stp     x10, x11, [fp, #0x18]
+            ldr     x10, [x0, #0x68]
+            str     x10, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M55914_IG04:        ; bbWeight=1, extend
-            ldrb    w11, [x4, #0x33]
-            strb    w11, [sp, #0x18]   // [V04 OutArgs+0x18]
-            ldr     x11, [x4, #0x70]
-            ; gcrRegs +[x11]
-            str     x11, [sp, #0x20]   // [V04 OutArgs+0x20]
-            ldr     x4, [x4, #0x18]
-            str     x4, [sp, #0x28]    // [V04 OutArgs+0x28]
-            mov     x4, x5
-            mov     x5, x6
-            mov     w6, w7
-            ; gcrRegs -[x6]
-            mov     w7, w8
-            strb    w9, [sp]   // [V04 OutArgs]
-            str     x10, [sp, #0x08]   // [V04 OutArgs+0x08]
+            ldrb    w10, [x0, #0x33]
+            strb    w10, [sp, #0x18]   // [V04 OutArgs+0x18]
+            ldr     x10, [x0, #0x70]
+            ; gcrRegs +[x10]
+            str     x10, [sp, #0x20]   // [V04 OutArgs+0x20]
+            ldr     x10, [x0, #0x18]
+            str     x10, [sp, #0x28]   // [V04 OutArgs+0x28]
+            strb    w8, [sp]   // [V04 OutArgs]
+            str     x9, [sp, #0x08]    // [V04 OutArgs+0x08]
             add     x8, fp, #24    // [V22 tmp18]
             str     x8, [sp, #0x10]    // [V04 OutArgs+0x10]
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
@@ -89,15 +78,15 @@ G_M55914_IG04:        ; bbWeight=1, extend
             movk    x8, #1 LSL #32
             ldr     x8, [x8]
             blr     x8
-            ; gcrRegs -[x1-x5 x10-x11]
-                       ;; size=76 bbWeight=1 PerfScore 23.00
+            ; gcrRegs -[x1-x5 x9-x10]
+                       ;; size=60 bbWeight=1 PerfScore 21.00
 G_M55914_IG05:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp, #0x30]
             add     sp, sp, #96
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 2.50
 
-; Total bytes of code 140, prolog size 12, PerfScore 53.00, instruction count 35, allocated bytes for code 140 (MethodHash=00902595) for method Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
+; Total bytes of code 120, prolog size 12, PerfScore 50.50, instruction count 30, allocated bytes for code 120 (MethodHash=00902595) for method Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -108,7 +97,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
+  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-16 (-11.76%) : 14014.dasm - Microsoft.ML.Trainers.KMeansAcceleratedRowMap+<>cDisplayClass4_0:<.ctor>b2(Microsoft.ML.Trainers.FeatureFloatVectorCursor):int:this (FullOpts)

@@ -10,23 +10,19 @@
 ;
 ;  V00 this         [V00,T05] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Microsoft.ML.Trainers.KMeansAcceleratedRowMap+<>c__DisplayClass4_0>
 ;  V01 arg1         [V01,T00] (  4,  4   )     ref  ->   x1         class-hnd single-def <Microsoft.ML.Trainers.FeatureFloatVectorCursor>
-;  V02 loc0         [V02,T13] (  2,  2   )     int  ->   x0         ld-addr-op single-def
+;  V02 loc0         [V02,T09] (  2,  2   )     int  ->   x0         ld-addr-op single-def
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T07] (  2,  4   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <Microsoft.ML.Internal.Utilities.HashArray`1[Microsoft.ML.Data.DataViewRowId]>
-;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <Microsoft.ML.Data.DataViewRowId>
+;  V04 tmp1         [V04,T01] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <Microsoft.ML.Internal.Utilities.HashArray`1[Microsoft.ML.Data.DataViewRowId]>
+;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "Inlining Arg" <Microsoft.ML.Data.DataViewRowId>
 ;* V06 tmp3         [V06    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <Microsoft.ML.Data.DataViewRowId>
-;  V07 tmp4         [V07,T08] (  2,  4   )     int  ->   x1         "Inlining Arg"
-;  V08 tmp5         [V08,T06] (  3,  3   )    long  ->   x1         single-def "field V05.Low (fldOffset=0x0)" P-INDEP
-;  V09 tmp6         [V09,T04] (  4,  4   )    long  ->   x4         single-def "field V05.High (fldOffset=0x8)" P-INDEP
+;  V07 tmp4         [V07,T07] (  2,  4   )     int  ->   x3         "Inlining Arg"
+;  V08 tmp5         [V08,T06] (  4,  4   )    long  ->   x2         single-def "field V05.Low (fldOffset=0x0)" P-INDEP
+;  V09 tmp6         [V09,T04] (  5,  5   )    long  ->   x4         single-def "field V05.High (fldOffset=0x8)" P-INDEP
 ;* V10 tmp7         [V10    ] (  0,  0   )    long  ->  zero-ref    single-def "field V06.Low (fldOffset=0x0)" P-INDEP
 ;* V11 tmp8         [V11    ] (  0,  0   )    long  ->  zero-ref    single-def "field V06.High (fldOffset=0x8)" P-INDEP
-;  V12 tmp9         [V12,T02] (  3,  6   )    long  ->   x1         "fgMakeTemp is creating a new local variable"
-;  V13 tmp10        [V13,T03] (  3,  6   )    long  ->   x4         "fgMakeTemp is creating a new local variable"
-;  V14 tmp11        [V14,T01] (  3,  6   )     ref  ->   x0         single-def "argument with side effect"
-;* V15 tmp12        [V15,T09] (  0,  0   )  struct (16) zero-ref    do-not-enreg[SFA] multireg-arg "argument with side effect" <Microsoft.ML.Data.DataViewRowId>
-;  V16 tmp13        [V16,T10] (  2,  4   )     int  ->   x4         "argument with side effect"
-;  V17 cse0         [V17,T11] (  3,  3   )    long  ->   x2         "CSE - aggressive"
-;  V18 cse1         [V18,T12] (  3,  3   )    long  ->   x3         "CSE - aggressive"
+;  V12 tmp9         [V12,T02] (  3,  6   )    long  ->   x3         "fgMakeTemp is creating a new local variable"
+;  V13 tmp10        [V13,T03] (  3,  6   )    long  ->   x1         "fgMakeTemp is creating a new local variable"
+;  V14 tmp11        [V14,T08] (  2,  4   )     int  ->   x3         "argument with side effect"
 ;
 ; Lcl frame size = 0
 
@@ -36,39 +32,37 @@ G_M52914_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M52914_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0-x1]
-            ldr     x0, [x0, #0x08]
-            ldr     x0, [x0, #0x10]
-            ldp     x2, x3, [x1, #0x60]
-            mov     x1, x2
+            ldr     x3, [x0, #0x08]
+            ; gcrRegs +[x3]
+            ldr     x0, [x3, #0x10]
+            ldp     x2, x4, [x1, #0x60]
+            lsr     x3, x2, #32
+            ; gcrRegs -[x3]
+            eor     w3, w2, w3
+            eor     w3, w3, w4,  LSL #7
+            lsr     x1, x4, #57
             ; gcrRegs -[x1]
-            mov     x4, x3
-            lsr     x5, x1, #32
-            eor     w1, w1, w5
-            eor     w1, w1, w4,  LSL #7
-            lsr     x5, x4, #57
-            eor     w1, w1, w5
-            lsr     x4, x4, #25
-            eor     w1, w1, w4
-            mov     w1, w1
-            ldr     x4, [x0, #0x08]
-            ; gcrRegs +[x4]
-            ldr     w4, [x4, #0x08]
-            ; gcrRegs -[x4]
-            cmp     x4, #0
+            eor     w3, w3, w1
+            lsr     x1, x4, #25
+            eor     w3, w3, w1
+            mov     w3, w3
+            ldr     x1, [x0, #0x08]
+            ; gcrRegs +[x1]
+            ldr     w1, [x1, #0x08]
+            ; gcrRegs -[x1]
+            cmp     x1, #0
             beq     G_M52914_IG04
-            udiv    x5, x1, x4
-            msub    x1, x5, x4, x1
-            sxtw    w4, w1
+            udiv    x5, x3, x1
+            msub    x3, x5, x1, x3
             mov     x1, x2
-            mov     x2, x3
-            mov     w3, w4
+            mov     x2, x4
             movz    x4, #0xD1FFAB1E      // code for Microsoft.ML.Internal.Utilities.HashArray`1[Microsoft.ML.Data.DataViewRowId]:GetIndexCore(Microsoft.ML.Data.DataViewRowId,int):int:this
             movk    x4, #0xD1FFAB1E LSL #16
             movk    x4, #1 LSL #32
             ldr     x4, [x4]
             blr     x4
             ; gcrRegs -[x0]
-                       ;; size=112 bbWeight=1 PerfScore 56.00
+                       ;; size=96 bbWeight=1 PerfScore 54.00
 G_M52914_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
@@ -78,7 +72,7 @@ G_M52914_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_unix #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 136, prolog size 8, PerfScore 59.50, instruction count 34, allocated bytes for code 136 (MethodHash=9f8e314d) for method Microsoft.ML.Trainers.KMeansAcceleratedRowMap+<>c__DisplayClass4_0:<.ctor>b__2(Microsoft.ML.Trainers.FeatureFloatVectorCursor):int:this (FullOpts)
+; Total bytes of code 120, prolog size 8, PerfScore 57.50, instruction count 30, allocated bytes for code 120 (MethodHash=9f8e314d) for method Microsoft.ML.Trainers.KMeansAcceleratedRowMap+<>c__DisplayClass4_0:<.ctor>b__2(Microsoft.ML.Trainers.FeatureFloatVectorCursor):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -89,7 +83,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 34 (0x00022) Actual length = 136 (0x000088)
+  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+4.00%) : 23210.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:VisitDoStatement(Microsoft.CodeAnalysis.CSharp.BoundDoStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)

@@ -8,15 +8,15 @@
 ; 0 inlinees with PGO data; 10 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 29, 28   )     ref  ->  x19         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]>
+;  V00 this         [V00,T00] ( 26, 25   )     ref  ->  x19         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]>
 ;  V01 arg1         [V01,T01] ( 10,  8.50)     ref  ->  x20         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDoStatement>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.GeneratedLabelSymbol>
-;  V05 tmp2         [V05,T02] (  3,  6   )     ref  ->  x22         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+;  V05 tmp2         [V05,T02] (  3,  6   )     ref  ->  x23         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.BoundExpression>
 ;* V06 tmp3         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
 ;* V07 tmp4         [V07    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
-;  V08 tmp5         [V08    ] (  5,  4   )  struct ( 8) [fp+0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
+;  V08 tmp5         [V08    ] (  5,  4   )  struct ( 8) [fp+0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
 ;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
 ;  V10 tmp7         [V10,T03] (  3,  6   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;  V11 tmp8         [V11,T04] (  4,  4   )   byref  ->   x0         single-def "Inline stloc first use temp"
@@ -24,49 +24,51 @@
 ;  V13 tmp10        [V13,T06] (  3,  3   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
 ;* V15 tmp12        [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;  V16 tmp13        [V16    ] (  5, 10   )  struct ( 8) [fp+0x18]  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
+;  V16 tmp13        [V16    ] (  5, 10   )  struct ( 8) [fp+0x20]  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
 ;* V17 tmp14        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.GeneratedLabelSymbol>
 ;* V18 tmp15        [V18    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
 ;* V19 tmp16        [V19    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
-;  V20 tmp17        [V20,T09] (  2,  2   )   ubyte  ->  x22         single-def "field V02.Alive (fldOffset=0x0)" P-INDEP
-;  V21 tmp18        [V21,T10] (  2,  2   )   ubyte  ->  x23         single-def "field V02.Reported (fldOffset=0x1)" P-INDEP
+;  V20 tmp17        [V20,T11] (  2,  2   )   ubyte  ->  x23         single-def "field V02.Alive (fldOffset=0x0)" P-INDEP
+;  V21 tmp18        [V21,T12] (  2,  2   )   ubyte  ->  x24         single-def "field V02.Reported (fldOffset=0x1)" P-INDEP
 ;* V22 tmp19        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V06.Alive (fldOffset=0x0)" P-INDEP
 ;* V23 tmp20        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V06.Reported (fldOffset=0x1)" P-INDEP
-;  V24 tmp21        [V24,T11] (  2,  2   )   ubyte  ->   x0         single-def "field V07.Alive (fldOffset=0x0)" P-INDEP
-;  V25 tmp22        [V25,T12] (  2,  2   )   ubyte  ->   x1         single-def "field V07.Reported (fldOffset=0x1)" P-INDEP
-;  V26 tmp23        [V26    ] (  3,  2.50)   ubyte  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V08.Alive (fldOffset=0x0)" P-DEP
-;  V27 tmp24        [V27    ] (  3,  2.50)   ubyte  ->  [fp+0x21]  do-not-enreg[X] addr-exposed "field V08.Reported (fldOffset=0x1)" P-DEP
-;  V28 tmp25        [V28,T13] (  2,  2   )   ubyte  ->   x2         single-def "field V09.Alive (fldOffset=0x0)" P-INDEP
-;  V29 tmp26        [V29,T14] (  2,  2   )   ubyte  ->   x1         single-def "field V09.Reported (fldOffset=0x1)" P-INDEP
+;  V24 tmp21        [V24,T13] (  2,  2   )   ubyte  ->   x0         single-def "field V07.Alive (fldOffset=0x0)" P-INDEP
+;  V25 tmp22        [V25,T14] (  2,  2   )   ubyte  ->   x1         single-def "field V07.Reported (fldOffset=0x1)" P-INDEP
+;  V26 tmp23        [V26    ] (  3,  2.50)   ubyte  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V08.Alive (fldOffset=0x0)" P-DEP
+;  V27 tmp24        [V27    ] (  3,  2.50)   ubyte  ->  [fp+0x29]  do-not-enreg[X] addr-exposed "field V08.Reported (fldOffset=0x1)" P-DEP
+;  V28 tmp25        [V28,T15] (  2,  2   )   ubyte  ->   x2         single-def "field V09.Alive (fldOffset=0x0)" P-INDEP
+;  V29 tmp26        [V29,T16] (  2,  2   )   ubyte  ->   x1         single-def "field V09.Reported (fldOffset=0x1)" P-INDEP
 ;* V30 tmp27        [V30    ] (  0,  0   )   ubyte  ->  zero-ref    "field V12.Alive (fldOffset=0x0)" P-INDEP
 ;* V31 tmp28        [V31    ] (  0,  0   )   ubyte  ->  zero-ref    "field V12.Reported (fldOffset=0x1)" P-INDEP
-;  V32 tmp29        [V32,T17] (  2,  1   )   ubyte  ->   x1         single-def "field V14.Alive (fldOffset=0x0)" P-INDEP
-;  V33 tmp30        [V33,T18] (  2,  1   )   ubyte  ->   x2         single-def "field V14.Reported (fldOffset=0x1)" P-INDEP
-;  V34 tmp31        [V34    ] (  3,  4   )   ubyte  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V16.Alive (fldOffset=0x0)" P-DEP
-;  V35 tmp32        [V35    ] (  3,  4   )   ubyte  ->  [fp+0x19]  do-not-enreg[X] addr-exposed "field V16.Reported (fldOffset=0x1)" P-DEP
+;  V32 tmp29        [V32,T19] (  2,  1   )   ubyte  ->   x2         single-def "field V14.Alive (fldOffset=0x0)" P-INDEP
+;  V33 tmp30        [V33,T20] (  2,  1   )   ubyte  ->   x1         single-def "field V14.Reported (fldOffset=0x1)" P-INDEP
+;  V34 tmp31        [V34    ] (  3,  4   )   ubyte  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V16.Alive (fldOffset=0x0)" P-DEP
+;  V35 tmp32        [V35    ] (  3,  4   )   ubyte  ->  [fp+0x21]  do-not-enreg[X] addr-exposed "field V16.Reported (fldOffset=0x1)" P-DEP
 ;* V36 tmp33        [V36    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V18.Alive (fldOffset=0x0)" P-INDEP
 ;* V37 tmp34        [V37    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V18.Reported (fldOffset=0x1)" P-INDEP
-;  V38 tmp35        [V38,T15] (  2,  2   )   ubyte  ->   x0         single-def "field V19.Alive (fldOffset=0x0)" P-INDEP
-;  V39 tmp36        [V39,T16] (  2,  2   )   ubyte  ->   x1         single-def "field V19.Reported (fldOffset=0x1)" P-INDEP
-;  V40 tmp37        [V40,T07] (  3,  3   )  struct ( 8) [fp+0x10]  do-not-enreg[SF] "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
-;  V41 tmp38        [V41,T08] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;* V42 tmp39        [V42,T19] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V43 cse0         [V43,T05] (  4,  4   )    long  ->  x21         "CSE - aggressive"
+;  V38 tmp35        [V38,T17] (  2,  2   )   ubyte  ->   x0         single-def "field V19.Alive (fldOffset=0x0)" P-INDEP
+;  V39 tmp36        [V39,T18] (  2,  2   )   ubyte  ->   x1         single-def "field V19.Reported (fldOffset=0x1)" P-INDEP
+;  V40 tmp37        [V40,T10] (  3,  3   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
+;  V41 cse0         [V41,T05] (  4,  4   )    long  ->  x21         "CSE - aggressive"
+;  V42 cse1         [V42,T07] (  3,  3   )   byref  ->  x22         "CSE - aggressive"
+;  V43 cse2         [V43,T08] (  3,  3   )   byref  ->  x25         "CSE - aggressive"
+;  V44 cse3         [V44,T09] (  3,  3   )   byref  ->  x26         "CSE - aggressive"
 ;
-; Lcl frame size = 24
+; Lcl frame size = 32
 
 G_M21086_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x50]!
-            stp     x19, x20, [sp, #0x28]
-            stp     x21, x22, [sp, #0x38]
-            str     x23, [sp, #0x48]
+            stp     fp, lr, [sp, #-0x70]!
+            stp     x19, x20, [sp, #0x30]
+            stp     x21, x22, [sp, #0x40]
+            stp     x23, x24, [sp, #0x50]
+            stp     x25, x26, [sp, #0x60]
             mov     fp, sp
-            str     xzr, [fp, #0x20]   // [V08 tmp5]
+            str     xzr, [fp, #0x28]   // [V08 tmp5]
             mov     x19, x0
             ; gcrRegs +[x19]
             mov     x20, x1
             ; gcrRegs +[x20]
-                       ;; size=32 bbWeight=1 PerfScore 6.50
+                       ;; size=36 bbWeight=1 PerfScore 7.50
 G_M21086_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             mov     x0, x19
             ; gcrRegs +[x0]
@@ -89,7 +91,9 @@ G_M21086_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ; gcrRegs -[x0-x1]
             ldr     x2, [x20, #0x20]
             ; gcrRegs +[x2]
-            add     x1, x19, #116
+            add     x22, x19, #116
+            ; byrRegs +[x22]
+            mov     x1, x22
             ; byrRegs +[x1]
             mov     x0, x19
             ; gcrRegs +[x0]
@@ -100,31 +104,35 @@ G_M21086_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             blr     x3
             ; gcrRegs -[x0 x2]
             ; byrRegs -[x1]
-            ldr     x22, [x20, #0x28]
-            ; gcrRegs +[x22]
+            ldr     x23, [x20, #0x28]
+            ; gcrRegs +[x23]
             mov     x0, x19
             ; gcrRegs +[x0]
-            mov     x1, x22
+            mov     x1, x23
             ; gcrRegs +[x1]
             ldr     x2, [x21, #0x48]
             ldr     x2, [x2, #0x20]
             blr     x2
             ; gcrRegs -[x1]
             mov     x0, x19
-            mov     x1, x22
+            mov     x1, x23
             ; gcrRegs +[x1]
             movz    x2, #0xD1FFAB1E      // code for Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:AdjustConditionalState(Microsoft.CodeAnalysis.CSharp.BoundExpression):this
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #1 LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0-x1 x22]
-            ldrb    w22, [x19, #0x78]
-            ldrb    w23, [x19, #0x79]
+            ; gcrRegs -[x0-x1 x23]
+            ldrb    w23, [x19, #0x78]
+            ldrb    w24, [x19, #0x79]
             ldrb    w0, [x19, #0x76]
             ldrb    w1, [x19, #0x77]
-            strh    wzr, [x19, #0x78]
-            strh    wzr, [x19, #0x76]
+            add     x25, x19, #120
+            ; byrRegs +[x25]
+            strh    wzr, [x25]
+            add     x26, x19, #118
+            ; byrRegs +[x26]
+            strh    wzr, [x26]
             strb    wzr, [x19, #0x71]
             strb    w0, [x19, #0x74]
             strb    w1, [x19, #0x75]
@@ -143,11 +151,11 @@ G_M21086_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             cbz     x0, G_M21086_IG06
             ldrb    w2, [x0]
             ldrb    w1, [x0, #0x01]
-            strb    w2, [fp, #0x20]    // [V26 tmp23]
-            strb    w1, [fp, #0x21]    // [V27 tmp24]
-            add     x2, x19, #116
+            strb    w2, [fp, #0x28]    // [V26 tmp23]
+            strb    w1, [fp, #0x29]    // [V27 tmp24]
+            mov     x2, x22
             ; byrRegs +[x2]
-            add     x1, fp, #32    // [V08 tmp5]
+            add     x1, fp, #40    // [V08 tmp5]
             mov     x0, x19
             ; gcrRegs +[x0]
             ; byrRegs -[x0]
@@ -155,20 +163,20 @@ G_M21086_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ldr     x3, [x3, #0x10]
             blr     x3
             ; gcrRegs -[x0]
-            ; byrRegs -[x2]
+            ; byrRegs -[x2 x22]
             cbz     w0, G_M21086_IG04
-                       ;; size=252 bbWeight=1 PerfScore 94.50
-G_M21086_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+                       ;; size=264 bbWeight=1 PerfScore 96.00
+G_M21086_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=6000000 {x25 x26}, byref
             ldr     x0, [x19, #0x58]
             ; gcrRegs +[x0]
-            ldrb    w1, [fp, #0x20]    // [V26 tmp23]
-            ldrb    w2, [fp, #0x21]    // [V27 tmp24]
+            ldrb    w2, [fp, #0x28]    // [V26 tmp23]
+            ldrb    w1, [fp, #0x29]    // [V27 tmp24]
             ldrsb   wzr, [x0]
-            strb    w1, [fp, #0x10]    // [V40 tmp37]
-            strb    w2, [fp, #0x11]    // [V40 tmp37+0x01]
+            strb    w2, [fp, #0x18]    // [V40 tmp37]
+            strb    w1, [fp, #0x19]    // [V40 tmp37+0x01]
+            ldrh    w2, [fp, #0x18]    // [V40 tmp37]
             mov     x1, x20
             ; gcrRegs +[x1]
-            ldrh    w2, [fp, #0x10]    // [V40 tmp37]
             mov     w3, #1
             movz    x4, #0xD1FFAB1E      // code for <unknown method>
             movk    x4, #0xD1FFAB1E LSL #16
@@ -184,12 +192,12 @@ G_M21086_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             mov     w2, #1
             strb    w2, [x19, #0x70]
                        ;; size=84 bbWeight=0.50 PerfScore 13.75
-G_M21086_IG04:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
-            strb    w22, [fp, #0x18]   // [V34 tmp31]
-            strb    w23, [fp, #0x19]   // [V35 tmp32]
+G_M21086_IG04:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=6000000 {x25 x26}, byref
+            strb    w23, [fp, #0x20]   // [V34 tmp31]
+            strb    w24, [fp, #0x21]   // [V35 tmp32]
             ldr     x2, [x20, #0x18]
             ; gcrRegs +[x2]
-            add     x1, fp, #24    // [V16 tmp13]
+            add     x1, fp, #32    // [V16 tmp13]
             mov     x0, x19
             ; gcrRegs +[x0]
             movz    x3, #0xD1FFAB1E      // code for Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this
@@ -198,24 +206,26 @@ G_M21086_IG04:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs -[x0 x2 x20]
-            ldrb    w0, [fp, #0x18]    // [V34 tmp31]
-            ldrb    w1, [fp, #0x19]    // [V35 tmp32]
-            strh    wzr, [x19, #0x78]
-            strh    wzr, [x19, #0x76]
+            ldrb    w0, [fp, #0x20]    // [V34 tmp31]
+            ldrb    w1, [fp, #0x21]    // [V35 tmp32]
+            strh    wzr, [x25]
+            strh    wzr, [x26]
             strb    wzr, [x19, #0x71]
             strb    w0, [x19, #0x74]
             strb    w1, [x19, #0x75]
             mov     x0, xzr
                        ;; size=72 bbWeight=1 PerfScore 21.00
 G_M21086_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldr     x23, [sp, #0x48]
-            ldp     x21, x22, [sp, #0x38]
-            ldp     x19, x20, [sp, #0x28]
-            ldp     fp, lr, [sp], #0x50
+            ldp     x25, x26, [sp, #0x60]
+            ldp     x23, x24, [sp, #0x50]
+            ldp     x21, x22, [sp, #0x40]
+            ldp     x19, x20, [sp, #0x30]
+            ldp     fp, lr, [sp], #0x70
             ret     lr
-                       ;; size=20 bbWeight=1 PerfScore 6.00
+                       ;; size=24 bbWeight=1 PerfScore 6.00
 G_M21086_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x19] +[x20]
+            ; byrRegs -[x25-x26]
             mov     x1, x20
             ; gcrRegs +[x1]
...

+16 (+6.90%) : 25172.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:g_visitArgumentsAndUpdateCall|101(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)

@@ -8,9 +8,9 @@
 ; 0 inlinees with PGO data; 15 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
-;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
-;  V02 arg2         [V02,T03] (  3,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+;  V00 this         [V00,T01] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
+;  V01 arg1         [V01,T00] ( 15, 15   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
+;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (48) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -27,7 +27,7 @@
 ;* V16 tmp11        [V16    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
 ;* V17 tmp12        [V17    ] (  0,  0   )  struct ( 8) zero-ref    single-def "Inline return value spill temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V18 tmp13        [V18    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V19 tmp14        [V19,T04] (  2,  4   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V19 tmp14        [V19,T03] (  2,  4   )     ref  ->   x2         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V20 tmp15        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V03.array (fldOffset=0x0)" P-INDEP
 ;* V21 tmp16        [V21    ] (  0,  0   )     ref  ->  zero-ref    "field V06.array (fldOffset=0x0)" P-INDEP
 ;* V22 tmp17        [V22    ] (  0,  0   )     ref  ->  zero-ref    "field V08.array (fldOffset=0x0)" P-INDEP
@@ -37,30 +37,27 @@
 ;* V26 tmp21        [V26    ] (  0,  0   )    long  ->  zero-ref    "field V14._bits0 (fldOffset=0x8)" P-INDEP
 ;* V27 tmp22        [V27    ] (  0,  0   )     int  ->  zero-ref    "field V14._capacity (fldOffset=0x10)" P-INDEP
 ;* V28 tmp23        [V28    ] (  0,  0   )     ref  ->  zero-ref    "field V16.array (fldOffset=0x0)" P-INDEP
-;  V29 tmp24        [V29,T15] (  3,  2   )     ref  ->  x22         single-def "field V17.array (fldOffset=0x0)" P-INDEP
-;  V30 tmp25        [V30,T14] (  3,  2.50)     ref  ->   x2         single-def "field V18.array (fldOffset=0x0)" P-INDEP
-;  V31 tmp26        [V31    ] (  2,  4   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
-;  V32 tmp27        [V32,T00] ( 12, 24   )     ref  ->  x19         single-def "argument with side effect"
-;  V33 tmp28        [V33,T05] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V34 tmp29        [V34,T06] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
-;  V35 tmp30        [V35,T07] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V36 tmp31        [V36,T08] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
-;  V37 tmp32        [V37,T09] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
-;  V38 tmp33        [V38,T11] (  2,  4   )     int  ->   x6         "argument with side effect"
-;  V39 tmp34        [V39,T12] (  2,  4   )     int  ->   x7         "argument with side effect"
-;  V40 tmp35        [V40,T13] (  2,  4   )     int  ->   x8         "argument with side effect"
-;  V41 tmp36        [V41,T10] (  2,  4   )     ref  ->   x9         single-def "argument with side effect"
+;  V29 tmp24        [V29,T12] (  3,  2   )     ref  ->   x3         single-def "field V17.array (fldOffset=0x0)" P-INDEP
+;  V30 tmp25        [V30,T11] (  3,  2.50)     ref  ->   x2         single-def "field V18.array (fldOffset=0x0)" P-INDEP
+;  V31 tmp26        [V31    ] (  2,  4   )  struct (24) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
+;  V32 tmp27        [V32,T04] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
+;  V33 tmp28        [V33,T05] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
+;  V34 tmp29        [V34,T06] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
+;  V35 tmp30        [V35,T08] (  2,  4   )     int  ->   x7         "argument with side effect"
+;  V36 tmp31        [V36,T09] (  2,  4   )     int  ->   x0         "argument with side effect"
+;  V37 tmp32        [V37,T10] (  2,  4   )     int  ->   x1         "argument with side effect"
+;  V38 tmp33        [V38,T07] (  2,  4   )     ref  ->   x8         single-def "argument with side effect"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 72
 
 G_M26558_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            sub     sp, sp, #128
+            sub     sp, sp, #112
             stp     fp, lr, [sp, #0x30]
-            stp     x19, x20, [sp, #0x60]
-            stp     x21, x22, [sp, #0x70]
+            stp     x19, x20, [sp, #0x58]
+            str     x21, [sp, #0x68]
             add     fp, sp, #48
-            stp     xzr, xzr, [fp, #0x18]  // [V31 tmp26], [V31 tmp26+0x08]
-            str     xzr, [fp, #0x28]   // [V31 tmp26+0x10]
+            stp     xzr, xzr, [fp, #0x10]  // [V31 tmp26], [V31 tmp26+0x08]
+            str     xzr, [fp, #0x20]   // [V31 tmp26+0x10]
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     x19, x1
@@ -75,12 +72,12 @@ G_M26558_IG02:        ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=00
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M26558_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
-            mov     x22, xzr
-            ; gcrRegs +[x22]
+            mov     x3, xzr
+            ; gcrRegs +[x3]
             b       G_M26558_IG05
                        ;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M26558_IG04:        ; bbWeight=0.50, gcrefRegs=380004 {x2 x19 x20 x21}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x22] +[x2]
+            ; gcrRegs -[x3] +[x2]
             mov     x0, x20
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -92,73 +89,79 @@ G_M26558_IG04:        ; bbWeight=0.50, gcrefRegs=380004 {x2 x19 x20 x21}, byrefR
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs -[x2]
-            mov     x22, x0
-            ; gcrRegs +[x22]
-                       ;; size=40 bbWeight=0.50 PerfScore 4.00
-G_M26558_IG05:        ; bbWeight=1, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            ldr     x0, [x19, #0x18]
-            ; gcrRegs +[x0]
-            ldrsb   wzr, [x20]
-            mov     x1, x21
-            ; gcrRegs +[x1]
-            ldr     x2, [x19, #0x28]
-            ; gcrRegs +[x2]
-            mov     x3, x22
+            mov     x3, x0
             ; gcrRegs +[x3]
-            ldp     x4, x5, [x19, #0x40]
-            ; gcrRegs +[x4-x5]
-            ldrb    w6, [x19, #0x30]
-            ldrb    w7, [x19, #0x31]
-            ldrb    w8, [x19, #0x32]
-            ldr     x9, [x19, #0x50]
-            ; gcrRegs +[x9]
-                       ;; size=40 bbWeight=1 PerfScore 26.00
+                       ;; size=40 bbWeight=0.50 PerfScore 4.00
+G_M26558_IG05:        ; bbWeight=1, gcrefRegs=380008 {x3 x19 x20 x21}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0]
+            ldr     x2, [x19, #0x18]
+            ; gcrRegs +[x2]
+            ldrsb   wzr, [x20]
+            ldr     x4, [x19, #0x28]
+            ; gcrRegs +[x4]
+            ldp     x5, x6, [x19, #0x40]
+            ; gcrRegs +[x5-x6]
+            ldrb    w7, [x19, #0x30]
+            ldrb    w0, [x19, #0x31]
+            ldrb    w1, [x19, #0x32]
+            ldr     x8, [x19, #0x50]
+            ; gcrRegs +[x8]
+                       ;; size=32 bbWeight=1 PerfScore 25.00
 G_M26558_IG06:        ; bbWeight=1, nogc, extend
-            ldp     x10, x11, [x19, #0x58]
-            stp     x10, x11, [fp, #0x18]
-            ldr     x10, [x19, #0x68]
-            str     x10, [fp, #0x28]
+            ldp     x9, x10, [x19, #0x58]
+            stp     x9, x10, [fp, #0x10]
+            ldr     x9, [x19, #0x68]
+            str     x9, [fp, #0x20]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M26558_IG07:        ; bbWeight=1, extend
-            ldrb    w10, [x19, #0x33]
-            strb    w10, [sp, #0x18]   // [V05 OutArgs+0x18]
-            ldr     x10, [x19, #0x70]
-            ; gcrRegs +[x10]
-            str     x10, [sp, #0x20]   // [V05 OutArgs+0x20]
-            str     x0, [sp, #0x28]    // [V05 OutArgs+0x28]
+            ldrb    w9, [x19, #0x33]
+            strb    w9, [sp, #0x18]    // [V05 OutArgs+0x18]
+            ldr     x9, [x19, #0x70]
+            ; gcrRegs +[x9]
+            str     x9, [sp, #0x20]    // [V05 OutArgs+0x20]
+            str     x2, [sp, #0x28]    // [V05 OutArgs+0x28]
+            mov     x2, x4
+            mov     x4, x5
+            mov     x5, x6
+            mov     w6, w7
+            ; gcrRegs -[x6]
+            mov     w7, w0
+            strb    w1, [sp]   // [V05 OutArgs]
+            str     x8, [sp, #0x08]    // [V05 OutArgs+0x08]
+            add     x0, fp, #16    // [V31 tmp26]
+            str     x0, [sp, #0x10]    // [V05 OutArgs+0x10]
             mov     x0, x19
-            strb    w8, [sp]   // [V05 OutArgs]
-            str     x9, [sp, #0x08]    // [V05 OutArgs+0x08]
-            add     x8, fp, #24    // [V31 tmp26]
-            str     x8, [sp, #0x10]    // [V05 OutArgs+0x10]
+            ; gcrRegs +[x0]
+            mov     x1, x21
+            ; gcrRegs +[x1]
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
+            ; gcrRegs -[x8]
             movk    x8, #0xD1FFAB1E LSL #16
             movk    x8, #1 LSL #32
             ldr     x8, [x8]
             blr     x8
-            ; gcrRegs -[x1-x5 x9-x10 x19-x22]
-                       ;; size=60 bbWeight=1 PerfScore 18.50
+            ; gcrRegs -[x1-x5 x9 x19-x21]
+                       ;; size=84 bbWeight=1 PerfScore 21.50
 G_M26558_IG08:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x70]
-            ldp     x19, x20, [sp, #0x60]
+            ldr     x21, [sp, #0x68]
+            ldp     x19, x20, [sp, #0x58]
             ldp     fp, lr, [sp, #0x30]
-            add     sp, sp, #128
+            add     sp, sp, #112
             ret     lr
-                       ;; size=20 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 5.50
 
-; Total bytes of code 232, prolog size 28, PerfScore 74.25, instruction count 58, allocated bytes for code 232 (MethodHash=faef9841) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
+; Total bytes of code 248, prolog size 28, PerfScore 77.25, instruction count 62, allocated bytes for code 248 (MethodHash=faef9841) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 3
   Epilog Count      : 1
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 58 (0x0003a) Actual length = 232 (0x0000e8)
+  Function Length   : 62 (0x0003e) Actual length = 248 (0x0000f8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -166,9 +169,12 @@ Unwind Info:
   ---- Unwind codes ----
     E2 06       add_fp 6 (0x06); add fp, sp, #48
     ---- Epilog start at index 2 ----
-    E6          save_next
-    C8 0C       save_regp X#0 Z#12 (0x0C); stp x19, x20, [sp, #96]
+    D0 8D       save_reg X#2 Z#13 (0x0D); str x21, [sp, #104]
+    C8 0B       save_regp X#0 Z#11 (0x0B); stp x19, x20, [sp, #88]
     46          save_fplr #6 (0x06); stp fp, lr, [sp, #48]
-    08          alloc_s #8 (0x08); sub sp, sp, #128 (0x080)
+    07          alloc_s #7 (0x07); sub sp, sp, #112 (0x070)
+    E4          end
+    E4          end
+    E4          end
     E4          end
 

+16 (+12.50%) : 1033.dasm - System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)

@@ -8,88 +8,86 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  9,  6.50)     ref  ->  [fp+0x18]  this class-hnd single-def <System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]>
+;  V00 this         [V00,T00] (  9,  6.50)     ref  ->  x19         this class-hnd single-def <System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]>
 ;  V01 loc0         [V01,T02] (  3,  2.50)     ref  ->   x1         class-hnd exact single-def <<unknown class>>
-;  V02 loc1         [V02,T03] (  3,  2.50)     int  ->   x3        
+;  V02 loc1         [V02,T03] (  3,  2.50)     int  ->   x2        
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04    ] (  2,  2   )  struct (32) [fp+0x20]  do-not-enreg[XS] addr-exposed "by-value struct argument" <BenchmarkDotNet.Reports.Measurement>
-;  V05 tmp2         [V05,T01] (  3,  3   )     ref  ->   x2         single-def "argument with side effect"
-;  V06 cse0         [V06,T04] (  3,  2.50)     int  ->   x2         "CSE - aggressive"
-;  V07 cse1         [V07,T05] (  2,  2   )     int  ->   x4         "CSE - aggressive"
+;  V04 tmp1         [V04    ] (  2,  2   )  struct (32) [fp+0x18]  do-not-enreg[XS] addr-exposed "by-value struct argument" <BenchmarkDotNet.Reports.Measurement>
+;  V05 tmp2         [V05,T01] (  3,  3   )     ref  ->   x3         single-def "argument with side effect"
+;  V06 cse0         [V06,T04] (  3,  2.50)     int  ->   x0         "CSE - aggressive"
+;  V07 cse1         [V07,T05] (  2,  2   )     int  ->   x3         "CSE - aggressive"
 ;
-; Lcl frame size = 48
+; Lcl frame size = 40
 
 G_M7274_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
+            str     x19, [sp, #0x38]
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M7274_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x0]
-            ldr     x1, [x0, #0x18]
+            mov     x19, x0
+            ; gcrRegs +[x19]
+                       ;; size=16 bbWeight=1 PerfScore 3.00
+G_M7274_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            ldr     x1, [x19, #0x18]
             ; gcrRegs +[x1]
-            ldr     w2, [x0, #0x14]
-            sub     w3, w2, #1
-            ldr     w4, [x1, #0x08]
-            cmp     w4, w3
+            ldr     w0, [x19, #0x14]
+            sub     w2, w0, #1
+            ldr     w3, [x1, #0x08]
+            cmp     w3, w2
             bls     G_M7274_IG05
                        ;; size=24 bbWeight=1 PerfScore 11.00
-G_M7274_IG03:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref
-            add     w2, w2, #1
-            str     w2, [x0, #0x14]
-            str     x0, [fp, #0x18]    // [V00 this]
-            ; GC ptr vars +{V00}
-            ldr     x2, [x0, #0x20]
-            ; gcrRegs +[x2]
-            ubfiz   x3, x3, #5, #32
-            add     x3, x3, #16
-            add     x1, x1, x3
+G_M7274_IG03:        ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
+            add     w0, w0, #1
+            str     w0, [x19, #0x14]
+            ldr     x3, [x19, #0x20]
+            ; gcrRegs +[x3]
+            ubfiz   x0, x2, #5, #32
+            add     x0, x0, #16
+            add     x1, x1, x0
             ; gcrRegs -[x1]
             ; byrRegs +[x1]
-            ldp     q16, q17, [x1]
-            stp     q16, q17, [fp, #0x20]
-            add     x1, fp, #32    // [V04 tmp1]
+            ldp     x0, x2, [x1]
+            stp     x0, x2, [fp, #0x18]
+            ldp     x0, x2, [x1, #0x10]
+            stp     x0, x2, [fp, #0x28]
+            add     x1, fp, #24    // [V04 tmp1]
             ; byrRegs -[x1]
-            ldr     x0, [x2, #0x08]
-            ldr     x2, [x2, #0x18]
-            ; gcrRegs -[x2]
-            blr     x2
-            ; gcrRegs -[x0]
-            ldr     x0, [fp, #0x18]    // [V00 this]
+            ldr     x0, [x3, #0x08]
             ; gcrRegs +[x0]
-            str     d0, [x0, #0x08]
+            ldr     x2, [x3, #0x18]
+            blr     x2
+            ; gcrRegs -[x0 x3]
+            str     d0, [x19, #0x08]
             mov     w0, #1
-            ; gcrRegs -[x0]
-                       ;; size=64 bbWeight=0.50 PerfScore 11.25
+                       ;; size=64 bbWeight=0.50 PerfScore 12.75
 G_M7274_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+            ldr     x19, [sp, #0x38]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M7274_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x0]
-            ; GC ptr vars -{V00}
-            str     xzr, [x0, #0x08]
-            movn    w1, #0
-            str     w1, [x0, #0x14]
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+G_M7274_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+            str     xzr, [x19, #0x08]
+            movn    w0, #0
+            str     w0, [x19, #0x14]
             mov     w0, wzr
-            ; gcrRegs -[x0]
                        ;; size=16 bbWeight=0.50 PerfScore 1.50
 G_M7274_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+            ldr     x19, [sp, #0x38]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 128, prolog size 8, PerfScore 27.25, instruction count 32, allocated bytes for code 128 (MethodHash=937fe395) for method System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 144, prolog size 12, PerfScore 32.25, instruction count 36, allocated bytes for code 144 (MethodHash=937fe395) for method System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 1
+  Code Words        : 2
   Epilog Count      : 2
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 32 (0x00020) Actual length = 128 (0x000080)
+  Function Length   : 36 (0x00024) Actual length = 144 (0x000090)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -100,7 +98,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
+    D0 07       save_reg X#0 Z#7 (0x07); str x19, [sp, #56]
     87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
     E4          end
     E4          end
+    E4          end
+    E4          end
 

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.osx.arm64.checked.mch 865 206 27 632 -3,176 +440
benchmarks.run_pgo.osx.arm64.checked.mch 2,698 1,803 27 868 -41,916 +256
benchmarks.run_tiered.osx.arm64.checked.mch 800 630 12 158 -13,976 +144
coreclr_tests.run.osx.arm64.checked.mch 7,512 5,672 104 1,736 -230,388 +1,320
libraries.crossgen2.osx.arm64.checked.mch 4,811 967 183 3,661 -14,380 +2,256
libraries.pmi.osx.arm64.checked.mch 7,464 1,398 329 5,737 -15,472 +3,672
libraries_tests.run.osx.arm64.Release.mch 26,840 21,175 360 5,305 -458,040 +4,796
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 18,044 3,412 411 14,221 -34,996 +4,020
realworld.run.osx.arm64.checked.mch 1,558 399 68 1,091 -9,320 +988
70,592 35,662 1,521 33,409 -821,664 +17,892

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.osx.arm64.checked.mch 24,851 4 24,847 4 (0.02%) 4 (0.02%)
benchmarks.run_pgo.osx.arm64.checked.mch 84,581 48,412 36,169 93 (0.11%) 93 (0.11%)
benchmarks.run_tiered.osx.arm64.checked.mch 48,257 37,318 10,939 4 (0.01%) 4 (0.01%)
coreclr_tests.run.osx.arm64.checked.mch 585,830 357,177 228,653 391 (0.07%) 391 (0.07%)
libraries.crossgen2.osx.arm64.checked.mch 233,353 15 233,338 0 (0.00%) 0 (0.00%)
libraries.pmi.osx.arm64.checked.mch 314,708 18 314,690 7 (0.00%) 8 (0.00%)
libraries_tests.run.osx.arm64.Release.mch 637,120 466,371 170,749 2,745 (0.43%) 2,746 (0.43%)
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 302,464 21,558 280,906 11 (0.00%) 11 (0.00%)
realworld.run.osx.arm64.checked.mch 31,543 3 31,540 1 (0.00%) 1 (0.00%)
2,262,707 930,876 1,331,831 3,256 (0.14%) 3,258 (0.14%)

jit-analyze output

benchmarks.run.osx.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 11178360 (overridden on cmd)
Total bytes of diff: 11175624 (overridden on cmd)
Total bytes of delta: -2736 (-0.02 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         112 : 21167.dasm (1.00 % of base)
          60 : 1155.dasm (5.79 % of base)
          56 : 4828.dasm (0.45 % of base)
          48 : 21155.dasm (0.79 % of base)
          20 : 22907.dasm (1.24 % of base)
          16 : 2431.dasm (0.46 % of base)
          16 : 1356.dasm (12.50 % of base)
          12 : 18543.dasm (0.31 % of base)
          12 : 17482.dasm (0.28 % of base)
          12 : 1103.dasm (0.96 % of base)
           8 : 13874.dasm (1.56 % of base)
           8 : 24736.dasm (1.06 % of base)
           4 : 12070.dasm (1.15 % of base)
           4 : 17479.dasm (0.15 % of base)
           4 : 17572.dasm (0.17 % of base)
           4 : 1819.dasm (0.30 % of base)
           4 : 4449.dasm (0.75 % of base)
           4 : 11258.dasm (0.76 % of base)
           4 : 10215.dasm (0.30 % of base)
           4 : 17998.dasm (0.70 % of base)

Top file improvements (bytes):
        -440 : 7254.dasm (-10.74 % of base)
        -140 : 7335.dasm (-6.01 % of base)
        -112 : 4383.dasm (-6.78 % of base)
         -84 : 3955.dasm (-3.43 % of base)
         -76 : 23028.dasm (-12.42 % of base)
         -64 : 19443.dasm (-9.70 % of base)
         -64 : 19554.dasm (-7.41 % of base)
         -60 : 3928.dasm (-1.99 % of base)
         -48 : 14551.dasm (-2.17 % of base)
         -44 : 17626.dasm (-1.68 % of base)
         -40 : 7209.dasm (-1.44 % of base)
         -36 : 2999.dasm (-0.33 % of base)
         -36 : 4001.dasm (-2.47 % of base)
         -36 : 938.dasm (-6.04 % of base)
         -32 : 14570.dasm (-12.90 % of base)
         -32 : 14996.dasm (-3.15 % of base)
         -32 : 2020.dasm (-10.26 % of base)
         -32 : 21393.dasm (-12.90 % of base)
         -28 : 3797.dasm (-3.83 % of base)
         -28 : 3804.dasm (-3.06 % of base)

60 total files with Code Size differences (34 improved, 26 regressed), 20 unchanged.

Top method regressions (bytes):
         112 (1.00 % of base) : 21167.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
          60 (5.79 % of base) : 1155.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
          56 (0.45 % of base) : 4828.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
          48 (0.79 % of base) : 21155.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (FullOpts)
          20 (1.24 % of base) : 22907.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.Text.RegularExpressions.RegexCache+Key,System.__Canon]:TryRemoveInternal(System.Text.RegularExpressions.RegexCache+Key,byref,ubyte,System.__Canon):ubyte:this (FullOpts)
          16 (0.46 % of base) : 2431.dasm - ProtoBuf.Internal.Serializers.TypeSerializer`1[System.__Canon]:ProtoBuf.Internal.Serializers.IRuntimeProtoSerializerNode.EmitRead(ProtoBuf.Compiler.CompilerContext,ProtoBuf.Compiler.Local):this (FullOpts)
          16 (12.50 % of base) : 1356.dasm - System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
          12 (0.28 % of base) : 17482.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeDeclaration(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration:this (FullOpts)
          12 (0.31 % of base) : 18543.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:MakeParameters[System.__Canon,System.__Canon,System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,System.__Canon,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[System.__Canon],byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte,ubyte,int,System.Func`12[System.__Canon,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.__Canon,ubyte,int,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,ubyte,ubyte,System.__Canon,System.__Canon],ubyte):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (FullOpts)
          12 (0.96 % of base) : 1103.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (FullOpts)
           8 (1.06 % of base) : 24736.dasm - BitOps:DoBitfieldIteration(int[],int[],int,byref):long (FullOpts)
           8 (1.56 % of base) : 13874.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindStartPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],byref,int,byref,byref):ubyte:this (FullOpts)
           4 (0.17 % of base) : 17572.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:CreateRootSingleNamespaceDeclaration(Microsoft.CodeAnalysis.CSharp.Syntax.CompilationUnitSyntax,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.SingleNamespaceOrTypeDeclaration],ubyte):Microsoft.CodeAnalysis.CSharp.RootSingleNamespaceDeclaration:this (FullOpts)
           4 (0.15 % of base) : 17479.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitNamespaceChildren(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.SingleNamespaceOrTypeDeclaration]:this (FullOpts)
           4 (0.74 % of base) : 19252.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder:GetFakeSymbolTokenForIL(Microsoft.Cci.IReference,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag):uint:this (FullOpts)
           4 (0.70 % of base) : 17998.dasm - Microsoft.CodeAnalysis.PEModule:FindTargetAttribute(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.AttributeDescription,byref):Microsoft.CodeAnalysis.PEModule+AttributeInfo (FullOpts)
           4 (0.97 % of base) : 2024.dasm - Microsoft.Extensions.Logging.Logger:<Log>g__LoggerLog|14_0[Microsoft.Extensions.Logging.LoggerMessage+LogValues`2[int,System.__Canon]](int,Microsoft.Extensions.Logging.EventId,Microsoft.Extensions.Logging.ILogger,System.Exception,System.Func`3[Microsoft.Extensions.Logging.LoggerMessage+LogValues`2[int,System.__Canon],System.__Canon,System.__Canon],byref,byref) (FullOpts)
           4 (0.30 % of base) : 10215.dasm - Sigil.Impl.RollingVerifier+<>c__DisplayClass16_1:<RemoveUnnecessaryVerifiers>b__1(Sigil.Impl.LinqStack`1[Sigil.Impl.LinqList`1[Sigil.Impl.TypeOnStack]],int):int:this (FullOpts)
           4 (0.30 % of base) : 1819.dasm - System.Collections.Hashtable:Insert(System.Object,System.Object,ubyte):this (FullOpts)
           4 (0.28 % of base) : 21578.dasm - System.Diagnostics.Process:ForkAndExecProcess(System.Diagnostics.ProcessStartInfo,System.String,System.String[],System.String[],System.String,ubyte,uint,uint,uint[],byref,byref,byref,ubyte,ubyte):ubyte:this (FullOpts)

Top method improvements (bytes):
        -440 (-10.74 % of base) : 7254.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -140 (-6.01 % of base) : 7335.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -112 (-6.78 % of base) : 4383.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
         -84 (-3.43 % of base) : 3955.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetFieldTokenNoLock(System.Reflection.FieldInfo):int:this (FullOpts)
         -76 (-12.42 % of base) : 23028.dasm - Benchstone.MDBenchF.MDLLoops:Test():ubyte:this (FullOpts)
         -64 (-9.70 % of base) : 19443.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (FullOpts)
         -64 (-7.41 % of base) : 19554.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__77:MoveNext():ubyte:this (FullOpts)
         -60 (-1.99 % of base) : 3928.dasm - System.Reflection.Emit.RuntimeTypeBuilder:CreateTypeNoLock():System.Reflection.TypeInfo:this (FullOpts)
         -48 (-2.17 % of base) : 14551.dasm - System.Xml.Schema.XsdDateTime+Parser:Parse(System.String,int):ubyte:this (FullOpts)
         -44 (-1.68 % of base) : 17626.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:TryAddAssembly(Microsoft.CodeAnalysis.AssemblyIdentity,Microsoft.CodeAnalysis.MetadataReference,int,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Location,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],ubyte):Microsoft.CodeAnalysis.MetadataReference:this (FullOpts)
         -40 (-1.44 % of base) : 7209.dasm - Newtonsoft.Json.Serialization.JsonArrayContract:.ctor(System.Type):this (FullOpts)
         -36 (-2.47 % of base) : 4001.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMemberRefToken(System.Reflection.MethodBase,System.Type[]):int:this (FullOpts)
         -36 (-6.04 % of base) : 938.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo:Configure():this (FullOpts)
         -36 (-0.33 % of base) : 2999.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -32 (-3.15 % of base) : 14996.dasm - Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser:ParseStream(System.IO.Stream):System.Collections.Generic.Dictionary`2[System.String,System.String]:this (FullOpts)
         -32 (-10.26 % of base) : 2020.dasm - Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass12_0`2[int,System.__Canon]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,int,System.__Canon,System.Exception):this (FullOpts)
         -32 (-12.90 % of base) : 14570.dasm - System.Text.Json.Document.Tests.Perf_EnumerateArray:Parse():this (FullOpts)
         -32 (-12.90 % of base) : 21393.dasm - System.Text.Json.Document.Tests.Perf_EnumerateObject:Parse():this (FullOpts)
         -28 (-3.83 % of base) : 3797.dasm - System.Reflection.Emit.RuntimeMethodBuilder:GetTokenNoLock():int:this (FullOpts)
         -28 (-3.06 % of base) : 3804.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenInternal(System.Reflection.MethodBase,System.Type[],ubyte):int:this (FullOpts)

Top method regressions (percentages):
          16 (12.50 % of base) : 1356.dasm - System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
          60 (5.79 % of base) : 1155.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
           4 (1.82 % of base) : 6105.dasm - System.Text.Json.JsonDocument:ParseValue(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
           8 (1.56 % of base) : 13874.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindStartPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],byref,int,byref,byref):ubyte:this (FullOpts)
          20 (1.24 % of base) : 22907.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.Text.RegularExpressions.RegexCache+Key,System.__Canon]:TryRemoveInternal(System.Text.RegularExpressions.RegexCache+Key,byref,ubyte,System.__Canon):ubyte:this (FullOpts)
           4 (1.15 % of base) : 12070.dasm - System.Runtime.Serialization.BitFlagsGenerator:LoadArray():this (FullOpts)
           8 (1.06 % of base) : 24736.dasm - BitOps:DoBitfieldIteration(int[],int[],int,byref):long (FullOpts)
           4 (1.02 % of base) : 11269.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor+Cache`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:EvictStaleCacheEntries(long):this (FullOpts)
         112 (1.00 % of base) : 21167.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
           4 (0.97 % of base) : 2024.dasm - Microsoft.Extensions.Logging.Logger:<Log>g__LoggerLog|14_0[Microsoft.Extensions.Logging.LoggerMessage+LogValues`2[int,System.__Canon]](int,Microsoft.Extensions.Logging.EventId,Microsoft.Extensions.Logging.ILogger,System.Exception,System.Func`3[Microsoft.Extensions.Logging.LoggerMessage+LogValues`2[int,System.__Canon],System.__Canon,System.__Canon],byref,byref) (FullOpts)
          12 (0.96 % of base) : 1103.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (FullOpts)
          48 (0.79 % of base) : 21155.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (FullOpts)
           4 (0.76 % of base) : 11258.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitMemberAccessor:CreatePropertySetter(System.Reflection.PropertyInfo,System.Type):System.Reflection.Emit.DynamicMethod (FullOpts)
           4 (0.75 % of base) : 4449.dasm - System.Formats.Asn1.AsnWriter:WriteObjectIdentifier(System.ReadOnlySpan`1[ushort],System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this (FullOpts)
           4 (0.74 % of base) : 19252.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder:GetFakeSymbolTokenForIL(Microsoft.Cci.IReference,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag):uint:this (FullOpts)
           4 (0.70 % of base) : 17998.dasm - Microsoft.CodeAnalysis.PEModule:FindTargetAttribute(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.AttributeDescription,byref):Microsoft.CodeAnalysis.PEModule+AttributeInfo (FullOpts)
           4 (0.60 % of base) : 22594.dasm - V8.Crypto.BigInteger:rShiftTo(int,V8.Crypto.BigInteger):this (FullOpts)
          16 (0.46 % of base) : 2431.dasm - ProtoBuf.Internal.Serializers.TypeSerializer`1[System.__Canon]:ProtoBuf.Internal.Serializers.IRuntimeProtoSerializerNode.EmitRead(ProtoBuf.Compiler.CompilerContext,ProtoBuf.Compiler.Local):this (FullOpts)
          56 (0.45 % of base) : 4828.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
          12 (0.31 % of base) : 18543.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:MakeParameters[System.__Canon,System.__Canon,System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,System.__Canon,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[System.__Canon],byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte,ubyte,int,System.Func`12[System.__Canon,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.__Canon,ubyte,int,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,ubyte,ubyte,System.__Canon,System.__Canon],ubyte):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (FullOpts)

Top method improvements (percentages):
         -20 (-14.29 % of base) : 19404.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
         -16 (-14.29 % of base) : 11697.dasm - System.Buffers.Text.Tests.Utf8FormatterTests:FormatterDateTimeOffsetNow(System.DateTimeOffset):ubyte:this (FullOpts)
         -16 (-13.33 % of base) : 24121.dasm - Span.IndexerBench:SameIndex2():ubyte:this (FullOpts)
         -32 (-12.90 % of base) : 14570.dasm - System.Text.Json.Document.Tests.Perf_EnumerateArray:Parse():this (FullOpts)
         -32 (-12.90 % of base) : 21393.dasm - System.Text.Json.Document.Tests.Perf_EnumerateObject:Parse():this (FullOpts)
         -16 (-12.50 % of base) : 4388.dasm - System.Formats.Asn1.AsnDecoder:ReadIntegerBytes(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.ReadOnlySpan`1[ubyte] (FullOpts)
         -76 (-12.42 % of base) : 23028.dasm - Benchstone.MDBenchF.MDLLoops:Test():ubyte:this (FullOpts)
         -16 (-12.12 % of base) : 4235.dasm - System.Formats.Asn1.AsnDecoder:TryReadPrimitiveOctetString(System.ReadOnlySpan`1[ubyte],int,byref,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):ubyte (FullOpts)
        -440 (-10.74 % of base) : 7254.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
         -32 (-10.26 % of base) : 2020.dasm - Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass12_0`2[int,System.__Canon]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,int,System.__Canon,System.Exception):this (FullOpts)
         -64 (-9.70 % of base) : 19443.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (FullOpts)
         -16 (-9.52 % of base) : 4215.dasm - System.Formats.Asn1.AsnDecoder:TryReadInt32(System.ReadOnlySpan`1[ubyte],int,byref,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):ubyte (FullOpts)
         -64 (-7.41 % of base) : 19554.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__77:MoveNext():ubyte:this (FullOpts)
         -16 (-6.90 % of base) : 4222.dasm - System.Formats.Asn1.AsnDecoder:ReadObjectIdentifier(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.String (FullOpts)
        -112 (-6.78 % of base) : 4383.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
          -8 (-6.25 % of base) : 11065.dasm - System.Text.Json.Serialization.Tests.ReadJson`1[int]:DeserializeFromUtf8Bytes():int:this (FullOpts)
          -8 (-6.06 % of base) : 6620.dasm - System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
         -36 (-6.04 % of base) : 938.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo:Configure():this (FullOpts)
        -140 (-6.01 % of base) : 7335.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
         -20 (-5.81 % of base) : 4501.dasm - System.Formats.Asn1.AsnDecoder:ReadGeneralizedTime(System.ReadOnlySpan`1[ubyte],int,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):System.DateTimeOffset (FullOpts)


benchmarks.run_pgo.osx.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 34671272 (overridden on cmd)
Total bytes of diff: 34629612 (overridden on cmd)
Total bytes of delta: -41660 (-0.12 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          16 : 31567.dasm (4.35 % of base)
          16 : 32082.dasm (0.42 % of base)
          16 : 33998.dasm (0.42 % of base)
          16 : 45404.dasm (0.43 % of base)
          16 : 33866.dasm (4.35 % of base)
          16 : 37404.dasm (0.43 % of base)
          16 : 32083.dasm (3.23 % of base)
          16 : 40168.dasm (0.42 % of base)
          16 : 44393.dasm (0.44 % of base)
          12 : 31568.dasm (4.29 % of base)
          12 : 19654.dasm (0.89 % of base)
          12 : 31555.dasm (5.26 % of base)
          12 : 31566.dasm (2.97 % of base)
          12 : 33867.dasm (5.26 % of base)
           4 : 31560.dasm (0.94 % of base)
           4 : 33871.dasm (1.30 % of base)
           4 : 44400.dasm (0.03 % of base)
           4 : 45411.dasm (0.03 % of base)
           4 : 63609.dasm (5.88 % of base)
           4 : 69179.dasm (1.00 % of base)

Top file improvements (bytes):
        -288 : 27644.dasm (-1.44 % of base)
        -288 : 54278.dasm (-5.22 % of base)
        -272 : 49479.dasm (-5.30 % of base)
        -248 : 51044.dasm (-10.58 % of base)
        -248 : 54012.dasm (-9.63 % of base)
        -208 : 62592.dasm (-5.44 % of base)
        -196 : 54632.dasm (-4.73 % of base)
        -192 : 49155.dasm (-1.81 % of base)
        -188 : 56429.dasm (-3.07 % of base)
        -184 : 54245.dasm (-2.36 % of base)
        -176 : 11189.dasm (-2.57 % of base)
        -172 : 50104.dasm (-2.50 % of base)
        -172 : 50175.dasm (-3.58 % of base)
        -168 : 22618.dasm (-2.34 % of base)
        -168 : 6953.dasm (-4.11 % of base)
        -160 : 50569.dasm (-4.65 % of base)
        -152 : 51325.dasm (-2.76 % of base)
        -152 : 56029.dasm (-2.85 % of base)
        -152 : 6934.dasm (-5.41 % of base)
        -144 : 23558.dasm (-4.57 % of base)

76 total files with Code Size differences (51 improved, 25 regressed), 20 unchanged.

Top method regressions (bytes):
          16 (0.42 % of base) : 32082.dasm - System.Security.Cryptography.Asn1.Pkcs12.PfxAsn:VerifyMac(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte]):ubyte:this (Tier1)
          16 (0.42 % of base) : 33998.dasm - System.Security.Cryptography.Asn1.Pkcs12.PfxAsn:VerifyMac(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte]):ubyte:this (Tier1)
          16 (0.43 % of base) : 45404.dasm - System.Security.Cryptography.Asn1.Pkcs12.PfxAsn:VerifyMac(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte]):ubyte:this (Tier1)
          16 (0.43 % of base) : 37404.dasm - System.Security.Cryptography.Asn1.Pkcs12.PfxAsn:VerifyMac(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte]):ubyte:this (Tier1)
          16 (0.42 % of base) : 40168.dasm - System.Security.Cryptography.Asn1.Pkcs12.PfxAsn:VerifyMac(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte]):ubyte:this (Tier1)
          16 (0.44 % of base) : 44393.dasm - System.Security.Cryptography.Asn1.Pkcs12.PfxAsn:VerifyMac(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte]):ubyte:this (Tier1)
          16 (4.35 % of base) : 31567.dasm - System.Security.Cryptography.IncrementalHash:AppendData(System.ReadOnlySpan`1[ubyte]):this (Tier1)
          16 (4.35 % of base) : 33866.dasm - System.Security.Cryptography.IncrementalHash:AppendData(System.ReadOnlySpan`1[ubyte]):this (Tier1)
          16 (3.23 % of base) : 32083.dasm - System.Security.Cryptography.IncrementalHash:TryGetHashAndReset(System.Span`1[ubyte],byref):ubyte:this (Tier1)
          12 (0.89 % of base) : 19654.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (Tier1)
          12 (5.26 % of base) : 31555.dasm - System.Security.Cryptography.HashProviderDispenser+AppleHmacProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this (Tier1)
          12 (5.26 % of base) : 33867.dasm - System.Security.Cryptography.HashProviderDispenser+AppleHmacProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this (Tier1)
          12 (4.29 % of base) : 31568.dasm - System.Security.Cryptography.HMACCommon:AppendHashData(System.ReadOnlySpan`1[ubyte]):this (Tier1)
          12 (2.97 % of base) : 31566.dasm - System.Security.Cryptography.IncrementalHash:AppendData(ubyte[]):this (Tier1)
           4 (0.40 % of base) : 31984.dasm - Interop+AppleCrypto:AppleCryptoNative_SecKeyExport(System.Security.Cryptography.Apple.SafeSecKeyRefHandle,int,Microsoft.Win32.SafeHandles.SafeCreateHandle,byref,byref):int (Tier1)
           4 (0.40 % of base) : 45420.dasm - Interop+AppleCrypto:AppleCryptoNative_SecKeyExport(System.Security.Cryptography.Apple.SafeSecKeyRefHandle,int,Microsoft.Win32.SafeHandles.SafeCreateHandle,byref,byref):int (Tier1)
           4 (0.79 % of base) : 51961.dasm - Microsoft.Cci.MetadataWriter:GetResolutionScopeHandle(Microsoft.Cci.IUnitReference):System.Reflection.Metadata.EntityHandle:this (Tier0)
           4 (5.88 % of base) : 63609.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
           4 (1.30 % of base) : 33871.dasm - System.Security.Cryptography.HashProviderDispenser+AppleHmacProvider:FinalizeHashAndReset(System.Span`1[ubyte]):int:this (Tier1)
           4 (1.30 % of base) : 31562.dasm - System.Security.Cryptography.HashProviderDispenser+AppleHmacProvider:FinalizeHashAndReset(System.Span`1[ubyte]):int:this (Tier1)

Top method improvements (bytes):
        -288 (-1.44 % of base) : 27644.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (Instrumented Tier0)
        -288 (-5.22 % of base) : 54278.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__createConversion|210_0(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Instrumented Tier0)
        -272 (-5.30 % of base) : 49479.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckMembersAgainstBaseType(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):this (Instrumented Tier0)
        -248 (-9.63 % of base) : 54012.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:CreateEmbeddedAttributesIfNeeded(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Instrumented Tier0)
        -248 (-10.58 % of base) : 51044.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:CreateEmbeddedAttributesIfNeeded(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0)
        -208 (-5.44 % of base) : 62592.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (Instrumented Tier0)
        -196 (-4.73 % of base) : 54632.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:GenerateMethodBody(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,Microsoft.CodeAnalysis.CSharp.BoundStatement,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.LambdaDebugInfo],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.ClosureDebugInfo],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.StateMachineStateDebugInfo],Microsoft.CodeAnalysis.CSharp.StateMachineTypeSymbol,Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider,Microsoft.CodeAnalysis.CSharp.ImportChain,ubyte,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SourceSpan],Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedEntryPointSymbol+AsyncForwardEntryPoint):Microsoft.CodeAnalysis.CodeGen.MethodBody (Instrumented Tier0)
        -192 (-1.81 % of base) : 49155.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Instrumented Tier0)
        -188 (-3.07 % of base) : 56429.dasm - Microsoft.CodeAnalysis.Compilation:SerializeToPeStream(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.RebuildData,System.Func`2[Microsoft.DiaSymReader.ISymWriterMetadataProvider,Microsoft.DiaSymReader.SymUnmanagedWriter],Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Emit.EmitOptions,System.Nullable`1[System.Security.Cryptography.RSAParameters],System.Threading.CancellationToken):ubyte:this (Instrumented Tier0)
        -184 (-2.36 % of base) : 54245.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Instrumented Tier0)
        -176 (-2.57 % of base) : 11189.dasm - System.Xml.Serialization.TypeScope:ImportTypeDesc(System.Type,System.Reflection.MemberInfo,ubyte):System.Xml.Serialization.TypeDesc:this (Instrumented Tier0)
        -172 (-3.58 % of base) : 50175.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__createConversion|210_0(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
        -172 (-2.50 % of base) : 50104.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier0)
        -168 (-4.11 % of base) : 6953.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenNoLock(System.Reflection.MethodInfo,ubyte):int:this (Instrumented Tier0)
        -168 (-2.34 % of base) : 22618.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper:ImportDataMembers():this (Instrumented Tier0)
        -160 (-4.65 % of base) : 50569.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:GenerateMethodBody(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,Microsoft.CodeAnalysis.CSharp.BoundStatement,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.LambdaDebugInfo],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.ClosureDebugInfo],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.StateMachineStateDebugInfo],Microsoft.CodeAnalysis.CSharp.StateMachineTypeSymbol,Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider,Microsoft.CodeAnalysis.CSharp.ImportChain,ubyte,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SourceSpan],Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedEntryPointSymbol+AsyncForwardEntryPoint):Microsoft.CodeAnalysis.CodeGen.MethodBody (Tier0)
        -152 (-2.76 % of base) : 51325.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol+<Microsoft-Cci-ITypeDefinition-GetExplicitImplementationOverrides>d__30:MoveNext():ubyte:this (Instrumented Tier0)
        -152 (-2.85 % of base) : 56029.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol+<Microsoft-Cci-ITypeDefinition-GetExplicitImplementationOverrides>d__30:MoveNext():ubyte:this (Instrumented Tier0)
        -152 (-5.41 % of base) : 6934.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodMetadataToken(System.Reflection.ConstructorInfo):int:this (Instrumented Tier0)
        -144 (-4.57 % of base) : 23558.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract:RequiresMemberAccessForRead(System.Security.SecurityException):ubyte:this (Instrumented Tier0)

Top method regressions (percentages):
           4 (5.88 % of base) : 63609.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
          12 (5.26 % of base) : 31555.dasm - System.Security.Cryptography.HashProviderDispenser+AppleHmacProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this (Tier1)
          12 (5.26 % of base) : 33867.dasm - System.Security.Cryptography.HashProviderDispenser+AppleHmacProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this (Tier1)
          16 (4.35 % of base) : 31567.dasm - System.Security.Cryptography.IncrementalHash:AppendData(System.ReadOnlySpan`1[ubyte]):this (Tier1)
          16 (4.35 % of base) : 33866.dasm - System.Security.Cryptography.IncrementalHash:AppendData(System.ReadOnlySpan`1[ubyte]):this (Tier1)
          12 (4.29 % of base) : 31568.dasm - System.Security.Cryptography.HMACCommon:AppendHashData(System.ReadOnlySpan`1[ubyte]):this (Tier1)
          16 (3.23 % of base) : 32083.dasm - System.Security.Cryptography.IncrementalHash:TryGetHashAndReset(System.Span`1[ubyte],byref):ubyte:this (Tier1)
          12 (2.97 % of base) : 31566.dasm - System.Security.Cryptography.IncrementalHash:AppendData(ubyte[]):this (Tier1)
           4 (1.30 % of base) : 33871.dasm - System.Security.Cryptography.HashProviderDispenser+AppleHmacProvider:FinalizeHashAndReset(System.Span`1[ubyte]):int:this (Tier1)
           4 (1.30 % of base) : 31562.dasm - System.Security.Cryptography.HashProviderDispenser+AppleHmacProvider:FinalizeHashAndReset(System.Span`1[ubyte]):int:this (Tier1)
           4 (1.00 % of base) : 69179.dasm - System.Text.RegularExpressions.RegexCache:GetOrAdd(System.String):System.Text.RegularExpressions.Regex (Instrumented Tier0)
           4 (0.94 % of base) : 31560.dasm - System.Security.Cryptography.IncrementalHash:GetHashAndResetCore(System.Span`1[ubyte]):int:this (Tier1)
           4 (0.94 % of base) : 33870.dasm - System.Security.Cryptography.IncrementalHash:GetHashAndResetCore(System.Span`1[ubyte]):int:this (Tier1)
          12 (0.89 % of base) : 19654.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (Tier1)
           4 (0.79 % of base) : 51961.dasm - Microsoft.Cci.MetadataWriter:GetResolutionScopeHandle(Microsoft.Cci.IUnitReference):System.Reflection.Metadata.EntityHandle:this (Tier0)
          16 (0.44 % of base) : 44393.dasm - System.Security.Cryptography.Asn1.Pkcs12.PfxAsn:VerifyMac(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte]):ubyte:this (Tier1)
          16 (0.43 % of base) : 45404.dasm - System.Security.Cryptography.Asn1.Pkcs12.PfxAsn:VerifyMac(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte]):ubyte:this (Tier1)
          16 (0.43 % of base) : 37404.dasm - System.Security.Cryptography.Asn1.Pkcs12.PfxAsn:VerifyMac(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte]):ubyte:this (Tier1)
          16 (0.42 % of base) : 32082.dasm - System.Security.Cryptography.Asn1.Pkcs12.PfxAsn:VerifyMac(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte]):ubyte:this (Tier1)
          16 (0.42 % of base) : 33998.dasm - System.Security.Cryptography.Asn1.Pkcs12.PfxAsn:VerifyMac(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte]):ubyte:this (Tier1)

Top method improvements (percentages):
         -96 (-29.27 % of base) : 55232.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Instrumented Tier0)
         -96 (-29.27 % of base) : 50918.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -88 (-27.16 % of base) : 55271.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Instrumented Tier0)
         -88 (-27.16 % of base) : 50980.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -44 (-26.83 % of base) : 62622.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
         -16 (-25.00 % of base) : 70082.dasm - System.Text.Json.Utf8JsonWriter:TryFormatDouble(double,System.Span`1[ubyte],byref):ubyte (Tier1)
         -48 (-22.22 % of base) : 62571.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)
         -28 (-21.88 % of base) : 77560.dasm - System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Instrumented Tier0)
         -28 (-21.88 % of base) : 5205.dasm - System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Tier0)
         -56 (-20.90 % of base) : 49692.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper+CheckConstraintsArgs:.ctor(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.ConversionsBase,ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0)
         -40 (-20.00 % of base) : 33811.dasm - System.Numerics.Tests.Perf_Matrix4x4:LerpBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -36 (-18.75 % of base) : 53927.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:Initialize(System.__Canon,Microsoft.CodeAnalysis.UseSiteInfo`1[System.__Canon]):this (Instrumented Tier0)
         -36 (-18.75 % of base) : 48905.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:Initialize(System.__Canon,Microsoft.CodeAnalysis.UseSiteInfo`1[System.__Canon]):this (Tier0)
         -24 (-18.75 % of base) : 34890.dasm - System.Xml.Serialization.XmlSerializer:Deserialize(System.Xml.XmlReader,System.String):System.Object:this (Tier0)
         -88 (-18.33 % of base) : 62568.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:MakeLocal(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder):Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol (Tier0)
         -40 (-17.86 % of base) : 62623.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BoundTypeExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
         -92 (-16.67 % of base) : 51000.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -88 (-16.67 % of base) : 64722.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:MakeLocal(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder):Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol (Instrumented Tier0)
         -32 (-16.67 % of base) : 31420.dasm - System.Security.Cryptography.ECDsaImplementation+ECDsaSecurityTransforms:ExportParameters(ubyte):System.Security.Cryptography.ECParameters:this (Instrumented Tier0)
         -28 (-16.67 % of base) : 30318.dasm - System.Security.Cryptography.ECDsaImplementation+ECDsaSecurityTransforms:ImportParameters(System.Security.Cryptography.ECParameters):this (Tier0)


benchmarks.run_tiered.osx.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 15557888 (overridden on cmd)
Total bytes of diff: 15544056 (overridden on cmd)
Total bytes of delta: -13832 (-0.09 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          60 : 16313.dasm (5.79 % of base)
          20 : 29276.dasm (0.72 % of base)
          12 : 16792.dasm (0.96 % of base)
          12 : 45524.dasm (2.86 % of base)
           8 : 42617.dasm (1.57 % of base)
           8 : 48243.dasm (1.06 % of base)
           4 : 24320.dasm (0.75 % of base)
           4 : 38736.dasm (0.79 % of base)
           4 : 41343.dasm (5.88 % of base)
           4 : 6407.dasm (0.37 % of base)
           4 : 16483.dasm (0.30 % of base)
           4 : 16721.dasm (0.48 % of base)

Top file improvements (bytes):
        -248 : 37819.dasm (-10.65 % of base)
        -208 : 40852.dasm (-6.68 % of base)
        -172 : 36950.dasm (-3.69 % of base)
        -172 : 36879.dasm (-2.70 % of base)
        -160 : 37344.dasm (-4.65 % of base)
        -140 : 37753.dasm (-11.82 % of base)
        -116 : 14538.dasm (-5.62 % of base)
        -112 : 24938.dasm (-6.78 % of base)
        -108 : 36287.dasm (-4.01 % of base)
        -104 : 37757.dasm (-8.44 % of base)
         -96 : 37693.dasm (-29.27 % of base)
         -96 : 37920.dasm (-2.12 % of base)
         -92 : 37775.dasm (-16.67 % of base)
         -92 : 26260.dasm (-3.86 % of base)
         -88 : 241.dasm (-10.95 % of base)
         -88 : 40806.dasm (-6.81 % of base)
         -88 : 40828.dasm (-18.33 % of base)
         -88 : 37755.dasm (-27.16 % of base)
         -84 : 35584.dasm (-10.40 % of base)
         -80 : 37674.dasm (-5.18 % of base)

58 total files with Code Size differences (46 improved, 12 regressed), 27 unchanged.

Top method regressions (bytes):
          60 (5.79 % of base) : 16313.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
          20 (0.72 % of base) : 29276.dasm - System.Text.Json.Tests.Perf_Segment:ReadMultiSegmentSequenceUsingSpan(int):this (Tier1-OSR)
          12 (2.86 % of base) : 45524.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):this (Tier1)
          12 (0.96 % of base) : 16792.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (Tier1)
           8 (1.06 % of base) : 48243.dasm - BitOps:DoBitfieldIteration(int[],int[],int,byref):long (Tier1)
           8 (1.57 % of base) : 42617.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindStartPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],byref,int,byref,byref):ubyte:this (Tier1-OSR)
           4 (0.79 % of base) : 38736.dasm - Microsoft.Cci.MetadataWriter:GetResolutionScopeHandle(Microsoft.Cci.IUnitReference):System.Reflection.Metadata.EntityHandle:this (Tier0)
           4 (5.88 % of base) : 41343.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
           4 (0.48 % of base) : 16721.dasm - System.Collections.Generic.ArraySortHelper`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet]:PickPivotAndPartition(System.Span`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet],System.Comparison`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet]):int (Tier0)
           4 (0.30 % of base) : 16483.dasm - System.Collections.Hashtable:Insert(System.Object,System.Object,ubyte):this (Tier1)
           4 (0.75 % of base) : 24320.dasm - System.Formats.Asn1.AsnWriter:WriteObjectIdentifier(System.ReadOnlySpan`1[ushort],System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this (Tier1)
           4 (0.37 % of base) : 6407.dasm - System.Net.Sockets.SocketPal:TryCompleteSendTo(System.Net.Sockets.SafeSocketHandle,System.ReadOnlySpan`1[ubyte],System.Collections.Generic.IList`1[System.ArraySegment`1[ubyte]],byref,byref,byref,int,System.ReadOnlySpan`1[ubyte],byref,byref):ubyte (Tier1)

Top method improvements (bytes):
        -248 (-10.65 % of base) : 37819.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:CreateEmbeddedAttributesIfNeeded(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0)
        -208 (-6.68 % of base) : 40852.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (Tier0)
        -172 (-3.69 % of base) : 36950.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__createConversion|210_0(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
        -172 (-2.70 % of base) : 36879.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier0)
        -160 (-4.65 % of base) : 37344.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:GenerateMethodBody(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,Microsoft.CodeAnalysis.CSharp.BoundStatement,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.LambdaDebugInfo],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.ClosureDebugInfo],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.StateMachineStateDebugInfo],Microsoft.CodeAnalysis.CSharp.StateMachineTypeSymbol,Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider,Microsoft.CodeAnalysis.CSharp.ImportChain,ubyte,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SourceSpan],Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedEntryPointSymbol+AsyncForwardEntryPoint):Microsoft.CodeAnalysis.CodeGen.MethodBody (Tier0)
        -140 (-11.82 % of base) : 37753.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeCall(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol]):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
        -116 (-5.62 % of base) : 14538.dasm - System.TimeZoneInfo:TZif_GenerateAdjustmentRule(byref,System.TimeSpan,System.Collections.Generic.List`1[System.TimeZoneInfo+AdjustmentRule],System.DateTime[],ubyte[],System.TimeZoneInfo+TZifType[],System.String) (Tier0)
        -112 (-6.78 % of base) : 24938.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (Tier1)
        -108 (-4.01 % of base) : 36287.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:MakeParameters[System.__Canon,System.__Canon,System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,System.__Canon,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[System.__Canon],byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte,ubyte,int,System.Func`12[System.__Canon,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.__Canon,ubyte,int,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,ubyte,ubyte,System.__Canon,System.__Canon],ubyte):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (Tier0)
        -104 (-8.44 % of base) : 37757.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -96 (-2.12 % of base) : 37920.dasm - Microsoft.CodeAnalysis.Compilation:SerializeToPeStream(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.RebuildData,System.Func`2[Microsoft.DiaSymReader.ISymWriterMetadataProvider,Microsoft.DiaSymReader.SymUnmanagedWriter],Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Emit.EmitOptions,System.Nullable`1[System.Security.Cryptography.RSAParameters],System.Threading.CancellationToken):ubyte:this (Tier0)
         -96 (-29.27 % of base) : 37693.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -92 (-16.67 % of base) : 37775.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -92 (-3.86 % of base) : 26260.dasm - System.Diagnostics.ActivitySource:CreateActivity(System.String,int,System.Diagnostics.ActivityContext,System.String,System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]],System.Collections.Generic.IEnumerable`1[System.Diagnostics.ActivityLink],System.DateTimeOffset,ubyte,int):System.Diagnostics.Activity:this (Tier0)
         -88 (-6.81 % of base) : 40806.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindDeclarationStatementParts(Microsoft.CodeAnalysis.CSharp.Syntax.LocalDeclarationStatementSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (Tier0)
         -88 (-27.16 % of base) : 37755.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -88 (-18.33 % of base) : 40828.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:MakeLocal(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder):Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol (Tier0)
         -88 (-10.95 % of base) : 241.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:GetListByName(ulong,int,ulong,int,int,int):System.__Canon[]:this (Tier0)
         -84 (-10.40 % of base) : 35584.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEParameterSymbol:Create(Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,ubyte,int,ubyte,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ModifierInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,System.Reflection.Metadata.ParameterHandle,Microsoft.CodeAnalysis.CSharp.Symbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ModifierInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]],ubyte,byref):Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEParameterSymbol (Tier0)
         -80 (-5.18 % of base) : 37674.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GenerateBaseParameterlessConstructorInitializer(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundCall (Tier0)

Top method regressions (percentages):
           4 (5.88 % of base) : 41343.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
          60 (5.79 % of base) : 16313.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
          12 (2.86 % of base) : 45524.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):this (Tier1)
           8 (1.57 % of base) : 42617.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindStartPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],byref,int,byref,byref):ubyte:this (Tier1-OSR)
           8 (1.06 % of base) : 48243.dasm - BitOps:DoBitfieldIteration(int[],int[],int,byref):long (Tier1)
          12 (0.96 % of base) : 16792.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (Tier1)
           4 (0.79 % of base) : 38736.dasm - Microsoft.Cci.MetadataWriter:GetResolutionScopeHandle(Microsoft.Cci.IUnitReference):System.Reflection.Metadata.EntityHandle:this (Tier0)
           4 (0.75 % of base) : 24320.dasm - System.Formats.Asn1.AsnWriter:WriteObjectIdentifier(System.ReadOnlySpan`1[ushort],System.Nullable`1[System.Formats.Asn1.Asn1Tag]):this (Tier1)
          20 (0.72 % of base) : 29276.dasm - System.Text.Json.Tests.Perf_Segment:ReadMultiSegmentSequenceUsingSpan(int):this (Tier1-OSR)
           4 (0.48 % of base) : 16721.dasm - System.Collections.Generic.ArraySortHelper`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet]:PickPivotAndPartition(System.Span`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet],System.Comparison`1[System.Text.RegularExpressions.RegexFindOptimizations+FixedDistanceSet]):int (Tier0)
           4 (0.37 % of base) : 6407.dasm - System.Net.Sockets.SocketPal:TryCompleteSendTo(System.Net.Sockets.SafeSocketHandle,System.ReadOnlySpan`1[ubyte],System.Collections.Generic.IList`1[System.ArraySegment`1[ubyte]],byref,byref,byref,int,System.ReadOnlySpan`1[ubyte],byref,byref):ubyte (Tier1)
           4 (0.30 % of base) : 16483.dasm - System.Collections.Hashtable:Insert(System.Object,System.Object,ubyte):this (Tier1)

Top method improvements (percentages):
         -96 (-29.27 % of base) : 37693.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -88 (-27.16 % of base) : 37755.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -44 (-26.83 % of base) : 40882.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
         -48 (-22.22 % of base) : 40831.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)
         -28 (-21.88 % of base) : 10365.dasm - System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Tier0)
         -56 (-20.90 % of base) : 36468.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper+CheckConstraintsArgs:.ctor(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.ConversionsBase,ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0)
         -40 (-20.00 % of base) : 27849.dasm - System.Numerics.Tests.Perf_Matrix4x4:LerpBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -36 (-18.75 % of base) : 35681.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:Initialize(System.__Canon,Microsoft.CodeAnalysis.UseSiteInfo`1[System.__Canon]):this (Tier0)
         -24 (-18.75 % of base) : 28651.dasm - System.Xml.Serialization.XmlSerializer:Deserialize(System.Xml.XmlReader,System.String):System.Object:this (Tier0)
         -88 (-18.33 % of base) : 40828.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:MakeLocal(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder):Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol (Tier0)
         -40 (-17.86 % of base) : 40883.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BoundTypeExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
         -92 (-16.67 % of base) : 37775.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -28 (-16.67 % of base) : 24101.dasm - System.Security.Cryptography.ECDsaImplementation+ECDsaSecurityTransforms:ImportParameters(System.Security.Cryptography.ECParameters):this (Tier0)
         -20 (-15.62 % of base) : 36277.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.LookupPosition:IsInExpressionBody(int,Microsoft.CodeAnalysis.CSharp.Syntax.ArrowExpressionClauseSyntax,Microsoft.CodeAnalysis.SyntaxToken):ubyte (Tier0)
         -32 (-15.38 % of base) : 36273.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.LookupPosition:IsInBody(int,Microsoft.CodeAnalysis.CSharp.Syntax.BaseMethodDeclarationSyntax):ubyte (Tier0)
         -40 (-15.15 % of base) : 40819.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (Tier0)
         -20 (-15.15 % of base) : 35546.dasm - Microsoft.CodeAnalysis.PEModule:HasFixedBufferAttribute(System.Reflection.Metadata.EntityHandle,byref,byref):ubyte:this (Tier0)
         -24 (-15.00 % of base) : 40860.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceSimpleParameterSymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,int,ubyte,ubyte,System.String,Microsoft.CodeAnalysis.Location):this (Tier0)
         -28 (-14.89 % of base) : 26259.dasm - System.Diagnostics.ActivitySource:StartActivity(System.String,int,System.Diagnostics.ActivityContext,System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]],System.Collections.Generic.IEnumerable`1[System.Diagnostics.ActivityLink],System.DateTimeOffset):System.Diagnostics.Activity:this (Tier0)
         -48 (-14.63 % of base) : 36970.dasm - Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator+UncommonData:CreateIfNeeded(Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]):Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator+UncommonData (Tier0)


coreclr_tests.run.osx.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 485381240 (overridden on cmd)
Total bytes of diff: 485152172 (overridden on cmd)
Total bytes of delta: -229068 (-0.05 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         116 : 280813.dasm (0.15 % of base)
         112 : 493886.dasm (1.00 % of base)
          64 : 2869.dasm (0.78 % of base)
          64 : 249887.dasm (0.78 % of base)
          64 : 296008.dasm (0.78 % of base)
          64 : 307212.dasm (0.78 % of base)
          48 : 493874.dasm (0.79 % of base)
          40 : 352938.dasm (0.48 % of base)
          40 : 264875.dasm (0.48 % of base)
          40 : 29583.dasm (0.49 % of base)
          36 : 503578.dasm (13.85 % of base)
          24 : 523452.dasm (3.75 % of base)
          20 : 28674.dasm (0.88 % of base)
          16 : 529122.dasm (0.28 % of base)
          12 : 228240.dasm (0.91 % of base)
          12 : 490807.dasm (0.28 % of base)
          12 : 491951.dasm (0.31 % of base)
          12 : 370504.dasm (0.99 % of base)
          12 : 502420.dasm (1.92 % of base)
          12 : 247844.dasm (1.00 % of base)

Top file improvements (bytes):
        -444 : 283742.dasm (-3.56 % of base)
        -440 : 490078.dasm (-10.74 % of base)
        -424 : 293194.dasm (-1.08 % of base)
        -328 : 497575.dasm (-20.25 % of base)
        -316 : 497574.dasm (-14.31 % of base)
        -304 : 494916.dasm (-19.49 % of base)
        -300 : 495493.dasm (-19.23 % of base)
        -300 : 494915.dasm (-13.54 % of base)
        -284 : 284751.dasm (-2.47 % of base)
        -280 : 494950.dasm (-16.87 % of base)
        -280 : 495492.dasm (-13.11 % of base)
        -272 : 495511.dasm (-17.62 % of base)
        -272 : 239649.dasm (-5.30 % of base)
        -268 : 494949.dasm (-11.00 % of base)
        -264 : 494325.dasm (-10.73 % of base)
        -260 : 269201.dasm (-2.12 % of base)
        -256 : 496280.dasm (-11.25 % of base)
        -256 : 495153.dasm (-18.23 % of base)
        -252 : 496093.dasm (-15.07 % of base)
        -252 : 494326.dasm (-16.24 % of base)

92 total files with Code Size differences (54 improved, 38 regressed), 20 unchanged.

Top method regressions (bytes):
         116 (0.15 % of base) : 280813.dasm - Test_1000w1d.testout1:Func_0():int (Tier0)
         112 (1.00 % of base) : 493886.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
          64 (0.78 % of base) : 2869.dasm - CoreclrTestLib.CoreclrTestWrapperLib:RunTest(System.String,System.String,System.String,System.String,System.String,System.String):int:this (Tier1)
          64 (0.78 % of base) : 249887.dasm - CoreclrTestLib.CoreclrTestWrapperLib:RunTest(System.String,System.String,System.String,System.String,System.String,System.String):int:this (Tier1)
          64 (0.78 % of base) : 296008.dasm - CoreclrTestLib.CoreclrTestWrapperLib:RunTest(System.String,System.String,System.String,System.String,System.String,System.String):int:this (Tier1)
          64 (0.78 % of base) : 307212.dasm - CoreclrTestLib.CoreclrTestWrapperLib:RunTest(System.String,System.String,System.String,System.String,System.String,System.String):int:this (Tier1)
          48 (0.79 % of base) : 493874.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (FullOpts)
          40 (0.48 % of base) : 352938.dasm - CoreclrTestLib.CoreclrTestWrapperLib:RunTest(System.String,System.String,System.String,System.String,System.String,System.String):int:this (Tier1)
          40 (0.48 % of base) : 264875.dasm - CoreclrTestLib.CoreclrTestWrapperLib:RunTest(System.String,System.String,System.String,System.String,System.String,System.String):int:this (Tier1)
          40 (0.49 % of base) : 29583.dasm - CoreclrTestLib.CoreclrTestWrapperLib:RunTest(System.String,System.String,System.String,System.String,System.String,System.String):int:this (Tier1)
          36 (13.85 % of base) : 503578.dasm - (dynamicClass):ABIStress_TailCaller965(ABIStress.S12U,System.Int128,System.Numerics.Vector`1[int],ABIStress.S9U,ABIStress.I128_1,ABIStress.S4U,ABIStress.S13U,ABIStress.Hfa2,ABIStress.S5U,double,ABIStress.S6U,ABIStress.Hfa2,System.Runtime.Intrinsics.Vector128`1[int],ubyte,long):int (FullOpts)
          24 (3.75 % of base) : 523452.dasm - DefaultNamespace.DoubLinkBig:.ctor(int):this (FullOpts)
          20 (0.88 % of base) : 28674.dasm - VectorMgdMgd+HVATests`1[ubyte]:doTests():this (Tier0)
          16 (0.28 % of base) : 529122.dasm - System.Xml.Xsl.IlGen.XmlILOptimizerVisitor:VisitEq(System.Xml.Xsl.Qil.QilBinary):System.Xml.Xsl.Qil.QilNode:this (FullOpts)
          12 (1.92 % of base) : 502420.dasm - (dynamicClass):ABIStress_TailCaller341(ABIStress.S5U,ABIStress.S15U,ABIStress.S13U,ABIStress.S8P,int,ABIStress.S2U,ABIStress.S2P,ABIStress.I128_1,ABIStress.S6U,ABIStress.Hfa2,ABIStress.S16U,ABIStress.S6U,ABIStress.S14U,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S10U,ABIStress.S2P,int,System.Runtime.Intrinsics.Vector256`1[int],long,System.Int128,ABIStress.S14U,System.Runtime.Intrinsics.Vector256`1[int],System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S6U,ABIStress.S9U):int (FullOpts)
          12 (0.28 % of base) : 490807.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeDeclaration(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration:this (FullOpts)
          12 (0.31 % of base) : 491951.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:MakeParameters[System.__Canon,System.__Canon,System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,System.__Canon,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[System.__Canon],byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte,ubyte,int,System.Func`12[System.__Canon,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.__Canon,ubyte,int,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,ubyte,ubyte,System.__Canon,System.__Canon],ubyte):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (FullOpts)
          12 (0.99 % of base) : 370504.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToLowerConversion](System.String):System.String:this (FullOpts)
          12 (0.91 % of base) : 228240.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToLowerConversion](System.String):System.String:this (Tier1)
          12 (1.00 % of base) : 247844.dasm - System.Reflection.CustomAttribute:GetCustomAttributes(System.Reflection.RuntimeMethodInfo,System.RuntimeType,ubyte):System.Object[] (Tier1)

Top method improvements (bytes):
        -444 (-3.56 % of base) : 283742.dasm - JitTest_huge_struct_Arrays_il.Test:Main():int (MinOpts)
        -440 (-10.74 % of base) : 490078.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -424 (-1.08 % of base) : 293194.dasm - DefaultNamespace.cb6054ToByte_all:runTest():ubyte:this (Instrumented Tier0)
        -328 (-20.25 % of base) : 497575.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S2U,ABIStress.S11U,ABIStress.S11U,ABIStress.S16U,ABIStress.S6U,ABIStress.S6U,ABIStress.S4P,ABIStress.S14U,ABIStress.Hfa2,ABIStress.S10U,ABIStress.S13U,ABIStress.Hfa1,double,ABIStress.S10U,ABIStress.S2P,ABIStress.Hfa2,ABIStress.S5U,ABIStress.S9U,ABIStress.S4U,ABIStress.S12U,ABIStress.S2U,ABIStress.Hfa2,float,ABIStress.S6U,ABIStress.S32U):int (MinOpts)
        -316 (-14.31 % of base) : 497574.dasm - (dynamicClass):ABIStress_PInvoker929(ABIStress.S17U,ABIStress.S10U,double,System.Numerics.Vector`1[int],System.Int128,int,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S1P,ABIStress.S3U,ABIStress.I128_1,ABIStress.S7U,ABIStress.S8P,float,ABIStress.S8U,ABIStress.S15U,ABIStress.S16U,ABIStress.S6U,ABIStress.S31U,ABIStress.S2P,double,ABIStress.S7U,ABIStress.S3U,ABIStress.I128_2,ABIStress.Hfa1,short):int[] (MinOpts)
        -304 (-19.49 % of base) : 494916.dasm - (dynamicClass):IL_STUB_PInvoke(double,ABIStress.S13U,ABIStress.S6U,ABIStress.S14U,ABIStress.S1P,ABIStress.S13U,ABIStress.S10U,ABIStress.S5U,ABIStress.S2U,ABIStress.Hfa1,long,ABIStress.S11U,ABIStress.S12U,ABIStress.S1P,ABIStress.S32U,ABIStress.S10U,long,ABIStress.S15U,ABIStress.S11U,ABIStress.S16U,ABIStress.S4P,ABIStress.S8U,ABIStress.S10U,ABIStress.S32U):int (MinOpts)
        -300 (-13.54 % of base) : 494915.dasm - (dynamicClass):ABIStress_PInvoker179(ABIStress.S14U,ABIStress.Hfa2,ABIStress.S8P,ABIStress.I128_2,ABIStress.S16U,ABIStress.S14U,float,ABIStress.I128_1,System.Int128,ABIStress.S14U,short,double,System.Numerics.Vector`1[int],ABIStress.S10U,ABIStress.I128_2,ABIStress.I128_1,ABIStress.S14U,ABIStress.I128_1,ABIStress.S13U,System.Runtime.Intrinsics.Vector128`1[int]):int[] (MinOpts)
        -300 (-19.23 % of base) : 495493.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S12U,ABIStress.S2P,ABIStress.S5U,ABIStress.S16U,ABIStress.S15U,ABIStress.S5U,ABIStress.S2P,ABIStress.S15U,ABIStress.S4P,ABIStress.S13U,ABIStress.S3U,long,ABIStress.S8U,ABIStress.S12U,ABIStress.S9U,ABIStress.S9U,ABIStress.S8U,double,double,ABIStress.S3U,ABIStress.S1P,ABIStress.S14U,ABIStress.S6U,ABIStress.S2U,ABIStress.S31U):int (MinOpts)
        -284 (-2.47 % of base) : 284751.dasm - JitTest_huge_struct_huge_il.Test:Main():int (Instrumented Tier0)
        -280 (-13.11 % of base) : 495492.dasm - (dynamicClass):ABIStress_PInvoker334(ABIStress.S12U,ABIStress.S8P,ABIStress.S13U,ABIStress.S6U,short,ABIStress.S4P,ABIStress.S5U):int[] (MinOpts)
        -280 (-16.87 % of base) : 494950.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S14U,ABIStress.S2P,float,ABIStress.S15U,ABIStress.S4P,ABIStress.S10U,ABIStress.S13U,ABIStress.S15U,ABIStress.S11U,ABIStress.S2P,ubyte,ABIStress.S8U,ABIStress.S31U,ABIStress.S4U,ABIStress.S14U,ABIStress.S11U,ABIStress.S10U,ABIStress.S15U,double,ABIStress.S17U,short,ABIStress.S31U,ABIStress.Hfa1,ABIStress.Hfa1,ABIStress.S8U):int (MinOpts)
        -272 (-17.62 % of base) : 495511.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S16U,ABIStress.S6U,ABIStress.S14U,ABIStress.S11U,ABIStress.S17U,ABIStress.S12U,ubyte,ABIStress.S13U,ABIStress.S2U,ABIStress.S4U,ABIStress.S2P,short,ABIStress.S8U,ABIStress.S17U,ubyte,ABIStress.S3U,ABIStress.Hfa1,ABIStress.S8U,ABIStress.S15U,ABIStress.S11U,ABIStress.S15U,ABIStress.S6U,ABIStress.S2P,ABIStress.S32U):int (MinOpts)
        -272 (-5.30 % of base) : 239649.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckMembersAgainstBaseType(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):this (Instrumented Tier0)
        -268 (-11.00 % of base) : 494949.dasm - (dynamicClass):ABIStress_PInvoker188(short,ABIStress.S14U,ABIStress.S1P,ABIStress.S3U,ABIStress.I128_1,ABIStress.S12U,ABIStress.S15U,ABIStress.S5U,double):int[] (MinOpts)
        -264 (-10.73 % of base) : 494325.dasm - (dynamicClass):ABIStress_PInvoker28(ABIStress.S8U,ABIStress.I128_1,ABIStress.S6U,ABIStress.S5U,ABIStress.S2U,ABIStress.S1P,ABIStress.S9U,ABIStress.Hfa2,ABIStress.S11U,ABIStress.I128_2,ABIStress.S14U,ABIStress.S9U,ABIStress.I128_2,ABIStress.S4U,ABIStress.S1P,ABIStress.S17U,ABIStress.S7U,double):int[] (MinOpts)
        -260 (-2.12 % of base) : 269201.dasm - JitTest_huge_struct_huge_il.Test:Main():int (MinOpts)
        -256 (-11.25 % of base) : 496280.dasm - (dynamicClass):ABIStress_PInvoker552(ABIStress.S11U,ABIStress.S5U,ABIStress.S10U,ABIStress.S4U,float,ABIStress.Hfa2,ubyte,ABIStress.Hfa1,ABIStress.S13U,double,ABIStress.S12U,ABIStress.I128_2,ABIStress.S8P,ABIStress.S13U,ABIStress.S10U):int[] (MinOpts)
        -256 (-18.23 % of base) : 495153.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S13U,ABIStress.S17U,long,ABIStress.S14U,ABIStress.S15U,int,ABIStress.Hfa2,ubyte,ABIStress.S15U,float,double,long,ABIStress.S17U,ABIStress.S4U,ABIStress.S15U,short,ABIStress.S10U,double,ABIStress.S15U,ABIStress.S32U):int (MinOpts)
        -252 (-16.24 % of base) : 494326.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S13U,ABIStress.S3U,ABIStress.S4P,ABIStress.S9U,ABIStress.Hfa1,ABIStress.S16U,ABIStress.S7U,ubyte,ABIStress.Hfa1,ABIStress.S3U,ABIStress.S13U,ABIStress.S31U,ABIStress.S12U,ABIStress.S16U,ABIStress.S8P,ABIStress.S2U,ABIStress.S2P,ABIStress.S4U,ABIStress.S2P,ABIStress.S2U,ABIStress.S4U,ABIStress.S13U,ABIStress.S6U,ABIStress.S31U,ABIStress.S4U):int (MinOpts)
        -252 (-15.07 % of base) : 496093.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S13U,ABIStress.S3U,ABIStress.S5U,ABIStress.S3U,ABIStress.S15U,ABIStress.S31U,short,ABIStress.S32U,double,ABIStress.S14U,ABIStress.S15U,ABIStress.S3U,ABIStress.Hfa1,ABIStress.Hfa1,ABIStress.S11U,ABIStress.S10U,ABIStress.S4P,ABIStress.S32U,ABIStress.S17U,ubyte,ABIStress.S4P,ABIStress.S16U,ABIStress.S14U,ABIStress.S31U,ABIStress.S4U):int (MinOpts)

Top method regressions (percentages):
          36 (13.85 % of base) : 503578.dasm - (dynamicClass):ABIStress_TailCaller965(ABIStress.S12U,System.Int128,System.Numerics.Vector`1[int],ABIStress.S9U,ABIStress.I128_1,ABIStress.S4U,ABIStress.S13U,ABIStress.Hfa2,ABIStress.S5U,double,ABIStress.S6U,ABIStress.Hfa2,System.Runtime.Intrinsics.Vector128`1[int],ubyte,long):int (FullOpts)
           4 (5.88 % of base) : 402680.dasm - SP1d:M(int,int,int,int,int,int,int):int (FullOpts)
           4 (3.85 % of base) : 580229.dasm - NullableTest:BoxUnboxToQ(System.ValueType):ubyte (FullOpts)
           4 (3.85 % of base) : 580260.dasm - NullableTest:BoxUnboxToQ(System.ValueType):ubyte (FullOpts)
           4 (3.85 % of base) : 388700.dasm - NullableTest23:BoxUnboxToQ(System.Object):ubyte (FullOpts)
           4 (3.85 % of base) : 388742.dasm - NullableTest30:BoxUnboxToQ(System.Object):ubyte (FullOpts)
          24 (3.75 % of base) : 523452.dasm - DefaultNamespace.DoubLinkBig:.ctor(int):this (FullOpts)
           8 (3.03 % of base) : 421828.dasm - JIT.HardwareIntrinsics.Arm.Helpers:AddPairwise(byte[],byte[],int):byte (FullOpts)
           8 (3.03 % of base) : 411592.dasm - JIT.HardwareIntrinsics.Arm.Helpers:AddPairwise(byte[],byte[],int):byte (FullOpts)
           8 (3.03 % of base) : 421812.dasm - JIT.HardwareIntrinsics.Arm.Helpers:AddPairwise(int[],int[],int):int (FullOpts)
           8 (3.03 % of base) : 421780.dasm - JIT.HardwareIntrinsics.Arm.Helpers:AddPairwise(ubyte[],ubyte[],int):ubyte (FullOpts)
           8 (3.03 % of base) : 415219.dasm - JIT.HardwareIntrinsics.Arm.Helpers:MaxPairwise(byte[],byte[],int):byte (FullOpts)
           8 (3.03 % of base) : 415700.dasm - JIT.HardwareIntrinsics.Arm.Helpers:MinPairwise(byte[],byte[],int):byte (FullOpts)
           8 (3.03 % of base) : 429976.dasm - JIT.HardwareIntrinsics.Arm.Helpers:MinPairwise(byte[],byte[],int):byte (FullOpts)
           8 (3.03 % of base) : 415684.dasm - JIT.HardwareIntrinsics.Arm.Helpers:MinPairwise(int[],int[],int):int (FullOpts)
           8 (3.03 % of base) : 429960.dasm - JIT.HardwareIntrinsics.Arm.Helpers:MinPairwise(int[],int[],int):int (FullOpts)
           8 (3.03 % of base) : 415635.dasm - JIT.HardwareIntrinsics.Arm.Helpers:MinPairwise(ubyte[],ubyte[],int):ubyte (FullOpts)
           8 (3.03 % of base) : 429928.dasm - JIT.HardwareIntrinsics.Arm.Helpers:MinPairwise(ubyte[],ubyte[],int):ubyte (FullOpts)
           4 (3.03 % of base) : 389108.dasm - NullableTest23:BoxUnboxToQGenC[NotEmptyStructQ](System.Nullable`1[NotEmptyStructQ]):ubyte (FullOpts)
           4 (3.03 % of base) : 389152.dasm - NullableTest30:BoxUnboxToQGen[System.Nullable`1[NotEmptyStructConstrainedGenQ`1[int]]](System.Nullable`1[NotEmptyStructConstrainedGenQ`1[int]]):ubyte (FullOpts)

Top method improvements (percentages):
         -48 (-30.00 % of base) : 502373.dasm - (dynamicClass):ABIStress_TailCaller317(System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S11U,ABIStress.S1P,ABIStress.S9U,ABIStress.S4P,System.Int128,ABIStress.S3U,ABIStress.S11U,short,ABIStress.S7U,ABIStress.S6U,ABIStress.S6U,double,ABIStress.S16U,float,ABIStress.S1P,ABIStress.S3U,ABIStress.S15U,ABIStress.S12U):int (FullOpts)
         -96 (-29.27 % of base) : 241105.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -80 (-27.40 % of base) : 501875.dasm - (dynamicClass):ABIStress_TailCaller65(System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S4P,ABIStress.S1P,ABIStress.S11U,ABIStress.Hfa2,ABIStress.S6U,long,long,System.Int128,ABIStress.S3U,ABIStress.S13U,ABIStress.S2P,ABIStress.S8P,ABIStress.S16U,short,ABIStress.S15U,ABIStress.S2P,int,ABIStress.S10U):int (FullOpts)
         -88 (-27.16 % of base) : 241165.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -44 (-26.83 % of base) : 242957.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
         -16 (-26.67 % of base) : 502864.dasm - (dynamicClass):ABIStress_TailCaller570(ABIStress.S10U,System.Runtime.Intrinsics.Vector128`1[int],short):int (FullOpts)
         -72 (-25.35 % of base) : 503321.dasm - (dynamicClass):IL_STUB_CallTailCallTarget(long,byref,long) (FullOpts)
         -80 (-24.39 % of base) : 502723.dasm - (dynamicClass):ABIStress_TailCaller499(ABIStress.S14U,short,long,short,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S7U,ABIStress.S3U,float,ABIStress.S10U,ABIStress.S15U,ABIStress.S5U,System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S16U,System.Int128,ABIStress.S9U,ubyte,short,ABIStress.S7U,ABIStress.S8P,System.Int128,ubyte,ABIStress.S6U,ABIStress.Hfa1,ABIStress.S14U,ABIStress.S15U):int (FullOpts)
         -64 (-24.24 % of base) : 502526.dasm - (dynamicClass):IL_STUB_CallTailCallTarget(long,byref,long) (FullOpts)
         -24 (-23.08 % of base) : 501879.dasm - (dynamicClass):ABIStress_TailCaller67(ABIStress.S14U,ABIStress.S14U,ABIStress.S8U,System.Int128,ABIStress.S15U,ABIStress.S9U,ABIStress.S9U,ABIStress.S4P,short,ABIStress.S8P,ABIStress.S14U,System.Numerics.Vector`1[int],ABIStress.I128_1):int (FullOpts)
         -88 (-22.68 % of base) : 502095.dasm - (dynamicClass):ABIStress_TailCaller176(ABIStress.S8U,ABIStress.I128_1,ABIStress.S15U,ABIStress.S11U,ABIStress.I128_1,ABIStress.S16U,ABIStress.S13U,ABIStress.S11U,ABIStress.S10U,ABIStress.Hfa1,ABIStress.S5U,ABIStress.S13U,short,ABIStress.S12U,ABIStress.S6U,short,ABIStress.S8U,ABIStress.S14U,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S7U):int (FullOpts)
         -48 (-22.22 % of base) : 242906.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)
         -92 (-21.90 % of base) : 503416.dasm - (dynamicClass):IL_STUB_CallTailCallTarget(long,byref,long) (FullOpts)
         -56 (-20.90 % of base) : 239866.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper+CheckConstraintsArgs:.ctor(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.ConversionsBase,ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0)
        -100 (-20.49 % of base) : 502821.dasm - (dynamicClass):IL_STUB_CallTailCallTarget(long,byref,long) (FullOpts)
        -328 (-20.25 % of base) : 497575.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S2U,ABIStress.S11U,ABIStress.S11U,ABIStress.S16U,ABIStress.S6U,ABIStress.S6U,ABIStress.S4P,ABIStress.S14U,ABIStress.Hfa2,ABIStress.S10U,ABIStress.S13U,ABIStress.Hfa1,double,ABIStress.S10U,ABIStress.S2P,ABIStress.Hfa2,ABIStress.S5U,ABIStress.S9U,ABIStress.S4U,ABIStress.S12U,ABIStress.S2U,ABIStress.Hfa2,float,ABIStress.S6U,ABIStress.S32U):int (MinOpts)
         -68 (-20.24 % of base) : 501964.dasm - (dynamicClass):IL_STUB_CallTailCallTarget(long,byref,long) (FullOpts)
        -304 (-19.49 % of base) : 494916.dasm - (dynamicClass):IL_STUB_PInvoke(double,ABIStress.S13U,ABIStress.S6U,ABIStress.S14U,ABIStress.S1P,ABIStress.S13U,ABIStress.S10U,ABIStress.S5U,ABIStress.S2U,ABIStress.Hfa1,long,ABIStress.S11U,ABIStress.S12U,ABIStress.S1P,ABIStress.S32U,ABIStress.S10U,long,ABIStress.S15U,ABIStress.S11U,ABIStress.S16U,ABIStress.S4P,ABIStress.S8U,ABIStress.S10U,ABIStress.S32U):int (MinOpts)
        -300 (-19.23 % of base) : 495493.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S12U,ABIStress.S2P,ABIStress.S5U,ABIStress.S16U,ABIStress.S15U,ABIStress.S5U,ABIStress.S2P,ABIStress.S15U,ABIStress.S4P,ABIStress.S13U,ABIStress.S3U,long,ABIStress.S8U,ABIStress.S12U,ABIStress.S9U,ABIStress.S9U,ABIStress.S8U,double,double,ABIStress.S3U,ABIStress.S1P,ABIStress.S14U,ABIStress.S6U,ABIStress.S2U,ABIStress.S31U):int (MinOpts)
        -212 (-19.13 % of base) : 496585.dasm - (dynamicClass):ABIStress_PInvoker635(ubyte,ABIStress.S3U,System.Numerics.Vector`1[int],ABIStress.S14U,ABIStress.S9U,ABIStress.Hfa1,ABIStress.S5U,int,System.Int128,float,ABIStress.S17U,ABIStress.S3U,ABIStress.S2P,ABIStress.Hfa2,ABIStress.S9U,ABIStress.S31U,ABIStress.I128_2,ABIStress.S13U,ABIStress.S4U,ABIStress.S32U,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.I128_2,ABIStress.S15U,ABIStress.I128_1,ABIStress.S2U):int[] (MinOpts)


libraries.crossgen2.osx.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 55622104 (overridden on cmd)
Total bytes of diff: 55609980 (overridden on cmd)
Total bytes of delta: -12124 (-0.02 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          96 : 67022.dasm (3.10 % of base)
          64 : 66161.dasm (4.19 % of base)
          60 : 52860.dasm (2.66 % of base)
          60 : 73544.dasm (7.81 % of base)
          48 : 166608.dasm (2.65 % of base)
          48 : 131325.dasm (2.65 % of base)
          44 : 129712.dasm (0.16 % of base)
          40 : 66019.dasm (2.78 % of base)
          40 : 174309.dasm (5.35 % of base)
          32 : 110118.dasm (3.59 % of base)
          32 : 68956.dasm (3.45 % of base)
          32 : 110120.dasm (5.10 % of base)
          32 : 207332.dasm (5.59 % of base)
          28 : 166950.dasm (3.87 % of base)
          28 : 43149.dasm (3.63 % of base)
          28 : 196965.dasm (1.03 % of base)
          28 : 228545.dasm (4.96 % of base)
          28 : 131653.dasm (3.91 % of base)
          28 : 131686.dasm (3.87 % of base)
          28 : 209679.dasm (3.74 % of base)

Top file improvements (bytes):
       -1280 : 168107.dasm (-5.26 % of base)
       -1280 : 132874.dasm (-5.26 % of base)
        -140 : 173140.dasm (-4.77 % of base)
        -128 : 173303.dasm (-11.51 % of base)
        -124 : 193650.dasm (-4.59 % of base)
         -92 : 180287.dasm (-0.93 % of base)
         -88 : 173222.dasm (-5.39 % of base)
         -88 : 110212.dasm (-7.03 % of base)
         -72 : 92657.dasm (-14.88 % of base)
         -72 : 115016.dasm (-2.96 % of base)
         -68 : 163807.dasm (-3.93 % of base)
         -64 : 48051.dasm (-0.20 % of base)
         -64 : 48382.dasm (-10.13 % of base)
         -64 : 113935.dasm (-5.50 % of base)
         -64 : 175476.dasm (-4.23 % of base)
         -60 : 109111.dasm (-1.73 % of base)
         -56 : 106744.dasm (-1.72 % of base)
         -56 : 140377.dasm (-6.01 % of base)
         -56 : 149630.dasm (-2.92 % of base)
         -56 : 150074.dasm (-9.33 % of base)

79 total files with Code Size differences (44 improved, 35 regressed), 20 unchanged.

Top method regressions (bytes):
          96 (3.10 % of base) : 67022.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:MakeSynthesizedTupleMembers(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol],System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbol]):Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbol]:this (FullOpts)
          64 (4.19 % of base) : 66161.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:CreateEmbeddedAttributesIfNeeded(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
          60 (7.81 % of base) : 73544.dasm - Microsoft.CodeAnalysis.CSharp.ClosureConversion+<>c__DisplayClass35_0:<SynthesizeClosureEnvironments>g__MakeFrame|1(Microsoft.CodeAnalysis.CSharp.ClosureConversion+Analysis+Scope,Microsoft.CodeAnalysis.CSharp.ClosureConversion+Analysis+ClosureEnvironment):Microsoft.CodeAnalysis.CSharp.SynthesizedClosureEnvironment:this (FullOpts)
          60 (2.66 % of base) : 52860.dasm - Microsoft.CodeAnalysis.CSharp.SymbolDisplayVisitor:AddTypeParameterConstraints(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ITypeSymbol]):this (FullOpts)
          48 (2.65 % of base) : 166608.dasm - Microsoft.Cci.PdbWriter:DefineNamespaceScopes(Microsoft.Cci.IMethodBody):this (FullOpts)
          48 (2.65 % of base) : 131325.dasm - Microsoft.Cci.PdbWriter:DefineNamespaceScopes(Microsoft.Cci.IMethodBody):this (FullOpts)
          44 (0.16 % of base) : 129712.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          40 (2.78 % of base) : 66019.dasm - Microsoft.CodeAnalysis.CSharp.Emit.CSharpDefinitionMap:CreateLocalSlotMap(Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.LocalInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Emit.EncLocalInfo] (FullOpts)
          40 (5.35 % of base) : 174309.dasm - Microsoft.CodeAnalysis.SarifV2ErrorLogger+DiagnosticDescriptorSet:ToSortedList():System.Collections.Generic.List`1[System.ValueTuple`3[int,Microsoft.CodeAnalysis.DiagnosticDescriptor,Microsoft.CodeAnalysis.DiagnosticDescriptorErrorLoggerInfo]]:this (FullOpts)
          32 (3.45 % of base) : 68956.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:InfiniteFlatteningGraph(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]):ubyte (FullOpts)
          32 (3.59 % of base) : 110118.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode:DoGetSyntaxErrors(Microsoft.CodeAnalysis.SyntaxTree,Microsoft.CodeAnalysis.SyntaxNodeOrToken):System.Collections.ObjectModel.ReadOnlyCollection`1[Microsoft.CodeAnalysis.Diagnostic] (FullOpts)
          32 (5.10 % of base) : 110120.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode:ProcessTrivia(Microsoft.CodeAnalysis.SyntaxTree,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.Diagnostic],System.Collections.Generic.Stack`1[Microsoft.CodeAnalysis.SyntaxNodeOrToken],Microsoft.CodeAnalysis.SyntaxTriviaList) (FullOpts)
          32 (5.59 % of base) : 207332.dasm - System.Data.ProviderBase.DbReferenceCollection:Notify(int):this (FullOpts)
          28 (3.91 % of base) : 131653.dasm - Microsoft.Cci.MetadataWriter:PopulateMethodTableRows(int[]):this (FullOpts)
          28 (3.87 % of base) : 166950.dasm - Microsoft.Cci.MetadataWriter:SerializeCustomAttributeSignature(Microsoft.Cci.ICustomAttribute,System.Reflection.Metadata.BlobBuilder):this (FullOpts)
          28 (3.87 % of base) : 131686.dasm - Microsoft.Cci.MetadataWriter:SerializeCustomAttributeSignature(Microsoft.Cci.ICustomAttribute,System.Reflection.Metadata.BlobBuilder):this (FullOpts)
          28 (4.96 % of base) : 228545.dasm - Microsoft.Extensions.Logging.LoggerFilterConfigureOptions:LoadRules(Microsoft.Extensions.Logging.LoggerFilterOptions,Microsoft.Extensions.Configuration.IConfigurationSection,System.String) (FullOpts)
          28 (3.74 % of base) : 209679.dasm - System.Linq.Parallel.DecimalAverageAggregationOperator:InternalAggregate(byref):System.Decimal:this (FullOpts)
          28 (3.63 % of base) : 43149.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateFields(System.RuntimeType+RuntimeTypeCache+Filter):System.Reflection.RuntimeFieldInfo[]:this (FullOpts)
          28 (1.03 % of base) : 196965.dasm - System.Xml.Schema.SchemaCollectionPreprocessor:PreprocessSimpleType(System.Xml.Schema.XmlSchemaSimpleType,ubyte):this (FullOpts)

Top method improvements (bytes):
       -1280 (-5.26 % of base) : 168107.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
       -1280 (-5.26 % of base) : 132874.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
        -140 (-4.77 % of base) : 173140.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:GetDelta(Microsoft.CodeAnalysis.Compilation,System.Guid,System.Reflection.Metadata.Ecma335.MetadataSizes):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
        -128 (-11.51 % of base) : 173303.dasm - Microsoft.CodeAnalysis.Emit.SymbolMatcher:MapBaselineToCompilation(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]],System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]]):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
        -124 (-4.59 % of base) : 193650.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
         -92 (-0.93 % of base) : 180287.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -88 (-5.39 % of base) : 173222.dasm - Microsoft.CodeAnalysis.Emit.EmitBaseline:CreateInitialBaseline(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.ModuleMetadata,System.Func`2[System.Reflection.Metadata.MethodDefinitionHandle,Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation],System.Func`2[System.Reflection.Metadata.MethodDefinitionHandle,System.Reflection.Metadata.StandaloneSignatureHandle],ubyte):Microsoft.CodeAnalysis.Emit.EmitBaseline (FullOpts)
         -88 (-7.03 % of base) : 110212.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilationOptions:.ctor(Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilationOptions):this (FullOpts)
         -72 (-14.88 % of base) : 92657.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.QuickAttributeHelpers:GetQuickAttributes(System.String,ubyte):ubyte (FullOpts)
         -72 (-2.96 % of base) : 115016.dasm - Microsoft.CodeAnalysis.VisualBasic.TypeArgumentInference+InferenceGraph:Infer(Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BoundNode,byref,byref,byref,byref,byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.BitVector):ubyte (FullOpts)
         -68 (-3.93 % of base) : 163807.dasm - System.Data.Common.DecimalStorage:Aggregate(int[],int):System.Object:this (FullOpts)
         -64 (-0.20 % of base) : 48051.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
         -64 (-10.13 % of base) : 48382.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (FullOpts)
         -64 (-4.23 % of base) : 175476.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__75:MoveNext():ubyte:this (FullOpts)
         -64 (-5.50 % of base) : 113935.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEDeltaAssemblyBuilder+VB$StateMachine_27_GetTopLevelTypeDefinitions:MoveNext():ubyte:this (FullOpts)
         -60 (-1.73 % of base) : 109111.dasm - Microsoft.CodeAnalysis.VisualBasic.LocalRewriter:VisitFieldOrPropertyInitializer(Microsoft.CodeAnalysis.VisualBasic.BoundFieldOrPropertyInitializer,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbol]):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this (FullOpts)
         -56 (-6.01 % of base) : 140377.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__77:MoveNext():ubyte:this (FullOpts)
         -56 (-1.72 % of base) : 106744.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:RewriteTrivia(Microsoft.CodeAnalysis.SyntaxTriviaList,int,ubyte,ubyte,ubyte,int,int):Microsoft.CodeAnalysis.SyntaxTriviaList:this (FullOpts)
         -56 (-2.92 % of base) : 149630.dasm - System.Security.Cryptography.X509Certificates.X500NameEncoder:X500DistinguishedNameDecode(ubyte[],ubyte,ubyte,ubyte,System.String,System.String,ubyte):System.String (FullOpts)
         -56 (-9.33 % of base) : 150074.dasm - System.Text.Json.JsonDocument:Parse(System.Buffers.ReadOnlySequence`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)

Top method regressions (percentages):
          60 (7.81 % of base) : 73544.dasm - Microsoft.CodeAnalysis.CSharp.ClosureConversion+<>c__DisplayClass35_0:<SynthesizeClosureEnvironments>g__MakeFrame|1(Microsoft.CodeAnalysis.CSharp.ClosureConversion+Analysis+Scope,Microsoft.CodeAnalysis.CSharp.ClosureConversion+Analysis+ClosureEnvironment):Microsoft.CodeAnalysis.CSharp.SynthesizedClosureEnvironment:this (FullOpts)
           4 (7.14 % of base) : 96547.dasm - Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable`1[int]):this (FullOpts)
          20 (6.02 % of base) : 72502.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
          24 (5.83 % of base) : 129287.dasm - System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1[System.__Canon]:DecodeFixedArguments(byref,byref,int,System.Reflection.Metadata.BlobReader):System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.CustomAttributeTypedArgument`1[System.__Canon]]:this (FullOpts)
          32 (5.59 % of base) : 207332.dasm - System.Data.ProviderBase.DbReferenceCollection:Notify(int):this (FullOpts)
           4 (5.56 % of base) : 74819.dasm - Microsoft.CodeAnalysis.CSharp.Emit.CSharpSymbolMatcher+MatchDefsToSource:GetFields(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFieldDefinition]:this (FullOpts)
           4 (5.56 % of base) : 74818.dasm - Microsoft.CodeAnalysis.CSharp.Emit.CSharpSymbolMatcher+MatchDefsToSource:GetNestedTypes(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.INestedTypeDefinition]:this (FullOpts)
           4 (5.56 % of base) : 113954.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.VisualBasicSymbolMatcher+MatchDefsToSource:GetFields(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFieldDefinition]:this (FullOpts)
           4 (5.56 % of base) : 113953.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.VisualBasicSymbolMatcher+MatchDefsToSource:GetNestedTypes(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.INestedTypeDefinition]:this (FullOpts)
          40 (5.35 % of base) : 174309.dasm - Microsoft.CodeAnalysis.SarifV2ErrorLogger+DiagnosticDescriptorSet:ToSortedList():System.Collections.Generic.List`1[System.ValueTuple`3[int,Microsoft.CodeAnalysis.DiagnosticDescriptor,Microsoft.CodeAnalysis.DiagnosticDescriptorErrorLoggerInfo]]:this (FullOpts)
          32 (5.10 % of base) : 110120.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode:ProcessTrivia(Microsoft.CodeAnalysis.SyntaxTree,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.Diagnostic],System.Collections.Generic.Stack`1[Microsoft.CodeAnalysis.SyntaxNodeOrToken],Microsoft.CodeAnalysis.SyntaxTriviaList) (FullOpts)
           4 (5.00 % of base) : 133126.dasm - Microsoft.CodeAnalysis.SourceLocation:GetLineSpan():Microsoft.CodeAnalysis.FileLinePositionSpan:this (FullOpts)
           4 (5.00 % of base) : 168357.dasm - Microsoft.CodeAnalysis.SourceLocation:GetLineSpan():Microsoft.CodeAnalysis.FileLinePositionSpan:this (FullOpts)
           4 (5.00 % of base) : 133127.dasm - Microsoft.CodeAnalysis.SourceLocation:GetMappedLineSpan():Microsoft.CodeAnalysis.FileLinePositionSpan:this (FullOpts)
           4 (5.00 % of base) : 168358.dasm - Microsoft.CodeAnalysis.SourceLocation:GetMappedLineSpan():Microsoft.CodeAnalysis.FileLinePositionSpan:this (FullOpts)
          28 (4.96 % of base) : 228545.dasm - Microsoft.Extensions.Logging.LoggerFilterConfigureOptions:LoadRules(Microsoft.Extensions.Logging.LoggerFilterOptions,Microsoft.Extensions.Configuration.IConfigurationSection,System.String) (FullOpts)
          20 (4.95 % of base) : 72507.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          24 (4.80 % of base) : 200404.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:IndexOf(System.__Canon,int,int,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):int:this (FullOpts)
           4 (4.76 % of base) : 180384.dasm - System.Text.RegularExpressions.Symbolic.MatchingState`1[System.Text.RegularExpressions.Symbolic.BitVector]:IsDeadend(System.Text.RegularExpressions.Symbolic.ISolver`1[System.Text.RegularExpressions.Symbolic.BitVector]):ubyte:this (FullOpts)
           4 (4.76 % of base) : 180499.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexNode`1[System.Text.RegularExpressions.Symbolic.BitVector]:IsNothing(System.Text.RegularExpressions.Symbolic.ISolver`1[System.Text.RegularExpressions.Symbolic.BitVector]):ubyte:this (FullOpts)

Top method improvements (percentages):
         -12 (-21.43 % of base) : 150552.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[long]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -12 (-21.43 % of base) : 150538.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -12 (-21.43 % of base) : 150563.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -32 (-16.67 % of base) : 152002.dasm - System.Text.Json.JsonDocument:ParseRented(System.Text.Json.PooledByteBufferWriter,System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
         -72 (-14.88 % of base) : 92657.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.QuickAttributeHelpers:GetQuickAttributes(System.String,ubyte):ubyte (FullOpts)
         -28 (-14.29 % of base) : 126081.dasm - System.Formats.Asn1.AsnValueReader:ThrowIfNotEmpty():this (FullOpts)
         -28 (-14.29 % of base) : 146052.dasm - System.Formats.Asn1.AsnValueReader:ThrowIfNotEmpty():this (FullOpts)
         -28 (-14.29 % of base) : 149308.dasm - System.Formats.Asn1.AsnValueReader:ThrowIfNotEmpty():this (FullOpts)
         -24 (-13.64 % of base) : 150639.dasm - System.Text.Json.Nodes.JsonValue:Create(System.Nullable`1[System.Decimal],System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonValue (FullOpts)
          -8 (-13.33 % of base) : 150539.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.DateTimeOffset):System.Text.Json.Nodes.JsonNode (FullOpts)
          -8 (-13.33 % of base) : 150541.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Decimal):System.Text.Json.Nodes.JsonNode (FullOpts)
          -8 (-13.33 % of base) : 150545.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Guid):System.Text.Json.Nodes.JsonNode (FullOpts)
          -8 (-13.33 % of base) : 150544.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[double]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -32 (-12.90 % of base) : 151501.dasm - System.Text.Json.JsonDocument:ParseValue(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
         -12 (-12.00 % of base) : 150073.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlyMemory`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
         -24 (-11.76 % of base) : 42416.dasm - System.Reflection.Emit.RuntimeModuleBuilder:SetFieldRVAContent(System.Runtime.CompilerServices.QCallModule,int,ubyte[],int) (FullOpts)
        -128 (-11.51 % of base) : 173303.dasm - Microsoft.CodeAnalysis.Emit.SymbolMatcher:MapBaselineToCompilation(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]],System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]]):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
         -28 (-11.48 % of base) : 133855.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ReplaceAdditionalTexts(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
         -28 (-11.48 % of base) : 169065.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ReplaceAdditionalTexts(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
         -24 (-11.32 % of base) : 42421.dasm - System.Reflection.Emit.RuntimeTypeBuilder:DefineMethodSpec(System.Runtime.CompilerServices.QCallModule,int,ubyte[],int):int (FullOpts)


libraries.pmi.osx.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 79954540 (overridden on cmd)
Total bytes of diff: 79942740 (overridden on cmd)
Total bytes of delta: -11800 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         124 : 115027.dasm (1.10 % of base)
         112 : 103396.dasm (0.93 % of base)
         104 : 115886.dasm (4.48 % of base)
          96 : 76974.dasm (2.38 % of base)
          84 : 137578.dasm (1.73 % of base)
          80 : 115054.dasm (0.81 % of base)
          76 : 114793.dasm (1.38 % of base)
          76 : 264999.dasm (1.99 % of base)
          64 : 114799.dasm (2.13 % of base)
          64 : 245459.dasm (1.70 % of base)
          60 : 858.dasm (5.79 % of base)
          56 : 179303.dasm (0.45 % of base)
          48 : 81179.dasm (0.44 % of base)
          48 : 114550.dasm (0.49 % of base)
          40 : 114938.dasm (0.68 % of base)
          40 : 119165.dasm (1.05 % of base)
          40 : 114949.dasm (0.99 % of base)
          40 : 75236.dasm (0.65 % of base)
          36 : 280594.dasm (4.17 % of base)
          36 : 81256.dasm (0.63 % of base)

Top file improvements (bytes):
        -440 : 174041.dasm (-9.00 % of base)
        -440 : 174134.dasm (-9.33 % of base)
        -160 : 297056.dasm (-3.21 % of base)
        -140 : 223183.dasm (-6.01 % of base)
        -128 : 245568.dasm (-11.64 % of base)
        -124 : 245399.dasm (-4.38 % of base)
        -112 : 215037.dasm (-6.78 % of base)
        -112 : 245488.dasm (-5.26 % of base)
         -96 : 143303.dasm (-4.69 % of base)
         -88 : 150318.dasm (-6.49 % of base)
         -84 : 28120.dasm (-3.43 % of base)
         -64 : 79206.dasm (-9.70 % of base)
         -64 : 269905.dasm (-7.41 % of base)
         -60 : 174955.dasm (-4.16 % of base)
         -60 : 28244.dasm (-2.00 % of base)
         -48 : 107099.dasm (-1.79 % of base)
         -48 : 250445.dasm (-3.58 % of base)
         -48 : 81073.dasm (-0.44 % of base)
         -48 : 191170.dasm (-6.00 % of base)
         -48 : 227295.dasm (-0.75 % of base)

81 total files with Code Size differences (43 improved, 38 regressed), 20 unchanged.

Top method regressions (bytes):
         124 (1.10 % of base) : 115027.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:DecodeModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,int,int,int,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.MemberModifiers:this (FullOpts)
         112 (0.93 % of base) : 103396.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
         104 (4.48 % of base) : 115886.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.VisualBasicAttributeData:ShouldEmitAttribute(Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,ubyte):ubyte:this (FullOpts)
          96 (2.38 % of base) : 76974.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:<LoadAndValidateAttributes>g__removeObsoleteDiagnosticsForForwardedTypes|197_0(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],byref):this (FullOpts)
          84 (1.73 % of base) : 137578.dasm - Microsoft.CodeAnalysis.VisualBasic.AccessCheck:VerifyAccessExposureForMemberType(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.SyntaxNodeOrToken,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,ubyte) (FullOpts)
          80 (0.81 % of base) : 115054.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:DecodeParameterList(Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,int,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.ParameterSyntax],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.VisualBasic.Binder+CheckParameterModifierDelegate,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
          76 (1.99 % of base) : 264999.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:PopulateEncLogTableRows(System.Collections.Immutable.ImmutableArray`1[int],byref,byref):this (FullOpts)
          76 (1.38 % of base) : 114793.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BuildBoundLambdaParameters(Microsoft.CodeAnalysis.VisualBasic.UnboundLambda,Microsoft.CodeAnalysis.VisualBasic.UnboundLambda+TargetSignature,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.BoundLambdaParameterSymbol]:this (FullOpts)
          64 (1.70 % of base) : 245459.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:PopulateEncLogTableRows(System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int]):this (FullOpts)
          64 (2.13 % of base) : 114799.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ConstructAnonymousDelegateSymbol(Microsoft.CodeAnalysis.VisualBasic.UnboundLambda,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.BoundLambdaParameterSymbol],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol:this (FullOpts)
          60 (5.79 % of base) : 858.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
          56 (0.45 % of base) : 179303.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
          48 (0.44 % of base) : 81179.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:LearnFromDecisionDag(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDag,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+PossiblyConditionalState]):Microsoft.CodeAnalysis.PooledObjects.PooledDictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte]]:this (FullOpts)
          48 (0.49 % of base) : 114550.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindAttributeNamedArgument(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Syntax.SimpleArgumentSyntax,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
          40 (0.65 % of base) : 75236.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (FullOpts)
          40 (0.68 % of base) : 114938.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:DecodeLocalModifiersAndReportErrors(Microsoft.CodeAnalysis.SyntaxTokenList,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
          40 (0.99 % of base) : 114949.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:VerifyNameShadowingInMethodBody(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.SyntaxNodeOrToken,Microsoft.CodeAnalysis.SyntaxNodeOrToken,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
          40 (1.05 % of base) : 119165.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceNamedTypeSymbol:CreateTypeParameterInfoInPart(Microsoft.CodeAnalysis.SyntaxTree,Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceTypeParameterOnTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Syntax.TypeParameterListSyntax,ubyte,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
          36 (0.63 % of base) : 81256.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitArguments>g__visitArguments|231_0(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Conversion],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte):System.ValueTuple`4[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte,Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate]:this (FullOpts)
          36 (4.17 % of base) : 280594.dasm - System.Text.Encodings.Web.TextEncoder:EncodeCore(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref,byref,ubyte):int:this (FullOpts)

Top method improvements (bytes):
        -440 (-9.33 % of base) : 174134.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -440 (-9.00 % of base) : 174041.dasm - Newtonsoft.Json.JsonWriter:WriteValueAsync(Newtonsoft.Json.JsonWriter,int,System.Object,System.Threading.CancellationToken):System.Threading.Tasks.Task (FullOpts)
        -160 (-3.21 % of base) : 297056.dasm - R2RTest.BuildFolderSet:WriteCombinedLog(System.String):this (FullOpts)
        -140 (-6.01 % of base) : 223183.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -128 (-11.64 % of base) : 245568.dasm - Microsoft.CodeAnalysis.Emit.SymbolMatcher:MapBaselineToCompilation(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]],System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]]):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
        -124 (-4.38 % of base) : 245399.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:GetDelta(Microsoft.CodeAnalysis.Compilation,System.Guid,System.Reflection.Metadata.Ecma335.MetadataSizes):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
        -112 (-5.26 % of base) : 245488.dasm - Microsoft.CodeAnalysis.Emit.EmitBaseline:CreateInitialBaseline(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.ModuleMetadata,System.Func`2[System.Reflection.Metadata.MethodDefinitionHandle,Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation],System.Func`2[System.Reflection.Metadata.MethodDefinitionHandle,System.Reflection.Metadata.StandaloneSignatureHandle],ubyte):Microsoft.CodeAnalysis.Emit.EmitBaseline (FullOpts)
        -112 (-6.78 % of base) : 215037.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
         -96 (-4.69 % of base) : 143303.dasm - Microsoft.CodeAnalysis.VisualBasic.TypeArgumentInference+InferenceGraph:Infer(Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BoundNode,byref,byref,byref,byref,byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.BitVector):ubyte (FullOpts)
         -88 (-6.49 % of base) : 150318.dasm - Microsoft.Build.Graph.GraphBuilder:AddEdgesFromProjectReferenceItems(System.Collections.Generic.Dictionary`2[Microsoft.Build.BackEnd.ConfigurationMetadata,Microsoft.Build.Graph.ParsedProject],Microsoft.Build.Graph.GraphBuilder+GraphEdges):this (FullOpts)
         -84 (-3.43 % of base) : 28120.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetFieldTokenNoLock(System.Reflection.FieldInfo):int:this (FullOpts)
         -64 (-9.70 % of base) : 79206.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (FullOpts)
         -64 (-7.41 % of base) : 269905.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__77:MoveNext():ubyte:this (FullOpts)
         -60 (-4.16 % of base) : 174955.dasm - Newtonsoft.Json.Serialization.DefaultSerializationBinder:GetGenericTypeFromTypeName(System.String,System.Reflection.Assembly):System.Type:this (FullOpts)
         -60 (-2.00 % of base) : 28244.dasm - System.Reflection.Emit.RuntimeTypeBuilder:CreateTypeNoLock():System.Reflection.TypeInfo:this (FullOpts)
         -48 (-0.44 % of base) : 81073.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitTupleDeconstructionArguments(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+DeconstructionVariable],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression]],Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState]):this (FullOpts)
         -48 (-1.79 % of base) : 107099.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol:GetCustomAttributesForToken(System.Reflection.Metadata.EntityHandle,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData]:this (FullOpts)
         -48 (-3.58 % of base) : 250445.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__75:MoveNext():ubyte:this (FullOpts)
         -48 (-6.00 % of base) : 191170.dasm - System.Security.Cryptography.Pkcs.SignerInfo:VerifySignature(System.Security.Cryptography.Pkcs.CmsSignature,System.Security.Cryptography.X509Certificates.X509Certificate2,ubyte):ubyte:this (FullOpts)
         -48 (-0.75 % of base) : 227295.dasm - System.Xml.Xsl.Xslt.XsltLoader:LoadOutput():this (FullOpts)

Top method regressions (percentages):
          16 (6.90 % of base) : 107786.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
           4 (6.67 % of base) : 236228.dasm - Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (FullOpts)
           4 (6.67 % of base) : 256249.dasm - Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (FullOpts)
           4 (6.67 % of base) : 122574.dasm - Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable`1[int]):this (FullOpts)
           4 (6.25 % of base) : 110253.dasm - Microsoft.CodeAnalysis.CSharp.Emit.CSharpSymbolMatcher+MatchDefsToSource:GetFields(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFieldDefinition]:this (FullOpts)
           4 (6.25 % of base) : 110252.dasm - Microsoft.CodeAnalysis.CSharp.Emit.CSharpSymbolMatcher+MatchDefsToSource:GetNestedTypes(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.INestedTypeDefinition]:this (FullOpts)
           4 (6.25 % of base) : 249590.dasm - Microsoft.CodeAnalysis.DesktopStrongNameProvider+<>c__DisplayClass12_0:<SignBuilder>b__0(System.Collections.Generic.IEnumerable`1[System.Reflection.Metadata.Blob]):ubyte[]:this (FullOpts)
           4 (6.25 % of base) : 269044.dasm - Microsoft.CodeAnalysis.DesktopStrongNameProvider+<>c__DisplayClass12_0:<SignBuilder>b__0(System.Collections.Generic.IEnumerable`1[System.Reflection.Metadata.Blob]):ubyte[]:this (FullOpts)
           4 (6.25 % of base) : 142042.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.VisualBasicSymbolMatcher+MatchDefsToSource:GetFields(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFieldDefinition]:this (FullOpts)
           4 (6.25 % of base) : 142041.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.VisualBasicSymbolMatcher+MatchDefsToSource:GetNestedTypes(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.INestedTypeDefinition]:this (FullOpts)
           4 (5.88 % of base) : 248525.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (FullOpts)
           4 (5.88 % of base) : 267976.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (FullOpts)
           4 (5.88 % of base) : 248528.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+UpgradeableReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (FullOpts)
           4 (5.88 % of base) : 267979.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+UpgradeableReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (FullOpts)
           4 (5.88 % of base) : 267981.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+WriteLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (FullOpts)
           4 (5.88 % of base) : 248530.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+WriteLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (FullOpts)
          60 (5.79 % of base) : 858.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
          24 (4.72 % of base) : 76960.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:DecodeWellKnownAttribute(byref):this (FullOpts)
         104 (4.48 % of base) : 115886.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.VisualBasicAttributeData:ShouldEmitAttribute(Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,ubyte):ubyte:this (FullOpts)
          28 (4.24 % of base) : 109509.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Blender+Reader:TryTakeOldNodeOrToken(ubyte,byref):ubyte:this (FullOpts)

Top method improvements (percentages):
         -32 (-20.00 % of base) : 77334.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
         -12 (-20.00 % of base) : 170195.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.DateTimeOffset):System.Text.Json.Nodes.JsonNode (FullOpts)
         -12 (-20.00 % of base) : 170208.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[long]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -12 (-20.00 % of base) : 170194.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -12 (-20.00 % of base) : 170219.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -24 (-16.67 % of base) : 121113.dasm - Microsoft.CodeAnalysis.VisualBasic.BoundPropertyAccess:MakeRValue():Microsoft.CodeAnalysis.VisualBasic.BoundPropertyAccess:this (FullOpts)
         -20 (-14.29 % of base) : 77335.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
         -20 (-14.29 % of base) : 120793.dasm - Microsoft.CodeAnalysis.VisualBasic.BoundCall:MakeRValue():Microsoft.CodeAnalysis.VisualBasic.BoundCall:this (FullOpts)
         -12 (-12.50 % of base) : 152289.dasm - Microsoft.Build.Execution.TaskRegistry:get_TaskRegistrations():System.Collections.Generic.IDictionary`2[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskIdentity,System.Collections.Generic.List`1[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord]]:this (FullOpts)
          -8 (-12.50 % of base) : 170197.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Decimal):System.Text.Json.Nodes.JsonNode (FullOpts)
          -8 (-12.50 % of base) : 170201.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Guid):System.Text.Json.Nodes.JsonNode (FullOpts)
          -8 (-12.50 % of base) : 170200.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[double]):System.Text.Json.Nodes.JsonNode (FullOpts)
        -128 (-11.64 % of base) : 245568.dasm - Microsoft.CodeAnalysis.Emit.SymbolMatcher:MapBaselineToCompilation(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]],System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]]):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
          -8 (-11.11 % of base) : 3239.dasm - System.String:GetBytesFromEncoding(ulong,int,System.Text.Encoding):int:this (FullOpts)
         -12 (-11.11 % of base) : 168599.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlyMemory`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
         -16 (-10.81 % of base) : 184823.dasm - System.Data.ProviderBase.SchemaMapping:MappedIndex():this (FullOpts)
          -8 (-10.53 % of base) : 314260.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[int,System.Nullable`1[int]]:TryUpdate(int,System.Nullable`1[int],System.Nullable`1[int]):ubyte:this (FullOpts)
          -8 (-10.53 % of base) : 314361.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[long,System.Nullable`1[int]]:TryUpdate(long,System.Nullable`1[int],System.Nullable`1[int]):ubyte:this (FullOpts)
         -24 (-10.34 % of base) : 239080.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ReplaceAdditionalTexts(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
         -24 (-10.34 % of base) : 258961.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ReplaceAdditionalTexts(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)


libraries_tests.run.osx.arm64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 312899776 (overridden on cmd)
Total bytes of diff: 312446532 (overridden on cmd)
Total bytes of delta: -453244 (-0.14 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         620 : 161021.dasm (4.62 % of base)
         172 : 92745.dasm (1.60 % of base)
         140 : 94024.dasm (3.23 % of base)
         120 : 90888.dasm (1.25 % of base)
          84 : 87735.dasm (0.80 % of base)
          80 : 51138.dasm (0.75 % of base)
          68 : 392214.dasm (1.26 % of base)
          68 : 68629.dasm (0.62 % of base)
          56 : 90965.dasm (0.34 % of base)
          48 : 161018.dasm (0.28 % of base)
          40 : 92749.dasm (0.88 % of base)
          40 : 598527.dasm (0.42 % of base)
          40 : 64093.dasm (0.95 % of base)
          36 : 92278.dasm (0.33 % of base)
          36 : 66126.dasm (0.19 % of base)
          32 : 64284.dasm (0.30 % of base)
          28 : 300971.dasm (0.51 % of base)
          28 : 69214.dasm (0.37 % of base)
          24 : 471075.dasm (0.89 % of base)
          24 : 66758.dasm (0.34 % of base)

Top file improvements (bytes):
       -1568 : 6412.dasm (-7.01 % of base)
       -1096 : 233840.dasm (-5.39 % of base)
       -1048 : 250073.dasm (-0.79 % of base)
       -1048 : 254801.dasm (-0.81 % of base)
        -936 : 384055.dasm (-8.25 % of base)
        -884 : 6588.dasm (-6.60 % of base)
        -684 : 6678.dasm (-3.85 % of base)
        -636 : 73423.dasm (-3.20 % of base)
        -496 : 108789.dasm (-4.16 % of base)
        -496 : 111382.dasm (-4.16 % of base)
        -456 : 428960.dasm (-9.11 % of base)
        -456 : 429011.dasm (-8.96 % of base)
        -456 : 429849.dasm (-9.11 % of base)
        -456 : 429878.dasm (-8.96 % of base)
        -408 : 377939.dasm (-4.89 % of base)
        -392 : 414185.dasm (-2.95 % of base)
        -376 : 142528.dasm (-5.71 % of base)
        -348 : 24700.dasm (-1.96 % of base)
        -348 : 62175.dasm (-3.67 % of base)
        -348 : 80683.dasm (-3.65 % of base)

94 total files with Code Size differences (56 improved, 38 regressed), 20 unchanged.

Top method regressions (bytes):
         620 (4.62 % of base) : 161021.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
         172 (1.60 % of base) : 92745.dasm - Microsoft.Interop.LibraryImportGenerator:CreateTargetDllImportAsLocalStatement(Microsoft.Interop.PInvokeStubCodeGenerator,Microsoft.Interop.LibraryImportGeneratorOptions,Microsoft.Interop.LibraryImportData,System.String,System.String):Microsoft.CodeAnalysis.CSharp.Syntax.LocalFunctionStatementSyntax (Tier1)
         140 (3.23 % of base) : 94024.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (Tier1)
         120 (1.25 % of base) : 90888.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
          84 (0.80 % of base) : 87735.dasm - Microsoft.CodeAnalysis.SolutionCompilationState:AddDocumentsToMultipleProjects[System.__Canon](System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.DocumentInfo],System.Func`3[System.__Canon,System.__Canon,System.__Canon],System.Func`3[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.ValueTuple`2[System.__Canon,System.__Canon]]):Microsoft.CodeAnalysis.SolutionCompilationState:this (Tier1)
          80 (0.75 % of base) : 51138.dasm - Microsoft.CodeAnalysis.SolutionCompilationState:AddDocumentsToMultipleProjects[System.__Canon](System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.DocumentInfo],System.Func`3[System.__Canon,System.__Canon,System.__Canon],System.Func`3[System.__Canon,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.ValueTuple`2[System.__Canon,System.__Canon]]):Microsoft.CodeAnalysis.SolutionCompilationState:this (Tier1)
          68 (1.26 % of base) : 392214.dasm - (dynamicClass):<xsl:apply-templates>(System.Xml.Xsl.Runtime.XmlQueryRuntime,System.Xml.XPath.XPathNavigator) (FullOpts)
          68 (0.62 % of base) : 68629.dasm - Microsoft.Interop.ContainingSyntaxContext:WrapMembersInContainingSyntaxWithUnsafeModifier(Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax[]):Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax:this (Tier1)
          56 (0.34 % of base) : 90965.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
          48 (0.28 % of base) : 161018.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
          40 (0.42 % of base) : 598527.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckValidNullableMethodOverride[System.__Canon](Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Symbols.ReportMismatchInReturnType`1[System.__Canon],Microsoft.CodeAnalysis.CSharp.Symbols.ReportMismatchInParameterType`1[System.__Canon],System.__Canon,ubyte):ubyte (Tier1)
          40 (0.88 % of base) : 92749.dasm - Microsoft.Interop.MarshallingGeneratorExtensions:GenerateForwardingParameter(Microsoft.Interop.TypePositionInfo,System.String):Microsoft.CodeAnalysis.CSharp.Syntax.ParameterSyntax (Tier1)
          40 (0.95 % of base) : 64093.dasm - Microsoft.Interop.SignatureContext+<get_StubParameters>d__14:MoveNext():ubyte:this (Tier1)
          36 (0.19 % of base) : 66126.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindClassCreationExpression(Microsoft.CodeAnalysis.SyntaxNode,System.String,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Syntax.InitializerExpressionSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
          36 (0.33 % of base) : 92278.dasm - Microsoft.Interop.ContainingSyntaxContext:WrapMemberInContainingSyntaxWithUnsafeModifier(Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax):Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax:this (Tier1)
          32 (0.30 % of base) : 64284.dasm - Microsoft.Interop.VariableDeclarations:GenerateDeclarationsForUnmanagedToManaged(Microsoft.Interop.BoundGenerators,Microsoft.Interop.StubCodeContext,ubyte):Microsoft.Interop.VariableDeclarations (Tier1)
          28 (0.37 % of base) : 69214.dasm - Microsoft.Interop.MarshallingGeneratorExtensions:GenerateForwardingParameter(Microsoft.Interop.TypePositionInfo,System.String):Microsoft.CodeAnalysis.CSharp.Syntax.ParameterSyntax (Tier1)
          28 (0.51 % of base) : 300971.dasm - System.Linq.Parallel.SortHelper`2[System.Collections.Generic.KeyValuePair`2[int,System.Collections.Generic.KeyValuePair`2[int,int]],System.Linq.Parallel.Pair`2[int,int]]:MergeSortCooperatively():this (Tier1)
          24 (0.34 % of base) : 66758.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindForOrUsingOrFixedDeclarations(Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclarationSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (Tier1)
          24 (0.89 % of base) : 471075.dasm - System.Security.Cryptography.ECDiffieHellmanDerivation:DeriveKeyFromHmac(System.Security.Cryptography.ECDiffieHellmanPublicKey,System.Security.Cryptography.HashAlgorithmName,ubyte[],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.ECDiffieHellmanDerivation+DeriveSecretAgreement):ubyte[] (Tier1)

Top method improvements (bytes):
       -1568 (-7.01 % of base) : 6412.dasm - ComInterfaceGenerator.Unit.Tests.ByValueContentsMarshalling+<ByValueMarshalAttributeOnPinnedMarshalledTypes>d__2:MoveNext():ubyte:this (Tier0)
       -1096 (-5.39 % of base) : 233840.dasm - System.Xml.Schema.SchemaNames:.ctor(System.Xml.XmlNameTable):this (Instrumented Tier0)
       -1048 (-0.81 % of base) : 254801.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach001.freach001.Test:MainMethod():int (Instrumented Tier0)
       -1048 (-0.79 % of base) : 250073.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach007.freach007.Test:MainMethod():int (Instrumented Tier0)
        -936 (-8.25 % of base) : 384055.dasm - System.Xml.Xsl.Xslt.KeywordsTable:.ctor(System.Xml.XmlNameTable):this (Instrumented Tier0)
        -884 (-6.60 % of base) : 6588.dasm - ComInterfaceGenerator.Unit.Tests.ByValueContentsMarshalling+<ByValueMarshalAttributeOnValueTypes>d__1:MoveNext():ubyte:this (Tier0)
        -684 (-3.85 % of base) : 6678.dasm - ComInterfaceGenerator.Unit.Tests.ByValueContentsMarshalling+<ByValueMarshalAttributeOnCustomCollections>d__3:MoveNext():ubyte:this (Tier0)
        -636 (-3.20 % of base) : 73423.dasm - System.Globalization.Tests.InvariantModeTests:TestCultureData(System.String):this (Instrumented Tier0)
        -496 (-4.16 % of base) : 108789.dasm - Microsoft.CodeAnalysis.CSharp.ForEachLoopBinder:BindForEachPartsWorker(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Binder):Microsoft.CodeAnalysis.CSharp.BoundForEachStatement:this (Instrumented Tier0)
        -496 (-4.16 % of base) : 111382.dasm - Microsoft.CodeAnalysis.CSharp.ForEachLoopBinder:BindForEachPartsWorker(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Binder):Microsoft.CodeAnalysis.CSharp.BoundForEachStatement:this (Instrumented Tier0)
        -456 (-9.11 % of base) : 428960.dasm - System.Numerics.Tests.ToStringTest:RunCustomFormatToStringTests(System.Random,System.String,System.String,int,System.Numerics.Tests.ToStringTest+StringFormatter) (Instrumented Tier0)
        -456 (-9.11 % of base) : 429849.dasm - System.Numerics.Tests.ToStringTest:RunCustomFormatToStringTests(System.Random,System.String,System.String,int,System.Numerics.Tests.ToStringTest+StringFormatter) (Instrumented Tier0)
        -456 (-8.96 % of base) : 429011.dasm - System.Numerics.Tests.ToStringTest:RunStandardFormatToStringTests_Helper(System.Random,System.String,System.String,int,System.Numerics.Tests.ToStringTest+StringFormatter,ubyte) (Instrumented Tier0)
        -456 (-8.96 % of base) : 429878.dasm - System.Numerics.Tests.ToStringTest:RunStandardFormatToStringTests_Helper(System.Random,System.String,System.String,int,System.Numerics.Tests.ToStringTest+StringFormatter,ubyte) (Instrumented Tier0)
        -408 (-4.89 % of base) : 377939.dasm - System.Xml.Serialization.XmlSerializationReader:InitPrimitiveIDs():this (Instrumented Tier0)
        -392 (-2.95 % of base) : 414185.dasm - System.Reflection.Tests.PropertyTests:TestProperties_GetterSetter() (Instrumented Tier0)
        -376 (-5.71 % of base) : 142528.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindMemberAccessWithBoundLeft(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Syntax.SimpleNameSyntax,Microsoft.CodeAnalysis.SyntaxToken,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Instrumented Tier0)
        -348 (-1.96 % of base) : 24700.dasm - ComInterfaceGenerator.Unit.Tests.CompileFails+<CountParameterIsOutSnippets>d__19:MoveNext():ubyte:this (Tier0)
        -348 (-3.67 % of base) : 62175.dasm - Microsoft.CodeAnalysis.CSharp.SymbolDisplayVisitor:VisitMethod(Microsoft.CodeAnalysis.IMethodSymbol):this (Instrumented Tier0)
        -348 (-3.65 % of base) : 80683.dasm - Microsoft.CodeAnalysis.CSharp.SymbolDisplayVisitor:VisitMethod(Microsoft.CodeAnalysis.IMethodSymbol):this (Instrumented Tier0)

Top method regressions (percentages):
           4 (6.67 % of base) : 610471.dasm - Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (Tier1)
          16 (6.67 % of base) : 605957.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
           4 (5.88 % of base) : 66445.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
           4 (5.88 % of base) : 66450.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+WriteLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
          16 (5.63 % of base) : 56031.dasm - Microsoft.CodeAnalysis.PEModule:HasRefSafetyRulesAttribute(System.Reflection.Metadata.EntityHandle,byref,byref):ubyte:this (Tier1)
          16 (5.63 % of base) : 90458.dasm - Microsoft.CodeAnalysis.PEModule:HasRefSafetyRulesAttribute(System.Reflection.Metadata.EntityHandle,byref,byref):ubyte:this (Tier1)
           4 (5.56 % of base) : 58890.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ImportInfo,System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:TryUpdate(Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ImportInfo,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[System.__Canon]):ubyte:this (Tier1)
          12 (5.26 % of base) : 350231.dasm - System.Security.Cryptography.HashProviderDispenser+AppleHmacProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this (Tier1)
          12 (5.26 % of base) : 470769.dasm - System.Security.Cryptography.HashProviderDispenser+AppleHmacProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this (Tier1)
          12 (5.26 % of base) : 466689.dasm - System.Security.Cryptography.HashProviderDispenser+AppleHmacProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this (Tier1)
          12 (5.26 % of base) : 474644.dasm - System.Security.Cryptography.HashProviderDispenser+AppleHmacProvider:AppendHashData(System.ReadOnlySpan`1[ubyte]):this (Tier1)
         620 (4.62 % of base) : 161021.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
          16 (4.35 % of base) : 350280.dasm - System.Security.Cryptography.IncrementalHash:AppendData(System.ReadOnlySpan`1[ubyte]):this (Tier1)
          16 (4.35 % of base) : 466820.dasm - System.Security.Cryptography.IncrementalHash:AppendData(System.ReadOnlySpan`1[ubyte]):this (Tier1)
          12 (4.29 % of base) : 350281.dasm - System.Security.Cryptography.HMACCommon:AppendHashData(System.ReadOnlySpan`1[ubyte]):this (Tier1)
           8 (4.00 % of base) : 55582.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:WithTypeAndModifiers(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CustomModifier]):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (Tier1)
          20 (3.85 % of base) : 353645.dasm - System.Security.Cryptography.IncrementalHash:TryGetHashAndReset(System.Span`1[ubyte],byref):ubyte:this (Tier1)
          20 (3.60 % of base) : 608790.dasm - Microsoft.CodeAnalysis.CSharp.ControlFlowPass:VisitLabeledStatement(Microsoft.CodeAnalysis.CSharp.BoundLabeledStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
         140 (3.23 % of base) : 94024.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMethodSymbolWithAttributes:DecodeDllImportAttribute(byref):this (Tier1)
          16 (3.10 % of base) : 470768.dasm - System.Security.Cryptography.IncrementalHash:GetHashAndResetCore(System.Span`1[ubyte]):int:this (Tier1)

Top method improvements (percentages):
        -108 (-30.68 % of base) : 37219.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Instrumented Tier0)
        -108 (-30.68 % of base) : 14379.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -88 (-29.73 % of base) : 47551.dasm - Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Instrumented Tier0)
         -88 (-29.73 % of base) : 24998.dasm - Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -96 (-29.27 % of base) : 138080.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -96 (-29.27 % of base) : 151304.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -96 (-27.91 % of base) : 163630.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Instrumented Tier0)
         -96 (-27.91 % of base) : 154990.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -80 (-27.40 % of base) : 47556.dasm - Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess:this (Instrumented Tier0)
         -80 (-27.40 % of base) : 25011.dasm - Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess:this (Tier0)
         -88 (-27.16 % of base) : 151387.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -88 (-27.16 % of base) : 138159.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -40 (-27.03 % of base) : 100887.dasm - Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Instrumented Tier0)
         -40 (-27.03 % of base) : 1141.dasm - Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Tier0)
         -44 (-26.83 % of base) : 43213.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Instrumented Tier0)
         -44 (-26.83 % of base) : 20770.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
         -92 (-25.00 % of base) : 165258.dasm - Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression:Update(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.BoundObjectInitializerExpressionBase,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression:this (Instrumented Tier0)
         -32 (-25.00 % of base) : 34729.dasm - Microsoft.CodeAnalysis.SmallDictionary`2+AvlNode[System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:.ctor(int,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations):this (Instrumented Tier0)
         -32 (-25.00 % of base) : 148207.dasm - Microsoft.CodeAnalysis.SmallDictionary`2+AvlNode[System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:.ctor(int,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations):this (Tier0)
         -32 (-25.00 % of base) : 12481.dasm - Microsoft.CodeAnalysis.SmallDictionary`2+AvlNode[System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:.ctor(int,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations):this (Tier0)


librariestestsnotieredcompilation.run.osx.arm64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 160911076 (overridden on cmd)
Total bytes of diff: 160880100 (overridden on cmd)
Total bytes of delta: -30976 (-0.02 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         236 : 50488.dasm (1.91 % of base)
         236 : 44774.dasm (1.91 % of base)
         104 : 9248.dasm (0.89 % of base)
          68 : 168696.dasm (1.50 % of base)
          56 : 145699.dasm (0.46 % of base)
          56 : 176496.dasm (3.27 % of base)
          48 : 12395.dasm (0.80 % of base)
          48 : 121827.dasm (2.09 % of base)
          40 : 122620.dasm (1.78 % of base)
          40 : 50143.dasm (0.69 % of base)
          40 : 126219.dasm (3.00 % of base)
          40 : 294311.dasm (1.33 % of base)
          36 : 101983.dasm (0.62 % of base)
          36 : 50486.dasm (0.90 % of base)
          36 : 53953.dasm (0.64 % of base)
          36 : 228644.dasm (4.19 % of base)
          36 : 44763.dasm (0.90 % of base)
          36 : 59146.dasm (0.12 % of base)
          32 : 255536.dasm (2.67 % of base)
          32 : 67168.dasm (4.12 % of base)

Top file improvements (bytes):
        -392 : 41446.dasm (-9.65 % of base)
        -220 : 10539.dasm (-2.25 % of base)
        -208 : 254800.dasm (-3.34 % of base)
        -140 : 32859.dasm (-6.01 % of base)
        -128 : 10627.dasm (-3.74 % of base)
        -112 : 151387.dasm (-6.68 % of base)
        -112 : 10603.dasm (-2.16 % of base)
        -104 : 1429.dasm (-2.96 % of base)
        -104 : 16951.dasm (-2.91 % of base)
        -104 : 18595.dasm (-2.96 % of base)
        -104 : 1302.dasm (-2.96 % of base)
        -104 : 1413.dasm (-2.96 % of base)
        -104 : 16527.dasm (-2.96 % of base)
        -104 : 17001.dasm (-2.91 % of base)
        -100 : 15679.dasm (-2.84 % of base)
        -100 : 15711.dasm (-2.84 % of base)
        -100 : 16846.dasm (-2.79 % of base)
        -100 : 16955.dasm (-2.79 % of base)
        -100 : 121599.dasm (-2.33 % of base)
        -100 : 25690.dasm (-2.84 % of base)

82 total files with Code Size differences (44 improved, 38 regressed), 20 unchanged.

Top method regressions (bytes):
         236 (1.91 % of base) : 50488.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte) (FullOpts)
         236 (1.91 % of base) : 44774.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte) (FullOpts)
         104 (0.89 % of base) : 9248.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
          68 (1.50 % of base) : 168696.dasm - (dynamicClass):<xsl:apply-templates>(System.Xml.Xsl.Runtime.XmlQueryRuntime,System.Xml.XPath.XPathNavigator) (FullOpts)
          56 (0.46 % of base) : 145699.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
          56 (3.27 % of base) : 176496.dasm - System.Reflection.Emit.ILGeneratorImpl:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
          48 (0.80 % of base) : 12395.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (FullOpts)
          48 (2.09 % of base) : 121827.dasm - System.IO.Tests.FileStream_ctor_str_fm:FileModeAppendExisting(System.String):this (FullOpts)
          40 (0.69 % of base) : 50143.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArguments(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte]:this (FullOpts)
          40 (3.00 % of base) : 126219.dasm - System.IO.Packaging.Tests.Tests:OpenPropertyStream():this (FullOpts)
          40 (1.78 % of base) : 122620.dasm - System.IO.Tests.FileStream_ctor_str_fm:FileModeAppendExisting(System.String):this (FullOpts)
          40 (1.33 % of base) : 294311.dasm - System.Threading.Tasks.Dataflow.Tests.ActionBlockTests+<TestBasicMessageProcessing>d__5:MoveNext():this (FullOpts)
          36 (0.62 % of base) : 101983.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.context.dlgateEvent.dlgate.dlgate001.dlgate001.nms.Start:MainMethod():int (FullOpts)
          36 (0.64 % of base) : 53953.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitArguments>g__visitArguments|232_0(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Conversion],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte):System.ValueTuple`4[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte,Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate]:this (FullOpts)
          36 (0.90 % of base) : 50486.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:MakeParameters[System.__Canon,System.__Canon,System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,System.__Canon,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[System.__Canon],byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte,ubyte,int,System.Func`11[System.__Canon,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.__Canon,ubyte,int,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,ubyte,System.__Canon,System.__Canon],ubyte):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (FullOpts)
          36 (0.90 % of base) : 44763.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:MakeParameters[System.__Canon,System.__Canon,System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,System.__Canon,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[System.__Canon],byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte,ubyte,int,System.Func`11[System.__Canon,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.__Canon,ubyte,int,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,ubyte,System.__Canon,System.__Canon],ubyte):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (FullOpts)
          36 (0.12 % of base) : 59146.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          36 (4.19 % of base) : 228644.dasm - System.Text.Encodings.Web.TextEncoder:EncodeCore(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref,byref,ubyte):int:this (FullOpts)
          32 (4.12 % of base) : 67168.dasm - System.Collections.Tests.TestBase`1[System.ValueTuple`2[System.Collections.Frozen.Tests.SimpleNonComparableStruct,System.Collections.Frozen.Tests.SimpleNonComparableStruct]]:CreateHashSet(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.Collections.Frozen.Tests.SimpleNonComparableStruct,System.Collections.Frozen.Tests.SimpleNonComparableStruct]],int,int):System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.Collections.Frozen.Tests.SimpleNonComparableStruct,System.Collections.Frozen.Tests.SimpleNonComparableStruct]]:this (FullOpts)
          32 (2.67 % of base) : 255536.dasm - System.Text.Json.Serialization.Tests.StreamTests+<PerformSerialization>d__6`2[System.Collections.Generic.KeyValuePair`2[System.Text.Json.Serialization.Tests.StreamTests+ImmutableStructWithStrings,System.Text.Json.Serialization.Tests.StreamTests+ImmutableStructWithStrings],System.Text.Json.Serialization.Tests.StreamTests+ImmutableStructWithStrings]:MoveNext():this (FullOpts)

Top method improvements (bytes):
        -392 (-9.65 % of base) : 41446.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -220 (-2.25 % of base) : 10539.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1[System.__Canon]:VerifyDiagnosticResults(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[Microsoft.CodeAnalysis.Project,Microsoft.CodeAnalysis.Diagnostic]],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],Microsoft.CodeAnalysis.Testing.DiagnosticResult[],Microsoft.CodeAnalysis.Testing.IVerifier):this (MinOpts)
        -208 (-3.34 % of base) : 254800.dasm - System.Text.Json.Nodes.Tests.ParentPathRootTests:GetPathAndRoot() (FullOpts)
        -140 (-6.01 % of base) : 32859.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -128 (-3.74 % of base) : 10627.dasm - Microsoft.CodeAnalysis.Testing.WeightedMatch:MatchRecursive[Microsoft.CodeAnalysis.Testing.DiagnosticResult,System.ValueTuple`2[System.__Canon,System.__Canon]](System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Testing.DiagnosticResult],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1+Builder[Microsoft.CodeAnalysis.Testing.WeightedMatch+Result`2[Microsoft.CodeAnalysis.Testing.DiagnosticResult,System.ValueTuple`2[System.__Canon,System.__Canon]]],byref,byref,double,int,int,ubyte[],double[],ubyte,System.Threading.CancellationToken) (MinOpts)
        -112 (-2.16 % of base) : 10603.dasm - Microsoft.CodeAnalysis.Testing.WeightedMatch:Match[Microsoft.CodeAnalysis.Testing.DiagnosticResult,System.ValueTuple`2[System.__Canon,System.__Canon]](System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Testing.DiagnosticResult],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.TimeSpan):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Testing.WeightedMatch+Result`2[Microsoft.CodeAnalysis.Testing.DiagnosticResult,System.ValueTuple`2[System.__Canon,System.__Canon]]] (MinOpts)
        -112 (-6.68 % of base) : 151387.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
        -104 (-2.96 % of base) : 18595.dasm - Xunit.Assert:Equal[double](double,double,System.Collections.Generic.IEqualityComparer`1[double]) (FullOpts)
        -104 (-2.96 % of base) : 1429.dasm - Xunit.Assert:Equal[float](float,float,System.Collections.Generic.IEqualityComparer`1[float]) (FullOpts)
        -104 (-2.96 % of base) : 1302.dasm - Xunit.Assert:Equal[int](int,int,System.Collections.Generic.IEqualityComparer`1[int]) (FullOpts)
        -104 (-2.96 % of base) : 16527.dasm - Xunit.Assert:Equal[long](long,long,System.Collections.Generic.IEqualityComparer`1[long]) (FullOpts)
        -104 (-2.96 % of base) : 1413.dasm - Xunit.Assert:Equal[System.Drawing.Point](System.Drawing.Point,System.Drawing.Point,System.Collections.Generic.IEqualityComparer`1[System.Drawing.Point]) (FullOpts)
        -104 (-2.91 % of base) : 17001.dasm - Xunit.Assert:Equal[uint](uint,uint,System.Collections.Generic.IEqualityComparer`1[uint]) (FullOpts)
        -104 (-2.91 % of base) : 16951.dasm - Xunit.Assert:Equal[ulong](ulong,ulong,System.Collections.Generic.IEqualityComparer`1[ulong]) (FullOpts)
        -100 (-2.33 % of base) : 121599.dasm - System.IO.Compression.Tests.ZipFile_Open+<UpdateAddFile>d__7:MoveNext():this (FullOpts)
        -100 (-2.84 % of base) : 15711.dasm - Xunit.Assert:Equal[byte](byte,byte,System.Collections.Generic.IEqualityComparer`1[byte]) (FullOpts)
        -100 (-2.84 % of base) : 25690.dasm - Xunit.Assert:Equal[short](short,short,System.Collections.Generic.IEqualityComparer`1[short]) (FullOpts)
        -100 (-2.84 % of base) : 15679.dasm - Xunit.Assert:Equal[ubyte](ubyte,ubyte,System.Collections.Generic.IEqualityComparer`1[ubyte]) (FullOpts)
        -100 (-2.79 % of base) : 16955.dasm - Xunit.Assert:Equal[ubyte](ubyte,ubyte,System.Collections.Generic.IEqualityComparer`1[ubyte]) (FullOpts)
        -100 (-2.79 % of base) : 16846.dasm - Xunit.Assert:Equal[ushort](ushort,ushort,System.Collections.Generic.IEqualityComparer`1[ushort]) (FullOpts)

Top method regressions (percentages):
           8 (10.00 % of base) : 259383.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c:<CheckInvalidString>b__76_0():System.Object:this (FullOpts)
           8 (7.69 % of base) : 259332.dasm - System.Text.Json.Serialization.Tests.JsonDocumentClass:Initialize():this (FullOpts)
          16 (6.67 % of base) : 56228.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          20 (6.49 % of base) : 14996.dasm - Microsoft.CodeAnalysis.Formatting.TokenStream+Changes:AddOrReplace(int,Microsoft.CodeAnalysis.Formatting.TriviaData):this (FullOpts)
          12 (6.38 % of base) : 85019.dasm - Castle.Proxies.Invocations.TypeDescriptionProvider_GetReflectionType:InvokeMethodOnTarget():this (FullOpts)
          12 (6.38 % of base) : 85443.dasm - Castle.Proxies.Invocations.TypeDescriptionProvider_GetTypeDescriptor:InvokeMethodOnTarget():this (FullOpts)
           4 (6.25 % of base) : 121557.dasm - System.IO.Compression.Tests.ZipFile_ZipArchive_Create+<>c__DisplayClass0_0:<CreateEntryFromFileExtension>b__1():System.Object:this (FullOpts)
          28 (4.24 % of base) : 277288.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Blender+Reader:TryTakeOldNodeOrToken(ubyte,byref):ubyte:this (FullOpts)
          36 (4.19 % of base) : 228644.dasm - System.Text.Encodings.Web.TextEncoder:EncodeCore(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref,byref,ubyte):int:this (FullOpts)
          32 (4.12 % of base) : 67168.dasm - System.Collections.Tests.TestBase`1[System.ValueTuple`2[System.Collections.Frozen.Tests.SimpleNonComparableStruct,System.Collections.Frozen.Tests.SimpleNonComparableStruct]]:CreateHashSet(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.Collections.Frozen.Tests.SimpleNonComparableStruct,System.Collections.Frozen.Tests.SimpleNonComparableStruct]],int,int):System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[System.Collections.Frozen.Tests.SimpleNonComparableStruct,System.Collections.Frozen.Tests.SimpleNonComparableStruct]]:this (FullOpts)
           8 (3.92 % of base) : 56235.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
          12 (3.90 % of base) : 23902.dasm - System.Security.Cryptography.HashProviderDispenser+AppleHmacProvider:FinalizeHashAndReset(System.Span`1[ubyte]):int:this (FullOpts)
           4 (3.85 % of base) : 12899.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:EarlyDecodeWellKnownAttributeType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax):this (FullOpts)
          12 (3.53 % of base) : 253320.dasm - System.Text.Json.Serialization.Tests.ReadValueTests+<>c__DisplayClass21_0:<TooMuchJson>b__0():System.Object:this (FullOpts)
          12 (3.53 % of base) : 254727.dasm - System.Text.Json.Serialization.Tests.ValueTests+<>c__DisplayClass27_0:<TimeSpan_Read_Failure>b__0():System.Object:this (FullOpts)
          12 (3.53 % of base) : 254556.dasm - System.Text.Json.Serialization.Tests.ValueTests+<>c__DisplayClass34_0:<TimeOnly_Read_Failure>b__0():System.Object:this (FullOpts)
          12 (3.53 % of base) : 254599.dasm - System.Text.Json.Serialization.Tests.ValueTests+<>c__DisplayClass9_0:<ValueFail>b__12():System.Object:this (FullOpts)
          12 (3.53 % of base) : 254604.dasm - System.Text.Json.Serialization.Tests.ValueTests+<>c__DisplayClass9_0:<ValueFail>b__16():System.Object:this (FullOpts)
          12 (3.53 % of base) : 254619.dasm - System.Text.Json.Serialization.Tests.ValueTests+<>c__DisplayClass9_0:<ValueFail>b__22():System.Object:this (FullOpts)
          12 (3.53 % of base) : 254643.dasm - System.Text.Json.Serialization.Tests.ValueTests+<>c__DisplayClass9_0:<ValueFail>b__26():System.Object:this (FullOpts)

Top method improvements (percentages):
         -32 (-27.59 % of base) : 114464.dasm - System.Formats.Asn1.Tests.Reader.OverlappedReads:<NoOverlappedTextStrings>g__Method|3_0(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref,byref):ubyte (FullOpts)
         -12 (-16.67 % of base) : 260128.dasm - System.Text.Json.Nodes.Tests.JsonArrayTests+<>c__DisplayClass1_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
         -12 (-16.67 % of base) : 258495.dasm - System.Text.Json.Nodes.Tests.JsonObjectTests+<>c__DisplayClass16_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
         -12 (-16.67 % of base) : 259683.dasm - System.Text.Json.Nodes.Tests.JsonValueTests+<>c__DisplayClass16_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
         -28 (-16.67 % of base) : 263246.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass88_0:<HonorReaderOptionsMaxDepth>b__0():System.Object:this (FullOpts)
         -28 (-16.67 % of base) : 263250.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass88_0:<HonorReaderOptionsMaxDepth>b__3():System.Object:this (FullOpts)
         -20 (-15.15 % of base) : 217844.dasm - System.Security.Cryptography.Tests.PemEncodingFindTests:Find_Success_TrailingWhitespaceAfterPosteb():this (FullOpts)
         -24 (-15.00 % of base) : 263464.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass86_0:<CheckUnparsable>b__0():System.Object:this (FullOpts)
         -24 (-15.00 % of base) : 260080.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass87_0:<CheckParseDepth>b__0():System.Object:this (FullOpts)
         -24 (-15.00 % of base) : 263248.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass88_0:<HonorReaderOptionsMaxDepth>b__1():System.Object:this (FullOpts)
         -24 (-15.00 % of base) : 263249.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass88_0:<HonorReaderOptionsMaxDepth>b__2():System.Object:this (FullOpts)
         -24 (-15.00 % of base) : 263311.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass94_0:<TrailingCommas>b__0():System.Object:this (FullOpts)
         -20 (-14.71 % of base) : 217796.dasm - System.Security.Cryptography.Tests.PemEncodingFindTests:Find_Success_IncompletePreebPrefixed():this (FullOpts)
         -20 (-14.71 % of base) : 217834.dasm - System.Security.Cryptography.Tests.PemEncodingFindTests:Find_Success_PrecedingContentAndWhitespaceBeforePreeb():this (FullOpts)
         -20 (-14.29 % of base) : 46162.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
         -20 (-14.29 % of base) : 52386.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
         -20 (-14.29 % of base) : 217833.dasm - System.Security.Cryptography.Tests.PemEncodingFindTests:Find_Success_Base64SurroundingWhiteSpaceStripped():this (FullOpts)
         -20 (-14.29 % of base) : 217848.dasm - System.Security.Cryptography.Tests.PemEncodingFindTests:Find_Success_LabelCharacterBoundaries():this (FullOpts)
         -16 (-14.29 % of base) : 223386.dasm - System.Security.Cryptography.X509Certificates.Tests.CertificateCreation.CrlBuilderTests+<>c__DisplayClass25_0:<AddInvalidSerial>b__2():this (FullOpts)
         -32 (-13.79 % of base) : 40588.dasm - Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass12_0`2[double,int]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,double,int,System.Exception):this (FullOpts)


realworld.run.osx.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os osx -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 15072368 (overridden on cmd)
Total bytes of diff: 15064036 (overridden on cmd)
Total bytes of delta: -8332 (-0.06 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         152 : 2500.dasm (1.94 % of base)
         140 : 6536.dasm (0.13 % of base)
         112 : 18858.dasm (1.00 % of base)
          60 : 906.dasm (5.79 % of base)
          48 : 21499.dasm (0.80 % of base)
          36 : 17801.dasm (0.64 % of base)
          24 : 16767.dasm (1.11 % of base)
          20 : 23210.dasm (4.00 % of base)
          16 : 25172.dasm (6.90 % of base)
          16 : 5502.dasm (1.95 % of base)
          16 : 18685.dasm (0.76 % of base)
          16 : 1033.dasm (12.50 % of base)
          16 : 19061.dasm (1.16 % of base)
          16 : 23767.dasm (0.26 % of base)
          12 : 22220.dasm (0.13 % of base)
          12 : 853.dasm (0.96 % of base)
          12 : 18793.dasm (0.31 % of base)
          12 : 16202.dasm (0.30 % of base)
          12 : 19903.dasm (0.18 % of base)
          12 : 21280.dasm (2.38 % of base)

Top file improvements (bytes):
       -4452 : 4586.dasm (-2.19 % of base)
        -152 : 29811.dasm (-1.09 % of base)
        -140 : 1783.dasm (-6.01 % of base)
        -112 : 1657.dasm (-18.30 % of base)
         -84 : 4553.dasm (-0.32 % of base)
         -72 : 1192.dasm (-15.52 % of base)
         -64 : 26758.dasm (-7.41 % of base)
         -64 : 19218.dasm (-9.70 % of base)
         -64 : 8173.dasm (-0.38 % of base)
         -56 : 14159.dasm (-0.17 % of base)
         -48 : 12776.dasm (-7.74 % of base)
         -48 : 1455.dasm (-4.43 % of base)
         -48 : 20483.dasm (-1.89 % of base)
         -48 : 9538.dasm (-2.71 % of base)
         -48 : 23878.dasm (-0.44 % of base)
         -44 : 21220.dasm (-1.61 % of base)
         -44 : 16492.dasm (-1.70 % of base)
         -44 : 9248.dasm (-1.46 % of base)
         -40 : 22273.dasm (-1.19 % of base)
         -40 : 9152.dasm (-0.62 % of base)

72 total files with Code Size differences (40 improved, 32 regressed), 20 unchanged.

Top method regressions (bytes):
         152 (1.94 % of base) : 2500.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.Features:.cctor() (FullOpts)
         140 (0.13 % of base) : 6536.dasm - FSharp.Compiler.TcGlobals+TcGlobals:.ctor(ubyte,FSharp.Compiler.AbstractIL.IL+ILGlobals,FSharp.Compiler.TypedTree+CcuThunk,System.String,ubyte,ubyte,Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Collections.FSharpList`1[System.String],Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+CcuThunk]]],ubyte,ubyte,Internal.Utilities.PathMap,FSharp.Compiler.Features+LanguageVersion):this (FullOpts)
         112 (1.00 % of base) : 18858.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
          60 (5.79 % of base) : 906.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
          48 (0.80 % of base) : 21499.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (FullOpts)
          36 (0.64 % of base) : 17801.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitArguments>g__visitArguments|231_0(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Conversion],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte):System.ValueTuple`4[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte,Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate]:this (FullOpts)
          24 (1.11 % of base) : 16767.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeTypes(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Binder],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol[],System.Action`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],System.Action`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (FullOpts)
          20 (4.00 % of base) : 23210.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:VisitDoStatement(Microsoft.CodeAnalysis.CSharp.BoundDoStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
          16 (1.95 % of base) : 5502.dasm - FSharp.Compiler.Lexer:token$cont@859(FSharp.Compiler.Lexhelp+LexArgs,ubyte,Internal.Utilities.Text.Lexing.LexBuffer`1[ushort],Microsoft.FSharp.Core.Unit):FSharp.Compiler.Parser+token (FullOpts)
          16 (6.90 % of base) : 25172.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          16 (0.26 % of base) : 23767.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitSwitchExpressionCore(Microsoft.CodeAnalysis.CSharp.BoundSwitchExpression,ubyte):this (FullOpts)
          16 (1.16 % of base) : 19061.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MemberSignatureComparer:HaveSameParameterTypes(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap,ubyte,int):ubyte (FullOpts)
          16 (0.76 % of base) : 18685.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertyAccessorSymbol:CreateAccessorSymbol(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbol,uint,Microsoft.CodeAnalysis.CSharp.Syntax.AccessorDeclarationSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertyAccessorSymbol (FullOpts)
          16 (12.50 % of base) : 1033.dasm - System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
          12 (0.13 % of base) : 22220.dasm - Microsoft.CodeAnalysis.CSharp.Binder:AnalyzeAnonymousFunction(Microsoft.CodeAnalysis.CSharp.Syntax.AnonymousFunctionExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.UnboundLambda:this (FullOpts)
          12 (0.18 % of base) : 19903.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeParameterConstraints(Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterConstraintClauseSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterConstraintClause,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.TypeConstraintSyntax]]:this (FullOpts)
          12 (0.30 % of base) : 16202.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeDeclaration(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration:this (FullOpts)
          12 (2.38 % of base) : 21280.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:RemoveConstraintViolations[System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.CompoundUseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]):this (FullOpts)
          12 (0.31 % of base) : 18793.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:MakeParameters[System.__Canon,System.__Canon,System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,System.__Canon,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[System.__Canon],byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte,ubyte,int,System.Func`12[System.__Canon,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.__Canon,ubyte,int,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,ubyte,ubyte,System.__Canon,System.__Canon],ubyte):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (FullOpts)
          12 (0.96 % of base) : 853.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (FullOpts)

Top method improvements (bytes):
       -4452 (-2.19 % of base) : 4586.dasm - FSharp.Compiler.LexFilter+LexFilterImpl:hwTokenFetch(ubyte):FSharp.Compiler.Parser+token:this (Tier0-MinOpts)
        -152 (-1.09 % of base) : 29811.dasm - System.Management.Automation.Language.Tokenizer:NextToken():System.Management.Automation.Language.Token:this (FullOpts)
        -140 (-6.01 % of base) : 1783.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -112 (-18.30 % of base) : 1657.dasm - DemoBenchmarks.FourBodyConstraintBenchmarks:VolumeConstraint():System.ValueTuple`4[BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide]:this (FullOpts)
         -84 (-0.32 % of base) : 4553.dasm - FSharp.Compiler.Lexer:token(FSharp.Compiler.Lexhelp+LexArgs,ubyte,Internal.Utilities.Text.Lexing.LexBuffer`1[ushort]):FSharp.Compiler.Parser+token (FullOpts)
         -72 (-15.52 % of base) : 1192.dasm - DemoBenchmarks.ThreeBodyConstraintBenchmarks:AreaConstraint():System.ValueTuple`3[BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide]:this (FullOpts)
         -64 (-0.38 % of base) : 8173.dasm - FSharp.Compiler.CheckExpressions:TcPat(FSharp.Compiler.NameResolution+WarnOnUpperFlag,FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CheckExpressions+PartialValReprInfo],FSharp.Compiler.TypedTree+ValInline,FSharp.Compiler.CheckExpressions+ExplicitTyparInfo,FSharp.Compiler.CheckExpressions+ArgAndRetAttribs,ubyte,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],ubyte,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.Syntax.SynPat):System.Tuple`2[Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.CheckExpressions+TcPatPhase2Input,FSharp.Compiler.PatternMatchCompilation+Pattern],System.Tuple`3[FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String]]] (FullOpts)
         -64 (-9.70 % of base) : 19218.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (FullOpts)
         -64 (-7.41 % of base) : 26758.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__77:MoveNext():ubyte:this (FullOpts)
         -56 (-0.17 % of base) : 14159.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
         -48 (-4.43 % of base) : 1455.dasm - BepuPhysics.Solver`1[DemoBenchmarks.ShapePileBenchmark+DemoPoseIntegratorCallbacks]:Solve(float,BepuUtilities.IThreadDispatcher):this (FullOpts)
         -48 (-2.71 % of base) : 9538.dasm - FSharp.Compiler.CheckExpressions:analyzeRecursiveDeclPat@11316(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckExpressions+DeclKind,FSharp.Compiler.Syntax.SynValTyparDecls,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.Ident],FSharp.Compiler.Syntax.SynValInfo,FSharp.Compiler.CheckExpressions+ExplicitTyparInfo,FSharp.Compiler.CheckExpressions+NewSlotsOK,FSharp.Compiler.CheckExpressions+OverridesOK,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Attrib],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CheckExpressions+MemberOrValContainerInfo],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynMemberFlags],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.CheckExpressions+NormalizedBindingRhs,FSharp.Compiler.Text.Range,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,FSharp.Compiler.Syntax.SynPat):System.Tuple`8[FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,FSharp.Compiler.Syntax.Ident,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.Ident],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CheckExpressions+PreValMemberInfo],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],System.Tuple`6[Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+Val],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+Val],FSharp.Compiler.CheckExpressions+ExplicitTyparInfo,FSharp.Compiler.CheckExpressions+NormalizedBindingRhs,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar]]] (FullOpts)
         -48 (-0.44 % of base) : 23878.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitTupleDeconstructionArguments(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+DeconstructionVariable],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression]],Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState]):this (FullOpts)
         -48 (-1.89 % of base) : 20483.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol:GetCustomAttributesForToken(System.Reflection.Metadata.EntityHandle,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData]:this (FullOpts)
         -48 (-7.74 % of base) : 12776.dasm - Microsoft.ML.Internal.Utilities.Heap`1[Microsoft.ML.Internal.Utilities.MinWaiter+WaitStats]:BubbleDown(int):this (FullOpts)
         -44 (-1.46 % of base) : 9248.dasm - FSharp.Compiler.CheckExpressions:TcValSpec(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckExpressions+DeclKind,FSharp.Compiler.CheckExpressions+ImplicitlyBoundTyparsAllowed,FSharp.Compiler.CheckExpressions+ContainerInfo,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynMemberFlags],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+TType],FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,FSharp.Compiler.Syntax.SynValSig,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Attrib]):System.Tuple`2[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CheckExpressions+ValSpecResult],FSharp.Compiler.CheckExpressions+UnscopedTyparEnv] (FullOpts)
         -44 (-1.70 % of base) : 16492.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:TryAddAssembly(Microsoft.CodeAnalysis.AssemblyIdentity,Microsoft.CodeAnalysis.MetadataReference,int,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Location,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],ubyte):Microsoft.CodeAnalysis.MetadataReference:this (FullOpts)
         -44 (-1.61 % of base) : 21220.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddMemberToCandidateSet[System.__Canon](System.__Canon,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],ubyte,byref,ubyte,ubyte):this (FullOpts)
         -40 (-0.62 % of base) : 9152.dasm - FSharp.Compiler.CheckExpressions:TcAttributeEx(ubyte,FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,int,int,FSharp.Compiler.Syntax.SynAttribute):System.Tuple`2[Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[int,FSharp.Compiler.TypedTree+Attrib]],ubyte] (FullOpts)
         -40 (-1.19 % of base) : 22273.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitCompoundAssignmentOperator(Microsoft.CodeAnalysis.CSharp.BoundCompoundAssignmentOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)

Top method regressions (percentages):
          16 (12.50 % of base) : 1033.dasm - System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
          16 (6.90 % of base) : 25172.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          60 (5.79 % of base) : 906.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
          20 (4.00 % of base) : 23210.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:VisitDoStatement(Microsoft.CodeAnalysis.CSharp.BoundDoStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
           8 (3.92 % of base) : 25412.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
           4 (3.85 % of base) : 19360.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:EarlyDecodeWellKnownAttributeType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax):this (FullOpts)
           4 (2.94 % of base) : 25480.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedMethodBaseSymbol:get_ReturnTypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
          12 (2.38 % of base) : 21280.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:RemoveConstraintViolations[System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.CompoundUseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]):this (FullOpts)
          16 (1.95 % of base) : 5502.dasm - FSharp.Compiler.Lexer:token$cont@859(FSharp.Compiler.Lexhelp+LexArgs,ubyte,Internal.Utilities.Text.Lexing.LexBuffer`1[ushort],Microsoft.FSharp.Core.Unit):FSharp.Compiler.Parser+token (FullOpts)
         152 (1.94 % of base) : 2500.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.Features:.cctor() (FullOpts)
           4 (1.82 % of base) : 5439.dasm - FSharp.Compiler.Xml.XmlDocCollector:LinesRange(FSharp.Compiler.Text.Position):FSharp.Compiler.Text.Range:this (FullOpts)
           8 (1.50 % of base) : 24291.dasm - Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:MakeOutputTypeInferences(Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.BoundTupleLiteral,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,byref):this (FullOpts)
           8 (1.37 % of base) : 24072.dasm - Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:MakeExplicitParameterTypeInferences(Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.BoundTupleLiteral,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,int,byref):ubyte:this (FullOpts)
           4 (1.37 % of base) : 19468.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SubstitutedMethodSymbol:get_ReturnTypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
           4 (1.33 % of base) : 20066.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SubstitutedPropertySymbol:get_TypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
           4 (1.30 % of base) : 20149.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SubstitutedFieldSymbol:GetFieldType(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
           4 (1.27 % of base) : 26386.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter:VisitCall(Microsoft.CodeAnalysis.CSharp.BoundCall):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
           8 (1.25 % of base) : 30971.dasm - Microsoft.ApplicationInsights.Metrics.MetricSeriesConfigurationForMeasurement:.cctor() (FullOpts)
          16 (1.16 % of base) : 19061.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MemberSignatureComparer:HaveSameParameterTypes(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap,ubyte,int):ubyte (FullOpts)
           4 (1.12 % of base) : 20817.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<BindQualifiedName>g__convertToUnboundGenericType|1031_0(byref):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations (FullOpts)

Top method improvements (percentages):
        -112 (-18.30 % of base) : 1657.dasm - DemoBenchmarks.FourBodyConstraintBenchmarks:VolumeConstraint():System.ValueTuple`4[BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide]:this (FullOpts)
         -12 (-15.79 % of base) : 13018.dasm - Microsoft.ML.Trainers.SdcaTrainerBase`3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]:ApplyAt(long,Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]):this (FullOpts)
         -72 (-15.52 % of base) : 1192.dasm - DemoBenchmarks.ThreeBodyConstraintBenchmarks:AreaConstraint():System.ValueTuple`3[BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide]:this (FullOpts)
         -20 (-14.29 % of base) : 24234.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
         -16 (-11.76 % of base) : 14014.dasm - Microsoft.ML.Trainers.KMeansAcceleratedRowMap+<>c__DisplayClass4_0:<.ctor>b__2(Microsoft.ML.Trainers.FeatureFloatVectorCursor):int:this (FullOpts)
         -64 (-9.70 % of base) : 19218.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (FullOpts)
         -12 (-9.38 % of base) : 13511.dasm - Microsoft.ML.Transforms.Text.TextFeaturizingEstimator+Transformer:.ctor(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Data.TransformerChain`1[Microsoft.ML.ITransformer]):this (FullOpts)
          -8 (-9.09 % of base) : 3063.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[int,System.__Canon]:set_Item(int,System.__Canon):this (FullOpts)
          -8 (-8.33 % of base) : 30246.dasm - System.Management.Automation.Interpreter.LoadCachedObjectInstruction:Run(System.Management.Automation.Interpreter.InterpretedFrame):int:this (FullOpts)
         -48 (-7.74 % of base) : 12776.dasm - Microsoft.ML.Internal.Utilities.Heap`1[Microsoft.ML.Internal.Utilities.MinWaiter+WaitStats]:BubbleDown(int):this (FullOpts)
         -64 (-7.41 % of base) : 26758.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__77:MoveNext():ubyte:this (FullOpts)
         -12 (-6.67 % of base) : 22025.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+<>c__DisplayClass231_0:<VisitArguments>b__3(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte]:this (FullOpts)
         -16 (-6.67 % of base) : 14031.dasm - Microsoft.ML.Trainers.KMeansLloydsYinYangTrain+<>c__DisplayClass4_2:<Train>b__1():this (FullOpts)
         -12 (-6.67 % of base) : 13711.dasm - Microsoft.ML.Transforms.Text.NgramExtractingEstimator:.ctor(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Transforms.Text.NgramExtractingEstimator+ColumnOptions[]):this (FullOpts)
         -12 (-6.25 % of base) : 12707.dasm - Microsoft.ML.Internal.Utilities.HashArray`1[float]:.ctor():this (FullOpts)
          -8 (-6.06 % of base) : 2375.dasm - System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
        -140 (-6.01 % of base) : 1783.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
          -4 (-5.88 % of base) : 13391.dasm - Microsoft.ML.Data.ArrayDataViewBuilder+Column`2[double,double]:CopyOut(int,byref):this (FullOpts)
          -4 (-5.88 % of base) : 13393.dasm - Microsoft.ML.Data.ArrayDataViewBuilder+Column`2[System.__Canon,Microsoft.ML.Data.VBuffer`1[double]]:CopyOut(int,byref):this (FullOpts)
         -12 (-5.77 % of base) : 13514.dasm - Microsoft.ML.Transforms.Text.WordEmbeddingEstimator:.ctor(Microsoft.ML.Runtime.IHostEnvironment,int,Microsoft.ML.Transforms.Text.WordEmbeddingEstimator+ColumnOptions[]):this (FullOpts)



windows arm64

Diffs are based on 2,318,205 contexts (931,543 MinOpts, 1,386,662 FullOpts).

MISSED contexts: base: 2,687 (0.12%), diff: 2,689 (0.12%)

Overall (-780,956 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,961,236 -2,460
benchmarks.run_pgo.windows.arm64.checked.mch 47,394,624 -42,728
benchmarks.run_tiered.windows.arm64.checked.mch 15,343,840 -13,924
coreclr_tests.run.windows.arm64.checked.mch 495,372,096 -228,492
libraries.crossgen2.windows.arm64.checked.mch 58,964,780 -11,900
libraries.pmi.windows.arm64.checked.mch 79,594,724 -11,288
libraries_tests.run.windows.arm64.Release.mch 310,503,812 -429,744
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 169,134,348 -31,556
realworld.run.windows.arm64.checked.mch 15,891,116 -8,524
smoke_tests.nativeaot.windows.arm64.checked.mch 3,973,164 -340

MinOpts (-643,252 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch 16,250,384 -39,960
benchmarks.run_tiered.windows.arm64.checked.mch 11,189,376 -13,432
coreclr_tests.run.windows.arm64.checked.mch 339,091,528 -180,424
libraries_tests.run.windows.arm64.Release.mch 201,581,504 -403,976
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 13,137,464 -1,016
realworld.run.windows.arm64.checked.mch 568,424 -4,444

FullOpts (-137,704 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch 10,960,700 -2,460
benchmarks.run_pgo.windows.arm64.checked.mch 31,144,240 -2,768
benchmarks.run_tiered.windows.arm64.checked.mch 4,154,464 -492
coreclr_tests.run.windows.arm64.checked.mch 156,280,568 -48,068
libraries.crossgen2.windows.arm64.checked.mch 58,963,144 -11,900
libraries.pmi.windows.arm64.checked.mch 79,474,740 -11,288
libraries_tests.run.windows.arm64.Release.mch 108,922,308 -25,768
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 155,996,884 -30,540
realworld.run.windows.arm64.checked.mch 15,322,692 -4,080
smoke_tests.nativeaot.windows.arm64.checked.mch 3,972,192 -340

Example diffs

benchmarks.run.windows.arm64.checked.mch

-20 (-14.29%) : 19197.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)

@@ -8,9 +8,9 @@
 ; 0 inlinees with PGO data; 11 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
-;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
-;  V02 arg2         [V02,T03] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
+;  V00 this         [V00,T00] ( 13, 13   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
+;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (48) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[System.String]>
@@ -22,7 +22,7 @@
 ;* V11 tmp7         [V11    ] (  0,  0   )  struct (24) zero-ref    "impAppendStmt" <Microsoft.CodeAnalysis.BitVector>
 ;* V12 tmp8         [V12    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V13 tmp9         [V13    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
-;  V14 tmp10        [V14,T04] (  2,  2   )     ref  ->   x3         single-def "field V03.array (fldOffset=0x0)" P-INDEP
+;  V14 tmp10        [V14,T03] (  2,  2   )     ref  ->   x3         single-def "field V03.array (fldOffset=0x0)" P-INDEP
 ;* V15 tmp11        [V15    ] (  0,  0   )     ref  ->  zero-ref    "field V05.array (fldOffset=0x0)" P-INDEP
 ;* V16 tmp12        [V16    ] (  0,  0   )     ref  ->  zero-ref    "field V06.array (fldOffset=0x0)" P-INDEP
 ;* V17 tmp13        [V17    ] (  0,  0   )     ref  ->  zero-ref    "field V10.array (fldOffset=0x0)" P-INDEP
@@ -31,16 +31,12 @@
 ;* V20 tmp16        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V11._capacity (fldOffset=0x10)" P-INDEP
 ;* V21 tmp17        [V21    ] (  0,  0   )     ref  ->  zero-ref    "field V13.array (fldOffset=0x0)" P-INDEP
 ;  V22 tmp18        [V22    ] (  2,  4   )  struct (24) [fp+0x18]  do-not-enreg[XS] addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
-;  V23 tmp19        [V23,T00] ( 11, 22   )     ref  ->   x4         single-def "argument with side effect"
-;  V24 tmp20        [V24,T05] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V25 tmp21        [V25,T06] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
-;  V26 tmp22        [V26,T07] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V27 tmp23        [V27,T08] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
-;  V28 tmp24        [V28,T09] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
-;  V29 tmp25        [V29,T11] (  2,  4   )     int  ->   x7         "argument with side effect"
-;  V30 tmp26        [V30,T12] (  2,  4   )     int  ->   x8         "argument with side effect"
-;  V31 tmp27        [V31,T13] (  2,  4   )     int  ->   x9         "argument with side effect"
-;  V32 tmp28        [V32,T10] (  2,  4   )     ref  ->  x10         single-def "argument with side effect"
+;  V23 tmp19        [V23,T04] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
+;  V24 tmp20        [V24,T05] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
+;  V25 tmp21        [V25,T07] (  2,  4   )     int  ->   x6         "argument with side effect"
+;  V26 tmp22        [V26,T08] (  2,  4   )     int  ->   x7         "argument with side effect"
+;  V27 tmp23        [V27,T09] (  2,  4   )     int  ->   x8         "argument with side effect"
+;  V28 tmp24        [V28,T06] (  2,  4   )     ref  ->   x9         single-def "argument with side effect"
 ;
 ; Lcl frame size = 80
 
@@ -51,37 +47,30 @@ G_M55914_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=12 bbWeight=1 PerfScore 2.00
 G_M55914_IG02:        ; bbWeight=1, gcrefRegs=000F {x0 x1 x2 x3}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x0-x3]
-            mov     x4, x0
-            ; gcrRegs +[x4]
-            ldp     x5, x6, [x4, #0x40]
-            ; gcrRegs +[x5-x6]
-            ldrb    w7, [x4, #0x30]
-            ldrb    w8, [x4, #0x31]
-            ldrb    w9, [x4, #0x32]
-            ldr     x10, [x4, #0x50]
-            ; gcrRegs +[x10]
-                       ;; size=24 bbWeight=1 PerfScore 16.50
+            ldp     x4, x5, [x0, #0x40]
+            ; gcrRegs +[x4-x5]
+            ldrb    w6, [x0, #0x30]
+            ldrb    w7, [x0, #0x31]
+            ldrb    w8, [x0, #0x32]
+            ldr     x9, [x0, #0x50]
+            ; gcrRegs +[x9]
+                       ;; size=20 bbWeight=1 PerfScore 16.00
 G_M55914_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x11, x13, [x4, #0x58]
-            stp     x11, x13, [fp, #0x18]
-            ldr     x11, [x4, #0x68]
-            str     x11, [fp, #0x28]
+            ldp     x10, x11, [x0, #0x58]
+            stp     x10, x11, [fp, #0x18]
+            ldr     x10, [x0, #0x68]
+            str     x10, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M55914_IG04:        ; bbWeight=1, extend
-            ldrb    w11, [x4, #0x33]
-            str     w11, [sp, #0x18]   // [V04 OutArgs+0x18]
-            ldr     x11, [x4, #0x70]
-            ; gcrRegs +[x11]
-            str     x11, [sp, #0x20]   // [V04 OutArgs+0x20]
-            ldr     x4, [x4, #0x18]
-            str     x4, [sp, #0x28]    // [V04 OutArgs+0x28]
-            mov     x4, x5
-            mov     x5, x6
-            mov     w6, w7
-            ; gcrRegs -[x6]
-            mov     w7, w8
-            str     w9, [sp]   // [V04 OutArgs]
-            str     x10, [sp, #0x08]   // [V04 OutArgs+0x08]
+            ldrb    w10, [x0, #0x33]
+            str     w10, [sp, #0x18]   // [V04 OutArgs+0x18]
+            ldr     x10, [x0, #0x70]
+            ; gcrRegs +[x10]
+            str     x10, [sp, #0x20]   // [V04 OutArgs+0x20]
+            ldr     x10, [x0, #0x18]
+            str     x10, [sp, #0x28]   // [V04 OutArgs+0x28]
+            str     w8, [sp]   // [V04 OutArgs]
+            str     x9, [sp, #0x08]    // [V04 OutArgs+0x08]
             add     x8, fp, #24    // [V22 tmp18]
             str     x8, [sp, #0x10]    // [V04 OutArgs+0x10]
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
@@ -89,15 +78,15 @@ G_M55914_IG04:        ; bbWeight=1, extend
             movk    x8, #0xD1FFAB1E LSL #32
             ldr     x8, [x8]
             blr     x8
-            ; gcrRegs -[x1-x5 x10-x11]
-                       ;; size=76 bbWeight=1 PerfScore 23.00
+            ; gcrRegs -[x1-x5 x9-x10]
+                       ;; size=60 bbWeight=1 PerfScore 21.00
 G_M55914_IG05:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp, #0x30]
             add     sp, sp, #96
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 2.50
 
-; Total bytes of code 140, prolog size 12, PerfScore 53.00, instruction count 35, allocated bytes for code 140 (MethodHash=00902595) for method Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
+; Total bytes of code 120, prolog size 12, PerfScore 50.50, instruction count 30, allocated bytes for code 120 (MethodHash=00902595) for method Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -108,7 +97,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
+  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-16 (-14.29%) : 9724.dasm - System.Buffers.Text.Tests.Utf8FormatterTests:FormatterDateTimeOffsetNow(System.DateTimeOffset):ubyte:this (FullOpts)

@@ -8,79 +8,73 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T04] (  3,  3   )     ref  ->   x0         this class-hnd single-def <System.Buffers.Text.Tests.Utf8FormatterTests>
+;  V00 this         [V00,T02] (  3,  3   )     ref  ->   x0         this class-hnd single-def <System.Buffers.Text.Tests.Utf8FormatterTests>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.DateTimeOffset>
-;  V02 loc0         [V02    ] (  1,  1   )     int  ->  [fp+0x38]  do-not-enreg[X] must-init addr-exposed ld-addr-op
+;  V02 loc0         [V02    ] (  1,  1   )     int  ->  [fp+0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op
 ;* V03 loc1         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Buffers.StandardFormat>
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Span`1[ubyte]>
-;  V06 tmp2         [V06,T02] (  4,  6   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <ubyte[]>
-;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
-;  V08 tmp4         [V08,T05] (  2,  2   )   short  ->   x1         single-def "field V01._offsetMinutes (fldOffset=0x0)" P-INDEP
-;  V09 tmp5         [V09,T06] (  2,  2   )    long  ->   x2         single-def "field V01._dateTime (fldOffset=0x8)" P-INDEP
-;* V10 tmp6         [V10,T09] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._format (fldOffset=0x0)" P-INDEP
-;* V11 tmp7         [V11,T10] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._precision (fldOffset=0x1)" P-INDEP
+;  V06 tmp2         [V06,T00] (  4,  6   )     ref  ->   x5         class-hnd single-def "Inlining Arg" <ubyte[]>
+;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+;  V08 tmp4         [V08,T03] (  2,  2   )   short  ->   x1         single-def "field V01._offsetMinutes (fldOffset=0x0)" P-INDEP
+;  V09 tmp5         [V09,T04] (  2,  2   )    long  ->   x4         single-def "field V01._dateTime (fldOffset=0x8)" P-INDEP
+;* V10 tmp6         [V10,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._format (fldOffset=0x0)" P-INDEP
+;* V11 tmp7         [V11,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._precision (fldOffset=0x1)" P-INDEP
 ;* V12 tmp8         [V12    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V05._reference (fldOffset=0x0)" P-INDEP
 ;* V13 tmp9         [V13    ] (  0,  0   )     int  ->  zero-ref    single-def "field V05._length (fldOffset=0x8)" P-INDEP
-;  V14 tmp10        [V14,T07] (  3,  2   )   byref  ->   x3         "field V07._reference (fldOffset=0x0)" P-INDEP
-;  V15 tmp11        [V15,T08] (  3,  2   )     int  ->   x5         "field V07._length (fldOffset=0x8)" P-INDEP
-;  V16 tmp12        [V16,T03] (  3,  6   )  struct ( 8) [fp+0x30]  do-not-enreg[SF] "by-value struct argument" <System.Buffers.StandardFormat>
-;  V17 tmp13        [V17,T00] (  4,  8   )  struct (16) [fp+0x20]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.DateTimeOffset>
-;  V18 tmp14        [V18,T01] (  4,  8   )  struct (16) [fp+0x10]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.Span`1[ubyte]>
+;  V14 tmp10        [V14,T05] (  3,  2   )   byref  ->   x2         "field V07._reference (fldOffset=0x0)" P-INDEP
+;  V15 tmp11        [V15,T06] (  3,  2   )     int  ->   x3         "field V07._length (fldOffset=0x8)" P-INDEP
+;  V16 tmp12        [V16,T01] (  3,  6   )  struct ( 8) [fp+0x10]  do-not-enreg[SF] "by-value struct argument" <System.Buffers.StandardFormat>
 ;
-; Lcl frame size = 48
+; Lcl frame size = 16
 
 G_M7377_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-            str     xzr, [fp, #0x38]   // [V02 loc0]
-            stp     xzr, xzr, [fp, #0x10]  // [V18 tmp14], [V18 tmp14+0x08]
-                       ;; size=16 bbWeight=1 PerfScore 3.50
+            str     xzr, [fp, #0x18]   // [V02 loc0]
+            mov     x4, x2
+                       ;; size=16 bbWeight=1 PerfScore 3.00
 G_M7377_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
-            ldr     x0, [x0, #0x08]
-            cbnz    x0, G_M7377_IG04
+            ldr     x5, [x0, #0x08]
+            ; gcrRegs +[x5]
+            cbnz    x5, G_M7377_IG04
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M7377_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            mov     x3, xzr
-            ; byrRegs +[x3]
-            mov     w5, wzr
+            ; gcrRegs -[x0 x5]
+            mov     x2, xzr
+            ; byrRegs +[x2]
+            mov     w3, wzr
             b       G_M7377_IG05
                        ;; size=12 bbWeight=0.50 PerfScore 1.00
-G_M7377_IG04:        ; bbWeight=0.50, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x0]
-            ; byrRegs -[x3]
-            add     x3, x0, #16
-            ; byrRegs +[x3]
-            ldr     w5, [x0, #0x08]
+G_M7377_IG04:        ; bbWeight=0.50, gcrefRegs=0020 {x5}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[x5]
+            ; byrRegs -[x2]
+            add     x2, x5, #16
+            ; byrRegs +[x2]
+            ldr     w3, [x5, #0x08]
                        ;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M7377_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0008 {x3}, byref
-            ; gcrRegs -[x0]
-            strh    w1, [fp, #0x20]    // [V17 tmp13]
-            str     x2, [fp, #0x28]    // [V17 tmp13+0x08]
-            str     x3, [fp, #0x10]    // [V18 tmp14]
-            str     w5, [fp, #0x18]    // [V18 tmp14+0x08]
-            strb    wzr, [fp, #0x30]   // [V16 tmp12]
-            strb    wzr, [fp, #0x31]   // [V16 tmp12+0x01]
-            ldp     x0, x1, [fp, #0x20]    // [V17 tmp13], [V17 tmp13+0x08]
-            ldp     x2, x3, [fp, #0x10]    // [V18 tmp14], [V18 tmp14+0x08]
-            ; byrRegs -[x3] +[x2]
-            ldrh    w5, [fp, #0x30]    // [V16 tmp12]
-            add     x4, fp, #56    // [V02 loc0]
+G_M7377_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0004 {x2}, byref
+            ; gcrRegs -[x5]
+            strb    wzr, [fp, #0x10]   // [V16 tmp12]
+            strb    wzr, [fp, #0x11]   // [V16 tmp12+0x01]
+            ldrh    w5, [fp, #0x10]    // [V16 tmp12]
+            mov     w0, w1
+            mov     x1, x4
+            add     x4, fp, #24    // [V02 loc0]
             movz    x6, #0xD1FFAB1E      // code for <unknown method>
             movk    x6, #0xD1FFAB1E LSL #16
             movk    x6, #0xD1FFAB1E LSL #32
             ldr     x6, [x6]
             blr     x6
             ; byrRegs -[x2]
-                       ;; size=60 bbWeight=1 PerfScore 20.00
+                       ;; size=44 bbWeight=1 PerfScore 11.00
 G_M7377_IG06:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x40
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 112, prolog size 16, PerfScore 32.25, instruction count 28, allocated bytes for code 112 (MethodHash=d298e32e) for method System.Buffers.Text.Tests.Utf8FormatterTests:FormatterDateTimeOffsetNow(System.DateTimeOffset):ubyte:this (FullOpts)
+; Total bytes of code 96, prolog size 12, PerfScore 22.75, instruction count 24, allocated bytes for code 96 (MethodHash=d298e32e) for method System.Buffers.Text.Tests.Utf8FormatterTests:FormatterDateTimeOffsetNow(System.DateTimeOffset):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -91,7 +85,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
+  Function Length   : 24 (0x00018) Actual length = 96 (0x000060)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -99,7 +93,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

-16 (-13.33%) : 23614.dasm - Span.IndexerBench:SameIndex2():ubyte:this (FullOpts)

@@ -8,63 +8,57 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T03] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Span.IndexerBench>
+;  V00 this         [V00,T02] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Span.IndexerBench>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V02 tmp1         [V02    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
-;  V03 tmp2         [V03,T01] (  4,  6   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <ubyte[]>
-;* V04 tmp3         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
+;  V03 tmp2         [V03,T00] (  4,  6   )     ref  ->   x2         class-hnd single-def "Inlining Arg" <ubyte[]>
+;* V04 tmp3         [V04    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ubyte]>
 ;* V05 tmp4         [V05    ] (  0,  0   )   byref  ->  zero-ref    "field V02._reference (fldOffset=0x0)" P-INDEP
 ;* V06 tmp5         [V06    ] (  0,  0   )     int  ->  zero-ref    "field V02._length (fldOffset=0x8)" P-INDEP
-;  V07 tmp6         [V07,T06] (  3,  2   )   byref  ->   x1         "field V04._reference (fldOffset=0x0)" P-INDEP
-;  V08 tmp7         [V08,T07] (  3,  2   )     int  ->   x2         "field V04._length (fldOffset=0x8)" P-INDEP
-;  V09 tmp8         [V09,T02] (  3,  6   )     ref  ->   x0         single-def "arr expr"
-;  V10 tmp9         [V10,T00] (  4,  8   )  struct (16) [fp+0x10]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.Span`1[ubyte]>
-;  V11 tmp10        [V11,T05] (  2,  4   )   byref  ->   x2         single-def "argument with side effect"
-;  V12 cse0         [V12,T04] (  4,  4   )     ref  ->   x4         "CSE - aggressive"
+;  V07 tmp6         [V07,T05] (  3,  2   )   byref  ->   x0         "field V04._reference (fldOffset=0x0)" P-INDEP
+;  V08 tmp7         [V08,T06] (  3,  2   )     int  ->   x1         "field V04._length (fldOffset=0x8)" P-INDEP
+;  V09 tmp8         [V09,T01] (  3,  6   )     ref  ->   x2         single-def "arr expr"
+;  V10 tmp9         [V10,T04] (  2,  4   )   byref  ->   x2         single-def "argument with side effect"
+;  V11 cse0         [V11,T03] (  4,  4   )     ref  ->   x4         "CSE - aggressive"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 0
 
 G_M29415_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x20]!
+            stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
-            str     xzr, [fp, #0x10]   // [V10 tmp9]
-                       ;; size=12 bbWeight=1 PerfScore 2.50
+                       ;; size=8 bbWeight=1 PerfScore 1.50
 G_M29415_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0]
             ldr     x4, [x0, #0x08]
             ; gcrRegs +[x4]
-            mov     x0, x4
-            cbnz    x0, G_M29415_IG04
+            mov     x2, x4
+            ; gcrRegs +[x2]
+            cbnz    x2, G_M29415_IG04
                        ;; size=12 bbWeight=1 PerfScore 4.50
 G_M29415_IG03:        ; bbWeight=0.50, gcrefRegs=0010 {x4}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            mov     x1, xzr
-            ; byrRegs +[x1]
-            mov     w2, wzr
+            ; gcrRegs -[x0 x2]
+            mov     x0, xzr
+            ; byrRegs +[x0]
+            mov     w1, wzr
             b       G_M29415_IG05
                        ;; size=12 bbWeight=0.50 PerfScore 1.00
-G_M29415_IG04:        ; bbWeight=0.50, gcrefRegs=0011 {x0 x4}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x0]
-            ; byrRegs -[x1]
-            add     x1, x0, #16
-            ; byrRegs +[x1]
-            ldr     w2, [x0, #0x08]
-                       ;; size=8 bbWeight=0.50 PerfScore 1.75
-G_M29415_IG05:        ; bbWeight=1, gcrefRegs=0010 {x4}, byrefRegs=0002 {x1}, byref, isz
-            ; gcrRegs -[x0]
-            str     x1, [fp, #0x10]    // [V10 tmp9]
-            str     w2, [fp, #0x18]    // [V10 tmp9+0x08]
-            mov     x0, x4
-            ; gcrRegs +[x0]
-            ldr     w1, [x0, #0x08]
-            ; byrRegs -[x1]
-            cmp     w1, #0
-            bls     G_M29415_IG07
-            add     x2, x0, #16
-            ; byrRegs +[x2]
-            ldp     x0, x1, [fp, #0x10]    // [V10 tmp9], [V10 tmp9+0x08]
-            ; gcrRegs -[x0]
+G_M29415_IG04:        ; bbWeight=0.50, gcrefRegs=0014 {x2 x4}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[x2]
+            ; byrRegs -[x0]
+            add     x0, x2, #16
             ; byrRegs +[x0]
+            ldr     w1, [x2, #0x08]
+                       ;; size=8 bbWeight=0.50 PerfScore 1.75
+G_M29415_IG05:        ; bbWeight=1, gcrefRegs=0010 {x4}, byrefRegs=0001 {x0}, byref, isz
+            ; gcrRegs -[x2]
+            mov     x2, x4
+            ; gcrRegs +[x2]
+            ldr     w3, [x2, #0x08]
+            cmp     w3, #0
+            bls     G_M29415_IG07
+            add     x2, x2, #16
+            ; gcrRegs -[x2]
+            ; byrRegs +[x2]
             ldr     w4, [x4, #0x08]
             ; gcrRegs -[x4]
             mov     w3, wzr
@@ -74,9 +68,9 @@ G_M29415_IG05:        ; bbWeight=1, gcrefRegs=0010 {x4}, byrefRegs=0002 {x1}, by
             ldr     x5, [x5]
             blr     x5
             ; byrRegs -[x0 x2]
-                       ;; size=60 bbWeight=1 PerfScore 19.50
+                       ;; size=48 bbWeight=1 PerfScore 14.50
 G_M29415_IG06:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x20
+            ldp     fp, lr, [sp], #0x10
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 G_M29415_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
@@ -84,7 +78,7 @@ G_M29415_IG07:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_windows #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 120, prolog size 12, PerfScore 31.25, instruction count 30, allocated bytes for code 120 (MethodHash=cb7c8d18) for method Span.IndexerBench:SameIndex2():ubyte:this (FullOpts)
+; Total bytes of code 104, prolog size 8, PerfScore 25.25, instruction count 26, allocated bytes for code 104 (MethodHash=cb7c8d18) for method Span.IndexerBench:SameIndex2():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -95,7 +89,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
+  Function Length   : 26 (0x0001a) Actual length = 104 (0x000068)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -103,7 +97,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
+    81          save_fplr_x #1 (0x01); stp fp, lr, [sp, #-16]!
     E4          end
     E4          end
 

+8 (+1.56%) : 7917.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1[ulong]:FindStartPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],byref,int,byref,byref):ubyte:this (FullOpts)

@@ -8,28 +8,28 @@
 ; 0 inlinees with PGO data; 9 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  8, 52   )     ref  ->  x19         this class-hnd single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]>
+;  V00 this         [V00,T04] (  8, 52   )     ref  ->  x19         this class-hnd single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ushort]>
-;  V02 arg2         [V02,T22] (  5,  4   )   byref  ->  [fp+0x10]  EH-live single-def
+;  V02 arg2         [V02,T22] (  5,  4   )   byref  ->  [fp+0x18]  EH-live single-def
 ;  V03 arg3         [V03,T19] (  3, 10   )     int  ->  x21         single-def
-;  V04 arg4         [V04,T09] (  6, 32   )   byref  ->  x20         single-def
+;  V04 arg4         [V04,T08] (  6, 32   )   byref  ->  x20         single-def
 ;  V05 arg5         [V05,T23] (  3,  4   )   byref  ->  x23         single-def
-;  V06 loc0         [V06,T10] (  8, 28   )     int  ->  [fp+0x24]  do-not-enreg[Z] EH-live
-;  V07 loc1         [V07,T15] (  3, 20   )   ubyte  ->  x25        
+;  V06 loc0         [V06,T10] (  7, 24   )     int  ->  [fp+0x2C]  do-not-enreg[Z] EH-live
+;  V07 loc1         [V07,T14] (  3, 20   )   ubyte  ->  x25        
 ;* V08 loc2         [V08    ] (  0,  0   )     int  ->  zero-ref   
 ;  V09 loc3         [V09,T28] (  3,  2   )   ubyte  ->   x0        
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V11 tmp1         [V11,T12] (  4, 24   )     int  ->   x2         "Inline return value spill temp"
-;  V12 tmp2         [V12,T08] (  3, 36   )     int  ->   x0         "Inlining Arg"
+;  V11 tmp1         [V11,T11] (  4, 24   )     int  ->   x2         "Inline return value spill temp"
+;  V12 tmp2         [V12,T07] (  3, 36   )     int  ->   x0         "Inlining Arg"
 ;* V13 tmp3         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V14 tmp4         [V14,T25] (  3,  6   )     int  ->   x2         "Inline return value spill temp"
 ;  V15 tmp5         [V15,T18] (  3, 12   )     ref  ->   x1         class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.MintermClassifier>
-;  V16 tmp6         [V16,T24] (  3,  6   )     ref  ->  x26         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V16 tmp6         [V16,T24] (  3,  6   )     ref  ->  x27         class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V17 tmp7         [V17,T16] (  4, 16   )     int  ->   x2         "Inlining Arg"
 ;  V18 tmp8         [V18,T17] (  3, 14   )   ubyte  ->  x25         "Inline return value spill temp"
-;  V19 tmp9         [V19,T11] (  4, 28   )     int  ->   x4         "Inline stloc first use temp"
-;  V20 tmp10        [V20,T21] (  3, 10   )     int  ->   x1         "Inline stloc first use temp"
-;  V21 tmp11        [V21    ] (  3, 36   )     ref  ->  [fp+0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]>
+;  V19 tmp9         [V19,T09] (  4, 28   )     int  ->   x4         "Inline stloc first use temp"
+;  V20 tmp10        [V20,T21] (  3, 10   )     int  ->   x5         "Inline stloc first use temp"
+;  V21 tmp11        [V21    ] (  3, 36   )     ref  ->  [fp+0x20]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]>
 ;* V22 tmp12        [V22    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp13        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]>
 ;* V24 tmp14        [V24    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
@@ -39,30 +39,31 @@
 ;  V28 tmp18        [V28,T20] (  2,  9   )     int  ->  x22         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V29 tmp19        [V29    ] (  0,  0   )   byref  ->  zero-ref    "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V30 tmp20        [V30    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
-;  V31 tmp21        [V31,T06] (  3, 48   )     ref  ->   x0         "arr expr"
-;  V32 tmp22        [V32,T07] (  3, 48   )     int  ->   x1         "index expr"
-;  V33 tmp23        [V33,T13] (  3, 24   )     ref  ->   x1         "arr expr"
-;  V34 tmp24        [V34,T00] (  3, 96   )     ref  ->   x1         "arr expr"
-;  V35 tmp25        [V35,T01] (  3, 96   )     int  ->   x0         "index expr"
+;  V31 tmp21        [V31,T05] (  3, 48   )     ref  ->   x0         "arr expr"
+;  V32 tmp22        [V32,T06] (  3, 48   )     int  ->   x1         "index expr"
+;  V33 tmp23        [V33,T12] (  3, 24   )     ref  ->   x5         "arr expr"
+;  V34 tmp24        [V34,T00] (  3, 96   )     ref  ->   x5         "arr expr"
+;  V35 tmp25        [V35,T01] (  3, 96   )     int  ->   x1         "index expr"
 ;  V36 tmp26        [V36,T03] (  2, 64   )     ref  ->   x1         "argument with side effect"
-;  V37 tmp27        [V37,T04] (  2, 64   )     ref  ->   x1         "argument with side effect"
-;  V38 PSPSym       [V38,T29] (  1,  1   )    long  ->  [fp+0x28]  do-not-enreg[V] "PSPSym"
-;  V39 cse0         [V39,T14] (  3, 24   )     int  ->   x0         "CSE - aggressive"
-;  V40 cse1         [V40,T27] (  2,  4   )     int  ->   x0         "CSE - moderate"
+;  V37 PSPSym       [V37,T29] (  1,  1   )    long  ->  [fp+0x30]  do-not-enreg[V] "PSPSym"
+;  V38 cse0         [V38,T13] (  3, 24   )     int  ->   x1         "CSE - aggressive"
+;  V39 cse1         [V39,T15] (  3, 20   )     int  ->  x26         "CSE - aggressive"
+;  V40 cse2         [V40,T27] (  2,  4   )     int  ->   x0         "CSE - moderate"
 ;
-; Lcl frame size = 32
+; Lcl frame size = 40
 
 G_M55933_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x70]!
-            stp     x19, x20, [sp, #0x30]
-            stp     x21, x22, [sp, #0x40]
-            stp     x23, x24, [sp, #0x50]
-            stp     x25, x26, [sp, #0x60]
+            stp     fp, lr, [sp, #-0x80]!
+            stp     x19, x20, [sp, #0x38]
+            stp     x21, x22, [sp, #0x48]
+            stp     x23, x24, [sp, #0x58]
+            stp     x25, x26, [sp, #0x68]
+            str     x27, [sp, #0x78]
             mov     fp, sp
-            str     xzr, [fp, #0x18]   // [V21 tmp11]
-            add     x7, sp, #112
-            str     x7, [fp, #0x28]    // [V38 PSPSym]
-            str     x3, [fp, #0x10]    // [V02 arg2]
+            str     xzr, [fp, #0x20]   // [V21 tmp11]
+            add     x7, sp, #128
+            str     x7, [fp, #0x30]    // [V37 PSPSym]
+            str     x3, [fp, #0x18]    // [V02 arg2]
             ; GC ptr vars +{V02}
             mov     x19, x0
             ; gcrRegs +[x19]
@@ -74,11 +75,11 @@ G_M55933_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             ; byrRegs +[x20]
             mov     x23, x6
             ; byrRegs +[x23]
-                       ;; size=64 bbWeight=1 PerfScore 12.00
+                       ;; size=68 bbWeight=1 PerfScore 13.00
 G_M55933_IG02:        ; bbWeight=1, gcVars=0000000000400000 {V02}, gcrefRegs=80000 {x19}, byrefRegs=1900008 {x3 x20 x23 x24}, gcvars, byref
             ; byrRegs +[x3]
             ldr     w0, [x3]
-            str     w0, [fp, #0x24]    // [V06 loc0]
+            str     w0, [fp, #0x2C]    // [V06 loc0]
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M55933_IG03:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
             ; byrRegs -[x3]
@@ -92,19 +93,20 @@ G_M55933_IG03:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x2
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
             ldrb    w25, [x0, w1, UXTW #2]
-            ldr     w0, [fp, #0x24]    // [V06 loc0]
+            ldr     w0, [fp, #0x2C]    // [V06 loc0]
             ; byrRegs -[x0]
-            sub     w0, w0, #1
+            sub     w26, w0, #1
+            sxtw    w0, w26
             cmp     w0, w22
             bhs     G_M55933_IG14
-                       ;; size=44 bbWeight=8 PerfScore 144.00
+                       ;; size=48 bbWeight=8 PerfScore 148.00
 G_M55933_IG04:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
             ldr     x1, [x19, #0x50]
             ; gcrRegs +[x1]
             ldrh    w2, [x24, w0, UXTW #2]
-            ldr     x26, [x1, #0x08]
-            ; gcrRegs +[x26]
-            ldr     w0, [x26, #0x08]
+            ldr     x27, [x1, #0x08]
+            ; gcrRegs +[x27]
+            ldr     w0, [x27, #0x08]
             cmp     w0, w2
             bhi     G_M55933_IG13
             ldr     x0, [x1, #0x10]
@@ -117,7 +119,7 @@ G_M55933_IG04:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x2
             ldr     x2, [x2]
             ldr     wzr, [x0]
             blr     x2
-            ; gcrRegs -[x0 x26]
+            ; gcrRegs -[x0 x27]
             ; gcr arg pop 0
             sxtw    w2, w0
                        ;; size=60 bbWeight=2 PerfScore 52.00
@@ -125,83 +127,80 @@ G_M55933_IG05:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x2
             tbz     w25, #2, G_M55933_IG07
                        ;; size=4 bbWeight=8 PerfScore 8.00
 G_M55933_IG06:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
-            ldr     w0, [fp, #0x24]    // [V06 loc0]
-            str     w0, [x23]
+            ldr     w1, [fp, #0x2C]    // [V06 loc0]
+            str     w1, [x23]
                        ;; size=8 bbWeight=2 PerfScore 6.00
 G_M55933_IG07:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
-            ldr     w0, [fp, #0x24]    // [V06 loc0]
-            cmp     w0, w21
+            ldr     w1, [fp, #0x2C]    // [V06 loc0]
+            cmp     w1, w21
             ble     G_M55933_IG17
                        ;; size=12 bbWeight=8 PerfScore 28.00
 G_M55933_IG08:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
             tbnz    w25, #1, G_M55933_IG17
-            ldr     w0, [x20, #0x08]
-            ldr     w1, [x19, #0xA4]
-            lsl     w1, w0, w1
-            orr     w4, w1, w2
-            ldr     x1, [x19, #0x20]
-            ; gcrRegs +[x1]
-            ldr     w5, [x1, #0x08]
-            cmp     w4, w5
+            ldr     w1, [x20, #0x08]
+            ldr     w5, [x19, #0xA4]
+            lsl     w5, w1, w5
+            orr     w4, w5, w2
+            ldr     x5, [x19, #0x20]
+            ; gcrRegs +[x5]
+            ldr     w0, [x5, #0x08]
+            cmp     w4, w0
             bhs     G_M55933_IG12
-            add     x1, x1, #16
-            ; gcrRegs -[x1]
-            ; byrRegs +[x1]
-            ldr     w1, [x1, w4, UXTW #2]
-            ; byrRegs -[x1]
-            cmp     w1, #0
+            add     x5, x5, #16
+            ; gcrRegs -[x5]
+            ; byrRegs +[x5]
+            ldr     w5, [x5, w4, UXTW #2]
+            ; byrRegs -[x5]
+            cmp     w5, #0
             ble     G_M55933_IG15
                        ;; size=52 bbWeight=4 PerfScore 82.00
 G_M55933_IG09:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
-            str     w1, [x20, #0x08]
+            str     w5, [x20, #0x08]
                        ;; size=4 bbWeight=2 PerfScore 2.00
 G_M55933_IG10:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
             mov     w25, #1
                        ;; size=4 bbWeight=8 PerfScore 4.00
 G_M55933_IG11:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
-            str     xzr, [fp, #0x18]   // [V21 tmp11]
+            str     xzr, [fp, #0x20]   // [V21 tmp11]
             cbz     w25, G_M55933_IG18
-            ldr     w0, [fp, #0x24]    // [V06 loc0]
-            sub     w0, w0, #1
-            str     w0, [fp, #0x24]    // [V06 loc0]
+            str     w26, [fp, #0x2C]   // [V06 loc0]
             b       G_M55933_IG03
-                       ;; size=24 bbWeight=4 PerfScore 26.00
+                       ;; size=16 bbWeight=4 PerfScore 16.00
 G_M55933_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
             ; byrRegs -[x20 x23-x24]
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M55933_IG13:        ; bbWeight=2, gcrefRegs=4080000 {x19 x26}, byrefRegs=1900000 {x20 x23 x24}, byref
-            ; gcrRegs +[x19 x26]
+G_M55933_IG13:        ; bbWeight=2, gcrefRegs=8080000 {x19 x27}, byrefRegs=1900000 {x20 x23 x24}, byref
+            ; gcrRegs +[x19 x27]
             ; byrRegs +[x20 x23-x24]
-            add     x0, x26, #16
-            ; byrRegs +[x0]
-            ldr     w2, [x0, w2, UXTW #2]
+            add     x1, x27, #16
+            ; byrRegs +[x1]
+            ldr     w2, [x1, w2, UXTW #2]
             b       G_M55933_IG05
                        ;; size=12 bbWeight=2 PerfScore 9.00
 G_M55933_IG14:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
-            ; gcrRegs -[x26]
-            ; byrRegs -[x0]
+            ; gcrRegs -[x27]
+            ; byrRegs -[x1]
             movn    w2, #0
             b       G_M55933_IG05
                        ;; size=8 bbWeight=2 PerfScore 3.00
 G_M55933_IG15:        ; bbWeight=16, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
-            mov     x1, x19
-            ; gcrRegs +[x1]
-            ldr     x1, [x1, #0x10]
-            ldr     w5, [x1, #0x08]
-            cmp     w0, w5
+            ldr     x5, [x19, #0x10]
+            ; gcrRegs +[x5]
+            ldr     w0, [x5, #0x08]
+            cmp     w1, w0
             bhs     G_M55933_IG12
-            add     x1, x1, #16
-            ; gcrRegs -[x1]
-            ; byrRegs +[x1]
-            ldr     x1, [x1, w0, UXTW #3]
...

+4 (+1.82%) : 7548.dasm - System.Text.Json.JsonDocument:ParseValue(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)

@@ -10,7 +10,7 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ubyte]>
 ;  V01 arg1         [V01    ] (  3,  3   )  struct ( 8) [fp+0x30]  do-not-enreg[XS] addr-exposed ld-addr-op single-def <System.Text.Json.JsonDocumentOptions>
-;  V02 loc0         [V02,T02] (  4,  4   )     ref  ->  x21         class-hnd exact single-def <ubyte[]>
+;  V02 loc0         [V02,T01] (  5,  5   )     ref  ->  x21         class-hnd exact single-def <ubyte[]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Span`1[ubyte]>
 ;* V05 tmp2         [V05    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Memory`1[ubyte]>
@@ -20,11 +20,11 @@
 ;* V09 tmp6         [V09    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ubyte]>
 ;* V10 tmp7         [V10    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V11 tmp8         [V11    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
-;  V12 tmp9         [V12,T04] (  2,  4   )    long  ->   x2         "Inlining Arg"
-;* V13 tmp10        [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]>
+;  V12 tmp9         [V12,T06] (  2,  4   )    long  ->   x2         "Inlining Arg"
+;  V13 tmp10        [V13    ] (  5, 10   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.Memory`1[ubyte]>
 ;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Memory`1[ubyte]>
-;  V15 tmp12        [V15,T03] (  2,  2   )   byref  ->  x20         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V16 tmp13        [V16,T01] (  4,  4   )     int  ->  x19         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V15 tmp12        [V15,T05] (  2,  2   )   byref  ->  x20         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V16 tmp13        [V16,T00] (  4,  4   )     int  ->  x19         single-def "field V00._length (fldOffset=0x8)" P-INDEP
 ;* V17 tmp14        [V17    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V18 tmp15        [V18    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
 ;* V19 tmp16        [V19    ] (  0,  0   )     ref  ->  zero-ref    "field V05._object (fldOffset=0x0)" P-INDEP
@@ -33,21 +33,20 @@
 ;* V22 tmp19        [V22    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V06._object (fldOffset=0x0)" P-INDEP
 ;* V23 tmp20        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V06._index (fldOffset=0x8)" P-INDEP
 ;* V24 tmp21        [V24    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0xc)" P-INDEP
-;  V25 tmp22        [V25,T05] (  2,  4   )     int  ->  [fp+0x28]  do-not-enreg[] "field V07._maxDepth (fldOffset=0x0)" P-DEP
-;  V26 tmp23        [V26,T06] (  2,  4   )   ubyte  ->  [fp+0x2C]  do-not-enreg[] "field V07._commentHandling (fldOffset=0x4)" P-DEP
-;  V27 tmp24        [V27,T07] (  2,  4   )   ubyte  ->  [fp+0x2D]  do-not-enreg[] "field V07.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-DEP
-;  V28 tmp25        [V28,T10] (  2,  2   )   byref  ->   x0         "field V08._reference (fldOffset=0x0)" P-INDEP
-;  V29 tmp26        [V29,T11] (  2,  2   )     int  ->   x1         "field V08._length (fldOffset=0x8)" P-INDEP
+;  V25 tmp22        [V25,T07] (  2,  4   )     int  ->  [fp+0x28]  do-not-enreg[] "field V07._maxDepth (fldOffset=0x0)" P-DEP
+;  V26 tmp23        [V26,T08] (  2,  4   )   ubyte  ->  [fp+0x2C]  do-not-enreg[] "field V07._commentHandling (fldOffset=0x4)" P-DEP
+;  V27 tmp24        [V27,T09] (  2,  4   )   ubyte  ->  [fp+0x2D]  do-not-enreg[] "field V07.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-DEP
+;  V28 tmp25        [V28,T11] (  2,  2   )   byref  ->   x0         "field V08._reference (fldOffset=0x0)" P-INDEP
+;  V29 tmp26        [V29,T12] (  2,  2   )     int  ->   x1         "field V08._length (fldOffset=0x8)" P-INDEP
 ;* V30 tmp27        [V30    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V09._reference (fldOffset=0x0)" P-INDEP
 ;* V31 tmp28        [V31    ] (  0,  0   )     int  ->  zero-ref    "field V09._length (fldOffset=0x8)" P-INDEP
-;  V32 tmp29        [V32,T09] (  3,  3   )     ref  ->  x21         "field V13._object (fldOffset=0x0)" P-INDEP
-;* V33 tmp30        [V33,T13] (  0,  0   )     int  ->  zero-ref    "field V13._index (fldOffset=0x8)" P-INDEP
-;  V34 tmp31        [V34,T12] (  2,  2   )     int  ->  x19         "field V13._length (fldOffset=0xc)" P-INDEP
+;  V32 tmp29        [V32,T02] (  3,  5   )     ref  ->  [fp+0x18]  do-not-enreg[] "field V13._object (fldOffset=0x0)" P-DEP
+;  V33 tmp30        [V33,T03] (  3,  5   )     int  ->  [fp+0x20]  do-not-enreg[] "field V13._index (fldOffset=0x8)" P-DEP
+;  V34 tmp31        [V34,T04] (  3,  5   )     int  ->  [fp+0x24]  do-not-enreg[] "field V13._length (fldOffset=0xc)" P-DEP
 ;* V35 tmp32        [V35    ] (  0,  0   )     ref  ->  zero-ref    "field V14._object (fldOffset=0x0)" P-INDEP
 ;* V36 tmp33        [V36    ] (  0,  0   )     int  ->  zero-ref    "field V14._index (fldOffset=0x8)" P-INDEP
 ;* V37 tmp34        [V37    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0xc)" P-INDEP
-;  V38 tmp35        [V38,T08] (  2,  4   )  struct ( 8) [fp+0x20]  do-not-enreg[S] "by-value struct argument" <System.Text.Json.JsonReaderOptions>
-;  V39 tmp36        [V39,T00] (  5, 10   )  struct (16) [fp+0x10]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.Memory`1[ubyte]>
+;  V38 tmp35        [V38,T10] (  2,  4   )  struct ( 8) [fp+0x10]  do-not-enreg[S] "by-value struct argument" <System.Text.Json.JsonReaderOptions>
 ;
 ; Lcl frame size = 40
 
@@ -56,7 +55,7 @@ G_M33801_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     x19, x20, [sp, #0x38]
             str     x21, [sp, #0x48]
             mov     fp, sp
-            str     xzr, [fp, #0x10]   // [V39 tmp36]
+            str     xzr, [fp, #0x18]   // [V13 tmp10]
             str     x2, [fp, #0x30]    // [V01 arg1]
             mov     x20, x0
             ; byrRegs +[x20]
@@ -86,29 +85,30 @@ G_M33801_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=100000 {x20}, b
             ldr     x3, [x3]
             blr     x3
             ; byrRegs -[x0-x1 x20]
-            ldr     w19, [x21, #0x08]
+            str     x21, [fp, #0x18]   // [V32 tmp29]
+            str     wzr, [fp, #0x20]   // [V33 tmp30]
+            ldr     w0, [x21, #0x08]
+            str     w0, [fp, #0x24]    // [V34 tmp31]
             add     x0, fp, #48    // [V01 arg1]
             movz    x1, #0xD1FFAB1E      // code for System.Text.Json.JsonDocumentOptions:GetReaderOptions():System.Text.Json.JsonReaderOptions:this
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x1, [x1]
             blr     x1
+            ; gcrRegs -[x21]
             str     x0, [fp, #0x28]    // [V07 tmp4]
-            str     x21, [fp, #0x10]   // [V39 tmp36]
-            stp     wzr, w19, [fp, #0x18]  // [V39 tmp36+0x08], [V39 tmp36+0x0c]
-            ldr     x0, [fp, #0x28]    // [V07 tmp4]
-            str     x0, [fp, #0x20]    // [V38 tmp35]
-            ldp     x0, x1, [fp, #0x10]    // [V39 tmp36], [V39 tmp36+0x08]
+            ldr     x2, [fp, #0x28]    // [V07 tmp4]
+            str     x2, [fp, #0x10]    // [V38 tmp35]
+            ldp     x2, x0, [fp, #0x10]    // [V38 tmp35], [V13 tmp10]
             ; gcrRegs +[x0]
-            ldr     x2, [fp, #0x20]    // [V38 tmp35]
+            ldr     x1, [fp, #0x20]    // [V13 tmp10+0x08]
             mov     w3, wzr
             movz    x4, #0xD1FFAB1E      // code for <unknown method>
             movk    x4, #0xD1FFAB1E LSL #16
             movk    x4, #0xD1FFAB1E LSL #32
             ldr     x4, [x4]
             blr     x4
-            ; gcrRegs -[x21]
-                       ;; size=148 bbWeight=1 PerfScore 41.00
+                       ;; size=152 bbWeight=1 PerfScore 42.00
 G_M33801_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x21, [sp, #0x48]
             ldp     x19, x20, [sp, #0x38]
@@ -125,7 +125,7 @@ G_M33801_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_windows #0
                        ;; size=24 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 220, prolog size 20, PerfScore 52.50, instruction count 55, allocated bytes for code 220 (MethodHash=26bd7bf6) for method System.Text.Json.JsonDocument:ParseValue(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
+; Total bytes of code 224, prolog size 20, PerfScore 53.50, instruction count 56, allocated bytes for code 224 (MethodHash=26bd7bf6) for method System.Text.Json.JsonDocument:ParseValue(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -136,7 +136,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 55 (0x00037) Actual length = 220 (0x0000dc)
+  Function Length   : 56 (0x00038) Actual length = 224 (0x0000e0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+12.50%) : 908.dasm - System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)

@@ -8,88 +8,86 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  9,  6.50)     ref  ->  [fp+0x18]  this class-hnd single-def <System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]>
+;  V00 this         [V00,T00] (  9,  6.50)     ref  ->  x19         this class-hnd single-def <System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]>
 ;  V01 loc0         [V01,T02] (  3,  2.50)     ref  ->   x1         class-hnd exact single-def <<unknown class>>
-;  V02 loc1         [V02,T03] (  3,  2.50)     int  ->   x3        
+;  V02 loc1         [V02,T03] (  3,  2.50)     int  ->   x2        
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04    ] (  2,  2   )  struct (32) [fp+0x20]  do-not-enreg[XS] addr-exposed "by-value struct argument" <BenchmarkDotNet.Reports.Measurement>
-;  V05 tmp2         [V05,T01] (  3,  3   )     ref  ->   x2         single-def "argument with side effect"
-;  V06 cse0         [V06,T04] (  3,  2.50)     int  ->   x2         "CSE - aggressive"
-;  V07 cse1         [V07,T05] (  2,  2   )     int  ->   x4         "CSE - aggressive"
+;  V04 tmp1         [V04    ] (  2,  2   )  struct (32) [fp+0x18]  do-not-enreg[XS] addr-exposed "by-value struct argument" <BenchmarkDotNet.Reports.Measurement>
+;  V05 tmp2         [V05,T01] (  3,  3   )     ref  ->   x3         single-def "argument with side effect"
+;  V06 cse0         [V06,T04] (  3,  2.50)     int  ->   x0         "CSE - aggressive"
+;  V07 cse1         [V07,T05] (  2,  2   )     int  ->   x3         "CSE - aggressive"
 ;
-; Lcl frame size = 48
+; Lcl frame size = 40
 
 G_M7274_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
+            str     x19, [sp, #0x38]
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M7274_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x0]
-            ldr     x1, [x0, #0x18]
+            mov     x19, x0
+            ; gcrRegs +[x19]
+                       ;; size=16 bbWeight=1 PerfScore 3.00
+G_M7274_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            ldr     x1, [x19, #0x18]
             ; gcrRegs +[x1]
-            ldr     w2, [x0, #0x14]
-            sub     w3, w2, #1
-            ldr     w4, [x1, #0x08]
-            cmp     w4, w3
+            ldr     w0, [x19, #0x14]
+            sub     w2, w0, #1
+            ldr     w3, [x1, #0x08]
+            cmp     w3, w2
             bls     G_M7274_IG05
                        ;; size=24 bbWeight=1 PerfScore 11.00
-G_M7274_IG03:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref
-            add     w2, w2, #1
-            str     w2, [x0, #0x14]
-            str     x0, [fp, #0x18]    // [V00 this]
-            ; GC ptr vars +{V00}
-            ldr     x2, [x0, #0x20]
-            ; gcrRegs +[x2]
-            ubfiz   x3, x3, #5, #32
-            add     x3, x3, #16
-            add     x1, x1, x3
+G_M7274_IG03:        ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
+            add     w0, w0, #1
+            str     w0, [x19, #0x14]
+            ldr     x3, [x19, #0x20]
+            ; gcrRegs +[x3]
+            ubfiz   x0, x2, #5, #32
+            add     x0, x0, #16
+            add     x1, x1, x0
             ; gcrRegs -[x1]
             ; byrRegs +[x1]
-            ldp     q16, q17, [x1]
-            stp     q16, q17, [fp, #0x20]
-            add     x1, fp, #32    // [V04 tmp1]
+            ldp     x0, x2, [x1]
+            stp     x0, x2, [fp, #0x18]
+            ldp     x0, x2, [x1, #0x10]
+            stp     x0, x2, [fp, #0x28]
+            add     x1, fp, #24    // [V04 tmp1]
             ; byrRegs -[x1]
-            ldr     x0, [x2, #0x08]
-            ldr     x2, [x2, #0x18]
-            ; gcrRegs -[x2]
-            blr     x2
-            ; gcrRegs -[x0]
-            ldr     x0, [fp, #0x18]    // [V00 this]
+            ldr     x0, [x3, #0x08]
             ; gcrRegs +[x0]
-            str     d0, [x0, #0x08]
+            ldr     x2, [x3, #0x18]
+            blr     x2
+            ; gcrRegs -[x0 x3]
+            str     d0, [x19, #0x08]
             mov     w0, #1
-            ; gcrRegs -[x0]
-                       ;; size=64 bbWeight=0.50 PerfScore 11.25
+                       ;; size=64 bbWeight=0.50 PerfScore 12.75
 G_M7274_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+            ldr     x19, [sp, #0x38]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M7274_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x0]
-            ; GC ptr vars -{V00}
-            str     xzr, [x0, #0x08]
-            movn    w1, #0
-            str     w1, [x0, #0x14]
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+G_M7274_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+            str     xzr, [x19, #0x08]
+            movn    w0, #0
+            str     w0, [x19, #0x14]
             mov     w0, wzr
-            ; gcrRegs -[x0]
                        ;; size=16 bbWeight=0.50 PerfScore 1.50
 G_M7274_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+            ldr     x19, [sp, #0x38]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 128, prolog size 8, PerfScore 27.25, instruction count 32, allocated bytes for code 128 (MethodHash=937fe395) for method System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 144, prolog size 12, PerfScore 32.25, instruction count 36, allocated bytes for code 144 (MethodHash=937fe395) for method System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 1
+  Code Words        : 2
   Epilog Count      : 2
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 32 (0x00020) Actual length = 128 (0x000080)
+  Function Length   : 36 (0x00024) Actual length = 144 (0x000090)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -100,7 +98,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
+    D0 07       save_reg X#0 Z#7 (0x07); str x19, [sp, #56]
     87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
     E4          end
     E4          end
+    E4          end
+    E4          end
 

benchmarks.run_pgo.windows.arm64.checked.mch

-44 (-26.83%) : 68825.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)

@@ -5,69 +5,52 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
-;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x60]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x58]  do-not-enreg[]
-;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x54]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x48]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
+;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x40]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
+;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x38]  do-not-enreg[]
+;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x34]  do-not-enreg[]
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x38]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-;  V08 tmp2         [V08    ] (  1,  1   )     ref  ->  [fp+0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp3         [V09    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp4         [V10    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V11 tmp5         [V11    ] (  1,  1   )     ref  ->  [fp+0x18]  do-not-enreg[] must-init "argument with side effect"
+;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;
-; Lcl frame size = 112
+; Lcl frame size = 80
 
 G_M19554_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x80]!
+            stp     fp, lr, [sp, #-0x60]!
             mov     fp, sp
-            add     x9, fp, #24
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     xzr, xzr, [x9, #0x20]
-            str     xzr, [x9, #0x30]
-            str     x0, [fp, #0x78]    // [V00 this]
-            str     x1, [fp, #0x70]    // [V01 arg1]
-            str     x2, [fp, #0x68]    // [V02 arg2]
-            str     x3, [fp, #0x60]    // [V03 arg3]
-            str     x4, [fp, #0x58]    // [V04 arg4]
-            str     w5, [fp, #0x54]    // [V05 arg5]
-                       ;; size=52 bbWeight=1 PerfScore 11.50
+            str     xzr, [fp, #0x18]   // [V07 tmp1]
+            str     xzr, [fp, #0x20]   // [V07 tmp1+0x08]
+            str     x0, [fp, #0x58]    // [V00 this]
+            str     x1, [fp, #0x50]    // [V01 arg1]
+            str     x2, [fp, #0x48]    // [V02 arg2]
+            str     x3, [fp, #0x40]    // [V03 arg3]
+            str     x4, [fp, #0x38]    // [V04 arg4]
+            str     w5, [fp, #0x34]    // [V05 arg5]
+                       ;; size=40 bbWeight=1 PerfScore 9.50
 G_M19554_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x78]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x30]    // [V08 tmp2]
-            ldr     x0, [fp, #0x70]    // [V01 arg1]
-            str     x0, [fp, #0x28]    // [V09 tmp3]
-            ldr     x0, [fp, #0x68]    // [V02 arg2]
-            str     x0, [fp, #0x20]    // [V10 tmp4]
-            ldr     x0, [fp, #0x60]    // [V03 arg3]
-            str     x0, [fp, #0x18]    // [V11 tmp5]
-            ldr     x0, [fp, #0x58]    // [V04 arg4]
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-                       ;; size=36 bbWeight=1 PerfScore 14.00
+            ldr     x5, [fp, #0x38]    // [V04 arg4]
+            ; byrRegs +[x5]
+                       ;; size=4 bbWeight=1 PerfScore 2.00
 G_M19554_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x1, x2, [x0]
-            stp     x1, x2, [fp, #0x38]
-            ldr     x1, [x0, #0x10]
-            str     x1, [fp, #0x48]
+            ldp     x1, x6, [x5]
+            stp     x1, x6, [fp, #0x18]
+            ldr     x1, [x5, #0x10]
+            str     x1, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M19554_IG04:        ; bbWeight=1, extend
-            ldr     x0, [fp, #0x30]    // [V08 tmp2]
-            ; gcrRegs +[x0]
-            ; byrRegs -[x0]
-            ldr     x1, [fp, #0x28]    // [V09 tmp3]
-            ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x20]    // [V10 tmp4]
-            ; gcrRegs +[x2]
-            ldr     x4, [fp, #0x18]    // [V11 tmp5]
-            ; gcrRegs +[x4]
-            add     x5, fp, #56    // [V07 tmp1]
-            ldr     w6, [fp, #0x54]    // [V05 arg5]
+            add     x5, fp, #24    // [V07 tmp1]
+            ; byrRegs -[x5]
+            ldr     w6, [fp, #0x34]    // [V05 arg5]
             uxtb    w6, w6
+            ldr     x1, [fp, #0x50]    // [V01 arg1]
+            ; gcrRegs +[x1]
+            ldr     x2, [fp, #0x48]    // [V02 arg2]
+            ; gcrRegs +[x2]
+            ldr     x4, [fp, #0x40]    // [V03 arg3]
+            ; gcrRegs +[x4]
+            ldr     x0, [fp, #0x58]    // [V00 this]
+            ; gcrRegs +[x0]
             mov     x3, xzr
             movz    x7, #0xD1FFAB1E      // code for <unknown method>
             movk    x7, #0xD1FFAB1E LSL #16
@@ -77,11 +60,11 @@ G_M19554_IG04:        ; bbWeight=1, extend
             ; gcrRegs -[x0-x2 x4]
                        ;; size=52 bbWeight=1 PerfScore 17.00
 G_M19554_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x80
+            ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 164, prolog size 28, PerfScore 53.50, instruction count 41, allocated bytes for code 164 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
+; Total bytes of code 120, prolog size 16, PerfScore 39.50, instruction count 30, allocated bytes for code 120 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -92,7 +75,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
+  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -100,7 +83,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    8F          save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
+    8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
     E4          end
     E4          end
 

-44 (-26.83%) : 69246.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Instrumented Tier0)

@@ -5,69 +5,52 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
-;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x60]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x58]  do-not-enreg[]
-;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x54]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x48]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
+;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x40]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
+;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x38]  do-not-enreg[]
+;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x34]  do-not-enreg[]
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x38]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-;  V08 tmp2         [V08    ] (  1,  1   )     ref  ->  [fp+0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp3         [V09    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp4         [V10    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V11 tmp5         [V11    ] (  1,  1   )     ref  ->  [fp+0x18]  do-not-enreg[] must-init "argument with side effect"
+;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;
-; Lcl frame size = 112
+; Lcl frame size = 80
 
 G_M19554_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x80]!
+            stp     fp, lr, [sp, #-0x60]!
             mov     fp, sp
-            add     x9, fp, #24
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     xzr, xzr, [x9, #0x20]
-            str     xzr, [x9, #0x30]
-            str     x0, [fp, #0x78]    // [V00 this]
-            str     x1, [fp, #0x70]    // [V01 arg1]
-            str     x2, [fp, #0x68]    // [V02 arg2]
-            str     x3, [fp, #0x60]    // [V03 arg3]
-            str     x4, [fp, #0x58]    // [V04 arg4]
-            str     w5, [fp, #0x54]    // [V05 arg5]
-                       ;; size=52 bbWeight=1 PerfScore 11.50
+            str     xzr, [fp, #0x18]   // [V07 tmp1]
+            str     xzr, [fp, #0x20]   // [V07 tmp1+0x08]
+            str     x0, [fp, #0x58]    // [V00 this]
+            str     x1, [fp, #0x50]    // [V01 arg1]
+            str     x2, [fp, #0x48]    // [V02 arg2]
+            str     x3, [fp, #0x40]    // [V03 arg3]
+            str     x4, [fp, #0x38]    // [V04 arg4]
+            str     w5, [fp, #0x34]    // [V05 arg5]
+                       ;; size=40 bbWeight=1 PerfScore 9.50
 G_M19554_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x78]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x30]    // [V08 tmp2]
-            ldr     x0, [fp, #0x70]    // [V01 arg1]
-            str     x0, [fp, #0x28]    // [V09 tmp3]
-            ldr     x0, [fp, #0x68]    // [V02 arg2]
-            str     x0, [fp, #0x20]    // [V10 tmp4]
-            ldr     x0, [fp, #0x60]    // [V03 arg3]
-            str     x0, [fp, #0x18]    // [V11 tmp5]
-            ldr     x0, [fp, #0x58]    // [V04 arg4]
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-                       ;; size=36 bbWeight=1 PerfScore 14.00
+            ldr     x5, [fp, #0x38]    // [V04 arg4]
+            ; byrRegs +[x5]
+                       ;; size=4 bbWeight=1 PerfScore 2.00
 G_M19554_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x1, x2, [x0]
-            stp     x1, x2, [fp, #0x38]
-            ldr     x1, [x0, #0x10]
-            str     x1, [fp, #0x48]
+            ldp     x1, x6, [x5]
+            stp     x1, x6, [fp, #0x18]
+            ldr     x1, [x5, #0x10]
+            str     x1, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M19554_IG04:        ; bbWeight=1, extend
-            ldr     x0, [fp, #0x30]    // [V08 tmp2]
-            ; gcrRegs +[x0]
-            ; byrRegs -[x0]
-            ldr     x1, [fp, #0x28]    // [V09 tmp3]
-            ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x20]    // [V10 tmp4]
-            ; gcrRegs +[x2]
-            ldr     x4, [fp, #0x18]    // [V11 tmp5]
-            ; gcrRegs +[x4]
-            add     x5, fp, #56    // [V07 tmp1]
-            ldr     w6, [fp, #0x54]    // [V05 arg5]
+            add     x5, fp, #24    // [V07 tmp1]
+            ; byrRegs -[x5]
+            ldr     w6, [fp, #0x34]    // [V05 arg5]
             uxtb    w6, w6
+            ldr     x1, [fp, #0x50]    // [V01 arg1]
+            ; gcrRegs +[x1]
+            ldr     x2, [fp, #0x48]    // [V02 arg2]
+            ; gcrRegs +[x2]
+            ldr     x4, [fp, #0x40]    // [V03 arg3]
+            ; gcrRegs +[x4]
+            ldr     x0, [fp, #0x58]    // [V00 this]
+            ; gcrRegs +[x0]
             mov     x3, xzr
             movz    x7, #0xD1FFAB1E      // code for <unknown method>
             movk    x7, #0xD1FFAB1E LSL #16
@@ -77,11 +60,11 @@ G_M19554_IG04:        ; bbWeight=1, extend
             ; gcrRegs -[x0-x2 x4]
                        ;; size=52 bbWeight=1 PerfScore 17.00
 G_M19554_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x80
+            ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 164, prolog size 28, PerfScore 53.50, instruction count 41, allocated bytes for code 164 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Instrumented Tier0)
+; Total bytes of code 120, prolog size 16, PerfScore 39.50, instruction count 30, allocated bytes for code 120 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Instrumented Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -92,7 +75,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
+  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -100,7 +83,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    8F          save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
+    8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
     E4          end
     E4          end
 

-48 (-22.22%) : 68775.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)

@@ -5,80 +5,59 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x88]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x80]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbol>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
-;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax>
-;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x68]  do-not-enreg[]
-;  V05 arg5         [V05    ] (  1,  1   )     ref  ->  [fp+0x60]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax>
-;  V06 arg6         [V06    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
-;  V07 arg7         [V07    ] (  1,  1   )   ubyte  ->  [fp+0x54]  do-not-enreg[]
-;  V08 arg8         [V08    ] (  1,  1   )   ubyte  ->  [fp+0x90]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x60]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbol>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
+;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax>
+;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x48]  do-not-enreg[]
+;  V05 arg5         [V05    ] (  1,  1   )     ref  ->  [fp+0x40]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax>
+;  V06 arg6         [V06    ] (  1,  1   )     ref  ->  [fp+0x38]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
+;  V07 arg7         [V07    ] (  1,  1   )   ubyte  ->  [fp+0x34]  do-not-enreg[]
+;  V08 arg8         [V08    ] (  1,  1   )   ubyte  ->  [fp+0x70]  do-not-enreg[]
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10    ] (  1,  1   )  struct (24) [fp+0x38]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.SyntaxToken>
-;  V11 tmp2         [V11    ] (  1,  1   )     ref  ->  [fp+0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V12 tmp3         [V12    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V13 tmp4         [V13    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V14 tmp5         [V14    ] (  1,  1   )     int  ->  [fp+0x1C]  do-not-enreg[] "argument with side effect"
-;  V15 tmp6         [V15    ] (  1,  1   )     ref  ->  [fp+0x10]  do-not-enreg[] must-init "argument with side effect"
+;  V10 tmp1         [V10    ] (  1,  1   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.SyntaxToken>
 ;
-; Lcl frame size = 128
+; Lcl frame size = 96
 
 G_M62552_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x90]!
+            stp     fp, lr, [sp, #-0x70]!
             mov     fp, sp
-            add     x9, fp, #16
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     q16, q16, [x9, #0x20]
-            str     x0, [fp, #0x88]    // [V00 this]
-            str     x1, [fp, #0x80]    // [V01 arg1]
-            str     x2, [fp, #0x78]    // [V02 arg2]
-            str     x3, [fp, #0x70]    // [V03 arg3]
-            str     x4, [fp, #0x68]    // [V04 arg4]
-            str     x5, [fp, #0x60]    // [V05 arg5]
-            str     x6, [fp, #0x58]    // [V06 arg6]
-            str     w7, [fp, #0x54]    // [V07 arg7]
-                       ;; size=56 bbWeight=1 PerfScore 12.50
+            str     xzr, [fp, #0x18]   // [V10 tmp1]
+            str     xzr, [fp, #0x20]   // [V10 tmp1+0x08]
+            str     x0, [fp, #0x68]    // [V00 this]
+            str     x1, [fp, #0x60]    // [V01 arg1]
+            str     x2, [fp, #0x58]    // [V02 arg2]
+            str     x3, [fp, #0x50]    // [V03 arg3]
+            str     x4, [fp, #0x48]    // [V04 arg4]
+            str     x5, [fp, #0x40]    // [V05 arg5]
+            str     x6, [fp, #0x38]    // [V06 arg6]
+            str     w7, [fp, #0x34]    // [V07 arg7]
+                       ;; size=48 bbWeight=1 PerfScore 11.50
 G_M62552_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x88]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x30]    // [V11 tmp2]
-            ldr     x0, [fp, #0x80]    // [V01 arg1]
-            str     x0, [fp, #0x28]    // [V12 tmp3]
-            ldr     x0, [fp, #0x78]    // [V02 arg2]
-            str     x0, [fp, #0x20]    // [V13 tmp4]
-            ldr     w0, [fp, #0x90]    // [V08 arg8]
-            ; gcrRegs -[x0]
-            uxtb    w0, w0
-            str     w0, [fp, #0x1C]    // [V14 tmp5]
-            ldr     x0, [fp, #0x70]    // [V03 arg3]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x10]    // [V15 tmp6]
-            ldr     x0, [fp, #0x68]    // [V04 arg4]
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-                       ;; size=48 bbWeight=1 PerfScore 17.50
+            ldr     x6, [fp, #0x48]    // [V04 arg4]
+            ; byrRegs +[x6]
+                       ;; size=4 bbWeight=1 PerfScore 2.00
 G_M62552_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x1, x2, [x0]
-            stp     x1, x2, [fp, #0x38]
-            ldr     x1, [x0, #0x10]
-            str     x1, [fp, #0x48]
+            ldp     x4, x7, [x6]
+            stp     x4, x7, [fp, #0x18]
+            ldr     x4, [x6, #0x10]
+            str     x4, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M62552_IG04:        ; bbWeight=1, extend
-            ldr     x0, [fp, #0x30]    // [V11 tmp2]
-            ; gcrRegs +[x0]
-            ; byrRegs -[x0]
-            ldr     x1, [fp, #0x28]    // [V12 tmp3]
-            ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x20]    // [V13 tmp4]
-            ; gcrRegs +[x2]
-            ldr     w4, [fp, #0x1C]    // [V14 tmp5]
-            ldr     x5, [fp, #0x10]    // [V15 tmp6]
-            ; gcrRegs +[x5]
-            add     x6, fp, #56    // [V10 tmp1]
-            ldr     w7, [fp, #0x54]    // [V07 arg7]
+            add     x6, fp, #24    // [V10 tmp1]
+            ; byrRegs -[x6]
+            ldr     w7, [fp, #0x34]    // [V07 arg7]
             uxtb    w7, w7
+            ldr     w4, [fp, #0x70]    // [V08 arg8]
+            uxtb    w4, w4
+            ldr     x1, [fp, #0x60]    // [V01 arg1]
+            ; gcrRegs +[x1]
+            ldr     x2, [fp, #0x58]    // [V02 arg2]
+            ; gcrRegs +[x2]
+            ldr     x5, [fp, #0x50]    // [V03 arg3]
+            ; gcrRegs +[x5]
+            ldr     x0, [fp, #0x68]    // [V00 this]
+            ; gcrRegs +[x0]
             mov     w3, #1
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
             movk    x8, #0xD1FFAB1E LSL #16
@@ -86,33 +65,33 @@ G_M62552_IG04:        ; bbWeight=1, extend
             ldr     x8, [x8]
             blr     x8
             ; gcrRegs -[x0-x2 x5]
-            ldr     x14, [fp, #0x88]   // [V00 this]
+            ldr     x14, [fp, #0x68]   // [V00 this]
             ; gcrRegs +[x14]
             add     x14, x14, #80
             ; gcrRegs -[x14]
             ; byrRegs +[x14]
-            ldr     x15, [fp, #0x60]   // [V05 arg5]
+            ldr     x15, [fp, #0x40]   // [V05 arg5]
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x14]
-            ldr     x14, [fp, #0x88]   // [V00 this]
+            ldr     x14, [fp, #0x68]   // [V00 this]
             ; gcrRegs +[x14]
             add     x14, x14, #88
             ; gcrRegs -[x14]
             ; byrRegs +[x14]
-            ldr     x15, [fp, #0x58]   // [V06 arg6]
+            ldr     x15, [fp, #0x38]   // [V06 arg6]
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x14]
-                       ;; size=88 bbWeight=1 PerfScore 30.00
+                       ;; size=92 bbWeight=1 PerfScore 30.50
 G_M62552_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x90
+            ldp     fp, lr, [sp], #0x70
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 216, prolog size 24, PerfScore 71.00, instruction count 54, allocated bytes for code 216 (MethodHash=9edc0ba7) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)
+; Total bytes of code 168, prolog size 16, PerfScore 55.00, instruction count 42, allocated bytes for code 168 (MethodHash=9edc0ba7) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -123,7 +102,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 54 (0x00036) Actual length = 216 (0x0000d8)
+  Function Length   : 42 (0x0002a) Actual length = 168 (0x0000a8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -131,7 +110,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    91          save_fplr_x #17 (0x11); stp fp, lr, [sp, #-144]!
+    8D          save_fplr_x #13 (0x0D); stp fp, lr, [sp, #-112]!
     E4          end
     E4          end
 

+16 (+1.02%) : 74203.dasm - System.Reflection.CustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,ubyte):System.Object

@@ -12,21 +12,21 @@
 ;  V00 arg0         [V00,T00] ( 35, 16.20)     ref  ->  x19         class-hnd <System.RuntimeType>
 ;  V01 arg1         [V01,T01] ( 18,  8.44)     ref  ->  x20         class-hnd single-def <System.RuntimeType>
 ;  V02 arg2         [V02,T02] (  3,  3   )   ubyte  ->  x21         single-def
-;  V03 loc0         [V03    ] ( 17,  3.58)  struct (24) [fp+0x48]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Attribute]>
-;  V04 loc1         [V04    ] ( 13,  1.24)  struct (24) [fp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Object]>
-;  V05 loc2         [V05,T25] (  3,  0.34)   ubyte  ->  x21        
-;  V06 loc3         [V06,T19] (  3,  0.41)     ref  ->  x22         class-hnd single-def <System.Object[]>
+;  V03 loc0         [V03    ] ( 17,  3.58)  struct (24) [fp+0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Attribute]>
+;  V04 loc1         [V04    ] ( 13,  1.24)  struct (24) [fp+0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Object]>
+;  V05 loc2         [V05,T23] (  3,  0.34)   ubyte  ->  x22        
+;  V06 loc3         [V06,T19] (  3,  0.41)     ref  ->  x21         class-hnd single-def <System.Object[]>
 ;  V07 loc4         [V07,T15] (  5,  1.83)     ref  ->  x19         class-hnd single-def <System.Object[]>
-;  V08 loc5         [V08,T18] (  7,  0.41)     int  ->  x22        
-;  V09 loc6         [V09,T17] (  8,  0.83)     int  ->  x24        
+;  V08 loc5         [V08,T18] (  7,  0.41)     int  ->  x24        
+;  V09 loc6         [V09,T17] (  8,  0.83)     int  ->  x25        
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V11 tmp1         [V11,T04] (  2,  3.45)     ref  ->  x23         class-hnd exact single-def "impAppendStmt" <System.Reflection.RuntimeModule>
 ;* V12 tmp2         [V12    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V13 tmp3         [V13    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;  V14 tmp4         [V14,T20] (  2,  0.41)     ref  ->  x22         class-hnd exact "impAppendStmt" <System.Reflection.RuntimeModule>
+;  V14 tmp4         [V14,T20] (  2,  0.41)     ref  ->  x21         class-hnd exact "impAppendStmt" <System.Reflection.RuntimeModule>
 ;  V15 tmp5         [V15,T21] (  2,  0.41)     ref  ->  x19         "CASTCLASS eval op1"
 ;* V16 tmp6         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType>
-;  V17 tmp7         [V17,T27] (  2,  0.28)     ref  ->  x19         single-def "CASTCLASS eval op1"
+;  V17 tmp7         [V17,T25] (  2,  0.28)     ref  ->  x19         single-def "CASTCLASS eval op1"
 ;* V18 tmp8         [V18    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType>
 ;* V19 tmp9         [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp10        [V20    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -50,40 +50,38 @@
 ;* V38 tmp28        [V38    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V39 tmp29        [V39,T08] (  2,  2.91)     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;* V40 tmp30        [V40    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.AttributeUsageAttribute>
-;  V41 tmp31        [V41,T28] (  3,  0.21)     int  ->   x3         "Inlining Arg"
-;  V42 tmp32        [V42,T30] (  3,  0.14)     ref  ->   x2         class-hnd "Inline return value spill temp" <System.Attribute>
-;  V43 tmp33        [V43,T26] (  3,  0.28)     ref  ->   x2         class-hnd "Inline return value spill temp" <System.Object>
+;  V41 tmp31        [V41,T26] (  3,  0.21)     int  ->   x3         "Inlining Arg"
+;  V42 tmp32        [V42,T27] (  3,  0.14)     ref  ->   x2         class-hnd "Inline return value spill temp" <System.Attribute>
+;  V43 tmp33        [V43,T24] (  3,  0.28)     ref  ->   x2         class-hnd "Inline return value spill temp" <System.Object>
 ;* V44 tmp34        [V44    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V45 tmp35        [V45    ] (  7,  1.38)     ref  ->  [fp+0x48]  do-not-enreg[X] addr-exposed "field V03._items (fldOffset=0x0)" P-DEP
-;  V46 tmp36        [V46    ] (  5,  1.38)     ref  ->  [fp+0x50]  do-not-enreg[X] addr-exposed "field V03._item (fldOffset=0x8)" P-DEP
-;  V47 tmp37        [V47    ] ( 11,  3.38)     int  ->  [fp+0x58]  do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0x10)" P-DEP
-;  V48 tmp38        [V48    ] (  3,  1.27)     int  ->  [fp+0x5C]  do-not-enreg[X] addr-exposed "field V03._capacity (fldOffset=0x14)" P-DEP
-;  V49 tmp39        [V49    ] (  8,  0.55)     ref  ->  [fp+0x30]  do-not-enreg[X] addr-exposed "field V04._items (fldOffset=0x0)" P-DEP
-;  V50 tmp40        [V50    ] (  5,  0.55)     ref  ->  [fp+0x38]  do-not-enreg[X] addr-exposed "field V04._item (fldOffset=0x8)" P-DEP
-;  V51 tmp41        [V51    ] (  8,  0.97)     int  ->  [fp+0x40]  do-not-enreg[X] addr-exposed "field V04._count (fldOffset=0x10)" P-DEP
-;  V52 tmp42        [V52    ] (  4,  0.41)     int  ->  [fp+0x44]  do-not-enreg[X] addr-exposed "field V04._capacity (fldOffset=0x14)" P-DEP
+;  V45 tmp35        [V45    ] (  7,  1.38)     ref  ->  [fp+0x40]  do-not-enreg[X] addr-exposed "field V03._items (fldOffset=0x0)" P-DEP
+;  V46 tmp36        [V46    ] (  5,  1.38)     ref  ->  [fp+0x48]  do-not-enreg[X] addr-exposed "field V03._item (fldOffset=0x8)" P-DEP
+;  V47 tmp37        [V47    ] ( 11,  3.38)     int  ->  [fp+0x50]  do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0x10)" P-DEP
+;  V48 tmp38        [V48    ] (  3,  1.27)     int  ->  [fp+0x54]  do-not-enreg[X] addr-exposed "field V03._capacity (fldOffset=0x14)" P-DEP
+;  V49 tmp39        [V49    ] (  8,  0.55)     ref  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V04._items (fldOffset=0x0)" P-DEP
+;  V50 tmp40        [V50    ] (  5,  0.55)     ref  ->  [fp+0x30]  do-not-enreg[X] addr-exposed "field V04._item (fldOffset=0x8)" P-DEP
+;  V51 tmp41        [V51    ] (  8,  0.97)     int  ->  [fp+0x38]  do-not-enreg[X] addr-exposed "field V04._count (fldOffset=0x10)" P-DEP
+;  V52 tmp42        [V52    ] (  4,  0.41)     int  ->  [fp+0x3C]  do-not-enreg[X] addr-exposed "field V04._capacity (fldOffset=0x14)" P-DEP
 ;* V53 tmp43        [V53    ] (  0,  0   )    long  ->  zero-ref    "field V23.m_asTAddr (fldOffset=0x0)" P-INDEP
 ;  V54 tmp44        [V54,T06] (  3,  3   )    long  ->   x0         "field V26.m_asTAddr (fldOffset=0x0)" P-INDEP
 ;  V55 tmp45        [V55,T16] (  2,  1.09)     ref  ->   x2         single-def "argument with side effect"
-;  V56 tmp46        [V56,T31] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
-;  V57 tmp47        [V57    ] (  2,  0.41)  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.RuntimeType+ListBuilder`1[System.Object]>
-;  V58 tmp48        [V58,T23] (  2,  0.41)     int  ->   x2         "argument with side effect"
-;  V59 tmp49        [V59,T22] (  2,  0.41)     ref  ->  x22         "argument with side effect"
-;* V60 tmp50        [V60,T29] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V61 tmp51        [V61,T24] (  2,  0.41)     int  ->   x4         "argument with side effect"
-;  V62 tmp52        [V62,T05] (  2,  3.45)     int  ->   x1         "argument with side effect"
-;  V63 cse0         [V63,T10] (  3,  5.45)     ref  ->  x23         "CSE - aggressive"
-;  V64 cse1         [V64,T07] (  3,  3   )     int  ->   x0         "CSE - aggressive"
+;  V56 tmp46        [V56,T28] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
+;  V57 tmp47        [V57    ] (  2,  0.41)  struct (24) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.RuntimeType+ListBuilder`1[System.Object]>
+;  V58 tmp48        [V58,T22] (  2,  0.41)     int  ->   x2         "argument with side effect"
+;  V59 tmp49        [V59,T05] (  2,  3.45)     int  ->   x1         "argument with side effect"
+;  V60 cse0         [V60,T10] (  3,  5.45)     ref  ->  x23         "CSE - aggressive"
+;  V61 cse1         [V61,T07] (  3,  3   )     int  ->   x0         "CSE - aggressive"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 72
 
 G_M13659_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x90]!
-            stp     x19, x20, [sp, #0x60]
-            stp     x21, x22, [sp, #0x70]
-            stp     x23, x24, [sp, #0x80]
+            stp     x19, x20, [sp, #0x58]
+            stp     x21, x22, [sp, #0x68]
+            stp     x23, x24, [sp, #0x78]
+            str     x25, [sp, #0x88]
             mov     fp, sp
-            add     x9, fp, #24
+            add     x9, fp, #16
             movi    v16.16b, #0
             stp     q16, q16, [x9]
             stp     q16, q16, [x9, #0x20]
@@ -93,7 +91,7 @@ G_M13659_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             mov     x20, x1
             ; gcrRegs +[x20]
             mov     w21, w2
-                       ;; size=52 bbWeight=1 PerfScore 10.00
+                       ;; size=56 bbWeight=1 PerfScore 11.00
 G_M13659_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             cbz     x19, G_M13659_IG43
             cbz     x20, G_M13659_IG44
@@ -121,8 +119,8 @@ G_M13659_IG05:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             cbnz    w0, G_M13659_IG24
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M13659_IG06:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            stp     xzr, xzr, [fp, #0x48]
-            str     xzr, [fp, #0x58]
+            stp     xzr, xzr, [fp, #0x40]
+            str     xzr, [fp, #0x50]
             cbz     x19, G_M13659_IG49
             cbz     x20, G_M13659_IG50
                        ;; size=16 bbWeight=1 PerfScore 4.00
@@ -185,7 +183,7 @@ G_M13659_IG12:        ; bbWeight=0.27, gcrefRegs=980000 {x19 x20 x23}, byrefRegs
             ; gcr arg pop 0
             mov     x2, x0
             ; gcrRegs +[x2]
-            add     x0, fp, #72    // [V03 loc0]
+            add     x0, fp, #64    // [V03 loc0]
             ; gcrRegs -[x0]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -228,7 +226,7 @@ G_M13659_IG15:        ; bbWeight=0.86, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             sxtw    w1, w0
             mov     x0, x23
             ; gcrRegs +[x0]
-            ldr     w2, [fp, #0x58]    // [V47 tmp37]
+            ldr     w2, [fp, #0x50]    // [V47 tmp37]
             mov     x3, x20
             ; gcrRegs +[x3]
             movz    x4, #0xD1FFAB1E      // code for System.Reflection.CustomAttribute:GetCustomAttributes(System.Reflection.RuntimeModule,int,int,System.RuntimeType):System.Object[]
@@ -240,7 +238,7 @@ G_M13659_IG15:        ; bbWeight=0.86, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ; gcr arg pop 0
             mov     x19, x0
             ; gcrRegs +[x19]
-            ldr     w1, [fp, #0x58]    // [V47 tmp37]
+            ldr     w1, [fp, #0x50]    // [V47 tmp37]
             cmp     w1, #0
             bgt     G_M13659_IG21
                        ;; size=76 bbWeight=0.86 PerfScore 16.81
@@ -250,15 +248,16 @@ G_M13659_IG16:        ; bbWeight=0.86, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
             ; gcrRegs +[x0]
                        ;; size=4 bbWeight=0.86 PerfScore 0.43
 G_M13659_IG17:        ; bbWeight=0.86, epilog, nogc, extend
-            ldp     x23, x24, [sp, #0x80]
-            ldp     x21, x22, [sp, #0x70]
-            ldp     x19, x20, [sp, #0x60]
+            ldr     x25, [sp, #0x88]
+            ldp     x23, x24, [sp, #0x78]
+            ldp     x21, x22, [sp, #0x68]
+            ldp     x19, x20, [sp, #0x58]
             ldp     fp, lr, [sp], #0x90
             ret     lr
-                       ;; size=20 bbWeight=0.86 PerfScore 4.31
+                       ;; size=24 bbWeight=0.86 PerfScore 6.03
 G_M13659_IG18:        ; bbWeight=0.07, gcVars=0000000000000000 {}, gcrefRegs=980004 {x2 x19 x20 x23}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0] +[x2 x20 x23]
-            add     x0, fp, #48    // [V04 loc1]
+            add     x0, fp, #40    // [V04 loc1]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
@@ -269,9 +268,9 @@ G_M13659_IG18:        ; bbWeight=0.07, gcVars=0000000000000000 {}, gcrefRegs=980
             blr     x3
             ; gcrRegs -[x2]
             ; gcr arg pop 0
-            add     w22, w22, #1
-            ldr     w0, [fp, #0x58]    // [V47 tmp37]
-            cmp     w22, w0
+            add     w24, w24, #1
+            ldr     w0, [fp, #0x50]    // [V47 tmp37]
+            cmp     w24, w0
             blt     G_M13659_IG29
                        ;; size=52 bbWeight=0.07 PerfScore 0.79
 G_M13659_IG19:        ; bbWeight=3.45, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref, isz
@@ -285,15 +284,15 @@ G_M13659_IG20:        ; bbWeight=0.14, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
 G_M13659_IG21:        ; bbWeight=0.03, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x20] +[x19]
             ldr     w1, [x19, #0x08]
-            ldr     w0, [fp, #0x58]    // [V47 tmp37]
+            ldr     w0, [fp, #0x50]    // [V47 tmp37]
             sub     w3, w1, w0
-            ldr     w1, [fp, #0x58]    // [V47 tmp37]
+            ldr     w1, [fp, #0x50]    // [V47 tmp37]
             cmp     w1, #1
             bne     G_M13659_IG27
             sxtw    x1, w3
             mov     x0, x19
             ; gcrRegs +[x0]
-            ldr     x2, [fp, #0x50]    // [V46 tmp36]
+            ldr     x2, [fp, #0x48]    // [V46 tmp36]
             ; gcrRegs +[x2]
             bl      CORINFO_HELP_ARRADDR_ST
             ; gcrRegs -[x0 x2]
@@ -366,9 +365,9 @@ G_M13659_IG26:        ; bbWeight=0.18, gcrefRegs=980000 {x19 x20 x23}, byrefRegs
                        ;; size=8 bbWeight=0.18 PerfScore 0.27
 G_M13659_IG27:        ; bbWeight=0.03, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x20 x23]
-            ldr     x0, [fp, #0x48]    // [V45 tmp35]
+            ldr     x0, [fp, #0x40]    // [V45 tmp35]
             ; gcrRegs +[x0]
-            ldr     w4, [fp, #0x58]    // [V47 tmp37]
+            ldr     w4, [fp, #0x50]    // [V47 tmp37]
             mov     x2, x19
             ; gcrRegs +[x2]
             mov     w1, wzr
@@ -383,17 +382,17 @@ G_M13659_IG27:        ; bbWeight=0.03, gcrefRegs=80000 {x19}, byrefRegs=0000 {},
                        ;; size=40 bbWeight=0.03 PerfScore 0.40
 G_M13659_IG28:        ; bbWeight=0.14, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x20 x23]
-            stp     xzr, xzr, [fp, #0x30]
-            str     xzr, [fp, #0x40]
-            mov     w21, wzr
+            stp     xzr, xzr, [fp, #0x28]
+            str     xzr, [fp, #0x38]
             mov     w22, wzr
-            ldr     w0, [fp, #0x58]    // [V47 tmp37]
+            mov     w24, wzr
+            ldr     w0, [fp, #0x50]    // [V47 tmp37]
             cmp     w0, #0
             ble     G_M13659_IG19
                        ;; size=28 bbWeight=0.14 PerfScore 0.90
 G_M13659_IG29:        ; bbWeight=0.07, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref, isz
-            ldr     w0, [fp, #0x58]    // [V47 tmp37]
-            cmp     w22, w0
+            ldr     w0, [fp, #0x50]    // [V47 tmp37]
+            cmp     w24, w0
             cset    x0, lt
             movz    x1, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
             movk    x1, #0xD1FFAB1E LSL #16
@@ -401,10 +400,10 @@ G_M13659_IG29:        ; bbWeight=0.07, gcrefRegs=980000 {x19 x20 x23}, byrefRegs
             ldr     x1, [x1]
             blr     x1
             ; gcr arg pop 0
-            ldr     x0, [fp, #0x48]    // [V45 tmp35]
+            ldr     x0, [fp, #0x40]    // [V45 tmp35]
             ; gcrRegs +[x0]
             cbnz    x0, G_M13659_IG53
-            ldr     x2, [fp, #0x50]    // [V46 tmp36]
+            ldr     x2, [fp, #0x48]    // [V46 tmp36]
             ; gcrRegs +[x2]
             b       G_M13659_IG18
                        ;; size=48 bbWeight=0.07 PerfScore 1.00
@@ -414,36 +413,36 @@ G_M13659_IG30:        ; bbWeight=0.10, gcrefRegs=980000 {x19 x20 x23}, byrefRegs
             ; gcrRegs +[x0]
             bl      <unknown method>
             ; gcr arg pop 0
-            mov     x22, x0
-            ; gcrRegs +[x22]
...

+16 (+1.03%) : 81708.dasm - System.Reflection.CustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,ubyte):System.Object

@@ -12,18 +12,18 @@
 ;  V00 arg0         [V00,T00] ( 35, 15.02)     ref  ->  x19         class-hnd <System.RuntimeType>
 ;  V01 arg1         [V01,T01] ( 18,  7.77)     ref  ->  x20         class-hnd single-def <System.RuntimeType>
 ;  V02 arg2         [V02,T02] (  3,  3   )   ubyte  ->  x21         single-def
-;  V03 loc0         [V03    ] ( 14,  3.59)  struct (24) [fp+0x48]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Attribute]>
-;  V04 loc1         [V04    ] ( 12,  1.05)  struct (24) [fp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Object]>
-;  V05 loc2         [V05,T27] (  3,  0.27)   ubyte  ->  x21        
-;  V06 loc3         [V06,T24] (  3,  0.32)     ref  ->  x25         class-hnd single-def <System.Object[]>
+;  V03 loc0         [V03    ] ( 14,  3.59)  struct (24) [fp+0x40]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Attribute]>
+;  V04 loc1         [V04    ] ( 12,  1.05)  struct (24) [fp+0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.RuntimeType+ListBuilder`1[System.Object]>
+;  V05 loc2         [V05,T25] (  3,  0.27)   ubyte  ->  x24        
+;  V06 loc3         [V06,T22] (  3,  0.32)     ref  ->  x26         class-hnd single-def <System.Object[]>
 ;  V07 loc4         [V07,T16] (  4,  1.82)     ref  ->  x22         class-hnd single-def <System.Object[]>
-;  V08 loc5         [V08,T25] (  7,  0.27)     int  ->  x24        
-;  V09 loc6         [V09,T18] (  8,  0.77)     int  ->  x26        
+;  V08 loc5         [V08,T23] (  7,  0.27)     int  ->  x25        
+;  V09 loc6         [V09,T18] (  8,  0.77)     int  ->  x27        
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V11 tmp1         [V11,T04] (  2,  3.64)     ref  ->  x23         class-hnd exact single-def "impAppendStmt" <System.Reflection.RuntimeModule>
 ;* V12 tmp2         [V12    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V13 tmp3         [V13    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
-;  V14 tmp4         [V14,T19] (  2,  0.36)     ref  ->  x22         class-hnd exact "impAppendStmt" <System.Reflection.RuntimeModule>
+;  V14 tmp4         [V14,T19] (  2,  0.36)     ref  ->  x21         class-hnd exact "impAppendStmt" <System.Reflection.RuntimeModule>
 ;  V15 tmp5         [V15,T20] (  2,  0.36)     ref  ->  x19         "CASTCLASS eval op1"
 ;* V16 tmp6         [V16    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "spilling QMark2" <System.RuntimeType>
 ;  V17 tmp7         [V17,T17] (  2,  1.09)     ref  ->  x19         single-def "CASTCLASS eval op1"
@@ -50,40 +50,38 @@
 ;* V38 tmp28        [V38    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V39 tmp29        [V39,T13] (  2,  2   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <<unknown class>>
 ;* V40 tmp30        [V40    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <System.AttributeUsageAttribute>
-;  V41 tmp31        [V41,T29] (  3,  0.09)     ref  ->   x2         class-hnd "Inline return value spill temp" <System.Attribute>
-;  V42 tmp32        [V42,T26] (  3,  0.27)     ref  ->   x2         class-hnd "Inline return value spill temp" <System.Object>
+;  V41 tmp31        [V41,T26] (  3,  0.09)     ref  ->   x2         class-hnd "Inline return value spill temp" <System.Attribute>
+;  V42 tmp32        [V42,T24] (  3,  0.27)     ref  ->   x2         class-hnd "Inline return value spill temp" <System.Object>
 ;* V43 tmp33        [V43    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V44 tmp34        [V44    ] (  7,  1.55)     ref  ->  [fp+0x48]  do-not-enreg[X] addr-exposed "field V03._items (fldOffset=0x0)" P-DEP
-;  V45 tmp35        [V45    ] (  5,  1.55)     ref  ->  [fp+0x50]  do-not-enreg[X] addr-exposed "field V03._item (fldOffset=0x8)" P-DEP
-;  V46 tmp36        [V46    ] ( 10,  3.50)     int  ->  [fp+0x58]  do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0x10)" P-DEP
-;  V47 tmp37        [V47    ] (  4,  1.50)     int  ->  [fp+0x5C]  do-not-enreg[X] addr-exposed "field V03._capacity (fldOffset=0x14)" P-DEP
-;  V48 tmp38        [V48    ] (  7,  0.45)     ref  ->  [fp+0x30]  do-not-enreg[X] addr-exposed "field V04._items (fldOffset=0x0)" P-DEP
-;  V49 tmp39        [V49    ] (  5,  0.45)     ref  ->  [fp+0x38]  do-not-enreg[X] addr-exposed "field V04._item (fldOffset=0x8)" P-DEP
-;  V50 tmp40        [V50    ] (  8,  0.77)     int  ->  [fp+0x40]  do-not-enreg[X] addr-exposed "field V04._count (fldOffset=0x10)" P-DEP
-;  V51 tmp41        [V51    ] (  4,  0.32)     int  ->  [fp+0x44]  do-not-enreg[X] addr-exposed "field V04._capacity (fldOffset=0x14)" P-DEP
+;  V44 tmp34        [V44    ] (  7,  1.55)     ref  ->  [fp+0x40]  do-not-enreg[X] addr-exposed "field V03._items (fldOffset=0x0)" P-DEP
+;  V45 tmp35        [V45    ] (  5,  1.55)     ref  ->  [fp+0x48]  do-not-enreg[X] addr-exposed "field V03._item (fldOffset=0x8)" P-DEP
+;  V46 tmp36        [V46    ] ( 10,  3.50)     int  ->  [fp+0x50]  do-not-enreg[X] addr-exposed "field V03._count (fldOffset=0x10)" P-DEP
+;  V47 tmp37        [V47    ] (  4,  1.50)     int  ->  [fp+0x54]  do-not-enreg[X] addr-exposed "field V03._capacity (fldOffset=0x14)" P-DEP
+;  V48 tmp38        [V48    ] (  7,  0.45)     ref  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V04._items (fldOffset=0x0)" P-DEP
+;  V49 tmp39        [V49    ] (  5,  0.45)     ref  ->  [fp+0x30]  do-not-enreg[X] addr-exposed "field V04._item (fldOffset=0x8)" P-DEP
+;  V50 tmp40        [V50    ] (  8,  0.77)     int  ->  [fp+0x38]  do-not-enreg[X] addr-exposed "field V04._count (fldOffset=0x10)" P-DEP
+;  V51 tmp41        [V51    ] (  4,  0.32)     int  ->  [fp+0x3C]  do-not-enreg[X] addr-exposed "field V04._capacity (fldOffset=0x14)" P-DEP
 ;* V52 tmp42        [V52    ] (  0,  0   )    long  ->  zero-ref    "field V23.m_asTAddr (fldOffset=0x0)" P-INDEP
 ;  V53 tmp43        [V53,T06] (  3,  3   )    long  ->   x0         "field V26.m_asTAddr (fldOffset=0x0)" P-INDEP
 ;  V54 tmp44        [V54,T14] (  2,  2   )     ref  ->   x2         single-def "argument with side effect"
-;  V55 tmp45        [V55,T30] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
-;  V56 tmp46        [V56    ] (  2,  0.36)  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.RuntimeType+ListBuilder`1[System.Object]>
-;  V57 tmp47        [V57,T22] (  2,  0.36)     int  ->   x2         "argument with side effect"
-;  V58 tmp48        [V58,T21] (  2,  0.36)     ref  ->  x22         "argument with side effect"
-;* V59 tmp49        [V59,T28] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V60 tmp50        [V60,T23] (  2,  0.36)     int  ->   x4         "argument with side effect"
-;  V61 tmp51        [V61,T05] (  2,  3.64)     int  ->   x1         "argument with side effect"
-;  V62 cse0         [V62,T09] (  3,  2.18)     ref  ->  x23         "CSE - aggressive"
-;  V63 cse1         [V63,T07] (  3,  3   )     int  ->   x0         "CSE - moderate"
+;  V55 tmp45        [V55,T27] (  2,  0   )     ref  ->   x2         single-def "argument with side effect"
+;  V56 tmp46        [V56    ] (  2,  0.36)  struct (24) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.RuntimeType+ListBuilder`1[System.Object]>
+;  V57 tmp47        [V57,T21] (  2,  0.36)     int  ->   x2         "argument with side effect"
+;  V58 tmp48        [V58,T05] (  2,  3.64)     int  ->   x1         "argument with side effect"
+;  V59 cse0         [V59,T09] (  3,  2.18)     ref  ->  x23         "CSE - aggressive"
+;  V60 cse1         [V60,T07] (  3,  3   )     int  ->   x0         "CSE - moderate"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 72
 
 G_M13659_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0xA0]!
-            stp     x19, x20, [sp, #0x60]
-            stp     x21, x22, [sp, #0x70]
-            stp     x23, x24, [sp, #0x80]
-            stp     x25, x26, [sp, #0x90]
+            stp     x19, x20, [sp, #0x58]
+            stp     x21, x22, [sp, #0x68]
+            stp     x23, x24, [sp, #0x78]
+            stp     x25, x26, [sp, #0x88]
+            str     x27, [sp, #0x98]
             mov     fp, sp
-            add     x9, fp, #24
+            add     x9, fp, #16
             movi    v16.16b, #0
             stp     q16, q16, [x9]
             stp     q16, q16, [x9, #0x20]
@@ -93,7 +91,7 @@ G_M13659_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             mov     x20, x1
             ; gcrRegs +[x20]
             mov     w21, w2
-                       ;; size=56 bbWeight=1 PerfScore 11.00
+                       ;; size=60 bbWeight=1 PerfScore 12.00
 G_M13659_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             cbz     x19, G_M13659_IG40
             cbz     x20, G_M13659_IG41
@@ -121,8 +119,8 @@ G_M13659_IG05:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             cbnz    w0, G_M13659_IG09
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M13659_IG06:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
-            stp     xzr, xzr, [fp, #0x48]
-            str     xzr, [fp, #0x58]
+            stp     xzr, xzr, [fp, #0x40]
+            str     xzr, [fp, #0x50]
             cbz     x19, G_M13659_IG46
             cbz     x20, G_M13659_IG47
                        ;; size=16 bbWeight=1 PerfScore 4.00
@@ -179,7 +177,7 @@ G_M13659_IG10:        ; bbWeight=0.14, gcrefRegs=180000 {x19 x20}, byrefRegs=000
                        ;; size=28 bbWeight=0.14 PerfScore 0.89
 G_M13659_IG11:        ; bbWeight=0.05, gcrefRegs=980004 {x2 x19 x20 x23}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x2 x23]
-            add     x0, fp, #48    // [V04 loc1]
+            add     x0, fp, #40    // [V04 loc1]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
             movk    x1, #0xD1FFAB1E LSL #32
@@ -190,9 +188,9 @@ G_M13659_IG11:        ; bbWeight=0.05, gcrefRegs=980004 {x2 x19 x20 x23}, byrefR
             blr     x3
             ; gcrRegs -[x2]
             ; gcr arg pop 0
-            add     w24, w24, #1
-            ldr     w0, [fp, #0x58]    // [V46 tmp36]
-            cmp     w24, w0
+            add     w25, w25, #1
+            ldr     w0, [fp, #0x50]    // [V46 tmp36]
+            cmp     w25, w0
             blt     G_M13659_IG30
                        ;; size=52 bbWeight=0.05 PerfScore 0.52
 G_M13659_IG12:        ; bbWeight=4.55, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref
@@ -243,7 +241,7 @@ G_M13659_IG16:        ; bbWeight=0.50, gcrefRegs=980000 {x19 x20 x23}, byrefRegs
             ; gcr arg pop 0
             mov     x2, x0
             ; gcrRegs +[x2]
-            add     x0, fp, #72    // [V03 loc0]
+            add     x0, fp, #64    // [V03 loc0]
             ; gcrRegs -[x0]
             movz    x1, #0xD1FFAB1E
             movk    x1, #0xD1FFAB1E LSL #16
@@ -286,7 +284,7 @@ G_M13659_IG19:        ; bbWeight=0.91, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             sxtw    w1, w0
             mov     x0, x23
             ; gcrRegs +[x0]
-            ldr     w2, [fp, #0x58]    // [V46 tmp36]
+            ldr     w2, [fp, #0x50]    // [V46 tmp36]
             mov     x3, x20
             ; gcrRegs +[x3]
             movz    x4, #0xD1FFAB1E      // code for System.Reflection.CustomAttribute:GetCustomAttributes(System.Reflection.RuntimeModule,int,int,System.RuntimeType):System.Object[]
@@ -298,7 +296,7 @@ G_M13659_IG19:        ; bbWeight=0.91, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             ; gcr arg pop 0
             mov     x22, x0
             ; gcrRegs +[x22]
-            ldr     w0, [fp, #0x58]    // [V46 tmp36]
+            ldr     w0, [fp, #0x50]    // [V46 tmp36]
             ; gcrRegs -[x0]
             cmp     w0, #0
             bgt     G_M13659_IG50
@@ -308,13 +306,14 @@ G_M13659_IG20:        ; bbWeight=0.91, gcrefRegs=400000 {x22}, byrefRegs=0000 {}
             ; gcrRegs +[x0]
                        ;; size=4 bbWeight=0.91 PerfScore 0.45
 G_M13659_IG21:        ; bbWeight=0.91, epilog, nogc, extend
-            ldp     x25, x26, [sp, #0x90]
-            ldp     x23, x24, [sp, #0x80]
-            ldp     x21, x22, [sp, #0x70]
-            ldp     x19, x20, [sp, #0x60]
+            ldr     x27, [sp, #0x98]
+            ldp     x25, x26, [sp, #0x88]
+            ldp     x23, x24, [sp, #0x78]
+            ldp     x21, x22, [sp, #0x68]
+            ldp     x19, x20, [sp, #0x58]
             ldp     fp, lr, [sp], #0xA0
             ret     lr
-                       ;; size=24 bbWeight=0.91 PerfScore 5.45
+                       ;; size=28 bbWeight=0.91 PerfScore 7.27
 G_M13659_IG22:        ; bbWeight=0.18, gcVars=0000000000000000 {}, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, gcvars, byref, isz
             ; gcrRegs -[x0 x22] +[x19-x20 x23]
             cmp     x19, x23
@@ -324,7 +323,7 @@ G_M13659_IG23:        ; bbWeight=0.09, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
             ; gcrRegs -[x19 x23]
             mov     x0, x20
             ; gcrRegs +[x0]
-            ldr     w1, [fp, #0x40]    // [V50 tmp40]
+            ldr     w1, [fp, #0x38]    // [V50 tmp40]
             movz    x2, #0xD1FFAB1E      // code for System.Reflection.CustomAttribute:CreateAttributeArrayHelper(System.RuntimeType,int):System.Object[]
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
@@ -332,44 +331,44 @@ G_M13659_IG23:        ; bbWeight=0.09, gcrefRegs=100000 {x20}, byrefRegs=0000 {}
             blr     x2
             ; gcrRegs -[x20]
             ; gcr arg pop 0
-            mov     x25, x0
-            ; gcrRegs +[x25]
-            mov     w26, wzr
-            ldr     w1, [fp, #0x40]    // [V50 tmp40]
+            mov     x26, x0
+            ; gcrRegs +[x26]
+            mov     w27, wzr
+            ldr     w1, [fp, #0x38]    // [V50 tmp40]
             cmp     w1, #0
             ble     G_M13659_IG37
                        ;; size=48 bbWeight=0.09 PerfScore 1.14
-G_M13659_IG24:        ; bbWeight=0.14, gcrefRegs=2000000 {x25}, byrefRegs=0000 {}, byref, isz
+G_M13659_IG24:        ; bbWeight=0.14, gcrefRegs=4000000 {x26}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x0]
-            ldr     w1, [fp, #0x40]    // [V50 tmp40]
-            cmp     w26, w1
+            ldr     w1, [fp, #0x38]    // [V50 tmp40]
+            cmp     w27, w1
             bge     G_M13659_IG51
                        ;; size=12 bbWeight=0.14 PerfScore 0.48
-G_M13659_IG25:        ; bbWeight=0.14, gcrefRegs=2000000 {x25}, byrefRegs=0000 {}, byref, isz
-            ldr     x1, [fp, #0x30]    // [V48 tmp38]
+G_M13659_IG25:        ; bbWeight=0.14, gcrefRegs=4000000 {x26}, byrefRegs=0000 {}, byref, isz
+            ldr     x1, [fp, #0x28]    // [V48 tmp38]
             ; gcrRegs +[x1]
             cbnz    x1, G_M13659_IG54
-            ldr     x2, [fp, #0x38]    // [V49 tmp39]
+            ldr     x2, [fp, #0x30]    // [V49 tmp39]
             ; gcrRegs +[x2]
                        ;; size=12 bbWeight=0.14 PerfScore 0.68
-G_M13659_IG26:        ; bbWeight=0.14, gcrefRegs=2000004 {x2 x25}, byrefRegs=0000 {}, byref, isz
+G_M13659_IG26:        ; bbWeight=0.14, gcrefRegs=4000004 {x2 x26}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs -[x1]
-            sxtw    x1, w26
-            mov     x0, x25
+            sxtw    x1, w27
+            mov     x0, x26
             ; gcrRegs +[x0]
             bl      CORINFO_HELP_ARRADDR_ST
             ; gcrRegs -[x0 x2]
             ; gcr arg pop 0
-            add     w26, w26, #1
-            ldr     w0, [fp, #0x40]    // [V50 tmp40]
-            cmp     w26, w0
+            add     w27, w27, #1
+            ldr     w0, [fp, #0x38]    // [V50 tmp40]
+            cmp     w27, w0
             blt     G_M13659_IG24
                        ;; size=28 bbWeight=0.14 PerfScore 0.82
-G_M13659_IG27:        ; bbWeight=0.09, gcrefRegs=2000000 {x25}, byrefRegs=0000 {}, byref
+G_M13659_IG27:        ; bbWeight=0.09, gcrefRegs=4000000 {x26}, byrefRegs=0000 {}, byref
             b       G_M13659_IG37
                        ;; size=4 bbWeight=0.09 PerfScore 0.09
 G_M13659_IG28:        ; bbWeight=0.09, gcrefRegs=980000 {x19 x20 x23}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs -[x25] +[x19-x20 x23]
+            ; gcrRegs -[x26] +[x19-x20 x23]
             ldrsb   wzr, [x20]
             mov     x0, x20
...

+4 (+5.88%) : 69638.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)

@@ -9,44 +9,44 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] (  3,  3   )   byref  ->   x0         this single-def
-;  V01 arg1         [V01,T00] (  5,  5.00)     ref  ->   x1         class-hnd single-def <System.Threading.ReaderWriterLockSlim>
+;  V01 arg1         [V01,T00] (  5,  5.00)     ref  ->   x2         class-hnd single-def <System.Threading.ReaderWriterLockSlim>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;* V04 tmp2         [V04,T04] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V05 tmp3         [V05,T05] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04,T03] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
+;* V05 tmp3         [V05,T04] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V06 tmp4         [V06    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;* V07 tmp5         [V07,T06] (  0,  0   )     int  ->  zero-ref    "field V03._total (fldOffset=0x0)" P-INDEP
-;* V08 tmp6         [V08,T07] (  0,  0   )     int  ->  zero-ref    "field V03._start (fldOffset=0x4)" P-INDEP
+;* V07 tmp5         [V07,T05] (  0,  0   )     int  ->  zero-ref    "field V03._total (fldOffset=0x0)" P-INDEP
+;* V08 tmp6         [V08,T06] (  0,  0   )     int  ->  zero-ref    "field V03._start (fldOffset=0x4)" P-INDEP
 ;* V09 tmp7         [V09    ] (  0,  0   )     int  ->  zero-ref    "field V06._total (fldOffset=0x0)" P-INDEP
 ;* V10 tmp8         [V10    ] (  0,  0   )     int  ->  zero-ref    "field V06._start (fldOffset=0x4)" P-INDEP
 ;* V11 tmp9         [V11    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;  V12 tmp10        [V12,T01] (  3,  6.00)  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;  V13 tmp11        [V13,T03] (  2,  4.00)     ref  ->   x0         single-def "argument with side effect"
 ;
 ; Lcl frame size = 16
 
 G_M44302_IG01:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1.00 PerfScore 1.50
-G_M44302_IG02:        ; bbWeight=1.00, gcrefRegs=0002 {x1}, byrefRegs=0001 {x0}, byref
-            ; gcrRegs +[x1]
+            mov     x2, x1
+            ; gcrRegs +[x2]
+                       ;; size=12 bbWeight=1.00 PerfScore 2.00
+G_M44302_IG02:        ; bbWeight=1.00, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref
             ; byrRegs +[x0]
             mov     x14, x0
             ; byrRegs +[x14]
-            mov     x15, x1
+            mov     x15, x2
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_CHECKED_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x0 x14]
-            ldrsb   wzr, [x1]
-            mov     x0, x1
-            ; gcrRegs +[x0]
+            ldrsb   wzr, [x2]
             movn    w1, #0
-            ; gcrRegs -[x1]
             stp     w1, wzr, [fp, #0x18]   // [V12 tmp10], [V12 tmp10+0x04]
             ldr     x1, [fp, #0x18]    // [V12 tmp10]
+            mov     x0, x2
+            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            ; gcrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
@@ -58,7 +58,7 @@ G_M44302_IG03:        ; bbWeight=1.00, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=1.00 PerfScore 2.00
 
-; Total bytes of code 68, prolog size 8, PerfScore 18.00, instruction count 17, allocated bytes for code 68 (MethodHash=a56c52f1) for method Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
+; Total bytes of code 72, prolog size 8, PerfScore 18.50, instruction count 18, allocated bytes for code 72 (MethodHash=a56c52f1) for method Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -69,7 +69,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 17 (0x00011) Actual length = 68 (0x000044)
+  Function Length   : 18 (0x00012) Actual length = 72 (0x000048)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

benchmarks.run_tiered.windows.arm64.checked.mch

-44 (-26.83%) : 41014.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)

@@ -5,69 +5,52 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
-;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x60]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x58]  do-not-enreg[]
-;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x54]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x48]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
+;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x40]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
+;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x38]  do-not-enreg[]
+;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x34]  do-not-enreg[]
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x38]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-;  V08 tmp2         [V08    ] (  1,  1   )     ref  ->  [fp+0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp3         [V09    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp4         [V10    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V11 tmp5         [V11    ] (  1,  1   )     ref  ->  [fp+0x18]  do-not-enreg[] must-init "argument with side effect"
+;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;
-; Lcl frame size = 112
+; Lcl frame size = 80
 
 G_M19554_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x80]!
+            stp     fp, lr, [sp, #-0x60]!
             mov     fp, sp
-            add     x9, fp, #24
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     xzr, xzr, [x9, #0x20]
-            str     xzr, [x9, #0x30]
-            str     x0, [fp, #0x78]    // [V00 this]
-            str     x1, [fp, #0x70]    // [V01 arg1]
-            str     x2, [fp, #0x68]    // [V02 arg2]
-            str     x3, [fp, #0x60]    // [V03 arg3]
-            str     x4, [fp, #0x58]    // [V04 arg4]
-            str     w5, [fp, #0x54]    // [V05 arg5]
-                       ;; size=52 bbWeight=1 PerfScore 11.50
+            str     xzr, [fp, #0x18]   // [V07 tmp1]
+            str     xzr, [fp, #0x20]   // [V07 tmp1+0x08]
+            str     x0, [fp, #0x58]    // [V00 this]
+            str     x1, [fp, #0x50]    // [V01 arg1]
+            str     x2, [fp, #0x48]    // [V02 arg2]
+            str     x3, [fp, #0x40]    // [V03 arg3]
+            str     x4, [fp, #0x38]    // [V04 arg4]
+            str     w5, [fp, #0x34]    // [V05 arg5]
+                       ;; size=40 bbWeight=1 PerfScore 9.50
 G_M19554_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x78]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x30]    // [V08 tmp2]
-            ldr     x0, [fp, #0x70]    // [V01 arg1]
-            str     x0, [fp, #0x28]    // [V09 tmp3]
-            ldr     x0, [fp, #0x68]    // [V02 arg2]
-            str     x0, [fp, #0x20]    // [V10 tmp4]
-            ldr     x0, [fp, #0x60]    // [V03 arg3]
-            str     x0, [fp, #0x18]    // [V11 tmp5]
-            ldr     x0, [fp, #0x58]    // [V04 arg4]
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-                       ;; size=36 bbWeight=1 PerfScore 14.00
+            ldr     x5, [fp, #0x38]    // [V04 arg4]
+            ; byrRegs +[x5]
+                       ;; size=4 bbWeight=1 PerfScore 2.00
 G_M19554_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x1, x2, [x0]
-            stp     x1, x2, [fp, #0x38]
-            ldr     x1, [x0, #0x10]
-            str     x1, [fp, #0x48]
+            ldp     x1, x6, [x5]
+            stp     x1, x6, [fp, #0x18]
+            ldr     x1, [x5, #0x10]
+            str     x1, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M19554_IG04:        ; bbWeight=1, extend
-            ldr     x0, [fp, #0x30]    // [V08 tmp2]
-            ; gcrRegs +[x0]
-            ; byrRegs -[x0]
-            ldr     x1, [fp, #0x28]    // [V09 tmp3]
-            ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x20]    // [V10 tmp4]
-            ; gcrRegs +[x2]
-            ldr     x4, [fp, #0x18]    // [V11 tmp5]
-            ; gcrRegs +[x4]
-            add     x5, fp, #56    // [V07 tmp1]
-            ldr     w6, [fp, #0x54]    // [V05 arg5]
+            add     x5, fp, #24    // [V07 tmp1]
+            ; byrRegs -[x5]
+            ldr     w6, [fp, #0x34]    // [V05 arg5]
             uxtb    w6, w6
+            ldr     x1, [fp, #0x50]    // [V01 arg1]
+            ; gcrRegs +[x1]
+            ldr     x2, [fp, #0x48]    // [V02 arg2]
+            ; gcrRegs +[x2]
+            ldr     x4, [fp, #0x40]    // [V03 arg3]
+            ; gcrRegs +[x4]
+            ldr     x0, [fp, #0x58]    // [V00 this]
+            ; gcrRegs +[x0]
             mov     x3, xzr
             movz    x7, #0xD1FFAB1E      // code for <unknown method>
             movk    x7, #0xD1FFAB1E LSL #16
@@ -77,11 +60,11 @@ G_M19554_IG04:        ; bbWeight=1, extend
             ; gcrRegs -[x0-x2 x4]
                        ;; size=52 bbWeight=1 PerfScore 17.00
 G_M19554_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x80
+            ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 164, prolog size 28, PerfScore 53.50, instruction count 41, allocated bytes for code 164 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
+; Total bytes of code 120, prolog size 16, PerfScore 39.50, instruction count 30, allocated bytes for code 120 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -92,7 +75,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
+  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -100,7 +83,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    8F          save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
+    8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
     E4          end
     E4          end
 

-48 (-22.22%) : 40963.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)

@@ -5,80 +5,59 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x88]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x80]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbol>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
-;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax>
-;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x68]  do-not-enreg[]
-;  V05 arg5         [V05    ] (  1,  1   )     ref  ->  [fp+0x60]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax>
-;  V06 arg6         [V06    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
-;  V07 arg7         [V07    ] (  1,  1   )   ubyte  ->  [fp+0x54]  do-not-enreg[]
-;  V08 arg8         [V08    ] (  1,  1   )   ubyte  ->  [fp+0x90]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x60]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbol>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
+;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax>
+;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x48]  do-not-enreg[]
+;  V05 arg5         [V05    ] (  1,  1   )     ref  ->  [fp+0x40]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax>
+;  V06 arg6         [V06    ] (  1,  1   )     ref  ->  [fp+0x38]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
+;  V07 arg7         [V07    ] (  1,  1   )   ubyte  ->  [fp+0x34]  do-not-enreg[]
+;  V08 arg8         [V08    ] (  1,  1   )   ubyte  ->  [fp+0x70]  do-not-enreg[]
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10    ] (  1,  1   )  struct (24) [fp+0x38]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.SyntaxToken>
-;  V11 tmp2         [V11    ] (  1,  1   )     ref  ->  [fp+0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V12 tmp3         [V12    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V13 tmp4         [V13    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V14 tmp5         [V14    ] (  1,  1   )     int  ->  [fp+0x1C]  do-not-enreg[] "argument with side effect"
-;  V15 tmp6         [V15    ] (  1,  1   )     ref  ->  [fp+0x10]  do-not-enreg[] must-init "argument with side effect"
+;  V10 tmp1         [V10    ] (  1,  1   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.SyntaxToken>
 ;
-; Lcl frame size = 128
+; Lcl frame size = 96
 
 G_M62552_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x90]!
+            stp     fp, lr, [sp, #-0x70]!
             mov     fp, sp
-            add     x9, fp, #16
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     q16, q16, [x9, #0x20]
-            str     x0, [fp, #0x88]    // [V00 this]
-            str     x1, [fp, #0x80]    // [V01 arg1]
-            str     x2, [fp, #0x78]    // [V02 arg2]
-            str     x3, [fp, #0x70]    // [V03 arg3]
-            str     x4, [fp, #0x68]    // [V04 arg4]
-            str     x5, [fp, #0x60]    // [V05 arg5]
-            str     x6, [fp, #0x58]    // [V06 arg6]
-            str     w7, [fp, #0x54]    // [V07 arg7]
-                       ;; size=56 bbWeight=1 PerfScore 12.50
+            str     xzr, [fp, #0x18]   // [V10 tmp1]
+            str     xzr, [fp, #0x20]   // [V10 tmp1+0x08]
+            str     x0, [fp, #0x68]    // [V00 this]
+            str     x1, [fp, #0x60]    // [V01 arg1]
+            str     x2, [fp, #0x58]    // [V02 arg2]
+            str     x3, [fp, #0x50]    // [V03 arg3]
+            str     x4, [fp, #0x48]    // [V04 arg4]
+            str     x5, [fp, #0x40]    // [V05 arg5]
+            str     x6, [fp, #0x38]    // [V06 arg6]
+            str     w7, [fp, #0x34]    // [V07 arg7]
+                       ;; size=48 bbWeight=1 PerfScore 11.50
 G_M62552_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x88]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x30]    // [V11 tmp2]
-            ldr     x0, [fp, #0x80]    // [V01 arg1]
-            str     x0, [fp, #0x28]    // [V12 tmp3]
-            ldr     x0, [fp, #0x78]    // [V02 arg2]
-            str     x0, [fp, #0x20]    // [V13 tmp4]
-            ldr     w0, [fp, #0x90]    // [V08 arg8]
-            ; gcrRegs -[x0]
-            uxtb    w0, w0
-            str     w0, [fp, #0x1C]    // [V14 tmp5]
-            ldr     x0, [fp, #0x70]    // [V03 arg3]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x10]    // [V15 tmp6]
-            ldr     x0, [fp, #0x68]    // [V04 arg4]
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-                       ;; size=48 bbWeight=1 PerfScore 17.50
+            ldr     x6, [fp, #0x48]    // [V04 arg4]
+            ; byrRegs +[x6]
+                       ;; size=4 bbWeight=1 PerfScore 2.00
 G_M62552_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x1, x2, [x0]
-            stp     x1, x2, [fp, #0x38]
-            ldr     x1, [x0, #0x10]
-            str     x1, [fp, #0x48]
+            ldp     x4, x7, [x6]
+            stp     x4, x7, [fp, #0x18]
+            ldr     x4, [x6, #0x10]
+            str     x4, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M62552_IG04:        ; bbWeight=1, extend
-            ldr     x0, [fp, #0x30]    // [V11 tmp2]
-            ; gcrRegs +[x0]
-            ; byrRegs -[x0]
-            ldr     x1, [fp, #0x28]    // [V12 tmp3]
-            ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x20]    // [V13 tmp4]
-            ; gcrRegs +[x2]
-            ldr     w4, [fp, #0x1C]    // [V14 tmp5]
-            ldr     x5, [fp, #0x10]    // [V15 tmp6]
-            ; gcrRegs +[x5]
-            add     x6, fp, #56    // [V10 tmp1]
-            ldr     w7, [fp, #0x54]    // [V07 arg7]
+            add     x6, fp, #24    // [V10 tmp1]
+            ; byrRegs -[x6]
+            ldr     w7, [fp, #0x34]    // [V07 arg7]
             uxtb    w7, w7
+            ldr     w4, [fp, #0x70]    // [V08 arg8]
+            uxtb    w4, w4
+            ldr     x1, [fp, #0x60]    // [V01 arg1]
+            ; gcrRegs +[x1]
+            ldr     x2, [fp, #0x58]    // [V02 arg2]
+            ; gcrRegs +[x2]
+            ldr     x5, [fp, #0x50]    // [V03 arg3]
+            ; gcrRegs +[x5]
+            ldr     x0, [fp, #0x68]    // [V00 this]
+            ; gcrRegs +[x0]
             mov     w3, #1
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
             movk    x8, #0xD1FFAB1E LSL #16
@@ -86,33 +65,33 @@ G_M62552_IG04:        ; bbWeight=1, extend
             ldr     x8, [x8]
             blr     x8
             ; gcrRegs -[x0-x2 x5]
-            ldr     x14, [fp, #0x88]   // [V00 this]
+            ldr     x14, [fp, #0x68]   // [V00 this]
             ; gcrRegs +[x14]
             add     x14, x14, #80
             ; gcrRegs -[x14]
             ; byrRegs +[x14]
-            ldr     x15, [fp, #0x60]   // [V05 arg5]
+            ldr     x15, [fp, #0x40]   // [V05 arg5]
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x14]
-            ldr     x14, [fp, #0x88]   // [V00 this]
+            ldr     x14, [fp, #0x68]   // [V00 this]
             ; gcrRegs +[x14]
             add     x14, x14, #88
             ; gcrRegs -[x14]
             ; byrRegs +[x14]
-            ldr     x15, [fp, #0x58]   // [V06 arg6]
+            ldr     x15, [fp, #0x38]   // [V06 arg6]
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x14]
-                       ;; size=88 bbWeight=1 PerfScore 30.00
+                       ;; size=92 bbWeight=1 PerfScore 30.50
 G_M62552_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x90
+            ldp     fp, lr, [sp], #0x70
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 216, prolog size 24, PerfScore 71.00, instruction count 54, allocated bytes for code 216 (MethodHash=9edc0ba7) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)
+; Total bytes of code 168, prolog size 16, PerfScore 55.00, instruction count 42, allocated bytes for code 168 (MethodHash=9edc0ba7) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -123,7 +102,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 54 (0x00036) Actual length = 216 (0x0000d8)
+  Function Length   : 42 (0x0002a) Actual length = 168 (0x0000a8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -131,7 +110,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    91          save_fplr_x #17 (0x11); stp fp, lr, [sp, #-144]!
+    8D          save_fplr_x #13 (0x0D); stp fp, lr, [sp, #-112]!
     E4          end
     E4          end
 

-28 (-21.88%) : 7158.dasm - System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Tier0)

@@ -5,49 +5,37 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00    ] (  1,  1   )     ref  ->  [fp+0x48]  do-not-enreg[] class-hnd <System.String>
-;  V01 arg1         [V01    ] (  1,  1   )  ushort  ->  [fp+0x44]  do-not-enreg[]
-;  V02 arg2         [V02    ] (  1,  1   )     int  ->  [fp+0x40]  do-not-enreg[]
-;  V03 arg3         [V03    ] (  1,  1   )   byref  ->  [fp+0x38]  do-not-enreg[]
+;  V00 arg0         [V00    ] (  1,  1   )     ref  ->  [fp+0x38]  do-not-enreg[] class-hnd <System.String>
+;  V01 arg1         [V01    ] (  1,  1   )  ushort  ->  [fp+0x34]  do-not-enreg[]
+;  V02 arg2         [V02    ] (  1,  1   )     int  ->  [fp+0x30]  do-not-enreg[]
+;  V03 arg3         [V03    ] (  1,  1   )   byref  ->  [fp+0x28]  do-not-enreg[]
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05    ] (  1,  1   )    long  ->  [fp+0x30]  do-not-enreg[] "Cast away GC"
-;  V06 tmp2         [V06    ] (  1,  1   )    long  ->  [fp+0x28]  do-not-enreg[] "argument with side effect"
-;  V07 tmp3         [V07    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V08 tmp4         [V08    ] (  1,  1   )     int  ->  [fp+0x1C]  do-not-enreg[] "argument with side effect"
-;  V09 tmp5         [V09    ] (  1,  1   )     int  ->  [fp+0x18]  do-not-enreg[] "argument with side effect"
+;  V05 tmp1         [V05    ] (  1,  1   )    long  ->  [fp+0x20]  do-not-enreg[] "Cast away GC"
+;  V06 tmp2         [V06    ] (  1,  1   )    long  ->  [fp+0x18]  do-not-enreg[] "argument with side effect"
 ;
-; Lcl frame size = 64
+; Lcl frame size = 48
 
 G_M56677_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x50]!
+            stp     fp, lr, [sp, #-0x40]!
             mov     fp, sp
-            str     xzr, [fp, #0x20]   // [V07 tmp3]
-            str     x0, [fp, #0x48]    // [V00 arg0]
-            str     w1, [fp, #0x44]    // [V01 arg1]
-            str     w2, [fp, #0x40]    // [V02 arg2]
-            str     x3, [fp, #0x38]    // [V03 arg3]
-                       ;; size=28 bbWeight=1 PerfScore 6.50
+            str     x0, [fp, #0x38]    // [V00 arg0]
+            str     w1, [fp, #0x34]    // [V01 arg1]
+            str     w2, [fp, #0x30]    // [V02 arg2]
+            str     x3, [fp, #0x28]    // [V03 arg3]
+                       ;; size=24 bbWeight=1 PerfScore 5.50
 G_M56677_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x4, [fp, #0x48]    // [V00 arg0]
-            ; gcrRegs +[x4]
-            str     x4, [fp, #0x20]    // [V07 tmp3]
-            ldr     w4, [fp, #0x44]    // [V01 arg1]
-            ; gcrRegs -[x4]
-            uxth    w4, w4
-            str     w4, [fp, #0x1C]    // [V08 tmp4]
-            ldr     w4, [fp, #0x40]    // [V02 arg2]
-            str     w4, [fp, #0x18]    // [V09 tmp5]
-            ldr     x4, [fp, #0x38]    // [V03 arg3]
+            ldr     x4, [fp, #0x28]    // [V03 arg3]
             ; byrRegs +[x4]
-            str     x4, [fp, #0x30]    // [V05 tmp1]
-            ldr     x4, [fp, #0x30]    // [V05 tmp1]
+            str     x4, [fp, #0x20]    // [V05 tmp1]
+            ldr     x4, [fp, #0x20]    // [V05 tmp1]
             ; byrRegs -[x4]
-            str     x4, [fp, #0x28]    // [V06 tmp2]
-            ldr     x4, [fp, #0x28]    // [V06 tmp2]
-            ldr     x1, [fp, #0x20]    // [V07 tmp3]
+            str     x4, [fp, #0x18]    // [V06 tmp2]
+            ldr     x4, [fp, #0x18]    // [V06 tmp2]
+            ldr     w2, [fp, #0x34]    // [V01 arg1]
+            uxth    w2, w2
+            ldr     x1, [fp, #0x38]    // [V00 arg0]
             ; gcrRegs +[x1]
-            ldr     w2, [fp, #0x1C]    // [V08 tmp4]
-            ldr     w3, [fp, #0x18]    // [V09 tmp5]
+            ldr     w3, [fp, #0x30]    // [V02 arg2]
             movz    x0, #0xD1FFAB1E      // code for <unknown method>
             movk    x0, #0xD1FFAB1E LSL #16
             movk    x0, #0xD1FFAB1E LSL #32
@@ -57,13 +45,13 @@ G_M56677_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ldr     x5, [x5]
             blr     x5
             ; gcrRegs -[x1]
-                       ;; size=92 bbWeight=1 PerfScore 30.50
+                       ;; size=68 bbWeight=1 PerfScore 21.50
 G_M56677_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x50
+            ldp     fp, lr, [sp], #0x40
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 128, prolog size 12, PerfScore 39.00, instruction count 32, allocated bytes for code 128 (MethodHash=eeac229a) for method System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Tier0)
+; Total bytes of code 100, prolog size 8, PerfScore 29.00, instruction count 25, allocated bytes for code 100 (MethodHash=eeac229a) for method System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -74,7 +62,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 32 (0x00020) Actual length = 128 (0x000080)
+  Function Length   : 25 (0x00019) Actual length = 100 (0x000064)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -82,7 +70,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    89          save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
+    87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
     E4          end
     E4          end
 

+8 (+1.57%) : 19052.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1[ulong]:FindStartPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],byref,int,byref,byref):ubyte:this (Tier1-OSR)

@@ -9,28 +9,28 @@
 ; 0 inlinees with PGO data; 9 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T05] (  8, 52   )     ref  ->  x19         this class-hnd single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]>
+;  V00 this         [V00,T04] (  8, 52   )     ref  ->  x19         this class-hnd single-def <System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ushort]>
-;  V02 arg2         [V02,T25] (  4,  3   )   byref  ->  [fp+0xA8]  EH-live single-def tier0-frame
+;  V02 arg2         [V02,T25] (  4,  3   )   byref  ->  [fp+0xB8]  EH-live single-def tier0-frame
 ;  V03 arg3         [V03,T19] (  3, 10   )     int  ->  x21         single-def
-;  V04 arg4         [V04,T09] (  6, 32   )   byref  ->  x20         single-def
+;  V04 arg4         [V04,T08] (  6, 32   )   byref  ->  x20         single-def
 ;  V05 arg5         [V05,T22] (  3,  4   )   byref  ->  x23         single-def
-;  V06 loc0         [V06,T11] (  7, 27   )     int  ->  [fp+0x8C]  do-not-enreg[Z] EH-live tier0-frame
-;  V07 loc1         [V07,T15] (  3, 20   )   ubyte  ->  x25        
+;  V06 loc0         [V06,T13] (  6, 23   )     int  ->  [fp+0x9C]  do-not-enreg[Z] EH-live tier0-frame
+;  V07 loc1         [V07,T14] (  3, 20   )   ubyte  ->  x25        
 ;* V08 loc2         [V08    ] (  0,  0   )     int  ->  zero-ref   
 ;  V09 loc3         [V09,T28] (  3,  2   )   ubyte  ->   x0        
 ;# V10 OutArgs      [V10    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V11 tmp1         [V11,T12] (  4, 24   )     int  ->   x2         "Inline return value spill temp"
-;  V12 tmp2         [V12,T08] (  3, 36   )     int  ->   x0         "Inlining Arg"
+;  V11 tmp1         [V11,T10] (  4, 24   )     int  ->   x2         "Inline return value spill temp"
+;  V12 tmp2         [V12,T07] (  3, 36   )     int  ->   x0         "Inlining Arg"
 ;* V13 tmp3         [V13    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;  V14 tmp4         [V14,T24] (  3,  6   )     int  ->   x2         "Inline return value spill temp"
 ;  V15 tmp5         [V15,T18] (  3, 12   )     ref  ->   x1         class-hnd exact "Inlining Arg" <System.Text.RegularExpressions.Symbolic.MintermClassifier>
-;  V16 tmp6         [V16,T23] (  3,  6   )     ref  ->  x26         class-hnd "Inline stloc first use temp" <<unknown class>>
+;  V16 tmp6         [V16,T23] (  3,  6   )     ref  ->  x27         class-hnd "Inline stloc first use temp" <<unknown class>>
 ;  V17 tmp7         [V17,T16] (  4, 16   )     int  ->   x2         "Inlining Arg"
 ;  V18 tmp8         [V18,T17] (  3, 14   )   ubyte  ->  x25         "Inline return value spill temp"
-;  V19 tmp9         [V19,T10] (  4, 28   )     int  ->   x4         "Inline stloc first use temp"
-;  V20 tmp10        [V20,T21] (  3, 10   )     int  ->   x1         "Inline stloc first use temp"
-;  V21 tmp11        [V21    ] (  3, 36   )     ref  ->  [fp+0x10]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]>
+;  V19 tmp9         [V19,T09] (  4, 28   )     int  ->   x4         "Inline stloc first use temp"
+;  V20 tmp10        [V20,T21] (  3, 10   )     int  ->   x5         "Inline stloc first use temp"
+;  V21 tmp11        [V21    ] (  3, 36   )     ref  ->  [fp+0x18]  do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" <System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]>
 ;* V22 tmp12        [V22    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V23 tmp13        [V23    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inline return value spill temp" <System.Text.RegularExpressions.Symbolic.MatchingState`1[ulong]>
 ;* V24 tmp14        [V24    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
@@ -40,38 +40,39 @@
 ;  V28 tmp18        [V28,T20] (  2,  9   )     int  ->  x22         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V29 tmp19        [V29    ] (  0,  0   )   byref  ->  zero-ref    "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V30 tmp20        [V30    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
-;  V31 tmp21        [V31,T06] (  3, 48   )     ref  ->   x0         "arr expr"
-;  V32 tmp22        [V32,T07] (  3, 48   )     int  ->   x1         "index expr"
-;  V33 tmp23        [V33,T13] (  3, 24   )     ref  ->   x1         "arr expr"
-;  V34 tmp24        [V34,T00] (  3, 96   )     ref  ->   x1         "arr expr"
-;  V35 tmp25        [V35,T01] (  3, 96   )     int  ->   x0         "index expr"
+;  V31 tmp21        [V31,T05] (  3, 48   )     ref  ->   x0         "arr expr"
+;  V32 tmp22        [V32,T06] (  3, 48   )     int  ->   x1         "index expr"
+;  V33 tmp23        [V33,T11] (  3, 24   )     ref  ->   x5         "arr expr"
+;  V34 tmp24        [V34,T00] (  3, 96   )     ref  ->   x5         "arr expr"
+;  V35 tmp25        [V35,T01] (  3, 96   )     int  ->   x1         "index expr"
 ;  V36 tmp26        [V36,T03] (  2, 64   )     ref  ->   x1         "argument with side effect"
-;  V37 tmp27        [V37,T04] (  2, 64   )     ref  ->   x1         "argument with side effect"
-;  V38 PSPSym       [V38,T29] (  1,  1   )    long  ->  [fp+0x18]  do-not-enreg[V] "PSPSym"
-;  V39 cse0         [V39,T14] (  3, 24   )     int  ->   x0         "CSE - aggressive"
-;  V40 cse1         [V40,T27] (  2,  4   )     int  ->   x0         "CSE - moderate"
+;  V37 PSPSym       [V37,T29] (  1,  1   )    long  ->  [fp+0x20]  do-not-enreg[V] "PSPSym"
+;  V38 cse0         [V38,T12] (  3, 24   )     int  ->   x1         "CSE - aggressive"
+;  V39 cse1         [V39,T15] (  3, 20   )     int  ->  x26         "CSE - aggressive"
+;  V40 cse2         [V40,T27] (  2,  4   )     int  ->   x0         "CSE - moderate"
 ;
-; Lcl frame size = 16
+; Lcl frame size = 24
 
 G_M55933_IG01:        ; bbWeight=8, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x60]!
-            stp     x19, x20, [sp, #0x20]
-            stp     x21, x22, [sp, #0x30]
-            stp     x23, x24, [sp, #0x40]
-            stp     x25, x26, [sp, #0x50]
+            stp     fp, lr, [sp, #-0x70]!
+            stp     x19, x20, [sp, #0x28]
+            stp     x21, x22, [sp, #0x38]
+            stp     x23, x24, [sp, #0x48]
+            stp     x25, x26, [sp, #0x58]
+            str     x27, [sp, #0x68]
             mov     fp, sp
-            str     xzr, [fp, #0x10]   // [V21 tmp11]
-            add     xip1, sp, #208
-            str     xip1, [fp, #0x18]  // [V38 PSPSym]
-            ldr     x19, [fp, #0xC0]
+            str     xzr, [fp, #0x18]   // [V21 tmp11]
+            add     xip1, sp, #224
+            str     xip1, [fp, #0x20]  // [V37 PSPSym]
+            ldr     x19, [fp, #0xD0]
             ; gcrRegs +[x19]
-            ldr     w21, [fp, #0xA4]
-            ldp     x23, x20, [fp, #0x90]
+            ldr     w21, [fp, #0xB4]
+            ldp     x23, x20, [fp, #0xA0]
             ; byrRegs +[x20 x23]
-            ldr     x24, [fp, #0xB0]
+            ldr     x24, [fp, #0xC0]
             ; byrRegs +[x24]
-            ldr     w22, [fp, #0xB8]
-                       ;; size=56 bbWeight=8 PerfScore 152.00
+            ldr     w22, [fp, #0xC8]
+                       ;; size=60 bbWeight=8 PerfScore 160.00
 G_M55933_IG02:        ; bbWeight=8, gcVars=0000000002000000 {V02}, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, gcvars, byref, isz
             ; GC ptr vars +{V02}
             ldr     x0, [x19, #0x18]
@@ -84,19 +85,20 @@ G_M55933_IG02:        ; bbWeight=8, gcVars=0000000002000000 {V02}, gcrefRegs=800
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
             ldrb    w25, [x0, w1, UXTW #2]
-            ldr     w0, [fp, #0x8C]    // [V06 loc0]
+            ldr     w0, [fp, #0x9C]    // [V06 loc0]
             ; byrRegs -[x0]
-            sub     w0, w0, #1
+            sub     w26, w0, #1
+            sxtw    w0, w26
             cmp     w0, w22
             bhs     G_M55933_IG13
-                       ;; size=44 bbWeight=8 PerfScore 144.00
+                       ;; size=48 bbWeight=8 PerfScore 148.00
 G_M55933_IG03:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
             ldr     x1, [x19, #0x50]
             ; gcrRegs +[x1]
             ldrh    w2, [x24, w0, UXTW #2]
-            ldr     x26, [x1, #0x08]
-            ; gcrRegs +[x26]
-            ldr     w0, [x26, #0x08]
+            ldr     x27, [x1, #0x08]
+            ; gcrRegs +[x27]
+            ldr     w0, [x27, #0x08]
             cmp     w0, w2
             bhi     G_M55933_IG12
             ldr     x0, [x1, #0x10]
@@ -109,7 +111,7 @@ G_M55933_IG03:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x2
             ldr     x2, [x2]
             ldr     wzr, [x0]
             blr     x2
-            ; gcrRegs -[x0 x26]
+            ; gcrRegs -[x0 x27]
             ; gcr arg pop 0
             sxtw    w2, w0
                        ;; size=60 bbWeight=2 PerfScore 52.00
@@ -117,83 +119,80 @@ G_M55933_IG04:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x2
             tbz     w25, #2, G_M55933_IG06
                        ;; size=4 bbWeight=8 PerfScore 8.00
 G_M55933_IG05:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
-            ldr     w0, [fp, #0x8C]    // [V06 loc0]
-            str     w0, [x23]
+            ldr     w1, [fp, #0x9C]    // [V06 loc0]
+            str     w1, [x23]
                        ;; size=8 bbWeight=2 PerfScore 6.00
 G_M55933_IG06:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
-            ldr     w0, [fp, #0x8C]    // [V06 loc0]
-            cmp     w0, w21
+            ldr     w1, [fp, #0x9C]    // [V06 loc0]
+            cmp     w1, w21
             ble     G_M55933_IG16
                        ;; size=12 bbWeight=8 PerfScore 28.00
 G_M55933_IG07:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
             tbnz    w25, #1, G_M55933_IG16
-            ldr     w0, [x20, #0x08]
-            ldr     w1, [x19, #0xA4]
-            lsl     w1, w0, w1
-            orr     w4, w1, w2
-            ldr     x1, [x19, #0x20]
-            ; gcrRegs +[x1]
-            ldr     w5, [x1, #0x08]
-            cmp     w4, w5
+            ldr     w1, [x20, #0x08]
+            ldr     w5, [x19, #0xA4]
+            lsl     w5, w1, w5
+            orr     w4, w5, w2
+            ldr     x5, [x19, #0x20]
+            ; gcrRegs +[x5]
+            ldr     w0, [x5, #0x08]
+            cmp     w4, w0
             bhs     G_M55933_IG11
-            add     x1, x1, #16
-            ; gcrRegs -[x1]
-            ; byrRegs +[x1]
-            ldr     w1, [x1, w4, UXTW #2]
-            ; byrRegs -[x1]
-            cmp     w1, #0
+            add     x5, x5, #16
+            ; gcrRegs -[x5]
+            ; byrRegs +[x5]
+            ldr     w5, [x5, w4, UXTW #2]
+            ; byrRegs -[x5]
+            cmp     w5, #0
             ble     G_M55933_IG14
                        ;; size=52 bbWeight=4 PerfScore 82.00
 G_M55933_IG08:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
-            str     w1, [x20, #0x08]
+            str     w5, [x20, #0x08]
                        ;; size=4 bbWeight=2 PerfScore 2.00
 G_M55933_IG09:        ; bbWeight=8, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
             mov     w25, #1
                        ;; size=4 bbWeight=8 PerfScore 4.00
 G_M55933_IG10:        ; bbWeight=4, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
-            str     xzr, [fp, #0x10]   // [V21 tmp11]
+            str     xzr, [fp, #0x18]   // [V21 tmp11]
             cbz     w25, G_M55933_IG17
-            ldr     w0, [fp, #0x8C]    // [V06 loc0]
-            sub     w0, w0, #1
-            str     w0, [fp, #0x8C]    // [V06 loc0]
+            str     w26, [fp, #0x9C]   // [V06 loc0]
             b       G_M55933_IG02
-                       ;; size=24 bbWeight=4 PerfScore 26.00
+                       ;; size=16 bbWeight=4 PerfScore 16.00
 G_M55933_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
             ; byrRegs -[x20 x23-x24]
             bl      CORINFO_HELP_RNGCHKFAIL
             ; gcr arg pop 0
                        ;; size=4 bbWeight=0 PerfScore 0.00
-G_M55933_IG12:        ; bbWeight=2, gcrefRegs=4080000 {x19 x26}, byrefRegs=1900000 {x20 x23 x24}, byref
-            ; gcrRegs +[x19 x26]
+G_M55933_IG12:        ; bbWeight=2, gcrefRegs=8080000 {x19 x27}, byrefRegs=1900000 {x20 x23 x24}, byref
+            ; gcrRegs +[x19 x27]
             ; byrRegs +[x20 x23-x24]
-            add     x0, x26, #16
-            ; byrRegs +[x0]
-            ldr     w2, [x0, w2, UXTW #2]
+            add     x1, x27, #16
+            ; byrRegs +[x1]
+            ldr     w2, [x1, w2, UXTW #2]
             b       G_M55933_IG04
                        ;; size=12 bbWeight=2 PerfScore 9.00
 G_M55933_IG13:        ; bbWeight=2, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref
-            ; gcrRegs -[x26]
-            ; byrRegs -[x0]
+            ; gcrRegs -[x27]
+            ; byrRegs -[x1]
             movn    w2, #0
             b       G_M55933_IG04
                        ;; size=8 bbWeight=2 PerfScore 3.00
 G_M55933_IG14:        ; bbWeight=16, gcrefRegs=80000 {x19}, byrefRegs=1900000 {x20 x23 x24}, byref, isz
-            mov     x1, x19
-            ; gcrRegs +[x1]
-            ldr     x1, [x1, #0x10]
-            ldr     w5, [x1, #0x08]
-            cmp     w0, w5
+            ldr     x5, [x19, #0x10]
+            ; gcrRegs +[x5]
+            ldr     w0, [x5, #0x08]
+            cmp     w1, w0
             bhs     G_M55933_IG11
-            add     x1, x1, #16
-            ; gcrRegs -[x1]
-            ; byrRegs +[x1]
-            ldr     x1, [x1, w0, UXTW #3]
+            add     x5, x5, #16
...

+12 (+2.86%) : 15664.dasm - System.Globalization.TextInfo:ChangeCaseCommonSystem.Globalization.TextInfo+ToUpperConversion:this (Tier1)

@@ -8,10 +8,10 @@
 ; 0 inlinees with PGO data; 26 single block inlinees; 10 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  7,  4.50)     ref  ->  x19         this class-hnd single-def <System.Globalization.TextInfo>
+;  V00 this         [V00,T01] (  7,  4.50)     ref  ->  x20         this class-hnd single-def <System.Globalization.TextInfo>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ushort]>
-;* V03 loc0         [V03,T22] (  0,  0   )   ubyte  ->  zero-ref   
+;* V03 loc0         [V03,T21] (  0,  0   )   ubyte  ->  zero-ref   
 ;  V04 loc1         [V04    ] (  5,  2.50)     int  ->  [fp+0x20]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V05 loc2         [V05    ] (  0,  0   )     int  ->  zero-ref   
 ;* V06 loc3         [V06    ] (  0,  0   )    long  ->  zero-ref   
@@ -60,7 +60,7 @@
 ;* V49 tmp39        [V49    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V50 tmp40        [V50    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V51 tmp41        [V51    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;* V52 tmp42        [V52,T23] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V52 tmp42        [V52,T22] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V53 tmp43        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V54 tmp44        [V54    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V55 tmp45        [V55    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
@@ -69,13 +69,13 @@
 ;* V58 tmp48        [V58    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V59 tmp49        [V59    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V60 tmp50        [V60    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;* V61 tmp51        [V61,T24] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V61 tmp51        [V61,T23] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V62 tmp52        [V62    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V63 tmp53        [V63    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V64 tmp54        [V64    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V65 tmp55        [V65    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;  V66 tmp56        [V66,T02] (  4,  2.50)   byref  ->  x21         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V67 tmp57        [V67,T01] (  5,  3.50)     int  ->  x20         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V67 tmp57        [V67,T00] (  5,  3.50)     int  ->  x19         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;  V68 tmp58        [V68,T03] (  4,  2.50)   byref  ->  x22         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V69 tmp59        [V69,T04] (  4,  2.50)     int  ->  x23         single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V70 tmp60        [V70    ] (  0,  0   )   byref  ->  zero-ref    "field V18._reference (fldOffset=0x0)" P-INDEP
@@ -98,35 +98,34 @@
 ;* V87 tmp77        [V87    ] (  0,  0   )     int  ->  zero-ref    "field V39._length (fldOffset=0x8)" P-INDEP
 ;* V88 tmp78        [V88    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V89 tmp79        [V89    ] (  0,  0   )     int  ->  zero-ref    "field V43._length (fldOffset=0x8)" P-INDEP
-;* V90 tmp80        [V90,T16] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
-;* V91 tmp81        [V91,T25] (  0,  0   )     int  ->  zero-ref    "field V44._length (fldOffset=0x8)" P-INDEP
-;* V92 tmp82        [V92,T17] (  0,  0   )   byref  ->  zero-ref    single-def "field V45._reference (fldOffset=0x0)" P-INDEP
-;* V93 tmp83        [V93,T26] (  0,  0   )     int  ->  zero-ref    "field V45._length (fldOffset=0x8)" P-INDEP
+;* V90 tmp80        [V90,T15] (  0,  0   )   byref  ->  zero-ref    single-def "field V44._reference (fldOffset=0x0)" P-INDEP
+;* V91 tmp81        [V91,T24] (  0,  0   )     int  ->  zero-ref    "field V44._length (fldOffset=0x8)" P-INDEP
+;* V92 tmp82        [V92,T16] (  0,  0   )   byref  ->  zero-ref    single-def "field V45._reference (fldOffset=0x0)" P-INDEP
+;* V93 tmp83        [V93,T25] (  0,  0   )     int  ->  zero-ref    "field V45._length (fldOffset=0x8)" P-INDEP
 ;* V94 tmp84        [V94    ] (  0,  0   )   byref  ->  zero-ref    "field V46._reference (fldOffset=0x0)" P-INDEP
 ;* V95 tmp85        [V95    ] (  0,  0   )     int  ->  zero-ref    "field V46._length (fldOffset=0x8)" P-INDEP
-;* V96 tmp86        [V96,T18] (  0,  0   )   byref  ->  zero-ref    single-def "field V49._reference (fldOffset=0x0)" P-INDEP
+;* V96 tmp86        [V96,T17] (  0,  0   )   byref  ->  zero-ref    single-def "field V49._reference (fldOffset=0x0)" P-INDEP
 ;* V97 tmp87        [V97    ] (  0,  0   )     int  ->  zero-ref    "field V49._length (fldOffset=0x8)" P-INDEP
-;* V98 tmp88        [V98,T19] (  0,  0   )   byref  ->  zero-ref    single-def "field V53._reference (fldOffset=0x0)" P-INDEP
-;* V99 tmp89        [V99,T27] (  0,  0   )     int  ->  zero-ref    "field V53._length (fldOffset=0x8)" P-INDEP
+;* V98 tmp88        [V98,T18] (  0,  0   )   byref  ->  zero-ref    single-def "field V53._reference (fldOffset=0x0)" P-INDEP
+;* V99 tmp89        [V99,T26] (  0,  0   )     int  ->  zero-ref    "field V53._length (fldOffset=0x8)" P-INDEP
 ;* V100 tmp90       [V100    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V54._reference (fldOffset=0x0)" P-INDEP
 ;* V101 tmp91       [V101    ] (  0,  0   )     int  ->  zero-ref    "field V54._length (fldOffset=0x8)" P-INDEP
-;* V102 tmp92       [V102,T20] (  0,  0   )   byref  ->  zero-ref    single-def "field V58._reference (fldOffset=0x0)" P-INDEP
+;* V102 tmp92       [V102,T19] (  0,  0   )   byref  ->  zero-ref    single-def "field V58._reference (fldOffset=0x0)" P-INDEP
 ;* V103 tmp93       [V103    ] (  0,  0   )     int  ->  zero-ref    "field V58._length (fldOffset=0x8)" P-INDEP
-;* V104 tmp94       [V104,T21] (  0,  0   )   byref  ->  zero-ref    single-def "field V62._reference (fldOffset=0x0)" P-INDEP
-;* V105 tmp95       [V105,T28] (  0,  0   )     int  ->  zero-ref    "field V62._length (fldOffset=0x8)" P-INDEP
+;* V104 tmp94       [V104,T20] (  0,  0   )   byref  ->  zero-ref    single-def "field V62._reference (fldOffset=0x0)" P-INDEP
+;* V105 tmp95       [V105,T27] (  0,  0   )     int  ->  zero-ref    "field V62._length (fldOffset=0x8)" P-INDEP
 ;* V106 tmp96       [V106    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V64._reference (fldOffset=0x0)" P-INDEP
 ;* V107 tmp97       [V107    ] (  0,  0   )     int  ->  zero-ref    "field V64._length (fldOffset=0x8)" P-INDEP
 ;* V108 tmp98       [V108    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V65._reference (fldOffset=0x0)" P-INDEP
 ;* V109 tmp99       [V109    ] (  0,  0   )     int  ->  zero-ref    "field V65._length (fldOffset=0x8)" P-INDEP
 ;  V110 tmp100      [V110,T05] (  2,  2   )    long  ->  x21         "Cast away GC"
 ;  V111 tmp101      [V111,T06] (  2,  2   )    long  ->  x22         "Cast away GC"
-;* V112 tmp102      [V112,T15] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V113 tmp103      [V113,T07] (  2,  2   )    long  ->   x1         "argument with side effect"
-;  V114 tmp104      [V114,T08] (  2,  2   )     int  ->   x2         "argument with side effect"
-;  V115 tmp105      [V115,T09] (  2,  2   )    long  ->   x3         "argument with side effect"
-;  V116 cse0        [V116,T13] (  3,  1.50)    long  ->   x0         "CSE - moderate"
-;  V117 cse1        [V117,T14] (  3,  1.50)     int  ->   x0         "CSE - moderate"
-;  V118 cse2        [V118,T10] (  3,  1.50)     ref  ->   x1         "CSE - moderate"
+;  V112 tmp102      [V112,T07] (  2,  2   )    long  ->   x2         "argument with side effect"
+;  V113 tmp103      [V113,T08] (  2,  2   )     int  ->   x3         "argument with side effect"
+;  V114 tmp104      [V114,T09] (  2,  2   )    long  ->   x4         "argument with side effect"
+;  V115 cse0        [V115,T13] (  3,  1.50)    long  ->   x1         "CSE - moderate"
+;  V116 cse1        [V116,T14] (  3,  1.50)     int  ->   x0         "CSE - moderate"
+;  V117 cse2        [V117,T10] (  3,  1.50)     ref  ->   x1         "CSE - moderate"
 ;
 ; Lcl frame size = 24
 
@@ -137,20 +136,20 @@ G_M14148_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             str     x23, [sp, #0x48]
             mov     fp, sp
             stp     xzr, xzr, [fp, #0x10]  // [V09 loc6], [V07 loc4]
-            mov     x19, x0
-            ; gcrRegs +[x19]
+            mov     x20, x0
+            ; gcrRegs +[x20]
             mov     x21, x1
             ; byrRegs +[x21]
-            mov     w20, w2
+            mov     w19, w2
             mov     x22, x3
             ; byrRegs +[x22]
             mov     w23, w4
                        ;; size=44 bbWeight=1 PerfScore 8.00
-G_M14148_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, byref, isz
-            cbnz    w20, G_M14148_IG04
+G_M14148_IG02:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, byref, isz
+            cbnz    w19, G_M14148_IG04
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M14148_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[x19]
+            ; gcrRegs -[x20]
             ; byrRegs -[x21-x22]
             ldr     x23, [sp, #0x48]
             ldp     x21, x22, [sp, #0x38]
@@ -158,13 +157,13 @@ G_M14148_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ldp     fp, lr, [sp], #0x50
             ret     lr
                        ;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M14148_IG04:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, gcvars, byref, isz
-            ; gcrRegs +[x19]
+G_M14148_IG04:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, gcvars, byref, isz
+            ; gcrRegs +[x20]
             ; byrRegs +[x21-x22]
             str     wzr, [fp, #0x20]   // [V04 loc1]
-            ldrb    w0, [x19, #0x31]
+            ldrb    w0, [x20, #0x31]
             cbnz    w0, G_M14148_IG05
-            mov     x0, x19
+            mov     x0, x20
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E      // code for <unknown method>
             movk    x1, #0xD1FFAB1E LSL #16
@@ -173,8 +172,8 @@ G_M14148_IG04:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=800
             blr     x1
             ; gcrRegs -[x0]
                        ;; size=36 bbWeight=0.50 PerfScore 5.50
-G_M14148_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, byref, isz
-            ldrb    w0, [x19, #0x31]
+G_M14148_IG05:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, byref, isz
+            ldrb    w0, [x20, #0x31]
             cmp     w0, #2
             beq     G_M14148_IG06
             cmp     w0, #1
@@ -193,11 +192,11 @@ G_M14148_IG05:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {
             blr     x2
             ; gcrRegs -[x0]
                        ;; size=64 bbWeight=0.50 PerfScore 7.25
-G_M14148_IG06:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, byref, isz
-            ldrb    w0, [x19, #0x31]
+G_M14148_IG06:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, byref, isz
+            ldrb    w0, [x20, #0x31]
             cmp     w0, #2
             bne     G_M14148_IG08
-            cmp     w20, #0
+            cmp     w19, #0
             cset    x0, ge
             movz    x1, #0xD1FFAB1E      // code for System.Diagnostics.Debug:Assert(ubyte)
             movk    x1, #0xD1FFAB1E LSL #16
@@ -213,7 +212,7 @@ G_M14148_IG06:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {
             blr     x1
             mov     x0, x21
             ; byrRegs +[x0]
-            mov     w1, w20
+            mov     w1, w19
             mov     x2, x22
             ; byrRegs +[x2]
             mov     w3, w23
@@ -233,7 +232,7 @@ G_M14148_IG06:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x1, [x1]
             blr     x1
-            ; gcrRegs -[x19]
+            ; gcrRegs -[x20]
             ; byrRegs -[x21-x22]
                        ;; size=144 bbWeight=0.50 PerfScore 16.75
 G_M14148_IG07:        ; bbWeight=0.50, epilog, nogc, extend
@@ -243,30 +242,33 @@ G_M14148_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x50
             ret     lr
                        ;; size=20 bbWeight=0.50 PerfScore 3.00
-G_M14148_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, gcvars, byref
-            ; gcrRegs +[x19]
+G_M14148_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, gcvars, byref
+            ; gcrRegs +[x20]
             ; byrRegs +[x21-x22]
             stp     x22, x21, [fp, #0x10]  // [V09 loc6], [V07 loc4]
-            ldr     w0, [fp, #0x20]    // [V04 loc1]
-            sbfiz   x0, x0, #1, #32
-            add     x1, x21, x0
-            ldr     w2, [fp, #0x20]    // [V04 loc1]
-            sub     w2, w20, w2
-            add     x3, x22, x0
-            mov     x0, x19
-            ; gcrRegs +[x0]
+            ldr     w1, [fp, #0x20]    // [V04 loc1]
+            sbfiz   x1, x1, #1, #32
+            add     x2, x21, x1
+            ldr     w3, [fp, #0x20]    // [V04 loc1]
+            sub     w3, w19, w3
+            add     x4, x22, x1
+            mov     x1, x2
+            mov     w2, w3
+            mov     x3, x4
             ldr     w4, [fp, #0x20]    // [V04 loc1]
             sub     w4, w23, w4
+            mov     x0, x20
+            ; gcrRegs +[x0]
             mov     w5, #1
             movz    x6, #0xD1FFAB1E      // code for System.Globalization.TextInfo:ChangeCaseCore(ulong,int,ulong,int,ubyte):this
             movk    x6, #0xD1FFAB1E LSL #16
             movk    x6, #0xD1FFAB1E LSL #32
             ldr     x6, [x6]
             blr     x6
-            ; gcrRegs -[x0 x19]
+            ; gcrRegs -[x0 x20]
             ; byrRegs -[x21-x22]
             stp     xzr, xzr, [fp, #0x10]  // [V09 loc6], [V07 loc4]
-                       ;; size=68 bbWeight=0.50 PerfScore 8.75
+                       ;; size=80 bbWeight=0.50 PerfScore 9.50
 G_M14148_IG09:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x23, [sp, #0x48]
             ldp     x21, x22, [sp, #0x38]
@@ -275,7 +277,7 @@ G_M14148_IG09:        ; bbWeight=0.50, epilog, nogc, extend
             ret     lr
                        ;; size=20 bbWeight=0.50 PerfScore 3.00
 
-; Total bytes of code 420, prolog size 24, PerfScore 56.25, instruction count 105, allocated bytes for code 420 (MethodHash=53d9c8bb) for method System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):this (Tier1)
+; Total bytes of code 432, prolog size 24, PerfScore 57.00, instruction count 108, allocated bytes for code 432 (MethodHash=53d9c8bb) for method System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -286,7 +288,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 105 (0x00069) Actual length = 420 (0x0001a4)
+  Function Length   : 108 (0x0006c) Actual length = 432 (0x0001b0)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+5.88%) : 41468.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)

@@ -9,44 +9,44 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] (  3,  3   )   byref  ->   x0         this single-def
-;  V01 arg1         [V01,T00] (  5,  5   )     ref  ->   x1         class-hnd single-def <System.Threading.ReaderWriterLockSlim>
+;  V01 arg1         [V01,T00] (  5,  5   )     ref  ->   x2         class-hnd single-def <System.Threading.ReaderWriterLockSlim>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;* V04 tmp2         [V04,T04] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V05 tmp3         [V05,T05] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04,T03] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
+;* V05 tmp3         [V05,T04] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V06 tmp4         [V06    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;* V07 tmp5         [V07,T06] (  0,  0   )     int  ->  zero-ref    "field V03._total (fldOffset=0x0)" P-INDEP
-;* V08 tmp6         [V08,T07] (  0,  0   )     int  ->  zero-ref    "field V03._start (fldOffset=0x4)" P-INDEP
+;* V07 tmp5         [V07,T05] (  0,  0   )     int  ->  zero-ref    "field V03._total (fldOffset=0x0)" P-INDEP
+;* V08 tmp6         [V08,T06] (  0,  0   )     int  ->  zero-ref    "field V03._start (fldOffset=0x4)" P-INDEP
 ;* V09 tmp7         [V09    ] (  0,  0   )     int  ->  zero-ref    "field V06._total (fldOffset=0x0)" P-INDEP
 ;* V10 tmp8         [V10    ] (  0,  0   )     int  ->  zero-ref    "field V06._start (fldOffset=0x4)" P-INDEP
 ;* V11 tmp9         [V11    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;  V12 tmp10        [V12,T01] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;  V13 tmp11        [V13,T03] (  2,  4   )     ref  ->   x0         single-def "argument with side effect"
 ;
 ; Lcl frame size = 16
 
 G_M44302_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M44302_IG02:        ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0001 {x0}, byref
-            ; gcrRegs +[x1]
+            mov     x2, x1
+            ; gcrRegs +[x2]
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M44302_IG02:        ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref
             ; byrRegs +[x0]
             mov     x14, x0
             ; byrRegs +[x14]
-            mov     x15, x1
+            mov     x15, x2
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_CHECKED_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x0 x14]
-            ldrsb   wzr, [x1]
-            mov     x0, x1
-            ; gcrRegs +[x0]
+            ldrsb   wzr, [x2]
             movn    w1, #0
-            ; gcrRegs -[x1]
             stp     w1, wzr, [fp, #0x18]   // [V12 tmp10], [V12 tmp10+0x04]
             ldr     x1, [fp, #0x18]    // [V12 tmp10]
+            mov     x0, x2
+            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            ; gcrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
@@ -58,7 +58,7 @@ G_M44302_IG03:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 68, prolog size 8, PerfScore 18.00, instruction count 17, allocated bytes for code 68 (MethodHash=a56c52f1) for method Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
+; Total bytes of code 72, prolog size 8, PerfScore 18.50, instruction count 18, allocated bytes for code 72 (MethodHash=a56c52f1) for method Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -69,7 +69,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 17 (0x00011) Actual length = 68 (0x000044)
+  Function Length   : 18 (0x00012) Actual length = 72 (0x000048)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

coreclr_tests.run.windows.arm64.checked.mch

-44 (-26.83%) : 249914.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)

@@ -5,69 +5,52 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
-;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x60]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x58]  do-not-enreg[]
-;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x54]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.BoundTypeExpression>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.SyntaxNode>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x48]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol>
+;  V03 arg3         [V03    ] (  1,  1   )  struct ( 8) [fp+0x40]  do-not-enreg[S] <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
+;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x38]  do-not-enreg[]
+;  V05 arg5         [V05    ] (  1,  1   )   ubyte  ->  [fp+0x34]  do-not-enreg[]
 ;# V06 OutArgs      [V06    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x38]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-;  V08 tmp2         [V08    ] (  1,  1   )     ref  ->  [fp+0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp3         [V09    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp4         [V10    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V11 tmp5         [V11    ] (  1,  1   )     ref  ->  [fp+0x18]  do-not-enreg[] must-init "argument with side effect"
+;  V07 tmp1         [V07    ] (  1,  1   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;
-; Lcl frame size = 112
+; Lcl frame size = 80
 
 G_M19554_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x80]!
+            stp     fp, lr, [sp, #-0x60]!
             mov     fp, sp
-            add     x9, fp, #24
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     xzr, xzr, [x9, #0x20]
-            str     xzr, [x9, #0x30]
-            str     x0, [fp, #0x78]    // [V00 this]
-            str     x1, [fp, #0x70]    // [V01 arg1]
-            str     x2, [fp, #0x68]    // [V02 arg2]
-            str     x3, [fp, #0x60]    // [V03 arg3]
-            str     x4, [fp, #0x58]    // [V04 arg4]
-            str     w5, [fp, #0x54]    // [V05 arg5]
-                       ;; size=52 bbWeight=1 PerfScore 11.50
+            str     xzr, [fp, #0x18]   // [V07 tmp1]
+            str     xzr, [fp, #0x20]   // [V07 tmp1+0x08]
+            str     x0, [fp, #0x58]    // [V00 this]
+            str     x1, [fp, #0x50]    // [V01 arg1]
+            str     x2, [fp, #0x48]    // [V02 arg2]
+            str     x3, [fp, #0x40]    // [V03 arg3]
+            str     x4, [fp, #0x38]    // [V04 arg4]
+            str     w5, [fp, #0x34]    // [V05 arg5]
+                       ;; size=40 bbWeight=1 PerfScore 9.50
 G_M19554_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x78]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x30]    // [V08 tmp2]
-            ldr     x0, [fp, #0x70]    // [V01 arg1]
-            str     x0, [fp, #0x28]    // [V09 tmp3]
-            ldr     x0, [fp, #0x68]    // [V02 arg2]
-            str     x0, [fp, #0x20]    // [V10 tmp4]
-            ldr     x0, [fp, #0x60]    // [V03 arg3]
-            str     x0, [fp, #0x18]    // [V11 tmp5]
-            ldr     x0, [fp, #0x58]    // [V04 arg4]
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-                       ;; size=36 bbWeight=1 PerfScore 14.00
+            ldr     x5, [fp, #0x38]    // [V04 arg4]
+            ; byrRegs +[x5]
+                       ;; size=4 bbWeight=1 PerfScore 2.00
 G_M19554_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x1, x2, [x0]
-            stp     x1, x2, [fp, #0x38]
-            ldr     x1, [x0, #0x10]
-            str     x1, [fp, #0x48]
+            ldp     x1, x6, [x5]
+            stp     x1, x6, [fp, #0x18]
+            ldr     x1, [x5, #0x10]
+            str     x1, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M19554_IG04:        ; bbWeight=1, extend
-            ldr     x0, [fp, #0x30]    // [V08 tmp2]
-            ; gcrRegs +[x0]
-            ; byrRegs -[x0]
-            ldr     x1, [fp, #0x28]    // [V09 tmp3]
-            ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x20]    // [V10 tmp4]
-            ; gcrRegs +[x2]
-            ldr     x4, [fp, #0x18]    // [V11 tmp5]
-            ; gcrRegs +[x4]
-            add     x5, fp, #56    // [V07 tmp1]
-            ldr     w6, [fp, #0x54]    // [V05 arg5]
+            add     x5, fp, #24    // [V07 tmp1]
+            ; byrRegs -[x5]
+            ldr     w6, [fp, #0x34]    // [V05 arg5]
             uxtb    w6, w6
+            ldr     x1, [fp, #0x50]    // [V01 arg1]
+            ; gcrRegs +[x1]
+            ldr     x2, [fp, #0x48]    // [V02 arg2]
+            ; gcrRegs +[x2]
+            ldr     x4, [fp, #0x40]    // [V03 arg3]
+            ; gcrRegs +[x4]
+            ldr     x0, [fp, #0x58]    // [V00 this]
+            ; gcrRegs +[x0]
             mov     x3, xzr
             movz    x7, #0xD1FFAB1E      // code for <unknown method>
             movk    x7, #0xD1FFAB1E LSL #16
@@ -77,11 +60,11 @@ G_M19554_IG04:        ; bbWeight=1, extend
             ; gcrRegs -[x0-x2 x4]
                        ;; size=52 bbWeight=1 PerfScore 17.00
 G_M19554_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x80
+            ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 164, prolog size 28, PerfScore 53.50, instruction count 41, allocated bytes for code 164 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
+; Total bytes of code 120, prolog size 16, PerfScore 39.50, instruction count 30, allocated bytes for code 120 (MethodHash=3db3b39d) for method Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -92,7 +75,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
+  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -100,7 +83,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    8F          save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
+    8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
     E4          end
     E4          end
 

-48 (-22.22%) : 249862.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)

@@ -5,80 +5,59 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x88]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x80]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbol>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
-;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax>
-;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x68]  do-not-enreg[]
-;  V05 arg5         [V05    ] (  1,  1   )     ref  ->  [fp+0x60]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax>
-;  V06 arg6         [V06    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
-;  V07 arg7         [V07    ] (  1,  1   )   ubyte  ->  [fp+0x54]  do-not-enreg[]
-;  V08 arg8         [V08    ] (  1,  1   )   ubyte  ->  [fp+0x90]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x60]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Symbol>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
+;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax>
+;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [fp+0x48]  do-not-enreg[]
+;  V05 arg5         [V05    ] (  1,  1   )     ref  ->  [fp+0x40]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax>
+;  V06 arg6         [V06    ] (  1,  1   )     ref  ->  [fp+0x38]  do-not-enreg[] class-hnd <Microsoft.CodeAnalysis.CSharp.Binder>
+;  V07 arg7         [V07    ] (  1,  1   )   ubyte  ->  [fp+0x34]  do-not-enreg[]
+;  V08 arg8         [V08    ] (  1,  1   )   ubyte  ->  [fp+0x70]  do-not-enreg[]
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10    ] (  1,  1   )  struct (24) [fp+0x38]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.SyntaxToken>
-;  V11 tmp2         [V11    ] (  1,  1   )     ref  ->  [fp+0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V12 tmp3         [V12    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V13 tmp4         [V13    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V14 tmp5         [V14    ] (  1,  1   )     int  ->  [fp+0x1C]  do-not-enreg[] "argument with side effect"
-;  V15 tmp6         [V15    ] (  1,  1   )     ref  ->  [fp+0x10]  do-not-enreg[] must-init "argument with side effect"
+;  V10 tmp1         [V10    ] (  1,  1   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.SyntaxToken>
 ;
-; Lcl frame size = 128
+; Lcl frame size = 96
 
 G_M62552_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x90]!
+            stp     fp, lr, [sp, #-0x70]!
             mov     fp, sp
-            add     x9, fp, #16
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     q16, q16, [x9, #0x20]
-            str     x0, [fp, #0x88]    // [V00 this]
-            str     x1, [fp, #0x80]    // [V01 arg1]
-            str     x2, [fp, #0x78]    // [V02 arg2]
-            str     x3, [fp, #0x70]    // [V03 arg3]
-            str     x4, [fp, #0x68]    // [V04 arg4]
-            str     x5, [fp, #0x60]    // [V05 arg5]
-            str     x6, [fp, #0x58]    // [V06 arg6]
-            str     w7, [fp, #0x54]    // [V07 arg7]
-                       ;; size=56 bbWeight=1 PerfScore 12.50
+            str     xzr, [fp, #0x18]   // [V10 tmp1]
+            str     xzr, [fp, #0x20]   // [V10 tmp1+0x08]
+            str     x0, [fp, #0x68]    // [V00 this]
+            str     x1, [fp, #0x60]    // [V01 arg1]
+            str     x2, [fp, #0x58]    // [V02 arg2]
+            str     x3, [fp, #0x50]    // [V03 arg3]
+            str     x4, [fp, #0x48]    // [V04 arg4]
+            str     x5, [fp, #0x40]    // [V05 arg5]
+            str     x6, [fp, #0x38]    // [V06 arg6]
+            str     w7, [fp, #0x34]    // [V07 arg7]
+                       ;; size=48 bbWeight=1 PerfScore 11.50
 G_M62552_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x88]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x30]    // [V11 tmp2]
-            ldr     x0, [fp, #0x80]    // [V01 arg1]
-            str     x0, [fp, #0x28]    // [V12 tmp3]
-            ldr     x0, [fp, #0x78]    // [V02 arg2]
-            str     x0, [fp, #0x20]    // [V13 tmp4]
-            ldr     w0, [fp, #0x90]    // [V08 arg8]
-            ; gcrRegs -[x0]
-            uxtb    w0, w0
-            str     w0, [fp, #0x1C]    // [V14 tmp5]
-            ldr     x0, [fp, #0x70]    // [V03 arg3]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x10]    // [V15 tmp6]
-            ldr     x0, [fp, #0x68]    // [V04 arg4]
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-                       ;; size=48 bbWeight=1 PerfScore 17.50
+            ldr     x6, [fp, #0x48]    // [V04 arg4]
+            ; byrRegs +[x6]
+                       ;; size=4 bbWeight=1 PerfScore 2.00
 G_M62552_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x1, x2, [x0]
-            stp     x1, x2, [fp, #0x38]
-            ldr     x1, [x0, #0x10]
-            str     x1, [fp, #0x48]
+            ldp     x4, x7, [x6]
+            stp     x4, x7, [fp, #0x18]
+            ldr     x4, [x6, #0x10]
+            str     x4, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M62552_IG04:        ; bbWeight=1, extend
-            ldr     x0, [fp, #0x30]    // [V11 tmp2]
-            ; gcrRegs +[x0]
-            ; byrRegs -[x0]
-            ldr     x1, [fp, #0x28]    // [V12 tmp3]
-            ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x20]    // [V13 tmp4]
-            ; gcrRegs +[x2]
-            ldr     w4, [fp, #0x1C]    // [V14 tmp5]
-            ldr     x5, [fp, #0x10]    // [V15 tmp6]
-            ; gcrRegs +[x5]
-            add     x6, fp, #56    // [V10 tmp1]
-            ldr     w7, [fp, #0x54]    // [V07 arg7]
+            add     x6, fp, #24    // [V10 tmp1]
+            ; byrRegs -[x6]
+            ldr     w7, [fp, #0x34]    // [V07 arg7]
             uxtb    w7, w7
+            ldr     w4, [fp, #0x70]    // [V08 arg8]
+            uxtb    w4, w4
+            ldr     x1, [fp, #0x60]    // [V01 arg1]
+            ; gcrRegs +[x1]
+            ldr     x2, [fp, #0x58]    // [V02 arg2]
+            ; gcrRegs +[x2]
+            ldr     x5, [fp, #0x50]    // [V03 arg3]
+            ; gcrRegs +[x5]
+            ldr     x0, [fp, #0x68]    // [V00 this]
+            ; gcrRegs +[x0]
             mov     w3, #1
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
             movk    x8, #0xD1FFAB1E LSL #16
@@ -86,33 +65,33 @@ G_M62552_IG04:        ; bbWeight=1, extend
             ldr     x8, [x8]
             blr     x8
             ; gcrRegs -[x0-x2 x5]
-            ldr     x14, [fp, #0x88]   // [V00 this]
+            ldr     x14, [fp, #0x68]   // [V00 this]
             ; gcrRegs +[x14]
             add     x14, x14, #80
             ; gcrRegs -[x14]
             ; byrRegs +[x14]
-            ldr     x15, [fp, #0x60]   // [V05 arg5]
+            ldr     x15, [fp, #0x40]   // [V05 arg5]
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x14]
-            ldr     x14, [fp, #0x88]   // [V00 this]
+            ldr     x14, [fp, #0x68]   // [V00 this]
             ; gcrRegs +[x14]
             add     x14, x14, #88
             ; gcrRegs -[x14]
             ; byrRegs +[x14]
-            ldr     x15, [fp, #0x58]   // [V06 arg6]
+            ldr     x15, [fp, #0x38]   // [V06 arg6]
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x14]
-                       ;; size=88 bbWeight=1 PerfScore 30.00
+                       ;; size=92 bbWeight=1 PerfScore 30.50
 G_M62552_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x90
+            ldp     fp, lr, [sp], #0x70
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 216, prolog size 24, PerfScore 71.00, instruction count 54, allocated bytes for code 216 (MethodHash=9edc0ba7) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)
+; Total bytes of code 168, prolog size 16, PerfScore 55.00, instruction count 42, allocated bytes for code 168 (MethodHash=9edc0ba7) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -123,7 +102,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 54 (0x00036) Actual length = 216 (0x0000d8)
+  Function Length   : 42 (0x0002a) Actual length = 168 (0x0000a8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -131,7 +110,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    91          save_fplr_x #17 (0x11); stp fp, lr, [sp, #-144]!
+    8D          save_fplr_x #13 (0x0D); stp fp, lr, [sp, #-112]!
     E4          end
     E4          end
 

-36 (-18.75%) : 245916.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo1[System.__Canon]:Initialize(System.__Canon,Microsoft.CodeAnalysis.UseSiteInfo1[System.__Canon]):this (Tier0)

@@ -5,83 +5,66 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )   byref  ->  [fp+0x70]  do-not-enreg[] this
-;  V01 TypeCtx      [V01    ] (  1,  1   )    long  ->  [fp+0x68]  do-not-enreg[]
-;  V02 arg1         [V02    ] (  1,  1   )     ref  ->  [fp+0x60]  do-not-enreg[] class-hnd <System.__Canon>
-;  V03 arg2         [V03    ] (  1,  1   )   byref  ->  [fp+0x58]  do-not-enreg[]
+;  V00 this         [V00    ] (  1,  1   )   byref  ->  [fp+0x50]  do-not-enreg[] this
+;  V01 TypeCtx      [V01    ] (  1,  1   )    long  ->  [fp+0x48]  do-not-enreg[]
+;  V02 arg1         [V02    ] (  1,  1   )     ref  ->  [fp+0x40]  do-not-enreg[] class-hnd <System.__Canon>
+;  V03 arg2         [V03    ] (  1,  1   )   byref  ->  [fp+0x38]  do-not-enreg[]
 ;# V04 OutArgs      [V04    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05    ] (  1,  1   )  struct (24) [fp+0x40]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.UseSiteInfo`1[System.__Canon]>
-;  V06 tmp2         [V06    ] (  1,  1   )    long  ->  [fp+0x38]  do-not-enreg[] "argument with side effect"
-;  V07 tmp3         [V07    ] (  1,  1   )     ref  ->  [fp+0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V08 tmp4         [V08    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp5         [V09    ] (  1,  1   )    long  ->  [fp+0x20]  do-not-enreg[] "argument with side effect"
-;  V10 tmp6         [V10    ] (  1,  1   )     ref  ->  [fp+0x18]  do-not-enreg[] must-init "argument with side effect"
-;  V11 tmp7         [V11    ] (  1,  1   )   byref  ->  [fp+0x10]  do-not-enreg[] must-init "argument with side effect"
+;  V05 tmp1         [V05    ] (  1,  1   )  struct (24) [fp+0x20]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.UseSiteInfo`1[System.__Canon]>
+;  V06 tmp2         [V06    ] (  1,  1   )     ref  ->  [fp+0x18]  do-not-enreg[] must-init "argument with side effect"
+;  V07 tmp3         [V07    ] (  1,  1   )     ref  ->  [fp+0x10]  do-not-enreg[] must-init "argument with side effect"
 ;
-; Lcl frame size = 112
+; Lcl frame size = 80
 
 G_M24759_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x80]!
+            stp     fp, lr, [sp, #-0x60]!
             mov     fp, sp
             add     x9, fp, #16
             movi    v16.16b, #0
             stp     q16, q16, [x9]
-            stp     q16, q16, [x9, #0x20]
-            str     xzr, [x9, #0x40]
-            str     x1, [fp, #0x78]
-            str     x0, [fp, #0x70]    // [V00 this]
-            str     x1, [fp, #0x68]    // [V01 TypeCtx]
-            str     x2, [fp, #0x60]    // [V02 arg1]
-            str     x3, [fp, #0x58]    // [V03 arg2]
-                       ;; size=48 bbWeight=1 PerfScore 10.50
+            str     xzr, [x9, #0x20]
+            str     x1, [fp, #0x58]
+            str     x0, [fp, #0x50]    // [V00 this]
+            str     x1, [fp, #0x48]    // [V01 TypeCtx]
+            str     x2, [fp, #0x40]    // [V02 arg1]
+            str     x3, [fp, #0x38]    // [V03 arg2]
+                       ;; size=44 bbWeight=1 PerfScore 9.50
 G_M24759_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x70]    // [V00 this]
-            ; byrRegs +[x0]
-            str     x0, [fp, #0x10]    // [V11 tmp7]
-            ldr     x0, [fp, #0x68]    // [V01 TypeCtx]
-            ; byrRegs -[x0]
-            str     x0, [fp, #0x20]    // [V09 tmp5]
-            ldr     x0, [fp, #0x58]    // [V03 arg2]
-            ; byrRegs +[x0]
-            ldr     x0, [x0]
-            ; gcrRegs +[x0]
-            ; byrRegs -[x0]
-            str     x0, [fp, #0x18]    // [V10 tmp6]
-            ldr     x0, [fp, #0x68]    // [V01 TypeCtx]
-            ; gcrRegs -[x0]
-            str     x0, [fp, #0x38]    // [V06 tmp2]
-            ldr     x0, [fp, #0x60]    // [V02 arg1]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x30]    // [V07 tmp3]
-            ldr     x0, [fp, #0x58]    // [V03 arg2]
-            ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-                       ;; size=48 bbWeight=1 PerfScore 20.00
+            ldr     x2, [fp, #0x38]    // [V03 arg2]
+            ; byrRegs +[x2]
+            ldr     x2, [x2]
+            ; gcrRegs +[x2]
+            ; byrRegs -[x2]
+            str     x2, [fp, #0x10]    // [V07 tmp3]
+            ldr     x2, [fp, #0x38]    // [V03 arg2]
+            ; gcrRegs -[x2]
+            ; byrRegs +[x2]
+                       ;; size=16 bbWeight=1 PerfScore 8.00
 G_M24759_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x1, x2, [x0]
-            stp     x1, x2, [fp, #0x40]
-            ldr     x1, [x0, #0x10]
-            str     x1, [fp, #0x50]
+            ldp     x0, x1, [x2]
+            stp     x0, x1, [fp, #0x20]
+            ldr     x0, [x2, #0x10]
+            str     x0, [fp, #0x30]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M24759_IG04:        ; bbWeight=1, extend
-            ldr     x0, [fp, #0x38]    // [V06 tmp2]
-            ; byrRegs -[x0]
-            ldr     x1, [fp, #0x30]    // [V07 tmp3]
+            add     x2, fp, #32    // [V05 tmp1]
+            ; byrRegs -[x2]
+            ldr     x1, [fp, #0x40]    // [V02 arg1]
             ; gcrRegs +[x1]
-            add     x2, fp, #64    // [V05 tmp1]
+            ldr     x0, [fp, #0x48]    // [V01 TypeCtx]
             movz    x3, #0xD1FFAB1E      // code for <unknown method>
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs -[x1] +[x0]
-            str     x0, [fp, #0x28]    // [V08 tmp4]
-            ldr     x3, [fp, #0x28]    // [V08 tmp4]
+            str     x0, [fp, #0x18]    // [V06 tmp2]
+            ldr     x3, [fp, #0x18]    // [V06 tmp2]
             ; gcrRegs +[x3]
-            ldr     x1, [fp, #0x20]    // [V09 tmp5]
-            ldr     x2, [fp, #0x18]    // [V10 tmp6]
+            ldr     x2, [fp, #0x10]    // [V07 tmp3]
             ; gcrRegs +[x2]
-            ldr     x0, [fp, #0x10]    // [V11 tmp7]
+            ldr     x1, [fp, #0x48]    // [V01 TypeCtx]
+            ldr     x0, [fp, #0x50]    // [V00 this]
             ; gcrRegs -[x0]
             ; byrRegs +[x0]
             movz    x4, #0xD1FFAB1E      // code for <unknown method>
@@ -93,11 +76,11 @@ G_M24759_IG04:        ; bbWeight=1, extend
             ; byrRegs -[x0]
                        ;; size=72 bbWeight=1 PerfScore 24.50
 G_M24759_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x80
+            ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 192, prolog size 32, PerfScore 66.00, instruction count 48, allocated bytes for code 192 (MethodHash=6e259f48) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:Initialize(System.__Canon,Microsoft.CodeAnalysis.UseSiteInfo`1[System.__Canon]):this (Tier0)
+; Total bytes of code 156, prolog size 28, PerfScore 53.00, instruction count 39, allocated bytes for code 156 (MethodHash=6e259f48) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:Initialize(System.__Canon,Microsoft.CodeAnalysis.UseSiteInfo`1[System.__Canon]):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -108,7 +91,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 48 (0x00030) Actual length = 192 (0x0000c0)
+  Function Length   : 39 (0x00027) Actual length = 156 (0x00009c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -116,7 +99,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    8F          save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
+    8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
     E4          end
     E4          end
 

+4 (+9.09%) : 515246.dasm - (dynamicClass):ABIStress_TailCaller940(short,ubyte,ABIStress.S2P,float,double,ABIStress.S4P,ABIStress.S1P,int):int (FullOpts)

@@ -18,31 +18,30 @@
 ;* V07 arg7         [V07    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V09 tmp1         [V09    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <ABIStress.S2U>
-;* V10 tmp2         [V10,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V11 tmp3         [V11,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;  V12 tmp4         [V12,T02] (  2,  2   )   short  ->   x2         single-def "field V02.F0 (fldOffset=0x0)" P-INDEP
-;  V13 tmp5         [V13,T05] (  1,  1   )     int  ->   x3         single-def "field V05.F0 (fldOffset=0x0)" P-INDEP
-;  V14 tmp6         [V14,T06] (  1,  1   )   ubyte  ->   x4         single-def "field V06.F0 (fldOffset=0x0)" P-INDEP
-;* V15 tmp7         [V15,T09] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V09.F0 (fldOffset=0x0)" P-INDEP
-;* V16 tmp8         [V16,T10] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V09.F1 (fldOffset=0x1)" P-INDEP
+;* V10 tmp2         [V10,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V11 tmp3         [V11,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;  V12 tmp4         [V12,T02] (  2,  2   )   short  ->   x0         single-def "field V02.F0 (fldOffset=0x0)" P-INDEP
+;  V13 tmp5         [V13,T03] (  1,  1   )     int  ->   x3         single-def "field V05.F0 (fldOffset=0x0)" P-INDEP
+;  V14 tmp6         [V14,T04] (  1,  1   )   ubyte  ->   x4         single-def "field V06.F0 (fldOffset=0x0)" P-INDEP
+;* V15 tmp7         [V15,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V09.F0 (fldOffset=0x0)" P-INDEP
+;* V16 tmp8         [V16,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V09.F1 (fldOffset=0x1)" P-INDEP
 ;  V17 tmp9         [V17,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S2U>
-;  V18 tmp10        [V18,T03] (  2,  4   )     int  ->   x0         "argument with side effect"
-;  V19 tmp11        [V19,T04] (  2,  4   )     int  ->   x1         "argument with side effect"
 ;
 ; Lcl frame size = 16
 
 G_M24152_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
+            mov     w0, w2
+                       ;; size=12 bbWeight=1 PerfScore 2.00
 G_M24152_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            sxth    w0, w2
-            uxtb    w1, w1
             mov     w2, #125
             strb    w2, [fp, #0x18]    // [V17 tmp9]
             mov     w2, #152
             strb    w2, [fp, #0x19]    // [V17 tmp9+0x01]
             ldrh    w2, [fp, #0x18]    // [V17 tmp9]
+            uxtb    w1, w1
+            sxth    w0, w0
                        ;; size=28 bbWeight=1 PerfScore 6.00
 G_M24152_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x20
@@ -50,7 +49,7 @@ G_M24152_IG03:        ; bbWeight=1, epilog, nogc, extend
             ; gcr arg pop 0
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 44, prolog size 8, PerfScore 9.50, instruction count 11, allocated bytes for code 44 (MethodHash=9486a1a7) for method (dynamicClass):ABIStress_TailCaller940(short,ubyte,ABIStress.S2P,float,double,ABIStress.S4P,ABIStress.S1P,int):int (FullOpts)
+; Total bytes of code 48, prolog size 12, PerfScore 10.00, instruction count 12, allocated bytes for code 48 (MethodHash=9486a1a7) for method (dynamicClass):ABIStress_TailCaller940(short,ubyte,ABIStress.S2P,float,double,ABIStress.S4P,ABIStress.S1P,int):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -61,7 +60,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 11 (0x0000b) Actual length = 44 (0x00002c)
+  Function Length   : 12 (0x0000c) Actual length = 48 (0x000030)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+20 (+9.26%) : 486609.dasm - Microsoft.CSharp.RuntimeBinder.ComInterop.DynamicVariantExtensions:SetAsByrefVariantIndirect(byref,byref) (FullOpts)

@@ -8,30 +8,26 @@
 ; 4 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 arg0         [V00,T01] (  6,  4   )   byref  ->   x8         single-def
-;  V01 arg1         [V01,T00] (  8,  5.50)   byref  ->   x2         single-def
+;  V00 arg0         [V00,T01] (  6,  4   )   byref  ->  [fp+0x10]  single-def
+;  V01 arg1         [V01,T00] (  8,  5.50)   byref  ->   x8         single-def
 ;  V02 loc0         [V02,T03] (  4,  3   )     int  ->   x1        
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T07] (  2,  2   )     int  ->   x0         "impAppendStmt"
-;  V05 tmp2         [V05,T08] (  2,  2   )     int  ->   x0         "impAppendStmt"
-;* V06 tmp3         [V06,T17] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V07 tmp4         [V07,T19] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;* V08 tmp5         [V08,T18] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V09 tmp6         [V09,T20] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
-;  V10 tmp7         [V10,T09] (  2,  2   )    long  ->   x1         "Cast away GC"
-;  V11 tmp8         [V11,T04] (  2,  2   )   byref  ->   x8         single-def "argument with side effect"
-;  V12 tmp9         [V12,T10] (  2,  2   )    long  ->   x1         "argument with side effect"
-;  V13 tmp10        [V13,T11] (  2,  2   )    long  ->   x1         "Cast away GC"
-;  V14 tmp11        [V14,T05] (  2,  2   )   byref  ->   x8         single-def "argument with side effect"
-;  V15 tmp12        [V15,T12] (  2,  2   )     int  ->   x0         "argument with side effect"
-;  V16 tmp13        [V16,T13] (  2,  2   )    long  ->   x1         "argument with side effect"
-;* V17 tmp14        [V17    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;* V18 tmp15        [V18    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V19 tmp16        [V19,T14] (  2,  2   )    long  ->   x1         "Cast away GC"
-;  V20 tmp17        [V20,T06] (  2,  2   )   byref  ->   x8         single-def "argument with side effect"
-;  V21 tmp18        [V21,T15] (  2,  2   )     int  ->   x0         "argument with side effect"
-;  V22 tmp19        [V22,T16] (  2,  2   )    long  ->   x1         "argument with side effect"
-;  V23 cse0         [V23,T02] (  5,  3.50)     int  ->  x19         "CSE - aggressive"
+;  V04 tmp1         [V04,T04] (  2,  2   )     int  ->   x0         "impAppendStmt"
+;  V05 tmp2         [V05,T05] (  2,  2   )     int  ->   x0         "impAppendStmt"
+;* V06 tmp3         [V06,T13] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
+;* V07 tmp4         [V07,T15] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
+;* V08 tmp5         [V08,T14] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
+;* V09 tmp6         [V09,T16] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
+;  V10 tmp7         [V10,T06] (  2,  2   )    long  ->   x1         "Cast away GC"
+;  V11 tmp8         [V11,T07] (  2,  2   )    long  ->   x1         "argument with side effect"
+;  V12 tmp9         [V12,T08] (  2,  2   )    long  ->   x1         "Cast away GC"
+;  V13 tmp10        [V13,T09] (  2,  2   )     int  ->   x0         "argument with side effect"
+;  V14 tmp11        [V14,T10] (  2,  2   )    long  ->   x1         "argument with side effect"
+;* V15 tmp12        [V15    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;* V16 tmp13        [V16    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
+;  V17 tmp14        [V17,T11] (  2,  2   )    long  ->   x1         "Cast away GC"
+;  V18 tmp15        [V18,T12] (  2,  2   )    long  ->   x1         "argument with side effect"
+;  V19 cse0         [V19,T02] (  5,  3.50)     int  ->  x19         "CSE - aggressive"
 ;
 ; Lcl frame size = 8
 
@@ -39,13 +35,13 @@ G_M63773_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             stp     fp, lr, [sp, #-0x20]!
             str     x19, [sp, #0x18]
             mov     fp, sp
-            mov     x8, x0
-            ; byrRegs +[x8]
-            mov     x2, x1
+            mov     x2, x0
             ; byrRegs +[x2]
+            mov     x8, x1
+            ; byrRegs +[x8]
                        ;; size=20 bbWeight=1 PerfScore 3.50
 G_M63773_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0104 {x2 x8}, byref, isz
-            ldrh    w19, [x2]
+            ldrh    w19, [x8]
             sxtw    w1, w19
             cmp     w1, #1
             bls     G_M63773_IG04
@@ -58,7 +54,8 @@ G_M63773_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0104 {x2 x8}
             b       G_M63773_IG10
                        ;; size=20 bbWeight=0.50 PerfScore 2.00
 G_M63773_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0104 {x2 x8}, byref
-            mov     x1, x2
+            mov     x1, x8
+            mov     x8, x2
             mov     w0, #0xD1FFAB1E
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             ; byrRegs -[x2]
@@ -67,7 +64,7 @@ G_M63773_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0104 {x2 x8}
             ldr     x2, [x2]
             blr     x2
             ; byrRegs -[x8]
-                       ;; size=28 bbWeight=0.50 PerfScore 3.25
+                       ;; size=32 bbWeight=0.50 PerfScore 3.50
 G_M63773_IG05:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
@@ -75,16 +72,20 @@ G_M63773_IG05:        ; bbWeight=0.50, epilog, nogc, extend
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
 G_M63773_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0104 {x2 x8}, gcvars, byref
             ; byrRegs +[x2 x8]
+            str     x2, [fp, #0x10]    // [V00 arg0]
+            ; GC ptr vars +{V00}
             orr     w0, w19, #0xD1FFAB1E
-            ldp     x1, x2, [x2, #0x08]
+            ldp     x1, x2, [x8, #0x08]
             ; byrRegs -[x2]
+            ldr     x8, [fp, #0x10]    // [V00 arg0]
             movz    x3, #0xD1FFAB1E      // code for <unknown method>
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
+            ; GC ptr vars -{V00}
             blr     x3
             ; byrRegs -[x8]
-                       ;; size=28 bbWeight=0.50 PerfScore 5.00
+                       ;; size=36 bbWeight=0.50 PerfScore 6.50
 G_M63773_IG07:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
@@ -93,7 +94,8 @@ G_M63773_IG07:        ; bbWeight=0.50, epilog, nogc, extend
 G_M63773_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0104 {x2 x8}, gcvars, byref
             ; byrRegs +[x2 x8]
             orr     w0, w19, #0xD1FFAB1E
-            mov     x1, x2
+            mov     x1, x8
+            mov     x8, x2
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             ; byrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
@@ -101,7 +103,7 @@ G_M63773_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     x2, [x2]
             blr     x2
             ; byrRegs -[x8]
-                       ;; size=28 bbWeight=0.50 PerfScore 3.25
+                       ;; size=32 bbWeight=0.50 PerfScore 3.50
 G_M63773_IG09:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
@@ -110,8 +112,9 @@ G_M63773_IG09:        ; bbWeight=0.50, epilog, nogc, extend
 G_M63773_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0104 {x2 x8}, gcvars, byref
             ; byrRegs +[x2 x8]
             orr     w0, w19, #0xD1FFAB1E
-            add     x1, x2, #8
+            add     x1, x8, #8
             ; byrRegs +[x1]
+            mov     x8, x2
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
             ; byrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
@@ -119,14 +122,14 @@ G_M63773_IG10:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
             ldr     x2, [x2]
             blr     x2
             ; byrRegs -[x1 x8]
-                       ;; size=28 bbWeight=0.50 PerfScore 3.25
+                       ;; size=32 bbWeight=0.50 PerfScore 3.50
 G_M63773_IG11:        ; bbWeight=0.50, epilog, nogc, extend
             ldr     x19, [sp, #0x18]
             ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 216, prolog size 12, PerfScore 33.25, instruction count 54, allocated bytes for code 216 (MethodHash=802506e2) for method Microsoft.CSharp.RuntimeBinder.ComInterop.DynamicVariantExtensions:SetAsByrefVariantIndirect(byref,byref) (FullOpts)
+; Total bytes of code 236, prolog size 12, PerfScore 35.50, instruction count 59, allocated bytes for code 236 (MethodHash=802506e2) for method Microsoft.CSharp.RuntimeBinder.ComInterop.DynamicVariantExtensions:SetAsByrefVariantIndirect(byref,byref) (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -137,7 +140,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 54 (0x00036) Actual length = 216 (0x0000d8)
+  Function Length   : 59 (0x0003b) Actual length = 236 (0x0000ec)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+12 (+12.00%) : 515313.dasm - (dynamicClass):ABIStress_TailCaller978(short,ABIStress.S2P,short,ABIStress.S1P,ubyte,double,ABIStress.S8U,ubyte,ABIStress.S4P,ABIStress.S1P,long,short,double,ABIStress.S4U,ABIStress.S8P,ABIStress.S8U,ABIStress.S2P):int (FullOpts)

@@ -10,7 +10,7 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )   short  ->  zero-ref    single-def
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <ABIStress.S2P>
-;  V02 arg2         [V02,T04] (  3,  3   )   short  ->   x2         single-def
+;  V02 arg2         [V02,T01] (  3,  3   )   short  ->   x2         single-def
 ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def <ABIStress.S1P>
 ;* V04 arg4         [V04    ] (  0,  0   )   ubyte  ->  zero-ref    single-def
 ;* V05 arg5         [V05    ] (  0,  0   )  double  ->  zero-ref    single-def
@@ -18,77 +18,72 @@
 ;* V07 arg7         [V07    ] (  0,  0   )   ubyte  ->  zero-ref    single-def
 ;* V08 arg8         [V08    ] (  0,  0   )  struct ( 8) zero-ref    single-def <ABIStress.S4P>
 ;* V09 arg9         [V09    ] (  0,  0   )  struct ( 8) zero-ref    single-def <ABIStress.S1P>
-;  V10 arg10        [V10,T17] (  1,  1   )    long  ->  [fp+0x28]  single-def
+;  V10 arg10        [V10,T10] (  1,  1   )    long  ->  [fp+0x28]  single-def
 ;* V11 arg11        [V11    ] (  0,  0   )   short  ->  zero-ref    single-def
 ;* V12 arg12        [V12    ] (  0,  0   )  double  ->  zero-ref    single-def
-;  V13 arg13        [V13,T18] (  1,  1   )  struct ( 8) [fp+0x38]  do-not-enreg[S] single-def <ABIStress.S4U>
+;  V13 arg13        [V13,T11] (  1,  1   )  struct ( 8) [fp+0x38]  do-not-enreg[S] single-def <ABIStress.S4U>
 ;* V14 arg14        [V14    ] (  0,  0   )  struct ( 8) zero-ref    single-def <ABIStress.S8P>
-;  V15 arg15        [V15,T19] (  1,  1   )  struct ( 8) [fp+0x48]  do-not-enreg[S] single-def <ABIStress.S8U>
+;  V15 arg15        [V15,T12] (  1,  1   )  struct ( 8) [fp+0x48]  do-not-enreg[S] single-def <ABIStress.S8U>
 ;* V16 arg16        [V16    ] (  0,  0   )  struct ( 8) zero-ref    single-def <ABIStress.S2P>
 ;# V17 OutArgs      [V17    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V18 tmp1         [V18    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <ABIStress.S2U>
-;* V19 tmp2         [V19,T20] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V20 tmp3         [V20,T21] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;  V21 tmp4         [V21,T15] (  1,  1   )   short  ->   x1         single-def "field V01.F0 (fldOffset=0x0)" P-INDEP
-;  V22 tmp5         [V22,T05] (  2,  2   )   ubyte  ->   x3         single-def "field V03.F0 (fldOffset=0x0)" P-INDEP
-;  V23 tmp6         [V23,T06] (  2,  2   )     int  ->   x7         single-def "field V08.F0 (fldOffset=0x0)" P-INDEP
-;  V24 tmp7         [V24,T22] (  1,  1   )   ubyte  ->  [fp+0x20]  single-def "field V09.F0 (fldOffset=0x0)" P-INDEP
-;  V25 tmp8         [V25,T23] (  1,  1   )    long  ->  [fp+0x40]  single-def "field V14.F0 (fldOffset=0x0)" P-INDEP
+;* V19 tmp2         [V19,T13] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V20 tmp3         [V20,T14] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;  V21 tmp4         [V21,T08] (  1,  1   )   short  ->   x1         single-def "field V01.F0 (fldOffset=0x0)" P-INDEP
+;  V22 tmp5         [V22,T03] (  2,  2   )   ubyte  ->   x4         single-def "field V03.F0 (fldOffset=0x0)" P-INDEP
+;  V23 tmp6         [V23,T02] (  3,  3   )     int  ->   x7         single-def "field V08.F0 (fldOffset=0x0)" P-INDEP
+;  V24 tmp7         [V24,T15] (  1,  1   )   ubyte  ->  [fp+0x20]  single-def "field V09.F0 (fldOffset=0x0)" P-INDEP
+;  V25 tmp8         [V25,T09] (  2,  2   )    long  ->   x3         single-def "field V14.F0 (fldOffset=0x0)" P-INDEP
 ;* V26 tmp9         [V26    ] (  0,  0   )   short  ->  zero-ref    single-def "field V16.F0 (fldOffset=0x0)" P-INDEP
-;* V27 tmp10        [V27,T24] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V18.F0 (fldOffset=0x0)" P-INDEP
-;* V28 tmp11        [V28,T25] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V18.F1 (fldOffset=0x1)" P-INDEP
+;* V27 tmp10        [V27,T16] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V18.F0 (fldOffset=0x0)" P-INDEP
+;* V28 tmp11        [V28,T17] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V18.F1 (fldOffset=0x1)" P-INDEP
 ;  V29 tmp12        [V29,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S2U>
-;  V30 tmp13        [V30,T07] (  2,  4   )    long  ->   x0         "argument with side effect"
-;  V31 tmp14        [V31,T08] (  2,  4   )     int  ->   x6         "argument with side effect"
-;  V32 tmp15        [V32,T09] (  2,  4   )    long  ->   x1         "argument with side effect"
-;* V33 tmp16        [V33,T16] (  0,  0   )     int  ->  zero-ref    "argument with side effect"
-;  V34 tmp17        [V34,T10] (  2,  4   )     int  ->   x4         "argument with side effect"
-;  V35 tmp18        [V35,T01] (  3,  6   )     int  ->   x5         "argument with side effect"
-;  V36 tmp19        [V36,T02] (  3,  6   )     int  ->   x6         "argument with side effect"
-;  V37 tmp20        [V37,T11] (  2,  4   )     int  ->   x7         "argument with side effect"
-;  V38 tmp21        [V38,T12] (  2,  4   )    long  ->   x8         "argument with side effect"
-;  V39 tmp22        [V39,T03] (  3,  6   )    long  ->   x9         "argument with side effect"
-;  V40 tmp23        [V40,T13] (  2,  4   )     int  ->  x10         "argument with side effect"
-;  V41 cse0         [V41,T14] (  2,  2   )     int  ->   x5         "CSE - aggressive"
+;  V30 cse0         [V30,T07] (  3,  3   )     int  ->   x5         "CSE - aggressive"
+;  V31 rat0         [V31,T04] (  2,  4   )     int  ->   x0         "Fast tail call lowering is creating a new local variable"
+;  V32 rat1         [V32,T05] (  2,  4   )    long  ->   x8         "Fast tail call lowering is creating a new local variable"
+;  V33 rat2         [V33,T06] (  2,  4   )  struct ( 8) [fp+0x10]  do-not-enreg[S] "Fast tail call lowering is creating a new local variable" <ABIStress.S4U>
 ;
 ; Lcl frame size = 16
 
 G_M16374_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
+            mov     w4, w3
+            ldr     x3, [fp, #0x40]    // [V25 tmp8]
+                       ;; size=16 bbWeight=1 PerfScore 4.00
 G_M16374_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            ldr     x0, [fp, #0x28]    // [V10 arg10]
-            sxtw    w6, w7
-            ldr     x1, [fp, #0x40]    // [V25 tmp8]
-            ldr     w5, [fp, #0x38]    // [V13 arg13]
-            sxtw    w4, w3
-            ldrb    w7, [fp, #0x20]    // [V24 tmp7]
-            ldr     x8, [fp, #0x48]    // [V15 arg15]
-            mov     x9, x1
-            sxth    w10, w2
+            nop     
+                       ;; size=4 bbWeight=1 PerfScore 0.50
+G_M16374_IG03:        ; bbWeight=1, nogc, extend
+            ldrb    w0, [fp, #0x20]    // [V24 tmp7]
+            ldr     x8, [fp, #0x28]    // [V10 arg10]
+            ldr     w1, [fp, #0x38]    // [V13 arg13]
+            str     w1, [fp, #0x10]    // [V33 rat2]
+            ldr     x1, [fp, #0x48]    // [V15 arg15]
+            stp     x1, x3, [fp, #0x20]    // [V09 arg9], [V09 arg9+0x08]
+            sxth    w1, w2
+            str     w1, [fp, #0x30]    // [V09 arg9+0x10]
             mov     w1, #219
             strb    w1, [fp, #0x18]    // [V29 tmp12]
             mov     w1, #102
             strb    w1, [fp, #0x19]    // [V29 tmp12+0x01]
-            mov     w1, w6
-            mov     x2, x9
+            ldrh    w1, [fp, #0x18]    // [V29 tmp12]
+            str     w1, [fp, #0x38]    // [V09 arg9+0x18]
+            mov     w1, w7
+            mov     x2, x3
+            ldr     w5, [fp, #0x10]    // [V33 rat2]
             mov     w3, w5
-            nop     
-                       ;; size=68 bbWeight=1 PerfScore 17.00
-G_M16374_IG03:        ; bbWeight=1, nogc, extend
-            stp     x8, x9, [fp, #0x20]    // [V09 arg9], [V09 arg9+0x08]
-            str     w10, [fp, #0x30]   // [V09 arg9+0x10]
-            ldrh    w8, [fp, #0x18]    // [V29 tmp12]
-            str     w8, [fp, #0x38]    // [V09 arg9+0x18]
-                       ;; size=16 bbWeight=1 PerfScore 5.00
+            mov     w6, w7
+            mov     w7, w0
+            mov     x0, x8
+                       ;; size=84 bbWeight=1 PerfScore 22.50
 G_M16374_IG04:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x20
             b       <unknown method>
             ; gcr arg pop 0
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 100, prolog size 8, PerfScore 25.50, instruction count 25, allocated bytes for code 100 (MethodHash=347cc009) for method (dynamicClass):ABIStress_TailCaller978(short,ABIStress.S2P,short,ABIStress.S1P,ubyte,double,ABIStress.S8U,ubyte,ABIStress.S4P,ABIStress.S1P,long,short,double,ABIStress.S4U,ABIStress.S8P,ABIStress.S8U,ABIStress.S2P):int (FullOpts)
+; Total bytes of code 112, prolog size 16, PerfScore 29.00, instruction count 28, allocated bytes for code 112 (MethodHash=347cc009) for method (dynamicClass):ABIStress_TailCaller978(short,ABIStress.S2P,short,ABIStress.S1P,ubyte,double,ABIStress.S8U,ubyte,ABIStress.S4P,ABIStress.S1P,long,short,double,ABIStress.S4U,ABIStress.S8P,ABIStress.S8U,ABIStress.S2P):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -99,7 +94,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 25 (0x00019) Actual length = 100 (0x000064)
+  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries.crossgen2.windows.arm64.checked.mch

-12 (-21.43%) : 82094.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)

@@ -11,38 +11,34 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Nullable`1[System.DateTime]>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
-;  V04 tmp2         [V04,T03] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
-;* V05 tmp3         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp4         [V06,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
-;  V07 tmp5         [V07,T01] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V08 tmp6         [V08,T00] (  4,  8   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.Nullable`1[System.DateTime]>
+;  V03 tmp1         [V03,T01] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
+;  V04 tmp2         [V04,T02] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
+;* V05 tmp3         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
+;  V07 tmp5         [V07,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M46195_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M46195_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            strb    w0, [fp, #0x18]    // [V08 tmp6]
-            str     x1, [fp, #0x20]    // [V08 tmp6+0x08]
-            strb    wzr, [fp, #0x28]   // [V07 tmp5]
-            strb    wzr, [fp, #0x29]   // [V07 tmp5+0x01]
-            ldrh    w2, [fp, #0x28]    // [V07 tmp5]
-            ldp     x0, x1, [fp, #0x18]    // [V08 tmp6], [V08 tmp6+0x08]
+            strb    wzr, [fp, #0x18]   // [V07 tmp5]
+            strb    wzr, [fp, #0x19]   // [V07 tmp5+0x01]
+            ldrh    w2, [fp, #0x18]    // [V07 tmp5]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x3, [x11]
             blr     x3
             ; gcrRegs +[x0]
-                       ;; size=40 bbWeight=1 PerfScore 14.00
+                       ;; size=28 bbWeight=1 PerfScore 9.00
 G_M46195_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x30
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 56, prolog size 8, PerfScore 17.50, instruction count 14, allocated bytes for code 56 (MethodHash=8d094b8c) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)
+; Total bytes of code 44, prolog size 8, PerfScore 12.50, instruction count 11, allocated bytes for code 44 (MethodHash=8d094b8c) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +49,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 14 (0x0000e) Actual length = 56 (0x000038)
+  Function Length   : 11 (0x0000b) Actual length = 44 (0x00002c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -61,7 +57,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

-12 (-21.43%) : 82119.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)

@@ -11,38 +11,34 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Nullable`1[ulong]>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
-;  V04 tmp2         [V04,T03] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
-;* V05 tmp3         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp4         [V06,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
-;  V07 tmp5         [V07,T01] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V08 tmp6         [V08,T00] (  4,  8   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.Nullable`1[ulong]>
+;  V03 tmp1         [V03,T01] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
+;  V04 tmp2         [V04,T02] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
+;* V05 tmp3         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
+;  V07 tmp5         [V07,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M16550_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M16550_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            strb    w0, [fp, #0x18]    // [V08 tmp6]
-            str     x1, [fp, #0x20]    // [V08 tmp6+0x08]
-            strb    wzr, [fp, #0x28]   // [V07 tmp5]
-            strb    wzr, [fp, #0x29]   // [V07 tmp5+0x01]
-            ldrh    w2, [fp, #0x28]    // [V07 tmp5]
-            ldp     x0, x1, [fp, #0x18]    // [V08 tmp6], [V08 tmp6+0x08]
+            strb    wzr, [fp, #0x18]   // [V07 tmp5]
+            strb    wzr, [fp, #0x19]   // [V07 tmp5+0x01]
+            ldrh    w2, [fp, #0x18]    // [V07 tmp5]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x3, [x11]
             blr     x3
             ; gcrRegs +[x0]
-                       ;; size=40 bbWeight=1 PerfScore 14.00
+                       ;; size=28 bbWeight=1 PerfScore 9.00
 G_M16550_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x30
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 56, prolog size 8, PerfScore 17.50, instruction count 14, allocated bytes for code 56 (MethodHash=b260bf59) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)
+; Total bytes of code 44, prolog size 8, PerfScore 12.50, instruction count 11, allocated bytes for code 44 (MethodHash=b260bf59) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +49,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 14 (0x0000e) Actual length = 56 (0x000038)
+  Function Length   : 11 (0x0000b) Actual length = 44 (0x00002c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -61,7 +57,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

-12 (-21.43%) : 82108.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[long]):System.Text.Json.Nodes.JsonNode (FullOpts)

@@ -11,38 +11,34 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Nullable`1[long]>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
-;  V04 tmp2         [V04,T03] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
-;* V05 tmp3         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp4         [V06,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
-;  V07 tmp5         [V07,T01] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V08 tmp6         [V08,T00] (  4,  8   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.Nullable`1[long]>
+;  V03 tmp1         [V03,T01] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
+;  V04 tmp2         [V04,T02] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
+;* V05 tmp3         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
+;  V07 tmp5         [V07,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M61747_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M61747_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            strb    w0, [fp, #0x18]    // [V08 tmp6]
-            str     x1, [fp, #0x20]    // [V08 tmp6+0x08]
-            strb    wzr, [fp, #0x28]   // [V07 tmp5]
-            strb    wzr, [fp, #0x29]   // [V07 tmp5+0x01]
-            ldrh    w2, [fp, #0x28]    // [V07 tmp5]
-            ldp     x0, x1, [fp, #0x18]    // [V08 tmp6], [V08 tmp6+0x08]
+            strb    wzr, [fp, #0x18]   // [V07 tmp5]
+            strb    wzr, [fp, #0x19]   // [V07 tmp5+0x01]
+            ldrh    w2, [fp, #0x18]    // [V07 tmp5]
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x3, [x11]
             blr     x3
             ; gcrRegs +[x0]
-                       ;; size=40 bbWeight=1 PerfScore 14.00
+                       ;; size=28 bbWeight=1 PerfScore 9.00
 G_M61747_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x30
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 56, prolog size 8, PerfScore 17.50, instruction count 14, allocated bytes for code 56 (MethodHash=5fc80ecc) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[long]):System.Text.Json.Nodes.JsonNode (FullOpts)
+; Total bytes of code 44, prolog size 8, PerfScore 12.50, instruction count 11, allocated bytes for code 44 (MethodHash=5fc80ecc) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[long]):System.Text.Json.Nodes.JsonNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +49,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 14 (0x0000e) Actual length = 56 (0x000038)
+  Function Length   : 11 (0x0000b) Actual length = 44 (0x00002c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -61,7 +57,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

+20 (+6.02%) : 76318.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)

@@ -9,8 +9,8 @@
 ; 0 inlinees with PGO data; 11 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
-;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression>
+;  V00 this         [V00,T01] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
+;  V01 arg1         [V01,T00] ( 12, 12   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V03 loc1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (24) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -23,7 +23,7 @@
 ;* V11 tmp7         [V11    ] (  0,  0   )  struct (24) zero-ref    "impAppendStmt" <Microsoft.CodeAnalysis.BitVector>
 ;* V12 tmp8         [V12    ] (  0,  0   )  struct ( 8) zero-ref    single-def "Inline return value spill temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;  V13 tmp9         [V13    ] (  4,  6   )  struct ( 8) [fp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V14 tmp10        [V14,T03] (  2,  4   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V14 tmp10        [V14,T02] (  2,  4   )     ref  ->   x1         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V15 tmp11        [V15    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V02.array (fldOffset=0x0)" P-INDEP
 ;* V16 tmp12        [V16    ] (  0,  0   )     ref  ->  zero-ref    "field V05.array (fldOffset=0x0)" P-INDEP
 ;* V17 tmp13        [V17    ] (  0,  0   )     ref  ->  zero-ref    "field V07.array (fldOffset=0x0)" P-INDEP
@@ -32,16 +32,14 @@
 ;* V20 tmp16        [V20    ] (  0,  0   )     ref  ->  zero-ref    "field V11._bits (fldOffset=0x0)" P-INDEP
 ;* V21 tmp17        [V21    ] (  0,  0   )    long  ->  zero-ref    "field V11._bits0 (fldOffset=0x8)" P-INDEP
 ;* V22 tmp18        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V11._capacity (fldOffset=0x10)" P-INDEP
-;  V23 tmp19        [V23,T10] (  3,  2   )     ref  ->   x2         single-def "field V12.array (fldOffset=0x0)" P-INDEP
+;  V23 tmp19        [V23,T08] (  3,  2   )     ref  ->   x2         single-def "field V12.array (fldOffset=0x0)" P-INDEP
 ;  V24 tmp20        [V24    ] (  4,  4   )     ref  ->  [fp+0x30]  do-not-enreg[X] addr-exposed "field V13.array (fldOffset=0x0)" P-DEP
 ;  V25 tmp21        [V25    ] (  2,  4   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
-;  V26 tmp22        [V26,T00] (  9, 18   )     ref  ->  x19         single-def "argument with side effect"
-;  V27 tmp23        [V27,T04] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V28 tmp24        [V28,T05] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
-;  V29 tmp25        [V29,T06] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V30 tmp26        [V30,T07] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
-;  V31 tmp27        [V31,T09] (  2,  4   )     int  ->   x5         "argument with side effect"
-;  V32 tmp28        [V32,T08] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
+;  V26 tmp22        [V26,T03] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
+;  V27 tmp23        [V27,T04] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
+;  V28 tmp24        [V28,T05] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
+;  V29 tmp25        [V29,T07] (  2,  4   )     int  ->   x6         "argument with side effect"
+;  V30 tmp26        [V30,T06] (  2,  4   )     ref  ->   x7         single-def "argument with side effect"
 ;
 ; Lcl frame size = 64
 
@@ -100,14 +98,9 @@ G_M12801_IG04:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
                        ;; size=40 bbWeight=0.50 PerfScore 6.00
 G_M12801_IG05:        ; bbWeight=1, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x0]
-            ldr     x0, [x19, #0x18]
-            ; gcrRegs +[x0]
-            ldrsb   wzr, [x20]
-            adrp    x1, [HIGH RELOC #0xD1FFAB1E]      // const ptr
-            add     x1, x1, [LOW RELOC #0xD1FFAB1E]
-            ldr     x1, [x1]
-            ldr     x1, [x19, x1]
+            ldr     x1, [x19, #0x18]
             ; gcrRegs +[x1]
+            ldrsb   wzr, [x20]
             adrp    x3, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x3, x3, [LOW RELOC #0xD1FFAB1E]
             ldr     x3, [x3]
@@ -121,44 +114,56 @@ G_M12801_IG05:        ; bbWeight=1, gcrefRegs=180004 {x2 x19 x20}, byrefRegs=000
             adrp    x5, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x5, x5, [LOW RELOC #0xD1FFAB1E]
             ldr     x5, [x5]
-            ldrb    w5, [x19, x5]
+            ldr     x5, [x19, x5]
+            ; gcrRegs +[x5]
             adrp    x6, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x6, x6, [LOW RELOC #0xD1FFAB1E]
             ldr     x6, [x6]
-            ldr     x6, [x19, x6]
-            ; gcrRegs +[x6]
+            ldrb    w6, [x19, x6]
             adrp    x7, [HIGH RELOC #0xD1FFAB1E]      // const ptr
             add     x7, x7, [LOW RELOC #0xD1FFAB1E]
             ldr     x7, [x7]
-            add     x7, x19, x7
-            ; byrRegs +[x7]
-                       ;; size=104 bbWeight=1 PerfScore 45.50
-G_M12801_IG06:        ; bbWeight=1, nogc, extend
-            ldp     x8, x11, [x7]
-            stp     x8, x11, [fp, #0x18]
-            ldr     x8, [x7, #0x10]
-            str     x8, [fp, #0x28]
-                       ;; size=16 bbWeight=1 PerfScore 9.00
-G_M12801_IG07:        ; bbWeight=1, extend
-            adrp    x7, [HIGH RELOC #0xD1FFAB1E]      // const ptr
-            ; byrRegs -[x7]
-            add     x7, x7, [LOW RELOC #0xD1FFAB1E]
-            ldr     x7, [x7]
             ldr     x7, [x19, x7]
             ; gcrRegs +[x7]
-            str     x7, [sp]   // [V04 OutArgs]
-            mov     x7, xzr
-            str     x7, [sp, #0x08]    // [V04 OutArgs+0x08]
-            str     x0, [sp, #0x10]    // [V04 OutArgs+0x10]
-            mov     x0, x19
+            adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
+            add     x0, x0, [LOW RELOC #0xD1FFAB1E]
+            ldr     x0, [x0]
+            add     x0, x19, x0
+            ; byrRegs +[x0]
+                       ;; size=104 bbWeight=1 PerfScore 45.50
+G_M12801_IG06:        ; bbWeight=1, nogc, extend
+            ldp     x8, x11, [x0]
+            stp     x8, x11, [fp, #0x18]
+            ldr     x8, [x0, #0x10]
+            str     x8, [fp, #0x28]
+                       ;; size=16 bbWeight=1 PerfScore 9.00
+G_M12801_IG07:        ; bbWeight=1, extend
+            adrp    x0, [HIGH RELOC #0xD1FFAB1E]      // const ptr
+            ; byrRegs -[x0]
+            add     x0, x0, [LOW RELOC #0xD1FFAB1E]
+            ldr     x0, [x0]
+            ldr     x0, [x19, x0]
+            ; gcrRegs +[x0]
+            str     x0, [sp]   // [V04 OutArgs]
+            mov     x0, xzr
+            str     x0, [sp, #0x08]    // [V04 OutArgs+0x08]
+            str     x1, [sp, #0x10]    // [V04 OutArgs+0x10]
+            mov     x1, x3
+            mov     x3, x4
+            mov     x4, x5
+            mov     w5, w6
+            ; gcrRegs -[x5]
+            mov     x6, x7
+            ; gcrRegs +[x6]
             add     x7, fp, #24    // [V25 tmp21]
             ; gcrRegs -[x7]
+            mov     x0, x19
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x8, [x11]
             blr     x8
             ; gcrRegs -[x1-x4 x6 x19-x20]
-                       ;; size=56 bbWeight=1 PerfScore 16.50
+                       ;; size=76 bbWeight=1 PerfScore 19.00
 G_M12801_IG08:        ; bbWeight=1, epilog, nogc, extend
             ldp     x19, x20, [sp, #0x50]
             ldp     fp, lr, [sp, #0x18]
@@ -166,7 +171,7 @@ G_M12801_IG08:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=16 bbWeight=1 PerfScore 3.50
 
-; Total bytes of code 332, prolog size 28, PerfScore 107.50, instruction count 83, allocated bytes for code 332 (MethodHash=9e98cdfe) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
+; Total bytes of code 352, prolog size 28, PerfScore 110.00, instruction count 88, allocated bytes for code 352 (MethodHash=9e98cdfe) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -177,7 +182,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 83 (0x00053) Actual length = 332 (0x00014c)
+  Function Length   : 88 (0x00058) Actual length = 352 (0x000160)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+7.14%) : 100689.dasm - Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable1[int]):this (FullOpts)

@@ -8,7 +8,7 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel>
+;  V00 this         [V00,T01] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel>
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.SyntaxNode>
 ;* V02 arg2         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd single-def <Microsoft.CodeAnalysis.ISymbol>
 ;  V03 arg3         [V03,T04] (  3,  3   )   ubyte  ->   x3         single-def
@@ -17,33 +17,30 @@
 ;* V06 arg6         [V06    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Nullable`1[int]>
 ;* V07 loc0         [V07    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[int]>
 ;# V08 OutArgs      [V08    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V09 tmp1         [V09,T05] (  2,  2   )     ref  ->   x5         single-def "field V05._source (fldOffset=0x0)" P-INDEP
-;* V10 tmp2         [V10,T11] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V07.hasValue (fldOffset=0x0)" P-INDEP
-;* V11 tmp3         [V11,T12] (  0,  0   )     int  ->  zero-ref    single-def "field V07.value (fldOffset=0x4)" P-INDEP
-;  V12 tmp4         [V12,T01] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
-;* V13 tmp5         [V13,T10] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V14 tmp6         [V14,T06] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V15 tmp7         [V15,T09] (  2,  4   )     int  ->   x2         "argument with side effect"
-;  V16 tmp8         [V16,T07] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V17 tmp9         [V17,T08] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
+;  V09 tmp1         [V09,T05] (  2,  2   )     ref  ->  x11         single-def "field V05._source (fldOffset=0x0)" P-INDEP
+;* V10 tmp2         [V10,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V07.hasValue (fldOffset=0x0)" P-INDEP
+;* V11 tmp3         [V11,T07] (  0,  0   )     int  ->  zero-ref    single-def "field V07.value (fldOffset=0x4)" P-INDEP
+;  V12 tmp4         [V12,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
 ;
 ; Lcl frame size = 16
 
 G_M26014_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M26014_IG02:        ; bbWeight=1, gcrefRegs=0033 {x0 x1 x4 x5}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x0-x1 x4-x5]
-            uxtb    w2, w3
-            mov     x3, x4
-            ; gcrRegs +[x3]
-            mov     x4, x5
+            mov     x11, x5
+            ; gcrRegs +[x11]
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M26014_IG02:        ; bbWeight=1, gcrefRegs=0813 {x0 x1 x4 x11}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[x0-x1 x4]
             strb    wzr, [fp, #0x18]   // [V12 tmp4]
             str     wzr, [fp, #0x1C]   // [V12 tmp4+0x04]
             ldr     x5, [fp, #0x18]    // [V12 tmp4]
-            ; gcrRegs -[x5]
+            uxtb    w2, w3
+            mov     x3, x4
+            ; gcrRegs +[x3]
+            mov     x4, x11
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
+            ; gcrRegs -[x11]
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     x6, [x11]
             blr     x6
@@ -54,7 +51,7 @@ G_M26014_IG03:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 56, prolog size 8, PerfScore 14.00, instruction count 14, allocated bytes for code 56 (MethodHash=5e2a9a61) for method Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable`1[int]):this (FullOpts)
+; Total bytes of code 60, prolog size 8, PerfScore 14.50, instruction count 15, allocated bytes for code 60 (MethodHash=5e2a9a61) for method Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable`1[int]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -65,7 +62,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 14 (0x0000e) Actual length = 56 (0x000038)
+  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+7.69%) : 132450.dasm - System.Speech.Internal.SrgsCompiler.Tag:Serialize(System.Speech.Internal.StreamMarshaler):this (FullOpts)

@@ -9,25 +9,26 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  3,  3   )     ref  ->   x0         this class-hnd single-def <System.Speech.Internal.SrgsCompiler.Tag>
-;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x1         class-hnd single-def <System.Speech.Internal.StreamMarshaler>
+;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->  x11         class-hnd single-def <System.Speech.Internal.StreamMarshaler>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03    ] (  2,  4   )  struct (32) [fp+0x10]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Speech.Internal.SrgsCompiler.CfgSemanticTag>
-;  V04 tmp2         [V04,T02] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
 ;
 ; Lcl frame size = 32
 
 G_M39810_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x30]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M39810_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x0-x1]
+            mov     x11, x1
+            ; gcrRegs +[x11]
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M39810_IG02:        ; bbWeight=1, gcrefRegs=0801 {x0 x11}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[x0]
             ldp     q16, q17, [x0, #0x10]
             stp     q16, q17, [fp, #0x10]
-            mov     x0, x1
             add     x1, fp, #16    // [V03 tmp1]
-            ; gcrRegs -[x1]
+            mov     x0, x11
             adrp    x11, [HIGH RELOC #0xD1FFAB1E]      // function address
+            ; gcrRegs -[x11]
             add     x11, x11, [LOW RELOC #0xD1FFAB1E]
             ldr     wzr, [x0]
             ldr     x2, [x11]
@@ -39,7 +40,7 @@ G_M39810_IG03:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 52, prolog size 8, PerfScore 16.50, instruction count 13, allocated bytes for code 52 (MethodHash=a018647d) for method System.Speech.Internal.SrgsCompiler.Tag:Serialize(System.Speech.Internal.StreamMarshaler):this (FullOpts)
+; Total bytes of code 56, prolog size 8, PerfScore 17.00, instruction count 14, allocated bytes for code 56 (MethodHash=a018647d) for method System.Speech.Internal.SrgsCompiler.Tag:Serialize(System.Speech.Internal.StreamMarshaler):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -50,7 +51,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 13 (0x0000d) Actual length = 52 (0x000034)
+  Function Length   : 14 (0x0000e) Actual length = 56 (0x000038)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

libraries.pmi.windows.arm64.checked.mch

-32 (-20.00%) : 55905.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)

@@ -8,7 +8,7 @@
 ; 0 inlinees with PGO data; 13 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
+;  V00 this         [V00,T00] ( 15, 15   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (48) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "impAppendStmt" <Microsoft.CodeAnalysis.CSharp.BoundExpression>
@@ -22,7 +22,7 @@
 ;* V11 tmp9         [V11    ] (  0,  0   )  struct (24) zero-ref    "impAppendStmt" <Microsoft.CodeAnalysis.BitVector>
 ;* V12 tmp10        [V12    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V13 tmp11        [V13    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
-;  V14 tmp12        [V14,T02] (  2,  2   )     ref  ->   x1         single-def "field V01.array (fldOffset=0x0)" P-INDEP
+;  V14 tmp12        [V14,T01] (  2,  2   )     ref  ->   x3         single-def "field V01.array (fldOffset=0x0)" P-INDEP
 ;* V15 tmp13        [V15    ] (  0,  0   )     ref  ->  zero-ref    "field V05.array (fldOffset=0x0)" P-INDEP
 ;* V16 tmp14        [V16    ] (  0,  0   )     ref  ->  zero-ref    "field V06.array (fldOffset=0x0)" P-INDEP
 ;* V17 tmp15        [V17    ] (  0,  0   )     ref  ->  zero-ref    "field V10.array (fldOffset=0x0)" P-INDEP
@@ -31,16 +31,14 @@
 ;* V20 tmp18        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V11._capacity (fldOffset=0x10)" P-INDEP
 ;* V21 tmp19        [V21    ] (  0,  0   )     ref  ->  zero-ref    "field V13.array (fldOffset=0x0)" P-INDEP
 ;  V22 tmp20        [V22    ] (  2,  4   )  struct (24) [fp+0x18]  do-not-enreg[XS] addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
-;  V23 tmp21        [V23,T00] ( 13, 26   )     ref  ->   x2         single-def "argument with side effect"
-;  V24 tmp22        [V24,T03] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
+;  V23 tmp21        [V23,T02] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
+;  V24 tmp22        [V24,T03] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
 ;  V25 tmp23        [V25,T04] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
 ;  V26 tmp24        [V26,T05] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
-;  V27 tmp25        [V27,T06] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
-;  V28 tmp26        [V28,T07] (  2,  4   )     ref  ->   x7         single-def "argument with side effect"
+;  V27 tmp25        [V27,T07] (  2,  4   )     int  ->   x6         "argument with side effect"
+;  V28 tmp26        [V28,T08] (  2,  4   )     int  ->   x7         "argument with side effect"
 ;  V29 tmp27        [V29,T09] (  2,  4   )     int  ->   x8         "argument with side effect"
-;  V30 tmp28        [V30,T10] (  2,  4   )     int  ->   x9         "argument with side effect"
-;  V31 tmp29        [V31,T11] (  2,  4   )     int  ->  x10         "argument with side effect"
-;  V32 tmp30        [V32,T08] (  2,  4   )     ref  ->  x11         single-def "argument with side effect"
+;  V30 tmp28        [V30,T06] (  2,  4   )     ref  ->   x9         single-def "argument with side effect"
 ;
 ; Lcl frame size = 80
 
@@ -48,49 +46,37 @@ G_M12648_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             sub     sp, sp, #96
             stp     fp, lr, [sp, #0x30]
             add     fp, sp, #48
-                       ;; size=12 bbWeight=1 PerfScore 2.00
-G_M12648_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref
-            ; gcrRegs +[x0-x1]
-            mov     x2, x0
-            ; gcrRegs +[x2]
-            ldp     x3, x4, [x2, #0x20]
-            ; gcrRegs +[x3-x4]
-            mov     x5, x1
-            ; gcrRegs +[x5]
-            ldp     x6, x7, [x2, #0x40]
-            ; gcrRegs +[x6-x7]
-            ldrb    w8, [x2, #0x30]
-            ldrb    w9, [x2, #0x31]
-            ldrb    w10, [x2, #0x32]
-            ldr     x11, [x2, #0x50]
-            ; gcrRegs +[x11]
-                       ;; size=32 bbWeight=1 PerfScore 21.00
+            mov     x3, x1
+            ; gcrRegs +[x3]
+                       ;; size=16 bbWeight=1 PerfScore 2.50
+G_M12648_IG02:        ; bbWeight=1, gcrefRegs=0009 {x0 x3}, byrefRegs=0000 {}, byref
+            ; gcrRegs +[x0]
+            ldp     x1, x2, [x0, #0x20]
+            ; gcrRegs +[x1-x2]
+            ldp     x4, x5, [x0, #0x40]
+            ; gcrRegs +[x4-x5]
+            ldrb    w6, [x0, #0x30]
+            ldrb    w7, [x0, #0x31]
+            ldrb    w8, [x0, #0x32]
+            ldr     x9, [x0, #0x50]
+            ; gcrRegs +[x9]
+                       ;; size=24 bbWeight=1 PerfScore 20.00
 G_M12648_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x1, x13, [x2, #0x58]
-            ; gcrRegs -[x1]
-            stp     x1, x13, [fp, #0x18]
-            ldr     x1, [x2, #0x68]
-            str     x1, [fp, #0x28]
+            ldp     x10, x11, [x0, #0x58]
+            stp     x10, x11, [fp, #0x18]
+            ldr     x10, [x0, #0x68]
+            str     x10, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M12648_IG04:        ; bbWeight=1, extend
-            ldrb    w1, [x2, #0x33]
-            str     w1, [sp, #0x18]    // [V02 OutArgs+0x18]
-            ldr     x1, [x2, #0x70]
-            ; gcrRegs +[x1]
-            str     x1, [sp, #0x20]    // [V02 OutArgs+0x20]
-            ldr     x1, [x2, #0x18]
-            str     x1, [sp, #0x28]    // [V02 OutArgs+0x28]
-            mov     x1, x3
-            mov     x2, x4
-            mov     x3, x5
-            mov     x4, x6
-            mov     x5, x7
-            mov     w6, w8
-            ; gcrRegs -[x6]
-            mov     w7, w9
-            ; gcrRegs -[x7]
-            str     w10, [sp]  // [V02 OutArgs]
-            str     x11, [sp, #0x08]   // [V02 OutArgs+0x08]
+            ldrb    w10, [x0, #0x33]
+            str     w10, [sp, #0x18]   // [V02 OutArgs+0x18]
+            ldr     x10, [x0, #0x70]
+            ; gcrRegs +[x10]
+            str     x10, [sp, #0x20]   // [V02 OutArgs+0x20]
+            ldr     x10, [x0, #0x18]
+            str     x10, [sp, #0x28]   // [V02 OutArgs+0x28]
+            str     w8, [sp]   // [V02 OutArgs]
+            str     x9, [sp, #0x08]    // [V02 OutArgs+0x08]
             add     x8, fp, #24    // [V22 tmp20]
             str     x8, [sp, #0x10]    // [V02 OutArgs+0x10]
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
@@ -98,15 +84,15 @@ G_M12648_IG04:        ; bbWeight=1, extend
             movk    x8, #0xD1FFAB1E LSL #32
             ldr     x8, [x8]
             blr     x8
-            ; gcrRegs -[x1-x5 x11]
-                       ;; size=88 bbWeight=1 PerfScore 24.50
+            ; gcrRegs -[x1-x5 x9-x10]
+                       ;; size=60 bbWeight=1 PerfScore 21.00
 G_M12648_IG05:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp, #0x30]
             add     sp, sp, #96
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 2.50
 
-; Total bytes of code 160, prolog size 12, PerfScore 59.00, instruction count 40, allocated bytes for code 160 (MethodHash=b8d0ce97) for method Microsoft.CodeAnalysis.CSharp.BoundCall:Update(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
+; Total bytes of code 128, prolog size 12, PerfScore 55.00, instruction count 32, allocated bytes for code 128 (MethodHash=b8d0ce97) for method Microsoft.CodeAnalysis.CSharp.BoundCall:Update(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -117,7 +103,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 40 (0x00028) Actual length = 160 (0x0000a0)
+  Function Length   : 32 (0x00020) Actual length = 128 (0x000080)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-20.00%) : 92646.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)

@@ -10,39 +10,35 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Nullable`1[System.DateTime]>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
-;  V04 tmp2         [V04,T03] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
-;* V05 tmp3         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp4         [V06,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
-;  V07 tmp5         [V07,T01] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V08 tmp6         [V08,T00] (  4,  8   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.Nullable`1[System.DateTime]>
+;  V03 tmp1         [V03,T01] (  2,  2   )   ubyte  ->   x0         single-def "field V00.hasValue (fldOffset=0x0)" P-INDEP
+;  V04 tmp2         [V04,T02] (  2,  2   )    long  ->   x1         single-def "field V00.value (fldOffset=0x8)" P-INDEP
+;* V05 tmp3         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
+;  V07 tmp5         [V07,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M46195_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M46195_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            strb    w0, [fp, #0x18]    // [V08 tmp6]
-            str     x1, [fp, #0x20]    // [V08 tmp6+0x08]
-            strb    wzr, [fp, #0x28]   // [V07 tmp5]
-            strb    wzr, [fp, #0x29]   // [V07 tmp5+0x01]
-            ldp     x0, x1, [fp, #0x18]    // [V08 tmp6], [V08 tmp6+0x08]
-            ldrh    w2, [fp, #0x28]    // [V07 tmp5]
+            strb    wzr, [fp, #0x18]   // [V07 tmp5]
+            strb    wzr, [fp, #0x19]   // [V07 tmp5+0x01]
+            ldrh    w2, [fp, #0x18]    // [V07 tmp5]
             movz    x3, #0xD1FFAB1E      // code for System.Text.Json.Nodes.JsonValue:Create(System.Nullable`1[System.DateTime],System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonValue
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs +[x0]
-                       ;; size=44 bbWeight=1 PerfScore 14.50
+                       ;; size=32 bbWeight=1 PerfScore 9.50
 G_M46195_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x30
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 60, prolog size 8, PerfScore 18.00, instruction count 15, allocated bytes for code 60 (MethodHash=8d094b8c) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 13.00, instruction count 12, allocated bytes for code 48 (MethodHash=8d094b8c) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +49,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
+  Function Length   : 12 (0x0000c) Actual length = 48 (0x000030)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -61,7 +57,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

-12 (-20.00%) : 92647.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.DateTimeOffset):System.Text.Json.Nodes.JsonNode (FullOpts)

@@ -10,39 +10,35 @@
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.DateTimeOffset>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03,T02] (  2,  2   )   short  ->   x0         single-def "field V00._offsetMinutes (fldOffset=0x0)" P-INDEP
-;  V04 tmp2         [V04,T03] (  2,  2   )    long  ->   x1         single-def "field V00._dateTime (fldOffset=0x8)" P-INDEP
-;* V05 tmp3         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp4         [V06,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
-;  V07 tmp5         [V07,T01] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V08 tmp6         [V08,T00] (  4,  8   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg "argument with side effect" <System.DateTimeOffset>
+;  V03 tmp1         [V03,T01] (  2,  2   )   short  ->   x0         single-def "field V00._offsetMinutes (fldOffset=0x0)" P-INDEP
+;  V04 tmp2         [V04,T02] (  2,  2   )    long  ->   x1         single-def "field V00._dateTime (fldOffset=0x8)" P-INDEP
+;* V05 tmp3         [V05,T03] (  0,  0   )   ubyte  ->  zero-ref    "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V01.value (fldOffset=0x1)" P-INDEP
+;  V07 tmp5         [V07,T00] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M31891_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M31891_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            strh    w0, [fp, #0x18]    // [V08 tmp6]
-            str     x1, [fp, #0x20]    // [V08 tmp6+0x08]
-            strb    wzr, [fp, #0x28]   // [V07 tmp5]
-            strb    wzr, [fp, #0x29]   // [V07 tmp5+0x01]
-            ldp     x0, x1, [fp, #0x18]    // [V08 tmp6], [V08 tmp6+0x08]
-            ldrh    w2, [fp, #0x28]    // [V07 tmp5]
+            strb    wzr, [fp, #0x18]   // [V07 tmp5]
+            strb    wzr, [fp, #0x19]   // [V07 tmp5+0x01]
+            ldrh    w2, [fp, #0x18]    // [V07 tmp5]
             movz    x3, #0xD1FFAB1E      // code for System.Text.Json.Nodes.JsonValue:Create(System.DateTimeOffset,System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonValue
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs +[x0]
-                       ;; size=44 bbWeight=1 PerfScore 14.50
+                       ;; size=32 bbWeight=1 PerfScore 9.50
 G_M31891_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x30
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 60, prolog size 8, PerfScore 18.00, instruction count 15, allocated bytes for code 60 (MethodHash=d63e836c) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.DateTimeOffset):System.Text.Json.Nodes.JsonNode (FullOpts)
+; Total bytes of code 48, prolog size 8, PerfScore 13.00, instruction count 12, allocated bytes for code 48 (MethodHash=d63e836c) for method System.Text.Json.Nodes.JsonNode:op_Implicit(System.DateTimeOffset):System.Text.Json.Nodes.JsonNode (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +49,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
+  Function Length   : 12 (0x0000c) Actual length = 48 (0x000030)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -61,7 +57,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

+4 (+6.67%) : 164405.dasm - Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (FullOpts)

@@ -8,29 +8,30 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Microsoft.Cci.MetadataWriter>
-;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.Cci.ITypeDefinition>
+;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.Cci.ITypeDefinition>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03    ] (  2,  4   )  struct (48) [fp+0x10]  do-not-enreg[XS] addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.Emit.EmitContext>
-;  V04 tmp2         [V04,T02] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
 ;
 ; Lcl frame size = 48
 
 G_M23091_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M23091_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, nogc
-            ; gcrRegs +[x0-x1]
+            mov     x2, x1
+            ; gcrRegs +[x2]
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M23091_IG02:        ; bbWeight=1, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref, nogc
+            ; gcrRegs +[x0]
             ldp     q16, q17, [x0, #0xD0]
             stp     q16, q17, [fp, #0x10]
             ldr     q16, [x0, #0xF0]
             str     q16, [fp, #0x30]
                        ;; size=16 bbWeight=1 PerfScore 8.00
 G_M23091_IG03:        ; bbWeight=1, extend
-            mov     x0, x1
             add     x1, fp, #16    // [V03 tmp1]
-            ; gcrRegs -[x1]
+            mov     x0, x2
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            ; gcrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
@@ -42,7 +43,7 @@ G_M23091_IG04:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 60, prolog size 8, PerfScore 18.00, instruction count 15, allocated bytes for code 60 (MethodHash=af30a5cc) for method Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (FullOpts)
+; Total bytes of code 64, prolog size 8, PerfScore 18.50, instruction count 16, allocated bytes for code 64 (MethodHash=af30a5cc) for method Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +54,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
+  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+6.67%) : 128912.dasm - Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (FullOpts)

@@ -8,29 +8,30 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Microsoft.Cci.MetadataWriter>
-;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.Cci.ITypeDefinition>
+;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.Cci.ITypeDefinition>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03    ] (  2,  4   )  struct (48) [fp+0x10]  do-not-enreg[XS] addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.Emit.EmitContext>
-;  V04 tmp2         [V04,T02] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
 ;
 ; Lcl frame size = 48
 
 G_M23091_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M23091_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, nogc
-            ; gcrRegs +[x0-x1]
+            mov     x2, x1
+            ; gcrRegs +[x2]
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M23091_IG02:        ; bbWeight=1, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref, nogc
+            ; gcrRegs +[x0]
             ldp     q16, q17, [x0, #0xD0]
             stp     q16, q17, [fp, #0x10]
             ldr     q16, [x0, #0xF0]
             str     q16, [fp, #0x30]
                        ;; size=16 bbWeight=1 PerfScore 8.00
 G_M23091_IG03:        ; bbWeight=1, extend
-            mov     x0, x1
             add     x1, fp, #16    // [V03 tmp1]
-            ; gcrRegs -[x1]
+            mov     x0, x2
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            ; gcrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
@@ -42,7 +43,7 @@ G_M23091_IG04:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 60, prolog size 8, PerfScore 18.00, instruction count 15, allocated bytes for code 60 (MethodHash=af30a5cc) for method Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (FullOpts)
+; Total bytes of code 64, prolog size 8, PerfScore 18.50, instruction count 16, allocated bytes for code 64 (MethodHash=af30a5cc) for method Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +54,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
+  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+6.90%) : 86441.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:g_visitArgumentsAndUpdateCall|101(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)

@@ -8,9 +8,9 @@
 ; 0 inlinees with PGO data; 15 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
-;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
-;  V02 arg2         [V02,T03] (  3,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+;  V00 this         [V00,T01] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
+;  V01 arg1         [V01,T00] ( 15, 15   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
+;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (48) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -27,7 +27,7 @@
 ;* V16 tmp11        [V16    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
 ;* V17 tmp12        [V17    ] (  0,  0   )  struct ( 8) zero-ref    single-def "Inline return value spill temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V18 tmp13        [V18    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V19 tmp14        [V19,T04] (  2,  4   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V19 tmp14        [V19,T03] (  2,  4   )     ref  ->   x2         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V20 tmp15        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V03.array (fldOffset=0x0)" P-INDEP
 ;* V21 tmp16        [V21    ] (  0,  0   )     ref  ->  zero-ref    "field V06.array (fldOffset=0x0)" P-INDEP
 ;* V22 tmp17        [V22    ] (  0,  0   )     ref  ->  zero-ref    "field V08.array (fldOffset=0x0)" P-INDEP
@@ -37,30 +37,27 @@
 ;* V26 tmp21        [V26    ] (  0,  0   )    long  ->  zero-ref    "field V14._bits0 (fldOffset=0x8)" P-INDEP
 ;* V27 tmp22        [V27    ] (  0,  0   )     int  ->  zero-ref    "field V14._capacity (fldOffset=0x10)" P-INDEP
 ;* V28 tmp23        [V28    ] (  0,  0   )     ref  ->  zero-ref    "field V16.array (fldOffset=0x0)" P-INDEP
-;  V29 tmp24        [V29,T15] (  3,  2   )     ref  ->  x22         single-def "field V17.array (fldOffset=0x0)" P-INDEP
-;  V30 tmp25        [V30,T14] (  3,  2.50)     ref  ->   x2         single-def "field V18.array (fldOffset=0x0)" P-INDEP
-;  V31 tmp26        [V31    ] (  2,  4   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
-;  V32 tmp27        [V32,T00] ( 12, 24   )     ref  ->  x19         single-def "argument with side effect"
-;  V33 tmp28        [V33,T05] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V34 tmp29        [V34,T06] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
-;  V35 tmp30        [V35,T07] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V36 tmp31        [V36,T08] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
-;  V37 tmp32        [V37,T09] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
-;  V38 tmp33        [V38,T11] (  2,  4   )     int  ->   x6         "argument with side effect"
-;  V39 tmp34        [V39,T12] (  2,  4   )     int  ->   x7         "argument with side effect"
-;  V40 tmp35        [V40,T13] (  2,  4   )     int  ->   x8         "argument with side effect"
-;  V41 tmp36        [V41,T10] (  2,  4   )     ref  ->   x9         single-def "argument with side effect"
+;  V29 tmp24        [V29,T12] (  3,  2   )     ref  ->   x3         single-def "field V17.array (fldOffset=0x0)" P-INDEP
+;  V30 tmp25        [V30,T11] (  3,  2.50)     ref  ->   x2         single-def "field V18.array (fldOffset=0x0)" P-INDEP
+;  V31 tmp26        [V31    ] (  2,  4   )  struct (24) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
+;  V32 tmp27        [V32,T04] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
+;  V33 tmp28        [V33,T05] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
+;  V34 tmp29        [V34,T06] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
+;  V35 tmp30        [V35,T08] (  2,  4   )     int  ->   x7         "argument with side effect"
+;  V36 tmp31        [V36,T09] (  2,  4   )     int  ->   x0         "argument with side effect"
+;  V37 tmp32        [V37,T10] (  2,  4   )     int  ->   x1         "argument with side effect"
+;  V38 tmp33        [V38,T07] (  2,  4   )     ref  ->   x8         single-def "argument with side effect"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 72
 
 G_M26558_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            sub     sp, sp, #128
+            sub     sp, sp, #112
             stp     fp, lr, [sp, #0x30]
-            stp     x19, x20, [sp, #0x60]
-            stp     x21, x22, [sp, #0x70]
+            stp     x19, x20, [sp, #0x58]
+            str     x21, [sp, #0x68]
             add     fp, sp, #48
-            stp     xzr, xzr, [fp, #0x18]  // [V31 tmp26], [V31 tmp26+0x08]
-            str     xzr, [fp, #0x28]   // [V31 tmp26+0x10]
+            stp     xzr, xzr, [fp, #0x10]  // [V31 tmp26], [V31 tmp26+0x08]
+            str     xzr, [fp, #0x20]   // [V31 tmp26+0x10]
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     x19, x1
@@ -75,12 +72,12 @@ G_M26558_IG02:        ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=00
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M26558_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
-            mov     x22, xzr
-            ; gcrRegs +[x22]
+            mov     x3, xzr
+            ; gcrRegs +[x3]
             b       G_M26558_IG05
                        ;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M26558_IG04:        ; bbWeight=0.50, gcrefRegs=380004 {x2 x19 x20 x21}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x22] +[x2]
+            ; gcrRegs -[x3] +[x2]
             mov     x0, x20
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -92,73 +89,79 @@ G_M26558_IG04:        ; bbWeight=0.50, gcrefRegs=380004 {x2 x19 x20 x21}, byrefR
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs -[x2]
-            mov     x22, x0
-            ; gcrRegs +[x22]
-                       ;; size=40 bbWeight=0.50 PerfScore 4.00
-G_M26558_IG05:        ; bbWeight=1, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            ldr     x0, [x19, #0x18]
-            ; gcrRegs +[x0]
-            ldrsb   wzr, [x20]
-            mov     x1, x21
-            ; gcrRegs +[x1]
-            ldr     x2, [x19, #0x28]
-            ; gcrRegs +[x2]
-            mov     x3, x22
+            mov     x3, x0
             ; gcrRegs +[x3]
-            ldp     x4, x5, [x19, #0x40]
-            ; gcrRegs +[x4-x5]
-            ldrb    w6, [x19, #0x30]
-            ldrb    w7, [x19, #0x31]
-            ldrb    w8, [x19, #0x32]
-            ldr     x9, [x19, #0x50]
-            ; gcrRegs +[x9]
-                       ;; size=40 bbWeight=1 PerfScore 26.00
+                       ;; size=40 bbWeight=0.50 PerfScore 4.00
+G_M26558_IG05:        ; bbWeight=1, gcrefRegs=380008 {x3 x19 x20 x21}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0]
+            ldr     x2, [x19, #0x18]
+            ; gcrRegs +[x2]
+            ldrsb   wzr, [x20]
+            ldr     x4, [x19, #0x28]
+            ; gcrRegs +[x4]
+            ldp     x5, x6, [x19, #0x40]
+            ; gcrRegs +[x5-x6]
+            ldrb    w7, [x19, #0x30]
+            ldrb    w0, [x19, #0x31]
+            ldrb    w1, [x19, #0x32]
+            ldr     x8, [x19, #0x50]
+            ; gcrRegs +[x8]
+                       ;; size=32 bbWeight=1 PerfScore 25.00
 G_M26558_IG06:        ; bbWeight=1, nogc, extend
-            ldp     x10, x11, [x19, #0x58]
-            stp     x10, x11, [fp, #0x18]
-            ldr     x10, [x19, #0x68]
-            str     x10, [fp, #0x28]
+            ldp     x9, x10, [x19, #0x58]
+            stp     x9, x10, [fp, #0x10]
+            ldr     x9, [x19, #0x68]
+            str     x9, [fp, #0x20]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M26558_IG07:        ; bbWeight=1, extend
-            ldrb    w10, [x19, #0x33]
-            str     w10, [sp, #0x18]   // [V05 OutArgs+0x18]
-            ldr     x10, [x19, #0x70]
-            ; gcrRegs +[x10]
-            str     x10, [sp, #0x20]   // [V05 OutArgs+0x20]
-            str     x0, [sp, #0x28]    // [V05 OutArgs+0x28]
+            ldrb    w9, [x19, #0x33]
+            str     w9, [sp, #0x18]    // [V05 OutArgs+0x18]
+            ldr     x9, [x19, #0x70]
+            ; gcrRegs +[x9]
+            str     x9, [sp, #0x20]    // [V05 OutArgs+0x20]
+            str     x2, [sp, #0x28]    // [V05 OutArgs+0x28]
+            mov     x2, x4
+            mov     x4, x5
+            mov     x5, x6
+            mov     w6, w7
+            ; gcrRegs -[x6]
+            mov     w7, w0
+            str     w1, [sp]   // [V05 OutArgs]
+            str     x8, [sp, #0x08]    // [V05 OutArgs+0x08]
+            add     x0, fp, #16    // [V31 tmp26]
+            str     x0, [sp, #0x10]    // [V05 OutArgs+0x10]
             mov     x0, x19
-            str     w8, [sp]   // [V05 OutArgs]
-            str     x9, [sp, #0x08]    // [V05 OutArgs+0x08]
-            add     x8, fp, #24    // [V31 tmp26]
-            str     x8, [sp, #0x10]    // [V05 OutArgs+0x10]
+            ; gcrRegs +[x0]
+            mov     x1, x21
+            ; gcrRegs +[x1]
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
+            ; gcrRegs -[x8]
             movk    x8, #0xD1FFAB1E LSL #16
             movk    x8, #0xD1FFAB1E LSL #32
             ldr     x8, [x8]
             blr     x8
-            ; gcrRegs -[x1-x5 x9-x10 x19-x22]
-                       ;; size=60 bbWeight=1 PerfScore 18.50
+            ; gcrRegs -[x1-x5 x9 x19-x21]
+                       ;; size=84 bbWeight=1 PerfScore 21.50
 G_M26558_IG08:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x70]
-            ldp     x19, x20, [sp, #0x60]
+            ldr     x21, [sp, #0x68]
+            ldp     x19, x20, [sp, #0x58]
             ldp     fp, lr, [sp, #0x30]
-            add     sp, sp, #128
+            add     sp, sp, #112
             ret     lr
-                       ;; size=20 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 5.50
 
-; Total bytes of code 232, prolog size 28, PerfScore 74.25, instruction count 58, allocated bytes for code 232 (MethodHash=faef9841) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
+; Total bytes of code 248, prolog size 28, PerfScore 77.25, instruction count 62, allocated bytes for code 248 (MethodHash=faef9841) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 3
   Epilog Count      : 1
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 58 (0x0003a) Actual length = 232 (0x0000e8)
+  Function Length   : 62 (0x0003e) Actual length = 248 (0x0000f8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -166,9 +169,12 @@ Unwind Info:
   ---- Unwind codes ----
     E2 06       add_fp 6 (0x06); add fp, sp, #48
     ---- Epilog start at index 2 ----
-    E6          save_next
-    C8 0C       save_regp X#0 Z#12 (0x0C); stp x19, x20, [sp, #96]
+    D0 8D       save_reg X#2 Z#13 (0x0D); str x21, [sp, #104]
+    C8 0B       save_regp X#0 Z#11 (0x0B); stp x19, x20, [sp, #88]
     46          save_fplr #6 (0x06); stp fp, lr, [sp, #48]
-    08          alloc_s #8 (0x08); sub sp, sp, #128 (0x080)
+    07          alloc_s #7 (0x07); sub sp, sp, #112 (0x070)
+    E4          end
+    E4          end
+    E4          end
     E4          end
 

libraries_tests.run.windows.arm64.Release.mch

-48 (-27.91%) : 76703.dasm - NuGet.Packaging.Signing.SignatureVerificationSummary:.ctor(int,int,int,NuGet.Packaging.Signing.Timestamp,System.Collections.Generic.IEnumerable`1[NuGet.Packaging.Signing.SignatureLog]):this (Tier0)

@@ -5,68 +5,47 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x88]  do-not-enreg[] this class-hnd <NuGet.Packaging.Signing.SignatureVerificationSummary>
-;  V01 arg1         [V01    ] (  1,  1   )     int  ->  [fp+0x84]  do-not-enreg[]
-;  V02 arg2         [V02    ] (  1,  1   )     int  ->  [fp+0x80]  do-not-enreg[]
-;  V03 arg3         [V03    ] (  1,  1   )     int  ->  [fp+0x7C]  do-not-enreg[]
-;  V04 arg4         [V04    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <NuGet.Packaging.Signing.Timestamp>
-;  V05 arg5         [V05    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] class-hnd <System.Collections.Generic.IEnumerable`1[NuGet.Packaging.Signing.SignatureLog]>
-;  V06 loc0         [V06    ] (  1,  1   )  struct (24) [fp+0x50]  do-not-enreg[S] must-init ld-addr-op <System.Nullable`1[System.DateTimeOffset]>
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] this class-hnd <NuGet.Packaging.Signing.SignatureVerificationSummary>
+;  V01 arg1         [V01    ] (  1,  1   )     int  ->  [fp+0x64]  do-not-enreg[]
+;  V02 arg2         [V02    ] (  1,  1   )     int  ->  [fp+0x60]  do-not-enreg[]
+;  V03 arg3         [V03    ] (  1,  1   )     int  ->  [fp+0x5C]  do-not-enreg[]
+;  V04 arg4         [V04    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <NuGet.Packaging.Signing.Timestamp>
+;  V05 arg5         [V05    ] (  1,  1   )     ref  ->  [fp+0x48]  do-not-enreg[] class-hnd <System.Collections.Generic.IEnumerable`1[NuGet.Packaging.Signing.SignatureLog]>
+;  V06 loc0         [V06    ] (  1,  1   )  struct (24) [fp+0x30]  do-not-enreg[S] must-init ld-addr-op <System.Nullable`1[System.DateTimeOffset]>
 ;# V07 OutArgs      [V07    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V08 tmp1         [V08    ] (  1,  1   )  struct (24) [fp+0x38]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Nullable`1[System.DateTimeOffset]>
-;  V09 tmp2         [V09    ] (  1,  1   )     ref  ->  [fp+0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp3         [V10    ] (  1,  1   )     int  ->  [fp+0x2C]  do-not-enreg[] "argument with side effect"
-;  V11 tmp4         [V11    ] (  1,  1   )     int  ->  [fp+0x28]  do-not-enreg[] "argument with side effect"
-;  V12 tmp5         [V12    ] (  1,  1   )     int  ->  [fp+0x24]  do-not-enreg[] "argument with side effect"
-;  V13 tmp6         [V13    ] (  1,  1   )     ref  ->  [fp+0x18]  do-not-enreg[] must-init "argument with side effect"
+;  V08 tmp1         [V08    ] (  1,  1   )  struct (24) [fp+0x18]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Nullable`1[System.DateTimeOffset]>
 ;
-; Lcl frame size = 128
+; Lcl frame size = 96
 
 G_M42965_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x90]!
+            stp     fp, lr, [sp, #-0x70]!
             mov     fp, sp
-            add     x9, fp, #24
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     q16, q16, [x9, #0x20]
-            stp     xzr, xzr, [x9, #0x40]
-            str     x0, [fp, #0x88]    // [V00 this]
-            str     w1, [fp, #0x84]    // [V01 arg1]
-            str     w2, [fp, #0x80]    // [V02 arg2]
-            str     w3, [fp, #0x7C]    // [V03 arg3]
-            str     x4, [fp, #0x70]    // [V04 arg4]
-            str     x5, [fp, #0x68]    // [V05 arg5]
-                       ;; size=52 bbWeight=1 PerfScore 11.50
+            str     xzr, [fp, #0x30]   // [V06 loc0]
+            str     xzr, [fp, #0x38]   // [V06 loc0+0x08]
+            str     xzr, [fp, #0x40]   // [V06 loc0+0x10]
+            str     x0, [fp, #0x68]    // [V00 this]
+            str     w1, [fp, #0x64]    // [V01 arg1]
+            str     w2, [fp, #0x60]    // [V02 arg2]
+            str     w3, [fp, #0x5C]    // [V03 arg3]
+            str     x4, [fp, #0x50]    // [V04 arg4]
+            str     x5, [fp, #0x48]    // [V05 arg5]
+                       ;; size=44 bbWeight=1 PerfScore 10.50
 G_M42965_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            stp     xzr, xzr, [fp, #0x50]
-            str     xzr, [fp, #0x60]
-            ldr     x0, [fp, #0x88]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x30]    // [V09 tmp2]
-            ldr     w0, [fp, #0x84]    // [V01 arg1]
-            ; gcrRegs -[x0]
-            str     w0, [fp, #0x2C]    // [V10 tmp3]
-            ldr     w0, [fp, #0x80]    // [V02 arg2]
-            str     w0, [fp, #0x28]    // [V11 tmp4]
-            ldr     w0, [fp, #0x7C]    // [V03 arg3]
-            str     w0, [fp, #0x24]    // [V12 tmp5]
-            ldr     x0, [fp, #0x70]    // [V04 arg4]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x18]    // [V13 tmp6]
-            ldp     x0, x1, [fp, #0x50]
-            ; gcrRegs -[x0]
-            stp     x0, x1, [fp, #0x38]
-            ldr     x0, [fp, #0x60]
-            str     x0, [fp, #0x48]
-            ldr     x0, [fp, #0x30]    // [V09 tmp2]
-            ; gcrRegs +[x0]
-            ldr     w1, [fp, #0x2C]    // [V10 tmp3]
-            ldr     w2, [fp, #0x28]    // [V11 tmp4]
-            ldr     w3, [fp, #0x24]    // [V12 tmp5]
-            ldr     x4, [fp, #0x18]    // [V13 tmp6]
+            stp     xzr, xzr, [fp, #0x30]
+            str     xzr, [fp, #0x40]
+            ldp     x1, x2, [fp, #0x30]
+            stp     x1, x2, [fp, #0x18]
+            ldr     x1, [fp, #0x40]
+            str     x1, [fp, #0x28]
+            add     x5, fp, #24    // [V08 tmp1]
+            ldr     w1, [fp, #0x64]    // [V01 arg1]
+            ldr     w2, [fp, #0x60]    // [V02 arg2]
+            ldr     w3, [fp, #0x5C]    // [V03 arg3]
+            ldr     x4, [fp, #0x50]    // [V04 arg4]
             ; gcrRegs +[x4]
-            add     x5, fp, #56    // [V08 tmp1]
-            ldr     x6, [fp, #0x68]    // [V05 arg5]
+            ldr     x0, [fp, #0x68]    // [V00 this]
+            ; gcrRegs +[x0]
+            ldr     x6, [fp, #0x48]    // [V05 arg5]
             ; gcrRegs +[x6]
             movz    x7, #0xD1FFAB1E      // code for <unknown method>
             movk    x7, #0xD1FFAB1E LSL #16
@@ -74,13 +53,13 @@ G_M42965_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ldr     x7, [x7]
             blr     x7
             ; gcrRegs -[x0 x4 x6]
-                       ;; size=112 bbWeight=1 PerfScore 42.00
+                       ;; size=72 bbWeight=1 PerfScore 27.00
 G_M42965_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x90
+            ldp     fp, lr, [sp], #0x70
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 172, prolog size 28, PerfScore 55.50, instruction count 43, allocated bytes for code 172 (MethodHash=726c582a) for method NuGet.Packaging.Signing.SignatureVerificationSummary:.ctor(int,int,int,NuGet.Packaging.Signing.Timestamp,System.Collections.Generic.IEnumerable`1[NuGet.Packaging.Signing.SignatureLog]):this (Tier0)
+; Total bytes of code 124, prolog size 20, PerfScore 39.50, instruction count 31, allocated bytes for code 124 (MethodHash=726c582a) for method NuGet.Packaging.Signing.SignatureVerificationSummary:.ctor(int,int,int,NuGet.Packaging.Signing.Timestamp,System.Collections.Generic.IEnumerable`1[NuGet.Packaging.Signing.SignatureLog]):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -91,7 +70,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 43 (0x0002b) Actual length = 172 (0x0000ac)
+  Function Length   : 31 (0x0001f) Actual length = 124 (0x00007c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -99,7 +78,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    91          save_fplr_x #17 (0x11); stp fp, lr, [sp, #-144]!
+    8D          save_fplr_x #13 (0x0D); stp fp, lr, [sp, #-112]!
     E4          end
     E4          end
 

-40 (-27.03%) : 1586.dasm - Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Tier0)

@@ -5,72 +5,56 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] this class-hnd <Xunit.Sdk.TestCollection>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITestAssembly>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITypeInfo>
-;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x60]  do-not-enreg[] class-hnd <System.String>
-;  V04 loc0         [V04    ] (  1,  1   )  struct (24) [fp+0x48]  do-not-enreg[S] must-init ld-addr-op <System.Nullable`1[System.Guid]>
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] this class-hnd <Xunit.Sdk.TestCollection>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITestAssembly>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x48]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITypeInfo>
+;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x40]  do-not-enreg[] class-hnd <System.String>
+;  V04 loc0         [V04    ] (  1,  1   )  struct (24) [fp+0x28]  do-not-enreg[S] must-init ld-addr-op <System.Nullable`1[System.Guid]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06    ] (  1,  1   )  struct (24) [fp+0x30]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Nullable`1[System.Guid]>
-;  V07 tmp2         [V07    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V08 tmp3         [V08    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp4         [V09    ] (  1,  1   )     ref  ->  [fp+0x18]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp5         [V10    ] (  1,  1   )     ref  ->  [fp+0x10]  do-not-enreg[] must-init "argument with side effect"
+;  V06 tmp1         [V06    ] (  1,  1   )  struct (24) [fp+0x10]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Nullable`1[System.Guid]>
 ;
-; Lcl frame size = 112
+; Lcl frame size = 80
 
 G_M26555_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x80]!
+            stp     fp, lr, [sp, #-0x60]!
             mov     fp, sp
-            add     x9, fp, #16
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     q16, q16, [x9, #0x20]
-            stp     xzr, xzr, [x9, #0x40]
-            str     x0, [fp, #0x78]    // [V00 this]
-            str     x1, [fp, #0x70]    // [V01 arg1]
-            str     x2, [fp, #0x68]    // [V02 arg2]
-            str     x3, [fp, #0x60]    // [V03 arg3]
-                       ;; size=44 bbWeight=1 PerfScore 9.50
+            str     xzr, [fp, #0x28]   // [V04 loc0]
+            str     xzr, [fp, #0x30]   // [V04 loc0+0x08]
+            str     xzr, [fp, #0x38]   // [V04 loc0+0x10]
+            str     x0, [fp, #0x58]    // [V00 this]
+            str     x1, [fp, #0x50]    // [V01 arg1]
+            str     x2, [fp, #0x48]    // [V02 arg2]
+            str     x3, [fp, #0x40]    // [V03 arg3]
+                       ;; size=36 bbWeight=1 PerfScore 8.50
 G_M26555_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            stp     xzr, xzr, [fp, #0x48]
-            str     wzr, [fp, #0x58]
-            ldr     x0, [fp, #0x78]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x28]    // [V07 tmp2]
-            ldr     x0, [fp, #0x70]    // [V01 arg1]
-            str     x0, [fp, #0x20]    // [V08 tmp3]
-            ldr     x0, [fp, #0x68]    // [V02 arg2]
-            str     x0, [fp, #0x18]    // [V09 tmp4]
-            ldr     x0, [fp, #0x60]    // [V03 arg3]
-            str     x0, [fp, #0x10]    // [V10 tmp5]
-            ldp     x0, x1, [fp, #0x48]
-            ; gcrRegs -[x0]
-            stp     x0, x1, [fp, #0x30]
-            ldr     w0, [fp, #0x58]
-            str     w0, [fp, #0x40]
-            ldr     x0, [fp, #0x28]    // [V07 tmp2]
-            ; gcrRegs +[x0]
-            ldr     x1, [fp, #0x20]    // [V08 tmp3]
+            stp     xzr, xzr, [fp, #0x28]
+            str     wzr, [fp, #0x38]
+            ldp     x1, x2, [fp, #0x28]
+            stp     x1, x2, [fp, #0x10]
+            ldr     w1, [fp, #0x38]
+            str     w1, [fp, #0x20]
+            add     x4, fp, #16    // [V06 tmp1]
+            ldr     x1, [fp, #0x50]    // [V01 arg1]
             ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x18]    // [V09 tmp4]
+            ldr     x2, [fp, #0x48]    // [V02 arg2]
             ; gcrRegs +[x2]
-            ldr     x3, [fp, #0x10]    // [V10 tmp5]
+            ldr     x3, [fp, #0x40]    // [V03 arg3]
             ; gcrRegs +[x3]
-            add     x4, fp, #48    // [V06 tmp1]
+            ldr     x0, [fp, #0x58]    // [V00 this]
+            ; gcrRegs +[x0]
             movz    x5, #0xD1FFAB1E      // code for <unknown method>
             movk    x5, #0xD1FFAB1E LSL #16
             movk    x5, #0xD1FFAB1E LSL #32
             ldr     x5, [x5]
             blr     x5
             ; gcrRegs -[x0-x3]
-                       ;; size=96 bbWeight=1 PerfScore 35.00
+                       ;; size=64 bbWeight=1 PerfScore 23.00
 G_M26555_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x80
+            ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 148, prolog size 28, PerfScore 46.50, instruction count 37, allocated bytes for code 148 (MethodHash=cefa9844) for method Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Tier0)
+; Total bytes of code 108, prolog size 20, PerfScore 33.50, instruction count 27, allocated bytes for code 108 (MethodHash=cefa9844) for method Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -81,7 +65,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
+  Function Length   : 27 (0x0001b) Actual length = 108 (0x00006c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -89,7 +73,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    8F          save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
+    8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
     E4          end
     E4          end
 

-40 (-27.03%) : 99659.dasm - Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Instrumented Tier0)

@@ -5,72 +5,56 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x78]  do-not-enreg[] this class-hnd <Xunit.Sdk.TestCollection>
-;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x70]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITestAssembly>
-;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x68]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITypeInfo>
-;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x60]  do-not-enreg[] class-hnd <System.String>
-;  V04 loc0         [V04    ] (  1,  1   )  struct (24) [fp+0x48]  do-not-enreg[S] must-init ld-addr-op <System.Nullable`1[System.Guid]>
+;  V00 this         [V00    ] (  1,  1   )     ref  ->  [fp+0x58]  do-not-enreg[] this class-hnd <Xunit.Sdk.TestCollection>
+;  V01 arg1         [V01    ] (  1,  1   )     ref  ->  [fp+0x50]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITestAssembly>
+;  V02 arg2         [V02    ] (  1,  1   )     ref  ->  [fp+0x48]  do-not-enreg[] class-hnd <Xunit.Abstractions.ITypeInfo>
+;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [fp+0x40]  do-not-enreg[] class-hnd <System.String>
+;  V04 loc0         [V04    ] (  1,  1   )  struct (24) [fp+0x28]  do-not-enreg[S] must-init ld-addr-op <System.Nullable`1[System.Guid]>
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06    ] (  1,  1   )  struct (24) [fp+0x30]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Nullable`1[System.Guid]>
-;  V07 tmp2         [V07    ] (  1,  1   )     ref  ->  [fp+0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V08 tmp3         [V08    ] (  1,  1   )     ref  ->  [fp+0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp4         [V09    ] (  1,  1   )     ref  ->  [fp+0x18]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp5         [V10    ] (  1,  1   )     ref  ->  [fp+0x10]  do-not-enreg[] must-init "argument with side effect"
+;  V06 tmp1         [V06    ] (  1,  1   )  struct (24) [fp+0x10]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Nullable`1[System.Guid]>
 ;
-; Lcl frame size = 112
+; Lcl frame size = 80
 
 G_M26555_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x80]!
+            stp     fp, lr, [sp, #-0x60]!
             mov     fp, sp
-            add     x9, fp, #16
-            movi    v16.16b, #0
-            stp     q16, q16, [x9]
-            stp     q16, q16, [x9, #0x20]
-            stp     xzr, xzr, [x9, #0x40]
-            str     x0, [fp, #0x78]    // [V00 this]
-            str     x1, [fp, #0x70]    // [V01 arg1]
-            str     x2, [fp, #0x68]    // [V02 arg2]
-            str     x3, [fp, #0x60]    // [V03 arg3]
-                       ;; size=44 bbWeight=1 PerfScore 9.50
+            str     xzr, [fp, #0x28]   // [V04 loc0]
+            str     xzr, [fp, #0x30]   // [V04 loc0+0x08]
+            str     xzr, [fp, #0x38]   // [V04 loc0+0x10]
+            str     x0, [fp, #0x58]    // [V00 this]
+            str     x1, [fp, #0x50]    // [V01 arg1]
+            str     x2, [fp, #0x48]    // [V02 arg2]
+            str     x3, [fp, #0x40]    // [V03 arg3]
+                       ;; size=36 bbWeight=1 PerfScore 8.50
 G_M26555_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            stp     xzr, xzr, [fp, #0x48]
-            str     wzr, [fp, #0x58]
-            ldr     x0, [fp, #0x78]    // [V00 this]
-            ; gcrRegs +[x0]
-            str     x0, [fp, #0x28]    // [V07 tmp2]
-            ldr     x0, [fp, #0x70]    // [V01 arg1]
-            str     x0, [fp, #0x20]    // [V08 tmp3]
-            ldr     x0, [fp, #0x68]    // [V02 arg2]
-            str     x0, [fp, #0x18]    // [V09 tmp4]
-            ldr     x0, [fp, #0x60]    // [V03 arg3]
-            str     x0, [fp, #0x10]    // [V10 tmp5]
-            ldp     x0, x1, [fp, #0x48]
-            ; gcrRegs -[x0]
-            stp     x0, x1, [fp, #0x30]
-            ldr     w0, [fp, #0x58]
-            str     w0, [fp, #0x40]
-            ldr     x0, [fp, #0x28]    // [V07 tmp2]
-            ; gcrRegs +[x0]
-            ldr     x1, [fp, #0x20]    // [V08 tmp3]
+            stp     xzr, xzr, [fp, #0x28]
+            str     wzr, [fp, #0x38]
+            ldp     x1, x2, [fp, #0x28]
+            stp     x1, x2, [fp, #0x10]
+            ldr     w1, [fp, #0x38]
+            str     w1, [fp, #0x20]
+            add     x4, fp, #16    // [V06 tmp1]
+            ldr     x1, [fp, #0x50]    // [V01 arg1]
             ; gcrRegs +[x1]
-            ldr     x2, [fp, #0x18]    // [V09 tmp4]
+            ldr     x2, [fp, #0x48]    // [V02 arg2]
             ; gcrRegs +[x2]
-            ldr     x3, [fp, #0x10]    // [V10 tmp5]
+            ldr     x3, [fp, #0x40]    // [V03 arg3]
             ; gcrRegs +[x3]
-            add     x4, fp, #48    // [V06 tmp1]
+            ldr     x0, [fp, #0x58]    // [V00 this]
+            ; gcrRegs +[x0]
             movz    x5, #0xD1FFAB1E      // code for <unknown method>
             movk    x5, #0xD1FFAB1E LSL #16
             movk    x5, #0xD1FFAB1E LSL #32
             ldr     x5, [x5]
             blr     x5
             ; gcrRegs -[x0-x3]
-                       ;; size=96 bbWeight=1 PerfScore 35.00
+                       ;; size=64 bbWeight=1 PerfScore 23.00
 G_M26555_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x80
+            ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 148, prolog size 28, PerfScore 46.50, instruction count 37, allocated bytes for code 148 (MethodHash=cefa9844) for method Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Instrumented Tier0)
+; Total bytes of code 108, prolog size 20, PerfScore 33.50, instruction count 27, allocated bytes for code 108 (MethodHash=cefa9844) for method Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Instrumented Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -81,7 +65,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
+  Function Length   : 27 (0x0001b) Actual length = 108 (0x00006c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -89,7 +73,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    8F          save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]!
+    8B          save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
     E4          end
     E4          end
 

+4 (+5.88%) : 90391.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+WriteLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)

@@ -9,44 +9,44 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T02] (  3,  3   )   byref  ->   x0         this single-def
-;  V01 arg1         [V01,T00] (  5,  5   )     ref  ->   x1         class-hnd single-def <System.Threading.ReaderWriterLockSlim>
+;  V01 arg1         [V01,T00] (  5,  5   )     ref  ->   x2         class-hnd single-def <System.Threading.ReaderWriterLockSlim>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;* V04 tmp2         [V04,T04] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
-;* V05 tmp3         [V05,T05] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
+;* V04 tmp2         [V04,T03] (  0,  0   )     int  ->  zero-ref    ld-addr-op "Inlining Arg"
+;* V05 tmp3         [V05,T04] (  0,  0   )     int  ->  zero-ref    "Inline return value spill temp"
 ;* V06 tmp4         [V06    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;* V07 tmp5         [V07,T06] (  0,  0   )     int  ->  zero-ref    "field V03._total (fldOffset=0x0)" P-INDEP
-;* V08 tmp6         [V08,T07] (  0,  0   )     int  ->  zero-ref    "field V03._start (fldOffset=0x4)" P-INDEP
+;* V07 tmp5         [V07,T05] (  0,  0   )     int  ->  zero-ref    "field V03._total (fldOffset=0x0)" P-INDEP
+;* V08 tmp6         [V08,T06] (  0,  0   )     int  ->  zero-ref    "field V03._start (fldOffset=0x4)" P-INDEP
 ;* V09 tmp7         [V09    ] (  0,  0   )     int  ->  zero-ref    "field V06._total (fldOffset=0x0)" P-INDEP
 ;* V10 tmp8         [V10    ] (  0,  0   )     int  ->  zero-ref    "field V06._start (fldOffset=0x4)" P-INDEP
 ;* V11 tmp9         [V11    ] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
 ;  V12 tmp10        [V12,T01] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Threading.ReaderWriterLockSlim+TimeoutTracker>
-;  V13 tmp11        [V13,T03] (  2,  4   )     ref  ->   x0         single-def "argument with side effect"
 ;
 ; Lcl frame size = 16
 
 G_M47585_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M47585_IG02:        ; bbWeight=1, gcrefRegs=0002 {x1}, byrefRegs=0001 {x0}, byref
-            ; gcrRegs +[x1]
+            mov     x2, x1
+            ; gcrRegs +[x2]
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M47585_IG02:        ; bbWeight=1, gcrefRegs=0004 {x2}, byrefRegs=0001 {x0}, byref
             ; byrRegs +[x0]
             mov     x14, x0
             ; byrRegs +[x14]
-            mov     x15, x1
+            mov     x15, x2
             ; gcrRegs +[x15]
             bl      CORINFO_HELP_CHECKED_ASSIGN_REF
             ; gcrRegs -[x15]
             ; byrRegs -[x0 x14]
-            ldrsb   wzr, [x1]
-            mov     x0, x1
-            ; gcrRegs +[x0]
+            ldrsb   wzr, [x2]
             movn    w1, #0
-            ; gcrRegs -[x1]
             stp     w1, wzr, [fp, #0x18]   // [V12 tmp10], [V12 tmp10+0x04]
             ldr     x1, [fp, #0x18]    // [V12 tmp10]
+            mov     x0, x2
+            ; gcrRegs +[x0]
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            ; gcrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
@@ -58,7 +58,7 @@ G_M47585_IG03:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 68, prolog size 8, PerfScore 18.00, instruction count 17, allocated bytes for code 68 (MethodHash=d7ac461e) for method Roslyn.Utilities.ReaderWriterLockSlimExtensions+WriteLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
+; Total bytes of code 72, prolog size 8, PerfScore 18.50, instruction count 18, allocated bytes for code 72 (MethodHash=d7ac461e) for method Roslyn.Utilities.ReaderWriterLockSlimExtensions+WriteLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -69,7 +69,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 17 (0x00011) Actual length = 68 (0x000044)
+  Function Length   : 18 (0x00012) Actual length = 72 (0x000048)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+6.67%) : 598642.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:g_visitArgumentsAndUpdateCall|101(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)

@@ -7,9 +7,9 @@
 ; 1 inlinees with PGO data; 16 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  4,  3.48)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
-;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
-;  V02 arg2         [V02,T03] (  3,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+;  V00 this         [V00,T01] (  4,  3.48)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
+;  V01 arg1         [V01,T00] ( 16, 16   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
+;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (56) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -27,7 +27,7 @@
 ;* V17 tmp12        [V17    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
 ;* V18 tmp13        [V18    ] (  0,  0   )  struct ( 8) zero-ref    single-def "Inline return value spill temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V19 tmp14        [V19    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V20 tmp15        [V20,T04] (  2,  4   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V20 tmp15        [V20,T03] (  2,  4   )     ref  ->   x2         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V21 tmp16        [V21    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V03.array (fldOffset=0x0)" P-INDEP
 ;* V22 tmp17        [V22    ] (  0,  0   )     ref  ->  zero-ref    "field V06.array (fldOffset=0x0)" P-INDEP
 ;* V23 tmp18        [V23    ] (  0,  0   )     ref  ->  zero-ref    "field V09.array (fldOffset=0x0)" P-INDEP
@@ -37,31 +37,28 @@
 ;* V27 tmp22        [V27    ] (  0,  0   )    long  ->  zero-ref    "field V15._bits0 (fldOffset=0x8)" P-INDEP
 ;* V28 tmp23        [V28    ] (  0,  0   )     int  ->  zero-ref    "field V15._capacity (fldOffset=0x10)" P-INDEP
 ;* V29 tmp24        [V29    ] (  0,  0   )     ref  ->  zero-ref    "field V17.array (fldOffset=0x0)" P-INDEP
-;  V30 tmp25        [V30,T16] (  3,  1.50)     ref  ->  x22         single-def "field V18.array (fldOffset=0x0)" P-INDEP
-;  V31 tmp26        [V31,T15] (  3,  2.48)     ref  ->   x2         single-def "field V19.array (fldOffset=0x0)" P-INDEP
-;  V32 tmp27        [V32    ] (  2,  4   )  struct (24) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
-;  V33 tmp28        [V33,T00] ( 13, 26   )     ref  ->  x19         single-def "argument with side effect"
-;  V34 tmp29        [V34,T05] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V35 tmp30        [V35,T11] (  2,  4   )     int  ->   x2         "argument with side effect"
-;  V36 tmp31        [V36,T06] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V37 tmp32        [V37,T07] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
-;  V38 tmp33        [V38,T08] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
-;  V39 tmp34        [V39,T09] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
-;  V40 tmp35        [V40,T12] (  2,  4   )     int  ->   x7         "argument with side effect"
-;  V41 tmp36        [V41,T13] (  2,  4   )     int  ->   x8         "argument with side effect"
-;  V42 tmp37        [V42,T14] (  2,  4   )     int  ->   x9         "argument with side effect"
-;  V43 tmp38        [V43,T10] (  2,  4   )     ref  ->  x10         single-def "argument with side effect"
+;  V30 tmp25        [V30,T13] (  3,  1.50)     ref  ->   x4         single-def "field V18.array (fldOffset=0x0)" P-INDEP
+;  V31 tmp26        [V31,T12] (  3,  2.48)     ref  ->   x2         single-def "field V19.array (fldOffset=0x0)" P-INDEP
+;  V32 tmp27        [V32    ] (  2,  4   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
+;  V33 tmp28        [V33,T08] (  2,  4   )     int  ->   x3         "argument with side effect"
+;  V34 tmp29        [V34,T04] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
+;  V35 tmp30        [V35,T05] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
+;  V36 tmp31        [V36,T06] (  2,  4   )     ref  ->   x7         single-def "argument with side effect"
+;  V37 tmp32        [V37,T09] (  2,  4   )     int  ->   x1         "argument with side effect"
+;  V38 tmp33        [V38,T10] (  2,  4   )     int  ->   x0         "argument with side effect"
+;  V39 tmp34        [V39,T11] (  2,  4   )     int  ->   x8         "argument with side effect"
+;  V40 tmp35        [V40,T07] (  2,  4   )     ref  ->   x9         single-def "argument with side effect"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 88
 
 G_M26558_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             sub     sp, sp, #128
             stp     fp, lr, [sp, #0x38]
-            stp     x19, x20, [sp, #0x60]
-            stp     x21, x22, [sp, #0x70]
+            stp     x19, x20, [sp, #0x68]
+            str     x21, [sp, #0x78]
             add     fp, sp, #56
-            stp     xzr, xzr, [fp, #0x10]  // [V32 tmp27], [V32 tmp27+0x08]
-            str     xzr, [fp, #0x20]   // [V32 tmp27+0x10]
+            stp     xzr, xzr, [fp, #0x18]  // [V32 tmp27], [V32 tmp27+0x08]
+            str     xzr, [fp, #0x28]   // [V32 tmp27+0x10]
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     x19, x1
@@ -86,81 +83,88 @@ G_M26558_IG03:        ; bbWeight=0.48, gcrefRegs=380004 {x2 x19 x20 x21}, byrefR
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs -[x2]
-            mov     x22, x0
-            ; gcrRegs +[x22]
-                       ;; size=40 bbWeight=0.48 PerfScore 3.83
-G_M26558_IG04:        ; bbWeight=1, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            ldr     x0, [x19, #0x18]
-            ; gcrRegs +[x0]
-            ldrsb   wzr, [x20]
-            mov     x1, x21
-            ; gcrRegs +[x1]
-            ldrb    w2, [x19, #0x30]
-            ldr     x3, [x19, #0x28]
-            ; gcrRegs +[x3]
-            mov     x4, x22
+            mov     x4, x0
             ; gcrRegs +[x4]
-            ldp     x5, x6, [x19, #0x40]
-            ; gcrRegs +[x5-x6]
-            ldrb    w7, [x19, #0x31]
-            ldrb    w8, [x19, #0x32]
-            ldrb    w9, [x19, #0x33]
-            ldr     x10, [x19, #0x50]
-            ; gcrRegs +[x10]
-                       ;; size=44 bbWeight=1 PerfScore 29.00
+                       ;; size=40 bbWeight=0.48 PerfScore 3.83
+G_M26558_IG04:        ; bbWeight=1, gcrefRegs=380010 {x4 x19 x20 x21}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0]
+            ldr     x2, [x19, #0x18]
+            ; gcrRegs +[x2]
+            ldrsb   wzr, [x20]
+            ldrb    w3, [x19, #0x30]
+            ldr     x5, [x19, #0x28]
+            ; gcrRegs +[x5]
+            ldp     x6, x7, [x19, #0x40]
+            ; gcrRegs +[x6-x7]
+            ldrb    w1, [x19, #0x31]
+            ldrb    w0, [x19, #0x32]
+            ldrb    w8, [x19, #0x33]
+            ldr     x9, [x19, #0x50]
+            ; gcrRegs +[x9]
+                       ;; size=36 bbWeight=1 PerfScore 28.00
 G_M26558_IG05:        ; bbWeight=1, nogc, extend
-            ldp     x11, x13, [x19, #0x58]
-            stp     x11, x13, [fp, #0x10]
-            ldr     x11, [x19, #0x68]
-            str     x11, [fp, #0x20]
+            ldp     x10, x11, [x19, #0x58]
+            stp     x10, x11, [fp, #0x18]
+            ldr     x10, [x19, #0x68]
+            str     x10, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M26558_IG06:        ; bbWeight=1, extend
-            ldrb    w11, [x19, #0x34]
-            str     w11, [sp, #0x20]   // [V05 OutArgs+0x20]
-            ldr     x11, [x19, #0x70]
-            ; gcrRegs +[x11]
-            str     x11, [sp, #0x28]   // [V05 OutArgs+0x28]
-            str     x0, [sp, #0x30]    // [V05 OutArgs+0x30]
+            ldrb    w10, [x19, #0x34]
+            str     w10, [sp, #0x20]   // [V05 OutArgs+0x20]
+            ldr     x10, [x19, #0x70]
+            ; gcrRegs +[x10]
+            str     x10, [sp, #0x28]   // [V05 OutArgs+0x28]
+            str     x2, [sp, #0x30]    // [V05 OutArgs+0x30]
+            mov     w2, w3
+            ; gcrRegs -[x2]
+            mov     x3, x5
+            ; gcrRegs +[x3]
+            mov     x5, x6
+            mov     x6, x7
+            mov     w7, w1
+            ; gcrRegs -[x7]
+            str     w0, [sp]   // [V05 OutArgs]
+            str     w8, [sp, #0x08]    // [V05 OutArgs+0x08]
+            str     x9, [sp, #0x10]    // [V05 OutArgs+0x10]
+            add     x1, fp, #24    // [V32 tmp27]
+            str     x1, [sp, #0x18]    // [V05 OutArgs+0x18]
+            mov     x1, x21
+            ; gcrRegs +[x1]
             mov     x0, x19
-            str     w8, [sp]   // [V05 OutArgs]
-            str     w9, [sp, #0x08]    // [V05 OutArgs+0x08]
-            str     x10, [sp, #0x10]   // [V05 OutArgs+0x10]
-            add     x8, fp, #16    // [V32 tmp27]
-            str     x8, [sp, #0x18]    // [V05 OutArgs+0x18]
+            ; gcrRegs +[x0]
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
             movk    x8, #0xD1FFAB1E LSL #16
             movk    x8, #0xD1FFAB1E LSL #32
             ldr     x8, [x8]
             blr     x8
-            ; gcrRegs -[x1 x3-x6 x10-x11 x19-x22]
-                       ;; size=64 bbWeight=1 PerfScore 19.50
+            ; gcrRegs -[x1 x3-x6 x9-x10 x19-x21]
+                       ;; size=88 bbWeight=1 PerfScore 22.50
 G_M26558_IG07:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x70]
-            ldp     x19, x20, [sp, #0x60]
+            ldr     x21, [sp, #0x78]
+            ldp     x19, x20, [sp, #0x68]
             ldp     fp, lr, [sp, #0x38]
             add     sp, sp, #128
             ret     lr
-                       ;; size=20 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 5.50
 G_M26558_IG08:        ; bbWeight=0.02, gcVars=0000000000000000 {}, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x0] +[x19-x21]
-            mov     x22, xzr
-            ; gcrRegs +[x22]
+            mov     x4, xzr
+            ; gcrRegs +[x4]
             b       G_M26558_IG04
                        ;; size=8 bbWeight=0.02 PerfScore 0.03
 
-; Total bytes of code 240, prolog size 28, PerfScore 77.36, instruction count 60, allocated bytes for code 240 (MethodHash=faef9841) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
+; Total bytes of code 256, prolog size 28, PerfScore 80.36, instruction count 64, allocated bytes for code 256 (MethodHash=faef9841) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 3
   Epilog Count      : 1
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 60 (0x0003c) Actual length = 240 (0x0000f0)
+  Function Length   : 64 (0x00040) Actual length = 256 (0x000100)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -168,9 +172,12 @@ Unwind Info:
   ---- Unwind codes ----
     E2 07       add_fp 7 (0x07); add fp, sp, #56
     ---- Epilog start at index 2 ----
-    E6          save_next
-    C8 0C       save_regp X#0 Z#12 (0x0C); stp x19, x20, [sp, #96]
+    D0 8F       save_reg X#2 Z#15 (0x0F); str x21, [sp, #120]
+    C8 0D       save_regp X#0 Z#13 (0x0D); stp x19, x20, [sp, #104]
     47          save_fplr #7 (0x07); stp fp, lr, [sp, #56]
     08          alloc_s #8 (0x08); sub sp, sp, #128 (0x080)
     E4          end
+    E4          end
+    E4          end
+    E4          end
 

+4 (+6.67%) : 591416.dasm - Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (Tier1)

@@ -8,29 +8,30 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Microsoft.Cci.MetadataWriter>
-;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.Cci.ITypeDefinition>
+;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.Cci.ITypeDefinition>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03    ] (  2,  4   )  struct (48) [fp+0x10]  do-not-enreg[XS] addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.Emit.EmitContext>
-;  V04 tmp2         [V04,T02] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
 ;
 ; Lcl frame size = 48
 
 G_M23091_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M23091_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, nogc
-            ; gcrRegs +[x0-x1]
+            mov     x2, x1
+            ; gcrRegs +[x2]
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M23091_IG02:        ; bbWeight=1, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref, nogc
+            ; gcrRegs +[x0]
             ldp     q16, q17, [x0, #0xD0]
             stp     q16, q17, [fp, #0x10]
             ldr     q16, [x0, #0xF0]
             str     q16, [fp, #0x30]
                        ;; size=16 bbWeight=1 PerfScore 8.00
 G_M23091_IG03:        ; bbWeight=1, extend
-            mov     x0, x1
             add     x1, fp, #16    // [V03 tmp1]
-            ; gcrRegs -[x1]
+            mov     x0, x2
             movz    x2, #0xD1FFAB1E      // code for <unknown method>
+            ; gcrRegs -[x2]
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
@@ -42,7 +43,7 @@ G_M23091_IG04:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 60, prolog size 8, PerfScore 18.00, instruction count 15, allocated bytes for code 60 (MethodHash=af30a5cc) for method Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (Tier1)
+; Total bytes of code 64, prolog size 8, PerfScore 18.50, instruction count 16, allocated bytes for code 64 (MethodHash=af30a5cc) for method Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -53,7 +54,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
+  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

librariestestsnotieredcompilation.run.windows.arm64.Release.mch

-32 (-27.59%) : 117851.dasm - System.Formats.Asn1.Tests.Reader.OverlappedReads:g_Method|30(System.ReadOnlySpan1[ubyte],System.Span1[ubyte],int,byref,byref):ubyte (FullOpts)

@@ -10,58 +10,45 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.ReadOnlySpan`1[ubyte]>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg single-def <System.Span`1[ubyte]>
-;  V02 arg2         [V02,T04] (  3,  3   )     int  ->   x4         single-def
-;  V03 arg3         [V03,T02] (  3,  3   )   byref  ->   x7         single-def
-;  V04 arg4         [V04,T03] (  3,  3   )   byref  ->   x8         single-def
+;  V02 arg2         [V02,T02] (  3,  3   )     int  ->   x4         single-def
+;  V03 arg3         [V03,T00] (  3,  3   )   byref  ->   x7         single-def
+;  V04 arg4         [V04,T01] (  3,  3   )   byref  ->   x8         single-def
 ;# V05 OutArgs      [V05    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V06 tmp1         [V06    ] (  3,  6   )  struct ( 8) [fp+0x38]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.Formats.Asn1.Asn1Tag>
+;  V06 tmp1         [V06    ] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[XS] addr-exposed ld-addr-op "NewObj constructor temp" <System.Formats.Asn1.Asn1Tag>
 ;* V07 tmp2         [V07    ] (  0,  0   )   byref  ->  zero-ref   
-;  V08 tmp3         [V08,T11] (  3,  3   )   byref  ->   x5         single-def
+;  V08 tmp3         [V08,T08] (  3,  3   )   byref  ->   x5         single-def
 ;* V09 tmp4         [V09    ] (  0,  0   )     int  ->  zero-ref   
 ;* V10 tmp5         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V11 tmp6         [V11,T05] (  2,  2   )   byref  ->   x0         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
-;  V12 tmp7         [V12,T07] (  2,  2   )     int  ->   x1         single-def "field V00._length (fldOffset=0x8)" P-INDEP
-;  V13 tmp8         [V13,T06] (  2,  2   )   byref  ->   x2         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V14 tmp9         [V14,T08] (  2,  2   )     int  ->   x3         single-def "field V01._length (fldOffset=0x8)" P-INDEP
-;  V15 tmp10        [V15    ] (  3,  6   )   ubyte  ->  [fp+0x38]  do-not-enreg[X] addr-exposed "field V06._controlFlags (fldOffset=0x0)" P-DEP
-;  V16 tmp11        [V16    ] (  3,  6   )     int  ->  [fp+0x3C]  do-not-enreg[X] addr-exposed "field V06.<TagValue>k__BackingField (fldOffset=0x4)" P-DEP
-;  V17 tmp12        [V17,T09] (  2,  4   )  struct ( 8) [fp+0x30]  do-not-enreg[S] "by-value struct argument" <System.Formats.Asn1.Asn1Tag>
-;  V18 tmp13        [V18,T00] (  4,  8   )  struct (16) [fp+0x20]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.ReadOnlySpan`1[ubyte]>
-;  V19 tmp14        [V19,T01] (  4,  8   )  struct (16) [fp+0x10]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.Span`1[ubyte]>
-;  V20 tmp15        [V20,T10] (  2,  4   )     int  ->   x4         "argument with side effect"
+;  V11 tmp6         [V11,T03] (  2,  2   )   byref  ->   x0         single-def "field V00._reference (fldOffset=0x0)" P-INDEP
+;  V12 tmp7         [V12,T05] (  2,  2   )     int  ->   x1         single-def "field V00._length (fldOffset=0x8)" P-INDEP
+;  V13 tmp8         [V13,T04] (  2,  2   )   byref  ->   x2         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
+;  V14 tmp9         [V14,T06] (  2,  2   )     int  ->   x3         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V15 tmp10        [V15    ] (  3,  6   )   ubyte  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V06._controlFlags (fldOffset=0x0)" P-DEP
+;  V16 tmp11        [V16    ] (  3,  6   )     int  ->  [fp+0x1C]  do-not-enreg[X] addr-exposed "field V06.<TagValue>k__BackingField (fldOffset=0x4)" P-DEP
+;  V17 tmp12        [V17,T07] (  2,  4   )  struct ( 8) [fp+0x10]  do-not-enreg[S] "by-value struct argument" <System.Formats.Asn1.Asn1Tag>
 ;
-; Lcl frame size = 48
+; Lcl frame size = 16
 
 G_M25606_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-            str     xzr, [fp, #0x20]   // [V18 tmp13]
-            str     xzr, [fp, #0x10]   // [V19 tmp14]
             mov     x7, x5
             ; byrRegs +[x7]
             mov     x8, x6
             ; byrRegs +[x8]
-                       ;; size=24 bbWeight=1 PerfScore 4.50
+                       ;; size=16 bbWeight=1 PerfScore 2.50
 G_M25606_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0185 {x0 x2 x7 x8}, byref
             ; byrRegs +[x0 x2]
-            str     xzr, [fp, #0x38]   // [V06 tmp1]
-            add     x5, fp, #56    // [V06 tmp1]
+            str     xzr, [fp, #0x18]   // [V06 tmp1]
+            add     x5, fp, #24    // [V06 tmp1]
             ; byrRegs +[x5]
             strb    wzr, [x5]
             mov     w6, #12
             str     w6, [x5, #0x04]
-            str     x0, [fp, #0x20]    // [V18 tmp13]
-            str     w1, [fp, #0x28]    // [V18 tmp13+0x08]
-            str     x2, [fp, #0x10]    // [V19 tmp14]
-            str     w3, [fp, #0x18]    // [V19 tmp14+0x08]
-            ldr     x0, [fp, #0x38]    // [V06 tmp1]
-            ; byrRegs -[x0]
-            str     x0, [fp, #0x30]    // [V17 tmp12]
-            ldp     x0, x1, [fp, #0x20]    // [V18 tmp13], [V18 tmp13+0x08]
-            ; byrRegs +[x0]
-            ldp     x2, x3, [fp, #0x10]    // [V19 tmp14], [V19 tmp14+0x08]
-            ldr     x5, [fp, #0x30]    // [V17 tmp12]
+            ldr     x5, [fp, #0x18]    // [V06 tmp1]
             ; byrRegs -[x5]
+            str     x5, [fp, #0x10]    // [V17 tmp12]
+            ldr     x5, [fp, #0x10]    // [V17 tmp12]
             mov     x6, x7
             ; byrRegs +[x6]
             mov     x7, x8
@@ -72,13 +59,13 @@ G_M25606_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0185 {x0 x2 x7
             ldr     x8, [x8]
             blr     x8
             ; byrRegs -[x0 x2 x6-x7]
-                       ;; size=84 bbWeight=1 PerfScore 25.50
+                       ;; size=60 bbWeight=1 PerfScore 15.50
 G_M25606_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x40
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 116, prolog size 16, PerfScore 32.00, instruction count 29, allocated bytes for code 116 (MethodHash=7f649bf9) for method System.Formats.Asn1.Tests.Reader.OverlappedReads:<NoOverlappedTextStrings>g__Method|3_0(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref,byref):ubyte (FullOpts)
+; Total bytes of code 84, prolog size 8, PerfScore 20.00, instruction count 21, allocated bytes for code 84 (MethodHash=7f649bf9) for method System.Formats.Asn1.Tests.Reader.OverlappedReads:<NoOverlappedTextStrings>g__Method|3_0(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref,byref):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -89,7 +76,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
+  Function Length   : 21 (0x00015) Actual length = 84 (0x000054)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -97,7 +84,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

-12 (-16.67%) : 269845.dasm - System.Text.Json.Nodes.Tests.JsonValueTests+<>cDisplayClass160:<FromElementWrongNodeTypeThrows>b0():System.Object:this (FullOpts)

@@ -12,49 +12,42 @@
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Text.Json.JsonElement>
-;  V04 tmp2         [V04,T00] (  3,  6   )     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
-;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonElement>
-;* V06 tmp4         [V06,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V07 tmp5         [V07,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.value (fldOffset=0x1)" P-INDEP
+;  V04 tmp2         [V04,T00] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
+;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonElement>
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V07 tmp5         [V07,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.value (fldOffset=0x1)" P-INDEP
 ;* V08 tmp6         [V08    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V03._parent (fldOffset=0x0)" P-INDEP
 ;* V09 tmp7         [V09    ] (  0,  0   )     int  ->  zero-ref    single-def "field V03._idx (fldOffset=0x8)" P-INDEP
-;  V10 tmp8         [V10,T05] (  2,  2   )     ref  ->   x1         single-def "field V05._parent (fldOffset=0x0)" P-INDEP
-;* V11 tmp9         [V11,T08] (  0,  0   )     int  ->  zero-ref    single-def "field V05._idx (fldOffset=0x8)" P-INDEP
-;  V12 tmp10        [V12,T01] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V13 tmp11        [V13,T03] (  2,  4   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.Text.Json.JsonElement>
-;  V14 cse0         [V14,T04] (  3,  3   )     ref  ->   x0         "CSE - aggressive"
+;  V10 tmp8         [V10,T03] (  2,  2   )     ref  ->   x0         single-def "field V05._parent (fldOffset=0x0)" P-INDEP
+;* V11 tmp9         [V11,T06] (  0,  0   )     int  ->  zero-ref    single-def "field V05._idx (fldOffset=0x8)" P-INDEP
+;  V12 tmp10        [V12,T01] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M18200_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-            stp     xzr, xzr, [fp, #0x18]  // [V13 tmp11], [V13 tmp11+0x08]
-                       ;; size=12 bbWeight=1 PerfScore 2.50
+                       ;; size=8 bbWeight=1 PerfScore 1.50
 G_M18200_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x0]
             ldr     x0, [x0, #0x08]
-            mov     x1, x0
-            ; gcrRegs +[x1]
-            ldrsb   wzr, [x1]
-            str     x1, [fp, #0x18]    // [V13 tmp11]
-            strb    wzr, [fp, #0x28]   // [V12 tmp10]
-            strb    wzr, [fp, #0x29]   // [V12 tmp10+0x01]
-            ldr     x1, [fp, #0x20]    // [V13 tmp11+0x08]
-            ; gcrRegs -[x1]
-            ldrh    w2, [fp, #0x28]    // [V12 tmp10]
+            ldrsb   wzr, [x0]
+            strb    wzr, [fp, #0x18]   // [V12 tmp10]
+            strb    wzr, [fp, #0x19]   // [V12 tmp10+0x01]
+            ldrh    w2, [fp, #0x18]    // [V12 tmp10]
+            mov     w1, wzr
             movz    x3, #0xD1FFAB1E      // code for System.Text.Json.Nodes.JsonValue:Create(System.Text.Json.JsonElement,System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonValue
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
-                       ;; size=52 bbWeight=1 PerfScore 19.00
+                       ;; size=44 bbWeight=1 PerfScore 16.00
 G_M18200_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x30
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 72, prolog size 12, PerfScore 23.50, instruction count 18, allocated bytes for code 72 (MethodHash=e2eeb8e7) for method System.Text.Json.Nodes.Tests.JsonValueTests+<>c__DisplayClass16_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
+; Total bytes of code 60, prolog size 8, PerfScore 19.50, instruction count 15, allocated bytes for code 60 (MethodHash=e2eeb8e7) for method System.Text.Json.Nodes.Tests.JsonValueTests+<>c__DisplayClass16_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -65,7 +58,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 18 (0x00012) Actual length = 72 (0x000048)
+  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -73,7 +66,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

-12 (-16.67%) : 274789.dasm - System.Text.Json.Nodes.Tests.JsonObjectTests+<>cDisplayClass160:<FromElementWrongNodeTypeThrows>b0():System.Object:this (FullOpts)

@@ -12,49 +12,42 @@
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.Text.Json.JsonElement>
-;  V04 tmp2         [V04,T00] (  3,  6   )     ref  ->   x1         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
-;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonElement>
-;* V06 tmp4         [V06,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.hasValue (fldOffset=0x0)" P-INDEP
-;* V07 tmp5         [V07,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.value (fldOffset=0x1)" P-INDEP
+;  V04 tmp2         [V04,T00] (  3,  6   )     ref  ->   x0         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
+;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Text.Json.JsonElement>
+;* V06 tmp4         [V06,T04] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.hasValue (fldOffset=0x0)" P-INDEP
+;* V07 tmp5         [V07,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.value (fldOffset=0x1)" P-INDEP
 ;* V08 tmp6         [V08    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V03._parent (fldOffset=0x0)" P-INDEP
 ;* V09 tmp7         [V09    ] (  0,  0   )     int  ->  zero-ref    single-def "field V03._idx (fldOffset=0x8)" P-INDEP
-;  V10 tmp8         [V10,T05] (  2,  2   )     ref  ->   x1         single-def "field V05._parent (fldOffset=0x0)" P-INDEP
-;* V11 tmp9         [V11,T08] (  0,  0   )     int  ->  zero-ref    single-def "field V05._idx (fldOffset=0x8)" P-INDEP
-;  V12 tmp10        [V12,T01] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
-;  V13 tmp11        [V13,T03] (  2,  4   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.Text.Json.JsonElement>
-;  V14 cse0         [V14,T04] (  3,  3   )     ref  ->   x0         "CSE - aggressive"
+;  V10 tmp8         [V10,T03] (  2,  2   )     ref  ->   x0         single-def "field V05._parent (fldOffset=0x0)" P-INDEP
+;* V11 tmp9         [V11,T06] (  0,  0   )     int  ->  zero-ref    single-def "field V05._idx (fldOffset=0x8)" P-INDEP
+;  V12 tmp10        [V12,T01] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]>
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M65350_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x30]!
+            stp     fp, lr, [sp, #-0x20]!
             mov     fp, sp
-            stp     xzr, xzr, [fp, #0x18]  // [V13 tmp11], [V13 tmp11+0x08]
-                       ;; size=12 bbWeight=1 PerfScore 2.50
+                       ;; size=8 bbWeight=1 PerfScore 1.50
 G_M65350_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x0]
             ldr     x0, [x0, #0x08]
-            mov     x1, x0
-            ; gcrRegs +[x1]
-            ldrsb   wzr, [x1]
-            str     x1, [fp, #0x18]    // [V13 tmp11]
-            strb    wzr, [fp, #0x28]   // [V12 tmp10]
-            strb    wzr, [fp, #0x29]   // [V12 tmp10+0x01]
-            ldr     x1, [fp, #0x20]    // [V13 tmp11+0x08]
-            ; gcrRegs -[x1]
-            ldrh    w2, [fp, #0x28]    // [V12 tmp10]
+            ldrsb   wzr, [x0]
+            strb    wzr, [fp, #0x18]   // [V12 tmp10]
+            strb    wzr, [fp, #0x19]   // [V12 tmp10+0x01]
+            ldrh    w2, [fp, #0x18]    // [V12 tmp10]
+            mov     w1, wzr
             movz    x3, #0xD1FFAB1E      // code for System.Text.Json.Nodes.JsonObject:Create(System.Text.Json.JsonElement,System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonObject
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
-                       ;; size=52 bbWeight=1 PerfScore 19.00
+                       ;; size=44 bbWeight=1 PerfScore 16.00
 G_M65350_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     fp, lr, [sp], #0x30
+            ldp     fp, lr, [sp], #0x20
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 72, prolog size 12, PerfScore 23.50, instruction count 18, allocated bytes for code 72 (MethodHash=0bb900b9) for method System.Text.Json.Nodes.Tests.JsonObjectTests+<>c__DisplayClass16_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
+; Total bytes of code 60, prolog size 8, PerfScore 19.50, instruction count 15, allocated bytes for code 60 (MethodHash=0bb900b9) for method System.Text.Json.Nodes.Tests.JsonObjectTests+<>c__DisplayClass16_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -65,7 +58,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 18 (0x00012) Actual length = 72 (0x000048)
+  Function Length   : 15 (0x0000f) Actual length = 60 (0x00003c)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -73,7 +66,7 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
+    83          save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]!
     E4          end
     E4          end
 

+16 (+6.67%) : 56935.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:g_visitArgumentsAndUpdateCall|101(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)

@@ -8,9 +8,9 @@
 ; 0 inlinees with PGO data; 16 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
-;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
-;  V02 arg2         [V02,T03] (  3,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+;  V00 this         [V00,T01] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
+;  V01 arg1         [V01,T00] ( 16, 16   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
+;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (56) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -28,7 +28,7 @@
 ;* V17 tmp12        [V17    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
 ;* V18 tmp13        [V18    ] (  0,  0   )  struct ( 8) zero-ref    single-def "Inline return value spill temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V19 tmp14        [V19    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V20 tmp15        [V20,T04] (  2,  4   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V20 tmp15        [V20,T03] (  2,  4   )     ref  ->   x2         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V21 tmp16        [V21    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V03.array (fldOffset=0x0)" P-INDEP
 ;* V22 tmp17        [V22    ] (  0,  0   )     ref  ->  zero-ref    "field V06.array (fldOffset=0x0)" P-INDEP
 ;* V23 tmp18        [V23    ] (  0,  0   )     ref  ->  zero-ref    "field V09.array (fldOffset=0x0)" P-INDEP
@@ -38,31 +38,28 @@
 ;* V27 tmp22        [V27    ] (  0,  0   )    long  ->  zero-ref    "field V15._bits0 (fldOffset=0x8)" P-INDEP
 ;* V28 tmp23        [V28    ] (  0,  0   )     int  ->  zero-ref    "field V15._capacity (fldOffset=0x10)" P-INDEP
 ;* V29 tmp24        [V29    ] (  0,  0   )     ref  ->  zero-ref    "field V17.array (fldOffset=0x0)" P-INDEP
-;  V30 tmp25        [V30,T16] (  3,  2   )     ref  ->  x22         single-def "field V18.array (fldOffset=0x0)" P-INDEP
-;  V31 tmp26        [V31,T15] (  3,  2.50)     ref  ->   x2         single-def "field V19.array (fldOffset=0x0)" P-INDEP
-;  V32 tmp27        [V32    ] (  2,  4   )  struct (24) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
-;  V33 tmp28        [V33,T00] ( 13, 26   )     ref  ->  x19         single-def "argument with side effect"
-;  V34 tmp29        [V34,T05] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V35 tmp30        [V35,T11] (  2,  4   )     int  ->   x2         "argument with side effect"
-;  V36 tmp31        [V36,T06] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V37 tmp32        [V37,T07] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
-;  V38 tmp33        [V38,T08] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
-;  V39 tmp34        [V39,T09] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
-;  V40 tmp35        [V40,T12] (  2,  4   )     int  ->   x7         "argument with side effect"
-;  V41 tmp36        [V41,T13] (  2,  4   )     int  ->   x8         "argument with side effect"
-;  V42 tmp37        [V42,T14] (  2,  4   )     int  ->   x9         "argument with side effect"
-;  V43 tmp38        [V43,T10] (  2,  4   )     ref  ->  x10         single-def "argument with side effect"
+;  V30 tmp25        [V30,T13] (  3,  2   )     ref  ->   x4         single-def "field V18.array (fldOffset=0x0)" P-INDEP
+;  V31 tmp26        [V31,T12] (  3,  2.50)     ref  ->   x2         single-def "field V19.array (fldOffset=0x0)" P-INDEP
+;  V32 tmp27        [V32    ] (  2,  4   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
+;  V33 tmp28        [V33,T08] (  2,  4   )     int  ->   x3         "argument with side effect"
+;  V34 tmp29        [V34,T04] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
+;  V35 tmp30        [V35,T05] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
+;  V36 tmp31        [V36,T06] (  2,  4   )     ref  ->   x7         single-def "argument with side effect"
+;  V37 tmp32        [V37,T09] (  2,  4   )     int  ->   x1         "argument with side effect"
+;  V38 tmp33        [V38,T10] (  2,  4   )     int  ->   x0         "argument with side effect"
+;  V39 tmp34        [V39,T11] (  2,  4   )     int  ->   x8         "argument with side effect"
+;  V40 tmp35        [V40,T07] (  2,  4   )     ref  ->   x9         single-def "argument with side effect"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 88
 
 G_M26558_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             sub     sp, sp, #128
             stp     fp, lr, [sp, #0x38]
-            stp     x19, x20, [sp, #0x60]
-            stp     x21, x22, [sp, #0x70]
+            stp     x19, x20, [sp, #0x68]
+            str     x21, [sp, #0x78]
             add     fp, sp, #56
-            stp     xzr, xzr, [fp, #0x10]  // [V32 tmp27], [V32 tmp27+0x08]
-            str     xzr, [fp, #0x20]   // [V32 tmp27+0x10]
+            stp     xzr, xzr, [fp, #0x18]  // [V32 tmp27], [V32 tmp27+0x08]
+            str     xzr, [fp, #0x28]   // [V32 tmp27+0x10]
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     x19, x1
@@ -77,12 +74,12 @@ G_M26558_IG02:        ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=00
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M26558_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
-            mov     x22, xzr
-            ; gcrRegs +[x22]
+            mov     x4, xzr
+            ; gcrRegs +[x4]
             b       G_M26558_IG05
                        ;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M26558_IG04:        ; bbWeight=0.50, gcrefRegs=380004 {x2 x19 x20 x21}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x22] +[x2]
+            ; gcrRegs -[x4] +[x2]
             mov     x0, x20
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -94,75 +91,82 @@ G_M26558_IG04:        ; bbWeight=0.50, gcrefRegs=380004 {x2 x19 x20 x21}, byrefR
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs -[x2]
-            mov     x22, x0
-            ; gcrRegs +[x22]
-                       ;; size=40 bbWeight=0.50 PerfScore 4.00
-G_M26558_IG05:        ; bbWeight=1, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            ldr     x0, [x19, #0x18]
-            ; gcrRegs +[x0]
-            ldrsb   wzr, [x20]
-            mov     x1, x21
-            ; gcrRegs +[x1]
-            ldrb    w2, [x19, #0x30]
-            ldr     x3, [x19, #0x28]
-            ; gcrRegs +[x3]
-            mov     x4, x22
+            mov     x4, x0
             ; gcrRegs +[x4]
-            ldp     x5, x6, [x19, #0x40]
-            ; gcrRegs +[x5-x6]
-            ldrb    w7, [x19, #0x31]
-            ldrb    w8, [x19, #0x32]
-            ldrb    w9, [x19, #0x33]
-            ldr     x10, [x19, #0x50]
-            ; gcrRegs +[x10]
-                       ;; size=44 bbWeight=1 PerfScore 29.00
+                       ;; size=40 bbWeight=0.50 PerfScore 4.00
+G_M26558_IG05:        ; bbWeight=1, gcrefRegs=380010 {x4 x19 x20 x21}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0]
+            ldr     x2, [x19, #0x18]
+            ; gcrRegs +[x2]
+            ldrsb   wzr, [x20]
+            ldrb    w3, [x19, #0x30]
+            ldr     x5, [x19, #0x28]
+            ; gcrRegs +[x5]
+            ldp     x6, x7, [x19, #0x40]
+            ; gcrRegs +[x6-x7]
+            ldrb    w1, [x19, #0x31]
+            ldrb    w0, [x19, #0x32]
+            ldrb    w8, [x19, #0x33]
+            ldr     x9, [x19, #0x50]
+            ; gcrRegs +[x9]
+                       ;; size=36 bbWeight=1 PerfScore 28.00
 G_M26558_IG06:        ; bbWeight=1, nogc, extend
-            ldp     x11, x13, [x19, #0x58]
-            stp     x11, x13, [fp, #0x10]
-            ldr     x11, [x19, #0x68]
-            str     x11, [fp, #0x20]
+            ldp     x10, x11, [x19, #0x58]
+            stp     x10, x11, [fp, #0x18]
+            ldr     x10, [x19, #0x68]
+            str     x10, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M26558_IG07:        ; bbWeight=1, extend
-            ldrb    w11, [x19, #0x34]
-            str     w11, [sp, #0x20]   // [V05 OutArgs+0x20]
-            ldr     x11, [x19, #0x70]
-            ; gcrRegs +[x11]
-            str     x11, [sp, #0x28]   // [V05 OutArgs+0x28]
-            str     x0, [sp, #0x30]    // [V05 OutArgs+0x30]
+            ldrb    w10, [x19, #0x34]
+            str     w10, [sp, #0x20]   // [V05 OutArgs+0x20]
+            ldr     x10, [x19, #0x70]
+            ; gcrRegs +[x10]
+            str     x10, [sp, #0x28]   // [V05 OutArgs+0x28]
+            str     x2, [sp, #0x30]    // [V05 OutArgs+0x30]
+            mov     w2, w3
+            ; gcrRegs -[x2]
+            mov     x3, x5
+            ; gcrRegs +[x3]
+            mov     x5, x6
+            mov     x6, x7
+            mov     w7, w1
+            ; gcrRegs -[x7]
+            str     w0, [sp]   // [V05 OutArgs]
+            str     w8, [sp, #0x08]    // [V05 OutArgs+0x08]
+            str     x9, [sp, #0x10]    // [V05 OutArgs+0x10]
+            add     x1, fp, #24    // [V32 tmp27]
+            str     x1, [sp, #0x18]    // [V05 OutArgs+0x18]
+            mov     x1, x21
+            ; gcrRegs +[x1]
             mov     x0, x19
-            str     w8, [sp]   // [V05 OutArgs]
-            str     w9, [sp, #0x08]    // [V05 OutArgs+0x08]
-            str     x10, [sp, #0x10]   // [V05 OutArgs+0x10]
-            add     x8, fp, #16    // [V32 tmp27]
-            str     x8, [sp, #0x18]    // [V05 OutArgs+0x18]
+            ; gcrRegs +[x0]
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
             movk    x8, #0xD1FFAB1E LSL #16
             movk    x8, #0xD1FFAB1E LSL #32
             ldr     x8, [x8]
             blr     x8
-            ; gcrRegs -[x1 x3-x6 x10-x11 x19-x22]
-                       ;; size=64 bbWeight=1 PerfScore 19.50
+            ; gcrRegs -[x1 x3-x6 x9-x10 x19-x21]
+                       ;; size=88 bbWeight=1 PerfScore 22.50
 G_M26558_IG08:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x70]
-            ldp     x19, x20, [sp, #0x60]
+            ldr     x21, [sp, #0x78]
+            ldp     x19, x20, [sp, #0x68]
             ldp     fp, lr, [sp, #0x38]
             add     sp, sp, #128
             ret     lr
-                       ;; size=20 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 5.50
 
-; Total bytes of code 240, prolog size 28, PerfScore 78.25, instruction count 60, allocated bytes for code 240 (MethodHash=faef9841) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
+; Total bytes of code 256, prolog size 28, PerfScore 81.25, instruction count 64, allocated bytes for code 256 (MethodHash=faef9841) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 3
   Epilog Count      : 1
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 60 (0x0003c) Actual length = 240 (0x0000f0)
+  Function Length   : 64 (0x00040) Actual length = 256 (0x000100)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -170,9 +174,12 @@ Unwind Info:
   ---- Unwind codes ----
     E2 07       add_fp 7 (0x07); add fp, sp, #56
     ---- Epilog start at index 2 ----
-    E6          save_next
-    C8 0C       save_regp X#0 Z#12 (0x0C); stp x19, x20, [sp, #96]
+    D0 8F       save_reg X#2 Z#15 (0x0F); str x21, [sp, #120]
+    C8 0D       save_regp X#0 Z#13 (0x0D); stp x19, x20, [sp, #104]
     47          save_fplr #7 (0x07); stp fp, lr, [sp, #56]
     08          alloc_s #8 (0x08); sub sp, sp, #128 (0x080)
     E4          end
+    E4          end
+    E4          end
+    E4          end
 

+8 (+7.69%) : 269640.dasm - System.Text.Json.Serialization.Tests.JsonDocumentClass:Initialize():this (FullOpts)

@@ -8,36 +8,35 @@
 ; 1 inlinees with PGO data; 2 single block inlinees; 3 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  3,  3   )     ref  ->  x19         this class-hnd single-def <System.Text.Json.Serialization.Tests.JsonDocumentClass>
+;  V00 this         [V00,T01] (  3,  3   )     ref  ->  x19         this class-hnd single-def <System.Text.Json.Serialization.Tests.JsonDocumentClass>
 ;* V01 loc0         [V01    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Text.Json.JsonDocumentOptions>
 ;# V02 OutArgs      [V02    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Text.Json.JsonDocumentOptions>
 ;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlyMemory`1[ushort]>
 ;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlyMemory`1[ushort]>
-;* V06 tmp4         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
+;  V06 tmp4         [V06    ] (  5, 10   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
 ;* V07 tmp5         [V07    ] (  0,  0   )     int  ->  zero-ref   
-;* V08 tmp6         [V08,T05] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
+;* V08 tmp6         [V08,T07] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp7         [V09    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V10 tmp8         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V11 tmp9         [V11,T03] (  2,  4   )     ref  ->  x15         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
+;  V11 tmp9         [V11,T05] (  2,  4   )     ref  ->  x15         class-hnd exact single-def "Inlining Arg" <System.Text.Json.JsonDocument>
 ;* V12 tmp10        [V12    ] (  0,  0   )     int  ->  zero-ref    single-def "field V01._maxDepth (fldOffset=0x0)" P-INDEP
 ;* V13 tmp11        [V13    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01._commentHandling (fldOffset=0x4)" P-INDEP
 ;* V14 tmp12        [V14    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
-;* V15 tmp13        [V15,T07] (  0,  0   )     int  ->  zero-ref    single-def "field V03._maxDepth (fldOffset=0x0)" P-INDEP
-;* V16 tmp14        [V16,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._commentHandling (fldOffset=0x4)" P-INDEP
-;* V17 tmp15        [V17,T09] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
+;* V15 tmp13        [V15,T08] (  0,  0   )     int  ->  zero-ref    single-def "field V03._maxDepth (fldOffset=0x0)" P-INDEP
+;* V16 tmp14        [V16,T09] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._commentHandling (fldOffset=0x4)" P-INDEP
+;* V17 tmp15        [V17,T10] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
 ;* V18 tmp16        [V18    ] (  0,  0   )     ref  ->  zero-ref    "field V04._object (fldOffset=0x0)" P-INDEP
 ;* V19 tmp17        [V19    ] (  0,  0   )     int  ->  zero-ref    "field V04._index (fldOffset=0x8)" P-INDEP
 ;* V20 tmp18        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0xc)" P-INDEP
 ;* V21 tmp19        [V21    ] (  0,  0   )     ref  ->  zero-ref    "field V05._object (fldOffset=0x0)" P-INDEP
 ;* V22 tmp20        [V22    ] (  0,  0   )     int  ->  zero-ref    "field V05._index (fldOffset=0x8)" P-INDEP
 ;* V23 tmp21        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0xc)" P-INDEP
-;* V24 tmp22        [V24,T06] (  0,  0   )     ref  ->  zero-ref    single-def "field V06._object (fldOffset=0x0)" P-INDEP
-;* V25 tmp23        [V25,T10] (  0,  0   )     int  ->  zero-ref    single-def "field V06._index (fldOffset=0x8)" P-INDEP
-;* V26 tmp24        [V26,T11] (  0,  0   )     int  ->  zero-ref    single-def "field V06._length (fldOffset=0xc)" P-INDEP
-;  V27 tmp25        [V27,T00] (  4,  8   )  struct ( 8) [fp+0x20]  do-not-enreg[SF] "by-value struct argument" <System.Text.Json.JsonDocumentOptions>
-;  V28 tmp26        [V28,T01] (  4,  8   )  struct (16) [fp+0x10]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.ReadOnlyMemory`1[ushort]>
-;* V29 cse0         [V29,T04] (  0,  0   )     ref  ->  zero-ref    "CSE - aggressive"
+;  V24 tmp22        [V24,T02] (  3,  5   )     ref  ->  [fp+0x18]  do-not-enreg[] single-def "field V06._object (fldOffset=0x0)" P-DEP
+;  V25 tmp23        [V25,T03] (  3,  5   )     int  ->  [fp+0x20]  do-not-enreg[] single-def "field V06._index (fldOffset=0x8)" P-DEP
+;  V26 tmp24        [V26,T04] (  3,  5   )     int  ->  [fp+0x24]  do-not-enreg[] single-def "field V06._length (fldOffset=0xc)" P-DEP
+;  V27 tmp25        [V27,T00] (  4,  8   )  struct ( 8) [fp+0x10]  do-not-enreg[SF] "by-value struct argument" <System.Text.Json.JsonDocumentOptions>
+;  V28 cse0         [V28,T06] (  2,  2   )     ref  ->   x2         "CSE - aggressive"
 ;
 ; Lcl frame size = 24
 
@@ -45,22 +44,24 @@ G_M62249_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     fp, lr, [sp, #-0x30]!
             str     x19, [sp, #0x28]
             mov     fp, sp
-            stp     xzr, xzr, [fp, #0x10]  // [V28 tmp26], [V28 tmp26+0x08]
+            stp     xzr, xzr, [fp, #0x18]  // [V06 tmp4], [V06 tmp4+0x08]
             mov     x19, x0
             ; gcrRegs +[x19]
                        ;; size=20 bbWeight=1 PerfScore 4.00
 G_M62249_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            str     x0, [fp, #0x10]    // [V28 tmp26]
-            mov     w0, #129
-            stp     w0, wzr, [fp, #0x1C]   // [V28 tmp26+0x0c], [V27 tmp25]
-            strb    wzr, [fp, #0x24]   // [V27 tmp25+0x04]
-            strb    wzr, [fp, #0x25]   // [V27 tmp25+0x05]
-            ldp     x0, x1, [fp, #0x10]    // [V28 tmp26], [V28 tmp26+0x08]
+            movz    x2, #0xD1FFAB1E
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #0xD1FFAB1E LSL #32
+            str     x2, [fp, #0x18]    // [V24 tmp22]
+            str     wzr, [fp, #0x20]   // [V25 tmp23]
+            mov     w2, #129
+            str     w2, [fp, #0x24]    // [V26 tmp24]
+            str     wzr, [fp, #0x10]   // [V27 tmp25]
+            strb    wzr, [fp, #0x14]   // [V27 tmp25+0x04]
+            strb    wzr, [fp, #0x15]   // [V27 tmp25+0x05]
+            ldp     x2, x0, [fp, #0x10]    // [V27 tmp25], [V06 tmp4]
             ; gcrRegs +[x0]
-            ldr     x2, [fp, #0x20]    // [V27 tmp25]
+            ldr     x1, [fp, #0x20]    // [V06 tmp4+0x08]
             movz    x3, #0xD1FFAB1E      // code for <unknown method>
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
@@ -73,14 +74,14 @@ G_M62249_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x0 x15 x19]
             ; byrRegs -[x14]
-                       ;; size=72 bbWeight=1 PerfScore 18.50
+                       ;; size=80 bbWeight=1 PerfScore 20.50
 G_M62249_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldr     x19, [sp, #0x28]
             ldp     fp, lr, [sp], #0x30
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 4.00
 
-; Total bytes of code 104, prolog size 16, PerfScore 26.50, instruction count 26, allocated bytes for code 104 (MethodHash=de8b0cd6) for method System.Text.Json.Serialization.Tests.JsonDocumentClass:Initialize():this (FullOpts)
+; Total bytes of code 112, prolog size 16, PerfScore 28.50, instruction count 28, allocated bytes for code 112 (MethodHash=de8b0cd6) for method System.Text.Json.Serialization.Tests.JsonDocumentClass:Initialize():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -91,7 +92,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 26 (0x0001a) Actual length = 104 (0x000068)
+  Function Length   : 28 (0x0001c) Actual length = 112 (0x000070)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+8 (+10.00%) : 268442.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c:b_760():System.Object:this (FullOpts)

@@ -14,59 +14,60 @@
 ;* V03 tmp1         [V03    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <System.Text.Json.JsonDocumentOptions>
 ;* V04 tmp2         [V04    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlyMemory`1[ushort]>
 ;* V05 tmp3         [V05    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlyMemory`1[ushort]>
-;* V06 tmp4         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
+;  V06 tmp4         [V06    ] (  5, 10   )  struct (16) [fp+0x20]  do-not-enreg[SFA] multireg-arg must-init ld-addr-op "NewObj constructor temp" <System.ReadOnlyMemory`1[ushort]>
 ;* V07 tmp5         [V07    ] (  0,  0   )     int  ->  zero-ref   
 ;* V08 tmp6         [V08    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V09 tmp7         [V09    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V10 tmp8         [V10    ] (  0,  0   )     int  ->  zero-ref    single-def "field V01._maxDepth (fldOffset=0x0)" P-INDEP
 ;* V11 tmp9         [V11    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01._commentHandling (fldOffset=0x4)" P-INDEP
 ;* V12 tmp10        [V12    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
-;* V13 tmp11        [V13,T03] (  0,  0   )     int  ->  zero-ref    single-def "field V03._maxDepth (fldOffset=0x0)" P-INDEP
-;* V14 tmp12        [V14,T04] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._commentHandling (fldOffset=0x4)" P-INDEP
-;* V15 tmp13        [V15,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
+;* V13 tmp11        [V13,T04] (  0,  0   )     int  ->  zero-ref    single-def "field V03._maxDepth (fldOffset=0x0)" P-INDEP
+;* V14 tmp12        [V14,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03._commentHandling (fldOffset=0x4)" P-INDEP
+;* V15 tmp13        [V15,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03.<AllowTrailingCommas>k__BackingField (fldOffset=0x5)" P-INDEP
 ;* V16 tmp14        [V16    ] (  0,  0   )     ref  ->  zero-ref    "field V04._object (fldOffset=0x0)" P-INDEP
 ;* V17 tmp15        [V17    ] (  0,  0   )     int  ->  zero-ref    "field V04._index (fldOffset=0x8)" P-INDEP
 ;* V18 tmp16        [V18    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0xc)" P-INDEP
 ;* V19 tmp17        [V19    ] (  0,  0   )     ref  ->  zero-ref    "field V05._object (fldOffset=0x0)" P-INDEP
 ;* V20 tmp18        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V05._index (fldOffset=0x8)" P-INDEP
 ;* V21 tmp19        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0xc)" P-INDEP
-;* V22 tmp20        [V22,T02] (  0,  0   )     ref  ->  zero-ref    single-def "field V06._object (fldOffset=0x0)" P-INDEP
-;* V23 tmp21        [V23,T06] (  0,  0   )     int  ->  zero-ref    single-def "field V06._index (fldOffset=0x8)" P-INDEP
-;* V24 tmp22        [V24,T07] (  0,  0   )     int  ->  zero-ref    single-def "field V06._length (fldOffset=0xc)" P-INDEP
-;  V25 tmp23        [V25,T00] (  4,  8   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Text.Json.JsonDocumentOptions>
-;  V26 tmp24        [V26,T01] (  4,  8   )  struct (16) [fp+0x18]  do-not-enreg[SFA] multireg-arg must-init "argument with side effect" <System.ReadOnlyMemory`1[ushort]>
+;  V22 tmp20        [V22,T01] (  3,  5   )     ref  ->  [fp+0x20]  do-not-enreg[] single-def "field V06._object (fldOffset=0x0)" P-DEP
+;  V23 tmp21        [V23,T02] (  3,  5   )     int  ->  [fp+0x28]  do-not-enreg[] single-def "field V06._index (fldOffset=0x8)" P-DEP
+;  V24 tmp22        [V24,T03] (  3,  5   )     int  ->  [fp+0x2C]  do-not-enreg[] single-def "field V06._length (fldOffset=0xc)" P-DEP
+;  V25 tmp23        [V25,T00] (  4,  8   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Text.Json.JsonDocumentOptions>
 ;
 ; Lcl frame size = 32
 
 G_M36232_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x30]!
             mov     fp, sp
-            stp     xzr, xzr, [fp, #0x18]  // [V26 tmp24], [V26 tmp24+0x08]
+            stp     xzr, xzr, [fp, #0x20]  // [V06 tmp4], [V06 tmp4+0x08]
                        ;; size=12 bbWeight=1 PerfScore 2.50
 G_M36232_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-            movz    x0, #0xD1FFAB1E
-            movk    x0, #0xD1FFAB1E LSL #16
-            movk    x0, #0xD1FFAB1E LSL #32
-            str     x0, [fp, #0x18]    // [V26 tmp24]
-            mov     w0, #21
-            stp     w0, wzr, [fp, #0x24]   // [V26 tmp24+0x0c], [V25 tmp23]
-            strb    wzr, [fp, #0x2C]   // [V25 tmp23+0x04]
-            strb    wzr, [fp, #0x2D]   // [V25 tmp23+0x05]
-            ldp     x0, x1, [fp, #0x18]    // [V26 tmp24], [V26 tmp24+0x08]
+            movz    x2, #0xD1FFAB1E
+            movk    x2, #0xD1FFAB1E LSL #16
+            movk    x2, #0xD1FFAB1E LSL #32
+            str     x2, [fp, #0x20]    // [V22 tmp20]
+            str     wzr, [fp, #0x28]   // [V23 tmp21]
+            mov     w2, #21
+            str     w2, [fp, #0x2C]    // [V24 tmp22]
+            str     wzr, [fp, #0x18]   // [V25 tmp23]
+            strb    wzr, [fp, #0x1C]   // [V25 tmp23+0x04]
+            strb    wzr, [fp, #0x1D]   // [V25 tmp23+0x05]
+            ldp     x2, x0, [fp, #0x18]    // [V25 tmp23], [V06 tmp4]
             ; gcrRegs +[x0]
-            ldr     x2, [fp, #0x28]    // [V25 tmp23]
+            ldr     x1, [fp, #0x28]    // [V06 tmp4+0x08]
             movz    x3, #0xD1FFAB1E      // code for <unknown method>
             movk    x3, #0xD1FFAB1E LSL #16
             movk    x3, #0xD1FFAB1E LSL #32
             ldr     x3, [x3]
             blr     x3
-                       ;; size=60 bbWeight=1 PerfScore 16.50
+                       ;; size=68 bbWeight=1 PerfScore 18.50
 G_M36232_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x30
             ret     lr
                        ;; size=8 bbWeight=1 PerfScore 2.00
 
-; Total bytes of code 80, prolog size 12, PerfScore 21.00, instruction count 20, allocated bytes for code 80 (MethodHash=6ea77277) for method System.Text.Json.Tests.JsonDocumentTests+<>c:<CheckInvalidString>b__76_0():System.Object:this (FullOpts)
+; Total bytes of code 88, prolog size 12, PerfScore 23.00, instruction count 22, allocated bytes for code 88 (MethodHash=6ea77277) for method System.Text.Json.Tests.JsonDocumentTests+<>c:<CheckInvalidString>b__76_0():System.Object:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -77,7 +78,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 20 (0x00014) Actual length = 80 (0x000050)
+  Function Length   : 22 (0x00016) Actual length = 88 (0x000058)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

realworld.run.windows.arm64.checked.mch

-12 (-15.79%) : 12889.dasm - Microsoft.ML.Trainers.SdcaTrainerBase3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]:ApplyAt(long,Microsoft.ML.Trainers.SdcaTrainerBase3+Visitor[System.Canon,System.Canon,System.__Canon]):this (FullOpts)

@@ -9,43 +9,37 @@
 ;
 ;  V00 this         [V00,T03] (  3,  3   )     ref  ->   x0         this class-hnd single-def <Microsoft.ML.Trainers.SdcaTrainerBase`3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T00] (  5,  5   )    long  ->   x1         single-def
-;  V02 arg2         [V02,T04] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]>
+;  V02 arg2         [V02,T01] (  4,  4   )     ref  ->   x3         class-hnd single-def <Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T01] (  3,  6   )     ref  ->   x0         single-def "arr expr"
-;  V05 tmp2         [V05,T02] (  3,  6   )     ref  ->   x3         single-def "argument with side effect"
-;  V06 tmp3         [V06,T06] (  2,  4   )    long  ->   x2         "argument with side effect"
-;  V07 tmp4         [V07,T05] (  2,  4   )   byref  ->   x0         single-def "argument with side effect"
+;  V04 tmp1         [V04,T02] (  3,  6   )     ref  ->   x2         single-def "arr expr"
+;  V05 tmp2         [V05,T04] (  2,  4   )   byref  ->   x2         single-def "argument with side effect"
 ;
 ; Lcl frame size = 0
 
 G_M22309_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x10]!
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M22309_IG02:        ; bbWeight=1, gcrefRegs=0005 {x0 x2}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x0 x2]
             mov     x3, x2
             ; gcrRegs +[x3]
-            mov     x2, x1
-            ; gcrRegs -[x2]
-            ldr     x0, [x0, #0x08]
-            ldr     w4, [x0, #0x08]
-            cmp     w1, w4
-            bhs     G_M22309_IG04
-            add     x0, x0, #16
+                       ;; size=12 bbWeight=1 PerfScore 2.00
+G_M22309_IG02:        ; bbWeight=1, gcrefRegs=0009 {x0 x3}, byrefRegs=0000 {}, byref, isz
+            ; gcrRegs +[x0]
+            ldr     x2, [x0, #0x08]
+            ; gcrRegs +[x2]
+            ldr     w0, [x2, #0x08]
             ; gcrRegs -[x0]
-            ; byrRegs +[x0]
-            ubfiz   x1, x1, #2, #32
-            add     x0, x0, x1
-            mov     x1, x2
-            mov     x2, x0
+            cmp     w1, w0
+            bhs     G_M22309_IG04
+            add     x2, x2, #16
+            ; gcrRegs -[x2]
             ; byrRegs +[x2]
+            ubfiz   x0, x1, #2, #32
+            add     x2, x2, x0
             ldr     x0, [x3, #0x08]
             ; gcrRegs +[x0]
-            ; byrRegs -[x0]
             ldr     x3, [x3, #0x18]
             ; gcrRegs -[x3]
-                       ;; size=52 bbWeight=1 PerfScore 17.50
+                       ;; size=36 bbWeight=1 PerfScore 15.50
 G_M22309_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             br      x3
@@ -59,7 +53,7 @@ G_M22309_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_windows #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 76, prolog size 8, PerfScore 21.00, instruction count 19, allocated bytes for code 76 (MethodHash=cc0aa8da) for method Microsoft.ML.Trainers.SdcaTrainerBase`3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]:ApplyAt(long,Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]):this (FullOpts)
+; Total bytes of code 64, prolog size 12, PerfScore 19.50, instruction count 16, allocated bytes for code 64 (MethodHash=cc0aa8da) for method Microsoft.ML.Trainers.SdcaTrainerBase`3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]:ApplyAt(long,Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -70,7 +64,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 19 (0x00013) Actual length = 76 (0x00004c)
+  Function Length   : 16 (0x00010) Actual length = 64 (0x000040)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-20 (-14.29%) : 25234.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)

@@ -8,9 +8,9 @@
 ; 0 inlinees with PGO data; 11 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  4,  4   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
-;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
-;  V02 arg2         [V02,T03] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
+;  V00 this         [V00,T00] ( 13, 13   )     ref  ->   x0         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
+;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->   x1         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->   x2         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol>
 ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (48) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[System.String]>
@@ -22,7 +22,7 @@
 ;* V11 tmp7         [V11    ] (  0,  0   )  struct (24) zero-ref    "impAppendStmt" <Microsoft.CodeAnalysis.BitVector>
 ;* V12 tmp8         [V12    ] (  0,  0   )     int  ->  zero-ref    "impAppendStmt"
 ;* V13 tmp9         [V13    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
-;  V14 tmp10        [V14,T04] (  2,  2   )     ref  ->   x3         single-def "field V03.array (fldOffset=0x0)" P-INDEP
+;  V14 tmp10        [V14,T03] (  2,  2   )     ref  ->   x3         single-def "field V03.array (fldOffset=0x0)" P-INDEP
 ;* V15 tmp11        [V15    ] (  0,  0   )     ref  ->  zero-ref    "field V05.array (fldOffset=0x0)" P-INDEP
 ;* V16 tmp12        [V16    ] (  0,  0   )     ref  ->  zero-ref    "field V06.array (fldOffset=0x0)" P-INDEP
 ;* V17 tmp13        [V17    ] (  0,  0   )     ref  ->  zero-ref    "field V10.array (fldOffset=0x0)" P-INDEP
@@ -31,16 +31,12 @@
 ;* V20 tmp16        [V20    ] (  0,  0   )     int  ->  zero-ref    "field V11._capacity (fldOffset=0x10)" P-INDEP
 ;* V21 tmp17        [V21    ] (  0,  0   )     ref  ->  zero-ref    "field V13.array (fldOffset=0x0)" P-INDEP
 ;  V22 tmp18        [V22    ] (  2,  4   )  struct (24) [fp+0x18]  do-not-enreg[XS] addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
-;  V23 tmp19        [V23,T00] ( 11, 22   )     ref  ->   x4         single-def "argument with side effect"
-;  V24 tmp20        [V24,T05] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V25 tmp21        [V25,T06] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
-;  V26 tmp22        [V26,T07] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V27 tmp23        [V27,T08] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
-;  V28 tmp24        [V28,T09] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
-;  V29 tmp25        [V29,T11] (  2,  4   )     int  ->   x7         "argument with side effect"
-;  V30 tmp26        [V30,T12] (  2,  4   )     int  ->   x8         "argument with side effect"
-;  V31 tmp27        [V31,T13] (  2,  4   )     int  ->   x9         "argument with side effect"
-;  V32 tmp28        [V32,T10] (  2,  4   )     ref  ->  x10         single-def "argument with side effect"
+;  V23 tmp19        [V23,T04] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
+;  V24 tmp20        [V24,T05] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
+;  V25 tmp21        [V25,T07] (  2,  4   )     int  ->   x6         "argument with side effect"
+;  V26 tmp22        [V26,T08] (  2,  4   )     int  ->   x7         "argument with side effect"
+;  V27 tmp23        [V27,T09] (  2,  4   )     int  ->   x8         "argument with side effect"
+;  V28 tmp24        [V28,T06] (  2,  4   )     ref  ->   x9         single-def "argument with side effect"
 ;
 ; Lcl frame size = 80
 
@@ -51,37 +47,30 @@ G_M55914_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=12 bbWeight=1 PerfScore 2.00
 G_M55914_IG02:        ; bbWeight=1, gcrefRegs=000F {x0 x1 x2 x3}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x0-x3]
-            mov     x4, x0
-            ; gcrRegs +[x4]
-            ldp     x5, x6, [x4, #0x40]
-            ; gcrRegs +[x5-x6]
-            ldrb    w7, [x4, #0x30]
-            ldrb    w8, [x4, #0x31]
-            ldrb    w9, [x4, #0x32]
-            ldr     x10, [x4, #0x50]
-            ; gcrRegs +[x10]
-                       ;; size=24 bbWeight=1 PerfScore 16.50
+            ldp     x4, x5, [x0, #0x40]
+            ; gcrRegs +[x4-x5]
+            ldrb    w6, [x0, #0x30]
+            ldrb    w7, [x0, #0x31]
+            ldrb    w8, [x0, #0x32]
+            ldr     x9, [x0, #0x50]
+            ; gcrRegs +[x9]
+                       ;; size=20 bbWeight=1 PerfScore 16.00
 G_M55914_IG03:        ; bbWeight=1, nogc, extend
-            ldp     x11, x13, [x4, #0x58]
-            stp     x11, x13, [fp, #0x18]
-            ldr     x11, [x4, #0x68]
-            str     x11, [fp, #0x28]
+            ldp     x10, x11, [x0, #0x58]
+            stp     x10, x11, [fp, #0x18]
+            ldr     x10, [x0, #0x68]
+            str     x10, [fp, #0x28]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M55914_IG04:        ; bbWeight=1, extend
-            ldrb    w11, [x4, #0x33]
-            str     w11, [sp, #0x18]   // [V04 OutArgs+0x18]
-            ldr     x11, [x4, #0x70]
-            ; gcrRegs +[x11]
-            str     x11, [sp, #0x20]   // [V04 OutArgs+0x20]
-            ldr     x4, [x4, #0x18]
-            str     x4, [sp, #0x28]    // [V04 OutArgs+0x28]
-            mov     x4, x5
-            mov     x5, x6
-            mov     w6, w7
-            ; gcrRegs -[x6]
-            mov     w7, w8
-            str     w9, [sp]   // [V04 OutArgs]
-            str     x10, [sp, #0x08]   // [V04 OutArgs+0x08]
+            ldrb    w10, [x0, #0x33]
+            str     w10, [sp, #0x18]   // [V04 OutArgs+0x18]
+            ldr     x10, [x0, #0x70]
+            ; gcrRegs +[x10]
+            str     x10, [sp, #0x20]   // [V04 OutArgs+0x20]
+            ldr     x10, [x0, #0x18]
+            str     x10, [sp, #0x28]   // [V04 OutArgs+0x28]
+            str     w8, [sp]   // [V04 OutArgs]
+            str     x9, [sp, #0x08]    // [V04 OutArgs+0x08]
             add     x8, fp, #24    // [V22 tmp18]
             str     x8, [sp, #0x10]    // [V04 OutArgs+0x10]
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
@@ -89,15 +78,15 @@ G_M55914_IG04:        ; bbWeight=1, extend
             movk    x8, #0xD1FFAB1E LSL #32
             ldr     x8, [x8]
             blr     x8
-            ; gcrRegs -[x1-x5 x10-x11]
-                       ;; size=76 bbWeight=1 PerfScore 23.00
+            ; gcrRegs -[x1-x5 x9-x10]
+                       ;; size=60 bbWeight=1 PerfScore 21.00
 G_M55914_IG05:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp, #0x30]
             add     sp, sp, #96
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 2.50
 
-; Total bytes of code 140, prolog size 12, PerfScore 53.00, instruction count 35, allocated bytes for code 140 (MethodHash=00902595) for method Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
+; Total bytes of code 120, prolog size 12, PerfScore 50.50, instruction count 30, allocated bytes for code 120 (MethodHash=00902595) for method Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -108,7 +97,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 35 (0x00023) Actual length = 140 (0x00008c)
+  Function Length   : 30 (0x0001e) Actual length = 120 (0x000078)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-12 (-9.38%) : 13856.dasm - Microsoft.ML.Transforms.Text.TextFeaturizingEstimator+Transformer:.ctor(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Data.TransformerChain`1[Microsoft.ML.ITransformer]):this (FullOpts)

@@ -17,40 +17,34 @@
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Nullable`1[int]>
 ;* V07 tmp2         [V07    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03.hasValue (fldOffset=0x0)" P-INDEP
 ;* V08 tmp3         [V08    ] (  0,  0   )     int  ->  zero-ref    single-def "field V03.value (fldOffset=0x4)" P-INDEP
-;* V09 tmp4         [V09,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V04.hasValue (fldOffset=0x0)" P-INDEP
-;* V10 tmp5         [V10,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V04.value (fldOffset=0x1)" P-INDEP
-;* V11 tmp6         [V11,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V06.hasValue (fldOffset=0x0)" P-INDEP
-;* V12 tmp7         [V12,T09] (  0,  0   )     int  ->  zero-ref    single-def "field V06.value (fldOffset=0x4)" P-INDEP
-;  V13 tmp8         [V13,T01] (  3,  6   )  struct ( 8) [fp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
-;  V14 tmp9         [V14,T02] (  3,  6   )  struct ( 8) [fp+0x20]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[ubyte]>
-;  V15 tmp10        [V15,T05] (  2,  4   )     ref  ->   x0         single-def "argument with side effect"
-;  TEMP_01                                   byref  ->  [fp+0x18]
+;* V09 tmp4         [V09,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V04.hasValue (fldOffset=0x0)" P-INDEP
+;* V10 tmp5         [V10,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V04.value (fldOffset=0x1)" P-INDEP
+;* V11 tmp6         [V11,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V06.hasValue (fldOffset=0x0)" P-INDEP
+;* V12 tmp7         [V12,T08] (  0,  0   )     int  ->  zero-ref    single-def "field V06.value (fldOffset=0x4)" P-INDEP
+;  V13 tmp8         [V13,T01] (  3,  6   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
+;  V14 tmp9         [V14,T02] (  3,  6   )  struct ( 8) [fp+0x10]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[ubyte]>
 ;
-; Lcl frame size = 32
+; Lcl frame size = 16
 
 G_M25941_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x40]!
-            stp     x19, x20, [sp, #0x30]
+            stp     fp, lr, [sp, #-0x30]!
+            stp     x19, x20, [sp, #0x20]
             mov     fp, sp
-            str     xzr, [fp, #0x18]   // [TEMP_01]
             mov     x19, x0
             ; gcrRegs +[x19]
             mov     x20, x2
             ; gcrRegs +[x20]
-                       ;; size=24 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 3.50
 G_M25941_IG02:        ; bbWeight=1, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=0000 {}, byref
             ; gcrRegs +[x1]
-            add     x14, x19, #8
-            ; byrRegs +[x14]
-            str     x14, [fp, #0x18]   // [TEMP_01]
+            strb    wzr, [fp, #0x18]   // [V13 tmp8]
+            str     wzr, [fp, #0x1C]   // [V13 tmp8+0x04]
+            strb    wzr, [fp, #0x10]   // [V14 tmp9]
+            strb    wzr, [fp, #0x11]   // [V14 tmp9+0x01]
+            ldr     x2, [fp, #0x18]    // [V13 tmp8]
+            ldrh    w3, [fp, #0x10]    // [V14 tmp9]
             mov     x0, x1
             ; gcrRegs +[x0]
-            strb    wzr, [fp, #0x28]   // [V13 tmp8]
-            str     wzr, [fp, #0x2C]   // [V13 tmp8+0x04]
-            strb    wzr, [fp, #0x20]   // [V14 tmp9]
-            strb    wzr, [fp, #0x21]   // [V14 tmp9+0x01]
-            ldr     x2, [fp, #0x28]    // [V13 tmp8]
-            ldrh    w3, [fp, #0x20]    // [V14 tmp9]
             movz    x11, #0xD1FFAB1E      // code for <unknown method>
             movk    x11, #0xD1FFAB1E LSL #16
             movk    x11, #0xD1FFAB1E LSL #32
@@ -60,8 +54,7 @@ G_M25941_IG02:        ; bbWeight=1, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=000
             movk    x1, #0xD1FFAB1E LSL #32
             ldr     x4, [x11]
             blr     x4
-            ; byrRegs -[x14]
-            ldr     x14, [fp, #0x18]   // [TEMP_01]
+            add     x14, x19, #8
             ; byrRegs +[x14]
             mov     x15, x0
             ; gcrRegs +[x15]
@@ -75,14 +68,14 @@ G_M25941_IG02:        ; bbWeight=1, gcrefRegs=180002 {x1 x19 x20}, byrefRegs=000
             bl      CORINFO_HELP_ASSIGN_REF
             ; gcrRegs -[x15 x19-x20]
             ; byrRegs -[x14]
-                       ;; size=92 bbWeight=1 PerfScore 22.50
+                       ;; size=84 bbWeight=1 PerfScore 19.50
 G_M25941_IG03:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x19, x20, [sp, #0x30]
-            ldp     fp, lr, [sp], #0x40
+            ldp     x19, x20, [sp, #0x20]
+            ldp     fp, lr, [sp], #0x30
             ret     lr
                        ;; size=12 bbWeight=1 PerfScore 3.00
 
-; Total bytes of code 128, prolog size 16, PerfScore 30.00, instruction count 32, allocated bytes for code 128 (MethodHash=3a149aaa) for method Microsoft.ML.Transforms.Text.TextFeaturizingEstimator+Transformer:.ctor(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Data.TransformerChain`1[Microsoft.ML.ITransformer]):this (FullOpts)
+; Total bytes of code 116, prolog size 12, PerfScore 26.00, instruction count 29, allocated bytes for code 116 (MethodHash=3a149aaa) for method Microsoft.ML.Transforms.Text.TextFeaturizingEstimator+Transformer:.ctor(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Data.TransformerChain`1[Microsoft.ML.ITransformer]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -93,7 +86,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 32 (0x00020) Actual length = 128 (0x000080)
+  Function Length   : 29 (0x0001d) Actual length = 116 (0x000074)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -101,8 +94,8 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
-    C8 06       save_regp X#0 Z#6 (0x06); stp x19, x20, [sp, #48]
-    87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
+    C8 04       save_regp X#0 Z#4 (0x04); stp x19, x20, [sp, #32]
+    85          save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]!
     E4          end
     E4          end
     E4          end

+20 (+4.00%) : 23810.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:VisitDoStatement(Microsoft.CodeAnalysis.CSharp.BoundDoStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)

@@ -8,15 +8,15 @@
 ; 0 inlinees with PGO data; 10 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 29, 28   )     ref  ->  x19         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]>
+;  V00 this         [V00,T00] ( 26, 25   )     ref  ->  x19         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]>
 ;  V01 arg1         [V01,T01] ( 10,  8.50)     ref  ->  x20         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundDoStatement>
 ;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.GeneratedLabelSymbol>
-;  V05 tmp2         [V05,T02] (  3,  6   )     ref  ->  x22         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+;  V05 tmp2         [V05,T02] (  3,  6   )     ref  ->  x23         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.BoundExpression>
 ;* V06 tmp3         [V06    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
 ;* V07 tmp4         [V07    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
-;  V08 tmp5         [V08    ] (  5,  4   )  struct ( 8) [fp+0x20]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
+;  V08 tmp5         [V08    ] (  5,  4   )  struct ( 8) [fp+0x28]  do-not-enreg[XS] must-init addr-exposed ld-addr-op "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
 ;* V09 tmp6         [V09    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
 ;  V10 tmp7         [V10,T03] (  3,  6   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;  V11 tmp8         [V11,T04] (  4,  4   )   byref  ->   x0         single-def "Inline stloc first use temp"
@@ -24,49 +24,51 @@
 ;  V13 tmp10        [V13,T06] (  3,  3   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <<unknown class>>
 ;* V14 tmp11        [V14    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
 ;* V15 tmp12        [V15    ] (  0,  0   )   ubyte  ->  zero-ref    "Inline stloc first use temp"
-;  V16 tmp13        [V16    ] (  5, 10   )  struct ( 8) [fp+0x18]  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
+;  V16 tmp13        [V16    ] (  5, 10   )  struct ( 8) [fp+0x20]  do-not-enreg[XS] addr-exposed ld-addr-op "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
 ;* V17 tmp14        [V17    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.GeneratedLabelSymbol>
 ;* V18 tmp15        [V18    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
 ;* V19 tmp16        [V19    ] (  0,  0   )  struct ( 8) zero-ref    "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
-;  V20 tmp17        [V20,T09] (  2,  2   )   ubyte  ->  x22         single-def "field V02.Alive (fldOffset=0x0)" P-INDEP
-;  V21 tmp18        [V21,T10] (  2,  2   )   ubyte  ->  x23         single-def "field V02.Reported (fldOffset=0x1)" P-INDEP
+;  V20 tmp17        [V20,T11] (  2,  2   )   ubyte  ->  x23         single-def "field V02.Alive (fldOffset=0x0)" P-INDEP
+;  V21 tmp18        [V21,T12] (  2,  2   )   ubyte  ->  x24         single-def "field V02.Reported (fldOffset=0x1)" P-INDEP
 ;* V22 tmp19        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V06.Alive (fldOffset=0x0)" P-INDEP
 ;* V23 tmp20        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V06.Reported (fldOffset=0x1)" P-INDEP
-;  V24 tmp21        [V24,T11] (  2,  2   )   ubyte  ->   x0         single-def "field V07.Alive (fldOffset=0x0)" P-INDEP
-;  V25 tmp22        [V25,T12] (  2,  2   )   ubyte  ->   x1         single-def "field V07.Reported (fldOffset=0x1)" P-INDEP
-;  V26 tmp23        [V26    ] (  3,  2.50)   ubyte  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V08.Alive (fldOffset=0x0)" P-DEP
-;  V27 tmp24        [V27    ] (  3,  2.50)   ubyte  ->  [fp+0x21]  do-not-enreg[X] addr-exposed "field V08.Reported (fldOffset=0x1)" P-DEP
-;  V28 tmp25        [V28,T13] (  2,  2   )   ubyte  ->   x2         single-def "field V09.Alive (fldOffset=0x0)" P-INDEP
-;  V29 tmp26        [V29,T14] (  2,  2   )   ubyte  ->   x1         single-def "field V09.Reported (fldOffset=0x1)" P-INDEP
+;  V24 tmp21        [V24,T13] (  2,  2   )   ubyte  ->   x0         single-def "field V07.Alive (fldOffset=0x0)" P-INDEP
+;  V25 tmp22        [V25,T14] (  2,  2   )   ubyte  ->   x1         single-def "field V07.Reported (fldOffset=0x1)" P-INDEP
+;  V26 tmp23        [V26    ] (  3,  2.50)   ubyte  ->  [fp+0x28]  do-not-enreg[X] addr-exposed "field V08.Alive (fldOffset=0x0)" P-DEP
+;  V27 tmp24        [V27    ] (  3,  2.50)   ubyte  ->  [fp+0x29]  do-not-enreg[X] addr-exposed "field V08.Reported (fldOffset=0x1)" P-DEP
+;  V28 tmp25        [V28,T15] (  2,  2   )   ubyte  ->   x2         single-def "field V09.Alive (fldOffset=0x0)" P-INDEP
+;  V29 tmp26        [V29,T16] (  2,  2   )   ubyte  ->   x1         single-def "field V09.Reported (fldOffset=0x1)" P-INDEP
 ;* V30 tmp27        [V30    ] (  0,  0   )   ubyte  ->  zero-ref    "field V12.Alive (fldOffset=0x0)" P-INDEP
 ;* V31 tmp28        [V31    ] (  0,  0   )   ubyte  ->  zero-ref    "field V12.Reported (fldOffset=0x1)" P-INDEP
-;  V32 tmp29        [V32,T17] (  2,  1   )   ubyte  ->   x1         single-def "field V14.Alive (fldOffset=0x0)" P-INDEP
-;  V33 tmp30        [V33,T18] (  2,  1   )   ubyte  ->   x2         single-def "field V14.Reported (fldOffset=0x1)" P-INDEP
-;  V34 tmp31        [V34    ] (  3,  4   )   ubyte  ->  [fp+0x18]  do-not-enreg[X] addr-exposed "field V16.Alive (fldOffset=0x0)" P-DEP
-;  V35 tmp32        [V35    ] (  3,  4   )   ubyte  ->  [fp+0x19]  do-not-enreg[X] addr-exposed "field V16.Reported (fldOffset=0x1)" P-DEP
+;  V32 tmp29        [V32,T19] (  2,  1   )   ubyte  ->   x2         single-def "field V14.Alive (fldOffset=0x0)" P-INDEP
+;  V33 tmp30        [V33,T20] (  2,  1   )   ubyte  ->   x1         single-def "field V14.Reported (fldOffset=0x1)" P-INDEP
+;  V34 tmp31        [V34    ] (  3,  4   )   ubyte  ->  [fp+0x20]  do-not-enreg[X] addr-exposed "field V16.Alive (fldOffset=0x0)" P-DEP
+;  V35 tmp32        [V35    ] (  3,  4   )   ubyte  ->  [fp+0x21]  do-not-enreg[X] addr-exposed "field V16.Reported (fldOffset=0x1)" P-DEP
 ;* V36 tmp33        [V36    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V18.Alive (fldOffset=0x0)" P-INDEP
 ;* V37 tmp34        [V37    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V18.Reported (fldOffset=0x1)" P-INDEP
-;  V38 tmp35        [V38,T15] (  2,  2   )   ubyte  ->   x0         single-def "field V19.Alive (fldOffset=0x0)" P-INDEP
-;  V39 tmp36        [V39,T16] (  2,  2   )   ubyte  ->   x1         single-def "field V19.Reported (fldOffset=0x1)" P-INDEP
-;  V40 tmp37        [V40,T07] (  3,  3   )  struct ( 8) [fp+0x10]  do-not-enreg[SF] "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
-;  V41 tmp38        [V41,T08] (  2,  2   )     ref  ->   x0         single-def "argument with side effect"
-;* V42 tmp39        [V42,T19] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V43 cse0         [V43,T05] (  4,  4   )    long  ->  x21         "CSE - aggressive"
+;  V38 tmp35        [V38,T17] (  2,  2   )   ubyte  ->   x0         single-def "field V19.Alive (fldOffset=0x0)" P-INDEP
+;  V39 tmp36        [V39,T18] (  2,  2   )   ubyte  ->   x1         single-def "field V19.Reported (fldOffset=0x1)" P-INDEP
+;  V40 tmp37        [V40,T10] (  3,  3   )  struct ( 8) [fp+0x18]  do-not-enreg[SF] "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState>
+;  V41 cse0         [V41,T05] (  4,  4   )    long  ->  x21         "CSE - aggressive"
+;  V42 cse1         [V42,T07] (  3,  3   )   byref  ->  x22         "CSE - aggressive"
+;  V43 cse2         [V43,T08] (  3,  3   )   byref  ->  x25         "CSE - aggressive"
+;  V44 cse3         [V44,T09] (  3,  3   )   byref  ->  x26         "CSE - aggressive"
 ;
-; Lcl frame size = 24
+; Lcl frame size = 32
 
 G_M21086_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            stp     fp, lr, [sp, #-0x50]!
-            stp     x19, x20, [sp, #0x28]
-            stp     x21, x22, [sp, #0x38]
-            str     x23, [sp, #0x48]
+            stp     fp, lr, [sp, #-0x70]!
+            stp     x19, x20, [sp, #0x30]
+            stp     x21, x22, [sp, #0x40]
+            stp     x23, x24, [sp, #0x50]
+            stp     x25, x26, [sp, #0x60]
             mov     fp, sp
-            str     xzr, [fp, #0x20]   // [V08 tmp5]
+            str     xzr, [fp, #0x28]   // [V08 tmp5]
             mov     x19, x0
             ; gcrRegs +[x19]
             mov     x20, x1
             ; gcrRegs +[x20]
-                       ;; size=32 bbWeight=1 PerfScore 6.50
+                       ;; size=36 bbWeight=1 PerfScore 7.50
 G_M21086_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref, isz
             mov     x0, x19
             ; gcrRegs +[x0]
@@ -89,7 +91,9 @@ G_M21086_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ; gcrRegs -[x0-x1]
             ldr     x2, [x20, #0x20]
             ; gcrRegs +[x2]
-            add     x1, x19, #116
+            add     x22, x19, #116
+            ; byrRegs +[x22]
+            mov     x1, x22
             ; byrRegs +[x1]
             mov     x0, x19
             ; gcrRegs +[x0]
@@ -100,31 +104,35 @@ G_M21086_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             blr     x3
             ; gcrRegs -[x0 x2]
             ; byrRegs -[x1]
-            ldr     x22, [x20, #0x28]
-            ; gcrRegs +[x22]
+            ldr     x23, [x20, #0x28]
+            ; gcrRegs +[x23]
             mov     x0, x19
             ; gcrRegs +[x0]
-            mov     x1, x22
+            mov     x1, x23
             ; gcrRegs +[x1]
             ldr     x2, [x21, #0x48]
             ldr     x2, [x2, #0x20]
             blr     x2
             ; gcrRegs -[x1]
             mov     x0, x19
-            mov     x1, x22
+            mov     x1, x23
             ; gcrRegs +[x1]
             movz    x2, #0xD1FFAB1E      // code for Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:AdjustConditionalState(Microsoft.CodeAnalysis.CSharp.BoundExpression):this
             movk    x2, #0xD1FFAB1E LSL #16
             movk    x2, #0xD1FFAB1E LSL #32
             ldr     x2, [x2]
             blr     x2
-            ; gcrRegs -[x0-x1 x22]
-            ldrb    w22, [x19, #0x78]
-            ldrb    w23, [x19, #0x79]
+            ; gcrRegs -[x0-x1 x23]
+            ldrb    w23, [x19, #0x78]
+            ldrb    w24, [x19, #0x79]
             ldrb    w0, [x19, #0x76]
             ldrb    w1, [x19, #0x77]
-            strh    wzr, [x19, #0x78]
-            strh    wzr, [x19, #0x76]
+            add     x25, x19, #120
+            ; byrRegs +[x25]
+            strh    wzr, [x25]
+            add     x26, x19, #118
+            ; byrRegs +[x26]
+            strh    wzr, [x26]
             strb    wzr, [x19, #0x71]
             strb    w0, [x19, #0x74]
             strb    w1, [x19, #0x75]
@@ -143,11 +151,11 @@ G_M21086_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             cbz     x0, G_M21086_IG06
             ldrb    w2, [x0]
             ldrb    w1, [x0, #0x01]
-            strb    w2, [fp, #0x20]    // [V26 tmp23]
-            strb    w1, [fp, #0x21]    // [V27 tmp24]
-            add     x2, x19, #116
+            strb    w2, [fp, #0x28]    // [V26 tmp23]
+            strb    w1, [fp, #0x29]    // [V27 tmp24]
+            mov     x2, x22
             ; byrRegs +[x2]
-            add     x1, fp, #32    // [V08 tmp5]
+            add     x1, fp, #40    // [V08 tmp5]
             mov     x0, x19
             ; gcrRegs +[x0]
             ; byrRegs -[x0]
@@ -155,20 +163,20 @@ G_M21086_IG02:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ldr     x3, [x3, #0x10]
             blr     x3
             ; gcrRegs -[x0]
-            ; byrRegs -[x2]
+            ; byrRegs -[x2 x22]
             cbz     w0, G_M21086_IG04
-                       ;; size=252 bbWeight=1 PerfScore 94.50
-G_M21086_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
+                       ;; size=264 bbWeight=1 PerfScore 96.00
+G_M21086_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=6000000 {x25 x26}, byref
             ldr     x0, [x19, #0x58]
             ; gcrRegs +[x0]
-            ldrb    w1, [fp, #0x20]    // [V26 tmp23]
-            ldrb    w2, [fp, #0x21]    // [V27 tmp24]
+            ldrb    w2, [fp, #0x28]    // [V26 tmp23]
+            ldrb    w1, [fp, #0x29]    // [V27 tmp24]
             ldrsb   wzr, [x0]
-            strb    w1, [fp, #0x10]    // [V40 tmp37]
-            strb    w2, [fp, #0x11]    // [V40 tmp37+0x01]
+            strb    w2, [fp, #0x18]    // [V40 tmp37]
+            strb    w1, [fp, #0x19]    // [V40 tmp37+0x01]
+            ldrh    w2, [fp, #0x18]    // [V40 tmp37]
             mov     x1, x20
             ; gcrRegs +[x1]
-            ldrh    w2, [fp, #0x10]    // [V40 tmp37]
             mov     w3, #1
             movz    x4, #0xD1FFAB1E      // code for <unknown method>
             movk    x4, #0xD1FFAB1E LSL #16
@@ -184,12 +192,12 @@ G_M21086_IG03:        ; bbWeight=0.50, gcrefRegs=180000 {x19 x20}, byrefRegs=000
             mov     w2, #1
             strb    w2, [x19, #0x70]
                        ;; size=84 bbWeight=0.50 PerfScore 13.75
-G_M21086_IG04:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {}, byref
-            strb    w22, [fp, #0x18]   // [V34 tmp31]
-            strb    w23, [fp, #0x19]   // [V35 tmp32]
+G_M21086_IG04:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=6000000 {x25 x26}, byref
+            strb    w23, [fp, #0x20]   // [V34 tmp31]
+            strb    w24, [fp, #0x21]   // [V35 tmp32]
             ldr     x2, [x20, #0x18]
             ; gcrRegs +[x2]
-            add     x1, fp, #24    // [V16 tmp13]
+            add     x1, fp, #32    // [V16 tmp13]
             mov     x0, x19
             ; gcrRegs +[x0]
             movz    x3, #0xD1FFAB1E      // code for Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:JoinPendingBranches(byref,Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol):this
@@ -198,24 +206,26 @@ G_M21086_IG04:        ; bbWeight=1, gcrefRegs=180000 {x19 x20}, byrefRegs=0000 {
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs -[x0 x2 x20]
-            ldrb    w0, [fp, #0x18]    // [V34 tmp31]
-            ldrb    w1, [fp, #0x19]    // [V35 tmp32]
-            strh    wzr, [x19, #0x78]
-            strh    wzr, [x19, #0x76]
+            ldrb    w0, [fp, #0x20]    // [V34 tmp31]
+            ldrb    w1, [fp, #0x21]    // [V35 tmp32]
+            strh    wzr, [x25]
+            strh    wzr, [x26]
             strb    wzr, [x19, #0x71]
             strb    w0, [x19, #0x74]
             strb    w1, [x19, #0x75]
             mov     x0, xzr
                        ;; size=72 bbWeight=1 PerfScore 21.00
 G_M21086_IG05:        ; bbWeight=1, epilog, nogc, extend
-            ldr     x23, [sp, #0x48]
-            ldp     x21, x22, [sp, #0x38]
-            ldp     x19, x20, [sp, #0x28]
-            ldp     fp, lr, [sp], #0x50
+            ldp     x25, x26, [sp, #0x60]
+            ldp     x23, x24, [sp, #0x50]
+            ldp     x21, x22, [sp, #0x40]
+            ldp     x19, x20, [sp, #0x30]
+            ldp     fp, lr, [sp], #0x70
             ret     lr
-                       ;; size=20 bbWeight=1 PerfScore 6.00
+                       ;; size=24 bbWeight=1 PerfScore 6.00
 G_M21086_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=0000 {}, gcvars, byref
             ; gcrRegs -[x19] +[x20]
+            ; byrRegs -[x25-x26]
             mov     x1, x20
             ; gcrRegs +[x1]
...

+16 (+6.90%) : 26188.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:g_visitArgumentsAndUpdateCall|101(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)

@@ -8,9 +8,9 @@
 ; 0 inlinees with PGO data; 15 single block inlinees; 1 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T02] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
-;  V01 arg1         [V01,T01] (  5,  5   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
-;  V02 arg2         [V02,T03] (  3,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
+;  V00 this         [V00,T01] (  4,  3.50)     ref  ->  x20         this class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2>
+;  V01 arg1         [V01,T00] ( 15, 15   )     ref  ->  x19         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundCall>
+;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->  x21         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.BoundExpression>
 ;* V03 loc0         [V03    ] (  0,  0   )  struct ( 8) zero-ref    <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V04 loc1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (48) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -27,7 +27,7 @@
 ;* V16 tmp11        [V16    ] (  0,  0   )  struct ( 8) zero-ref    "spilled call-like call argument" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]>
 ;* V17 tmp12        [V17    ] (  0,  0   )  struct ( 8) zero-ref    single-def "Inline return value spill temp" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
 ;* V18 tmp13        [V18    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "Inlining Arg" <System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]>
-;  V19 tmp14        [V19,T04] (  2,  4   )     ref  ->   x0         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
+;  V19 tmp14        [V19,T03] (  2,  4   )     ref  ->   x2         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol>
 ;* V20 tmp15        [V20    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V03.array (fldOffset=0x0)" P-INDEP
 ;* V21 tmp16        [V21    ] (  0,  0   )     ref  ->  zero-ref    "field V06.array (fldOffset=0x0)" P-INDEP
 ;* V22 tmp17        [V22    ] (  0,  0   )     ref  ->  zero-ref    "field V08.array (fldOffset=0x0)" P-INDEP
@@ -37,30 +37,27 @@
 ;* V26 tmp21        [V26    ] (  0,  0   )    long  ->  zero-ref    "field V14._bits0 (fldOffset=0x8)" P-INDEP
 ;* V27 tmp22        [V27    ] (  0,  0   )     int  ->  zero-ref    "field V14._capacity (fldOffset=0x10)" P-INDEP
 ;* V28 tmp23        [V28    ] (  0,  0   )     ref  ->  zero-ref    "field V16.array (fldOffset=0x0)" P-INDEP
-;  V29 tmp24        [V29,T15] (  3,  2   )     ref  ->  x22         single-def "field V17.array (fldOffset=0x0)" P-INDEP
-;  V30 tmp25        [V30,T14] (  3,  2.50)     ref  ->   x2         single-def "field V18.array (fldOffset=0x0)" P-INDEP
-;  V31 tmp26        [V31    ] (  2,  4   )  struct (24) [fp+0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
-;  V32 tmp27        [V32,T00] ( 12, 24   )     ref  ->  x19         single-def "argument with side effect"
-;  V33 tmp28        [V33,T05] (  2,  4   )     ref  ->   x1         single-def "argument with side effect"
-;  V34 tmp29        [V34,T06] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
-;  V35 tmp30        [V35,T07] (  2,  4   )     ref  ->   x3         single-def "argument with side effect"
-;  V36 tmp31        [V36,T08] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
-;  V37 tmp32        [V37,T09] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
-;  V38 tmp33        [V38,T11] (  2,  4   )     int  ->   x6         "argument with side effect"
-;  V39 tmp34        [V39,T12] (  2,  4   )     int  ->   x7         "argument with side effect"
-;  V40 tmp35        [V40,T13] (  2,  4   )     int  ->   x8         "argument with side effect"
-;  V41 tmp36        [V41,T10] (  2,  4   )     ref  ->   x9         single-def "argument with side effect"
+;  V29 tmp24        [V29,T12] (  3,  2   )     ref  ->   x3         single-def "field V17.array (fldOffset=0x0)" P-INDEP
+;  V30 tmp25        [V30,T11] (  3,  2.50)     ref  ->   x2         single-def "field V18.array (fldOffset=0x0)" P-INDEP
+;  V31 tmp26        [V31    ] (  2,  4   )  struct (24) [fp+0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.BitVector>
+;  V32 tmp27        [V32,T04] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
+;  V33 tmp28        [V33,T05] (  2,  4   )     ref  ->   x5         single-def "argument with side effect"
+;  V34 tmp29        [V34,T06] (  2,  4   )     ref  ->   x6         single-def "argument with side effect"
+;  V35 tmp30        [V35,T08] (  2,  4   )     int  ->   x7         "argument with side effect"
+;  V36 tmp31        [V36,T09] (  2,  4   )     int  ->   x0         "argument with side effect"
+;  V37 tmp32        [V37,T10] (  2,  4   )     int  ->   x1         "argument with side effect"
+;  V38 tmp33        [V38,T07] (  2,  4   )     ref  ->   x8         single-def "argument with side effect"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 72
 
 G_M26558_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-            sub     sp, sp, #128
+            sub     sp, sp, #112
             stp     fp, lr, [sp, #0x30]
-            stp     x19, x20, [sp, #0x60]
-            stp     x21, x22, [sp, #0x70]
+            stp     x19, x20, [sp, #0x58]
+            str     x21, [sp, #0x68]
             add     fp, sp, #48
-            stp     xzr, xzr, [fp, #0x18]  // [V31 tmp26], [V31 tmp26+0x08]
-            str     xzr, [fp, #0x28]   // [V31 tmp26+0x10]
+            stp     xzr, xzr, [fp, #0x10]  // [V31 tmp26], [V31 tmp26+0x08]
+            str     xzr, [fp, #0x20]   // [V31 tmp26+0x10]
             mov     x20, x0
             ; gcrRegs +[x20]
             mov     x19, x1
@@ -75,12 +72,12 @@ G_M26558_IG02:        ; bbWeight=1, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=00
                        ;; size=8 bbWeight=1 PerfScore 4.00
 G_M26558_IG03:        ; bbWeight=0.50, gcrefRegs=380000 {x19 x20 x21}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x2]
-            mov     x22, xzr
-            ; gcrRegs +[x22]
+            mov     x3, xzr
+            ; gcrRegs +[x3]
             b       G_M26558_IG05
                        ;; size=8 bbWeight=0.50 PerfScore 0.75
 G_M26558_IG04:        ; bbWeight=0.50, gcrefRegs=380004 {x2 x19 x20 x21}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x22] +[x2]
+            ; gcrRegs -[x3] +[x2]
             mov     x0, x20
             ; gcrRegs +[x0]
             movz    x1, #0xD1FFAB1E
@@ -92,73 +89,79 @@ G_M26558_IG04:        ; bbWeight=0.50, gcrefRegs=380004 {x2 x19 x20 x21}, byrefR
             ldr     x3, [x3]
             blr     x3
             ; gcrRegs -[x2]
-            mov     x22, x0
-            ; gcrRegs +[x22]
-                       ;; size=40 bbWeight=0.50 PerfScore 4.00
-G_M26558_IG05:        ; bbWeight=1, gcrefRegs=780000 {x19 x20 x21 x22}, byrefRegs=0000 {}, byref
-            ; gcrRegs -[x0]
-            ldr     x0, [x19, #0x18]
-            ; gcrRegs +[x0]
-            ldrsb   wzr, [x20]
-            mov     x1, x21
-            ; gcrRegs +[x1]
-            ldr     x2, [x19, #0x28]
-            ; gcrRegs +[x2]
-            mov     x3, x22
+            mov     x3, x0
             ; gcrRegs +[x3]
-            ldp     x4, x5, [x19, #0x40]
-            ; gcrRegs +[x4-x5]
-            ldrb    w6, [x19, #0x30]
-            ldrb    w7, [x19, #0x31]
-            ldrb    w8, [x19, #0x32]
-            ldr     x9, [x19, #0x50]
-            ; gcrRegs +[x9]
-                       ;; size=40 bbWeight=1 PerfScore 26.00
+                       ;; size=40 bbWeight=0.50 PerfScore 4.00
+G_M26558_IG05:        ; bbWeight=1, gcrefRegs=380008 {x3 x19 x20 x21}, byrefRegs=0000 {}, byref
+            ; gcrRegs -[x0]
+            ldr     x2, [x19, #0x18]
+            ; gcrRegs +[x2]
+            ldrsb   wzr, [x20]
+            ldr     x4, [x19, #0x28]
+            ; gcrRegs +[x4]
+            ldp     x5, x6, [x19, #0x40]
+            ; gcrRegs +[x5-x6]
+            ldrb    w7, [x19, #0x30]
+            ldrb    w0, [x19, #0x31]
+            ldrb    w1, [x19, #0x32]
+            ldr     x8, [x19, #0x50]
+            ; gcrRegs +[x8]
+                       ;; size=32 bbWeight=1 PerfScore 25.00
 G_M26558_IG06:        ; bbWeight=1, nogc, extend
-            ldp     x10, x11, [x19, #0x58]
-            stp     x10, x11, [fp, #0x18]
-            ldr     x10, [x19, #0x68]
-            str     x10, [fp, #0x28]
+            ldp     x9, x10, [x19, #0x58]
+            stp     x9, x10, [fp, #0x10]
+            ldr     x9, [x19, #0x68]
+            str     x9, [fp, #0x20]
                        ;; size=16 bbWeight=1 PerfScore 9.00
 G_M26558_IG07:        ; bbWeight=1, extend
-            ldrb    w10, [x19, #0x33]
-            str     w10, [sp, #0x18]   // [V05 OutArgs+0x18]
-            ldr     x10, [x19, #0x70]
-            ; gcrRegs +[x10]
-            str     x10, [sp, #0x20]   // [V05 OutArgs+0x20]
-            str     x0, [sp, #0x28]    // [V05 OutArgs+0x28]
+            ldrb    w9, [x19, #0x33]
+            str     w9, [sp, #0x18]    // [V05 OutArgs+0x18]
+            ldr     x9, [x19, #0x70]
+            ; gcrRegs +[x9]
+            str     x9, [sp, #0x20]    // [V05 OutArgs+0x20]
+            str     x2, [sp, #0x28]    // [V05 OutArgs+0x28]
+            mov     x2, x4
+            mov     x4, x5
+            mov     x5, x6
+            mov     w6, w7
+            ; gcrRegs -[x6]
+            mov     w7, w0
+            str     w1, [sp]   // [V05 OutArgs]
+            str     x8, [sp, #0x08]    // [V05 OutArgs+0x08]
+            add     x0, fp, #16    // [V31 tmp26]
+            str     x0, [sp, #0x10]    // [V05 OutArgs+0x10]
             mov     x0, x19
-            str     w8, [sp]   // [V05 OutArgs]
-            str     x9, [sp, #0x08]    // [V05 OutArgs+0x08]
-            add     x8, fp, #24    // [V31 tmp26]
-            str     x8, [sp, #0x10]    // [V05 OutArgs+0x10]
+            ; gcrRegs +[x0]
+            mov     x1, x21
+            ; gcrRegs +[x1]
             movz    x8, #0xD1FFAB1E      // code for <unknown method>
+            ; gcrRegs -[x8]
             movk    x8, #0xD1FFAB1E LSL #16
             movk    x8, #0xD1FFAB1E LSL #32
             ldr     x8, [x8]
             blr     x8
-            ; gcrRegs -[x1-x5 x9-x10 x19-x22]
-                       ;; size=60 bbWeight=1 PerfScore 18.50
+            ; gcrRegs -[x1-x5 x9 x19-x21]
+                       ;; size=84 bbWeight=1 PerfScore 21.50
 G_M26558_IG08:        ; bbWeight=1, epilog, nogc, extend
-            ldp     x21, x22, [sp, #0x70]
-            ldp     x19, x20, [sp, #0x60]
+            ldr     x21, [sp, #0x68]
+            ldp     x19, x20, [sp, #0x58]
             ldp     fp, lr, [sp, #0x30]
-            add     sp, sp, #128
+            add     sp, sp, #112
             ret     lr
-                       ;; size=20 bbWeight=1 PerfScore 4.50
+                       ;; size=20 bbWeight=1 PerfScore 5.50
 
-; Total bytes of code 232, prolog size 28, PerfScore 74.25, instruction count 58, allocated bytes for code 232 (MethodHash=faef9841) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
+; Total bytes of code 248, prolog size 28, PerfScore 77.25, instruction count 62, allocated bytes for code 248 (MethodHash=faef9841) for method Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 2
+  Code Words        : 3
   Epilog Count      : 1
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 58 (0x0003a) Actual length = 232 (0x0000e8)
+  Function Length   : 62 (0x0003e) Actual length = 248 (0x0000f8)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -166,9 +169,12 @@ Unwind Info:
   ---- Unwind codes ----
     E2 06       add_fp 6 (0x06); add fp, sp, #48
     ---- Epilog start at index 2 ----
-    E6          save_next
-    C8 0C       save_regp X#0 Z#12 (0x0C); stp x19, x20, [sp, #96]
+    D0 8D       save_reg X#2 Z#13 (0x0D); str x21, [sp, #104]
+    C8 0B       save_regp X#0 Z#11 (0x0B); stp x19, x20, [sp, #88]
     46          save_fplr #6 (0x06); stp fp, lr, [sp, #48]
-    08          alloc_s #8 (0x08); sub sp, sp, #128 (0x080)
+    07          alloc_s #7 (0x07); sub sp, sp, #112 (0x070)
+    E4          end
+    E4          end
+    E4          end
     E4          end
 

+16 (+12.50%) : 901.dasm - System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)

@@ -8,88 +8,86 @@
 ; 0 inlinees with PGO data; 1 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] (  9,  6.50)     ref  ->  [fp+0x18]  this class-hnd single-def <System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]>
+;  V00 this         [V00,T00] (  9,  6.50)     ref  ->  x19         this class-hnd single-def <System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]>
 ;  V01 loc0         [V01,T02] (  3,  2.50)     ref  ->   x1         class-hnd exact single-def <<unknown class>>
-;  V02 loc1         [V02,T03] (  3,  2.50)     int  ->   x3        
+;  V02 loc1         [V02,T03] (  3,  2.50)     int  ->   x2        
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04    ] (  2,  2   )  struct (32) [fp+0x20]  do-not-enreg[XS] addr-exposed "by-value struct argument" <BenchmarkDotNet.Reports.Measurement>
-;  V05 tmp2         [V05,T01] (  3,  3   )     ref  ->   x2         single-def "argument with side effect"
-;  V06 cse0         [V06,T04] (  3,  2.50)     int  ->   x2         "CSE - aggressive"
-;  V07 cse1         [V07,T05] (  2,  2   )     int  ->   x4         "CSE - aggressive"
+;  V04 tmp1         [V04    ] (  2,  2   )  struct (32) [fp+0x18]  do-not-enreg[XS] addr-exposed "by-value struct argument" <BenchmarkDotNet.Reports.Measurement>
+;  V05 tmp2         [V05,T01] (  3,  3   )     ref  ->   x3         single-def "argument with side effect"
+;  V06 cse0         [V06,T04] (  3,  2.50)     int  ->   x0         "CSE - aggressive"
+;  V07 cse1         [V07,T05] (  2,  2   )     int  ->   x3         "CSE - aggressive"
 ;
-; Lcl frame size = 48
+; Lcl frame size = 40
 
 G_M7274_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
             stp     fp, lr, [sp, #-0x40]!
+            str     x19, [sp, #0x38]
             mov     fp, sp
-                       ;; size=8 bbWeight=1 PerfScore 1.50
-G_M7274_IG02:        ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, isz
-            ; gcrRegs +[x0]
-            ldr     x1, [x0, #0x18]
+            mov     x19, x0
+            ; gcrRegs +[x19]
+                       ;; size=16 bbWeight=1 PerfScore 3.00
+G_M7274_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, byref, isz
+            ldr     x1, [x19, #0x18]
             ; gcrRegs +[x1]
-            ldr     w2, [x0, #0x14]
-            sub     w3, w2, #1
-            ldr     w4, [x1, #0x08]
-            cmp     w4, w3
+            ldr     w0, [x19, #0x14]
+            sub     w2, w0, #1
+            ldr     w3, [x1, #0x08]
+            cmp     w3, w2
             bls     G_M7274_IG05
                        ;; size=24 bbWeight=1 PerfScore 11.00
-G_M7274_IG03:        ; bbWeight=0.50, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref
-            add     w2, w2, #1
-            str     w2, [x0, #0x14]
-            str     x0, [fp, #0x18]    // [V00 this]
-            ; GC ptr vars +{V00}
-            ldr     x2, [x0, #0x20]
-            ; gcrRegs +[x2]
-            ubfiz   x3, x3, #5, #32
-            add     x3, x3, #16
-            add     x1, x1, x3
+G_M7274_IG03:        ; bbWeight=0.50, gcrefRegs=80002 {x1 x19}, byrefRegs=0000 {}, byref
+            add     w0, w0, #1
+            str     w0, [x19, #0x14]
+            ldr     x3, [x19, #0x20]
+            ; gcrRegs +[x3]
+            ubfiz   x0, x2, #5, #32
+            add     x0, x0, #16
+            add     x1, x1, x0
             ; gcrRegs -[x1]
             ; byrRegs +[x1]
-            ldp     q16, q17, [x1]
-            stp     q16, q17, [fp, #0x20]
-            add     x1, fp, #32    // [V04 tmp1]
+            ldp     x0, x2, [x1]
+            stp     x0, x2, [fp, #0x18]
+            ldp     x0, x2, [x1, #0x10]
+            stp     x0, x2, [fp, #0x28]
+            add     x1, fp, #24    // [V04 tmp1]
             ; byrRegs -[x1]
-            ldr     x0, [x2, #0x08]
-            ldr     x2, [x2, #0x18]
-            ; gcrRegs -[x2]
-            blr     x2
-            ; gcrRegs -[x0]
-            ldr     x0, [fp, #0x18]    // [V00 this]
+            ldr     x0, [x3, #0x08]
             ; gcrRegs +[x0]
-            str     d0, [x0, #0x08]
+            ldr     x2, [x3, #0x18]
+            blr     x2
+            ; gcrRegs -[x0 x3]
+            str     d0, [x19, #0x08]
             mov     w0, #1
-            ; gcrRegs -[x0]
-                       ;; size=64 bbWeight=0.50 PerfScore 11.25
+                       ;; size=64 bbWeight=0.50 PerfScore 12.75
 G_M7274_IG04:        ; bbWeight=0.50, epilog, nogc, extend
+            ldr     x19, [sp, #0x38]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
-G_M7274_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
-            ; gcrRegs +[x0]
-            ; GC ptr vars -{V00}
-            str     xzr, [x0, #0x08]
-            movn    w1, #0
-            str     w1, [x0, #0x14]
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
+G_M7274_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, gcvars, byref
+            str     xzr, [x19, #0x08]
+            movn    w0, #0
+            str     w0, [x19, #0x14]
             mov     w0, wzr
-            ; gcrRegs -[x0]
                        ;; size=16 bbWeight=0.50 PerfScore 1.50
 G_M7274_IG06:        ; bbWeight=0.50, epilog, nogc, extend
+            ldr     x19, [sp, #0x38]
             ldp     fp, lr, [sp], #0x40
             ret     lr
-                       ;; size=8 bbWeight=0.50 PerfScore 1.00
+                       ;; size=12 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 128, prolog size 8, PerfScore 27.25, instruction count 32, allocated bytes for code 128 (MethodHash=937fe395) for method System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
+; Total bytes of code 144, prolog size 12, PerfScore 32.25, instruction count 36, allocated bytes for code 144 (MethodHash=937fe395) for method System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
   >> Start offset   : 0x000000 (not in unwind data)
   >>   End offset   : 0xd1ffab1e (not in unwind data)
-  Code Words        : 1
+  Code Words        : 2
   Epilog Count      : 2
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 32 (0x00020) Actual length = 128 (0x000080)
+  Function Length   : 36 (0x00024) Actual length = 144 (0x000090)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)
@@ -100,7 +98,10 @@ Unwind Info:
   ---- Unwind codes ----
     E1          set_fp; mov fp, sp
     ---- Epilog start at index 1 ----
+    D0 07       save_reg X#0 Z#7 (0x07); str x19, [sp, #56]
     87          save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
     E4          end
     E4          end
+    E4          end
+    E4          end
 

smoke_tests.nativeaot.windows.arm64.checked.mch

-8 (-8.70%) : 8587.dasm - System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)

@@ -10,7 +10,7 @@
 ;
 ;  V00 this         [V00,T00] (  5,  5   )     ref  ->  x19         this class-hnd single-def <System.Threading.QueueUserWorkItemCallbackBase>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T01] (  2,  4   )   ubyte  ->   x0         "Inlining Arg"
+;* V02 tmp1         [V02    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;
 ; Lcl frame size = 8
 
@@ -32,10 +32,8 @@ G_M21281_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             mov     w1, #1
             swpal   w1, w0, [x0]
             ; byrRegs -[x0]
-            cmp     w0, #0
-            cset    x0, eq
-            cbnz    w0, G_M21281_IG05
-                       ;; size=36 bbWeight=1 PerfScore 10.50
+            cbz     w0, G_M21281_IG05
+                       ;; size=28 bbWeight=1 PerfScore 9.50
 G_M21281_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]
@@ -57,7 +55,7 @@ G_M21281_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 92, prolog size 12, PerfScore 18.50, instruction count 23, allocated bytes for code 92 (MethodHash=f256acde) for method System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
+; Total bytes of code 84, prolog size 12, PerfScore 17.50, instruction count 21, allocated bytes for code 84 (MethodHash=f256acde) for method System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -68,7 +66,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 23 (0x00017) Actual length = 92 (0x00005c)
+  Function Length   : 21 (0x00015) Actual length = 84 (0x000054)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-8 (-8.70%) : 22980.dasm - System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)

@@ -9,7 +9,7 @@
 ;
 ;  V00 this         [V00,T00] (  5,  5   )     ref  ->  x19         this class-hnd single-def <System.Threading.QueueUserWorkItemCallbackBase>
 ;# V01 OutArgs      [V01    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T01] (  2,  4   )   ubyte  ->   x0         "Inlining Arg"
+;* V02 tmp1         [V02    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;
 ; Lcl frame size = 8
 
@@ -31,10 +31,8 @@ G_M21281_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=0000 {}, by
             mov     w1, #1
             swpal   w1, w0, [x0]
             ; byrRegs -[x0]
-            cmp     w0, #0
-            cset    x0, eq
-            cbnz    w0, G_M21281_IG05
-                       ;; size=36 bbWeight=1 PerfScore 10.50
+            cbz     w0, G_M21281_IG05
+                       ;; size=28 bbWeight=1 PerfScore 9.50
 G_M21281_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; gcrRegs -[x19]
             adrp    x0, [HIGH RELOC #0xD1FFAB1E]
@@ -56,7 +54,7 @@ G_M21281_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ret     lr
                        ;; size=12 bbWeight=0.50 PerfScore 2.00
 
-; Total bytes of code 92, prolog size 12, PerfScore 18.50, instruction count 23, allocated bytes for code 92 (MethodHash=f256acde) for method System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
+; Total bytes of code 84, prolog size 12, PerfScore 17.50, instruction count 21, allocated bytes for code 84 (MethodHash=f256acde) for method System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -67,7 +65,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 23 (0x00017) Actual length = 92 (0x00005c)
+  Function Length   : 21 (0x00015) Actual length = 84 (0x000054)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

-8 (-8.33%) : 12677.dasm - System.Linq.Expressions.Interpreter.LoadCachedObjectInstruction:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)

@@ -9,14 +9,12 @@
 ;
 ;  V00 this         [V00,T03] (  3,  3   )     ref  ->   x0         this class-hnd exact single-def <System.Linq.Expressions.Interpreter.LoadCachedObjectInstruction>
 ;  V01 arg1         [V01,T00] (  6,  6   )     ref  ->   x1         class-hnd exact single-def <System.Linq.Expressions.Interpreter.InterpretedFrame>
-;  V02 loc0         [V02,T08] (  3,  3   )     int  ->   x3        
+;  V02 loc0         [V02,T06] (  3,  3   )     int  ->   x4        
 ;# V03 OutArgs      [V03    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T04] (  2,  4   )     ref  ->   x2         class-hnd single-def "impAppendStmt" <<unknown class>>
-;  V05 tmp2         [V05,T01] (  3,  6   )     ref  ->   x1         single-def "arr expr"
-;  V06 tmp3         [V06,T02] (  3,  6   )     int  ->   x0         "index expr"
+;  V04 tmp1         [V04,T04] (  2,  4   )     ref  ->   x3         class-hnd single-def "impAppendStmt" <<unknown class>>
+;  V05 tmp2         [V05,T01] (  3,  6   )     ref  ->   x2         single-def "arr expr"
+;  V06 tmp3         [V06,T02] (  3,  6   )     int  ->   x1         "index expr"
 ;  V07 tmp4         [V07,T05] (  2,  4   )     ref  ->   x2         single-def "argument with side effect"
-;  V08 tmp5         [V08,T07] (  2,  4   )    long  ->   x3         "argument with side effect"
-;  V09 tmp6         [V09,T06] (  2,  4   )     ref  ->   x4         single-def "argument with side effect"
 ;
 ; Lcl frame size = 0
 
@@ -26,33 +24,33 @@ G_M22389_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
                        ;; size=8 bbWeight=1 PerfScore 1.50
 G_M22389_IG02:        ; bbWeight=1, gcrefRegs=0003 {x0 x1}, byrefRegs=0000 {}, byref, isz
             ; gcrRegs +[x0-x1]
-            ldr     x2, [x1, #0x28]
+            ldr     x3, [x1, #0x28]
+            ; gcrRegs +[x3]
+            ldr     w4, [x1, #0x40]
+            add     w2, w4, #1
+            str     w2, [x1, #0x40]
+            ldr     x2, [x1, #0x08]
             ; gcrRegs +[x2]
-            ldr     w3, [x1, #0x40]
-            add     w4, w3, #1
-            str     w4, [x1, #0x40]
-            sxtw    x3, w3
-            ldr     x1, [x1, #0x08]
-            ldr     x1, [x1, #0x08]
-            ldr     w0, [x0, #0x08]
-            ; gcrRegs -[x0]
-            ldr     w4, [x1, #0x08]
-            cmp     w0, w4
-            bhs     G_M22389_IG04
-            add     x1, x1, #16
+            ldr     x2, [x2, #0x08]
+            ldr     w1, [x0, #0x08]
             ; gcrRegs -[x1]
-            ; byrRegs +[x1]
-            ldr     x4, [x1, w0, UXTW #3]
-            ; gcrRegs +[x4]
-            mov     x0, x2
+            ldr     w0, [x2, #0x08]
+            ; gcrRegs -[x0]
+            cmp     w1, w0
+            bhs     G_M22389_IG04
+            add     x2, x2, #16
+            ; gcrRegs -[x2]
+            ; byrRegs +[x2]
+            ldr     x2, [x2, w1, UXTW #3]
+            ; gcrRegs +[x2]
+            ; byrRegs -[x2]
+            sxtw    x1, w4
+            mov     x0, x3
             ; gcrRegs +[x0]
-            mov     x1, x3
-            ; byrRegs -[x1]
-            mov     x2, x4
             bl      CORINFO_HELP_ARRADDR_ST
-            ; gcrRegs -[x0 x2 x4]
+            ; gcrRegs -[x0 x2-x3]
             mov     w0, #1
-                       ;; size=72 bbWeight=1 PerfScore 28.00
+                       ;; size=64 bbWeight=1 PerfScore 27.00
 G_M22389_IG03:        ; bbWeight=1, epilog, nogc, extend
             ldp     fp, lr, [sp], #0x10
             ret     lr
@@ -62,7 +60,7 @@ G_M22389_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
             brk_windows #0
                        ;; size=8 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 96, prolog size 8, PerfScore 31.50, instruction count 24, allocated bytes for code 96 (MethodHash=ee43a88a) for method System.Linq.Expressions.Interpreter.LoadCachedObjectInstruction:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
+; Total bytes of code 88, prolog size 8, PerfScore 30.50, instruction count 22, allocated bytes for code 88 (MethodHash=ee43a88a) for method System.Linq.Expressions.Interpreter.LoadCachedObjectInstruction:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -73,7 +71,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 24 (0x00018) Actual length = 96 (0x000060)
+  Function Length   : 22 (0x00016) Actual length = 88 (0x000058)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+12 (+3.33%) : 17615.dasm - System.Globalization.TextInfo:ChangeCaseCommonSystem.Globalization.TextInfo+ToUpperConversion:this (FullOpts)

@@ -7,10 +7,10 @@
 ; partially interruptible
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  7,  4.50)     ref  ->  x19         this class-hnd exact single-def <System.Globalization.TextInfo>
+;  V00 this         [V00,T02] (  7,  4.50)     ref  ->  x20         this class-hnd exact single-def <System.Globalization.TextInfo>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.ReadOnlySpan`1[ushort]>
 ;* V02 arg2         [V02    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op single-def <System.Span`1[ushort]>
-;* V03 loc0         [V03,T23] (  0,  0   )   ubyte  ->  zero-ref   
+;* V03 loc0         [V03,T22] (  0,  0   )   ubyte  ->  zero-ref   
 ;  V04 loc1         [V04    ] (  5,  2.50)     int  ->  [fp+0x28]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V05 loc2         [V05    ] (  0,  0   )     int  ->  zero-ref   
 ;* V06 loc3         [V06    ] (  0,  0   )    long  ->  zero-ref   
@@ -57,7 +57,7 @@
 ;* V47 tmp37        [V47    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V48 tmp38        [V48    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V49 tmp39        [V49    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;* V50 tmp40        [V50,T24] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V50 tmp40        [V50,T23] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V51 tmp41        [V51    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V52 tmp42        [V52    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V53 tmp43        [V53    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
@@ -68,7 +68,7 @@
 ;* V58 tmp48        [V58    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;* V59 tmp49        [V59    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V60 tmp50        [V60    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;* V61 tmp51        [V61,T25] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
+;* V61 tmp51        [V61,T24] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V62 tmp52        [V62    ] (  0,  0   )  struct (16) zero-ref    multireg-arg ld-addr-op "NewObj constructor temp" <System.Span`1[ushort]>
 ;* V63 tmp53        [V63    ] (  0,  0   )   byref  ->  zero-ref    single-def "Inlining Arg"
 ;* V64 tmp54        [V64    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -78,7 +78,7 @@
 ;* V68 tmp58        [V68    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V69 tmp59        [V69    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Span`1[ushort]>
 ;  V70 tmp60        [V70,T03] (  4,  2.50)   byref  ->  x21         single-def "field V01._reference (fldOffset=0x0)" P-INDEP
-;  V71 tmp61        [V71,T02] (  5,  3.50)     int  ->  x20         single-def "field V01._length (fldOffset=0x8)" P-INDEP
+;  V71 tmp61        [V71,T01] (  5,  3.50)     int  ->  x19         single-def "field V01._length (fldOffset=0x8)" P-INDEP
 ;  V72 tmp62        [V72,T04] (  4,  2.50)   byref  ->  x22         single-def "field V02._reference (fldOffset=0x0)" P-INDEP
 ;  V73 tmp63        [V73,T05] (  4,  2.50)     int  ->  x23         single-def "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V74 tmp64        [V74    ] (  0,  0   )   byref  ->  zero-ref    "field V16._reference (fldOffset=0x0)" P-INDEP
@@ -101,36 +101,35 @@
 ;* V91 tmp81        [V91    ] (  0,  0   )     int  ->  zero-ref    "field V37._length (fldOffset=0x8)" P-INDEP
 ;* V92 tmp82        [V92    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V41._reference (fldOffset=0x0)" P-INDEP
 ;* V93 tmp83        [V93    ] (  0,  0   )     int  ->  zero-ref    "field V41._length (fldOffset=0x8)" P-INDEP
-;* V94 tmp84        [V94,T17] (  0,  0   )   byref  ->  zero-ref    single-def "field V42._reference (fldOffset=0x0)" P-INDEP
-;* V95 tmp85        [V95,T26] (  0,  0   )     int  ->  zero-ref    "field V42._length (fldOffset=0x8)" P-INDEP
-;* V96 tmp86        [V96,T18] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
-;* V97 tmp87        [V97,T27] (  0,  0   )     int  ->  zero-ref    "field V43._length (fldOffset=0x8)" P-INDEP
+;* V94 tmp84        [V94,T16] (  0,  0   )   byref  ->  zero-ref    single-def "field V42._reference (fldOffset=0x0)" P-INDEP
+;* V95 tmp85        [V95,T25] (  0,  0   )     int  ->  zero-ref    "field V42._length (fldOffset=0x8)" P-INDEP
+;* V96 tmp86        [V96,T17] (  0,  0   )   byref  ->  zero-ref    single-def "field V43._reference (fldOffset=0x0)" P-INDEP
+;* V97 tmp87        [V97,T26] (  0,  0   )     int  ->  zero-ref    "field V43._length (fldOffset=0x8)" P-INDEP
 ;* V98 tmp88        [V98    ] (  0,  0   )   byref  ->  zero-ref    "field V44._reference (fldOffset=0x0)" P-INDEP
 ;* V99 tmp89        [V99    ] (  0,  0   )     int  ->  zero-ref    "field V44._length (fldOffset=0x8)" P-INDEP
-;* V100 tmp90       [V100,T19] (  0,  0   )   byref  ->  zero-ref    single-def "field V47._reference (fldOffset=0x0)" P-INDEP
+;* V100 tmp90       [V100,T18] (  0,  0   )   byref  ->  zero-ref    single-def "field V47._reference (fldOffset=0x0)" P-INDEP
 ;* V101 tmp91       [V101    ] (  0,  0   )     int  ->  zero-ref    "field V47._length (fldOffset=0x8)" P-INDEP
-;* V102 tmp92       [V102,T20] (  0,  0   )   byref  ->  zero-ref    single-def "field V51._reference (fldOffset=0x0)" P-INDEP
-;* V103 tmp93       [V103,T28] (  0,  0   )     int  ->  zero-ref    "field V51._length (fldOffset=0x8)" P-INDEP
+;* V102 tmp92       [V102,T19] (  0,  0   )   byref  ->  zero-ref    single-def "field V51._reference (fldOffset=0x0)" P-INDEP
+;* V103 tmp93       [V103,T27] (  0,  0   )     int  ->  zero-ref    "field V51._length (fldOffset=0x8)" P-INDEP
 ;* V104 tmp94       [V104    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V52._reference (fldOffset=0x0)" P-INDEP
 ;* V105 tmp95       [V105    ] (  0,  0   )     int  ->  zero-ref    "field V52._length (fldOffset=0x8)" P-INDEP
-;* V106 tmp96       [V106,T21] (  0,  0   )   byref  ->  zero-ref    single-def "field V58._reference (fldOffset=0x0)" P-INDEP
+;* V106 tmp96       [V106,T20] (  0,  0   )   byref  ->  zero-ref    single-def "field V58._reference (fldOffset=0x0)" P-INDEP
 ;* V107 tmp97       [V107    ] (  0,  0   )     int  ->  zero-ref    "field V58._length (fldOffset=0x8)" P-INDEP
-;* V108 tmp98       [V108,T22] (  0,  0   )   byref  ->  zero-ref    single-def "field V62._reference (fldOffset=0x0)" P-INDEP
-;* V109 tmp99       [V109,T29] (  0,  0   )     int  ->  zero-ref    "field V62._length (fldOffset=0x8)" P-INDEP
+;* V108 tmp98       [V108,T21] (  0,  0   )   byref  ->  zero-ref    single-def "field V62._reference (fldOffset=0x0)" P-INDEP
+;* V109 tmp99       [V109,T28] (  0,  0   )     int  ->  zero-ref    "field V62._length (fldOffset=0x8)" P-INDEP
 ;* V110 tmp100      [V110    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V68._reference (fldOffset=0x0)" P-INDEP
 ;* V111 tmp101      [V111    ] (  0,  0   )     int  ->  zero-ref    "field V68._length (fldOffset=0x8)" P-INDEP
 ;* V112 tmp102      [V112    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V69._reference (fldOffset=0x0)" P-INDEP
 ;* V113 tmp103      [V113    ] (  0,  0   )     int  ->  zero-ref    "field V69._length (fldOffset=0x8)" P-INDEP
 ;  V114 tmp104      [V114,T07] (  2,  2   )    long  ->  x21         "Cast away GC"
 ;  V115 tmp105      [V115,T08] (  2,  2   )    long  ->  x22         "Cast away GC"
-;* V116 tmp106      [V116,T16] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V117 tmp107      [V117,T09] (  2,  2   )    long  ->   x1         "argument with side effect"
-;  V118 tmp108      [V118,T10] (  2,  2   )     int  ->   x2         "argument with side effect"
-;  V119 tmp109      [V119,T11] (  2,  2   )    long  ->   x3         "argument with side effect"
-;  V120 cse0        [V120,T14] (  3,  1.50)    long  ->   x0         "CSE - moderate"
-;  V121 cse1        [V121,T15] (  3,  1.50)     int  ->   x0         "CSE - moderate"
-;  V122 cse2        [V122,T00] ( 15,  7.50)     ref  ->   x1         multi-def "CSE - aggressive"
-;  V123 rat0        [V123,T06] (  3,  6   )    long  ->  x24         "fgMakeTemp is creating a new local variable"
+;  V116 tmp106      [V116,T09] (  2,  2   )    long  ->   x2         "argument with side effect"
+;  V117 tmp107      [V117,T10] (  2,  2   )     int  ->   x3         "argument with side effect"
+;  V118 tmp108      [V118,T11] (  2,  2   )    long  ->   x4         "argument with side effect"
+;  V119 cse0        [V119,T14] (  3,  1.50)    long  ->   x1         "CSE - moderate"
+;  V120 cse1        [V120,T15] (  3,  1.50)     int  ->   x0         "CSE - moderate"
+;  V121 cse2        [V121,T00] ( 15,  7.50)     ref  ->   x1         multi-def "CSE - aggressive"
+;  V122 rat0        [V122,T06] (  3,  6   )    long  ->  x24         "fgMakeTemp is creating a new local variable"
 ;
 ; Lcl frame size = 32
 
@@ -141,26 +140,26 @@ G_M14148_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
             stp     x23, x24, [sp, #0x50]
             mov     fp, sp
             stp     xzr, xzr, [fp, #0x18]  // [V09 loc6], [V07 loc4]
-            mov     x19, x0
-            ; gcrRegs +[x19]
+            mov     x20, x0
+            ; gcrRegs +[x20]
             mov     x21, x1
             ; byrRegs +[x21]
-            mov     w20, w2
+            mov     w19, w2
             mov     x22, x3
             ; byrRegs +[x22]
             mov     w23, w4
                        ;; size=44 bbWeight=1 PerfScore 8.00
-G_M14148_IG02:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, byref, isz
+G_M14148_IG02:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, byref, isz
             adrp    x24, [HIGH RELOC #0xD1FFAB1E]
             add     x24, x24, [LOW RELOC #0xD1FFAB1E]
             ldr     x0, [x24, #-0x08]
             cbnz    x0, G_M14148_IG14
                        ;; size=16 bbWeight=1 PerfScore 5.00
-G_M14148_IG03:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, byref, isz
+G_M14148_IG03:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, byref, isz
             ldrb    w0, [x24]
             cbz     w0, G_M14148_IG05
                        ;; size=8 bbWeight=1 PerfScore 4.00
-G_M14148_IG04:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, byref
+G_M14148_IG04:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, byref
             adrp    x1, [HIGH RELOC #0xD1FFAB1E]
             add     x1, x1, [LOW RELOC #0xD1FFAB1E]
             ; gcrRegs +[x1]
@@ -169,11 +168,11 @@ G_M14148_IG04:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {
             bl      <unknown method>
             ; gcrRegs -[x0-x1]
                        ;; size=16 bbWeight=0.50 PerfScore 1.25
-G_M14148_IG05:        ; bbWeight=1, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, byref, isz
-            cbnz    w20, G_M14148_IG07
+G_M14148_IG05:        ; bbWeight=1, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, byref, isz
+            cbnz    w19, G_M14148_IG07
                        ;; size=4 bbWeight=1 PerfScore 1.00
 G_M14148_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
-            ; gcrRegs -[x19]
+            ; gcrRegs -[x20]
             ; byrRegs -[x21-x22]
             ldp     x23, x24, [sp, #0x50]
             ldp     x21, x22, [sp, #0x40]
@@ -181,19 +180,19 @@ G_M14148_IG06:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
             ldp     fp, lr, [sp], #0x60
             ret     lr
                        ;; size=20 bbWeight=0.50 PerfScore 2.50
-G_M14148_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, gcvars, byref, isz
-            ; gcrRegs +[x19]
+G_M14148_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, gcvars, byref, isz
+            ; gcrRegs +[x20]
             ; byrRegs +[x21-x22]
             str     wzr, [fp, #0x28]   // [V04 loc1]
-            ldrb    w0, [x19, #0x31]
+            ldrb    w0, [x20, #0x31]
             cbnz    w0, G_M14148_IG08
-            mov     x0, x19
+            mov     x0, x20
             ; gcrRegs +[x0]
             bl      <unknown method>
             ; gcrRegs -[x0]
                        ;; size=20 bbWeight=0.50 PerfScore 3.25
-G_M14148_IG08:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, byref, isz
-            ldrb    w0, [x19, #0x31]
+G_M14148_IG08:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, byref, isz
+            ldrb    w0, [x20, #0x31]
             cmp     w0, #2
             beq     G_M14148_IG09
             cmp     w0, #1
@@ -208,11 +207,11 @@ G_M14148_IG08:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {
             bl      <unknown method>
             ; gcrRegs -[x0-x1]
                        ;; size=44 bbWeight=0.50 PerfScore 4.75
-G_M14148_IG09:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, byref, isz
-            ldrb    w0, [x19, #0x31]
+G_M14148_IG09:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, byref, isz
+            ldrb    w0, [x20, #0x31]
             cmp     w0, #2
             bne     G_M14148_IG12
-            tbz     w20, #31, G_M14148_IG10
+            tbz     w19, #31, G_M14148_IG10
             adrp    x1, [HIGH RELOC #0xD1FFAB1E]
             add     x1, x1, [LOW RELOC #0xD1FFAB1E]
             ; gcrRegs +[x1]
@@ -221,7 +220,7 @@ G_M14148_IG09:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {
             bl      <unknown method>
             ; gcrRegs -[x0-x1]
                        ;; size=32 bbWeight=0.50 PerfScore 4.00
-G_M14148_IG10:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, byref, isz
+G_M14148_IG10:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, byref, isz
             tbz     w23, #31, G_M14148_IG11
             adrp    x1, [HIGH RELOC #0xD1FFAB1E]
             add     x1, x1, [LOW RELOC #0xD1FFAB1E]
@@ -231,10 +230,10 @@ G_M14148_IG10:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {
             bl      <unknown method>
             ; gcrRegs -[x0-x1]
                        ;; size=20 bbWeight=0.50 PerfScore 1.75
-G_M14148_IG11:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, byref, isz
+G_M14148_IG11:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, byref, isz
             mov     x0, x21
             ; byrRegs +[x0]
-            mov     w1, w20
+            mov     w1, w19
             mov     x2, x22
             ; byrRegs +[x2]
             mov     w3, w23
@@ -250,30 +249,33 @@ G_M14148_IG11:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {
             mov     x0, x1
             ; gcrRegs +[x0]
             bl      <unknown method>
-            ; gcrRegs -[x0-x1 x19]
+            ; gcrRegs -[x0-x1 x20]
             ; byrRegs -[x21-x22]
             b       G_M14148_IG06
                        ;; size=56 bbWeight=0.50 PerfScore 4.75
-G_M14148_IG12:        ; bbWeight=0.50, gcrefRegs=80000 {x19}, byrefRegs=600000 {x21 x22}, byref
-            ; gcrRegs +[x19]
+G_M14148_IG12:        ; bbWeight=0.50, gcrefRegs=100000 {x20}, byrefRegs=600000 {x21 x22}, byref
+            ; gcrRegs +[x20]
             ; byrRegs +[x21-x22]
             stp     x22, x21, [fp, #0x18]  // [V09 loc6], [V07 loc4]
-            ldr     w0, [fp, #0x28]    // [V04 loc1]
-            sbfiz   x0, x0, #1, #32
-            add     x1, x21, x0
-            ldr     w2, [fp, #0x28]    // [V04 loc1]
-            sub     w2, w20, w2
-            add     x3, x22, x0
-            mov     x0, x19
-            ; gcrRegs +[x0]
+            ldr     w1, [fp, #0x28]    // [V04 loc1]
+            sbfiz   x1, x1, #1, #32
+            add     x2, x21, x1
+            ldr     w3, [fp, #0x28]    // [V04 loc1]
+            sub     w3, w19, w3
+            add     x4, x22, x1
+            mov     x1, x2
+            mov     w2, w3
+            mov     x3, x4
             ldr     w4, [fp, #0x28]    // [V04 loc1]
             sub     w4, w23, w4
+            mov     x0, x20
+            ; gcrRegs +[x0]
             mov     w5, #1
             bl      System.Globalization.TextInfo:ChangeCaseCore(ulong,int,ulong,int,ubyte):this
-            ; gcrRegs -[x0 x19]
+            ; gcrRegs -[x0 x20]
             ; byrRegs -[x21-x22]
             stp     xzr, xzr, [fp, #0x18]  // [V09 loc6], [V07 loc4]
-                       ;; size=52 bbWeight=0.50 PerfScore 6.50
+                       ;; size=64 bbWeight=0.50 PerfScore 7.25
 G_M14148_IG13:        ; bbWeight=0.50, epilog, nogc, extend
...

+16 (+10.81%) : 2596.dasm - Interop+Globalization:EnumCalendarInfo(long,System.String,ushort,int,long):ubyte (FullOpts)

@@ -13,16 +13,15 @@
 ;  V03 arg3         [V03,T03] (  3,  3   )     int  ->   x3         single-def
 ;  V04 arg4         [V04,T04] (  3,  3   )    long  ->   x4         single-def
 ;* V05 loc0         [V05    ] (  0,  0   )   ubyte  ->  zero-ref   
-;  V06 loc1         [V06,T10] (  2,  2   )     int  ->  x19        
+;  V06 loc1         [V06,T09] (  2,  2   )     int  ->  x19        
 ;* V07 loc2         [V07    ] (  0,  0   )    long  ->  zero-ref   
 ;  V08 loc3         [V08    ] (  2,  2   )   byref  ->  [fp+0x58]  must-init pinned
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T09] (  4,  3   )   byref  ->   x1         "Inline return value spill temp"
+;  V10 tmp1         [V10,T08] (  4,  3   )   byref  ->   x1         "Inline return value spill temp"
 ;  V11 tmp2         [V11,T05] (  2,  4   )     int  ->   x0         "Single return block return value"
 ;  V12 PInvokeFrame [V12    ] (  3,  3   )  struct (40) [fp+0x10]  do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
 ;  V13 tmp4         [V13,T06] (  2,  4   )    long  ->   x1         "Cast away GC"
-;  V14 tmp5         [V14,T07] (  2,  4   )    long  ->   x0         "argument with side effect"
-;  V15 tmp6         [V15,T08] (  2,  4   )    long  ->   x1         "argument with side effect"
+;  V14 tmp5         [V14,T07] (  2,  4   )    long  ->   x1         "argument with side effect"
 ;  TEMP_02                                     int  ->  [fp+0x54]
 ;  TEMP_01                                     int  ->  [fp+0x50]
 ;  TEMP_05                                    long  ->  [fp+0x48]
@@ -58,19 +57,23 @@ G_M23060_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M23060_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {x1}, byref
             str     x1, [fp, #0x58]    // [V08 loc3]
-            stp     x1, x0, [fp, #0x40]    // [TEMP_04], [TEMP_05]
+            str     x1, [fp, #0x48]    // [TEMP_05]
             uxth    w2, w2
-            stp     w3, w2, [fp, #0x50]    // [TEMP_02]
+            str     w2, [fp, #0x54]    // [TEMP_02]
+            str     x0, [fp, #0x40]    // [TEMP_04]
+            str     w3, [fp, #0x50]    // [TEMP_01]
             str     x4, [fp, #0x38]    // [TEMP_03]
             add     x0, fp, #16    // [V12 PInvokeFrame]
-                       ;; size=24 bbWeight=1 PerfScore 5.00
+                       ;; size=32 bbWeight=1 PerfScore 7.00
 G_M23060_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; byrRegs -[x1]
             bl      CORINFO_HELP_JIT_PINVOKE_BEGIN
-            ldp     x1, x0, [fp, #0x40]    // [TEMP_04], [TEMP_05]
-            ldp     w3, w2, [fp, #0x50]    // [TEMP_02]
+            ldr     x1, [fp, #0x48]    // [TEMP_05]
+            ldr     w2, [fp, #0x54]    // [TEMP_02]
+            ldr     x0, [fp, #0x40]    // [TEMP_04]
+            ldr     w3, [fp, #0x50]    // [TEMP_01]
             ldr     x4, [fp, #0x38]    // [TEMP_03]
-                       ;; size=16 bbWeight=1 PerfScore 8.00
+                       ;; size=24 bbWeight=1 PerfScore 11.00
 G_M23060_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bl      <unknown method>
             mov     w19, w0
@@ -91,7 +94,7 @@ G_M23060_IG08:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=28 bbWeight=1 PerfScore 7.00
 
-; Total bytes of code 148, prolog size 32, PerfScore 35.00, instruction count 37, allocated bytes for code 148 (MethodHash=6585a5eb) for method Interop+Globalization:EnumCalendarInfo(long,System.String,ushort,int,long):ubyte (FullOpts)
+; Total bytes of code 164, prolog size 32, PerfScore 40.00, instruction count 41, allocated bytes for code 164 (MethodHash=6585a5eb) for method Interop+Globalization:EnumCalendarInfo(long,System.String,ushort,int,long):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -102,7 +105,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
+  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+16 (+10.81%) : 8332.dasm - Interop+Globalization:EnumCalendarInfo(long,System.String,ushort,int,long):ubyte (FullOpts)

@@ -14,16 +14,15 @@
 ;  V03 arg3         [V03,T03] (  3,  3   )     int  ->   x3         single-def
 ;  V04 arg4         [V04,T04] (  3,  3   )    long  ->   x4         single-def
 ;* V05 loc0         [V05    ] (  0,  0   )   ubyte  ->  zero-ref   
-;  V06 loc1         [V06,T10] (  2,  2   )     int  ->  x19        
+;  V06 loc1         [V06,T09] (  2,  2   )     int  ->  x19        
 ;* V07 loc2         [V07    ] (  0,  0   )    long  ->  zero-ref   
 ;  V08 loc3         [V08    ] (  2,  2   )   byref  ->  [fp+0x58]  must-init pinned
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [sp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V10 tmp1         [V10,T09] (  4,  3   )   byref  ->   x1         "Inline return value spill temp"
+;  V10 tmp1         [V10,T08] (  4,  3   )   byref  ->   x1         "Inline return value spill temp"
 ;  V11 tmp2         [V11,T05] (  2,  4   )     int  ->   x0         "Single return block return value"
 ;  V12 PInvokeFrame [V12    ] (  3,  3   )  struct (40) [fp+0x10]  do-not-enreg[XS] addr-exposed "Pinvoke FrameVar"
 ;  V13 tmp4         [V13,T06] (  2,  4   )    long  ->   x1         "Cast away GC"
-;  V14 tmp5         [V14,T07] (  2,  4   )    long  ->   x0         "argument with side effect"
-;  V15 tmp6         [V15,T08] (  2,  4   )    long  ->   x1         "argument with side effect"
+;  V14 tmp5         [V14,T07] (  2,  4   )    long  ->   x1         "argument with side effect"
 ;  TEMP_02                                     int  ->  [fp+0x54]
 ;  TEMP_01                                     int  ->  [fp+0x50]
 ;  TEMP_05                                    long  ->  [fp+0x48]
@@ -59,19 +58,23 @@ G_M23060_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
                        ;; size=4 bbWeight=0.50 PerfScore 0.25
 G_M23060_IG05:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {x1}, byref
             str     x1, [fp, #0x58]    // [V08 loc3]
-            stp     x1, x0, [fp, #0x40]    // [TEMP_04], [TEMP_05]
+            str     x1, [fp, #0x48]    // [TEMP_05]
             uxth    w2, w2
-            stp     w3, w2, [fp, #0x50]    // [TEMP_02]
+            str     w2, [fp, #0x54]    // [TEMP_02]
+            str     x0, [fp, #0x40]    // [TEMP_04]
+            str     w3, [fp, #0x50]    // [TEMP_01]
             str     x4, [fp, #0x38]    // [TEMP_03]
             add     x0, fp, #16    // [V12 PInvokeFrame]
-                       ;; size=24 bbWeight=1 PerfScore 5.00
+                       ;; size=32 bbWeight=1 PerfScore 7.00
 G_M23060_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             ; byrRegs -[x1]
             bl      CORINFO_HELP_JIT_PINVOKE_BEGIN
-            ldp     x1, x0, [fp, #0x40]    // [TEMP_04], [TEMP_05]
-            ldp     w3, w2, [fp, #0x50]    // [TEMP_02]
+            ldr     x1, [fp, #0x48]    // [TEMP_05]
+            ldr     w2, [fp, #0x54]    // [TEMP_02]
+            ldr     x0, [fp, #0x40]    // [TEMP_04]
+            ldr     w3, [fp, #0x50]    // [TEMP_01]
             ldr     x4, [fp, #0x38]    // [TEMP_03]
-                       ;; size=16 bbWeight=1 PerfScore 8.00
+                       ;; size=24 bbWeight=1 PerfScore 11.00
 G_M23060_IG07:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
             bl      <unknown method>
             mov     w19, w0
@@ -92,7 +95,7 @@ G_M23060_IG08:        ; bbWeight=1, epilog, nogc, extend
             ret     lr
                        ;; size=28 bbWeight=1 PerfScore 7.00
 
-; Total bytes of code 148, prolog size 32, PerfScore 35.00, instruction count 37, allocated bytes for code 148 (MethodHash=6585a5eb) for method Interop+Globalization:EnumCalendarInfo(long,System.String,ushort,int,long):ubyte (FullOpts)
+; Total bytes of code 164, prolog size 32, PerfScore 40.00, instruction count 41, allocated bytes for code 164 (MethodHash=6585a5eb) for method Interop+Globalization:EnumCalendarInfo(long,System.String,ushort,int,long):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -103,7 +106,7 @@ Unwind Info:
   E bit             : 0
   X bit             : 0
   Vers              : 0
-  Function Length   : 37 (0x00025) Actual length = 148 (0x000094)
+  Function Length   : 41 (0x00029) Actual length = 164 (0x0000a4)
   ---- Epilog scopes ----
   ---- Scope 0
   Epilog Start Offset        : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.windows.arm64.checked.mch 831 201 28 602 -2,996 +536
benchmarks.run_pgo.windows.arm64.checked.mch 4,474 1,916 10 2,548 -42,800 +72
benchmarks.run_tiered.windows.arm64.checked.mch 819 646 13 160 -14,116 +192
coreclr_tests.run.windows.arm64.checked.mch 7,983 5,696 123 2,164 -229,580 +1,088
libraries.crossgen2.windows.arm64.checked.mch 4,919 984 189 3,746 -14,260 +2,360
libraries.pmi.windows.arm64.checked.mch 7,358 1,375 336 5,647 -15,064 +3,776
libraries_tests.run.windows.arm64.Release.mch 25,696 20,028 324 5,344 -437,008 +7,264
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 18,289 3,367 418 14,504 -35,568 +4,012
realworld.run.windows.arm64.checked.mch 1,637 415 73 1,149 -9,652 +1,128
smoke_tests.nativeaot.windows.arm64.checked.mch 268 70 28 170 -564 +224
72,274 34,698 1,542 36,034 -801,608 +20,652

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.arm64.checked.mch 24,445 4 24,441 4 (0.02%) 4 (0.02%)
benchmarks.run_pgo.windows.arm64.checked.mch 98,308 48,543 49,765 125 (0.13%) 125 (0.13%)
benchmarks.run_tiered.windows.arm64.checked.mch 48,501 36,685 11,816 4 (0.01%) 4 (0.01%)
coreclr_tests.run.windows.arm64.checked.mch 595,368 362,737 232,631 317 (0.05%) 317 (0.05%)
libraries.crossgen2.windows.arm64.checked.mch 243,430 15 243,415 0 (0.00%) 0 (0.00%)
libraries.pmi.windows.arm64.checked.mch 304,046 6 304,040 7 (0.00%) 7 (0.00%)
libraries_tests.run.windows.arm64.Release.mch 630,437 461,984 168,453 2,223 (0.35%) 2,225 (0.35%)
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 316,297 21,559 294,738 4 (0.00%) 4 (0.00%)
realworld.run.windows.arm64.checked.mch 33,192 3 33,189 3 (0.01%) 3 (0.01%)
smoke_tests.nativeaot.windows.arm64.checked.mch 24,181 7 24,174 0 (0.00%) 0 (0.00%)
2,318,205 931,543 1,386,662 2,687 (0.12%) 2,689 (0.12%)

jit-analyze output

benchmarks.run.windows.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 10961236 (overridden on cmd)
Total bytes of diff: 10958776 (overridden on cmd)
Total bytes of delta: -2460 (-0.02 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         112 : 20858.dasm (1.00 % of base)
          60 : 777.dasm (5.79 % of base)
          56 : 1841.dasm (0.50 % of base)
          56 : 3706.dasm (0.45 % of base)
          48 : 20846.dasm (0.79 % of base)
          44 : 5896.dasm (1.27 % of base)
          20 : 18795.dasm (0.66 % of base)
          16 : 908.dasm (12.50 % of base)
          12 : 16381.dasm (0.93 % of base)
          12 : 18337.dasm (0.31 % of base)
          12 : 724.dasm (0.96 % of base)
          12 : 17254.dasm (0.28 % of base)
           8 : 24360.dasm (1.06 % of base)
           8 : 21871.dasm (0.16 % of base)
           8 : 7917.dasm (1.56 % of base)
           4 : 17344.dasm (0.17 % of base)
           4 : 19045.dasm (0.74 % of base)
           4 : 2064.dasm (0.76 % of base)
           4 : 6711.dasm (0.97 % of base)
           4 : 17784.dasm (0.70 % of base)

Top file improvements (bytes):
        -440 : 2845.dasm (-10.74 % of base)
        -140 : 11290.dasm (-6.01 % of base)
         -84 : 6374.dasm (-3.44 % of base)
         -76 : 22580.dasm (-12.42 % of base)
         -64 : 19236.dasm (-9.70 % of base)
         -64 : 19347.dasm (-7.41 % of base)
         -60 : 6469.dasm (-1.98 % of base)
         -48 : 14296.dasm (-2.17 % of base)
         -44 : 17402.dasm (-1.68 % of base)
         -40 : 2683.dasm (-1.44 % of base)
         -36 : 6392.dasm (-2.48 % of base)
         -36 : 11495.dasm (-0.33 % of base)
         -36 : 1918.dasm (-6.04 % of base)
         -32 : 20253.dasm (-12.90 % of base)
         -32 : 21653.dasm (-12.90 % of base)
         -32 : 6707.dasm (-10.26 % of base)
         -32 : 14725.dasm (-3.15 % of base)
         -28 : 6353.dasm (-2.99 % of base)
         -28 : 6328.dasm (-3.74 % of base)
         -24 : 7547.dasm (-5.66 % of base)

60 total files with Code Size differences (35 improved, 25 regressed), 20 unchanged.

Top method regressions (bytes):
         112 (1.00 % of base) : 20858.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
          60 (5.79 % of base) : 777.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
          56 (0.50 % of base) : 1841.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          56 (0.45 % of base) : 3706.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
          48 (0.79 % of base) : 20846.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (FullOpts)
          44 (1.27 % of base) : 5896.dasm - ProtoBuf.Internal.Serializers.TypeSerializer`1[System.__Canon]:ProtoBuf.Internal.Serializers.IRuntimeProtoSerializerNode.EmitRead(ProtoBuf.Compiler.CompilerContext,ProtoBuf.Compiler.Local):this (FullOpts)
          20 (0.66 % of base) : 18795.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildLocals(Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.StatementSyntax,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol]):this (FullOpts)
          16 (12.50 % of base) : 908.dasm - System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
          12 (0.28 % of base) : 17254.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeDeclaration(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration:this (FullOpts)
          12 (0.31 % of base) : 18337.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:MakeParameters[System.__Canon,System.__Canon,System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,System.__Canon,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[System.__Canon],byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte,ubyte,int,System.Func`12[System.__Canon,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.__Canon,ubyte,int,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,ubyte,ubyte,System.__Canon,System.__Canon],ubyte):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (FullOpts)
          12 (0.96 % of base) : 724.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (FullOpts)
          12 (0.93 % of base) : 16381.dasm - System.Net.CertificateValidationPal:GetRequestCertificateAuthorities(System.Net.Security.SafeDeleteContext):System.String[] (FullOpts)
           8 (1.06 % of base) : 24360.dasm - BitOps:DoBitfieldIteration(int[],int[],int,byref):long (FullOpts)
           8 (1.56 % of base) : 7917.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindStartPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],byref,int,byref,byref):ubyte:this (FullOpts)
           8 (0.16 % of base) : 21871.dasm - System.Xml.XmlTextReaderImpl:ParseAttributeValueSlow(int,ushort,System.Xml.XmlTextReaderImpl+NodeData):this (FullOpts)
           4 (0.17 % of base) : 17344.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:CreateRootSingleNamespaceDeclaration(Microsoft.CodeAnalysis.CSharp.Syntax.CompilationUnitSyntax,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.SingleNamespaceOrTypeDeclaration],ubyte):Microsoft.CodeAnalysis.CSharp.RootSingleNamespaceDeclaration:this (FullOpts)
           4 (0.15 % of base) : 17251.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitNamespaceChildren(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.Syntax.InternalSyntax.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.MemberDeclarationSyntax]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.SingleNamespaceOrTypeDeclaration]:this (FullOpts)
           4 (0.74 % of base) : 19045.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder:GetFakeSymbolTokenForIL(Microsoft.Cci.IReference,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag):uint:this (FullOpts)
           4 (0.70 % of base) : 17784.dasm - Microsoft.CodeAnalysis.PEModule:FindTargetAttribute(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.AttributeDescription,byref):Microsoft.CodeAnalysis.PEModule+AttributeInfo (FullOpts)
           4 (0.97 % of base) : 6711.dasm - Microsoft.Extensions.Logging.Logger:<Log>g__LoggerLog|14_0[Microsoft.Extensions.Logging.LoggerMessage+LogValues`2[int,System.__Canon]](int,Microsoft.Extensions.Logging.EventId,Microsoft.Extensions.Logging.ILogger,System.Exception,System.Func`3[Microsoft.Extensions.Logging.LoggerMessage+LogValues`2[int,System.__Canon],System.__Canon,System.__Canon],byref,byref) (FullOpts)

Top method improvements (bytes):
        -440 (-10.74 % of base) : 2845.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -140 (-6.01 % of base) : 11290.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
         -84 (-3.44 % of base) : 6374.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetFieldTokenNoLock(System.Reflection.FieldInfo):int:this (FullOpts)
         -76 (-12.42 % of base) : 22580.dasm - Benchstone.MDBenchF.MDLLoops:Test():ubyte:this (FullOpts)
         -64 (-9.70 % of base) : 19236.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (FullOpts)
         -64 (-7.41 % of base) : 19347.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__77:MoveNext():ubyte:this (FullOpts)
         -60 (-1.98 % of base) : 6469.dasm - System.Reflection.Emit.RuntimeTypeBuilder:CreateTypeNoLock():System.Reflection.TypeInfo:this (FullOpts)
         -48 (-2.17 % of base) : 14296.dasm - System.Xml.Schema.XsdDateTime+Parser:Parse(System.String,int):ubyte:this (FullOpts)
         -44 (-1.68 % of base) : 17402.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:TryAddAssembly(Microsoft.CodeAnalysis.AssemblyIdentity,Microsoft.CodeAnalysis.MetadataReference,int,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Location,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],ubyte):Microsoft.CodeAnalysis.MetadataReference:this (FullOpts)
         -40 (-1.44 % of base) : 2683.dasm - Newtonsoft.Json.Serialization.JsonArrayContract:.ctor(System.Type):this (FullOpts)
         -36 (-2.48 % of base) : 6392.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMemberRefToken(System.Reflection.MethodBase,System.Type[]):int:this (FullOpts)
         -36 (-6.04 % of base) : 1918.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo:Configure():this (FullOpts)
         -36 (-0.33 % of base) : 11495.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -32 (-3.15 % of base) : 14725.dasm - Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser:ParseStream(System.IO.Stream):System.Collections.Generic.Dictionary`2[System.String,System.String]:this (FullOpts)
         -32 (-10.26 % of base) : 6707.dasm - Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass12_0`2[int,System.__Canon]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,int,System.__Canon,System.Exception):this (FullOpts)
         -32 (-12.90 % of base) : 21653.dasm - System.Text.Json.Document.Tests.Perf_EnumerateArray:Parse():this (FullOpts)
         -32 (-12.90 % of base) : 20253.dasm - System.Text.Json.Document.Tests.Perf_EnumerateObject:Parse():this (FullOpts)
         -28 (-3.74 % of base) : 6328.dasm - System.Reflection.Emit.RuntimeMethodBuilder:GetTokenNoLock():int:this (FullOpts)
         -28 (-2.99 % of base) : 6353.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenInternal(System.Reflection.MethodBase,System.Type[],ubyte):int:this (FullOpts)
         -24 (-3.09 % of base) : 6301.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetTypeTokenWorkerNoLock(System.Type,ubyte):int:this (FullOpts)

Top method regressions (percentages):
          16 (12.50 % of base) : 908.dasm - System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
          60 (5.79 % of base) : 777.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
           4 (1.82 % of base) : 7548.dasm - System.Text.Json.JsonDocument:ParseValue(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
           8 (1.56 % of base) : 7917.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindStartPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],byref,int,byref,byref):ubyte:this (FullOpts)
          44 (1.27 % of base) : 5896.dasm - ProtoBuf.Internal.Serializers.TypeSerializer`1[System.__Canon]:ProtoBuf.Internal.Serializers.IRuntimeProtoSerializerNode.EmitRead(ProtoBuf.Compiler.CompilerContext,ProtoBuf.Compiler.Local):this (FullOpts)
           4 (1.15 % of base) : 10075.dasm - System.Runtime.Serialization.BitFlagsGenerator:LoadArray():this (FullOpts)
           8 (1.06 % of base) : 24360.dasm - BitOps:DoBitfieldIteration(int[],int[],int,byref):long (FullOpts)
           4 (1.02 % of base) : 1910.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitCachingMemberAccessor+Cache`1[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon]]:EvictStaleCacheEntries(long):this (FullOpts)
         112 (1.00 % of base) : 20858.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
           4 (0.97 % of base) : 6711.dasm - Microsoft.Extensions.Logging.Logger:<Log>g__LoggerLog|14_0[Microsoft.Extensions.Logging.LoggerMessage+LogValues`2[int,System.__Canon]](int,Microsoft.Extensions.Logging.EventId,Microsoft.Extensions.Logging.ILogger,System.Exception,System.Func`3[Microsoft.Extensions.Logging.LoggerMessage+LogValues`2[int,System.__Canon],System.__Canon,System.__Canon],byref,byref) (FullOpts)
          12 (0.96 % of base) : 724.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (FullOpts)
          12 (0.93 % of base) : 16381.dasm - System.Net.CertificateValidationPal:GetRequestCertificateAuthorities(System.Net.Security.SafeDeleteContext):System.String[] (FullOpts)
          48 (0.79 % of base) : 20846.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (FullOpts)
           4 (0.76 % of base) : 2064.dasm - System.Text.Json.Serialization.Metadata.ReflectionEmitMemberAccessor:CreatePropertySetter(System.Reflection.PropertyInfo,System.Type):System.Reflection.Emit.DynamicMethod (FullOpts)
           4 (0.74 % of base) : 19045.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder:GetFakeSymbolTokenForIL(Microsoft.Cci.IReference,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.DiagnosticBag):uint:this (FullOpts)
           4 (0.70 % of base) : 17784.dasm - Microsoft.CodeAnalysis.PEModule:FindTargetAttribute(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.AttributeDescription,byref):Microsoft.CodeAnalysis.PEModule+AttributeInfo (FullOpts)
          20 (0.66 % of base) : 18795.dasm - Microsoft.CodeAnalysis.CSharp.LocalScopeBinder:BuildLocals(Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.StatementSyntax,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol]):this (FullOpts)
           4 (0.60 % of base) : 23789.dasm - V8.Crypto.BigInteger:rShiftTo(int,V8.Crypto.BigInteger):this (FullOpts)
          56 (0.50 % of base) : 1841.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          56 (0.45 % of base) : 3706.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)

Top method improvements (percentages):
         -20 (-14.29 % of base) : 19197.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
         -16 (-14.29 % of base) : 9724.dasm - System.Buffers.Text.Tests.Utf8FormatterTests:FormatterDateTimeOffsetNow(System.DateTimeOffset):ubyte:this (FullOpts)
         -16 (-13.33 % of base) : 23614.dasm - Span.IndexerBench:SameIndex2():ubyte:this (FullOpts)
         -32 (-12.90 % of base) : 21653.dasm - System.Text.Json.Document.Tests.Perf_EnumerateArray:Parse():this (FullOpts)
         -32 (-12.90 % of base) : 20253.dasm - System.Text.Json.Document.Tests.Perf_EnumerateObject:Parse():this (FullOpts)
         -76 (-12.42 % of base) : 22580.dasm - Benchstone.MDBenchF.MDLLoops:Test():ubyte:this (FullOpts)
        -440 (-10.74 % of base) : 2845.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
         -32 (-10.26 % of base) : 6707.dasm - Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass12_0`2[int,System.__Canon]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,int,System.__Canon,System.Exception):this (FullOpts)
         -64 (-9.70 % of base) : 19236.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (FullOpts)
         -64 (-7.41 % of base) : 19347.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__77:MoveNext():ubyte:this (FullOpts)
          -8 (-6.25 % of base) : 13958.dasm - System.Text.Json.Serialization.Tests.ReadJson`1[int]:DeserializeFromUtf8Bytes():int:this (FullOpts)
          -8 (-6.06 % of base) : 3467.dasm - System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
         -36 (-6.04 % of base) : 1918.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo:Configure():this (FullOpts)
        -140 (-6.01 % of base) : 11290.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
         -24 (-5.66 % of base) : 7547.dasm - System.Text.Json.Node.Tests.Perf_ParseThenWrite:ParseThenWrite():this (FullOpts)
         -20 (-5.43 % of base) : 19488.dasm - Microsoft.Cci.MetadataVisitor:Visit(Microsoft.Cci.ICustomAttribute):this (FullOpts)
         -20 (-5.38 % of base) : 15791.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo`1[int]:ContinueDeserialize(byref,byref,byref):int:this (FullOpts)
          -8 (-5.26 % of base) : 21447.dasm - System.Collections.Generic.PriorityQueue`2+UnorderedItemsCollection+Enumerator[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -16 (-5.19 % of base) : 9662.dasm - System.Collections.Stack+StackEnumerator:MoveNext():ubyte:this (FullOpts)
          -8 (-5.13 % of base) : 24256.dasm - Benchstone.MDBenchI.MDPuzzle:Test():ubyte:this (FullOpts)


benchmarks.run_pgo.windows.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 47394624 (overridden on cmd)
Total bytes of diff: 47351896 (overridden on cmd)
Total bytes of delta: -42728 (-0.09 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          16 : 74203.dasm (1.02 % of base)
          16 : 81708.dasm (1.03 % of base)
          12 : 34435.dasm (0.85 % of base)
           4 : 91231.dasm (0.14 % of base)
           4 : 82232.dasm (0.16 % of base)
           4 : 49236.dasm (0.16 % of base)
           4 : 58586.dasm (0.85 % of base)
           4 : 69638.dasm (5.88 % of base)
           4 : 69686.dasm (0.08 % of base)
           4 : 90667.dasm (1.00 % of base)

Top file improvements (bytes):
        -296 : 21211.dasm (-1.50 % of base)
        -288 : 60668.dasm (-5.22 % of base)
        -272 : 55787.dasm (-5.48 % of base)
        -248 : 57352.dasm (-10.65 % of base)
        -248 : 60375.dasm (-9.63 % of base)
        -208 : 68795.dasm (-5.46 % of base)
        -196 : 60957.dasm (-4.73 % of base)
        -192 : 55453.dasm (-1.85 % of base)
        -184 : 61712.dasm (-3.00 % of base)
        -184 : 60630.dasm (-2.36 % of base)
        -176 : 19828.dasm (-2.57 % of base)
        -176 : 44997.dasm (-2.57 % of base)
        -172 : 56412.dasm (-2.72 % of base)
        -172 : 56483.dasm (-3.70 % of base)
        -168 : 17784.dasm (-4.25 % of base)
        -168 : 23496.dasm (-2.37 % of base)
        -160 : 56878.dasm (-4.69 % of base)
        -156 : 71441.dasm (-2.88 % of base)
        -152 : 17766.dasm (-5.60 % of base)
        -152 : 57938.dasm (-2.85 % of base)

60 total files with Code Size differences (50 improved, 10 regressed), 30 unchanged.

Top method regressions (bytes):
          16 (1.02 % of base) : 74203.dasm - System.Reflection.CustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,ubyte):System.Object[] (Tier1)
          16 (1.03 % of base) : 81708.dasm - System.Reflection.CustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,ubyte):System.Object[] (Tier1)
          12 (0.85 % of base) : 34435.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (Tier1)
           4 (0.85 % of base) : 58586.dasm - Microsoft.Cci.MetadataWriter:GetResolutionScopeHandle(Microsoft.Cci.IUnitReference):System.Reflection.Metadata.EntityHandle:this (Tier0)
           4 (0.08 % of base) : 69686.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (Tier1)
           4 (5.88 % of base) : 69638.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
           4 (0.14 % of base) : 91231.dasm - System.Reflection.CustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,ubyte):System.Object[] (Tier1)
           4 (0.16 % of base) : 82232.dasm - System.Reflection.CustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,ubyte):System.Object[] (Tier1)
           4 (0.16 % of base) : 49236.dasm - System.Reflection.CustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,ubyte):System.Object[] (Tier1)
           4 (1.00 % of base) : 90667.dasm - System.Text.RegularExpressions.RegexCache:GetOrAdd(System.String):System.Text.RegularExpressions.Regex (Instrumented Tier0)

Top method improvements (bytes):
        -296 (-1.50 % of base) : 21211.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (Instrumented Tier0)
        -288 (-5.22 % of base) : 60668.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__createConversion|210_0(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Instrumented Tier0)
        -272 (-5.48 % of base) : 55787.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckMembersAgainstBaseType(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):this (Instrumented Tier0)
        -248 (-9.63 % of base) : 60375.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:CreateEmbeddedAttributesIfNeeded(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Instrumented Tier0)
        -248 (-10.65 % of base) : 57352.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:CreateEmbeddedAttributesIfNeeded(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0)
        -208 (-5.46 % of base) : 68795.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (Instrumented Tier0)
        -196 (-4.73 % of base) : 60957.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:GenerateMethodBody(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,Microsoft.CodeAnalysis.CSharp.BoundStatement,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.LambdaDebugInfo],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.ClosureDebugInfo],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.StateMachineStateDebugInfo],Microsoft.CodeAnalysis.CSharp.StateMachineTypeSymbol,Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider,Microsoft.CodeAnalysis.CSharp.ImportChain,ubyte,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SourceSpan],Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedEntryPointSymbol+AsyncForwardEntryPoint):Microsoft.CodeAnalysis.CodeGen.MethodBody (Instrumented Tier0)
        -192 (-1.85 % of base) : 55453.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Instrumented Tier0)
        -184 (-3.00 % of base) : 61712.dasm - Microsoft.CodeAnalysis.Compilation:SerializeToPeStream(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.RebuildData,System.Func`2[Microsoft.DiaSymReader.ISymWriterMetadataProvider,Microsoft.DiaSymReader.SymUnmanagedWriter],Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Emit.EmitOptions,System.Nullable`1[System.Security.Cryptography.RSAParameters],System.Threading.CancellationToken):ubyte:this (Instrumented Tier0)
        -184 (-2.36 % of base) : 60630.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Instrumented Tier0)
        -176 (-2.57 % of base) : 19828.dasm - System.Xml.Serialization.TypeScope:ImportTypeDesc(System.Type,System.Reflection.MemberInfo,ubyte):System.Xml.Serialization.TypeDesc:this (Instrumented Tier0)
        -176 (-2.57 % of base) : 44997.dasm - System.Xml.Serialization.TypeScope:ImportTypeDesc(System.Type,System.Reflection.MemberInfo,ubyte):System.Xml.Serialization.TypeDesc:this (Instrumented Tier0)
        -172 (-3.70 % of base) : 56483.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__createConversion|210_0(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
        -172 (-2.72 % of base) : 56412.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier0)
        -168 (-4.25 % of base) : 17784.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenNoLock(System.Reflection.MethodInfo,ubyte):int:this (Instrumented Tier0)
        -168 (-2.37 % of base) : 23496.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper:ImportDataMembers():this (Instrumented Tier0)
        -160 (-4.69 % of base) : 56878.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:GenerateMethodBody(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,Microsoft.CodeAnalysis.CSharp.BoundStatement,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.LambdaDebugInfo],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.ClosureDebugInfo],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.StateMachineStateDebugInfo],Microsoft.CodeAnalysis.CSharp.StateMachineTypeSymbol,Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider,Microsoft.CodeAnalysis.CSharp.ImportChain,ubyte,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SourceSpan],Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedEntryPointSymbol+AsyncForwardEntryPoint):Microsoft.CodeAnalysis.CodeGen.MethodBody (Tier0)
        -156 (-2.88 % of base) : 71441.dasm - System.Net.Security.SafeDeleteContext:AcceptSecurityContext(byref,byref,int,int,System.Net.Security.InputSecurityBuffers,byref,byref):int (Instrumented Tier0)
        -152 (-2.85 % of base) : 57938.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol+<Microsoft-Cci-ITypeDefinition-GetExplicitImplementationOverrides>d__30:MoveNext():ubyte:this (Instrumented Tier0)
        -152 (-5.60 % of base) : 17766.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodMetadataToken(System.Reflection.ConstructorInfo):int:this (Instrumented Tier0)

Top method regressions (percentages):
           4 (5.88 % of base) : 69638.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
          16 (1.03 % of base) : 81708.dasm - System.Reflection.CustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,ubyte):System.Object[] (Tier1)
          16 (1.02 % of base) : 74203.dasm - System.Reflection.CustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,ubyte):System.Object[] (Tier1)
           4 (1.00 % of base) : 90667.dasm - System.Text.RegularExpressions.RegexCache:GetOrAdd(System.String):System.Text.RegularExpressions.Regex (Instrumented Tier0)
          12 (0.85 % of base) : 34435.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (Tier1)
           4 (0.85 % of base) : 58586.dasm - Microsoft.Cci.MetadataWriter:GetResolutionScopeHandle(Microsoft.Cci.IUnitReference):System.Reflection.Metadata.EntityHandle:this (Tier0)
           4 (0.16 % of base) : 49236.dasm - System.Reflection.CustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,ubyte):System.Object[] (Tier1)
           4 (0.16 % of base) : 82232.dasm - System.Reflection.CustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,ubyte):System.Object[] (Tier1)
           4 (0.14 % of base) : 91231.dasm - System.Reflection.CustomAttribute:GetCustomAttributes(System.RuntimeType,System.RuntimeType,ubyte):System.Object[] (Tier1)
           4 (0.08 % of base) : 69686.dasm - Microsoft.CodeAnalysis.SyntaxNode+<DescendantTriviaOnly>d__175:MoveNext():ubyte:this (Tier1)

Top method improvements (percentages):
         -96 (-29.27 % of base) : 61588.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Instrumented Tier0)
         -96 (-29.27 % of base) : 57226.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -88 (-27.16 % of base) : 61627.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Instrumented Tier0)
         -88 (-27.16 % of base) : 57288.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -44 (-26.83 % of base) : 69246.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Instrumented Tier0)
         -44 (-26.83 % of base) : 68825.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
         -48 (-22.22 % of base) : 68775.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)
         -28 (-21.88 % of base) : 8196.dasm - System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Tier0)
         -56 (-20.90 % of base) : 56000.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper+CheckConstraintsArgs:.ctor(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.ConversionsBase,ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0)
         -40 (-20.00 % of base) : 71405.dasm - System.Net.SSPISecureChannelType:InitializeSecurityContext(byref,byref,System.String,int,int,System.Net.Security.InputSecurityBuffers,byref,byref):int:this (Instrumented Tier0)
         -40 (-20.00 % of base) : 4399.dasm - System.Net.SSPISecureChannelType:InitializeSecurityContext(byref,byref,System.String,int,int,System.Net.Security.InputSecurityBuffers,byref,byref):int:this (Tier0)
         -40 (-20.00 % of base) : 73400.dasm - System.Numerics.Tests.Perf_Matrix4x4:LerpBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -36 (-18.75 % of base) : 60291.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:Initialize(System.__Canon,Microsoft.CodeAnalysis.UseSiteInfo`1[System.__Canon]):this (Instrumented Tier0)
         -36 (-18.75 % of base) : 55202.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:Initialize(System.__Canon,Microsoft.CodeAnalysis.UseSiteInfo`1[System.__Canon]):this (Tier0)
         -24 (-18.75 % of base) : 38667.dasm - System.Xml.Serialization.XmlSerializer:Deserialize(System.Xml.XmlReader,System.String):System.Object:this (Tier0)
         -88 (-18.33 % of base) : 68772.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:MakeLocal(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder):Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol (Tier0)
         -40 (-17.86 % of base) : 69247.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BoundTypeExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Instrumented Tier0)
         -40 (-17.86 % of base) : 68826.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BoundTypeExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
         -92 (-16.67 % of base) : 57308.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -20 (-15.62 % of base) : 55809.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.LookupPosition:IsInExpressionBody(int,Microsoft.CodeAnalysis.CSharp.Syntax.ArrowExpressionClauseSyntax,Microsoft.CodeAnalysis.SyntaxToken):ubyte (Tier0)


benchmarks.run_tiered.windows.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 15343840 (overridden on cmd)
Total bytes of diff: 15329916 (overridden on cmd)
Total bytes of delta: -13924 (-0.09 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          60 : 9810.dasm (5.79 % of base)
          48 : 41429.dasm (0.80 % of base)
          20 : 43692.dasm (0.76 % of base)
          12 : 15661.dasm (0.96 % of base)
          12 : 15664.dasm (2.86 % of base)
           8 : 48491.dasm (1.06 % of base)
           8 : 19052.dasm (1.57 % of base)
           4 : 10639.dasm (0.30 % of base)
           4 : 38655.dasm (0.70 % of base)
           4 : 41468.dasm (5.88 % of base)
           4 : 27957.dasm (0.48 % of base)
           4 : 38077.dasm (0.85 % of base)
           4 : 47045.dasm (0.13 % of base)

Top file improvements (bytes):
        -248 : 37038.dasm (-10.65 % of base)
        -208 : 40984.dasm (-6.68 % of base)
        -172 : 36169.dasm (-3.70 % of base)
        -172 : 36098.dasm (-2.72 % of base)
        -160 : 36564.dasm (-4.69 % of base)
        -140 : 36972.dasm (-11.82 % of base)
        -108 : 35495.dasm (-4.08 % of base)
        -104 : 36976.dasm (-8.44 % of base)
         -96 : 36912.dasm (-29.27 % of base)
         -96 : 37236.dasm (-2.12 % of base)
         -92 : 36994.dasm (-16.67 % of base)
         -88 : 40960.dasm (-18.33 % of base)
         -88 : 245.dasm (-10.95 % of base)
         -88 : 36974.dasm (-27.16 % of base)
         -88 : 40912.dasm (-6.81 % of base)
         -84 : 34779.dasm (-10.40 % of base)
         -80 : 36922.dasm (-5.13 % of base)
         -80 : 37747.dasm (-13.16 % of base)
         -80 : 36893.dasm (-5.21 % of base)
         -76 : 32905.dasm (-4.05 % of base)

58 total files with Code Size differences (45 improved, 13 regressed), 27 unchanged.

Top method regressions (bytes):
          60 (5.79 % of base) : 9810.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
          48 (0.80 % of base) : 41429.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (Tier1)
          20 (0.76 % of base) : 43692.dasm - System.Text.Json.Tests.Perf_Segment:ReadMultiSegmentSequenceUsingSpan(int):this (Tier1-OSR)
          12 (2.86 % of base) : 15664.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):this (Tier1)
          12 (0.96 % of base) : 15661.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (Tier1)
           8 (1.06 % of base) : 48491.dasm - BitOps:DoBitfieldIteration(int[],int[],int,byref):long (Tier1)
           8 (1.57 % of base) : 19052.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindStartPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],byref,int,byref,byref):ubyte:this (Tier1-OSR)
           4 (0.85 % of base) : 38077.dasm - Microsoft.Cci.MetadataWriter:GetResolutionScopeHandle(Microsoft.Cci.IUnitReference):System.Reflection.Metadata.EntityHandle:this (Tier0)
           4 (0.70 % of base) : 38655.dasm - Microsoft.CodeAnalysis.PEModule:FindTargetAttribute(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.AttributeDescription,byref):Microsoft.CodeAnalysis.PEModule+AttributeInfo (Tier1)
           4 (5.88 % of base) : 41468.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
           4 (0.48 % of base) : 27957.dasm - System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong],System.__Canon]:FindValue(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]):byref:this (Tier1)
           4 (0.30 % of base) : 10639.dasm - System.Collections.Hashtable:Insert(System.Object,System.Object,ubyte):this (Tier1)
           4 (0.13 % of base) : 47045.dasm - System.Net.Sockets.Socket:Dispose(ubyte):this (Tier1)

Top method improvements (bytes):
        -248 (-10.65 % of base) : 37038.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:CreateEmbeddedAttributesIfNeeded(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0)
        -208 (-6.68 % of base) : 40984.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (Tier0)
        -172 (-3.70 % of base) : 36169.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__createConversion|210_0(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
        -172 (-2.72 % of base) : 36098.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier0)
        -160 (-4.69 % of base) : 36564.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:GenerateMethodBody(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,Microsoft.CodeAnalysis.CSharp.BoundStatement,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.LambdaDebugInfo],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.ClosureDebugInfo],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.StateMachineStateDebugInfo],Microsoft.CodeAnalysis.CSharp.StateMachineTypeSymbol,Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider,Microsoft.CodeAnalysis.CSharp.ImportChain,ubyte,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SourceSpan],Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedEntryPointSymbol+AsyncForwardEntryPoint):Microsoft.CodeAnalysis.CodeGen.MethodBody (Tier0)
        -140 (-11.82 % of base) : 36972.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeCall(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol]):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
        -108 (-4.08 % of base) : 35495.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:MakeParameters[System.__Canon,System.__Canon,System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,System.__Canon,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[System.__Canon],byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte,ubyte,int,System.Func`12[System.__Canon,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.__Canon,ubyte,int,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,ubyte,ubyte,System.__Canon,System.__Canon],ubyte):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (Tier0)
        -104 (-8.44 % of base) : 36976.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -96 (-2.12 % of base) : 37236.dasm - Microsoft.CodeAnalysis.Compilation:SerializeToPeStream(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.RebuildData,System.Func`2[Microsoft.DiaSymReader.ISymWriterMetadataProvider,Microsoft.DiaSymReader.SymUnmanagedWriter],Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Emit.EmitOptions,System.Nullable`1[System.Security.Cryptography.RSAParameters],System.Threading.CancellationToken):ubyte:this (Tier0)
         -96 (-29.27 % of base) : 36912.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -92 (-16.67 % of base) : 36994.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -88 (-6.81 % of base) : 40912.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindDeclarationStatementParts(Microsoft.CodeAnalysis.CSharp.Syntax.LocalDeclarationStatementSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (Tier0)
         -88 (-27.16 % of base) : 36974.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -88 (-18.33 % of base) : 40960.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:MakeLocal(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder):Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol (Tier0)
         -88 (-10.95 % of base) : 245.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:GetListByName(ulong,int,ulong,int,int,int):System.__Canon[]:this (Tier0)
         -84 (-10.40 % of base) : 34779.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEParameterSymbol:Create(Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,ubyte,int,ubyte,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ModifierInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]],Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,System.Reflection.Metadata.ParameterHandle,Microsoft.CodeAnalysis.CSharp.Symbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ModifierInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]],ubyte,byref):Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEParameterSymbol (Tier0)
         -80 (-13.16 % of base) : 37747.dasm - Microsoft.Cci.ReferenceIndexerBase:Visit(Microsoft.Cci.ITypeDefinition):this (Tier0)
         -80 (-5.21 % of base) : 36893.dasm - Microsoft.CodeAnalysis.CSharp.Binder:GenerateBaseParameterlessConstructorInitializer(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundCall (Tier0)
         -80 (-5.13 % of base) : 36922.dasm - Microsoft.CodeAnalysis.CSharp.DiagnosticsPass:VisitCall(Microsoft.CodeAnalysis.CSharp.BoundCall):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier0)
         -76 (-4.05 % of base) : 32905.dasm - Microsoft.CodeAnalysis.Compilation:Emit(System.IO.Stream,System.IO.Stream,System.IO.Stream,System.IO.Stream,System.IO.Stream,System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.ResourceDescription],Microsoft.CodeAnalysis.Emit.EmitOptions,Microsoft.CodeAnalysis.IMethodSymbol,System.IO.Stream,System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.EmbeddedText],Microsoft.CodeAnalysis.RebuildData,Microsoft.CodeAnalysis.CodeGen.CompilationTestData,System.Threading.CancellationToken):Microsoft.CodeAnalysis.Emit.EmitResult:this (Tier0)

Top method regressions (percentages):
           4 (5.88 % of base) : 41468.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
          60 (5.79 % of base) : 9810.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
          12 (2.86 % of base) : 15664.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):this (Tier1)
           8 (1.57 % of base) : 19052.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1[ulong]:FindStartPositionDeltas[System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+DfaStateHandler[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoZAnchorInputReader[ulong],System.Text.RegularExpressions.Symbolic.SymbolicRegexMatcher`1+NoAnchorsNullabilityHandler[ulong]](System.ReadOnlySpan`1[ushort],byref,int,byref,byref):ubyte:this (Tier1-OSR)
           8 (1.06 % of base) : 48491.dasm - BitOps:DoBitfieldIteration(int[],int[],int,byref):long (Tier1)
          12 (0.96 % of base) : 15661.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (Tier1)
           4 (0.85 % of base) : 38077.dasm - Microsoft.Cci.MetadataWriter:GetResolutionScopeHandle(Microsoft.Cci.IUnitReference):System.Reflection.Metadata.EntityHandle:this (Tier0)
          48 (0.80 % of base) : 41429.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (Tier1)
          20 (0.76 % of base) : 43692.dasm - System.Text.Json.Tests.Perf_Segment:ReadMultiSegmentSequenceUsingSpan(int):this (Tier1-OSR)
           4 (0.70 % of base) : 38655.dasm - Microsoft.CodeAnalysis.PEModule:FindTargetAttribute(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.AttributeDescription,byref):Microsoft.CodeAnalysis.PEModule+AttributeInfo (Tier1)
           4 (0.48 % of base) : 27957.dasm - System.Collections.Generic.Dictionary`2[System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong],System.__Canon]:FindValue(System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[ulong]):byref:this (Tier1)
           4 (0.30 % of base) : 10639.dasm - System.Collections.Hashtable:Insert(System.Object,System.Object,ubyte):this (Tier1)
           4 (0.13 % of base) : 47045.dasm - System.Net.Sockets.Socket:Dispose(ubyte):this (Tier1)

Top method improvements (percentages):
         -96 (-29.27 % of base) : 36912.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -88 (-27.16 % of base) : 36974.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -44 (-26.83 % of base) : 41014.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
         -48 (-22.22 % of base) : 40963.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)
         -28 (-21.88 % of base) : 7158.dasm - System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Tier0)
         -56 (-20.90 % of base) : 35676.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper+CheckConstraintsArgs:.ctor(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.ConversionsBase,ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0)
         -40 (-20.00 % of base) : 7621.dasm - System.Net.SSPISecureChannelType:InitializeSecurityContext(byref,byref,System.String,int,int,System.Net.Security.InputSecurityBuffers,byref,byref):int:this (Tier0)
         -40 (-20.00 % of base) : 43628.dasm - System.Numerics.Tests.Perf_Matrix4x4:LerpBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -36 (-18.75 % of base) : 34876.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:Initialize(System.__Canon,Microsoft.CodeAnalysis.UseSiteInfo`1[System.__Canon]):this (Tier0)
         -24 (-18.75 % of base) : 27373.dasm - System.Xml.Serialization.XmlSerializer:Deserialize(System.Xml.XmlReader,System.String):System.Object:this (Tier0)
         -88 (-18.33 % of base) : 40960.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:MakeLocal(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder):Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol (Tier0)
         -40 (-17.86 % of base) : 41015.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BoundTypeExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
         -92 (-16.67 % of base) : 36994.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -20 (-15.62 % of base) : 35485.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.LookupPosition:IsInExpressionBody(int,Microsoft.CodeAnalysis.CSharp.Syntax.ArrowExpressionClauseSyntax,Microsoft.CodeAnalysis.SyntaxToken):ubyte (Tier0)
         -28 (-15.56 % of base) : 23833.dasm - System.Diagnostics.ActivitySource:StartActivity(System.String,int,System.Diagnostics.ActivityContext,System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]],System.Collections.Generic.IEnumerable`1[System.Diagnostics.ActivityLink],System.DateTimeOffset):System.Diagnostics.Activity:this (Tier0)
         -32 (-15.38 % of base) : 35481.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.LookupPosition:IsInBody(int,Microsoft.CodeAnalysis.CSharp.Syntax.BaseMethodDeclarationSyntax):ubyte (Tier0)
         -40 (-15.15 % of base) : 40951.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (Tier0)
         -20 (-15.15 % of base) : 34740.dasm - Microsoft.CodeAnalysis.PEModule:HasFixedBufferAttribute(System.Reflection.Metadata.EntityHandle,byref,byref):ubyte:this (Tier0)
         -24 (-15.00 % of base) : 40992.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceSimpleParameterSymbol:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,int,ubyte,ubyte,System.String,Microsoft.CodeAnalysis.Location):this (Tier0)
         -48 (-14.63 % of base) : 36189.dasm - Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator+UncommonData:CreateIfNeeded(Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]):Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator+UncommonData (Tier0)


coreclr_tests.run.windows.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 495372096 (overridden on cmd)
Total bytes of diff: 495143604 (overridden on cmd)
Total bytes of delta: -228492 (-0.05 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         116 : 284995.dasm (0.15 % of base)
         112 : 501152.dasm (1.00 % of base)
          48 : 501140.dasm (0.78 % of base)
          24 : 392066.dasm (0.34 % of base)
          24 : 532202.dasm (3.75 % of base)
          20 : 31058.dasm (0.88 % of base)
          20 : 486609.dasm (9.26 % of base)
          16 : 388534.dasm (0.22 % of base)
          16 : 514391.dasm (8.33 % of base)
          16 : 538346.dasm (0.28 % of base)
          12 : 218735.dasm (0.81 % of base)
          12 : 241870.dasm (0.82 % of base)
          12 : 356570.dasm (0.99 % of base)
          12 : 497978.dasm (0.28 % of base)
          12 : 513709.dasm (4.11 % of base)
          12 : 532628.dasm (2.38 % of base)
          12 : 241996.dasm (0.91 % of base)
          12 : 255990.dasm (1.03 % of base)
          12 : 514424.dasm (6.98 % of base)
          12 : 514646.dasm (5.77 % of base)

Top file improvements (bytes):
        -456 : 218316.dasm (-2.07 % of base)
        -444 : 287782.dasm (-3.56 % of base)
        -440 : 503263.dasm (-10.74 % of base)
        -424 : 297681.dasm (-1.10 % of base)
        -328 : 507015.dasm (-20.25 % of base)
        -316 : 507014.dasm (-14.31 % of base)
        -304 : 504356.dasm (-19.49 % of base)
        -300 : 504355.dasm (-13.54 % of base)
        -300 : 504933.dasm (-19.23 % of base)
        -284 : 296504.dasm (-7.77 % of base)
        -284 : 288945.dasm (-2.47 % of base)
        -280 : 504390.dasm (-16.87 % of base)
        -280 : 504932.dasm (-13.11 % of base)
        -272 : 246510.dasm (-5.48 % of base)
        -272 : 504951.dasm (-17.62 % of base)
        -264 : 504389.dasm (-10.86 % of base)
        -264 : 503765.dasm (-10.73 % of base)
        -260 : 274118.dasm (-2.12 % of base)
        -256 : 504593.dasm (-18.55 % of base)
        -256 : 505720.dasm (-11.23 % of base)

87 total files with Code Size differences (52 improved, 35 regressed), 20 unchanged.

Top method regressions (bytes):
         116 (0.15 % of base) : 284995.dasm - Test_1000w1d.testout1:Func_0():int (Tier0)
         112 (1.00 % of base) : 501152.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
          48 (0.78 % of base) : 501140.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (FullOpts)
          24 (3.75 % of base) : 532202.dasm - DefaultNamespace.DoubLinkBig:.ctor(int):this (FullOpts)
          24 (0.34 % of base) : 392066.dasm - Internal.JitInterface.CorInfoImpl:resolveVirtualMethod(ulong):ubyte:this (Tier1)
          20 (9.26 % of base) : 486609.dasm - Microsoft.CSharp.RuntimeBinder.ComInterop.DynamicVariantExtensions:SetAsByrefVariantIndirect(byref,byref) (FullOpts)
          20 (0.88 % of base) : 31058.dasm - VectorMgdMgd+HVATests`1[ubyte]:doTests():this (Tier0)
          16 (8.33 % of base) : 514391.dasm - (dynamicClass):ABIStress_TailCaller462(ABIStress.S2U,ABIStress.S2U,ABIStress.S2P,ABIStress.S8P,ABIStress.S4P,ABIStress.S2P,ABIStress.S1P,ABIStress.S2P,ABIStress.S1P,ABIStress.S8U,ABIStress.S8U,ABIStress.S8P,ABIStress.S8U,ABIStress.S2U,ABIStress.S8P,ABIStress.S2P,ubyte,float,ABIStress.S2U,short,ubyte,double,long,short):int (FullOpts)
          16 (0.22 % of base) : 388534.dasm - Internal.JitInterface.CorInfoImpl:resolveVirtualMethod(ulong):ubyte:this (Tier1)
          16 (0.28 % of base) : 538346.dasm - System.Xml.Xsl.IlGen.XmlILOptimizerVisitor:VisitEq(System.Xml.Xsl.Qil.QilBinary):System.Xml.Xsl.Qil.QilNode:this (FullOpts)
          12 (6.98 % of base) : 514424.dasm - (dynamicClass):ABIStress_TailCaller481(ABIStress.S4P,ABIStress.S8U,ubyte,long,long,ABIStress.S1P,ABIStress.S8U,ABIStress.S8U,ubyte,ABIStress.S2P,ABIStress.S2U,float,ABIStress.S8P,ABIStress.S1P,ABIStress.S8P,ABIStress.S8U,ABIStress.S1P,float,ubyte,ABIStress.S8P,ABIStress.S4P,ABIStress.S8P):int (FullOpts)
          12 (12.00 % of base) : 515313.dasm - (dynamicClass):ABIStress_TailCaller978(short,ABIStress.S2P,short,ABIStress.S1P,ubyte,double,ABIStress.S8U,ubyte,ABIStress.S4P,ABIStress.S1P,long,short,double,ABIStress.S4U,ABIStress.S8P,ABIStress.S8U,ABIStress.S2P):int (FullOpts)
          12 (4.11 % of base) : 513709.dasm - (dynamicClass):IL_STUB_CallTailCallTarget(long,byref,long) (FullOpts)
          12 (5.77 % of base) : 514646.dasm - (dynamicClass):IL_STUB_CallTailCallTarget(long,byref,long) (FullOpts)
          12 (0.28 % of base) : 497978.dasm - Microsoft.CodeAnalysis.CSharp.DeclarationTreeBuilder:VisitTypeDeclaration(Microsoft.CodeAnalysis.CSharp.Syntax.TypeDeclarationSyntax,ubyte):Microsoft.CodeAnalysis.CSharp.SingleTypeDeclaration:this (FullOpts)
          12 (2.38 % of base) : 532628.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:RemoveConstraintViolations[System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.CompoundUseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]):this (FullOpts)
          12 (0.81 % of base) : 218735.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToLowerConversion](System.String):System.String:this (Instrumented Tier1)
          12 (0.91 % of base) : 241996.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToLowerConversion](System.String):System.String:this (Tier1)
          12 (0.82 % of base) : 241870.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.String):System.String:this (Instrumented Tier1)
          12 (0.99 % of base) : 356570.dasm - System.Reflection.CustomAttribute:GetCustomAttributes(System.Reflection.RuntimeMethodInfo,System.RuntimeType,ubyte):System.Object[] (Tier1)

Top method improvements (bytes):
        -456 (-2.07 % of base) : 218316.dasm - Dynamic.CollectionTest:CustomCollection():this (Instrumented Tier0)
        -444 (-3.56 % of base) : 287782.dasm - JitTest_huge_struct_Arrays_il.Test:Main():int (MinOpts)
        -440 (-10.74 % of base) : 503263.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -424 (-1.10 % of base) : 297681.dasm - DefaultNamespace.cb6054ToByte_all:runTest():ubyte:this (Instrumented Tier0)
        -328 (-20.25 % of base) : 507015.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S2U,ABIStress.S11U,ABIStress.S11U,ABIStress.S16U,ABIStress.S6U,ABIStress.S6U,ABIStress.S4P,ABIStress.S14U,ABIStress.Hfa2,ABIStress.S10U,ABIStress.S13U,ABIStress.Hfa1,double,ABIStress.S10U,ABIStress.S2P,ABIStress.Hfa2,ABIStress.S5U,ABIStress.S9U,ABIStress.S4U,ABIStress.S12U,ABIStress.S2U,ABIStress.Hfa2,float,ABIStress.S6U,ABIStress.S32U):int (MinOpts)
        -316 (-14.31 % of base) : 507014.dasm - (dynamicClass):ABIStress_PInvoker929(ABIStress.S17U,ABIStress.S10U,double,System.Numerics.Vector`1[int],System.Int128,int,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S1P,ABIStress.S3U,ABIStress.I128_1,ABIStress.S7U,ABIStress.S8P,float,ABIStress.S8U,ABIStress.S15U,ABIStress.S16U,ABIStress.S6U,ABIStress.S31U,ABIStress.S2P,double,ABIStress.S7U,ABIStress.S3U,ABIStress.I128_2,ABIStress.Hfa1,short):int[] (MinOpts)
        -304 (-19.49 % of base) : 504356.dasm - (dynamicClass):IL_STUB_PInvoke(double,ABIStress.S13U,ABIStress.S6U,ABIStress.S14U,ABIStress.S1P,ABIStress.S13U,ABIStress.S10U,ABIStress.S5U,ABIStress.S2U,ABIStress.Hfa1,long,ABIStress.S11U,ABIStress.S12U,ABIStress.S1P,ABIStress.S32U,ABIStress.S10U,long,ABIStress.S15U,ABIStress.S11U,ABIStress.S16U,ABIStress.S4P,ABIStress.S8U,ABIStress.S10U,ABIStress.S32U):int (MinOpts)
        -300 (-13.54 % of base) : 504355.dasm - (dynamicClass):ABIStress_PInvoker179(ABIStress.S14U,ABIStress.Hfa2,ABIStress.S8P,ABIStress.I128_2,ABIStress.S16U,ABIStress.S14U,float,ABIStress.I128_1,System.Int128,ABIStress.S14U,short,double,System.Numerics.Vector`1[int],ABIStress.S10U,ABIStress.I128_2,ABIStress.I128_1,ABIStress.S14U,ABIStress.I128_1,ABIStress.S13U,System.Runtime.Intrinsics.Vector128`1[int]):int[] (MinOpts)
        -300 (-19.23 % of base) : 504933.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S12U,ABIStress.S2P,ABIStress.S5U,ABIStress.S16U,ABIStress.S15U,ABIStress.S5U,ABIStress.S2P,ABIStress.S15U,ABIStress.S4P,ABIStress.S13U,ABIStress.S3U,long,ABIStress.S8U,ABIStress.S12U,ABIStress.S9U,ABIStress.S9U,ABIStress.S8U,double,double,ABIStress.S3U,ABIStress.S1P,ABIStress.S14U,ABIStress.S6U,ABIStress.S2U,ABIStress.S31U):int (MinOpts)
        -284 (-2.47 % of base) : 288945.dasm - JitTest_huge_struct_huge_il.Test:Main():int (Instrumented Tier0)
        -284 (-7.77 % of base) : 296504.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindMemberAccessWithBoundLeft(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Syntax.SimpleNameSyntax,Microsoft.CodeAnalysis.SyntaxToken,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
        -280 (-13.11 % of base) : 504932.dasm - (dynamicClass):ABIStress_PInvoker334(ABIStress.S12U,ABIStress.S8P,ABIStress.S13U,ABIStress.S6U,short,ABIStress.S4P,ABIStress.S5U):int[] (MinOpts)
        -280 (-16.87 % of base) : 504390.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S14U,ABIStress.S2P,float,ABIStress.S15U,ABIStress.S4P,ABIStress.S10U,ABIStress.S13U,ABIStress.S15U,ABIStress.S11U,ABIStress.S2P,ubyte,ABIStress.S8U,ABIStress.S31U,ABIStress.S4U,ABIStress.S14U,ABIStress.S11U,ABIStress.S10U,ABIStress.S15U,double,ABIStress.S17U,short,ABIStress.S31U,ABIStress.Hfa1,ABIStress.Hfa1,ABIStress.S8U):int (MinOpts)
        -272 (-17.62 % of base) : 504951.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S16U,ABIStress.S6U,ABIStress.S14U,ABIStress.S11U,ABIStress.S17U,ABIStress.S12U,ubyte,ABIStress.S13U,ABIStress.S2U,ABIStress.S4U,ABIStress.S2P,short,ABIStress.S8U,ABIStress.S17U,ubyte,ABIStress.S3U,ABIStress.Hfa1,ABIStress.S8U,ABIStress.S15U,ABIStress.S11U,ABIStress.S15U,ABIStress.S6U,ABIStress.S2P,ABIStress.S32U):int (MinOpts)
        -272 (-5.48 % of base) : 246510.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckMembersAgainstBaseType(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):this (Instrumented Tier0)
        -264 (-10.86 % of base) : 504389.dasm - (dynamicClass):ABIStress_PInvoker188(short,ABIStress.S14U,ABIStress.S1P,ABIStress.S3U,ABIStress.I128_1,ABIStress.S12U,ABIStress.S15U,ABIStress.S5U,double):int[] (MinOpts)
        -264 (-10.73 % of base) : 503765.dasm - (dynamicClass):ABIStress_PInvoker28(ABIStress.S8U,ABIStress.I128_1,ABIStress.S6U,ABIStress.S5U,ABIStress.S2U,ABIStress.S1P,ABIStress.S9U,ABIStress.Hfa2,ABIStress.S11U,ABIStress.I128_2,ABIStress.S14U,ABIStress.S9U,ABIStress.I128_2,ABIStress.S4U,ABIStress.S1P,ABIStress.S17U,ABIStress.S7U,double):int[] (MinOpts)
        -260 (-2.12 % of base) : 274118.dasm - JitTest_huge_struct_huge_il.Test:Main():int (MinOpts)
        -256 (-11.23 % of base) : 505720.dasm - (dynamicClass):ABIStress_PInvoker552(ABIStress.S11U,ABIStress.S5U,ABIStress.S10U,ABIStress.S4U,float,ABIStress.Hfa2,ubyte,ABIStress.Hfa1,ABIStress.S13U,double,ABIStress.S12U,ABIStress.I128_2,ABIStress.S8P,ABIStress.S13U,ABIStress.S10U):int[] (MinOpts)
        -256 (-18.55 % of base) : 504593.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S13U,ABIStress.S17U,long,ABIStress.S14U,ABIStress.S15U,int,ABIStress.Hfa2,ubyte,ABIStress.S15U,float,double,long,ABIStress.S17U,ABIStress.S4U,ABIStress.S15U,short,ABIStress.S10U,double,ABIStress.S15U,ABIStress.S32U):int (MinOpts)

Top method regressions (percentages):
          12 (12.00 % of base) : 515313.dasm - (dynamicClass):ABIStress_TailCaller978(short,ABIStress.S2P,short,ABIStress.S1P,ubyte,double,ABIStress.S8U,ubyte,ABIStress.S4P,ABIStress.S1P,long,short,double,ABIStress.S4U,ABIStress.S8P,ABIStress.S8U,ABIStress.S2P):int (FullOpts)
          20 (9.26 % of base) : 486609.dasm - Microsoft.CSharp.RuntimeBinder.ComInterop.DynamicVariantExtensions:SetAsByrefVariantIndirect(byref,byref) (FullOpts)
           4 (9.09 % of base) : 515246.dasm - (dynamicClass):ABIStress_TailCaller940(short,ubyte,ABIStress.S2P,float,double,ABIStress.S4P,ABIStress.S1P,int):int (FullOpts)
           8 (8.70 % of base) : 515322.dasm - (dynamicClass):ABIStress_TailCaller985(ABIStress.S8P,ABIStress.S4P,ubyte,ABIStress.S8U,float,ubyte,ABIStress.S2P,short,double,int,ubyte):int (FullOpts)
          16 (8.33 % of base) : 514391.dasm - (dynamicClass):ABIStress_TailCaller462(ABIStress.S2U,ABIStress.S2U,ABIStress.S2P,ABIStress.S8P,ABIStress.S4P,ABIStress.S2P,ABIStress.S1P,ABIStress.S2P,ABIStress.S1P,ABIStress.S8U,ABIStress.S8U,ABIStress.S8P,ABIStress.S8U,ABIStress.S2U,ABIStress.S8P,ABIStress.S2P,ubyte,float,ABIStress.S2U,short,ubyte,double,long,short):int (FullOpts)
          12 (6.98 % of base) : 514424.dasm - (dynamicClass):ABIStress_TailCaller481(ABIStress.S4P,ABIStress.S8U,ubyte,long,long,ABIStress.S1P,ABIStress.S8U,ABIStress.S8U,ubyte,ABIStress.S2P,ABIStress.S2U,float,ABIStress.S8P,ABIStress.S1P,ABIStress.S8P,ABIStress.S8U,ABIStress.S1P,float,ubyte,ABIStress.S8P,ABIStress.S4P,ABIStress.S8P):int (FullOpts)
           8 (6.67 % of base) : 514112.dasm - (dynamicClass):ABIStress_TailCaller310(short,ABIStress.S1P,short,ABIStress.S4P,ABIStress.S4P,long,ubyte,ABIStress.S4P,short,ubyte,int,float,ABIStress.S8U):int (FullOpts)
           8 (6.25 % of base) : 514364.dasm - (dynamicClass):ABIStress_TailCaller448(short,ABIStress.S2P,ABIStress.S4P,ABIStress.S2P,ABIStress.S1P,ABIStress.S8U,ABIStress.S8P,ABIStress.S1P,float,double,ABIStress.S8U,ABIStress.S2U,ABIStress.S2U,float,ABIStress.S4P,double,ABIStress.S8U):int (FullOpts)
           4 (5.88 % of base) : 514268.dasm - (dynamicClass):ABIStress_TailCaller396(ABIStress.S2P,ABIStress.S8P,double,ABIStress.S4U,double,ABIStress.S8U,ABIStress.S8P,short,int,int,double,ABIStress.S2P,ABIStress.S4U,ABIStress.S2P,ABIStress.S4P,ABIStress.S1P,long,double):int (FullOpts)
           4 (5.88 % of base) : 410510.dasm - SP1d:M(int,int,int,int,int,int,int):int (FullOpts)
          12 (5.77 % of base) : 514646.dasm - (dynamicClass):IL_STUB_CallTailCallTarget(long,byref,long) (FullOpts)
           4 (5.56 % of base) : 513848.dasm - (dynamicClass):ABIStress_TailCaller170(ABIStress.S1P,long,short,ABIStress.S4P,long,double,ABIStress.S8P,ABIStress.S4P,ABIStress.S1P,ABIStress.S8P,ABIStress.S2U,int,long,double,ABIStress.S2U,ABIStress.S2P):int (FullOpts)
           4 (5.56 % of base) : 515266.dasm - (dynamicClass):ABIStress_TailCaller950(ABIStress.S2P,long,ABIStress.S8P,ABIStress.S4P,float,double,long,ABIStress.S8P,ABIStress.S8P,ABIStress.S4P,ABIStress.S8P,ubyte,double,float,ubyte):int (FullOpts)
           4 (5.26 % of base) : 513551.dasm - (dynamicClass):ABIStress_TailCaller13(double,double,ABIStress.S4U,float,ABIStress.S4U,ABIStress.S8U,ABIStress.S8U,double,ABIStress.S8U):int (FullOpts)
           4 (5.00 % of base) : 513961.dasm - (dynamicClass):ABIStress_TailCaller230(ubyte,ABIStress.S2P,ABIStress.S8P,short,ABIStress.S2P,ABIStress.S8U,short,ABIStress.S8P):int (FullOpts)
           8 (5.00 % of base) : 515293.dasm - (dynamicClass):ABIStress_TailCaller964(ABIStress.S8U,ubyte,ubyte,ABIStress.S8U,ABIStress.S2P,ABIStress.S8P,ubyte,long,short,ubyte,ubyte,ubyte,ABIStress.S2P,ABIStress.S4P,double,ubyte,ABIStress.S8P,ABIStress.S8U,ABIStress.S2U):int (FullOpts)
           4 (4.55 % of base) : 514344.dasm - (dynamicClass):ABIStress_TailCaller436(long,ABIStress.S8P,ABIStress.S4U,ABIStress.S8P,ABIStress.S8U,ABIStress.S1P,ABIStress.S1P,ABIStress.S1P,ABIStress.S4P,ABIStress.S4P,long,ABIStress.S2P):int (FullOpts)
           8 (4.26 % of base) : 513753.dasm - (dynamicClass):ABIStress_TailCaller121(long,double,double,ABIStress.S1P,ubyte,ABIStress.S2U,ubyte,ABIStress.S2P,short,long,ABIStress.S2U,short,ubyte,ABIStress.S8P,float,ABIStress.S2P,long,short):int (FullOpts)
          12 (4.11 % of base) : 513709.dasm - (dynamicClass):IL_STUB_CallTailCallTarget(long,byref,long) (FullOpts)
           4 (3.85 % of base) : 589704.dasm - NullableTest:BoxUnboxToQ(System.ValueType):ubyte (FullOpts)

Top method improvements (percentages):
         -96 (-29.27 % of base) : 247963.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -88 (-27.16 % of base) : 248023.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -44 (-26.83 % of base) : 249914.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
         -48 (-22.22 % of base) : 249862.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol+LocalWithInitializer:.ctor(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte):this (Tier0)
         -56 (-20.90 % of base) : 246726.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper+CheckConstraintsArgs:.ctor(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.ConversionsBase,ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0)
        -328 (-20.25 % of base) : 507015.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S2U,ABIStress.S11U,ABIStress.S11U,ABIStress.S16U,ABIStress.S6U,ABIStress.S6U,ABIStress.S4P,ABIStress.S14U,ABIStress.Hfa2,ABIStress.S10U,ABIStress.S13U,ABIStress.Hfa1,double,ABIStress.S10U,ABIStress.S2P,ABIStress.Hfa2,ABIStress.S5U,ABIStress.S9U,ABIStress.S4U,ABIStress.S12U,ABIStress.S2U,ABIStress.Hfa2,float,ABIStress.S6U,ABIStress.S32U):int (MinOpts)
        -304 (-19.49 % of base) : 504356.dasm - (dynamicClass):IL_STUB_PInvoke(double,ABIStress.S13U,ABIStress.S6U,ABIStress.S14U,ABIStress.S1P,ABIStress.S13U,ABIStress.S10U,ABIStress.S5U,ABIStress.S2U,ABIStress.Hfa1,long,ABIStress.S11U,ABIStress.S12U,ABIStress.S1P,ABIStress.S32U,ABIStress.S10U,long,ABIStress.S15U,ABIStress.S11U,ABIStress.S16U,ABIStress.S4P,ABIStress.S8U,ABIStress.S10U,ABIStress.S32U):int (MinOpts)
        -300 (-19.23 % of base) : 504933.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S12U,ABIStress.S2P,ABIStress.S5U,ABIStress.S16U,ABIStress.S15U,ABIStress.S5U,ABIStress.S2P,ABIStress.S15U,ABIStress.S4P,ABIStress.S13U,ABIStress.S3U,long,ABIStress.S8U,ABIStress.S12U,ABIStress.S9U,ABIStress.S9U,ABIStress.S8U,double,double,ABIStress.S3U,ABIStress.S1P,ABIStress.S14U,ABIStress.S6U,ABIStress.S2U,ABIStress.S31U):int (MinOpts)
        -212 (-19.13 % of base) : 506025.dasm - (dynamicClass):ABIStress_PInvoker635(ubyte,ABIStress.S3U,System.Numerics.Vector`1[int],ABIStress.S14U,ABIStress.S9U,ABIStress.Hfa1,ABIStress.S5U,int,System.Int128,float,ABIStress.S17U,ABIStress.S3U,ABIStress.S2P,ABIStress.Hfa2,ABIStress.S9U,ABIStress.S31U,ABIStress.I128_2,ABIStress.S13U,ABIStress.S4U,ABIStress.S32U,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.I128_2,ABIStress.S15U,ABIStress.I128_1,ABIStress.S2U):int[] (MinOpts)
         -36 (-18.75 % of base) : 245916.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:Initialize(System.__Canon,Microsoft.CodeAnalysis.UseSiteInfo`1[System.__Canon]):this (Tier0)
        -256 (-18.55 % of base) : 504593.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S13U,ABIStress.S17U,long,ABIStress.S14U,ABIStress.S15U,int,ABIStress.Hfa2,ubyte,ABIStress.S15U,float,double,long,ABIStress.S17U,ABIStress.S4U,ABIStress.S15U,short,ABIStress.S10U,double,ABIStress.S15U,ABIStress.S32U):int (MinOpts)
         -88 (-18.33 % of base) : 249859.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:MakeLocal(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder):Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol (Tier0)
        -252 (-18.10 % of base) : 504244.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S16U,ubyte,ABIStress.S13U,ABIStress.S8U,ABIStress.S15U,ABIStress.S9U,double,ABIStress.S6U,short,ABIStress.S9U,ABIStress.S13U,ABIStress.S8P,ABIStress.Hfa1,ABIStress.S3U,ABIStress.Hfa2,ABIStress.S10U,ABIStress.S17U,ABIStress.S13U,ABIStress.S31U,ABIStress.S2U):int (MinOpts)
        -200 (-17.86 % of base) : 505932.dasm - (dynamicClass):ABIStress_PInvoker609(ABIStress.S15U,ABIStress.S9U,ABIStress.S32U,ABIStress.S8U,ABIStress.S14U,ABIStress.S3U,ABIStress.S8P,ABIStress.S6U,ABIStress.Hfa2,ABIStress.S4U,ABIStress.S17U,long,int,int,ABIStress.S5U,ABIStress.I128_1,float,ABIStress.S2P,ABIStress.Hfa1):int[] (MinOpts)
         -40 (-17.86 % of base) : 249915.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BoundTypeExpression,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
         -32 (-17.78 % of base) : 511542.dasm - (dynamicClass):ABIStress_Stub_Caller15StaticValueTypeGenericOverReferenceTypeGenericOverValueType(ABIStress.S12U,ABIStress.I128_2,System.Int128,long):int (FullOpts)
        -204 (-17.71 % of base) : 506302.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S11U,ABIStress.S4U,ubyte,ABIStress.S12U,ABIStress.S13U,ABIStress.S4U,ABIStress.S8U,ABIStress.S10U,float,ABIStress.Hfa1,ABIStress.S13U,ABIStress.S6U,ABIStress.S8P,ABIStress.S10U,ABIStress.S8U,ABIStress.S12U,ABIStress.S17U):int (MinOpts)
         -36 (-17.65 % of base) : 296499.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BoundTypeExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
        -272 (-17.62 % of base) : 504951.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S16U,ABIStress.S6U,ABIStress.S14U,ABIStress.S11U,ABIStress.S17U,ABIStress.S12U,ubyte,ABIStress.S13U,ABIStress.S2U,ABIStress.S4U,ABIStress.S2P,short,ABIStress.S8U,ABIStress.S17U,ubyte,ABIStress.S3U,ABIStress.Hfa1,ABIStress.S8U,ABIStress.S15U,ABIStress.S11U,ABIStress.S15U,ABIStress.S6U,ABIStress.S2P,ABIStress.S32U):int (MinOpts)
        -208 (-17.57 % of base) : 506301.dasm - (dynamicClass):ABIStress_PInvoker717(ABIStress.S17U,ABIStress.S12U,ABIStress.S1P,double,ABIStress.S7U,int,ABIStress.S10U,ABIStress.S8U,double,short):int[] (MinOpts)


libraries.crossgen2.windows.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 58964780 (overridden on cmd)
Total bytes of diff: 58952880 (overridden on cmd)
Total bytes of delta: -11900 (-0.02 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          96 : 70836.dasm (3.10 % of base)
          64 : 69975.dasm (4.19 % of base)
          60 : 77360.dasm (7.81 % of base)
          60 : 56688.dasm (2.66 % of base)
          48 : 171882.dasm (2.65 % of base)
          48 : 142075.dasm (2.65 % of base)
          44 : 140402.dasm (0.16 % of base)
          40 : 69833.dasm (2.78 % of base)
          40 : 179577.dasm (5.35 % of base)
          32 : 114266.dasm (5.10 % of base)
          32 : 162194.dasm (5.59 % of base)
          32 : 124044.dasm (5.59 % of base)
          32 : 126501.dasm (2.11 % of base)
          32 : 72785.dasm (3.45 % of base)
          32 : 114264.dasm (3.59 % of base)
          28 : 229630.dasm (4.96 % of base)
          28 : 26319.dasm (3.63 % of base)
          28 : 142435.dasm (3.87 % of base)
          28 : 202422.dasm (1.03 % of base)
          28 : 208610.dasm (3.74 % of base)

Top file improvements (bytes):
       -1280 : 173379.dasm (-5.26 % of base)
       -1280 : 143607.dasm (-5.26 % of base)
        -140 : 178405.dasm (-4.77 % of base)
        -128 : 178570.dasm (-11.51 % of base)
        -124 : 199111.dasm (-4.59 % of base)
         -92 : 133189.dasm (-0.93 % of base)
         -88 : 114358.dasm (-7.03 % of base)
         -88 : 178487.dasm (-5.39 % of base)
         -72 : 96800.dasm (-14.88 % of base)
         -72 : 119163.dasm (-2.96 % of base)
         -68 : 167709.dasm (-3.93 % of base)
         -64 : 180745.dasm (-4.23 % of base)
         -64 : 118085.dasm (-5.50 % of base)
         -64 : 52216.dasm (-10.13 % of base)
         -60 : 113257.dasm (-1.73 % of base)
         -60 : 51885.dasm (-0.19 % of base)
         -56 : 110890.dasm (-1.72 % of base)
         -56 : 151103.dasm (-6.01 % of base)
         -56 : 81621.dasm (-9.33 % of base)
         -52 : 97557.dasm (-3.38 % of base)

78 total files with Code Size differences (44 improved, 34 regressed), 20 unchanged.

Top method regressions (bytes):
          96 (3.10 % of base) : 70836.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:MakeSynthesizedTupleMembers(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbol],System.Collections.Generic.HashSet`1[Microsoft.CodeAnalysis.CSharp.Symbol]):Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbol]:this (FullOpts)
          64 (4.19 % of base) : 69975.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:CreateEmbeddedAttributesIfNeeded(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
          60 (7.81 % of base) : 77360.dasm - Microsoft.CodeAnalysis.CSharp.ClosureConversion+<>c__DisplayClass35_0:<SynthesizeClosureEnvironments>g__MakeFrame|1(Microsoft.CodeAnalysis.CSharp.ClosureConversion+Analysis+Scope,Microsoft.CodeAnalysis.CSharp.ClosureConversion+Analysis+ClosureEnvironment):Microsoft.CodeAnalysis.CSharp.SynthesizedClosureEnvironment:this (FullOpts)
          60 (2.66 % of base) : 56688.dasm - Microsoft.CodeAnalysis.CSharp.SymbolDisplayVisitor:AddTypeParameterConstraints(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.ITypeSymbol]):this (FullOpts)
          48 (2.65 % of base) : 171882.dasm - Microsoft.Cci.PdbWriter:DefineNamespaceScopes(Microsoft.Cci.IMethodBody):this (FullOpts)
          48 (2.65 % of base) : 142075.dasm - Microsoft.Cci.PdbWriter:DefineNamespaceScopes(Microsoft.Cci.IMethodBody):this (FullOpts)
          44 (0.16 % of base) : 140402.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          40 (2.78 % of base) : 69833.dasm - Microsoft.CodeAnalysis.CSharp.Emit.CSharpDefinitionMap:CreateLocalSlotMap(Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.LocalInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol]]):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Emit.EncLocalInfo] (FullOpts)
          40 (5.35 % of base) : 179577.dasm - Microsoft.CodeAnalysis.SarifV2ErrorLogger+DiagnosticDescriptorSet:ToSortedList():System.Collections.Generic.List`1[System.ValueTuple`3[int,Microsoft.CodeAnalysis.DiagnosticDescriptor,Microsoft.CodeAnalysis.DiagnosticDescriptorErrorLoggerInfo]]:this (FullOpts)
          32 (3.45 % of base) : 72785.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:InfiniteFlatteningGraph(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,System.Collections.Generic.Dictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol]):ubyte (FullOpts)
          32 (3.59 % of base) : 114264.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode:DoGetSyntaxErrors(Microsoft.CodeAnalysis.SyntaxTree,Microsoft.CodeAnalysis.SyntaxNodeOrToken):System.Collections.ObjectModel.ReadOnlyCollection`1[Microsoft.CodeAnalysis.Diagnostic] (FullOpts)
          32 (5.10 % of base) : 114266.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode:ProcessTrivia(Microsoft.CodeAnalysis.SyntaxTree,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.Diagnostic],System.Collections.Generic.Stack`1[Microsoft.CodeAnalysis.SyntaxNodeOrToken],Microsoft.CodeAnalysis.SyntaxTriviaList) (FullOpts)
          32 (5.59 % of base) : 162194.dasm - System.Data.ProviderBase.DbReferenceCollection:Notify(int):this (FullOpts)
          32 (5.59 % of base) : 124044.dasm - System.Data.ProviderBase.DbReferenceCollection:Notify(int):this (FullOpts)
          32 (2.11 % of base) : 126501.dasm - System.Security.Cryptography.X509Certificates.CertificatePal:CopyWithPrivateKey(System.Security.Cryptography.RSA):System.Security.Cryptography.X509Certificates.ICertificatePal:this (FullOpts)
          28 (3.87 % of base) : 142435.dasm - Microsoft.Cci.MetadataWriter:SerializeCustomAttributeSignature(Microsoft.Cci.ICustomAttribute,System.Reflection.Metadata.BlobBuilder):this (FullOpts)
          28 (4.96 % of base) : 229630.dasm - Microsoft.Extensions.Logging.LoggerFilterConfigureOptions:LoadRules(Microsoft.Extensions.Logging.LoggerFilterOptions,Microsoft.Extensions.Configuration.IConfigurationSection,System.String) (FullOpts)
          28 (3.74 % of base) : 208610.dasm - System.Linq.Parallel.DecimalAverageAggregationOperator:InternalAggregate(byref):System.Decimal:this (FullOpts)
          28 (3.63 % of base) : 26319.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateFields(System.RuntimeType+RuntimeTypeCache+Filter):System.Reflection.RuntimeFieldInfo[]:this (FullOpts)
          28 (1.03 % of base) : 202422.dasm - System.Xml.Schema.SchemaCollectionPreprocessor:PreprocessSimpleType(System.Xml.Schema.XmlSchemaSimpleType,ubyte):this (FullOpts)

Top method improvements (bytes):
       -1280 (-5.26 % of base) : 173379.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
       -1280 (-5.26 % of base) : 143607.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
        -140 (-4.77 % of base) : 178405.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:GetDelta(Microsoft.CodeAnalysis.Compilation,System.Guid,System.Reflection.Metadata.Ecma335.MetadataSizes):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
        -128 (-11.51 % of base) : 178570.dasm - Microsoft.CodeAnalysis.Emit.SymbolMatcher:MapBaselineToCompilation(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]],System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]]):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
        -124 (-4.59 % of base) : 199111.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
         -92 (-0.93 % of base) : 133189.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (FullOpts)
         -88 (-5.39 % of base) : 178487.dasm - Microsoft.CodeAnalysis.Emit.EmitBaseline:CreateInitialBaseline(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.ModuleMetadata,System.Func`2[System.Reflection.Metadata.MethodDefinitionHandle,Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation],System.Func`2[System.Reflection.Metadata.MethodDefinitionHandle,System.Reflection.Metadata.StandaloneSignatureHandle],ubyte):Microsoft.CodeAnalysis.Emit.EmitBaseline (FullOpts)
         -88 (-7.03 % of base) : 114358.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilationOptions:.ctor(Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilationOptions):this (FullOpts)
         -72 (-14.88 % of base) : 96800.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.QuickAttributeHelpers:GetQuickAttributes(System.String,ubyte):ubyte (FullOpts)
         -72 (-2.96 % of base) : 119163.dasm - Microsoft.CodeAnalysis.VisualBasic.TypeArgumentInference+InferenceGraph:Infer(Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BoundNode,byref,byref,byref,byref,byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.BitVector):ubyte (FullOpts)
         -68 (-3.93 % of base) : 167709.dasm - System.Data.Common.DecimalStorage:Aggregate(int[],int):System.Object:this (FullOpts)
         -64 (-10.13 % of base) : 52216.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (FullOpts)
         -64 (-4.23 % of base) : 180745.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__75:MoveNext():ubyte:this (FullOpts)
         -64 (-5.50 % of base) : 118085.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.PEDeltaAssemblyBuilder+VB$StateMachine_27_GetTopLevelTypeDefinitions:MoveNext():ubyte:this (FullOpts)
         -60 (-0.19 % of base) : 51885.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
         -60 (-1.73 % of base) : 113257.dasm - Microsoft.CodeAnalysis.VisualBasic.LocalRewriter:VisitFieldOrPropertyInitializer(Microsoft.CodeAnalysis.VisualBasic.BoundFieldOrPropertyInitializer,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbol]):Microsoft.CodeAnalysis.VisualBasic.BoundNode:this (FullOpts)
         -56 (-6.01 % of base) : 151103.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__77:MoveNext():ubyte:this (FullOpts)
         -56 (-1.72 % of base) : 110890.dasm - Microsoft.CodeAnalysis.VisualBasic.Syntax.SyntaxNormalizer:RewriteTrivia(Microsoft.CodeAnalysis.SyntaxTriviaList,int,ubyte,ubyte,ubyte,int,int):Microsoft.CodeAnalysis.SyntaxTriviaList:this (FullOpts)
         -56 (-9.33 % of base) : 81621.dasm - System.Text.Json.JsonDocument:Parse(System.Buffers.ReadOnlySequence`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
         -52 (-3.38 % of base) : 97557.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourcePropertySymbol:DecodeWellKnownAttribute(byref):this (FullOpts)

Top method regressions (percentages):
          60 (7.81 % of base) : 77360.dasm - Microsoft.CodeAnalysis.CSharp.ClosureConversion+<>c__DisplayClass35_0:<SynthesizeClosureEnvironments>g__MakeFrame|1(Microsoft.CodeAnalysis.CSharp.ClosureConversion+Analysis+Scope,Microsoft.CodeAnalysis.CSharp.ClosureConversion+Analysis+ClosureEnvironment):Microsoft.CodeAnalysis.CSharp.SynthesizedClosureEnvironment:this (FullOpts)
           4 (7.69 % of base) : 132450.dasm - System.Speech.Internal.SrgsCompiler.Tag:Serialize(System.Speech.Internal.StreamMarshaler):this (FullOpts)
           4 (7.14 % of base) : 100689.dasm - Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable`1[int]):this (FullOpts)
          20 (6.02 % of base) : 76318.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
          24 (5.83 % of base) : 2940.dasm - System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1[System.__Canon]:DecodeFixedArguments(byref,byref,int,System.Reflection.Metadata.BlobReader):System.Collections.Immutable.ImmutableArray`1[System.Reflection.Metadata.CustomAttributeTypedArgument`1[System.__Canon]]:this (FullOpts)
          32 (5.59 % of base) : 162194.dasm - System.Data.ProviderBase.DbReferenceCollection:Notify(int):this (FullOpts)
          32 (5.59 % of base) : 124044.dasm - System.Data.ProviderBase.DbReferenceCollection:Notify(int):this (FullOpts)
           4 (5.56 % of base) : 78634.dasm - Microsoft.CodeAnalysis.CSharp.Emit.CSharpSymbolMatcher+MatchDefsToSource:GetFields(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFieldDefinition]:this (FullOpts)
           4 (5.56 % of base) : 78633.dasm - Microsoft.CodeAnalysis.CSharp.Emit.CSharpSymbolMatcher+MatchDefsToSource:GetNestedTypes(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.INestedTypeDefinition]:this (FullOpts)
           4 (5.56 % of base) : 118104.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.VisualBasicSymbolMatcher+MatchDefsToSource:GetFields(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFieldDefinition]:this (FullOpts)
           4 (5.56 % of base) : 118103.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.VisualBasicSymbolMatcher+MatchDefsToSource:GetNestedTypes(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.INestedTypeDefinition]:this (FullOpts)
          40 (5.35 % of base) : 179577.dasm - Microsoft.CodeAnalysis.SarifV2ErrorLogger+DiagnosticDescriptorSet:ToSortedList():System.Collections.Generic.List`1[System.ValueTuple`3[int,Microsoft.CodeAnalysis.DiagnosticDescriptor,Microsoft.CodeAnalysis.DiagnosticDescriptorErrorLoggerInfo]]:this (FullOpts)
          32 (5.10 % of base) : 114266.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicSyntaxNode:ProcessTrivia(Microsoft.CodeAnalysis.SyntaxTree,System.Collections.Generic.List`1[Microsoft.CodeAnalysis.Diagnostic],System.Collections.Generic.Stack`1[Microsoft.CodeAnalysis.SyntaxNodeOrToken],Microsoft.CodeAnalysis.SyntaxTriviaList) (FullOpts)
           4 (5.00 % of base) : 143856.dasm - Microsoft.CodeAnalysis.SourceLocation:GetLineSpan():Microsoft.CodeAnalysis.FileLinePositionSpan:this (FullOpts)
           4 (5.00 % of base) : 173628.dasm - Microsoft.CodeAnalysis.SourceLocation:GetLineSpan():Microsoft.CodeAnalysis.FileLinePositionSpan:this (FullOpts)
           4 (5.00 % of base) : 143857.dasm - Microsoft.CodeAnalysis.SourceLocation:GetMappedLineSpan():Microsoft.CodeAnalysis.FileLinePositionSpan:this (FullOpts)
           4 (5.00 % of base) : 173629.dasm - Microsoft.CodeAnalysis.SourceLocation:GetMappedLineSpan():Microsoft.CodeAnalysis.FileLinePositionSpan:this (FullOpts)
          28 (4.96 % of base) : 229630.dasm - Microsoft.Extensions.Logging.LoggerFilterConfigureOptions:LoadRules(Microsoft.Extensions.Logging.LoggerFilterOptions,Microsoft.Extensions.Configuration.IConfigurationSection,System.String) (FullOpts)
          20 (4.95 % of base) : 76323.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          24 (4.80 % of base) : 231747.dasm - System.Collections.Immutable.ImmutableArray`1+Builder[System.__Canon]:IndexOf(System.__Canon,int,int,System.Collections.Generic.IEqualityComparer`1[System.__Canon]):int:this (FullOpts)

Top method improvements (percentages):
         -12 (-21.43 % of base) : 82108.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[long]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -12 (-21.43 % of base) : 82094.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -12 (-21.43 % of base) : 82119.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -32 (-16.67 % of base) : 83605.dasm - System.Text.Json.JsonDocument:ParseRented(System.Text.Json.PooledByteBufferWriter,System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
         -72 (-14.88 % of base) : 96800.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.QuickAttributeHelpers:GetQuickAttributes(System.String,ubyte):ubyte (FullOpts)
         -28 (-14.29 % of base) : 127664.dasm - System.Formats.Asn1.AsnValueReader:ThrowIfNotEmpty():this (FullOpts)
         -28 (-14.29 % of base) : 191810.dasm - System.Formats.Asn1.AsnValueReader:ThrowIfNotEmpty():this (FullOpts)
         -24 (-13.64 % of base) : 82195.dasm - System.Text.Json.Nodes.JsonValue:Create(System.Nullable`1[System.Decimal],System.Nullable`1[System.Text.Json.Nodes.JsonNodeOptions]):System.Text.Json.Nodes.JsonValue (FullOpts)
          -8 (-13.33 % of base) : 82095.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.DateTimeOffset):System.Text.Json.Nodes.JsonNode (FullOpts)
          -8 (-13.33 % of base) : 82097.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Decimal):System.Text.Json.Nodes.JsonNode (FullOpts)
          -8 (-13.33 % of base) : 82101.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Guid):System.Text.Json.Nodes.JsonNode (FullOpts)
          -8 (-13.33 % of base) : 82100.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[double]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -32 (-12.90 % of base) : 83104.dasm - System.Text.Json.JsonDocument:ParseValue(System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
         -12 (-12.00 % of base) : 81620.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlyMemory`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
         -24 (-11.76 % of base) : 25542.dasm - System.Reflection.Emit.RuntimeModuleBuilder:SetFieldRVAContent(System.Runtime.CompilerServices.QCallModule,int,ubyte[],int) (FullOpts)
        -128 (-11.51 % of base) : 178570.dasm - Microsoft.CodeAnalysis.Emit.SymbolMatcher:MapBaselineToCompilation(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]],System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]]):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
         -28 (-11.48 % of base) : 144581.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ReplaceAdditionalTexts(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
         -28 (-11.48 % of base) : 174332.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ReplaceAdditionalTexts(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
         -24 (-11.32 % of base) : 25547.dasm - System.Reflection.Emit.RuntimeTypeBuilder:DefineMethodSpec(System.Runtime.CompilerServices.QCallModule,int,ubyte[],int):int (FullOpts)
         -32 (-10.67 % of base) : 50384.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)


libraries.pmi.windows.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 79594724 (overridden on cmd)
Total bytes of diff: 79583436 (overridden on cmd)
Total bytes of delta: -11288 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         124 : 95680.dasm (1.10 % of base)
         112 : 82029.dasm (0.93 % of base)
         104 : 96544.dasm (4.48 % of base)
          96 : 55545.dasm (2.38 % of base)
          84 : 118273.dasm (1.72 % of base)
          80 : 95707.dasm (0.80 % of base)
          76 : 138086.dasm (1.99 % of base)
          76 : 95446.dasm (1.38 % of base)
          64 : 173425.dasm (1.70 % of base)
          64 : 95452.dasm (2.12 % of base)
          56 : 199026.dasm (0.45 % of base)
          48 : 59760.dasm (0.44 % of base)
          48 : 95203.dasm (0.49 % of base)
          48 : 195131.dasm (5.00 % of base)
          44 : 121381.dasm (1.04 % of base)
          40 : 100006.dasm (2.24 % of base)
          40 : 53804.dasm (0.65 % of base)
          40 : 228721.dasm (1.42 % of base)
          40 : 95591.dasm (0.68 % of base)
          40 : 95602.dasm (0.99 % of base)

Top file improvements (bytes):
        -440 : 147662.dasm (-8.97 % of base)
        -440 : 147758.dasm (-9.30 % of base)
        -160 : 247682.dasm (-3.06 % of base)
        -140 : 210865.dasm (-6.01 % of base)
        -128 : 173537.dasm (-11.51 % of base)
        -124 : 173365.dasm (-4.32 % of base)
        -112 : 225149.dasm (-6.68 % of base)
        -112 : 173454.dasm (-5.26 % of base)
         -96 : 124014.dasm (-4.69 % of base)
         -88 : 154072.dasm (-6.49 % of base)
         -64 : 143055.dasm (-7.41 % of base)
         -64 : 57782.dasm (-9.70 % of base)
         -60 : 148576.dasm (-4.16 % of base)
         -56 : 59654.dasm (-0.51 % of base)
         -48 : 178386.dasm (-3.58 % of base)
         -48 : 214935.dasm (-0.75 % of base)
         -48 : 222452.dasm (-6.09 % of base)
         -48 : 85755.dasm (-1.77 % of base)
         -48 : 213806.dasm (-1.68 % of base)
         -44 : 97297.dasm (-0.51 % of base)

80 total files with Code Size differences (42 improved, 38 regressed), 20 unchanged.

Top method regressions (bytes):
         124 (1.10 % of base) : 95680.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:DecodeModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,int,int,int,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.MemberModifiers:this (FullOpts)
         112 (0.93 % of base) : 82029.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
         104 (4.48 % of base) : 96544.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.VisualBasicAttributeData:ShouldEmitAttribute(Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,ubyte):ubyte:this (FullOpts)
          96 (2.38 % of base) : 55545.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:<LoadAndValidateAttributes>g__removeObsoleteDiagnosticsForForwardedTypes|197_0(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],byref):this (FullOpts)
          84 (1.72 % of base) : 118273.dasm - Microsoft.CodeAnalysis.VisualBasic.AccessCheck:VerifyAccessExposureForMemberType(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.SyntaxNodeOrToken,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,ubyte) (FullOpts)
          80 (0.80 % of base) : 95707.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:DecodeParameterList(Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,int,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[Microsoft.CodeAnalysis.VisualBasic.Syntax.ParameterSyntax],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.VisualBasic.Binder+CheckParameterModifierDelegate,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
          76 (1.99 % of base) : 138086.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:PopulateEncLogTableRows(System.Collections.Immutable.ImmutableArray`1[int],byref,byref):this (FullOpts)
          76 (1.38 % of base) : 95446.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BuildBoundLambdaParameters(Microsoft.CodeAnalysis.VisualBasic.UnboundLambda,Microsoft.CodeAnalysis.VisualBasic.UnboundLambda+TargetSignature,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.BoundLambdaParameterSymbol]:this (FullOpts)
          64 (1.70 % of base) : 173425.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:PopulateEncLogTableRows(System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int]):this (FullOpts)
          64 (2.12 % of base) : 95452.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ConstructAnonymousDelegateSymbol(Microsoft.CodeAnalysis.VisualBasic.UnboundLambda,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.BoundLambdaParameterSymbol],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol:this (FullOpts)
          56 (0.45 % of base) : 199026.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
          48 (0.44 % of base) : 59760.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:LearnFromDecisionDag(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDag,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+PossiblyConditionalState]):Microsoft.CodeAnalysis.PooledObjects.PooledDictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte]]:this (FullOpts)
          48 (0.49 % of base) : 95203.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:BindAttributeNamedArgument(Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Syntax.SimpleArgumentSyntax,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundExpression:this (FullOpts)
          48 (5.00 % of base) : 195131.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitConvertArithmeticResult(int,System.Type):this (FullOpts)
          44 (1.04 % of base) : 121381.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder+TypeBinder:LookupDottedName(Microsoft.CodeAnalysis.VisualBasic.LookupResult,Microsoft.CodeAnalysis.VisualBasic.Syntax.QualifiedNameSyntax,Microsoft.CodeAnalysis.VisualBasic.Binder,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,byref,ubyte,ubyte) (FullOpts)
          40 (0.65 % of base) : 53804.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (FullOpts)
          40 (0.68 % of base) : 95591.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:DecodeLocalModifiersAndReportErrors(Microsoft.CodeAnalysis.SyntaxTokenList,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
          40 (0.99 % of base) : 95602.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:VerifyNameShadowingInMethodBody(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.SyntaxNodeOrToken,Microsoft.CodeAnalysis.SyntaxNodeOrToken,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
          40 (2.24 % of base) : 100006.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourcePropertySymbol:CreateWithEvents(Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceMemberContainerTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Binder,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxReference,Microsoft.CodeAnalysis.VisualBasic.MemberModifiers,ubyte,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.Symbols.SourcePropertySymbol (FullOpts)
          40 (1.42 % of base) : 228721.dasm - System.Speech.Internal.Synthesis.SsmlParser:ProcessSpeakElement(System.Xml.XmlReader,System.Speech.Internal.Synthesis.ISsmlParser,System.Object) (FullOpts)

Top method improvements (bytes):
        -440 (-9.30 % of base) : 147758.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -440 (-8.97 % of base) : 147662.dasm - Newtonsoft.Json.JsonWriter:WriteValueAsync(Newtonsoft.Json.JsonWriter,int,System.Object,System.Threading.CancellationToken):System.Threading.Tasks.Task (FullOpts)
        -160 (-3.06 % of base) : 247682.dasm - R2RTest.BuildFolderSet:WriteCombinedLog(System.String):this (FullOpts)
        -140 (-6.01 % of base) : 210865.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -128 (-11.51 % of base) : 173537.dasm - Microsoft.CodeAnalysis.Emit.SymbolMatcher:MapBaselineToCompilation(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]],System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]]):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
        -124 (-4.32 % of base) : 173365.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:GetDelta(Microsoft.CodeAnalysis.Compilation,System.Guid,System.Reflection.Metadata.Ecma335.MetadataSizes):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
        -112 (-5.26 % of base) : 173454.dasm - Microsoft.CodeAnalysis.Emit.EmitBaseline:CreateInitialBaseline(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.ModuleMetadata,System.Func`2[System.Reflection.Metadata.MethodDefinitionHandle,Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation],System.Func`2[System.Reflection.Metadata.MethodDefinitionHandle,System.Reflection.Metadata.StandaloneSignatureHandle],ubyte):Microsoft.CodeAnalysis.Emit.EmitBaseline (FullOpts)
        -112 (-6.68 % of base) : 225149.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
         -96 (-4.69 % of base) : 124014.dasm - Microsoft.CodeAnalysis.VisualBasic.TypeArgumentInference+InferenceGraph:Infer(Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BoundNode,byref,byref,byref,byref,byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.BitVector):ubyte (FullOpts)
         -88 (-6.49 % of base) : 154072.dasm - Microsoft.Build.Graph.GraphBuilder:AddEdgesFromProjectReferenceItems(System.Collections.Generic.Dictionary`2[Microsoft.Build.BackEnd.ConfigurationMetadata,Microsoft.Build.Graph.ParsedProject],Microsoft.Build.Graph.GraphBuilder+GraphEdges):this (FullOpts)
         -64 (-9.70 % of base) : 57782.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (FullOpts)
         -64 (-7.41 % of base) : 143055.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__77:MoveNext():ubyte:this (FullOpts)
         -60 (-4.16 % of base) : 148576.dasm - Newtonsoft.Json.Serialization.DefaultSerializationBinder:GetGenericTypeFromTypeName(System.String,System.Reflection.Assembly):System.Type:this (FullOpts)
         -56 (-0.51 % of base) : 59654.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitTupleDeconstructionArguments(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+DeconstructionVariable],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression]],Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState]):this (FullOpts)
         -48 (-1.77 % of base) : 85755.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol:GetCustomAttributesForToken(System.Reflection.Metadata.EntityHandle,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData]:this (FullOpts)
         -48 (-3.58 % of base) : 178386.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__75:MoveNext():ubyte:this (FullOpts)
         -48 (-6.09 % of base) : 222452.dasm - System.Security.Cryptography.Pkcs.SignerInfo:VerifySignature(System.Security.Cryptography.Pkcs.CmsSignature,System.Security.Cryptography.X509Certificates.X509Certificate2,ubyte):ubyte:this (FullOpts)
         -48 (-1.68 % of base) : 213806.dasm - System.Xml.Schema.XsdDateTime+Parser:Parse(System.String,int):ubyte:this (FullOpts)
         -48 (-0.75 % of base) : 214935.dasm - System.Xml.Xsl.Xslt.XsltLoader:LoadOutput():this (FullOpts)
         -44 (-0.51 % of base) : 97297.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.SourceAssemblySymbol:DecodeWellKnownAttribute(byref):this (FullOpts)

Top method regressions (percentages):
          16 (6.90 % of base) : 86441.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
           4 (6.67 % of base) : 128912.dasm - Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (FullOpts)
           4 (6.67 % of base) : 164405.dasm - Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (FullOpts)
           4 (6.67 % of base) : 103245.dasm - Microsoft.CodeAnalysis.VisualBasic.VBSemanticModel:ComputeDeclarationsInNode(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.ISymbol,ubyte,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.DeclarationInfo],System.Threading.CancellationToken,System.Nullable`1[int]):this (FullOpts)
           4 (6.25 % of base) : 88915.dasm - Microsoft.CodeAnalysis.CSharp.Emit.CSharpSymbolMatcher+MatchDefsToSource:GetFields(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFieldDefinition]:this (FullOpts)
           4 (6.25 % of base) : 88914.dasm - Microsoft.CodeAnalysis.CSharp.Emit.CSharpSymbolMatcher+MatchDefsToSource:GetNestedTypes(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.INestedTypeDefinition]:this (FullOpts)
           4 (6.25 % of base) : 142191.dasm - Microsoft.CodeAnalysis.DesktopStrongNameProvider+<>c__DisplayClass12_0:<SignBuilder>b__0(System.Collections.Generic.IEnumerable`1[System.Reflection.Metadata.Blob]):ubyte[]:this (FullOpts)
           4 (6.25 % of base) : 177532.dasm - Microsoft.CodeAnalysis.DesktopStrongNameProvider+<>c__DisplayClass12_0:<SignBuilder>b__0(System.Collections.Generic.IEnumerable`1[System.Reflection.Metadata.Blob]):ubyte[]:this (FullOpts)
           4 (6.25 % of base) : 122752.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.VisualBasicSymbolMatcher+MatchDefsToSource:GetFields(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.IFieldDefinition]:this (FullOpts)
           4 (6.25 % of base) : 122751.dasm - Microsoft.CodeAnalysis.VisualBasic.Emit.VisualBasicSymbolMatcher+MatchDefsToSource:GetNestedTypes(Microsoft.Cci.ITypeDefinition):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.INestedTypeDefinition]:this (FullOpts)
           4 (5.88 % of base) : 141100.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (FullOpts)
           4 (5.88 % of base) : 176482.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (FullOpts)
           4 (5.88 % of base) : 141103.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+UpgradeableReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (FullOpts)
           4 (5.88 % of base) : 176485.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+UpgradeableReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (FullOpts)
           4 (5.88 % of base) : 141105.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+WriteLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (FullOpts)
           4 (5.88 % of base) : 176487.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+WriteLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (FullOpts)
          48 (5.00 % of base) : 195131.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitConvertArithmeticResult(int,System.Type):this (FullOpts)
          24 (4.69 % of base) : 55530.dasm - Microsoft.CodeAnalysis.CSharp.Symbol:DecodeWellKnownAttribute(byref):this (FullOpts)
         104 (4.48 % of base) : 96544.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.VisualBasicAttributeData:ShouldEmitAttribute(Microsoft.CodeAnalysis.VisualBasic.Symbol,ubyte,ubyte):ubyte:this (FullOpts)
          28 (4.24 % of base) : 88171.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Blender+Reader:TryTakeOldNodeOrToken(ubyte,byref):ubyte:this (FullOpts)

Top method improvements (percentages):
         -32 (-20.00 % of base) : 55905.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
         -12 (-20.00 % of base) : 92647.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.DateTimeOffset):System.Text.Json.Nodes.JsonNode (FullOpts)
         -12 (-20.00 % of base) : 92660.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[long]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -12 (-20.00 % of base) : 92646.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[System.DateTime]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -12 (-20.00 % of base) : 92671.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[ulong]):System.Text.Json.Nodes.JsonNode (FullOpts)
         -24 (-16.67 % of base) : 101785.dasm - Microsoft.CodeAnalysis.VisualBasic.BoundPropertyAccess:MakeRValue():Microsoft.CodeAnalysis.VisualBasic.BoundPropertyAccess:this (FullOpts)
         -20 (-14.29 % of base) : 55906.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
         -20 (-14.29 % of base) : 101462.dasm - Microsoft.CodeAnalysis.VisualBasic.BoundCall:MakeRValue():Microsoft.CodeAnalysis.VisualBasic.BoundCall:this (FullOpts)
         -12 (-12.50 % of base) : 156013.dasm - Microsoft.Build.Execution.TaskRegistry:get_TaskRegistrations():System.Collections.Generic.IDictionary`2[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskIdentity,System.Collections.Generic.List`1[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord]]:this (FullOpts)
          -8 (-12.50 % of base) : 92649.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Decimal):System.Text.Json.Nodes.JsonNode (FullOpts)
          -8 (-12.50 % of base) : 92653.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Guid):System.Text.Json.Nodes.JsonNode (FullOpts)
          -8 (-12.50 % of base) : 92652.dasm - System.Text.Json.Nodes.JsonNode:op_Implicit(System.Nullable`1[double]):System.Text.Json.Nodes.JsonNode (FullOpts)
        -128 (-11.51 % of base) : 173537.dasm - Microsoft.CodeAnalysis.Emit.SymbolMatcher:MapBaselineToCompilation(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]],System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]]):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
          -8 (-11.11 % of base) : 547.dasm - System.String:GetBytesFromEncoding(ulong,int,System.Text.Encoding):int:this (FullOpts)
         -12 (-11.11 % of base) : 91035.dasm - System.Text.Json.JsonDocument:Parse(System.ReadOnlyMemory`1[ubyte],System.Text.Json.JsonDocumentOptions):System.Text.Json.JsonDocument (FullOpts)
         -16 (-10.81 % of base) : 187062.dasm - System.Data.ProviderBase.SchemaMapping:MappedIndex():this (FullOpts)
          -8 (-10.53 % of base) : 251593.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[int,System.Nullable`1[int]]:TryUpdate(int,System.Nullable`1[int],System.Nullable`1[int]):ubyte:this (FullOpts)
          -8 (-10.53 % of base) : 251695.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[long,System.Nullable`1[int]]:TryUpdate(long,System.Nullable`1[int],System.Nullable`1[int]):ubyte:this (FullOpts)
         -24 (-10.34 % of base) : 131802.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ReplaceAdditionalTexts(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)
         -24 (-10.34 % of base) : 167198.dasm - Microsoft.CodeAnalysis.GeneratorDriver:ReplaceAdditionalTexts(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AdditionalText]):Microsoft.CodeAnalysis.GeneratorDriver:this (FullOpts)


libraries_tests.run.windows.arm64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 310503812 (overridden on cmd)
Total bytes of diff: 310074068 (overridden on cmd)
Total bytes of delta: -429744 (-0.14 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         632 : 154867.dasm (4.70 % of base)
         276 : 599425.dasm (3.44 % of base)
          88 : 266537.dasm (0.68 % of base)
          88 : 214523.dasm (0.64 % of base)
          88 : 62281.dasm (1.20 % of base)
          88 : 624654.dasm (0.67 % of base)
          84 : 119675.dasm (0.62 % of base)
          84 : 170131.dasm (0.63 % of base)
          84 : 340727.dasm (0.63 % of base)
          84 : 608752.dasm (0.63 % of base)
          80 : 504859.dasm (0.61 % of base)
          80 : 628133.dasm (0.60 % of base)
          80 : 55660.dasm (0.98 % of base)
          80 : 469813.dasm (0.56 % of base)
          80 : 614170.dasm (0.60 % of base)
          76 : 164025.dasm (0.60 % of base)
          76 : 176845.dasm (0.56 % of base)
          76 : 348111.dasm (0.56 % of base)
          76 : 625766.dasm (0.58 % of base)
          72 : 327376.dasm (0.55 % of base)

Top file improvements (bytes):
       -1572 : 4497.dasm (-7.02 % of base)
       -1096 : 380950.dasm (-5.39 % of base)
       -1048 : 244455.dasm (-0.79 % of base)
       -1048 : 245893.dasm (-0.81 % of base)
        -936 : 387162.dasm (-8.25 % of base)
        -892 : 4737.dasm (-6.65 % of base)
        -684 : 27478.dasm (-3.68 % of base)
        -684 : 4768.dasm (-3.85 % of base)
        -636 : 69037.dasm (-3.20 % of base)
        -496 : 104252.dasm (-4.16 % of base)
        -456 : 437148.dasm (-8.96 % of base)
        -456 : 437184.dasm (-9.11 % of base)
        -456 : 435684.dasm (-9.11 % of base)
        -456 : 435711.dasm (-8.96 % of base)
        -408 : 379984.dasm (-4.89 % of base)
        -392 : 417224.dasm (-2.95 % of base)
        -348 : 24002.dasm (-3.65 % of base)
        -348 : 31322.dasm (-1.96 % of base)
        -348 : 47315.dasm (-3.65 % of base)
        -336 : 154065.dasm (-2.69 % of base)

94 total files with Code Size differences (56 improved, 38 regressed), 20 unchanged.

Top method regressions (bytes):
         632 (4.70 % of base) : 154867.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
         276 (3.44 % of base) : 599425.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindForOrUsingOrFixedDeclarations(Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclarationSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (Tier1)
          88 (1.20 % of base) : 62281.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindIdentifier(Microsoft.CodeAnalysis.CSharp.Syntax.SimpleNameSyntax,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
          88 (0.68 % of base) : 266537.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
          88 (0.64 % of base) : 214523.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
          88 (0.67 % of base) : 624654.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
          84 (0.62 % of base) : 119675.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
          84 (0.63 % of base) : 170131.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
          84 (0.63 % of base) : 340727.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
          84 (0.63 % of base) : 608752.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
          80 (0.98 % of base) : 55660.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:IsConstructorApplicableInNormalForm(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):Microsoft.CodeAnalysis.CSharp.MemberAnalysisResult:this (Tier1)
          80 (0.61 % of base) : 504859.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
          80 (0.60 % of base) : 628133.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
          80 (0.56 % of base) : 469813.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
          80 (0.60 % of base) : 614170.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
          76 (0.60 % of base) : 164025.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
          76 (0.56 % of base) : 176845.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
          76 (0.56 % of base) : 348111.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
          76 (0.58 % of base) : 625766.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
          72 (0.55 % of base) : 327376.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)

Top method improvements (bytes):
       -1572 (-7.02 % of base) : 4497.dasm - ComInterfaceGenerator.Unit.Tests.ByValueContentsMarshalling+<ByValueMarshalAttributeOnPinnedMarshalledTypes>d__2:MoveNext():ubyte:this (Tier0)
       -1096 (-5.39 % of base) : 380950.dasm - System.Xml.Schema.SchemaNames:.ctor(System.Xml.XmlNameTable):this (Instrumented Tier0)
       -1048 (-0.81 % of base) : 245893.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach001.freach001.Test:MainMethod():int (Instrumented Tier0)
       -1048 (-0.79 % of base) : 244455.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach007.freach007.Test:MainMethod():int (Instrumented Tier0)
        -936 (-8.25 % of base) : 387162.dasm - System.Xml.Xsl.Xslt.KeywordsTable:.ctor(System.Xml.XmlNameTable):this (Instrumented Tier0)
        -892 (-6.65 % of base) : 4737.dasm - ComInterfaceGenerator.Unit.Tests.ByValueContentsMarshalling+<ByValueMarshalAttributeOnValueTypes>d__1:MoveNext():ubyte:this (Tier0)
        -684 (-3.68 % of base) : 27478.dasm - ComInterfaceGenerator.Unit.Tests.ByValueContentsMarshalling+<ByValueMarshalAttributeOnCustomCollections>d__3:MoveNext():ubyte:this (Instrumented Tier0)
        -684 (-3.85 % of base) : 4768.dasm - ComInterfaceGenerator.Unit.Tests.ByValueContentsMarshalling+<ByValueMarshalAttributeOnCustomCollections>d__3:MoveNext():ubyte:this (Tier0)
        -636 (-3.20 % of base) : 69037.dasm - System.Globalization.Tests.InvariantModeTests:TestCultureData(System.String):this (Instrumented Tier0)
        -496 (-4.16 % of base) : 104252.dasm - Microsoft.CodeAnalysis.CSharp.ForEachLoopBinder:BindForEachPartsWorker(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.Binder):Microsoft.CodeAnalysis.CSharp.BoundForEachStatement:this (Instrumented Tier0)
        -456 (-9.11 % of base) : 437184.dasm - System.Numerics.Tests.ToStringTest:RunCustomFormatToStringTests(System.Random,System.String,System.String,int,System.Numerics.Tests.ToStringTest+StringFormatter) (Instrumented Tier0)
        -456 (-9.11 % of base) : 435684.dasm - System.Numerics.Tests.ToStringTest:RunCustomFormatToStringTests(System.Random,System.String,System.String,int,System.Numerics.Tests.ToStringTest+StringFormatter) (Instrumented Tier0)
        -456 (-8.96 % of base) : 437148.dasm - System.Numerics.Tests.ToStringTest:RunStandardFormatToStringTests_Helper(System.Random,System.String,System.String,int,System.Numerics.Tests.ToStringTest+StringFormatter,ubyte) (Instrumented Tier0)
        -456 (-8.96 % of base) : 435711.dasm - System.Numerics.Tests.ToStringTest:RunStandardFormatToStringTests_Helper(System.Random,System.String,System.String,int,System.Numerics.Tests.ToStringTest+StringFormatter,ubyte) (Instrumented Tier0)
        -408 (-4.89 % of base) : 379984.dasm - System.Xml.Serialization.XmlSerializationReader:InitPrimitiveIDs():this (Instrumented Tier0)
        -392 (-2.95 % of base) : 417224.dasm - System.Reflection.Tests.PropertyTests:TestProperties_GetterSetter() (Instrumented Tier0)
        -348 (-1.96 % of base) : 31322.dasm - ComInterfaceGenerator.Unit.Tests.CompileFails+<CountParameterIsOutSnippets>d__19:MoveNext():ubyte:this (Tier0)
        -348 (-3.65 % of base) : 24002.dasm - Microsoft.CodeAnalysis.CSharp.SymbolDisplayVisitor:VisitMethod(Microsoft.CodeAnalysis.IMethodSymbol):this (Instrumented Tier0)
        -348 (-3.65 % of base) : 47315.dasm - Microsoft.CodeAnalysis.CSharp.SymbolDisplayVisitor:VisitMethod(Microsoft.CodeAnalysis.IMethodSymbol):this (Instrumented Tier0)
        -336 (-2.69 % of base) : 154065.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:LearnFromDecisionDag(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundDecisionDag,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+PossiblyConditionalState]):Microsoft.CodeAnalysis.PooledObjects.PooledDictionary`2[Microsoft.CodeAnalysis.CSharp.Symbols.LabelSymbol,System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,ubyte]]:this (Instrumented Tier0)

Top method regressions (percentages):
           4 (6.67 % of base) : 591416.dasm - Microsoft.Cci.MetadataWriter:GetTypeAttributes(Microsoft.Cci.ITypeDefinition):int:this (Tier1)
          16 (6.67 % of base) : 598642.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
           4 (5.88 % of base) : 90562.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+ReadLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
           4 (5.88 % of base) : 90391.dasm - Roslyn.Utilities.ReaderWriterLockSlimExtensions+WriteLockExiter:.ctor(System.Threading.ReaderWriterLockSlim):this (Tier1)
          16 (5.63 % of base) : 88400.dasm - Microsoft.CodeAnalysis.PEModule:HasRefSafetyRulesAttribute(System.Reflection.Metadata.EntityHandle,byref,byref):ubyte:this (Tier1)
          16 (5.63 % of base) : 61083.dasm - Microsoft.CodeAnalysis.PEModule:HasRefSafetyRulesAttribute(System.Reflection.Metadata.EntityHandle,byref,byref):ubyte:this (Tier1)
           4 (5.26 % of base) : 63789.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ImportInfo,System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:TryUpdate(Microsoft.CodeAnalysis.CSharp.CSharpCompilation+ImportInfo,System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1[System.__Canon]):ubyte:this (Tier1)
         632 (4.70 % of base) : 154867.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
           8 (3.92 % of base) : 601814.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
           8 (3.92 % of base) : 55621.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:WithTypeAndModifiers(Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CustomModifier]):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (Tier1)
          20 (3.60 % of base) : 598847.dasm - Microsoft.CodeAnalysis.CSharp.ControlFlowPass:VisitLabeledStatement(Microsoft.CodeAnalysis.CSharp.BoundLabeledStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
           8 (3.51 % of base) : 486694.dasm - System.Security.Cryptography.Algorithms.Tests.DsaFamilySignatureFormatTests+<>c__DisplayClass36_1:<UnknownHashAlgorithm>b__0():System.Object:this (Tier1)
         276 (3.44 % of base) : 599425.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindForOrUsingOrFixedDeclarations(Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclarationSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (Tier1)
          20 (2.98 % of base) : 421242.dasm - System.Runtime.Serialization.SerializationEventsCache:GetSerializationEventsForType(System.Type):System.Runtime.Serialization.SerializationEvents (Tier1)
           8 (2.86 % of base) : 486695.dasm - System.Security.Cryptography.Algorithms.Tests.DsaFamilySignatureFormatTests+<>c__DisplayClass36_1:<UnknownHashAlgorithm>b__1():System.Object:this (Tier1)
          12 (2.83 % of base) : 91148.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerExecutor:ExecuteAndCatchIfThrows_NoLock[System.ValueTuple`2[System.__Canon,Microsoft.CodeAnalysis.Diagnostics.OperationAnalysisContext]](Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer,System.Action`1[System.ValueTuple`2[System.__Canon,Microsoft.CodeAnalysis.Diagnostics.OperationAnalysisContext]],System.ValueTuple`2[System.__Canon,Microsoft.CodeAnalysis.Diagnostics.OperationAnalysisContext],System.Nullable`1[Microsoft.CodeAnalysis.Diagnostics.AnalysisContextInfo],System.Threading.CancellationToken):this (Tier1)
           8 (2.82 % of base) : 486679.dasm - System.Security.Cryptography.Algorithms.Tests.DsaFamilySignatureFormatTests+<>c__DisplayClass37_1:<NullInputs>b__3():System.Object:this (Tier1)
          12 (2.80 % of base) : 90274.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerExecutor:ExecuteAndCatchIfThrows_NoLock[System.__Canon](Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer,System.Action`1[System.__Canon],System.__Canon,System.Nullable`1[Microsoft.CodeAnalysis.Diagnostics.AnalysisContextInfo],System.Threading.CancellationToken):this (Tier1)
          12 (2.80 % of base) : 66018.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerExecutor:ExecuteAndCatchIfThrows_NoLock[System.__Canon](Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer,System.Action`1[System.__Canon],System.__Canon,System.Nullable`1[Microsoft.CodeAnalysis.Diagnostics.AnalysisContextInfo],System.Threading.CancellationToken):this (Tier1)
           8 (2.60 % of base) : 486676.dasm - System.Security.Cryptography.Algorithms.Tests.DsaFamilySignatureFormatTests+<>c__DisplayClass37_1:<NullInputs>b__0():System.Object:this (Tier1)

Top method improvements (percentages):
        -108 (-30.68 % of base) : 39295.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Instrumented Tier0)
        -108 (-30.68 % of base) : 18809.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -88 (-29.73 % of base) : 48403.dasm - Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Instrumented Tier0)
         -88 (-29.73 % of base) : 26069.dasm - Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -96 (-29.27 % of base) : 135408.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -96 (-29.27 % of base) : 146090.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -96 (-27.91 % of base) : 157561.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Instrumented Tier0)
         -96 (-27.91 % of base) : 150059.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -48 (-27.91 % of base) : 76703.dasm - NuGet.Packaging.Signing.SignatureVerificationSummary:.ctor(int,int,int,NuGet.Packaging.Signing.Timestamp,System.Collections.Generic.IEnumerable`1[NuGet.Packaging.Signing.SignatureLog]):this (Tier0)
         -80 (-27.40 % of base) : 48408.dasm - Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess:this (Instrumented Tier0)
         -80 (-27.40 % of base) : 26082.dasm - Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess:this (Tier0)
         -88 (-27.16 % of base) : 146174.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -88 (-27.16 % of base) : 135557.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -40 (-27.03 % of base) : 99659.dasm - Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Instrumented Tier0)
         -40 (-27.03 % of base) : 1586.dasm - Xunit.Sdk.TestCollection:.ctor(Xunit.Abstractions.ITestAssembly,Xunit.Abstractions.ITypeInfo,System.String):this (Tier0)
         -44 (-26.83 % of base) : 39090.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Instrumented Tier0)
         -44 (-26.83 % of base) : 18972.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
         -92 (-25.00 % of base) : 159463.dasm - Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression:Update(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.BoundObjectInitializerExpressionBase,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression:this (Instrumented Tier0)
         -32 (-25.00 % of base) : 37891.dasm - Microsoft.CodeAnalysis.SmallDictionary`2+AvlNode[System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:.ctor(int,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations):this (Instrumented Tier0)
         -32 (-25.00 % of base) : 143627.dasm - Microsoft.CodeAnalysis.SmallDictionary`2+AvlNode[System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations]:.ctor(int,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations):this (Tier0)


librariestestsnotieredcompilation.run.windows.arm64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 169134348 (overridden on cmd)
Total bytes of diff: 169102792 (overridden on cmd)
Total bytes of delta: -31556 (-0.02 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         236 : 51112.dasm (1.89 % of base)
         236 : 45377.dasm (1.89 % of base)
         104 : 9548.dasm (0.89 % of base)
          68 : 177105.dasm (1.56 % of base)
          56 : 151018.dasm (0.45 % of base)
          56 : 185124.dasm (3.27 % of base)
          48 : 10477.dasm (0.80 % of base)
          40 : 127701.dasm (1.78 % of base)
          40 : 239730.dasm (1.43 % of base)
          40 : 131241.dasm (3.00 % of base)
          40 : 307812.dasm (1.33 % of base)
          40 : 50768.dasm (0.69 % of base)
          36 : 241836.dasm (4.19 % of base)
          36 : 108377.dasm (0.63 % of base)
          36 : 45365.dasm (0.89 % of base)
          36 : 59825.dasm (0.12 % of base)
          36 : 127291.dasm (1.46 % of base)
          36 : 51110.dasm (0.89 % of base)
          36 : 54602.dasm (0.64 % of base)
          32 : 129432.dasm (2.82 % of base)

Top file improvements (bytes):
        -392 : 42042.dasm (-9.65 % of base)
        -228 : 13380.dasm (-2.33 % of base)
        -208 : 272155.dasm (-3.34 % of base)
        -180 : 4591.dasm (-0.54 % of base)
        -164 : 55715.dasm (-8.22 % of base)
        -140 : 33456.dasm (-6.01 % of base)
        -128 : 13385.dasm (-3.74 % of base)
        -112 : 13384.dasm (-2.16 % of base)
        -112 : 223930.dasm (-6.41 % of base)
        -104 : 1327.dasm (-2.95 % of base)
        -104 : 16711.dasm (-2.91 % of base)
        -104 : 18574.dasm (-2.96 % of base)
        -104 : 1252.dasm (-2.96 % of base)
        -104 : 1382.dasm (-2.95 % of base)
        -104 : 16974.dasm (-2.91 % of base)
        -104 : 16976.dasm (-2.91 % of base)
        -100 : 16633.dasm (-2.79 % of base)
        -100 : 26581.dasm (-2.84 % of base)
        -100 : 15485.dasm (-2.84 % of base)
        -100 : 16887.dasm (-2.79 % of base)

82 total files with Code Size differences (44 improved, 38 regressed), 20 unchanged.

Top method regressions (bytes):
         236 (1.89 % of base) : 51112.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte) (FullOpts)
         236 (1.89 % of base) : 45377.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte) (FullOpts)
         104 (0.89 % of base) : 9548.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
          68 (1.56 % of base) : 177105.dasm - (dynamicClass):<xsl:apply-templates>(System.Xml.Xsl.Runtime.XmlQueryRuntime,System.Xml.XPath.XPathNavigator) (FullOpts)
          56 (0.45 % of base) : 151018.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
          56 (3.27 % of base) : 185124.dasm - System.Reflection.Emit.ILGeneratorImpl:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
          48 (0.80 % of base) : 10477.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (FullOpts)
          40 (0.69 % of base) : 50768.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArguments(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte]:this (FullOpts)
          40 (3.00 % of base) : 131241.dasm - System.IO.Packaging.Tests.Tests:OpenPropertyStream():this (FullOpts)
          40 (1.78 % of base) : 127701.dasm - System.IO.Tests.FileStream_ctor_str_fm:FileModeAppendExisting(System.String):this (FullOpts)
          40 (1.43 % of base) : 239730.dasm - System.Speech.Internal.Synthesis.SsmlParser:ProcessSpeakElement(System.Xml.XmlReader,System.Speech.Internal.Synthesis.ISsmlParser,System.Object) (FullOpts)
          40 (1.33 % of base) : 307812.dasm - System.Threading.Tasks.Dataflow.Tests.ActionBlockTests+<TestBasicMessageProcessing>d__5:MoveNext():this (FullOpts)
          36 (0.63 % of base) : 108377.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.context.dlgateEvent.dlgate.dlgate001.dlgate001.nms.Start:MainMethod():int (FullOpts)
          36 (0.64 % of base) : 54602.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitArguments>g__visitArguments|232_0(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Conversion],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte):System.ValueTuple`4[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte,Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate]:this (FullOpts)
          36 (0.89 % of base) : 45365.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:MakeParameters[System.__Canon,System.__Canon,System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,System.__Canon,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[System.__Canon],byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte,ubyte,int,System.Func`11[System.__Canon,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.__Canon,ubyte,int,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,ubyte,System.__Canon,System.__Canon],ubyte):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (FullOpts)
          36 (0.89 % of base) : 51110.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:MakeParameters[System.__Canon,System.__Canon,System.__Canon](Microsoft.CodeAnalysis.CSharp.Binder,System.__Canon,Microsoft.CodeAnalysis.SeparatedSyntaxList`1[System.__Canon],byref,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte,ubyte,int,System.Func`11[System.__Canon,System.__Canon,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,System.__Canon,ubyte,int,Microsoft.CodeAnalysis.SyntaxToken,Microsoft.CodeAnalysis.SyntaxToken,ubyte,System.__Canon,System.__Canon],ubyte):System.Collections.Immutable.ImmutableArray`1[System.__Canon] (FullOpts)
          36 (0.12 % of base) : 59825.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          36 (1.46 % of base) : 127291.dasm - System.IO.Tests.Enumeration.TrimmedPaths:TrimmedPathsReplace_Windows():this (FullOpts)
          36 (4.19 % of base) : 241836.dasm - System.Text.Encodings.Web.TextEncoder:EncodeCore(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref,byref,ubyte):int:this (FullOpts)
          32 (2.82 % of base) : 129432.dasm - System.IO.Tests.FileStream_ctor_str_fm_fa_fs:<FileShareOpen_Inheritable>b__17_0():this (FullOpts)

Top method improvements (bytes):
        -392 (-9.65 % of base) : 42042.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -228 (-2.33 % of base) : 13380.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1[System.__Canon]:VerifyDiagnosticResults(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[Microsoft.CodeAnalysis.Project,Microsoft.CodeAnalysis.Diagnostic]],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],Microsoft.CodeAnalysis.Testing.DiagnosticResult[],Microsoft.CodeAnalysis.Testing.IVerifier):this (MinOpts)
        -208 (-3.34 % of base) : 272155.dasm - System.Text.Json.Nodes.Tests.ParentPathRootTests:GetPathAndRoot() (FullOpts)
        -180 (-0.54 % of base) : 4591.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
        -164 (-8.22 % of base) : 55715.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData:ShouldEmitAttribute(Microsoft.CodeAnalysis.CSharp.Symbol,ubyte,ubyte):ubyte:this (FullOpts)
        -140 (-6.01 % of base) : 33456.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -128 (-3.74 % of base) : 13385.dasm - Microsoft.CodeAnalysis.Testing.WeightedMatch:MatchRecursive[Microsoft.CodeAnalysis.Testing.DiagnosticResult,System.ValueTuple`2[System.__Canon,System.__Canon]](System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Testing.DiagnosticResult],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.Collections.Immutable.ImmutableArray`1+Builder[Microsoft.CodeAnalysis.Testing.WeightedMatch+Result`2[Microsoft.CodeAnalysis.Testing.DiagnosticResult,System.ValueTuple`2[System.__Canon,System.__Canon]]],byref,byref,double,int,int,ubyte[],double[],ubyte,System.Threading.CancellationToken) (MinOpts)
        -112 (-2.16 % of base) : 13384.dasm - Microsoft.CodeAnalysis.Testing.WeightedMatch:Match[Microsoft.CodeAnalysis.Testing.DiagnosticResult,System.ValueTuple`2[System.__Canon,System.__Canon]](System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Testing.DiagnosticResult],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.TimeSpan):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Testing.WeightedMatch+Result`2[Microsoft.CodeAnalysis.Testing.DiagnosticResult,System.ValueTuple`2[System.__Canon,System.__Canon]]] (MinOpts)
        -112 (-6.41 % of base) : 223930.dasm - System.Security.Cryptography.RSA:ImportRSAPrivateKey(System.ReadOnlySpan`1[ubyte],byref):this (FullOpts)
        -104 (-2.96 % of base) : 18574.dasm - Xunit.Assert:Equal[double](double,double,System.Collections.Generic.IEqualityComparer`1[double]) (FullOpts)
        -104 (-2.95 % of base) : 1382.dasm - Xunit.Assert:Equal[float](float,float,System.Collections.Generic.IEqualityComparer`1[float]) (FullOpts)
        -104 (-2.96 % of base) : 1252.dasm - Xunit.Assert:Equal[int](int,int,System.Collections.Generic.IEqualityComparer`1[int]) (FullOpts)
        -104 (-2.91 % of base) : 16711.dasm - Xunit.Assert:Equal[long](long,long,System.Collections.Generic.IEqualityComparer`1[long]) (FullOpts)
        -104 (-2.95 % of base) : 1327.dasm - Xunit.Assert:Equal[System.Drawing.Point](System.Drawing.Point,System.Drawing.Point,System.Collections.Generic.IEqualityComparer`1[System.Drawing.Point]) (FullOpts)
        -104 (-2.91 % of base) : 16974.dasm - Xunit.Assert:Equal[uint](uint,uint,System.Collections.Generic.IEqualityComparer`1[uint]) (FullOpts)
        -104 (-2.91 % of base) : 16976.dasm - Xunit.Assert:Equal[ulong](ulong,ulong,System.Collections.Generic.IEqualityComparer`1[ulong]) (FullOpts)
        -100 (-2.84 % of base) : 15485.dasm - Xunit.Assert:Equal[byte](byte,byte,System.Collections.Generic.IEqualityComparer`1[byte]) (FullOpts)
        -100 (-2.79 % of base) : 16633.dasm - Xunit.Assert:Equal[ubyte](ubyte,ubyte,System.Collections.Generic.IEqualityComparer`1[ubyte]) (FullOpts)
        -100 (-2.84 % of base) : 26581.dasm - Xunit.Assert:Equal[ushort](ushort,ushort,System.Collections.Generic.IEqualityComparer`1[ushort]) (FullOpts)
        -100 (-2.79 % of base) : 16887.dasm - Xunit.Assert:Equal[ushort](ushort,ushort,System.Collections.Generic.IEqualityComparer`1[ushort]) (FullOpts)

Top method regressions (percentages):
           8 (10.00 % of base) : 268442.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c:<CheckInvalidString>b__76_0():System.Object:this (FullOpts)
           8 (7.69 % of base) : 269640.dasm - System.Text.Json.Serialization.Tests.JsonDocumentClass:Initialize():this (FullOpts)
          16 (6.67 % of base) : 56935.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          20 (6.41 % of base) : 15043.dasm - Microsoft.CodeAnalysis.Formatting.TokenStream+Changes:AddOrReplace(int,Microsoft.CodeAnalysis.Formatting.TriviaData):this (FullOpts)
          12 (6.38 % of base) : 84966.dasm - Castle.Proxies.Invocations.TypeDescriptionProvider_GetReflectionType:InvokeMethodOnTarget():this (FullOpts)
          12 (6.38 % of base) : 84988.dasm - Castle.Proxies.Invocations.TypeDescriptionProvider_GetTypeDescriptor:InvokeMethodOnTarget():this (FullOpts)
           4 (6.25 % of base) : 126474.dasm - System.IO.Compression.Tests.ZipFile_ZipArchive_Create+<>c__DisplayClass0_0:<CreateEntryFromFileExtension>b__1():System.Object:this (FullOpts)
          28 (4.24 % of base) : 301820.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Blender+Reader:TryTakeOldNodeOrToken(ubyte,byref):ubyte:this (FullOpts)
          36 (4.19 % of base) : 241836.dasm - System.Text.Encodings.Web.TextEncoder:EncodeCore(System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref,byref,ubyte):int:this (FullOpts)
           8 (3.92 % of base) : 56940.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
           4 (3.85 % of base) : 12265.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:EarlyDecodeWellKnownAttributeType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax):this (FullOpts)
          20 (3.38 % of base) : 269638.dasm - System.Text.Json.Serialization.Tests.JsonElementArrayClass:Initialize():this (FullOpts)
           8 (3.33 % of base) : 277830.dasm - Microsoft.Cci.ReferenceIndexerBase:Visit(Microsoft.Cci.IGenericParameter):this (FullOpts)
          32 (3.29 % of base) : 269626.dasm - System.Text.Json.Serialization.Tests.JsonElementClass:Initialize():this (FullOpts)
          56 (3.27 % of base) : 185124.dasm - System.Reflection.Emit.ILGeneratorImpl:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
           4 (3.23 % of base) : 68744.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:Contains(int):ubyte:this (FullOpts)
           4 (3.23 % of base) : 70754.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Collections.Frozen.Tests.SimpleNonComparableStruct]:Contains(System.Collections.Frozen.Tests.SimpleNonComparableStruct):ubyte:this (FullOpts)
           4 (3.23 % of base) : 72143.dasm - System.Collections.Immutable.ImmutableHashSet`1[ulong]:Contains(ulong):ubyte:this (FullOpts)
          12 (3.19 % of base) : 11433.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerExecutor:ExecuteAndCatchIfThrows_NoLock[System.__Canon](Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer,System.Action`1[System.__Canon],System.__Canon,System.Nullable`1[Microsoft.CodeAnalysis.Diagnostics.AnalysisContextInfo],System.Threading.CancellationToken):this (FullOpts)
          12 (3.16 % of base) : 11702.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerExecutor:ExecuteAndCatchIfThrows_NoLock[System.ValueTuple`2[System.__Canon,System.__Canon]](Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer,System.Action`1[System.ValueTuple`2[System.__Canon,System.__Canon]],System.ValueTuple`2[System.__Canon,System.__Canon],System.Nullable`1[Microsoft.CodeAnalysis.Diagnostics.AnalysisContextInfo],System.Threading.CancellationToken):this (FullOpts)

Top method improvements (percentages):
         -32 (-27.59 % of base) : 117851.dasm - System.Formats.Asn1.Tests.Reader.OverlappedReads:<NoOverlappedTextStrings>g__Method|3_0(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref,byref):ubyte (FullOpts)
         -12 (-16.67 % of base) : 274114.dasm - System.Text.Json.Nodes.Tests.JsonArrayTests+<>c__DisplayClass1_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
         -12 (-16.67 % of base) : 274789.dasm - System.Text.Json.Nodes.Tests.JsonObjectTests+<>c__DisplayClass16_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
         -12 (-16.67 % of base) : 269845.dasm - System.Text.Json.Nodes.Tests.JsonValueTests+<>c__DisplayClass16_0:<FromElement_WrongNodeTypeThrows>b__0():System.Object:this (FullOpts)
         -28 (-16.67 % of base) : 276711.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass88_0:<HonorReaderOptionsMaxDepth>b__0():System.Object:this (FullOpts)
         -28 (-16.67 % of base) : 276714.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass88_0:<HonorReaderOptionsMaxDepth>b__3():System.Object:this (FullOpts)
         -20 (-15.15 % of base) : 231619.dasm - System.Security.Cryptography.Tests.PemEncodingFindTests:Find_Success_TrailingWhitespaceAfterPosteb():this (FullOpts)
         -24 (-15.00 % of base) : 276814.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass86_0:<CheckUnparsable>b__0():System.Object:this (FullOpts)
         -24 (-15.00 % of base) : 268633.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass87_0:<CheckParseDepth>b__0():System.Object:this (FullOpts)
         -24 (-15.00 % of base) : 276712.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass88_0:<HonorReaderOptionsMaxDepth>b__1():System.Object:this (FullOpts)
         -24 (-15.00 % of base) : 276713.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass88_0:<HonorReaderOptionsMaxDepth>b__2():System.Object:this (FullOpts)
         -24 (-15.00 % of base) : 276760.dasm - System.Text.Json.Tests.JsonDocumentTests+<>c__DisplayClass94_0:<TrailingCommas>b__0():System.Object:this (FullOpts)
         -20 (-14.71 % of base) : 231615.dasm - System.Security.Cryptography.Tests.PemEncodingFindTests:Find_Success_IncompletePreebPrefixed():this (FullOpts)
         -20 (-14.71 % of base) : 231572.dasm - System.Security.Cryptography.Tests.PemEncodingFindTests:Find_Success_PrecedingContentAndWhitespaceBeforePreeb():this (FullOpts)
         -20 (-14.29 % of base) : 46965.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
         -20 (-14.29 % of base) : 53006.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
         -20 (-14.29 % of base) : 231628.dasm - System.Security.Cryptography.Tests.PemEncodingFindTests:Find_Success_Base64SurroundingWhiteSpaceStripped():this (FullOpts)
         -20 (-14.29 % of base) : 231602.dasm - System.Security.Cryptography.Tests.PemEncodingFindTests:Find_Success_LabelCharacterBoundaries():this (FullOpts)
         -16 (-14.29 % of base) : 232053.dasm - System.Security.Cryptography.X509Certificates.Tests.CertificateCreation.CrlBuilderTests+<>c__DisplayClass25_0:<AddInvalidSerial>b__2():this (FullOpts)
         -32 (-13.79 % of base) : 41362.dasm - Microsoft.Extensions.Logging.LoggerMessage+<>c__DisplayClass12_0`2[double,int]:<Define>g__Log|0(Microsoft.Extensions.Logging.ILogger,double,int,System.Exception):this (FullOpts)


realworld.run.windows.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 15891116 (overridden on cmd)
Total bytes of diff: 15882592 (overridden on cmd)
Total bytes of delta: -8524 (-0.05 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         152 : 2392.dasm (1.94 % of base)
         136 : 6452.dasm (0.13 % of base)
         112 : 19757.dasm (1.00 % of base)
          60 : 764.dasm (5.79 % of base)
          56 : 14091.dasm (0.45 % of base)
          56 : 31118.dasm (0.50 % of base)
          48 : 22667.dasm (0.80 % of base)
          36 : 18830.dasm (0.64 % of base)
          24 : 17801.dasm (1.11 % of base)
          20 : 23810.dasm (4.00 % of base)
          16 : 26188.dasm (6.90 % of base)
          16 : 31917.dasm (1.05 % of base)
          16 : 24605.dasm (0.26 % of base)
          16 : 901.dasm (12.50 % of base)
          16 : 19812.dasm (0.76 % of base)
          16 : 19960.dasm (1.16 % of base)
          16 : 5367.dasm (1.95 % of base)
          12 : 22418.dasm (2.38 % of base)
          12 : 20848.dasm (0.18 % of base)
          12 : 23944.dasm (0.13 % of base)

Top file improvements (bytes):
       -4444 : 4498.dasm (-2.19 % of base)
        -180 : 15169.dasm (-0.54 % of base)
        -152 : 30738.dasm (-1.09 % of base)
        -140 : 1657.dasm (-6.01 % of base)
        -112 : 1568.dasm (-18.30 % of base)
        -104 : 32551.dasm (-0.29 % of base)
         -84 : 4465.dasm (-0.32 % of base)
         -72 : 802.dasm (-15.52 % of base)
         -64 : 27773.dasm (-7.41 % of base)
         -64 : 20110.dasm (-9.70 % of base)
         -64 : 8108.dasm (-0.38 % of base)
         -56 : 24685.dasm (-0.52 % of base)
         -48 : 21519.dasm (-1.89 % of base)
         -48 : 12633.dasm (-7.74 % of base)
         -48 : 1319.dasm (-4.43 % of base)
         -48 : 9960.dasm (-2.72 % of base)
         -44 : 8660.dasm (-1.44 % of base)
         -44 : 17514.dasm (-1.70 % of base)
         -44 : 22391.dasm (-1.61 % of base)
         -40 : 23577.dasm (-1.19 % of base)

69 total files with Code Size differences (36 improved, 33 regressed), 20 unchanged.

Top method regressions (bytes):
         152 (1.94 % of base) : 2392.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.Features:.cctor() (FullOpts)
         136 (0.13 % of base) : 6452.dasm - FSharp.Compiler.TcGlobals+TcGlobals:.ctor(ubyte,FSharp.Compiler.AbstractIL.IL+ILGlobals,FSharp.Compiler.TypedTree+CcuThunk,System.String,ubyte,ubyte,Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Collections.FSharpList`1[System.String],Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+CcuThunk]]],ubyte,ubyte,Internal.Utilities.PathMap,FSharp.Compiler.Features+LanguageVersion):this (FullOpts)
         112 (1.00 % of base) : 19757.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
          60 (5.79 % of base) : 764.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
          56 (0.50 % of base) : 31118.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
          56 (0.45 % of base) : 14091.dasm - System.Net.Http.Headers.KnownHeaders:.cctor() (FullOpts)
          48 (0.80 % of base) : 22667.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindVariableDeclaration(Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclaratorSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration:this (FullOpts)
          36 (0.64 % of base) : 18830.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitArguments>g__visitArguments|231_0(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Conversion],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte):System.ValueTuple`4[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte,Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate]:this (FullOpts)
          24 (1.11 % of base) : 17801.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeTypes(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Binder],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol[],System.Action`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],System.Action`1[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag) (FullOpts)
          20 (4.00 % of base) : 23810.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:VisitDoStatement(Microsoft.CodeAnalysis.CSharp.BoundDoStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
          16 (1.95 % of base) : 5367.dasm - FSharp.Compiler.Lexer:token$cont@859(FSharp.Compiler.Lexhelp+LexArgs,ubyte,Internal.Utilities.Text.Lexing.LexBuffer`1[ushort],Microsoft.FSharp.Core.Unit):FSharp.Compiler.Parser+token (FullOpts)
          16 (6.90 % of base) : 26188.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          16 (0.26 % of base) : 24605.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitSwitchExpressionCore(Microsoft.CodeAnalysis.CSharp.BoundSwitchExpression,ubyte):this (FullOpts)
          16 (1.16 % of base) : 19960.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MemberSignatureComparer:HaveSameParameterTypes(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap,ubyte,int):ubyte (FullOpts)
          16 (0.76 % of base) : 19812.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertyAccessorSymbol:CreateAccessorSymbol(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbol,uint,Microsoft.CodeAnalysis.CSharp.Syntax.AccessorDeclarationSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertyAccessorSymbol (FullOpts)
          16 (12.50 % of base) : 901.dasm - System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
          16 (1.05 % of base) : 31917.dasm - System.Management.Automation.AnalysisCache:AnalyzeManifestModule(System.String,System.Management.Automation.ExecutionContext,System.DateTime,ubyte):System.Collections.Concurrent.ConcurrentDictionary`2[System.String,int] (FullOpts)
          12 (0.13 % of base) : 23944.dasm - Microsoft.CodeAnalysis.CSharp.Binder:AnalyzeAnonymousFunction(Microsoft.CodeAnalysis.CSharp.Syntax.AnonymousFunctionExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.UnboundLambda:this (FullOpts)
          12 (0.18 % of base) : 20848.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeParameterConstraints(Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterConstraintClauseSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterConstraintClause,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.TypeConstraintSyntax]]:this (FullOpts)
          12 (2.38 % of base) : 22418.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:RemoveConstraintViolations[System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.CompoundUseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]):this (FullOpts)

Top method improvements (bytes):
       -4444 (-2.19 % of base) : 4498.dasm - FSharp.Compiler.LexFilter+LexFilterImpl:hwTokenFetch(ubyte):FSharp.Compiler.Parser+token:this (Tier0-MinOpts)
        -180 (-0.54 % of base) : 15169.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
        -152 (-1.09 % of base) : 30738.dasm - System.Management.Automation.Language.Tokenizer:NextToken():System.Management.Automation.Language.Token:this (FullOpts)
        -140 (-6.01 % of base) : 1657.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -112 (-18.30 % of base) : 1568.dasm - DemoBenchmarks.FourBodyConstraintBenchmarks:VolumeConstraint():System.ValueTuple`4[BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide]:this (FullOpts)
        -104 (-0.29 % of base) : 32551.dasm - Microsoft.PowerShell.Commands.ModuleCmdletBase:LoadModuleManifest(System.String,System.Management.Automation.ExternalScriptInfo,System.Collections.Hashtable,System.Collections.Hashtable,int,System.Version,System.Version,System.Version,System.Nullable`1[System.Guid],byref,byref):System.Management.Automation.PSModuleInfo:this (FullOpts)
         -84 (-0.32 % of base) : 4465.dasm - FSharp.Compiler.Lexer:token(FSharp.Compiler.Lexhelp+LexArgs,ubyte,Internal.Utilities.Text.Lexing.LexBuffer`1[ushort]):FSharp.Compiler.Parser+token (FullOpts)
         -72 (-15.52 % of base) : 802.dasm - DemoBenchmarks.ThreeBodyConstraintBenchmarks:AreaConstraint():System.ValueTuple`3[BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide]:this (FullOpts)
         -64 (-0.38 % of base) : 8108.dasm - FSharp.Compiler.CheckExpressions:TcPat(FSharp.Compiler.NameResolution+WarnOnUpperFlag,FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CheckExpressions+PartialValReprInfo],FSharp.Compiler.TypedTree+ValInline,FSharp.Compiler.CheckExpressions+ExplicitTyparInfo,FSharp.Compiler.CheckExpressions+ArgAndRetAttribs,ubyte,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],ubyte,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.Syntax.SynPat):System.Tuple`2[Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.CheckExpressions+TcPatPhase2Input,FSharp.Compiler.PatternMatchCompilation+Pattern],System.Tuple`3[FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpMap`2[System.String,FSharp.Compiler.CheckExpressions+PrelimValScheme1],Microsoft.FSharp.Collections.FSharpSet`1[System.String]]] (FullOpts)
         -64 (-9.70 % of base) : 20110.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (FullOpts)
         -64 (-7.41 % of base) : 27773.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__77:MoveNext():ubyte:this (FullOpts)
         -56 (-0.52 % of base) : 24685.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitTupleDeconstructionArguments(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+DeconstructionVariable],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression]],Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState]):this (FullOpts)
         -48 (-4.43 % of base) : 1319.dasm - BepuPhysics.Solver`1[DemoBenchmarks.ShapePileBenchmark+DemoPoseIntegratorCallbacks]:Solve(float,BepuUtilities.IThreadDispatcher):this (FullOpts)
         -48 (-2.72 % of base) : 9960.dasm - FSharp.Compiler.CheckExpressions:analyzeRecursiveDeclPat@11316(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckExpressions+DeclKind,FSharp.Compiler.Syntax.SynValTyparDecls,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.Ident],FSharp.Compiler.Syntax.SynValInfo,FSharp.Compiler.CheckExpressions+ExplicitTyparInfo,FSharp.Compiler.CheckExpressions+NewSlotsOK,FSharp.Compiler.CheckExpressions+OverridesOK,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Attrib],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CheckExpressions+MemberOrValContainerInfo],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynMemberFlags],FSharp.Compiler.TypedTree+TType,FSharp.Compiler.CheckExpressions+NormalizedBindingRhs,FSharp.Compiler.Text.Range,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,FSharp.Compiler.Syntax.SynPat):System.Tuple`8[FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,FSharp.Compiler.Syntax.Ident,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.Ident],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.CheckExpressions+PreValMemberInfo],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],System.Tuple`6[Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+Val],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+Val],FSharp.Compiler.CheckExpressions+ExplicitTyparInfo,FSharp.Compiler.CheckExpressions+NormalizedBindingRhs,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar]]] (FullOpts)
         -48 (-1.89 % of base) : 21519.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEModuleSymbol:GetCustomAttributesForToken(System.Reflection.Metadata.EntityHandle,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription,byref,Microsoft.CodeAnalysis.AttributeDescription):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData]:this (FullOpts)
         -48 (-7.74 % of base) : 12633.dasm - Microsoft.ML.Internal.Utilities.Heap`1[Microsoft.ML.Internal.Utilities.MinWaiter+WaitStats]:BubbleDown(int):this (FullOpts)
         -44 (-1.44 % of base) : 8660.dasm - FSharp.Compiler.CheckExpressions:TcValSpec(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckExpressions+DeclKind,FSharp.Compiler.CheckExpressions+ImplicitlyBoundTyparsAllowed,FSharp.Compiler.CheckExpressions+ContainerInfo,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynMemberFlags],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+TType],FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,FSharp.Compiler.Syntax.SynValSig,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Attrib]):System.Tuple`2[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CheckExpressions+ValSpecResult],FSharp.Compiler.CheckExpressions+UnscopedTyparEnv] (FullOpts)
         -44 (-1.70 % of base) : 17514.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:TryAddAssembly(Microsoft.CodeAnalysis.AssemblyIdentity,Microsoft.CodeAnalysis.MetadataReference,int,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Location,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],ubyte):Microsoft.CodeAnalysis.MetadataReference:this (FullOpts)
         -44 (-1.61 % of base) : 22391.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddMemberToCandidateSet[System.__Canon](System.__Canon,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[System.__Canon],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,ubyte,ubyte,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],ubyte,byref,ubyte,ubyte):this (FullOpts)
         -40 (-1.19 % of base) : 23577.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitCompoundAssignmentOperator(Microsoft.CodeAnalysis.CSharp.BoundCompoundAssignmentOperator):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)

Top method regressions (percentages):
          16 (12.50 % of base) : 901.dasm - System.Linq.Enumerable+SelectArrayIterator`2[BenchmarkDotNet.Reports.Measurement,double]:MoveNext():ubyte:this (FullOpts)
          16 (6.90 % of base) : 26188.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:<VisitCall>g__visitArgumentsAndUpdateCall|10_1(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          60 (5.79 % of base) : 764.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
          20 (4.00 % of base) : 23810.dasm - Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2[Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState,System.__Canon]:VisitDoStatement(Microsoft.CodeAnalysis.CSharp.BoundDoStatement):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
           8 (3.92 % of base) : 26428.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.StackOptimizerPass2:VisitObjectCreationExpression(Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
           4 (3.85 % of base) : 20337.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:EarlyDecodeWellKnownAttributeType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax):this (FullOpts)
           4 (2.94 % of base) : 26496.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedMethodBaseSymbol:get_ReturnTypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
          12 (2.38 % of base) : 22418.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:RemoveConstraintViolations[System.__Canon](Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon]],Microsoft.CodeAnalysis.CompoundUseSiteInfo`1[Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol]):this (FullOpts)
          16 (1.95 % of base) : 5367.dasm - FSharp.Compiler.Lexer:token$cont@859(FSharp.Compiler.Lexhelp+LexArgs,ubyte,Internal.Utilities.Text.Lexing.LexBuffer`1[ushort],Microsoft.FSharp.Core.Unit):FSharp.Compiler.Parser+token (FullOpts)
         152 (1.94 % of base) : 2392.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.Features:.cctor() (FullOpts)
           4 (1.82 % of base) : 5272.dasm - FSharp.Compiler.Xml.XmlDocCollector:LinesRange(FSharp.Compiler.Text.Position):FSharp.Compiler.Text.Range:this (FullOpts)
           8 (1.50 % of base) : 25226.dasm - Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:MakeOutputTypeInferences(Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.BoundTupleLiteral,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,byref):this (FullOpts)
           8 (1.37 % of base) : 24795.dasm - Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:MakeExplicitParameterTypeInferences(Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.BoundTupleLiteral,Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,int,byref):ubyte:this (FullOpts)
           4 (1.37 % of base) : 20401.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SubstitutedMethodSymbol:get_ReturnTypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
           4 (1.33 % of base) : 21024.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SubstitutedPropertySymbol:get_TypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
           4 (1.30 % of base) : 21381.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SubstitutedFieldSymbol:GetFieldType(Roslyn.Utilities.ConsList`1[Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol]):Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
           4 (1.27 % of base) : 27402.dasm - Microsoft.CodeAnalysis.CSharp.BoundTreeRewriter:VisitCall(Microsoft.CodeAnalysis.CSharp.BoundCall):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
           8 (1.26 % of base) : 32147.dasm - Microsoft.ApplicationInsights.Metrics.MetricSeriesConfigurationForMeasurement:.cctor() (FullOpts)
          16 (1.16 % of base) : 19960.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MemberSignatureComparer:HaveSameParameterTypes(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.TypeMap,ubyte,int):ubyte (FullOpts)
           4 (1.12 % of base) : 21894.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<BindQualifiedName>g__convertToUnboundGenericType|1031_0(byref):Microsoft.CodeAnalysis.CSharp.Binder+NamespaceOrTypeOrAliasSymbolWithAnnotations (FullOpts)

Top method improvements (percentages):
        -112 (-18.30 % of base) : 1568.dasm - DemoBenchmarks.FourBodyConstraintBenchmarks:VolumeConstraint():System.ValueTuple`4[BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide]:this (FullOpts)
         -12 (-15.79 % of base) : 12889.dasm - Microsoft.ML.Trainers.SdcaTrainerBase`3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]:ApplyAt(long,Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]):this (FullOpts)
         -72 (-15.52 % of base) : 802.dasm - DemoBenchmarks.ThreeBodyConstraintBenchmarks:AreaConstraint():System.ValueTuple`3[BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide,BepuPhysics.BodyVelocityWide]:this (FullOpts)
         -20 (-14.29 % of base) : 25234.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (FullOpts)
         -64 (-9.70 % of base) : 20110.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (FullOpts)
         -12 (-9.38 % of base) : 13856.dasm - Microsoft.ML.Transforms.Text.TextFeaturizingEstimator+Transformer:.ctor(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Data.TransformerChain`1[Microsoft.ML.ITransformer]):this (FullOpts)
          -8 (-9.09 % of base) : 3011.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[int,System.__Canon]:set_Item(int,System.__Canon):this (FullOpts)
          -8 (-8.33 % of base) : 31240.dasm - System.Management.Automation.Interpreter.LoadCachedObjectInstruction:Run(System.Management.Automation.Interpreter.InterpretedFrame):int:this (FullOpts)
         -48 (-7.74 % of base) : 12633.dasm - Microsoft.ML.Internal.Utilities.Heap`1[Microsoft.ML.Internal.Utilities.MinWaiter+WaitStats]:BubbleDown(int):this (FullOpts)
         -64 (-7.41 % of base) : 27773.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__77:MoveNext():ubyte:this (FullOpts)
         -12 (-6.67 % of base) : 23878.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker+<>c__DisplayClass231_0:<VisitArguments>b__3(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte]:this (FullOpts)
         -12 (-6.67 % of base) : 13774.dasm - Microsoft.ML.Transforms.Text.NgramExtractingEstimator:.ctor(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Transforms.Text.NgramExtractingEstimator+ColumnOptions[]):this (FullOpts)
         -12 (-6.25 % of base) : 12573.dasm - Microsoft.ML.Internal.Utilities.HashArray`1[float]:.ctor():this (FullOpts)
          -8 (-6.06 % of base) : 2279.dasm - System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
        -140 (-6.01 % of base) : 1657.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
          -4 (-5.88 % of base) : 13260.dasm - Microsoft.ML.Data.ArrayDataViewBuilder+Column`2[double,double]:CopyOut(int,byref):this (FullOpts)
          -4 (-5.88 % of base) : 13262.dasm - Microsoft.ML.Data.ArrayDataViewBuilder+Column`2[System.__Canon,Microsoft.ML.Data.VBuffer`1[double]]:CopyOut(int,byref):this (FullOpts)
         -12 (-5.77 % of base) : 13929.dasm - Microsoft.ML.Transforms.Text.WordEmbeddingEstimator:.ctor(Microsoft.ML.Runtime.IHostEnvironment,int,Microsoft.ML.Transforms.Text.WordEmbeddingEstimator+ColumnOptions[]):this (FullOpts)
         -12 (-5.66 % of base) : 26251.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:VisitIndexerAccess(Microsoft.CodeAnalysis.CSharp.BoundIndexerAccess,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
         -12 (-5.56 % of base) : 13386.dasm - Microsoft.ML.Transforms.HashingEstimator:.ctor(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Transforms.HashingEstimator+ColumnOptions[]):this (FullOpts)


smoke_tests.nativeaot.windows.arm64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch arm64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 3973164 (overridden on cmd)
Total bytes of diff: 3972824 (overridden on cmd)
Total bytes of delta: -340 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          16 : 2596.dasm (10.81 % of base)
          16 : 8332.dasm (10.81 % of base)
          12 : 13925.dasm (2.75 % of base)
          12 : 19473.dasm (3.30 % of base)
          12 : 4955.dasm (1.18 % of base)
          12 : 12778.dasm (0.56 % of base)
          12 : 15085.dasm (2.70 % of base)
          12 : 17597.dasm (3.33 % of base)
          12 : 17615.dasm (3.33 % of base)
          12 : 10430.dasm (1.18 % of base)
          12 : 15344.dasm (2.97 % of base)
          12 : 7161.dasm (0.56 % of base)
          12 : 8117.dasm (2.75 % of base)
           4 : 11240.dasm (0.46 % of base)
           4 : 6631.dasm (1.11 % of base)
           4 : 7553.dasm (1.14 % of base)
           4 : 7555.dasm (1.11 % of base)
           4 : 13212.dasm (0.90 % of base)
           4 : 14979.dasm (1.08 % of base)
           4 : 2500.dasm (1.11 % of base)

Top file improvements (bytes):
         -24 : 11306.dasm (-5.50 % of base)
         -24 : 11308.dasm (-5.94 % of base)
         -16 : 7189.dasm (-3.92 % of base)
         -16 : 9426.dasm (-6.78 % of base)
         -16 : 12785.dasm (-4.60 % of base)
         -16 : 588.dasm (-6.78 % of base)
         -12 : 12746.dasm (-2.73 % of base)
         -12 : 15333.dasm (-6.52 % of base)
         -12 : 4577.dasm (-2.33 % of base)
         -12 : 9967.dasm (-2.33 % of base)
          -8 : 10642.dasm (-5.88 % of base)
          -8 : 1669.dasm (-3.08 % of base)
          -8 : 10061.dasm (-2.94 % of base)
          -8 : 2464.dasm (-5.88 % of base)
          -8 : 5317.dasm (-2.86 % of base)
          -8 : 6386.dasm (-2.94 % of base)
          -8 : 6495.dasm (-5.88 % of base)
          -8 : 6822.dasm (-6.06 % of base)
          -8 : 8471.dasm (-3.64 % of base)
          -8 : 8587.dasm (-8.70 % of base)

56 total files with Code Size differences (31 improved, 25 regressed), 20 unchanged.

Top method regressions (bytes):
          16 (10.81 % of base) : 2596.dasm - Interop+Globalization:EnumCalendarInfo(long,System.String,ushort,int,long):ubyte (FullOpts)
          16 (10.81 % of base) : 8332.dasm - Interop+Globalization:EnumCalendarInfo(long,System.String,ushort,int,long):ubyte (FullOpts)
          12 (0.56 % of base) : 12778.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
          12 (0.56 % of base) : 7161.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
          12 (3.33 % of base) : 17597.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToLowerConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):this (FullOpts)
          12 (1.18 % of base) : 4955.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToLowerConversion](System.String):System.String:this (FullOpts)
          12 (1.18 % of base) : 10430.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToLowerConversion](System.String):System.String:this (FullOpts)
          12 (3.33 % of base) : 17615.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):this (FullOpts)
          12 (3.30 % of base) : 19473.dasm - System.Globalization.TextInfo:ChangeCaseToUpper(System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):this (FullOpts)
          12 (2.97 % of base) : 15344.dasm - System.Runtime.InteropServices.PInvokeMarshal:AnsiStringToStringBuilder(ulong,System.Text.StringBuilder) (FullOpts)
          12 (2.75 % of base) : 13925.dasm - System.String:CreateStringForSByteConstructor(ulong,int):System.String (FullOpts)
          12 (2.70 % of base) : 15085.dasm - System.String:CreateStringForSByteConstructor(ulong,int):System.String (FullOpts)
          12 (2.75 % of base) : 8117.dasm - System.String:CreateStringForSByteConstructor(ulong,int):System.String (FullOpts)
           4 (0.46 % of base) : 11240.dasm - Internal.Runtime.TypeLoader.TypeLoaderEnvironment:TryGetMethodInvokeMetadataFromInvokeMap(Internal.Metadata.NativeFormat.MetadataReader,System.RuntimeTypeHandle,Internal.Metadata.NativeFormat.MethodHandle,System.RuntimeTypeHandle[],byref,int,byref):ubyte (FullOpts)
           4 (0.90 % of base) : 13212.dasm - System.Linq.Expressions.Interpreter.EnterTryFaultInstruction:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
           4 (1.27 % of base) : 4213.dasm - System.Text.DecoderNLS:GetChars(ubyte[],int,int,ushort[],int,ubyte):int:this (FullOpts)
           4 (1.14 % of base) : 7553.dasm - System.Text.OSEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)
           4 (1.14 % of base) : 6630.dasm - System.Text.OSEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)
           4 (1.11 % of base) : 6631.dasm - System.Text.OSEncoding:GetBytes(ushort[],int,int,ubyte[],int):int:this (FullOpts)
           4 (1.11 % of base) : 7555.dasm - System.Text.OSEncoding:GetBytes(ushort[],int,int,ubyte[],int):int:this (FullOpts)

Top method improvements (bytes):
         -24 (-5.50 % of base) : 11306.dasm - System.Linq.Expressions.Interpreter.LightLambda:Run(System.Object[]):System.Object:this (FullOpts)
         -24 (-5.94 % of base) : 11308.dasm - System.Linq.Expressions.Interpreter.LightLambda:RunVoid(System.Object[]):System.Object:this (FullOpts)
         -16 (-3.92 % of base) : 7189.dasm - Internal.TypeSystem.FunctionPointerType:InstantiateSignature(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation):Internal.TypeSystem.TypeDesc:this (FullOpts)
         -16 (-4.60 % of base) : 12785.dasm - Internal.TypeSystem.FunctionPointerType:InstantiateSignature(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation):Internal.TypeSystem.TypeDesc:this (FullOpts)
         -16 (-6.78 % of base) : 9426.dasm - System.Action`1[System.Threading.AsyncLocalValueChangedArgs`1[System.__Canon]]:InvokeMulticastThunk(System.Threading.AsyncLocalValueChangedArgs`1[System.__Canon]):this (FullOpts)
         -16 (-6.78 % of base) : 588.dasm - System.Func`2[System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly+RuntimeAssemblyKey,System.__Canon]:InvokeMulticastThunk(System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly+RuntimeAssemblyKey):System.__Canon:this (FullOpts)
         -12 (-6.52 % of base) : 15333.dasm - Internal.CompilerGenerated.<Module>:NativeToManaged__InlineArrayStruct(byref,byref) (FullOpts)
         -12 (-2.33 % of base) : 4577.dasm - Internal.Reflection.Execution.ExecutionEnvironmentImplementation:TryGetConstructedGenericTypeForComponents(System.RuntimeTypeHandle,System.RuntimeTypeHandle[],byref):ubyte:this (FullOpts)
         -12 (-2.33 % of base) : 9967.dasm - Internal.Reflection.Execution.ExecutionEnvironmentImplementation:TryGetConstructedGenericTypeForComponents(System.RuntimeTypeHandle,System.RuntimeTypeHandle[],byref):ubyte:this (FullOpts)
         -12 (-2.73 % of base) : 12746.dasm - System.Linq.Expressions.Interpreter.ByRefNewInstruction:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
          -8 (-1.59 % of base) : 1185.dasm - Internal.Console:WriteCore(long,System.String) (FullOpts)
          -8 (-5.88 % of base) : 2464.dasm - System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -8 (-5.88 % of base) : 6495.dasm - System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -8 (-3.51 % of base) : 1626.dasm - System.Collections.Generic.LowLevelDictionary`2[Internal.Runtime.TypeManagerHandle,int]:UncheckedAdd(Internal.Runtime.TypeManagerHandle,int):System.Collections.Generic.LowLevelDictionary`2+Entry[Internal.Runtime.TypeManagerHandle,int]:this (FullOpts)
          -8 (-3.28 % of base) : 12757.dasm - System.Collections.Generic.LowLevelDictionary`2[Internal.Runtime.TypeManagerHandle,System.__Canon]:UncheckedAdd(Internal.Runtime.TypeManagerHandle,System.__Canon):System.Collections.Generic.LowLevelDictionary`2+Entry[Internal.Runtime.TypeManagerHandle,System.__Canon]:this (FullOpts)
          -8 (-2.94 % of base) : 6386.dasm - System.Collections.Generic.LowLevelDictionary`2[System.__Canon,long]:UncheckedAdd(System.__Canon,long):System.Collections.Generic.LowLevelDictionary`2+Entry[System.__Canon,long]:this (FullOpts)
          -8 (-3.08 % of base) : 1669.dasm - System.Collections.Generic.LowLevelDictionary`2[System.__Canon,System.__Canon]:UncheckedAdd(System.__Canon,System.__Canon):System.Collections.Generic.LowLevelDictionary`2+Entry[System.__Canon,System.__Canon]:this (FullOpts)
          -8 (-2.86 % of base) : 5317.dasm - System.Collections.Generic.LowLevelDictionary`2[System.__Canon,System.__Canon]:UncheckedAdd(System.__Canon,System.__Canon):System.Collections.Generic.LowLevelDictionary`2+Entry[System.__Canon,System.__Canon]:this (FullOpts)
          -8 (-3.08 % of base) : 12557.dasm - System.Collections.Generic.LowLevelDictionary`2[System.TypeUnificationKey,System.__Canon]:UncheckedAdd(System.TypeUnificationKey,System.__Canon):System.Collections.Generic.LowLevelDictionary`2+Entry[System.TypeUnificationKey,System.__Canon]:this (FullOpts)
          -8 (-3.64 % of base) : 8471.dasm - System.Collections.Generic.LowLevelDictionary`2[uint,long]:UncheckedAdd(uint,long):System.Collections.Generic.LowLevelDictionary`2+Entry[uint,long]:this (FullOpts)

Top method regressions (percentages):
          16 (10.81 % of base) : 2596.dasm - Interop+Globalization:EnumCalendarInfo(long,System.String,ushort,int,long):ubyte (FullOpts)
          16 (10.81 % of base) : 8332.dasm - Interop+Globalization:EnumCalendarInfo(long,System.String,ushort,int,long):ubyte (FullOpts)
          12 (3.33 % of base) : 17597.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToLowerConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):this (FullOpts)
          12 (3.33 % of base) : 17615.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToUpperConversion](System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):this (FullOpts)
          12 (3.30 % of base) : 19473.dasm - System.Globalization.TextInfo:ChangeCaseToUpper(System.ReadOnlySpan`1[ushort],System.Span`1[ushort]):this (FullOpts)
          12 (2.97 % of base) : 15344.dasm - System.Runtime.InteropServices.PInvokeMarshal:AnsiStringToStringBuilder(ulong,System.Text.StringBuilder) (FullOpts)
          12 (2.75 % of base) : 13925.dasm - System.String:CreateStringForSByteConstructor(ulong,int):System.String (FullOpts)
          12 (2.75 % of base) : 8117.dasm - System.String:CreateStringForSByteConstructor(ulong,int):System.String (FullOpts)
          12 (2.70 % of base) : 15085.dasm - System.String:CreateStringForSByteConstructor(ulong,int):System.String (FullOpts)
           4 (1.35 % of base) : 3477.dasm - System.Text.UnicodeEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)
           4 (1.27 % of base) : 4213.dasm - System.Text.DecoderNLS:GetChars(ubyte[],int,int,ushort[],int,ubyte):int:this (FullOpts)
          12 (1.18 % of base) : 4955.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToLowerConversion](System.String):System.String:this (FullOpts)
          12 (1.18 % of base) : 10430.dasm - System.Globalization.TextInfo:ChangeCaseCommon[System.Globalization.TextInfo+ToLowerConversion](System.String):System.String:this (FullOpts)
           4 (1.14 % of base) : 7553.dasm - System.Text.OSEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)
           4 (1.14 % of base) : 6630.dasm - System.Text.OSEncoding:GetBytes(System.String,int,int,ubyte[],int):int:this (FullOpts)
           4 (1.11 % of base) : 6631.dasm - System.Text.OSEncoding:GetBytes(ushort[],int,int,ubyte[],int):int:this (FullOpts)
           4 (1.11 % of base) : 7555.dasm - System.Text.OSEncoding:GetBytes(ushort[],int,int,ubyte[],int):int:this (FullOpts)
           4 (1.11 % of base) : 2504.dasm - System.Text.OSEncoding:GetBytes(ushort[],int,int,ubyte[],int):int:this (FullOpts)
           4 (1.11 % of base) : 2500.dasm - System.Text.OSEncoding:GetChars(ubyte[],int,int,ushort[],int):int:this (FullOpts)
           4 (1.11 % of base) : 6626.dasm - System.Text.OSEncoding:GetChars(ubyte[],int,int,ushort[],int):int:this (FullOpts)

Top method improvements (percentages):
          -8 (-8.70 % of base) : 8587.dasm - System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
          -8 (-8.70 % of base) : 22980.dasm - System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
          -4 (-8.33 % of base) : 18320.dasm - System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (FullOpts)
          -8 (-8.33 % of base) : 12677.dasm - System.Linq.Expressions.Interpreter.LoadCachedObjectInstruction:Run(System.Linq.Expressions.Interpreter.InterpretedFrame):int:this (FullOpts)
         -16 (-6.78 % of base) : 9426.dasm - System.Action`1[System.Threading.AsyncLocalValueChangedArgs`1[System.__Canon]]:InvokeMulticastThunk(System.Threading.AsyncLocalValueChangedArgs`1[System.__Canon]):this (FullOpts)
         -16 (-6.78 % of base) : 588.dasm - System.Func`2[System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly+RuntimeAssemblyKey,System.__Canon]:InvokeMulticastThunk(System.Reflection.Runtime.Assemblies.NativeFormat.NativeFormatRuntimeAssembly+RuntimeAssemblyKey):System.__Canon:this (FullOpts)
         -12 (-6.52 % of base) : 15333.dasm - Internal.CompilerGenerated.<Module>:NativeToManaged__InlineArrayStruct(byref,byref) (FullOpts)
          -8 (-6.06 % of base) : 6822.dasm - System.Collections.Generic.LowLevelListWithIList`1+Enumerator[System.Reflection.CustomAttributeTypedArgument]:MoveNext():ubyte:this (FullOpts)
         -24 (-5.94 % of base) : 11308.dasm - System.Linq.Expressions.Interpreter.LightLambda:RunVoid(System.Object[]):System.Object:this (FullOpts)
          -8 (-5.88 % of base) : 2464.dasm - System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -8 (-5.88 % of base) : 6495.dasm - System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -8 (-5.88 % of base) : 10642.dasm - System.Collections.Generic.LowLevelListWithIList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -8 (-5.71 % of base) : 11646.dasm - System.Collections.Generic.LowLevelListWithIList`1+Enumerator[System.Reflection.CustomAttributeNamedArgument]:MoveNext():ubyte:this (FullOpts)
         -24 (-5.50 % of base) : 11306.dasm - System.Linq.Expressions.Interpreter.LightLambda:Run(System.Object[]):System.Object:this (FullOpts)
         -16 (-4.60 % of base) : 12785.dasm - Internal.TypeSystem.FunctionPointerType:InstantiateSignature(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation):Internal.TypeSystem.TypeDesc:this (FullOpts)
          -4 (-4.00 % of base) : 12993.dasm - System.Linq.Expressions.Interpreter.InterpretedFrame:Dup():this (FullOpts)
         -16 (-3.92 % of base) : 7189.dasm - Internal.TypeSystem.FunctionPointerType:InstantiateSignature(Internal.TypeSystem.Instantiation,Internal.TypeSystem.Instantiation):Internal.TypeSystem.TypeDesc:this (FullOpts)
          -8 (-3.64 % of base) : 8471.dasm - System.Collections.Generic.LowLevelDictionary`2[uint,long]:UncheckedAdd(uint,long):System.Collections.Generic.LowLevelDictionary`2+Entry[uint,long]:this (FullOpts)
          -8 (-3.64 % of base) : 14068.dasm - System.Collections.Generic.LowLevelDictionary`2[uint,long]:UncheckedAdd(uint,long):System.Collections.Generic.LowLevelDictionary`2+Entry[uint,long]:this (FullOpts)
          -8 (-3.57 % of base) : 9615.dasm - System.Linq.Expressions.Interpreter.HybridReferenceDictionary`2+<GetEnumeratorWorker>d__7[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)



windows x64

Diffs are based on 2,492,895 contexts (983,689 MinOpts, 1,509,206 FullOpts).

MISSED contexts: base: 3,899 (0.16%), diff: 3,916 (0.16%)

Overall (-2,840,990 bytes)

Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 42,178,999 -126,131
benchmarks.run.windows.x64.checked.mch 8,747,477 -2,284
benchmarks.run_pgo.windows.x64.checked.mch 35,391,293 -134,490
benchmarks.run_tiered.windows.x64.checked.mch 12,661,498 -76,974
coreclr_tests.run.windows.x64.checked.mch 393,404,923 -994,701
libraries.crossgen2.windows.x64.checked.mch 39,443,922 -32,948
libraries.pmi.windows.x64.checked.mch 61,386,973 -16,895
libraries_tests.run.windows.x64.Release.mch 281,632,278 -1,346,220
librariestestsnotieredcompilation.run.windows.x64.Release.mch 133,912,278 -96,807
realworld.run.windows.x64.checked.mch 14,170,687 -13,266
smoke_tests.nativeaot.windows.x64.checked.mch 5,092,364 -274

MinOpts (-2,692,403 bytes)

Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 14,658,725 -118,356
benchmarks.run_pgo.windows.x64.checked.mch 14,234,977 -135,881
benchmarks.run_tiered.windows.x64.checked.mch 9,185,266 -76,584
coreclr_tests.run.windows.x64.checked.mch 273,542,992 -972,566
libraries_tests.run.windows.x64.Release.mch 178,368,316 -1,315,308
librariestestsnotieredcompilation.run.windows.x64.Release.mch 10,423,370 -70,606
realworld.run.windows.x64.checked.mch 389,705 -3,102

FullOpts (-148,587 bytes)

Collection Base size (bytes) Diff size (bytes)
aspnet.run.windows.x64.checked.mch 27,520,274 -7,775
benchmarks.run.windows.x64.checked.mch 8,747,116 -2,284
benchmarks.run_pgo.windows.x64.checked.mch 21,156,316 +1,391
benchmarks.run_tiered.windows.x64.checked.mch 3,476,232 -390
coreclr_tests.run.windows.x64.checked.mch 119,861,931 -22,135
libraries.crossgen2.windows.x64.checked.mch 39,442,733 -32,948
libraries.pmi.windows.x64.checked.mch 61,273,454 -16,895
libraries_tests.run.windows.x64.Release.mch 103,263,962 -30,912
librariestestsnotieredcompilation.run.windows.x64.Release.mch 123,488,908 -26,201
realworld.run.windows.x64.checked.mch 13,780,982 -10,164
smoke_tests.nativeaot.windows.x64.checked.mch 5,091,455 -274

Example diffs

aspnet.run.windows.x64.checked.mch

-34 (-28.33%) : 73174.dasm - Microsoft.Extensions.Configuration.ConfigurationBinder:GetValue[System.Nullable1[System.TimeSpan]](Microsoft.Extensions.Configuration.IConfiguration,System.String):System.Nullable1System.TimeSpan

@@ -11,61 +11,46 @@
 ;  V03 loc0         [V03    ] (  1,  1   )  struct (16) [rbp-0x10]  do-not-enreg[S] must-init ld-addr-op <System.Nullable`1[System.TimeSpan]>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05    ] (  1,  1   )  struct (16) [rbp-0x20]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Nullable`1[System.TimeSpan]>
-;  V06 tmp2         [V06    ] (  1,  1   )   byref  ->  [rbp-0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V07 tmp3         [V07    ] (  1,  1   )     ref  ->  [rbp-0x30]  do-not-enreg[] must-init "argument with side effect"
-;  V08 tmp4         [V08    ] (  1,  1   )     ref  ->  [rbp-0x38]  do-not-enreg[] must-init "argument with side effect"
 ;
-; Lcl frame size = 96
+; Lcl frame size = 64
 
 G_M38605_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 96
+       sub      rsp, 64
        vzeroupper 
-       lea      rbp, [rsp+0x60]
+       lea      rbp, [rsp+0x40]
        xor      eax, eax
-       mov      qword ptr [rbp-0x38], rax
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rbp-0x30], ymm4
-       vmovdqa  xmmword ptr [rbp-0x10], xmm4
+       mov      qword ptr [rbp-0x10], rax
+       mov      qword ptr [rbp-0x08], rax
        mov      bword ptr [rbp+0x10], rcx
        mov      gword ptr [rbp+0x18], rdx
        mov      gword ptr [rbp+0x20], r8
-                       ;; size=45 bbWeight=1 PerfScore 11.33
+                       ;; size=35 bbWeight=1 PerfScore 8.00
 G_M38605_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        vxorps   xmm0, xmm0, xmm0
        vmovups  xmmword ptr [rbp-0x10], xmm0
-       mov      rcx, bword ptr [rbp+0x10]
-       ; byrRegs +[rcx]
-       mov      bword ptr [rbp-0x28], rcx
-       mov      rcx, gword ptr [rbp+0x18]
-       ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
-       mov      gword ptr [rbp-0x30], rcx
-       mov      rcx, gword ptr [rbp+0x20]
-       mov      gword ptr [rbp-0x38], rcx
        vmovups  xmm0, xmmword ptr [rbp-0x10]
        vmovups  xmmword ptr [rbp-0x20], xmm0
-       mov      rcx, bword ptr [rbp-0x28]
-       ; gcrRegs -[rcx]
-       ; byrRegs +[rcx]
-       mov      rdx, gword ptr [rbp-0x30]
-       ; gcrRegs +[rdx]
-       mov      r8, gword ptr [rbp-0x38]
-       ; gcrRegs +[r8]
        lea      r9, [rbp-0x20]
+       mov      rdx, gword ptr [rbp+0x18]
+       ; gcrRegs +[rdx]
+       mov      r8, gword ptr [rbp+0x20]
+       ; gcrRegs +[r8]
+       mov      rcx, bword ptr [rbp+0x10]
+       ; byrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rdx r8]
        ; byrRegs -[rcx]
        mov      rax, bword ptr [rbp+0x10]
        ; byrRegs +[rax]
-                       ;; size=69 bbWeight=1 PerfScore 18.83
+                       ;; size=45 bbWeight=1 PerfScore 12.83
 G_M38605_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 96
+       add      rsp, 64
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 120, prolog size 33, PerfScore 31.92, instruction count 31, allocated bytes for code 120 (MethodHash=782c6932) for method Microsoft.Extensions.Configuration.ConfigurationBinder:GetValue[System.Nullable`1[System.TimeSpan]](Microsoft.Extensions.Configuration.IConfiguration,System.String):System.Nullable`1[System.TimeSpan] (Tier0)
+; Total bytes of code 86, prolog size 23, PerfScore 22.58, instruction count 23, allocated bytes for code 86 (MethodHash=782c6932) for method Microsoft.Extensions.Configuration.ConfigurationBinder:GetValue[System.Nullable`1[System.TimeSpan]](Microsoft.Extensions.Configuration.IConfiguration,System.String):System.Nullable`1[System.TimeSpan] (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -78,5 +63,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 11 * 8 + 8 = 96 = 0x60
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

-28 (-26.42%) : 84090.dasm - System.Collections.Generic.Dictionary`2[System.Canon,System.Resources.ResourceLocator]:set_Item(System.Canon,System.Resources.ResourceLocator):this (Instrumented Tier0)

@@ -11,58 +11,47 @@
 ;  V03 loc0         [V03    ] (  1,  1   )   ubyte  ->  [rbp-0x04]  do-not-enreg[]
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05    ] (  1,  1   )  struct (16) [rbp-0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Resources.ResourceLocator>
-;  V06 tmp2         [V06    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V07 tmp3         [V07    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init "argument with side effect"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 64
 
 G_M48646_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 80
+       sub      rsp, 64
        vzeroupper 
-       lea      rbp, [rsp+0x50]
+       lea      rbp, [rsp+0x40]
        xor      eax, eax
-       mov      qword ptr [rbp-0x28], rax
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqa  xmmword ptr [rbp-0x20], xmm4
-       mov      qword ptr [rbp-0x10], rax
+       mov      qword ptr [rbp-0x18], rax
        mov      gword ptr [rbp+0x10], rcx
        mov      gword ptr [rbp+0x18], rdx
        mov      bword ptr [rbp+0x20], r8
-                       ;; size=44 bbWeight=1 PerfScore 10.33
+                       ;; size=31 bbWeight=1 PerfScore 7.00
 G_M48646_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      r8, bword ptr [rbp+0x20]
+       ; byrRegs +[r8]
+                       ;; size=4 bbWeight=1 PerfScore 1.00
+G_M48646_IG03:        ; bbWeight=1, nogc, extend
+       vmovdqu  xmm0, xmmword ptr [r8]
+       vmovdqu  xmmword ptr [rbp-0x18], xmm0
+                       ;; size=10 bbWeight=1 PerfScore 5.00
+G_M48646_IG04:        ; bbWeight=1, extend
+       lea      r8, [rbp-0x18]
+       ; byrRegs -[r8]
+       mov      rdx, gword ptr [rbp+0x18]
+       ; gcrRegs +[rdx]
        mov      rcx, gword ptr [rbp+0x10]
        ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-0x20], rcx
-       mov      rcx, gword ptr [rbp+0x18]
-       mov      gword ptr [rbp-0x28], rcx
-       mov      rcx, bword ptr [rbp+0x20]
-       ; gcrRegs -[rcx]
-       ; byrRegs +[rcx]
-                       ;; size=20 bbWeight=1 PerfScore 5.00
-G_M48646_IG03:        ; bbWeight=1, nogc, extend
-       vmovdqu  xmm0, xmmword ptr [rcx]
-       vmovdqu  xmmword ptr [rbp-0x18], xmm0
-                       ;; size=9 bbWeight=1 PerfScore 5.00
-G_M48646_IG04:        ; bbWeight=1, extend
-       mov      rcx, gword ptr [rbp-0x20]
-       ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
-       mov      rdx, gword ptr [rbp-0x28]
-       ; gcrRegs +[rdx]
-       lea      r8, [rbp-0x18]
        mov      r9d, 1
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        mov      dword ptr [rbp-0x04], eax
                        ;; size=27 bbWeight=1 PerfScore 6.75
 G_M48646_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 80
+       add      rsp, 64
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 106, prolog size 32, PerfScore 28.83, instruction count 28, allocated bytes for code 106 (MethodHash=52cb41f9) for method System.Collections.Generic.Dictionary`2[System.__Canon,System.Resources.ResourceLocator]:set_Item(System.__Canon,System.Resources.ResourceLocator):this (Instrumented Tier0)
+; Total bytes of code 78, prolog size 19, PerfScore 21.50, instruction count 21, allocated bytes for code 78 (MethodHash=52cb41f9) for method System.Collections.Generic.Dictionary`2[System.__Canon,System.Resources.ResourceLocator]:set_Item(System.__Canon,System.Resources.ResourceLocator):this (Instrumented Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -75,5 +64,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

-28 (-26.42%) : 11363.dasm - System.Collections.Generic.Dictionary`2[System.Canon,System.Resources.ResourceLocator]:set_Item(System.Canon,System.Resources.ResourceLocator):this (Tier0)

@@ -11,58 +11,47 @@
 ;  V03 loc0         [V03    ] (  1,  1   )   ubyte  ->  [rbp-0x04]  do-not-enreg[]
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05    ] (  1,  1   )  struct (16) [rbp-0x18]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Resources.ResourceLocator>
-;  V06 tmp2         [V06    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V07 tmp3         [V07    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init "argument with side effect"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 64
 
 G_M48646_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 80
+       sub      rsp, 64
        vzeroupper 
-       lea      rbp, [rsp+0x50]
+       lea      rbp, [rsp+0x40]
        xor      eax, eax
-       mov      qword ptr [rbp-0x28], rax
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqa  xmmword ptr [rbp-0x20], xmm4
-       mov      qword ptr [rbp-0x10], rax
+       mov      qword ptr [rbp-0x18], rax
        mov      gword ptr [rbp+0x10], rcx
        mov      gword ptr [rbp+0x18], rdx
        mov      bword ptr [rbp+0x20], r8
-                       ;; size=44 bbWeight=1 PerfScore 10.33
+                       ;; size=31 bbWeight=1 PerfScore 7.00
 G_M48646_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      r8, bword ptr [rbp+0x20]
+       ; byrRegs +[r8]
+                       ;; size=4 bbWeight=1 PerfScore 1.00
+G_M48646_IG03:        ; bbWeight=1, nogc, extend
+       vmovdqu  xmm0, xmmword ptr [r8]
+       vmovdqu  xmmword ptr [rbp-0x18], xmm0
+                       ;; size=10 bbWeight=1 PerfScore 5.00
+G_M48646_IG04:        ; bbWeight=1, extend
+       lea      r8, [rbp-0x18]
+       ; byrRegs -[r8]
+       mov      rdx, gword ptr [rbp+0x18]
+       ; gcrRegs +[rdx]
        mov      rcx, gword ptr [rbp+0x10]
        ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-0x20], rcx
-       mov      rcx, gword ptr [rbp+0x18]
-       mov      gword ptr [rbp-0x28], rcx
-       mov      rcx, bword ptr [rbp+0x20]
-       ; gcrRegs -[rcx]
-       ; byrRegs +[rcx]
-                       ;; size=20 bbWeight=1 PerfScore 5.00
-G_M48646_IG03:        ; bbWeight=1, nogc, extend
-       vmovdqu  xmm0, xmmword ptr [rcx]
-       vmovdqu  xmmword ptr [rbp-0x18], xmm0
-                       ;; size=9 bbWeight=1 PerfScore 5.00
-G_M48646_IG04:        ; bbWeight=1, extend
-       mov      rcx, gword ptr [rbp-0x20]
-       ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
-       mov      rdx, gword ptr [rbp-0x28]
-       ; gcrRegs +[rdx]
-       lea      r8, [rbp-0x18]
        mov      r9d, 1
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        mov      dword ptr [rbp-0x04], eax
                        ;; size=27 bbWeight=1 PerfScore 6.75
 G_M48646_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 80
+       add      rsp, 64
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 106, prolog size 32, PerfScore 28.83, instruction count 28, allocated bytes for code 106 (MethodHash=52cb41f9) for method System.Collections.Generic.Dictionary`2[System.__Canon,System.Resources.ResourceLocator]:set_Item(System.__Canon,System.Resources.ResourceLocator):this (Tier0)
+; Total bytes of code 78, prolog size 19, PerfScore 21.50, instruction count 21, allocated bytes for code 78 (MethodHash=52cb41f9) for method System.Collections.Generic.Dictionary`2[System.__Canon,System.Resources.ResourceLocator]:set_Item(System.__Canon,System.Resources.ResourceLocator):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -75,5 +64,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+34 (+10.49%) : 58891.dasm - System.Text.Json.Utf8JsonWriter:WriteStringHelperEscapeValue(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan1[ushort]):this (Tier1)

@@ -15,19 +15,19 @@
 ;* V03 loc0         [V03    ] (  0,  0   )     int  ->  zero-ref   
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V06 tmp2         [V06,T07] (  2,  4   )   byref  ->  rcx         single-def "Inlining Arg"
-;  V07 tmp3         [V07,T13] (  4,  2.00)     int  ->   r9         "Inline return value spill temp"
+;  V06 tmp2         [V06,T07] (  2,  4   )   byref  ->  rdx         single-def "Inlining Arg"
+;  V07 tmp3         [V07,T12] (  4,  2.00)     int  ->   r9         "Inline return value spill temp"
 ;* V08 tmp4         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V09 tmp5         [V09    ] (  2,  2.04)   byref  ->  [rsp+0x40]  must-init pinned "Inline stloc first use temp"
+;  V09 tmp5         [V09    ] (  2,  2.04)   byref  ->  [rsp+0x50]  must-init pinned "Inline stloc first use temp"
 ;* V10 tmp6         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V11 tmp7         [V11,T06] (  2,  4.08)     ref  ->  rcx         class-hnd single-def "Inlining Arg" <System.Text.Encodings.Web.JavaScriptEncoder>
-;  V12 tmp8         [V12,T03] (  8,  6.21)     ref  ->  rcx        
-;  V13 tmp9         [V13,T14] (  3,  2   )     int  ->   r9         "guarded devirt return temp"
+;  V11 tmp7         [V11,T06] (  2,  4.08)     ref  ->  rdx         class-hnd single-def "Inlining Arg" <System.Text.Encodings.Web.JavaScriptEncoder>
+;  V12 tmp8         [V12,T03] (  8,  6.21)     ref  ->  [rsp+0x30] 
+;  V13 tmp9         [V13,T13] (  3,  2   )     int  ->   r9         "guarded devirt return temp"
 ;* V14 tmp10        [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <System.Text.Encodings.Web.DefaultJavaScriptEncoder>
 ;* V15 tmp11        [V15    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
 ;* V16 tmp12        [V16    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
 ;* V17 tmp13        [V17    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V18 tmp14        [V18,T04] (  3,  6   )     ref  ->  rcx         class-hnd exact single-def "Inlining Arg" <System.Text.Encodings.Web.OptimizedInboxTextEncoder>
+;  V18 tmp14        [V18,T04] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Text.Encodings.Web.OptimizedInboxTextEncoder>
 ;* V19 tmp15        [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V20 tmp16        [V20    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp17        [V21    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -37,79 +37,84 @@
 ;* V25 tmp21        [V25    ] (  0,  0   )   byref  ->  zero-ref    "field V02._reference (fldOffset=0x0)" P-INDEP
 ;* V26 tmp22        [V26    ] (  0,  0   )     int  ->  zero-ref    "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V27 tmp23        [V27    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
-;  V28 tmp24        [V28,T15] (  3,  2   )     int  ->  rax         "field V05._length (fldOffset=0x8)" P-INDEP
-;  V29 tmp25        [V29,T09] (  3,  3.08)   byref  ->  rdx         single-def "field V08._reference (fldOffset=0x0)" P-INDEP
-;  V30 tmp26        [V30,T10] (  4,  3   )     int  ->   r8         "field V08._length (fldOffset=0x8)" P-INDEP
-;  V31 tmp27        [V31,T16] (  2,  2   )   byref  ->  rdx         single-def "field V19._reference (fldOffset=0x0)" P-INDEP
-;  V32 tmp28        [V32,T17] (  2,  2   )     int  ->   r8         "field V19._length (fldOffset=0x8)" P-INDEP
+;  V28 tmp24        [V28,T14] (  3,  2   )     int  ->  rax         "field V05._length (fldOffset=0x8)" P-INDEP
+;  V29 tmp25        [V29,T08] (  3,  3.08)   byref  ->  rcx         single-def "field V08._reference (fldOffset=0x0)" P-INDEP
+;  V30 tmp26        [V30,T09] (  4,  3   )     int  ->   r8         "field V08._length (fldOffset=0x8)" P-INDEP
+;  V31 tmp27        [V31,T15] (  2,  2   )   byref  ->  rcx         single-def "field V19._reference (fldOffset=0x0)" P-INDEP
+;  V32 tmp28        [V32,T16] (  2,  2   )     int  ->   r8         "field V19._length (fldOffset=0x8)" P-INDEP
 ;* V33 tmp29        [V33    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.ReadOnlySpan`1[ubyte]>
 ;* V34 tmp30        [V34    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.ReadOnlySpan`1[ushort]>
-;  V35 tmp31        [V35,T05] (  3,  4.08)    long  ->  rdx         "Cast away GC"
-;  V36 tmp32        [V36    ] (  3,  6   )  struct (16) [rsp+0x30]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;  V37 tmp33        [V37,T08] (  2,  4   )     ref  ->  rcx         single-def "argument with side effect"
-;  V38 cse0         [V38,T11] (  3,  3   )     int  ->   r8         "CSE - moderate"
-;  V39 cse1         [V39,T12] (  3,  2.99)     int  ->  rbp         "CSE - moderate"
+;  V35 tmp31        [V35,T05] (  3,  4.08)    long  ->  [rsp+0x48]  spill-single-def "Cast away GC"
+;  V36 tmp32        [V36    ] (  3,  6   )  struct (16) [rsp+0x38]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V37 cse0         [V37,T10] (  3,  3   )     int  ->   r8         "CSE - aggressive"
+;  V38 cse1         [V38,T11] (  3,  2.99)     int  ->  rbp         "CSE - moderate"
 ;
-; Lcl frame size = 72
+; Lcl frame size = 88
 
 G_M39531_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 72
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqa  xmmword ptr [rsp+0x30], xmm4
+       sub      rsp, 88
        xor      eax, eax
-       mov      qword ptr [rsp+0x40], rax
+       mov      qword ptr [rsp+0x38], rax
+       vxorps   xmm4, xmm4, xmm4
+       vmovdqa  xmmword ptr [rsp+0x40], xmm4
+       mov      qword ptr [rsp+0x50], rax
        mov      rsi, rcx
        ; gcrRegs +[rsi]
        mov      rdi, rdx
        ; byrRegs +[rdi]
        mov      rbx, r8
        ; byrRegs +[rbx]
-                       ;; size=34 bbWeight=1 PerfScore 8.58
+                       ;; size=39 bbWeight=1 PerfScore 9.58
 G_M39531_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0088 {rbx rdi}, byref
        mov      r8d, dword ptr [rbx+0x08]
        mov      eax, r8d
        cmp      eax, 0xD1FFAB1E
        jg       G_M39531_IG11
        cmp      byte  ptr [rsi], sil
-       lea      rcx, bword ptr [rsi+0x60]
-       ; byrRegs +[rcx]
-       mov      rdx, bword ptr [rbx]
+       lea      rdx, bword ptr [rsi+0x60]
        ; byrRegs +[rdx]
-       mov      rcx, gword ptr [rcx]
-       ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
+       mov      rcx, bword ptr [rbx]
+       ; byrRegs +[rcx]
+       mov      rdx, gword ptr [rdx]
+       ; gcrRegs +[rdx]
+       ; byrRegs -[rdx]
        test     r8d, r8d
        je       G_M39531_IG12
                        ;; size=40 bbWeight=1 PerfScore 12.25
-G_M39531_IG03:        ; bbWeight=1.04, gcrefRegs=0042 {rcx rsi}, byrefRegs=008C {rdx rbx rdi}, byref
-       mov      bword ptr [rsp+0x40], rdx
+G_M39531_IG03:        ; bbWeight=1.04, gcrefRegs=0044 {rdx rsi}, byrefRegs=008A {rcx rbx rdi}, byref
+       mov      bword ptr [rsp+0x50], rcx
+       mov      qword ptr [rsp+0x48], rcx
        mov      rax, 0xD1FFAB1E      ; const ptr
-       test     rcx, rcx
-       cmove    rcx, gword ptr [rax]
+       test     rdx, rdx
+       cmove    rdx, gword ptr [rax]
        mov      rax, 0xD1FFAB1E      ; System.Text.Encodings.Web.DefaultJavaScriptEncoder
-       cmp      qword ptr [rcx], rax
+       cmp      qword ptr [rdx], rax
        jne      G_M39531_IG13
-                       ;; size=41 bbWeight=1.04 PerfScore 9.12
-G_M39531_IG04:        ; bbWeight=1, gcrefRegs=0042 {rcx rsi}, byrefRegs=0088 {rbx rdi}, byref
-       ; byrRegs -[rdx]
-       mov      rcx, gword ptr [rcx+0x08]
-       cmp      byte  ptr [rcx], cl
-       mov      bword ptr [rsp+0x30], rdx
-       mov      dword ptr [rsp+0x38], r8d
-       lea      rdx, [rsp+0x30]
+                       ;; size=46 bbWeight=1.04 PerfScore 10.16
+G_M39531_IG04:        ; bbWeight=1, gcrefRegs=0044 {rdx rsi}, byrefRegs=0088 {rbx rdi}, byref
+       ; byrRegs -[rcx]
+       mov      rax, gword ptr [rdx+0x08]
+       ; gcrRegs +[rax]
+       cmp      byte  ptr [rax], al
+       mov      bword ptr [rsp+0x38], rcx
+       mov      dword ptr [rsp+0x40], r8d
+       lea      rdx, [rsp+0x38]
+       ; gcrRegs -[rdx]
+       mov      rcx, rax
+       ; gcrRegs +[rcx]
        call     [<unknown method>]
-       ; gcrRegs -[rcx]
+       ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
        mov      r9d, eax
-                       ;; size=30 bbWeight=1 PerfScore 10.75
+                       ;; size=33 bbWeight=1 PerfScore 11.00
 G_M39531_IG05:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0088 {rbx rdi}, byref, isz
        xor      rcx, rcx
        ; byrRegs +[rcx]
-       mov      bword ptr [rsp+0x40], rcx
+       mov      bword ptr [rsp+0x50], rcx
        cmp      r9d, -1
        jne      SHORT G_M39531_IG10
                        ;; size=13 bbWeight=1 PerfScore 2.50
@@ -138,7 +143,7 @@ G_M39531_IG08:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
        mov      byte  ptr [rsi+0x36], 7
                        ;; size=11 bbWeight=1 PerfScore 4.00
 G_M39531_IG09:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 72
+       add      rsp, 88
        pop      rbx
        pop      rbp
        pop      rsi
@@ -172,16 +177,26 @@ G_M39531_IG12:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0088 {rbx rd
        mov      r9d, -1
        jmp      SHORT G_M39531_IG05
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M39531_IG13:        ; bbWeight=0, gcrefRegs=0042 {rcx rsi}, byrefRegs=0088 {rbx rdi}, byref, isz
+G_M39531_IG13:        ; bbWeight=0, gcrefRegs=0044 {rdx rsi}, byrefRegs=0088 {rbx rdi}, byref
+       ; gcrRegs +[rdx]
+       mov      gword ptr [rsp+0x30], rdx
+       ; GC ptr vars +{V12}
+       mov      rcx, rdx
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [rcx]
+       mov      rdx, qword ptr [rsp+0x48]
+       ; gcrRegs -[rdx]
+       mov      rax, gword ptr [rsp+0x30]
+       ; gcrRegs +[rax]
+       mov      rax, qword ptr [rax]
+       ; gcrRegs -[rax]
        mov      rax, qword ptr [rax+0x40]
+       ; GC ptr vars -{V12}
        call     [rax+0x28]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        mov      r9d, eax
-       jmp      SHORT G_M39531_IG05
-                       ;; size=15 bbWeight=0 PerfScore 0.00
+       jmp      G_M39531_IG05
+                       ;; size=36 bbWeight=0 PerfScore 0.00
 G_M39531_IG14:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0088 {rbx rdi}, byref, isz
        cmp      byte  ptr [rsi+0x34], 0
        je       SHORT G_M39531_IG15
@@ -217,7 +232,7 @@ G_M39531_IG16:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0088 {rbx rd
        jmp      G_M39531_IG08
                        ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 324, prolog size 25, PerfScore 58.69, instruction count 89, allocated bytes for code 324 (MethodHash=be2d6594) for method System.Text.Json.Utf8JsonWriter:WriteStringHelperEscapeValue(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort]):this (Tier1)
+; Total bytes of code 358, prolog size 30, PerfScore 60.98, instruction count 96, allocated bytes for code 358 (MethodHash=be2d6594) for method System.Text.Json.Utf8JsonWriter:WriteStringHelperEscapeValue(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort]):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -230,7 +245,7 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 8 * 8 + 8 = 72 = 0x48
+    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 10 * 8 + 8 = 88 = 0x58
     CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)

+34 (+10.49%) : 62480.dasm - System.Text.Json.Utf8JsonWriter:WriteStringHelperEscapeValue(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan1[ushort]):this (Tier1)

@@ -15,19 +15,19 @@
 ;* V03 loc0         [V03    ] (  0,  0   )     int  ->  zero-ref   
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V06 tmp2         [V06,T07] (  2,  4   )   byref  ->  rcx         single-def "Inlining Arg"
-;  V07 tmp3         [V07,T13] (  4,  2.00)     int  ->   r9         "Inline return value spill temp"
+;  V06 tmp2         [V06,T07] (  2,  4   )   byref  ->  rdx         single-def "Inlining Arg"
+;  V07 tmp3         [V07,T12] (  4,  2.00)     int  ->   r9         "Inline return value spill temp"
 ;* V08 tmp4         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V09 tmp5         [V09    ] (  2,  2.01)   byref  ->  [rsp+0x40]  must-init pinned "Inline stloc first use temp"
+;  V09 tmp5         [V09    ] (  2,  2.01)   byref  ->  [rsp+0x50]  must-init pinned "Inline stloc first use temp"
 ;* V10 tmp6         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V11 tmp7         [V11,T06] (  2,  4.03)     ref  ->  rcx         class-hnd single-def "Inlining Arg" <System.Text.Encodings.Web.JavaScriptEncoder>
-;  V12 tmp8         [V12,T03] (  8,  6.07)     ref  ->  rcx        
-;  V13 tmp9         [V13,T14] (  3,  2   )     int  ->   r9         "guarded devirt return temp"
+;  V11 tmp7         [V11,T06] (  2,  4.03)     ref  ->  rdx         class-hnd single-def "Inlining Arg" <System.Text.Encodings.Web.JavaScriptEncoder>
+;  V12 tmp8         [V12,T03] (  8,  6.07)     ref  ->  [rsp+0x30] 
+;  V13 tmp9         [V13,T13] (  3,  2   )     int  ->   r9         "guarded devirt return temp"
 ;* V14 tmp10        [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <System.Text.Encodings.Web.DefaultJavaScriptEncoder>
 ;* V15 tmp11        [V15    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
 ;* V16 tmp12        [V16    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
 ;* V17 tmp13        [V17    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V18 tmp14        [V18,T04] (  3,  6   )     ref  ->  rcx         class-hnd exact single-def "Inlining Arg" <System.Text.Encodings.Web.OptimizedInboxTextEncoder>
+;  V18 tmp14        [V18,T04] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Text.Encodings.Web.OptimizedInboxTextEncoder>
 ;* V19 tmp15        [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V20 tmp16        [V20    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp17        [V21    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -37,79 +37,84 @@
 ;* V25 tmp21        [V25    ] (  0,  0   )   byref  ->  zero-ref    "field V02._reference (fldOffset=0x0)" P-INDEP
 ;* V26 tmp22        [V26    ] (  0,  0   )     int  ->  zero-ref    "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V27 tmp23        [V27    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
-;  V28 tmp24        [V28,T15] (  3,  2   )     int  ->  rax         "field V05._length (fldOffset=0x8)" P-INDEP
-;  V29 tmp25        [V29,T09] (  3,  3.03)   byref  ->  rdx         single-def "field V08._reference (fldOffset=0x0)" P-INDEP
-;  V30 tmp26        [V30,T10] (  4,  3   )     int  ->   r8         "field V08._length (fldOffset=0x8)" P-INDEP
-;  V31 tmp27        [V31,T16] (  2,  2   )   byref  ->  rdx         single-def "field V19._reference (fldOffset=0x0)" P-INDEP
-;  V32 tmp28        [V32,T17] (  2,  2   )     int  ->   r8         "field V19._length (fldOffset=0x8)" P-INDEP
+;  V28 tmp24        [V28,T14] (  3,  2   )     int  ->  rax         "field V05._length (fldOffset=0x8)" P-INDEP
+;  V29 tmp25        [V29,T08] (  3,  3.03)   byref  ->  rcx         single-def "field V08._reference (fldOffset=0x0)" P-INDEP
+;  V30 tmp26        [V30,T09] (  4,  3   )     int  ->   r8         "field V08._length (fldOffset=0x8)" P-INDEP
+;  V31 tmp27        [V31,T15] (  2,  2   )   byref  ->  rcx         single-def "field V19._reference (fldOffset=0x0)" P-INDEP
+;  V32 tmp28        [V32,T16] (  2,  2   )     int  ->   r8         "field V19._length (fldOffset=0x8)" P-INDEP
 ;* V33 tmp29        [V33    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.ReadOnlySpan`1[ubyte]>
 ;* V34 tmp30        [V34    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.ReadOnlySpan`1[ushort]>
-;  V35 tmp31        [V35,T05] (  3,  4.03)    long  ->  rdx         "Cast away GC"
-;  V36 tmp32        [V36    ] (  3,  6   )  struct (16) [rsp+0x30]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;  V37 tmp33        [V37,T08] (  2,  4   )     ref  ->  rcx         single-def "argument with side effect"
-;  V38 cse0         [V38,T11] (  3,  3   )     int  ->   r8         "CSE - moderate"
-;  V39 cse1         [V39,T12] (  3,  2.99)     int  ->  rbp         "CSE - moderate"
+;  V35 tmp31        [V35,T05] (  3,  4.03)    long  ->  [rsp+0x48]  spill-single-def "Cast away GC"
+;  V36 tmp32        [V36    ] (  3,  6   )  struct (16) [rsp+0x38]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V37 cse0         [V37,T10] (  3,  3   )     int  ->   r8         "CSE - aggressive"
+;  V38 cse1         [V38,T11] (  3,  2.99)     int  ->  rbp         "CSE - moderate"
 ;
-; Lcl frame size = 72
+; Lcl frame size = 88
 
 G_M39531_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 72
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqa  xmmword ptr [rsp+0x30], xmm4
+       sub      rsp, 88
        xor      eax, eax
-       mov      qword ptr [rsp+0x40], rax
+       mov      qword ptr [rsp+0x38], rax
+       vxorps   xmm4, xmm4, xmm4
+       vmovdqa  xmmword ptr [rsp+0x40], xmm4
+       mov      qword ptr [rsp+0x50], rax
        mov      rsi, rcx
        ; gcrRegs +[rsi]
        mov      rdi, rdx
        ; byrRegs +[rdi]
        mov      rbx, r8
        ; byrRegs +[rbx]
-                       ;; size=34 bbWeight=1 PerfScore 8.58
+                       ;; size=39 bbWeight=1 PerfScore 9.58
 G_M39531_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0088 {rbx rdi}, byref
        mov      r8d, dword ptr [rbx+0x08]
        mov      eax, r8d
        cmp      eax, 0xD1FFAB1E
        jg       G_M39531_IG11
        cmp      byte  ptr [rsi], sil
-       lea      rcx, bword ptr [rsi+0x60]
-       ; byrRegs +[rcx]
-       mov      rdx, bword ptr [rbx]
+       lea      rdx, bword ptr [rsi+0x60]
        ; byrRegs +[rdx]
-       mov      rcx, gword ptr [rcx]
-       ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
+       mov      rcx, bword ptr [rbx]
+       ; byrRegs +[rcx]
+       mov      rdx, gword ptr [rdx]
+       ; gcrRegs +[rdx]
+       ; byrRegs -[rdx]
        test     r8d, r8d
        je       G_M39531_IG12
                        ;; size=40 bbWeight=1 PerfScore 12.25
-G_M39531_IG03:        ; bbWeight=1.01, gcrefRegs=0042 {rcx rsi}, byrefRegs=008C {rdx rbx rdi}, byref
-       mov      bword ptr [rsp+0x40], rdx
+G_M39531_IG03:        ; bbWeight=1.01, gcrefRegs=0044 {rdx rsi}, byrefRegs=008A {rcx rbx rdi}, byref
+       mov      bword ptr [rsp+0x50], rcx
+       mov      qword ptr [rsp+0x48], rcx
        mov      rax, 0xD1FFAB1E      ; const ptr
-       test     rcx, rcx
-       cmove    rcx, gword ptr [rax]
+       test     rdx, rdx
+       cmove    rdx, gword ptr [rax]
        mov      rax, 0xD1FFAB1E      ; System.Text.Encodings.Web.DefaultJavaScriptEncoder
-       cmp      qword ptr [rcx], rax
+       cmp      qword ptr [rdx], rax
        jne      G_M39531_IG13
-                       ;; size=41 bbWeight=1.01 PerfScore 8.87
-G_M39531_IG04:        ; bbWeight=1, gcrefRegs=0042 {rcx rsi}, byrefRegs=0088 {rbx rdi}, byref
-       ; byrRegs -[rdx]
-       mov      rcx, gword ptr [rcx+0x08]
-       cmp      byte  ptr [rcx], cl
-       mov      bword ptr [rsp+0x30], rdx
-       mov      dword ptr [rsp+0x38], r8d
-       lea      rdx, [rsp+0x30]
+                       ;; size=46 bbWeight=1.01 PerfScore 9.89
+G_M39531_IG04:        ; bbWeight=1, gcrefRegs=0044 {rdx rsi}, byrefRegs=0088 {rbx rdi}, byref
+       ; byrRegs -[rcx]
+       mov      rax, gword ptr [rdx+0x08]
+       ; gcrRegs +[rax]
+       cmp      byte  ptr [rax], al
+       mov      bword ptr [rsp+0x38], rcx
+       mov      dword ptr [rsp+0x40], r8d
+       lea      rdx, [rsp+0x38]
+       ; gcrRegs -[rdx]
+       mov      rcx, rax
+       ; gcrRegs +[rcx]
        call     [<unknown method>]
-       ; gcrRegs -[rcx]
+       ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
        mov      r9d, eax
-                       ;; size=30 bbWeight=1 PerfScore 10.75
+                       ;; size=33 bbWeight=1 PerfScore 11.00
 G_M39531_IG05:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0088 {rbx rdi}, byref, isz
        xor      rcx, rcx
        ; byrRegs +[rcx]
-       mov      bword ptr [rsp+0x40], rcx
+       mov      bword ptr [rsp+0x50], rcx
        cmp      r9d, -1
        jne      SHORT G_M39531_IG10
                        ;; size=13 bbWeight=1 PerfScore 2.50
@@ -138,7 +143,7 @@ G_M39531_IG08:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
        mov      byte  ptr [rsi+0x36], 7
                        ;; size=11 bbWeight=1 PerfScore 4.00
 G_M39531_IG09:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 72
+       add      rsp, 88
        pop      rbx
        pop      rbp
        pop      rsi
@@ -172,16 +177,26 @@ G_M39531_IG12:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0088 {rbx rd
        mov      r9d, -1
        jmp      SHORT G_M39531_IG05
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M39531_IG13:        ; bbWeight=0, gcrefRegs=0042 {rcx rsi}, byrefRegs=0088 {rbx rdi}, byref, isz
+G_M39531_IG13:        ; bbWeight=0, gcrefRegs=0044 {rdx rsi}, byrefRegs=0088 {rbx rdi}, byref
+       ; gcrRegs +[rdx]
+       mov      gword ptr [rsp+0x30], rdx
+       ; GC ptr vars +{V12}
+       mov      rcx, rdx
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [rcx]
+       mov      rdx, qword ptr [rsp+0x48]
+       ; gcrRegs -[rdx]
+       mov      rax, gword ptr [rsp+0x30]
+       ; gcrRegs +[rax]
+       mov      rax, qword ptr [rax]
+       ; gcrRegs -[rax]
        mov      rax, qword ptr [rax+0x40]
+       ; GC ptr vars -{V12}
        call     [rax+0x28]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        mov      r9d, eax
-       jmp      SHORT G_M39531_IG05
-                       ;; size=15 bbWeight=0 PerfScore 0.00
+       jmp      G_M39531_IG05
+                       ;; size=36 bbWeight=0 PerfScore 0.00
 G_M39531_IG14:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0088 {rbx rdi}, byref, isz
        cmp      byte  ptr [rsi+0x34], 0
        je       SHORT G_M39531_IG15
@@ -217,7 +232,7 @@ G_M39531_IG16:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0088 {rbx rd
        jmp      G_M39531_IG08
                        ;; size=20 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 324, prolog size 25, PerfScore 58.44, instruction count 89, allocated bytes for code 324 (MethodHash=be2d6594) for method System.Text.Json.Utf8JsonWriter:WriteStringHelperEscapeValue(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort]):this (Tier1)
+; Total bytes of code 358, prolog size 30, PerfScore 60.71, instruction count 96, allocated bytes for code 358 (MethodHash=be2d6594) for method System.Text.Json.Utf8JsonWriter:WriteStringHelperEscapeValue(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort]):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -230,7 +245,7 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 8 * 8 + 8 = 72 = 0x48
+    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 10 * 8 + 8 = 88 = 0x58
     CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)

+34 (+10.66%) : 60268.dasm - System.Text.Json.Utf8JsonWriter:WriteStringHelperEscapeValue(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan1[ushort]):this (Tier1)

@@ -15,19 +15,19 @@
 ;* V03 loc0         [V03    ] (  0,  0   )     int  ->  zero-ref   
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V06 tmp2         [V06,T07] (  2,  4   )   byref  ->  rcx         single-def "Inlining Arg"
-;  V07 tmp3         [V07,T13] (  4,  2.00)     int  ->   r9         "Inline return value spill temp"
+;  V06 tmp2         [V06,T07] (  2,  4   )   byref  ->  rdx         single-def "Inlining Arg"
+;  V07 tmp3         [V07,T12] (  4,  2.00)     int  ->   r9         "Inline return value spill temp"
 ;* V08 tmp4         [V08    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V09 tmp5         [V09    ] (  2,  2.00)   byref  ->  [rsp+0x40]  must-init pinned "Inline stloc first use temp"
+;  V09 tmp5         [V09    ] (  2,  2.00)   byref  ->  [rsp+0x50]  must-init pinned "Inline stloc first use temp"
 ;* V10 tmp6         [V10    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V11 tmp7         [V11,T06] (  2,  4.01)     ref  ->  rcx         class-hnd single-def "Inlining Arg" <System.Text.Encodings.Web.JavaScriptEncoder>
-;  V12 tmp8         [V12,T03] (  8,  6.02)     ref  ->  rcx        
-;  V13 tmp9         [V13,T14] (  3,  2   )     int  ->   r9         "guarded devirt return temp"
+;  V11 tmp7         [V11,T06] (  2,  4.01)     ref  ->  rdx         class-hnd single-def "Inlining Arg" <System.Text.Encodings.Web.JavaScriptEncoder>
+;  V12 tmp8         [V12,T03] (  8,  6.02)     ref  ->  [rsp+0x30] 
+;  V13 tmp9         [V13,T13] (  3,  2   )     int  ->   r9         "guarded devirt return temp"
 ;* V14 tmp10        [V14    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <System.Text.Encodings.Web.DefaultJavaScriptEncoder>
 ;* V15 tmp11        [V15    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
 ;* V16 tmp12        [V16    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
 ;* V17 tmp13        [V17    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V18 tmp14        [V18,T04] (  3,  6   )     ref  ->  rcx         class-hnd exact single-def "Inlining Arg" <System.Text.Encodings.Web.OptimizedInboxTextEncoder>
+;  V18 tmp14        [V18,T04] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Text.Encodings.Web.OptimizedInboxTextEncoder>
 ;* V19 tmp15        [V19    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V20 tmp16        [V20    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp17        [V21    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -37,79 +37,84 @@
 ;* V25 tmp21        [V25    ] (  0,  0   )   byref  ->  zero-ref    "field V02._reference (fldOffset=0x0)" P-INDEP
 ;* V26 tmp22        [V26    ] (  0,  0   )     int  ->  zero-ref    "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V27 tmp23        [V27    ] (  0,  0   )   byref  ->  zero-ref    "field V05._reference (fldOffset=0x0)" P-INDEP
-;  V28 tmp24        [V28,T15] (  3,  2   )     int  ->  rax         "field V05._length (fldOffset=0x8)" P-INDEP
-;  V29 tmp25        [V29,T10] (  3,  3.01)   byref  ->  rdx         single-def "field V08._reference (fldOffset=0x0)" P-INDEP
-;  V30 tmp26        [V30,T11] (  4,  3   )     int  ->   r8         "field V08._length (fldOffset=0x8)" P-INDEP
-;  V31 tmp27        [V31,T16] (  2,  2   )   byref  ->  rdx         single-def "field V19._reference (fldOffset=0x0)" P-INDEP
-;  V32 tmp28        [V32,T17] (  2,  2   )     int  ->   r8         "field V19._length (fldOffset=0x8)" P-INDEP
+;  V28 tmp24        [V28,T14] (  3,  2   )     int  ->  rax         "field V05._length (fldOffset=0x8)" P-INDEP
+;  V29 tmp25        [V29,T09] (  3,  3.01)   byref  ->  rcx         single-def "field V08._reference (fldOffset=0x0)" P-INDEP
+;  V30 tmp26        [V30,T10] (  4,  3   )     int  ->   r8         "field V08._length (fldOffset=0x8)" P-INDEP
+;  V31 tmp27        [V31,T15] (  2,  2   )   byref  ->  rcx         single-def "field V19._reference (fldOffset=0x0)" P-INDEP
+;  V32 tmp28        [V32,T16] (  2,  2   )     int  ->   r8         "field V19._length (fldOffset=0x8)" P-INDEP
 ;* V33 tmp29        [V33    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.ReadOnlySpan`1[ubyte]>
 ;* V34 tmp30        [V34    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.ReadOnlySpan`1[ushort]>
-;  V35 tmp31        [V35,T05] (  3,  4.01)    long  ->  rdx         "Cast away GC"
-;  V36 tmp32        [V36    ] (  3,  6   )  struct (16) [rsp+0x30]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;  V37 tmp33        [V37,T08] (  2,  4   )     ref  ->  rcx         single-def "argument with side effect"
-;  V38 cse0         [V38,T09] (  3,  3.07)     int  ->  rbp         "CSE - aggressive"
-;  V39 cse1         [V39,T12] (  3,  3   )     int  ->   r8         "CSE - moderate"
+;  V35 tmp31        [V35,T05] (  3,  4.01)    long  ->  [rsp+0x48]  spill-single-def "Cast away GC"
+;  V36 tmp32        [V36    ] (  3,  6   )  struct (16) [rsp+0x38]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V37 cse0         [V37,T08] (  3,  3.07)     int  ->  rbp         "CSE - aggressive"
+;  V38 cse1         [V38,T11] (  3,  3   )     int  ->   r8         "CSE - aggressive"
 ;
-; Lcl frame size = 72
+; Lcl frame size = 88
 
 G_M39531_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 72
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqa  xmmword ptr [rsp+0x30], xmm4
+       sub      rsp, 88
        xor      eax, eax
-       mov      qword ptr [rsp+0x40], rax
+       mov      qword ptr [rsp+0x38], rax
+       vxorps   xmm4, xmm4, xmm4
+       vmovdqa  xmmword ptr [rsp+0x40], xmm4
+       mov      qword ptr [rsp+0x50], rax
        mov      rsi, rcx
        ; gcrRegs +[rsi]
        mov      rdi, rdx
        ; byrRegs +[rdi]
        mov      rbx, r8
        ; byrRegs +[rbx]
-                       ;; size=34 bbWeight=1 PerfScore 8.58
+                       ;; size=39 bbWeight=1 PerfScore 9.58
 G_M39531_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0088 {rbx rdi}, byref
        mov      r8d, dword ptr [rbx+0x08]
        mov      eax, r8d
        cmp      eax, 0xD1FFAB1E
        jg       G_M39531_IG12
        cmp      byte  ptr [rsi], sil
-       lea      rcx, bword ptr [rsi+0x60]
-       ; byrRegs +[rcx]
-       mov      rdx, bword ptr [rbx]
+       lea      rdx, bword ptr [rsi+0x60]
        ; byrRegs +[rdx]
-       mov      rcx, gword ptr [rcx]
-       ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
+       mov      rcx, bword ptr [rbx]
+       ; byrRegs +[rcx]
+       mov      rdx, gword ptr [rdx]
+       ; gcrRegs +[rdx]
+       ; byrRegs -[rdx]
        test     r8d, r8d
        je       G_M39531_IG13
                        ;; size=40 bbWeight=1 PerfScore 12.25
-G_M39531_IG03:        ; bbWeight=1.00, gcrefRegs=0042 {rcx rsi}, byrefRegs=008C {rdx rbx rdi}, byref
-       mov      bword ptr [rsp+0x40], rdx
+G_M39531_IG03:        ; bbWeight=1.00, gcrefRegs=0044 {rdx rsi}, byrefRegs=008A {rcx rbx rdi}, byref
+       mov      bword ptr [rsp+0x50], rcx
+       mov      qword ptr [rsp+0x48], rcx
        mov      rax, 0xD1FFAB1E      ; const ptr
-       test     rcx, rcx
-       cmove    rcx, gword ptr [rax]
+       test     rdx, rdx
+       cmove    rdx, gword ptr [rax]
        mov      rax, 0xD1FFAB1E      ; System.Text.Encodings.Web.DefaultJavaScriptEncoder
-       cmp      qword ptr [rcx], rax
+       cmp      qword ptr [rdx], rax
        jne      G_M39531_IG14
-                       ;; size=41 bbWeight=1.00 PerfScore 8.79
-G_M39531_IG04:        ; bbWeight=1, gcrefRegs=0042 {rcx rsi}, byrefRegs=0088 {rbx rdi}, byref
-       ; byrRegs -[rdx]
-       mov      rcx, gword ptr [rcx+0x08]
-       cmp      byte  ptr [rcx], cl
-       mov      bword ptr [rsp+0x30], rdx
-       mov      dword ptr [rsp+0x38], r8d
-       lea      rdx, [rsp+0x30]
+                       ;; size=46 bbWeight=1.00 PerfScore 9.80
+G_M39531_IG04:        ; bbWeight=1, gcrefRegs=0044 {rdx rsi}, byrefRegs=0088 {rbx rdi}, byref
+       ; byrRegs -[rcx]
+       mov      rax, gword ptr [rdx+0x08]
+       ; gcrRegs +[rax]
+       cmp      byte  ptr [rax], al
+       mov      bword ptr [rsp+0x38], rcx
+       mov      dword ptr [rsp+0x40], r8d
+       lea      rdx, [rsp+0x38]
+       ; gcrRegs -[rdx]
+       mov      rcx, rax
+       ; gcrRegs +[rcx]
        call     [<unknown method>]
-       ; gcrRegs -[rcx]
+       ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
        mov      r9d, eax
-                       ;; size=30 bbWeight=1 PerfScore 10.75
+                       ;; size=33 bbWeight=1 PerfScore 11.00
 G_M39531_IG05:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0088 {rbx rdi}, byref, isz
        xor      rcx, rcx
        ; byrRegs +[rcx]
-       mov      bword ptr [rsp+0x40], rcx
+       mov      bword ptr [rsp+0x50], rcx
        cmp      r9d, -1
        jne      SHORT G_M39531_IG11
                        ;; size=13 bbWeight=1 PerfScore 2.50
@@ -138,7 +143,7 @@ G_M39531_IG08:        ; bbWeight=1.02, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
        mov      byte  ptr [rsi+0x36], 7
                        ;; size=11 bbWeight=1.02 PerfScore 4.10
 G_M39531_IG09:        ; bbWeight=1.02, epilog, nogc, extend
-       add      rsp, 72
+       add      rsp, 88
        pop      rbx
        pop      rbp
        pop      rsi
@@ -179,16 +184,26 @@ G_M39531_IG13:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0088 {rbx rd
        mov      r9d, -1
        jmp      SHORT G_M39531_IG05
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M39531_IG14:        ; bbWeight=0, gcrefRegs=0042 {rcx rsi}, byrefRegs=0088 {rbx rdi}, byref, isz
+G_M39531_IG14:        ; bbWeight=0, gcrefRegs=0044 {rdx rsi}, byrefRegs=0088 {rbx rdi}, byref
+       ; gcrRegs +[rdx]
+       mov      gword ptr [rsp+0x30], rdx
+       ; GC ptr vars +{V12}
+       mov      rcx, rdx
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [rcx]
+       mov      rdx, qword ptr [rsp+0x48]
+       ; gcrRegs -[rdx]
+       mov      rax, gword ptr [rsp+0x30]
+       ; gcrRegs +[rax]
+       mov      rax, qword ptr [rax]
+       ; gcrRegs -[rax]
        mov      rax, qword ptr [rax+0x40]
+       ; GC ptr vars -{V12}
        call     [rax+0x28]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        mov      r9d, eax
-       jmp      SHORT G_M39531_IG05
-                       ;; size=15 bbWeight=0 PerfScore 0.00
+       jmp      G_M39531_IG05
+                       ;; size=36 bbWeight=0 PerfScore 0.00
 G_M39531_IG15:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0088 {rbx rdi}, byref, isz
        mov      rcx, rsi
        ; gcrRegs +[rcx]
@@ -215,7 +230,7 @@ G_M39531_IG16:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byr
        int3     
                        ;; size=31 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 319, prolog size 25, PerfScore 59.16, instruction count 90, allocated bytes for code 319 (MethodHash=be2d6594) for method System.Text.Json.Utf8JsonWriter:WriteStringHelperEscapeValue(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort]):this (Tier1)
+; Total bytes of code 353, prolog size 30, PerfScore 61.42, instruction count 97, allocated bytes for code 353 (MethodHash=be2d6594) for method System.Text.Json.Utf8JsonWriter:WriteStringHelperEscapeValue(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort]):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -228,7 +243,7 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 8 * 8 + 8 = 72 = 0x48
+    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 10 * 8 + 8 = 88 = 0x58
     CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)

benchmarks.run.windows.x64.checked.mch

-15 (-14.15%) : 6536.dasm - System.Tests.Perf_Int128:.ctor():this (FullOpts)

@@ -9,60 +9,54 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  3,  3   )     ref  ->  rbx         this class-hnd single-def <System.Tests.Perf_Int128>
-;  V01 loc0         [V01    ] (  2,  2   )  struct (16) [rsp+0x38]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Int128>
+;  V01 loc0         [V01    ] (  2,  2   )  struct (16) [rsp+0x30]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Int128>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03    ] (  2,  2   )    long  ->  [rsp+0x38]  do-not-enreg[X] addr-exposed "field V01._lower (fldOffset=0x0)" P-DEP
-;  V04 tmp2         [V04    ] (  2,  2   )    long  ->  [rsp+0x40]  do-not-enreg[X] addr-exposed "field V01._upper (fldOffset=0x8)" P-DEP
-;  V05 tmp3         [V05    ] (  2,  4   )  struct (16) [rsp+0x28]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Int128>
+;  V03 tmp1         [V03    ] (  2,  2   )    long  ->  [rsp+0x30]  do-not-enreg[X] addr-exposed "field V01._lower (fldOffset=0x0)" P-DEP
+;  V04 tmp2         [V04    ] (  2,  2   )    long  ->  [rsp+0x38]  do-not-enreg[X] addr-exposed "field V01._upper (fldOffset=0x8)" P-DEP
+;  V05 tmp3         [V05    ] (  2,  4   )  struct (16) [rsp+0x20]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Int128>
 ;  V06 tmp4         [V06,T01] (  2,  4   )    long  ->  rdx         "argument with side effect"
-;  TEMP_01                                   byref  ->  [rsp+0x48]
 ;
-; Lcl frame size = 80
+; Lcl frame size = 64
 
 G_M8463_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbx
-       sub      rsp, 80
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqu  xmmword ptr [rsp+0x38], xmm4
+       sub      rsp, 64
        xor      eax, eax
-       mov      qword ptr [rsp+0x48], rax
+       mov      qword ptr [rsp+0x30], rax
+       mov      qword ptr [rsp+0x38], rax
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-                       ;; size=25 bbWeight=1 PerfScore 5.08
+                       ;; size=20 bbWeight=1 PerfScore 3.75
 G_M8463_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       lea      rcx, [rsp+0x38]
+       lea      rcx, [rsp+0x30]
        call     [System.Int128:get_MinValue():System.Int128]
        ; gcr arg pop 0
-       lea      rcx, bword ptr [rbx+0x08]
-       ; byrRegs +[rcx]
-       mov      bword ptr [rsp+0x48], rcx
-       vmovups  xmm0, xmmword ptr [rsp+0x38]
-       vmovups  xmmword ptr [rsp+0x28], xmm0
-       lea      rcx, [rsp+0x28]
-       ; byrRegs -[rcx]
+       vmovups  xmm0, xmmword ptr [rsp+0x30]
+       vmovups  xmmword ptr [rsp+0x20], xmm0
+       lea      rcx, [rsp+0x20]
        call     [System.Number:Int128ToDecStr(System.Int128):System.String]
-       ; gcrRegs -[rbx] +[rax]
+       ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      edx, dword ptr [rax+0x08]
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWARR_1_VC
        ; gcr arg pop 0
-       mov      rcx, bword ptr [rsp+0x48]
+       lea      rcx, bword ptr [rbx+0x08]
        ; byrRegs +[rcx]
        mov      rdx, rax
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rax rdx]
+       ; gcrRegs -[rax rdx rbx]
        ; byrRegs -[rcx]
        nop      
-                       ;; size=75 bbWeight=1 PerfScore 18.25
+                       ;; size=65 bbWeight=1 PerfScore 16.25
 G_M8463_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 80
+       add      rsp, 64
        pop      rbx
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 106, prolog size 22, PerfScore 25.08, instruction count 25, allocated bytes for code 106 (MethodHash=76b8def0) for method System.Tests.Perf_Int128:.ctor():this (FullOpts)
+; Total bytes of code 91, prolog size 17, PerfScore 21.75, instruction count 22, allocated bytes for code 91 (MethodHash=76b8def0) for method System.Tests.Perf_Int128:.ctor():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -75,5 +69,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)

-15 (-11.81%) : 27939.dasm - Benchstone.MDBenchI.MDPuzzle:Test():ubyte:this (FullOpts)

@@ -11,9 +11,8 @@
 ;  V01 loc0         [V01,T01] (  4, 10   )   ubyte  ->  rsi        
 ;  V02 loc1         [V02,T00] (  4, 13   )     int  ->  rdi        
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04    ] (  3,  3   )  struct ( 8) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "NewObjArrayArgs"
+;  V04 tmp1         [V04    ] (  3,  3   )  struct ( 8) [rsp+0x28]  do-not-enreg[XSF] must-init addr-exposed "NewObjArrayArgs"
 ;  V05 tmp2         [V05,T03] (  2,  4   )    long  ->   r8         "argument with side effect"
-;  TEMP_01                                   byref  ->  [rsp+0x28]
 ;
 ; Lcl frame size = 48
 
@@ -23,25 +22,20 @@ G_M10312_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rbx
        sub      rsp, 48
        xor      eax, eax
-       mov      qword ptr [rsp+0x20], rax
        mov      qword ptr [rsp+0x28], rax
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-                       ;; size=22 bbWeight=1 PerfScore 5.75
+                       ;; size=17 bbWeight=1 PerfScore 4.75
 G_M10312_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       lea      rcx, bword ptr [rbx+0x28]
-       ; byrRegs +[rcx]
-       mov      bword ptr [rsp+0x28], rcx
-       mov      dword ptr [rsp+0x20], 13
-       mov      dword ptr [rsp+0x24], 512
-       lea      r8, [rsp+0x20]
+       mov      dword ptr [rsp+0x28], 13
+       mov      dword ptr [rsp+0x2C], 512
+       lea      r8, [rsp+0x28]
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
-       ; byrRegs -[rcx]
        mov      edx, 2
        call     CORINFO_HELP_NEW_MDARR
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      rcx, bword ptr [rsp+0x28]
+       lea      rcx, bword ptr [rbx+0x28]
        ; byrRegs +[rcx]
        mov      rdx, rax
        ; gcrRegs +[rdx]
@@ -50,7 +44,7 @@ G_M10312_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; byrRegs -[rcx]
        mov      esi, 1
        xor      edi, edi
-                       ;; size=70 bbWeight=1 PerfScore 8.25
+                       ;; size=60 bbWeight=1 PerfScore 6.25
 G_M10312_IG03:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -75,7 +69,7 @@ G_M10312_IG05:        ; bbWeight=1, epilog, nogc, extend
        ret      
                        ;; size=8 bbWeight=1 PerfScore 2.75
 
-; Total bytes of code 127, prolog size 19, PerfScore 38.00, instruction count 34, allocated bytes for code 127 (MethodHash=56f6d7b7) for method Benchstone.MDBenchI.MDPuzzle:Test():ubyte:this (FullOpts)
+; Total bytes of code 112, prolog size 14, PerfScore 35.00, instruction count 31, allocated bytes for code 112 (MethodHash=56f6d7b7) for method Benchstone.MDBenchI.MDPuzzle:Test():ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-30 (-10.17%) : 1633.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo:Configure():this (FullOpts)

@@ -10,27 +10,22 @@
 ;
 ;  V00 this         [V00,T00] ( 25, 14.50)     ref  ->  rbx         this class-hnd single-def <System.Text.Json.Serialization.Metadata.JsonPropertyInfo>
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (48) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T03] (  2,  2   )     ref  ->  [rsp+0x38]  class-hnd exact spill-single-def "impAppendStmt" <System.Text.Json.JsonSerializerOptions>
+;  V02 tmp1         [V02,T03] (  2,  2   )     ref  ->  rcx         class-hnd exact single-def "impAppendStmt" <System.Text.Json.JsonSerializerOptions>
 ;* V03 tmp2         [V03    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Nullable`1[ubyte]>
 ;  V04 tmp3         [V04,T04] (  2,  2   )     ref  ->  rdx         class-hnd single-def "impAppendStmt" <System.Type>
 ;  V05 tmp4         [V05,T01] (  3,  3   )     ref  ->  rcx         class-hnd single-def "Inlining Arg" <System.Text.Json.Serialization.Metadata.JsonTypeInfo>
-;* V06 tmp5         [V06,T07] (  0,  0   )   ubyte  ->  zero-ref    "field V03.hasValue (fldOffset=0x0)" P-INDEP
-;* V07 tmp6         [V07,T08] (  0,  0   )   ubyte  ->  zero-ref    "field V03.value (fldOffset=0x1)" P-INDEP
-;  V08 tmp7         [V08,T02] (  3,  3   )  struct ( 8) [rsp+0x40]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[ubyte]>
-;  V09 tmp8         [V09,T05] (  2,  2   )     ref  ->   r9         single-def "argument with side effect"
-;  V10 tmp9         [V10,T06] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
-;  TEMP_01                                   byref  ->  [rsp+0x48]
+;* V06 tmp5         [V06,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V03.hasValue (fldOffset=0x0)" P-INDEP
+;* V07 tmp6         [V07,T06] (  0,  0   )   ubyte  ->  zero-ref    "field V03.value (fldOffset=0x1)" P-INDEP
+;  V08 tmp7         [V08,T02] (  3,  3   )  struct ( 8) [rsp+0x38]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[ubyte]>
 ;
-; Lcl frame size = 80
+; Lcl frame size = 64
 
 G_M48713_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbx
-       sub      rsp, 80
-       xor      eax, eax
-       mov      qword ptr [rsp+0x48], rax
+       sub      rsp, 64
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-                       ;; size=15 bbWeight=1 PerfScore 2.75
+                       ;; size=8 bbWeight=1 PerfScore 1.50
 G_M48713_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -49,42 +44,29 @@ G_M48713_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        jne      SHORT G_M48713_IG06
        mov      rcx, gword ptr [rbx+0x68]
        ; gcrRegs +[rcx]
-       mov      gword ptr [rsp+0x38], rcx
-       ; GC ptr vars +{V02}
        mov      rdx, gword ptr [rbx+0x48]
        ; gcrRegs +[rdx]
-       lea      rcx, bword ptr [rbx+0x78]
-       ; gcrRegs -[rcx]
-       ; byrRegs +[rcx]
-       mov      bword ptr [rsp+0x48], rcx
-       mov      r9, gword ptr [rsp+0x38]
-       ; gcrRegs +[r9]
-       mov      byte  ptr [rsp+0x40], 1
-       mov      byte  ptr [rsp+0x41], 1
-       xor      r8d, r8d
-       mov      dword ptr [rsp+0x20], r8d
-                       ;; size=52 bbWeight=0.50 PerfScore 7.38
-G_M48713_IG05:        ; bbWeight=0.50, gcrefRegs=020C {rdx rbx r9}, byrefRegs=0000 {}, byref
-       ; byrRegs -[rcx]
-       ; GC ptr vars -{V02}
-       mov      dword ptr [rsp+0x28], r8d
-       mov      rcx, r9
-       ; gcrRegs +[rcx]
-       movzx    r9, word  ptr [rsp+0x40]
-       ; gcrRegs -[r9]
+       mov      byte  ptr [rsp+0x38], 1
+       mov      byte  ptr [rsp+0x39], 1
+       xor      r9d, r9d
+       mov      dword ptr [rsp+0x20], r9d
+                       ;; size=33 bbWeight=0.50 PerfScore 5.62
+G_M48713_IG05:        ; bbWeight=0.50, gcrefRegs=000E {rcx rdx rbx}, byrefRegs=0000 {}, byref
+       mov      dword ptr [rsp+0x28], r9d
+       movzx    r9, word  ptr [rsp+0x38]
        mov      r8d, 1
        cmp      dword ptr [rcx], ecx
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx] +[rax]
        ; gcr arg pop 0
-       mov      rcx, bword ptr [rsp+0x48]
+       lea      rcx, bword ptr [rbx+0x78]
        ; byrRegs +[rcx]
        mov      rdx, rax
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rax rdx]
        ; byrRegs -[rcx]
-                       ;; size=41 bbWeight=0.50 PerfScore 5.38
+                       ;; size=37 bbWeight=0.50 PerfScore 5.00
 G_M48713_IG06:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      rcx, gword ptr [rbx+0x78]
        ; gcrRegs +[rcx]
@@ -158,7 +140,7 @@ G_M48713_IG13:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        mov      byte  ptr [rbx+0x95], 1
                        ;; size=7 bbWeight=1 PerfScore 1.00
 G_M48713_IG14:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 80
+       add      rsp, 64
        pop      rbx
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
@@ -180,7 +162,7 @@ G_M48713_IG16:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        int3     
                        ;; size=10 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 295, prolog size 12, PerfScore 56.12, instruction count 72, allocated bytes for code 295 (MethodHash=7cb841b6) for method System.Text.Json.Serialization.Metadata.JsonPropertyInfo:Configure():this (FullOpts)
+; Total bytes of code 265, prolog size 5, PerfScore 52.75, instruction count 65, allocated bytes for code 265 (MethodHash=7cb841b6) for method System.Text.Json.Serialization.Metadata.JsonPropertyInfo:Configure():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -193,5 +175,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)

+25 (+5.52%) : 26652.dasm - V8.Crypto.BigInteger:rShiftTo(int,V8.Crypto.BigInteger):this (FullOpts)

@@ -8,40 +8,35 @@
 ; 0 inlinees with PGO data; 5 single block inlinees; 5 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T12] ( 10, 11   )     ref  ->  rbx         this class-hnd single-def <V8.Crypto.BigInteger>
-;  V01 arg1         [V01,T17] (  4,  3.50)     int  ->  rcx         single-def
-;  V02 arg2         [V02,T16] (  7,  5.50)     ref  ->  rsi         class-hnd single-def <V8.Crypto.BigInteger>
+;  V00 this         [V00,T10] ( 10, 11   )     ref  ->  rbx         this class-hnd single-def <V8.Crypto.BigInteger>
+;  V01 arg1         [V01,T15] (  4,  3.50)     int  ->   r8         single-def
+;  V02 arg2         [V02,T14] (  7,  5.50)     ref  ->  rsi         class-hnd single-def <V8.Crypto.BigInteger>
 ;  V03 loc0         [V03,T06] (  7, 18   )     ref  ->  rdi         class-hnd single-def <V8.Crypto.ListX`1[int]>
-;  V04 loc1         [V04,T01] (  8, 18.50)     ref  ->  rbp         class-hnd single-def <V8.Crypto.ListX`1[int]>
-;  V05 loc2         [V05,T13] ( 10, 13   )     int  ->  r15         single-def
-;  V06 loc3         [V06,T26] (  4,  2   )     int  ->  r13         single-def
-;  V07 loc4         [V07,T19] (  3,  5   )     int  ->  r14         single-def
-;  V08 loc5         [V08,T20] (  3,  5   )     int  ->  [rsp+0x24]  spill-single-def
-;  V09 loc6         [V09,T00] ( 13, 45   )     int  ->  [rsp+0x20] 
+;  V04 loc1         [V04,T05] (  9, 19   )     ref  ->  rbp         class-hnd single-def <V8.Crypto.ListX`1[int]>
+;  V05 loc2         [V05,T13] (  9,  9   )     int  ->  r15         single-def
+;  V06 loc3         [V06,T22] (  4,  2   )     int  ->  [rsp+0x34]  spill-single-def
+;  V07 loc4         [V07,T17] (  3,  5   )     int  ->  r14         single-def
+;  V08 loc5         [V08,T18] (  3,  5   )     int  ->  [rsp+0x30]  spill-single-def
+;  V09 loc6         [V09,T00] ( 11, 37   )     int  ->  [rsp+0x2C] 
 ;* V10 loc7         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <V8.Crypto.ListX`1[int]>
-;  V11 loc8         [V11,T05] (  8, 21.50)     int  ->  rdx        
+;  V11 loc8         [V11,T04] ( 10, 22.50)     int  ->  rdx        
 ;  V12 OutArgs      [V12    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V13 tmp1         [V13,T07] (  2, 16   )     int  ->   r8         "impAppendStmt"
-;  V14 tmp2         [V14,T23] (  3,  3   )     ref  ->  rcx         single-def "arr expr"
-;* V15 tmp3         [V15,T29] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V16 tmp4         [V16,T27] (  2,  2   )     int  ->   r8         "argument with side effect"
+;  V14 tmp2         [V14,T20] (  3,  3   )     ref  ->   r8         single-def "arr expr"
+;  V15 tmp3         [V15,T23] (  2,  2   )     int  ->   r8         "argument with side effect"
+;  V16 tmp4         [V16,T01] (  3, 24   )     ref  ->   r8         "arr expr"
 ;  V17 tmp5         [V17,T02] (  3, 24   )     ref  ->  rcx         "arr expr"
-;  V18 tmp6         [V18,T03] (  3, 24   )     ref  ->  rcx         "arr expr"
-;* V19 tmp7         [V19,T14] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V20 tmp8         [V20,T08] (  2, 16   )     int  ->  rdx         "argument with side effect"
-;  V21 tmp9         [V21,T09] (  2, 16   )     int  ->   r8         "argument with side effect"
-;  V22 tmp10        [V22,T04] (  3, 24   )     ref  ->  rcx         "arr expr"
-;* V23 tmp11        [V23,T15] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V24 tmp12        [V24,T10] (  2, 16   )     int  ->  rdx         "argument with side effect"
-;  V25 tmp13        [V25,T11] (  2, 16   )     int  ->   r8         "argument with side effect"
-;  V26 tmp14        [V26,T24] (  3,  3   )     ref  ->   r8         single-def "arr expr"
-;  V27 tmp15        [V27,T25] (  3,  3   )     ref  ->  rcx         single-def "argument with side effect"
-;  V28 tmp16        [V28,T21] (  4,  4   )     int  ->  rdx         "argument with side effect"
-;  V29 tmp17        [V29,T28] (  2,  2   )     int  ->   r8         "argument with side effect"
-;  V30 cse0         [V30,T22] (  4,  3   )     int  ->  r14         "CSE - moderate"
-;  V31 cse1         [V31,T18] (  4,  5.50)     int  ->  r12         "CSE - moderate"
+;  V18 tmp6         [V18,T08] (  2, 16   )     int  ->   r8         "argument with side effect"
+;  V19 tmp7         [V19,T03] (  3, 24   )     ref  ->   r8         "arr expr"
+;  V20 tmp8         [V20,T09] (  2, 16   )     int  ->   r8         "argument with side effect"
+;  V21 tmp9         [V21,T21] (  3,  3   )     ref  ->   r8         single-def "arr expr"
+;  V22 tmp10        [V22,T24] (  2,  2   )     int  ->   r8         "argument with side effect"
+;  V23 cse0         [V23,T19] (  4,  3   )     int  ->  r14         "CSE - moderate"
+;  V24 cse1         [V24,T16] (  4,  5.50)     int  ->  r12         "CSE - moderate"
+;  V25 cse2         [V25,T11] (  3, 12   )     int  ->  [rsp+0x28]  spill-single-def "CSE - aggressive"
+;  V26 cse3         [V26,T12] (  3, 12   )    long  ->  [rsp+0x20]  spill-single-def "CSE - aggressive"
 ;
-; Lcl frame size = 40
+; Lcl frame size = 56
 
 G_M7403_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
@@ -52,13 +47,13 @@ G_M7403_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 40
+       sub      rsp, 56
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-       mov      ecx, edx
        mov      rsi, r8
        ; gcrRegs +[rsi]
-                       ;; size=24 bbWeight=1 PerfScore 9.00
+       mov      r8d, edx
+                       ;; size=25 bbWeight=1 PerfScore 9.00
 G_M7403_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        mov      rdi, gword ptr [rbx+0x08]
        ; gcrRegs +[rdi]
@@ -67,20 +62,20 @@ G_M7403_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        mov      eax, dword ptr [rbx+0x14]
        mov      dword ptr [rsi+0x14], eax
        mov      r14d, dword ptr [(reloc)]      ; static handle
-       mov      eax, ecx
+       mov      eax, r8d
        cdq      
        idiv     edx:eax, r14d
        mov      r15d, eax
        cmp      r15d, dword ptr [rbx+0x10]
        jl       SHORT G_M7403_IG05
-                       ;; size=36 bbWeight=1 PerfScore 39.00
+                       ;; size=37 bbWeight=1 PerfScore 39.00
 G_M7403_IG03:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx rbp rdi]
        xor      eax, eax
        mov      dword ptr [rsi+0x10], eax
                        ;; size=5 bbWeight=0.50 PerfScore 0.62
 G_M7403_IG04:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 40
+       add      rsp, 56
        pop      rbx
        pop      rbp
        pop      rsi
@@ -93,27 +88,28 @@ G_M7403_IG04:        ; bbWeight=0.50, epilog, nogc, extend
                        ;; size=17 bbWeight=0.50 PerfScore 2.62
 G_M7403_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[rbx rbp rdi]
-       mov      eax, ecx
+       mov      eax, r8d
        cdq      
        idiv     edx:eax, r14d
        mov      r13d, edx
+       mov      dword ptr [rsp+0x34], r13d
        sub      r14d, r13d
        mov      r12d, r13d
        and      r12d, 31
-       mov      ecx, 1
-       shlx     eax, ecx, r12d
+       mov      r8d, 1
+       shlx     eax, r8d, r12d
        dec      eax
-       mov      dword ptr [rsp+0x24], eax
+       mov      dword ptr [rsp+0x30], eax
        cmp      r15d, dword ptr [rdi+0x10]
        jae      G_M7403_IG11
-       mov      rcx, gword ptr [rdi+0x08]
-       ; gcrRegs +[rcx]
-       cmp      r15d, dword ptr [rcx+0x08]
+       mov      r8, gword ptr [rdi+0x08]
+       ; gcrRegs +[r8]
+       cmp      r15d, dword ptr [r8+0x08]
        jae      G_M7403_IG10
-       mov      r8d, r15d
-       mov      ecx, dword ptr [rcx+4*r8+0x10]
-       ; gcrRegs -[rcx]
-       sarx     r8d, ecx, r12d
+       mov      ecx, r15d
+       mov      r8d, dword ptr [r8+4*rcx+0x10]
+       ; gcrRegs -[r8]
+       sarx     r8d, r8d, r12d
        mov      rcx, rbp
        ; gcrRegs +[rcx]
        xor      edx, edx
@@ -124,30 +120,34 @@ G_M7403_IG05:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=00E8
        lea      eax, [r15+0x01]
        cmp      eax, dword ptr [rbx+0x10]
        jge      G_M7403_IG07
-                       ;; size=98 bbWeight=0.50 PerfScore 26.25
+                       ;; size=105 bbWeight=0.50 PerfScore 26.75
 G_M7403_IG06:        ; bbWeight=4, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0000 {}, byref
-       mov      edx, eax
-       sub      edx, r15d
-       dec      edx
+       mov      r10d, eax
+       sub      r10d, r15d
+       mov      dword ptr [rsp+0x28], r10d
+       lea      edx, [r10-0x01]
        cmp      edx, dword ptr [rbp+0x10]
        jae      G_M7403_IG11
-       mov      rcx, gword ptr [rbp+0x08]
-       ; gcrRegs +[rcx]
-       cmp      edx, dword ptr [rcx+0x08]
+       mov      r8, gword ptr [rbp+0x08]
+       ; gcrRegs +[r8]
+       cmp      edx, dword ptr [r8+0x08]
        jae      G_M7403_IG10
-       mov      r8d, edx
-       mov      r8d, dword ptr [rcx+4*r8+0x10]
+       mov      ecx, edx
+       mov      r8d, dword ptr [r8+4*rcx+0x10]
+       ; gcrRegs -[r8]
        cmp      eax, dword ptr [rdi+0x10]
        jae      G_M7403_IG11
        mov      rcx, gword ptr [rdi+0x08]
+       ; gcrRegs +[rcx]
        cmp      eax, dword ptr [rcx+0x08]
        jae      G_M7403_IG10
-       mov      dword ptr [rsp+0x20], eax
-       mov      r10d, eax
-       mov      r9d, dword ptr [rsp+0x24]
-       mov      r11d, r9d
-       and      r11d, dword ptr [rcx+4*r10+0x10]
-       shlx     ecx, r11d, r14d
+       mov      dword ptr [rsp+0x2C], eax
+       mov      r9d, eax
+       mov      qword ptr [rsp+0x20], r9
+       mov      r11d, dword ptr [rsp+0x30]
+       mov      r13d, r11d
+       and      r13d, dword ptr [rcx+4*r9+0x10]
+       shlx     ecx, r13d, r14d
        ; gcrRegs -[rcx]
        or       r8d, ecx
        mov      rcx, rbp
@@ -155,56 +155,54 @@ G_M7403_IG06:        ; bbWeight=4, gcrefRegs=00E8 {rbx rbp rsi rdi}, byrefRegs=0
        call     [V8.Crypto.ListX`1[int]:set_Item(int,int):this]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      eax, dword ptr [rsp+0x20]
-       cmp      eax, dword ptr [rdi+0x10]
+       mov      r13d, dword ptr [rsp+0x2C]
+       cmp      r13d, dword ptr [rdi+0x10]
        jae      G_M7403_IG11
-       mov      edx, eax
-       sub      edx, r15d
-       mov      rcx, gword ptr [rdi+0x08]
-       ; gcrRegs +[rcx]
-       cmp      eax, dword ptr [rcx+0x08]
+       mov      r8, gword ptr [rdi+0x08]
+       ; gcrRegs +[r8]
+       cmp      r13d, dword ptr [r8+0x08]
        jae      G_M7403_IG10
-       mov      dword ptr [rsp+0x20], eax
-       mov      r8d, eax
-       mov      ecx, dword ptr [rcx+4*r8+0x10]
-       ; gcrRegs -[rcx]
-       sarx     r8d, ecx, r12d
+       mov      rdx, qword ptr [rsp+0x20]
+       mov      r8d, dword ptr [r8+4*rdx+0x10]
+       ; gcrRegs -[r8]
+       sarx     r8d, r8d, r12d
+       mov      edx, dword ptr [rsp+0x28]
        mov      rcx, rbp
        ; gcrRegs +[rcx]
        call     [V8.Crypto.ListX`1[int]:set_Item(int,int):this]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-       mov      eax, dword ptr [rsp+0x20]
-       inc      eax
-       cmp      eax, dword ptr [rbx+0x10]
+       inc      r13d
+       cmp      r13d, dword ptr [rbx+0x10]
+       mov      eax, r13d
        jl       G_M7403_IG06
-                       ;; size=168 bbWeight=4 PerfScore 225.00
+                       ;; size=182 bbWeight=4 PerfScore 232.00
 G_M7403_IG07:        ; bbWeight=0.50, gcrefRegs=0068 {rbx rbp rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdi]
-       test     r13d, r13d
+       cmp      dword ptr [rsp+0x34], 0
        jle      SHORT G_M7403_IG08
        mov      edx, dword ptr [rbx+0x10]
        sub      edx, r15d
        dec      edx
        cmp      edx, dword ptr [rbp+0x10]
        jae      SHORT G_M7403_IG11
-       mov      rcx, rbp
-       ; gcrRegs +[rcx]
-       mov      r8, gword ptr [rcx+0x08]
...

+40 (+5.78%) : 14832.dasm - System.Number:FormatCurrencyushort (FullOpts)

@@ -9,18 +9,18 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] ( 18, 34   )   byref  ->  rbx         single-def
-;  V01 arg1         [V01,T10] (  4,  5   )   byref  ->  rdi         single-def
-;  V02 arg2         [V02,T11] (  3,  4   )     int  ->  rbp         single-def
+;  V01 arg1         [V01,T21] (  4,  5   )   byref  ->  rdi         single-def
+;  V02 arg2         [V02,T29] (  3,  4   )     int  ->  rbp         single-def
 ;  V03 arg3         [V03,T08] (  9, 13   )     ref  ->  rsi         class-hnd single-def <System.Globalization.NumberFormatInfo>
 ;* V04 loc0         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.String>
-;  V05 loc1         [V05,T09] (  4, 10   )     ref  ->  r14         class-hnd exact single-def <System.String>
+;  V05 loc1         [V05,T22] (  3,  6   )     ref  ->  r14         class-hnd exact single-def <System.String>
 ;  V06 loc2         [V06,T02] (  5, 17   )     int  ->  r15        
 ;  V07 loc3         [V07,T03] (  6, 16   )  ushort  ->  rdx        
 ;  V08 OutArgs      [V08    ] (  1,  1   )  struct (48) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V09 tmp1         [V09    ] (  0,  0   )     int  ->  zero-ref   
 ;* V10 tmp2         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <<unknown class>>
-;  V11 tmp3         [V11,T72] (  3,  2   )     ref  ->  r14        
-;  V12 tmp4         [V12,T15] (  2,  8   )     ref  ->  r13         class-hnd "impAppendStmt" <<unknown class>>
+;  V11 tmp3         [V11,T67] (  3,  2   )     ref  ->  r14        
+;  V12 tmp4         [V12,T12] (  2,  8   )     ref  ->  r12         class-hnd "impAppendStmt" <<unknown class>>
 ;* V13 tmp5         [V13    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V14 tmp6         [V14    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V15 tmp7         [V15    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
@@ -36,8 +36,8 @@
 ;  V25 tmp17        [V25,T04] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V26 tmp18        [V26    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V27 tmp19        [V27    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V28 tmp20        [V28,T21] (  2,  8   )     int  ->  rax         "Inlining Arg"
-;  V29 tmp21        [V29,T16] (  2,  8   )   byref  ->  r12         "Inlining Arg"
+;  V28 tmp20        [V28,T17] (  2,  8   )     int  ->   r8         "Inlining Arg"
+;  V29 tmp21        [V29,T13] (  2,  8   )   byref  ->  rax         "Inlining Arg"
 ;* V30 tmp22        [V30    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V31 tmp23        [V31    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V32 tmp24        [V32    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -45,7 +45,7 @@
 ;* V34 tmp26        [V34    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V35 tmp27        [V35    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V36 tmp28        [V36    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V37 tmp29        [V37,T31] (  3,  6   )     int  ->  [rsp+0x64]  spill-single-def "Inline stloc first use temp"
+;  V37 tmp29        [V37,T30] (  3,  6   )     int  ->  [rsp+0x84]  spill-single-def "Inline stloc first use temp"
 ;* V38 tmp30        [V38    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V39 tmp31        [V39    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V40 tmp32        [V40    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -60,8 +60,8 @@
 ;  V49 tmp41        [V49,T05] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V50 tmp42        [V50    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V51 tmp43        [V51    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V52 tmp44        [V52,T22] (  2,  8   )     int  ->  r10         "Inlining Arg"
-;  V53 tmp45        [V53,T17] (  2,  8   )   byref  ->   r8         "Inlining Arg"
+;  V52 tmp44        [V52,T18] (  2,  8   )     int  ->   r9         "Inlining Arg"
+;  V53 tmp45        [V53,T14] (  2,  8   )   byref  ->  r10         "Inlining Arg"
 ;* V54 tmp46        [V54    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V55 tmp47        [V55    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V56 tmp48        [V56    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -69,7 +69,7 @@
 ;* V58 tmp50        [V58    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V59 tmp51        [V59    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V60 tmp52        [V60    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V61 tmp53        [V61,T32] (  3,  6   )     int  ->  [rsp+0x60]  spill-single-def "Inline stloc first use temp"
+;  V61 tmp53        [V61,T31] (  3,  6   )     int  ->  [rsp+0x80]  spill-single-def "Inline stloc first use temp"
 ;* V62 tmp54        [V62    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V63 tmp55        [V63    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V64 tmp56        [V64    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -84,8 +84,8 @@
 ;  V73 tmp65        [V73,T06] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V74 tmp66        [V74    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V75 tmp67        [V75    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V76 tmp68        [V76,T23] (  2,  8   )     int  ->  r12         "Inlining Arg"
-;  V77 tmp69        [V77,T18] (  2,  8   )   byref  ->  r13         "Inlining Arg"
+;  V76 tmp68        [V76,T19] (  2,  8   )     int  ->  rax         "Inlining Arg"
+;  V77 tmp69        [V77,T15] (  2,  8   )   byref  ->  r12         "Inlining Arg"
 ;* V78 tmp70        [V78    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V79 tmp71        [V79    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V80 tmp72        [V80    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -93,13 +93,13 @@
 ;* V82 tmp74        [V82    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V83 tmp75        [V83    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V84 tmp76        [V84    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V85 tmp77        [V85,T33] (  3,  6   )     int  ->  r12         "Inline stloc first use temp"
+;  V85 tmp77        [V85,T32] (  3,  6   )     int  ->  [rsp+0x7C]  spill-single-def "Inline stloc first use temp"
 ;* V86 tmp78        [V86    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V87 tmp79        [V87    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V88 tmp80        [V88    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V89 tmp81        [V89    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V90 tmp82        [V90    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V91 tmp83        [V91,T12] (  4,  8   )     int  ->  rdx         "Inline stloc first use temp"
+;  V91 tmp83        [V91,T09] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V92 tmp84        [V92    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
 ;* V93 tmp85        [V93    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V94 tmp86        [V94    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
@@ -111,8 +111,8 @@
 ;  V100 tmp92       [V100,T07] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V101 tmp93       [V101    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V102 tmp94       [V102    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V103 tmp95       [V103,T24] (  2,  8   )     int  ->  r12         "Inlining Arg"
-;  V104 tmp96       [V104,T19] (  2,  8   )   byref  ->  r13         "Inlining Arg"
+;  V103 tmp95       [V103,T20] (  2,  8   )     int  ->  rax         "Inlining Arg"
+;  V104 tmp96       [V104,T16] (  2,  8   )   byref  ->  r12         "Inlining Arg"
 ;* V105 tmp97       [V105    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V106 tmp98       [V106    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V107 tmp99       [V107    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -120,20 +120,20 @@
 ;* V109 tmp101      [V109    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V110 tmp102      [V110    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V111 tmp103      [V111    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V112 tmp104      [V112,T34] (  3,  6   )     int  ->  r12         "Inline stloc first use temp"
+;  V112 tmp104      [V112,T33] (  3,  6   )     int  ->  [rsp+0x78]  spill-single-def "Inline stloc first use temp"
 ;* V113 tmp105      [V113    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V114 tmp106      [V114    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V115 tmp107      [V115    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V116 tmp108      [V116    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V117 tmp109      [V117    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V118 tmp110      [V118,T13] (  4,  8   )     int  ->  rdx         "Inline stloc first use temp"
+;  V118 tmp110      [V118,T10] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V119 tmp111      [V119    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
 ;* V120 tmp112      [V120    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V121 tmp113      [V121,T14] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
+;  V121 tmp113      [V121,T11] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V122 tmp114      [V122    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
 ;* V123 tmp115      [V123    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
-;  V124 tmp116      [V124,T41] (  2,  4   )   byref  ->  r12         "field V13._reference (fldOffset=0x0)" P-INDEP
-;  V125 tmp117      [V125,T55] (  2,  4   )     int  ->  [rsp+0x5C]  spill-single-def "field V13._length (fldOffset=0x8)" P-INDEP
+;  V124 tmp116      [V124,T41] (  2,  4   )   byref  ->  [rsp+0x48]  spill-single-def "field V13._reference (fldOffset=0x0)" P-INDEP
+;  V125 tmp117      [V125,T55] (  2,  4   )     int  ->  [rsp+0x74]  spill-single-def "field V13._length (fldOffset=0x8)" P-INDEP
 ;* V126 tmp118      [V126    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V127 tmp119      [V127    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V128 tmp120      [V128    ] (  0,  0   )   byref  ->  zero-ref    "field V15._reference (fldOffset=0x0)" P-INDEP
@@ -142,91 +142,86 @@
 ;* V131 tmp123      [V131    ] (  0,  0   )     int  ->  zero-ref    "field V16._length (fldOffset=0x8)" P-INDEP
 ;* V132 tmp124      [V132    ] (  0,  0   )   byref  ->  zero-ref    "field V21._reference (fldOffset=0x0)" P-INDEP
 ;* V133 tmp125      [V133    ] (  0,  0   )     int  ->  zero-ref    "field V21._length (fldOffset=0x8)" P-INDEP
-;  V134 tmp126      [V134,T25] (  3,  6   )   byref  ->  r12         "field V24._reference (fldOffset=0x0)" P-INDEP
-;  V135 tmp127      [V135,T35] (  3,  6   )     int  ->  rax         "field V24._length (fldOffset=0x8)" P-INDEP
-;  V136 tmp128      [V136,T42] (  2,  4   )   byref  ->  r12         "field V26._reference (fldOffset=0x0)" P-INDEP
-;  V137 tmp129      [V137,T56] (  2,  4   )     int  ->  rax         "field V26._length (fldOffset=0x8)" P-INDEP
+;  V134 tmp126      [V134,T23] (  3,  6   )   byref  ->  rax         "field V24._reference (fldOffset=0x0)" P-INDEP
+;  V135 tmp127      [V135,T34] (  3,  6   )     int  ->   r8         "field V24._length (fldOffset=0x8)" P-INDEP
+;  V136 tmp128      [V136,T42] (  2,  4   )   byref  ->  rax         "field V26._reference (fldOffset=0x0)" P-INDEP
+;  V137 tmp129      [V137,T56] (  2,  4   )     int  ->   r8         "field V26._length (fldOffset=0x8)" P-INDEP
 ;* V138 tmp130      [V138    ] (  0,  0   )   byref  ->  zero-ref    "field V27._reference (fldOffset=0x0)" P-INDEP
 ;* V139 tmp131      [V139    ] (  0,  0   )     int  ->  zero-ref    "field V27._length (fldOffset=0x8)" P-INDEP
-;  V140 tmp132      [V140,T43] (  2,  4   )   byref  ->  r12         "field V34._reference (fldOffset=0x0)" P-INDEP
+;  V140 tmp132      [V140,T43] (  2,  4   )   byref  ->  [rsp+0x40]  spill-single-def "field V34._reference (fldOffset=0x0)" P-INDEP
 ;* V141 tmp133      [V141    ] (  0,  0   )     int  ->  zero-ref    "field V34._length (fldOffset=0x8)" P-INDEP
-;  V142 tmp134      [V142,T44] (  2,  4   )   byref  ->  r12         "field V38._reference (fldOffset=0x0)" P-INDEP
-;  V143 tmp135      [V143,T57] (  2,  4   )     int  ->  rax         "field V38._length (fldOffset=0x8)" P-INDEP
+;  V142 tmp134      [V142,T44] (  2,  4   )   byref  ->  rax         "field V38._reference (fldOffset=0x0)" P-INDEP
+;  V143 tmp135      [V143,T57] (  2,  4   )     int  ->   r8         "field V38._length (fldOffset=0x8)" P-INDEP
 ;* V144 tmp136      [V144    ] (  0,  0   )   byref  ->  zero-ref    "field V39._reference (fldOffset=0x0)" P-INDEP
 ;* V145 tmp137      [V145    ] (  0,  0   )     int  ->  zero-ref    "field V39._length (fldOffset=0x8)" P-INDEP
 ;* V146 tmp138      [V146    ] (  0,  0   )   byref  ->  zero-ref    "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V147 tmp139      [V147    ] (  0,  0   )     int  ->  zero-ref    "field V43._length (fldOffset=0x8)" P-INDEP
 ;* V148 tmp140      [V148    ] (  0,  0   )   byref  ->  zero-ref    "field V45._reference (fldOffset=0x0)" P-INDEP
 ;* V149 tmp141      [V149    ] (  0,  0   )     int  ->  zero-ref    "field V45._length (fldOffset=0x8)" P-INDEP
-;  V150 tmp142      [V150,T26] (  3,  6   )   byref  ->   r8         "field V48._reference (fldOffset=0x0)" P-INDEP
-;  V151 tmp143      [V151,T36] (  3,  6   )     int  ->  r10         "field V48._length (fldOffset=0x8)" P-INDEP
-;  V152 tmp144      [V152,T45] (  2,  4   )   byref  ->   r8         "field V50._reference (fldOffset=0x0)" P-INDEP
-;  V153 tmp145      [V153,T58] (  2,  4   )     int  ->  r10         "field V50._length (fldOffset=0x8)" P-INDEP
+;  V150 tmp142      [V150,T24] (  3,  6   )   byref  ->  r10         "field V48._reference (fldOffset=0x0)" P-INDEP
+;  V151 tmp143      [V151,T35] (  3,  6   )     int  ->   r9         "field V48._length (fldOffset=0x8)" P-INDEP
+;  V152 tmp144      [V152,T45] (  2,  4   )   byref  ->  r10         "field V50._reference (fldOffset=0x0)" P-INDEP
+;  V153 tmp145      [V153,T58] (  2,  4   )     int  ->   r9         "field V50._length (fldOffset=0x8)" P-INDEP
 ;* V154 tmp146      [V154    ] (  0,  0   )   byref  ->  zero-ref    "field V51._reference (fldOffset=0x0)" P-INDEP
 ;* V155 tmp147      [V155    ] (  0,  0   )     int  ->  zero-ref    "field V51._length (fldOffset=0x8)" P-INDEP
-;  V156 tmp148      [V156,T46] (  2,  4   )   byref  ->  [rsp+0x30]  spill-single-def "field V58._reference (fldOffset=0x0)" P-INDEP
+;  V156 tmp148      [V156,T46] (  2,  4   )   byref  ->  [rsp+0x38]  spill-single-def "field V58._reference (fldOffset=0x0)" P-INDEP
 ;* V157 tmp149      [V157    ] (  0,  0   )     int  ->  zero-ref    "field V58._length (fldOffset=0x8)" P-INDEP
-;  V158 tmp150      [V158,T47] (  2,  4   )   byref  ->   r8         "field V62._reference (fldOffset=0x0)" P-INDEP
-;  V159 tmp151      [V159,T59] (  2,  4   )     int  ->  r10         "field V62._length (fldOffset=0x8)" P-INDEP
+;  V158 tmp150      [V158,T47] (  2,  4   )   byref  ->  r10         "field V62._reference (fldOffset=0x0)" P-INDEP
+;  V159 tmp151      [V159,T59] (  2,  4   )     int  ->   r9         "field V62._length (fldOffset=0x8)" P-INDEP
 ;* V160 tmp152      [V160    ] (  0,  0   )   byref  ->  zero-ref    "field V63._reference (fldOffset=0x0)" P-INDEP
 ;* V161 tmp153      [V161    ] (  0,  0   )     int  ->  zero-ref    "field V63._length (fldOffset=0x8)" P-INDEP
 ;* V162 tmp154      [V162    ] (  0,  0   )   byref  ->  zero-ref    "field V67._reference (fldOffset=0x0)" P-INDEP
 ;* V163 tmp155      [V163    ] (  0,  0   )     int  ->  zero-ref    "field V67._length (fldOffset=0x8)" P-INDEP
 ;* V164 tmp156      [V164    ] (  0,  0   )   byref  ->  zero-ref    "field V69._reference (fldOffset=0x0)" P-INDEP
 ;* V165 tmp157      [V165    ] (  0,  0   )     int  ->  zero-ref    "field V69._length (fldOffset=0x8)" P-INDEP
-;  V166 tmp158      [V166,T27] (  3,  6   )   byref  ->  r13         "field V72._reference (fldOffset=0x0)" P-INDEP
-;  V167 tmp159      [V167,T37] (  3,  6   )     int  ->  r12         "field V72._length (fldOffset=0x8)" P-INDEP
-;  V168 tmp160      [V168,T48] (  2,  4   )   byref  ->  r13         "field V74._reference (fldOffset=0x0)" P-INDEP
-;  V169 tmp161      [V169,T60] (  2,  4   )     int  ->  r12         "field V74._length (fldOffset=0x8)" P-INDEP
+;  V166 tmp158      [V166,T25] (  3,  6   )   byref  ->  r12         "field V72._reference (fldOffset=0x0)" P-INDEP
+;  V167 tmp159      [V167,T36] (  3,  6   )     int  ->  rax         "field V72._length (fldOffset=0x8)" P-INDEP
+;  V168 tmp160      [V168,T48] (  2,  4   )   byref  ->  r12         "field V74._reference (fldOffset=0x0)" P-INDEP
+;  V169 tmp161      [V169,T60] (  2,  4   )     int  ->  rax         "field V74._length (fldOffset=0x8)" P-INDEP
 ;* V170 tmp162      [V170    ] (  0,  0   )   byref  ->  zero-ref    "field V75._reference (fldOffset=0x0)" P-INDEP
 ;* V171 tmp163      [V171    ] (  0,  0   )     int  ->  zero-ref    "field V75._length (fldOffset=0x8)" P-INDEP
-;  V172 tmp164      [V172,T28] (  3,  6   )   byref  ->  r13         "field V82._reference (fldOffset=0x0)" P-INDEP
+;  V172 tmp164      [V172,T26] (  3,  6   )   byref  ->  r12         "field V82._reference (fldOffset=0x0)" P-INDEP
 ;* V173 tmp165      [V173    ] (  0,  0   )     int  ->  zero-ref    "field V82._length (fldOffset=0x8)" P-INDEP
-;  V174 tmp166      [V174,T49] (  2,  4   )   byref  ->  rcx         "field V86._reference (fldOffset=0x0)" P-INDEP
-;  V175 tmp167      [V175,T38] (  3,  6   )     int  ->  r12         "field V86._length (fldOffset=0x8)" P-INDEP
+;  V174 tmp166      [V174,T49] (  2,  4   )   byref  ->  rdx         "field V86._reference (fldOffset=0x0)" P-INDEP
+;  V175 tmp167      [V175,T37] (  3,  6   )     int  ->  rax         "field V86._length (fldOffset=0x8)" P-INDEP
 ;* V176 tmp168      [V176    ] (  0,  0   )   byref  ->  zero-ref    "field V87._reference (fldOffset=0x0)" P-INDEP
 ;* V177 tmp169      [V177    ] (  0,  0   )     int  ->  zero-ref    "field V87._length (fldOffset=0x8)" P-INDEP
-;  V178 tmp170      [V178,T50] (  2,  4   )   byref  ->  rax         "field V92._reference (fldOffset=0x0)" P-INDEP
-;  V179 tmp171      [V179,T61] (  2,  4   )     int  ->   r8         "field V92._length (fldOffset=0x8)" P-INDEP
+;  V178 tmp170      [V178,T50] (  2,  4   )   byref  ->   r8         "field V92._reference (fldOffset=0x0)" P-INDEP
+;  V179 tmp171      [V179,T61] (  2,  4   )     int  ->  r10         "field V92._length (fldOffset=0x8)" P-INDEP
 ;* V180 tmp172      [V180    ] (  0,  0   )   byref  ->  zero-ref    "field V93._reference (fldOffset=0x0)" P-INDEP
 ;* V181 tmp173      [V181    ] (  0,  0   )     int  ->  zero-ref    "field V93._length (fldOffset=0x8)" P-INDEP
 ;* V182 tmp174      [V182    ] (  0,  0   )   byref  ->  zero-ref    "field V94._reference (fldOffset=0x0)" P-INDEP
 ;* V183 tmp175      [V183    ] (  0,  0   )     int  ->  zero-ref    "field V94._length (fldOffset=0x8)" P-INDEP
 ;* V184 tmp176      [V184    ] (  0,  0   )   byref  ->  zero-ref    "field V96._reference (fldOffset=0x0)" P-INDEP
 ;* V185 tmp177      [V185    ] (  0,  0   )     int  ->  zero-ref    "field V96._length (fldOffset=0x8)" P-INDEP
-;  V186 tmp178      [V186,T29] (  3,  6   )   byref  ->  r13         "field V99._reference (fldOffset=0x0)" P-INDEP
-;  V187 tmp179      [V187,T39] (  3,  6   )     int  ->  r12         "field V99._length (fldOffset=0x8)" P-INDEP
-;  V188 tmp180      [V188,T51] (  2,  4   )   byref  ->  r13         "field V101._reference (fldOffset=0x0)" P-INDEP
-;  V189 tmp181      [V189,T62] (  2,  4   )     int  ->  r12         "field V101._length (fldOffset=0x8)" P-INDEP
+;  V186 tmp178      [V186,T27] (  3,  6   )   byref  ->  r12         "field V99._reference (fldOffset=0x0)" P-INDEP
+;  V187 tmp179      [V187,T38] (  3,  6   )     int  ->  rax         "field V99._length (fldOffset=0x8)" P-INDEP
+;  V188 tmp180      [V188,T51] (  2,  4   )   byref  ->  r12         "field V101._reference (fldOffset=0x0)" P-INDEP
+;  V189 tmp181      [V189,T62] (  2,  4   )     int  ->  rax         "field V101._length (fldOffset=0x8)" P-INDEP
 ;* V190 tmp182      [V190    ] (  0,  0   )   byref  ->  zero-ref    "field V102._reference (fldOffset=0x0)" P-INDEP
 ;* V191 tmp183      [V191    ] (  0,  0   )     int  ->  zero-ref    "field V102._length (fldOffset=0x8)" P-INDEP
-;  V192 tmp184      [V192,T30] (  3,  6   )   byref  ->  r13         "field V109._reference (fldOffset=0x0)" P-INDEP
+;  V192 tmp184      [V192,T28] (  3,  6   )   byref  ->  r12         "field V109._reference (fldOffset=0x0)" P-INDEP
 ;* V193 tmp185      [V193    ] (  0,  0   )     int  ->  zero-ref    "field V109._length (fldOffset=0x8)" P-INDEP
-;  V194 tmp186      [V194,T52] (  2,  4   )   byref  ->  rcx         "field V113._reference (fldOffset=0x0)" P-INDEP
-;  V195 tmp187      [V195,T40] (  3,  6   )     int  ->  r12         "field V113._length (fldOffset=0x8)" P-INDEP
+;  V194 tmp186      [V194,T52] (  2,  4   )   byref  ->  rdx         "field V113._reference (fldOffset=0x0)" P-INDEP
+;  V195 tmp187      [V195,T39] (  3,  6   )     int  ->  rax         "field V113._length (fldOffset=0x8)" P-INDEP
 ;* V196 tmp188      [V196    ] (  0,  0   )   byref  ->  zero-ref    "field V114._reference (fldOffset=0x0)" P-INDEP
 ;* V197 tmp189      [V197    ] (  0,  0   )     int  ->  zero-ref    "field V114._length (fldOffset=0x8)" P-INDEP
-;  V198 tmp190      [V198,T53] (  2,  4   )   byref  ->  rax         "field V119._reference (fldOffset=0x0)" P-INDEP
-;  V199 tmp191      [V199,T63] (  2,  4   )     int  ->   r8         "field V119._length (fldOffset=0x8)" P-INDEP
+;  V198 tmp190      [V198,T53] (  2,  4   )   byref  ->   r8         "field V119._reference (fldOffset=0x0)" P-INDEP
+;  V199 tmp191      [V199,T63] (  2,  4   )     int  ->  r10         "field V119._length (fldOffset=0x8)" P-INDEP
 ;* V200 tmp192      [V200    ] (  0,  0   )   byref  ->  zero-ref    "field V120._reference (fldOffset=0x0)" P-INDEP
 ;* V201 tmp193      [V201    ] (  0,  0   )     int  ->  zero-ref    "field V120._length (fldOffset=0x8)" P-INDEP
 ;  V202 tmp194      [V202,T54] (  2,  4   )   byref  ->  rax         "field V122._reference (fldOffset=0x0)" P-INDEP
 ;  V203 tmp195      [V203,T64] (  2,  4   )     int  ->   r8         "field V122._length (fldOffset=0x8)" P-INDEP
-;  V204 tmp196      [V204,T73] (  2,  2   )     ref  ->  rcx         single-def "arr expr"
-;  V205 tmp197      [V205,T70] (  3,  3   )     int  ->  rdx         "index expr"
-;  V206 tmp198      [V206,T74] (  2,  2   )     ref  ->  rcx         single-def "arr expr"
-;  V207 tmp199      [V207,T71] (  3,  3   )     int  ->  rdx         "index expr"
-;  V208 tmp200      [V208    ] (  9, 36   )  struct (16) [rsp+0x48]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;  V209 tmp201      [V209    ] (  3, 12   )  struct (16) [rsp+0x38]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;* V210 tmp202      [V210,T65] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V211 tmp203      [V211,T66] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V212 tmp204      [V212,T69] (  0,  0   )     int  ->  zero-ref    "argument with side effect"
-;  V213 tmp205      [V213,T20] (  2,  8   )     ref  ->   r9         "argument with side effect"
-;* V214 tmp206      [V214,T67] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V215 tmp207      [V215,T68] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;  V216 cse0        [V216,T01] ( 12, 24   )     ref  ->  rdx         multi-def "CSE - aggressive"
+;  V204 tmp196      [V204,T68] (  2,  2   )     ref  ->  rcx         single-def "arr expr"
+;  V205 tmp197      [V205,T65] (  3,  3   )     int  ->  rdx         "index expr"
+;  V206 tmp198      [V206,T69] (  2,  2   )     ref  ->  rcx         single-def "arr expr"
...

+31 (+5.79%) : 661.dasm - System.Number:FormatNumberushort (FullOpts)

@@ -9,18 +9,18 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] ( 13, 24   )   byref  ->  rbx         single-def
-;  V01 arg1         [V01,T09] (  4,  5   )   byref  ->  rdi         single-def
-;  V02 arg2         [V02,T10] (  3,  4   )     int  ->  rbp         single-def
+;  V01 arg1         [V01,T17] (  4,  5   )   byref  ->  rdi         single-def
+;  V02 arg2         [V02,T23] (  3,  4   )     int  ->  rbp         single-def
 ;  V03 arg3         [V03,T07] (  7, 10.50)     ref  ->  rsi         class-hnd single-def <System.Globalization.NumberFormatInfo>
 ;* V04 loc0         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.String>
-;  V05 loc1         [V05,T08] (  4, 10   )     ref  ->  r14         class-hnd exact single-def <System.String>
+;  V05 loc1         [V05,T18] (  3,  6   )     ref  ->  r14         class-hnd exact single-def <System.String>
 ;  V06 loc2         [V06,T02] (  5, 17   )     int  ->  r15        
 ;  V07 loc3         [V07,T06] (  5, 14   )  ushort  ->  rdx        
 ;  V08 OutArgs      [V08    ] (  1,  1   )  struct (48) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V09 tmp1         [V09    ] (  0,  0   )     int  ->  zero-ref   
 ;* V10 tmp2         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <<unknown class>>
-;  V11 tmp3         [V11,T56] (  3,  2   )     ref  ->  r14        
-;  V12 tmp4         [V12,T13] (  2,  8   )     ref  ->  r13         class-hnd "impAppendStmt" <<unknown class>>
+;  V11 tmp3         [V11,T52] (  3,  2   )     ref  ->  r14        
+;  V12 tmp4         [V12,T10] (  2,  8   )     ref  ->  r12         class-hnd "impAppendStmt" <<unknown class>>
 ;* V13 tmp5         [V13    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V14 tmp6         [V14    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V15 tmp7         [V15    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
@@ -34,8 +34,8 @@
 ;  V23 tmp15        [V23,T03] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V24 tmp16        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V25 tmp17        [V25    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V26 tmp18        [V26,T18] (  2,  8   )     int  ->  rax         "Inlining Arg"
-;  V27 tmp19        [V27,T14] (  2,  8   )   byref  ->  r12         "Inlining Arg"
+;  V26 tmp18        [V26,T14] (  2,  8   )     int  ->   r8         "Inlining Arg"
+;  V27 tmp19        [V27,T11] (  2,  8   )   byref  ->  rax         "Inlining Arg"
 ;* V28 tmp20        [V28    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V29 tmp21        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp22        [V30    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -43,7 +43,7 @@
 ;* V32 tmp24        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V33 tmp25        [V33    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V34 tmp26        [V34    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V35 tmp27        [V35,T25] (  3,  6   )     int  ->  [rsp+0x64]  spill-single-def "Inline stloc first use temp"
+;  V35 tmp27        [V35,T24] (  3,  6   )     int  ->  [rsp+0x74]  spill-single-def "Inline stloc first use temp"
 ;* V36 tmp28        [V36    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V37 tmp29        [V37    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V38 tmp30        [V38    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -58,8 +58,8 @@
 ;  V47 tmp39        [V47,T04] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V48 tmp40        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V49 tmp41        [V49    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V50 tmp42        [V50,T19] (  2,  8   )     int  ->  r10         "Inlining Arg"
-;  V51 tmp43        [V51,T15] (  2,  8   )   byref  ->   r8         "Inlining Arg"
+;  V50 tmp42        [V50,T15] (  2,  8   )     int  ->   r9         "Inlining Arg"
+;  V51 tmp43        [V51,T12] (  2,  8   )   byref  ->  r10         "Inlining Arg"
 ;* V52 tmp44        [V52    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V53 tmp45        [V53    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V54 tmp46        [V54    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -67,7 +67,7 @@
 ;* V56 tmp48        [V56    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V57 tmp49        [V57    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V58 tmp50        [V58    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V59 tmp51        [V59,T26] (  3,  6   )     int  ->  [rsp+0x60]  spill-single-def "Inline stloc first use temp"
+;  V59 tmp51        [V59,T25] (  3,  6   )     int  ->  [rsp+0x70]  spill-single-def "Inline stloc first use temp"
 ;* V60 tmp52        [V60    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V61 tmp53        [V61    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V62 tmp54        [V62    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -82,8 +82,8 @@
 ;  V71 tmp63        [V71,T05] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V72 tmp64        [V72    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V73 tmp65        [V73    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V74 tmp66        [V74,T20] (  2,  8   )     int  ->  r12         "Inlining Arg"
-;  V75 tmp67        [V75,T16] (  2,  8   )   byref  ->  r13         "Inlining Arg"
+;  V74 tmp66        [V74,T16] (  2,  8   )     int  ->  rax         "Inlining Arg"
+;  V75 tmp67        [V75,T13] (  2,  8   )   byref  ->  r12         "Inlining Arg"
 ;* V76 tmp68        [V76    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V77 tmp69        [V77    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V78 tmp70        [V78    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -91,88 +91,84 @@
 ;* V80 tmp72        [V80    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V81 tmp73        [V81    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V82 tmp74        [V82    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V83 tmp75        [V83,T27] (  3,  6   )     int  ->  r12         "Inline stloc first use temp"
+;  V83 tmp75        [V83,T26] (  3,  6   )     int  ->  [rsp+0x6C]  spill-single-def "Inline stloc first use temp"
 ;* V84 tmp76        [V84    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V85 tmp77        [V85    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V86 tmp78        [V86    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V87 tmp79        [V87    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V88 tmp80        [V88    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V89 tmp81        [V89,T11] (  4,  8   )     int  ->  rdx         "Inline stloc first use temp"
+;  V89 tmp81        [V89,T08] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V90 tmp82        [V90    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
 ;* V91 tmp83        [V91    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V92 tmp84        [V92,T12] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
+;  V92 tmp84        [V92,T09] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V93 tmp85        [V93    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
 ;* V94 tmp86        [V94    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
-;  V95 tmp87        [V95,T32] (  2,  4   )   byref  ->  r12         "field V13._reference (fldOffset=0x0)" P-INDEP
-;  V96 tmp88        [V96,T43] (  2,  4   )     int  ->  [rsp+0x5C]  spill-single-def "field V13._length (fldOffset=0x8)" P-INDEP
+;  V95 tmp87        [V95,T32] (  2,  4   )   byref  ->  [rsp+0x40]  spill-single-def "field V13._reference (fldOffset=0x0)" P-INDEP
+;  V96 tmp88        [V96,T43] (  2,  4   )     int  ->  [rsp+0x68]  spill-single-def "field V13._length (fldOffset=0x8)" P-INDEP
 ;* V97 tmp89        [V97    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V98 tmp90        [V98    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V99 tmp91        [V99    ] (  0,  0   )   byref  ->  zero-ref    "field V15._reference (fldOffset=0x0)" P-INDEP
 ;* V100 tmp92       [V100    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;* V101 tmp93       [V101    ] (  0,  0   )   byref  ->  zero-ref    "field V19._reference (fldOffset=0x0)" P-INDEP
 ;* V102 tmp94       [V102    ] (  0,  0   )     int  ->  zero-ref    "field V19._length (fldOffset=0x8)" P-INDEP
-;  V103 tmp95       [V103,T21] (  3,  6   )   byref  ->  r12         "field V22._reference (fldOffset=0x0)" P-INDEP
-;  V104 tmp96       [V104,T28] (  3,  6   )     int  ->  rax         "field V22._length (fldOffset=0x8)" P-INDEP
-;  V105 tmp97       [V105,T33] (  2,  4   )   byref  ->  r12         "field V24._reference (fldOffset=0x0)" P-INDEP
-;  V106 tmp98       [V106,T44] (  2,  4   )     int  ->  rax         "field V24._length (fldOffset=0x8)" P-INDEP
+;  V103 tmp95       [V103,T19] (  3,  6   )   byref  ->  rax         "field V22._reference (fldOffset=0x0)" P-INDEP
+;  V104 tmp96       [V104,T27] (  3,  6   )     int  ->   r8         "field V22._length (fldOffset=0x8)" P-INDEP
+;  V105 tmp97       [V105,T33] (  2,  4   )   byref  ->  rax         "field V24._reference (fldOffset=0x0)" P-INDEP
+;  V106 tmp98       [V106,T44] (  2,  4   )     int  ->   r8         "field V24._length (fldOffset=0x8)" P-INDEP
 ;* V107 tmp99       [V107    ] (  0,  0   )   byref  ->  zero-ref    "field V25._reference (fldOffset=0x0)" P-INDEP
 ;* V108 tmp100      [V108    ] (  0,  0   )     int  ->  zero-ref    "field V25._length (fldOffset=0x8)" P-INDEP
-;  V109 tmp101      [V109,T34] (  2,  4   )   byref  ->  r12         "field V32._reference (fldOffset=0x0)" P-INDEP
+;  V109 tmp101      [V109,T34] (  2,  4   )   byref  ->  [rsp+0x38]  spill-single-def "field V32._reference (fldOffset=0x0)" P-INDEP
 ;* V110 tmp102      [V110    ] (  0,  0   )     int  ->  zero-ref    "field V32._length (fldOffset=0x8)" P-INDEP
-;  V111 tmp103      [V111,T35] (  2,  4   )   byref  ->  r12         "field V36._reference (fldOffset=0x0)" P-INDEP
-;  V112 tmp104      [V112,T45] (  2,  4   )     int  ->  rax         "field V36._length (fldOffset=0x8)" P-INDEP
+;  V111 tmp103      [V111,T35] (  2,  4   )   byref  ->  rax         "field V36._reference (fldOffset=0x0)" P-INDEP
+;  V112 tmp104      [V112,T45] (  2,  4   )     int  ->   r8         "field V36._length (fldOffset=0x8)" P-INDEP
 ;* V113 tmp105      [V113    ] (  0,  0   )   byref  ->  zero-ref    "field V37._reference (fldOffset=0x0)" P-INDEP
 ;* V114 tmp106      [V114    ] (  0,  0   )     int  ->  zero-ref    "field V37._length (fldOffset=0x8)" P-INDEP
 ;* V115 tmp107      [V115    ] (  0,  0   )   byref  ->  zero-ref    "field V41._reference (fldOffset=0x0)" P-INDEP
 ;* V116 tmp108      [V116    ] (  0,  0   )     int  ->  zero-ref    "field V41._length (fldOffset=0x8)" P-INDEP
 ;* V117 tmp109      [V117    ] (  0,  0   )   byref  ->  zero-ref    "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V118 tmp110      [V118    ] (  0,  0   )     int  ->  zero-ref    "field V43._length (fldOffset=0x8)" P-INDEP
-;  V119 tmp111      [V119,T22] (  3,  6   )   byref  ->   r8         "field V46._reference (fldOffset=0x0)" P-INDEP
-;  V120 tmp112      [V120,T29] (  3,  6   )     int  ->  r10         "field V46._length (fldOffset=0x8)" P-INDEP
-;  V121 tmp113      [V121,T36] (  2,  4   )   byref  ->   r8         "field V48._reference (fldOffset=0x0)" P-INDEP
-;  V122 tmp114      [V122,T46] (  2,  4   )     int  ->  r10         "field V48._length (fldOffset=0x8)" P-INDEP
+;  V119 tmp111      [V119,T20] (  3,  6   )   byref  ->  r10         "field V46._reference (fldOffset=0x0)" P-INDEP
+;  V120 tmp112      [V120,T28] (  3,  6   )     int  ->   r9         "field V46._length (fldOffset=0x8)" P-INDEP
+;  V121 tmp113      [V121,T36] (  2,  4   )   byref  ->  r10         "field V48._reference (fldOffset=0x0)" P-INDEP
+;  V122 tmp114      [V122,T46] (  2,  4   )     int  ->   r9         "field V48._length (fldOffset=0x8)" P-INDEP
 ;* V123 tmp115      [V123    ] (  0,  0   )   byref  ->  zero-ref    "field V49._reference (fldOffset=0x0)" P-INDEP
 ;* V124 tmp116      [V124    ] (  0,  0   )     int  ->  zero-ref    "field V49._length (fldOffset=0x8)" P-INDEP
 ;  V125 tmp117      [V125,T37] (  2,  4   )   byref  ->  [rsp+0x30]  spill-single-def "field V56._reference (fldOffset=0x0)" P-INDEP
 ;* V126 tmp118      [V126    ] (  0,  0   )     int  ->  zero-ref    "field V56._length (fldOffset=0x8)" P-INDEP
-;  V127 tmp119      [V127,T38] (  2,  4   )   byref  ->   r8         "field V60._reference (fldOffset=0x0)" P-INDEP
-;  V128 tmp120      [V128,T47] (  2,  4   )     int  ->  r10         "field V60._length (fldOffset=0x8)" P-INDEP
+;  V127 tmp119      [V127,T38] (  2,  4   )   byref  ->  r10         "field V60._reference (fldOffset=0x0)" P-INDEP
+;  V128 tmp120      [V128,T47] (  2,  4   )     int  ->   r9         "field V60._length (fldOffset=0x8)" P-INDEP
 ;* V129 tmp121      [V129    ] (  0,  0   )   byref  ->  zero-ref    "field V61._reference (fldOffset=0x0)" P-INDEP
 ;* V130 tmp122      [V130    ] (  0,  0   )     int  ->  zero-ref    "field V61._length (fldOffset=0x8)" P-INDEP
 ;* V131 tmp123      [V131    ] (  0,  0   )   byref  ->  zero-ref    "field V65._reference (fldOffset=0x0)" P-INDEP
 ;* V132 tmp124      [V132    ] (  0,  0   )     int  ->  zero-ref    "field V65._length (fldOffset=0x8)" P-INDEP
 ;* V133 tmp125      [V133    ] (  0,  0   )   byref  ->  zero-ref    "field V67._reference (fldOffset=0x0)" P-INDEP
 ;* V134 tmp126      [V134    ] (  0,  0   )     int  ->  zero-ref    "field V67._length (fldOffset=0x8)" P-INDEP
-;  V135 tmp127      [V135,T23] (  3,  6   )   byref  ->  r13         "field V70._reference (fldOffset=0x0)" P-INDEP
-;  V136 tmp128      [V136,T30] (  3,  6   )     int  ->  r12         "field V70._length (fldOffset=0x8)" P-INDEP
-;  V137 tmp129      [V137,T39] (  2,  4   )   byref  ->  r13         "field V72._reference (fldOffset=0x0)" P-INDEP
-;  V138 tmp130      [V138,T48] (  2,  4   )     int  ->  r12         "field V72._length (fldOffset=0x8)" P-INDEP
+;  V135 tmp127      [V135,T21] (  3,  6   )   byref  ->  r12         "field V70._reference (fldOffset=0x0)" P-INDEP
+;  V136 tmp128      [V136,T29] (  3,  6   )     int  ->  rax         "field V70._length (fldOffset=0x8)" P-INDEP
+;  V137 tmp129      [V137,T39] (  2,  4   )   byref  ->  r12         "field V72._reference (fldOffset=0x0)" P-INDEP
+;  V138 tmp130      [V138,T48] (  2,  4   )     int  ->  rax         "field V72._length (fldOffset=0x8)" P-INDEP
 ;* V139 tmp131      [V139    ] (  0,  0   )   byref  ->  zero-ref    "field V73._reference (fldOffset=0x0)" P-INDEP
 ;* V140 tmp132      [V140    ] (  0,  0   )     int  ->  zero-ref    "field V73._length (fldOffset=0x8)" P-INDEP
-;  V141 tmp133      [V141,T24] (  3,  6   )   byref  ->  r13         "field V80._reference (fldOffset=0x0)" P-INDEP
+;  V141 tmp133      [V141,T22] (  3,  6   )   byref  ->  r12         "field V80._reference (fldOffset=0x0)" P-INDEP
 ;* V142 tmp134      [V142    ] (  0,  0   )     int  ->  zero-ref    "field V80._length (fldOffset=0x8)" P-INDEP
-;  V143 tmp135      [V143,T40] (  2,  4   )   byref  ->  rcx         "field V84._reference (fldOffset=0x0)" P-INDEP
-;  V144 tmp136      [V144,T31] (  3,  6   )     int  ->  r12         "field V84._length (fldOffset=0x8)" P-INDEP
+;  V143 tmp135      [V143,T40] (  2,  4   )   byref  ->  rdx         "field V84._reference (fldOffset=0x0)" P-INDEP
+;  V144 tmp136      [V144,T30] (  3,  6   )     int  ->  rax         "field V84._length (fldOffset=0x8)" P-INDEP
 ;* V145 tmp137      [V145    ] (  0,  0   )   byref  ->  zero-ref    "field V85._reference (fldOffset=0x0)" P-INDEP
 ;* V146 tmp138      [V146    ] (  0,  0   )     int  ->  zero-ref    "field V85._length (fldOffset=0x8)" P-INDEP
-;  V147 tmp139      [V147,T41] (  2,  4   )   byref  ->  rax         "field V90._reference (fldOffset=0x0)" P-INDEP
-;  V148 tmp140      [V148,T49] (  2,  4   )     int  ->   r8         "field V90._length (fldOffset=0x8)" P-INDEP
+;  V147 tmp139      [V147,T41] (  2,  4   )   byref  ->   r8         "field V90._reference (fldOffset=0x0)" P-INDEP
+;  V148 tmp140      [V148,T49] (  2,  4   )     int  ->  r10         "field V90._length (fldOffset=0x8)" P-INDEP
 ;* V149 tmp141      [V149    ] (  0,  0   )   byref  ->  zero-ref    "field V91._reference (fldOffset=0x0)" P-INDEP
 ;* V150 tmp142      [V150    ] (  0,  0   )     int  ->  zero-ref    "field V91._length (fldOffset=0x8)" P-INDEP
 ;  V151 tmp143      [V151,T42] (  2,  4   )   byref  ->  rax         "field V93._reference (fldOffset=0x0)" P-INDEP
 ;  V152 tmp144      [V152,T50] (  2,  4   )     int  ->   r8         "field V93._length (fldOffset=0x8)" P-INDEP
-;  V153 tmp145      [V153,T57] (  2,  2   )     ref  ->  rcx         single-def "arr expr"
-;  V154 tmp146      [V154,T55] (  3,  3   )     int  ->  rdx         "index expr"
-;  V155 tmp147      [V155    ] (  6, 24   )  struct (16) [rsp+0x48]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;  V156 tmp148      [V156    ] (  3, 12   )  struct (16) [rsp+0x38]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;* V157 tmp149      [V157,T51] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V158 tmp150      [V158,T52] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V159 tmp151      [V159,T54] (  0,  0   )     int  ->  zero-ref    "argument with side effect"
-;  V160 tmp152      [V160,T17] (  2,  8   )     ref  ->   r9         "argument with side effect"
-;* V161 tmp153      [V161,T53] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;  V162 cse0        [V162,T01] (  9, 18   )     ref  ->  rdx         multi-def "CSE - aggressive"
+;  V153 tmp145      [V153,T53] (  2,  2   )     ref  ->  rcx         single-def "arr expr"
+;  V154 tmp146      [V154,T51] (  3,  3   )     int  ->  rdx         "index expr"
+;  V155 tmp147      [V155    ] (  6, 24   )  struct (16) [rsp+0x58]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V156 tmp148      [V156    ] (  3, 12   )  struct (16) [rsp+0x48]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V157 cse0        [V157,T01] (  9, 18   )     ref  ->  rdx         multi-def "CSE - aggressive"
+;  V158 cse1        [V158,T31] (  3,  6   )     int  ->  r13         "CSE - moderate"
 ;
-; Lcl frame size = 104
+; Lcl frame size = 120
 
 G_M28185_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
@@ -183,12 +179,12 @@ G_M28185_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 104
+       sub      rsp, 120
        xor      eax, eax
-       mov      qword ptr [rsp+0x38], rax
+       mov      qword ptr [rsp+0x48], rax
        vxorps   xmm4, xmm4, xmm4
-       vmovdqa  xmmword ptr [rsp+0x40], xmm4
-       mov      qword ptr [rsp+0x50], rax
+       vmovdqa  xmmword ptr [rsp+0x50], xmm4
+       mov      qword ptr [rsp+0x60], rax
        mov      rbx, rcx
        ; byrRegs +[rbx]
        mov      rdi, rdx
@@ -220,9 +216,10 @@ G_M28185_IG04:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0088 {rbx
 G_M28185_IG05:        ; bbWeight=1, gcrefRegs=4040 {rsi r14}, byrefRegs=0088 {rbx rdi}, byref
        ; gcrRegs -[rcx]
        xor      r15d, r15d
-       cmp      dword ptr [r14+0x08], 0
+       mov      r13d, dword ptr [r14+0x08]
+       test     r13d, r13d
        jle      G_M28185_IG23
-                       ;; size=14 bbWeight=1 PerfScore 4.25
+                       ;; size=16 bbWeight=1 PerfScore 3.50
 G_M28185_IG06:        ; bbWeight=4, gcrefRegs=4040 {rsi r14}, byrefRegs=0088 {rbx rdi}, byref, isz
        mov      ecx, r15d
        movzx    rdx, word  ptr [r14+2*rcx+0x0C]
@@ -235,27 +232,29 @@ G_M28185_IG07:        ; bbWeight=2, gcrefRegs=4040 {rsi r14}, byrefRegs=0088 {rb
        jmp      G_M28185_IG20
                        ;; size=14 bbWeight=2 PerfScore 6.50
 G_M28185_IG08:        ; bbWeight=2, gcrefRegs=4040 {rsi r14}, byrefRegs=0088 {rbx rdi}, byref, isz
-       mov      r13, gword ptr [rsi+0x08]
-       ; gcrRegs +[r13]
+       mov      r12, gword ptr [rsi+0x08]
+       ; gcrRegs +[r12]
        mov      rcx, gword ptr [rsi+0x30]
        ; gcrRegs +[rcx]
        test     rcx, rcx
        jne      SHORT G_M28185_IG09
-       xor      r12, r12
-       ; byrRegs +[r12]
-       xor      eax, eax
+       xor      rax, rax
+       ; byrRegs +[rax]
+       xor      r8d, r8d
        jmp      SHORT G_M28185_IG10
                        ;; size=20 bbWeight=2 PerfScore 15.50
-G_M28185_IG09:        ; bbWeight=2, gcrefRegs=6042 {rcx rsi r13 r14}, byrefRegs=0088 {rbx rdi}, byref
-       ; byrRegs -[r12]
...

benchmarks.run_pgo.windows.x64.checked.mch

-30 (-28.30%) : 61821.dasm - Microsoft.CodeAnalysis.SmallDictionary`2+AvlNode[System.Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo]:.ctor(int,System.Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo):this (Tier0)

@@ -11,63 +11,48 @@
 ;  V03 arg3         [V03    ] (  1,  1   )   byref  ->  [rbp+0x28]  do-not-enreg[]
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05    ] (  1,  1   )  struct (16) [rbp-0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo>
-;  V06 tmp2         [V06    ] (  1,  1   )     ref  ->  [rbp-0x18]  do-not-enreg[] must-init "argument with side effect"
-;  V07 tmp3         [V07    ] (  1,  1   )     int  ->  [rbp-0x1C]  do-not-enreg[] "argument with side effect"
-;  V08 tmp4         [V08    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init "argument with side effect"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 48
 
 G_M11790_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 80
+       sub      rsp, 48
        vzeroupper 
-       lea      rbp, [rsp+0x50]
+       lea      rbp, [rsp+0x30]
        xor      eax, eax
-       mov      qword ptr [rbp-0x28], rax
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rbp-0x20], ymm4
+       mov      qword ptr [rbp-0x10], rax
        mov      gword ptr [rbp+0x10], rcx
        mov      dword ptr [rbp+0x18], edx
        mov      gword ptr [rbp+0x20], r8
        mov      bword ptr [rbp+0x28], r9
-                       ;; size=43 bbWeight=1 PerfScore 10.33
+                       ;; size=34 bbWeight=1 PerfScore 8.00
 G_M11790_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      r9, bword ptr [rbp+0x28]
+       ; byrRegs +[r9]
+                       ;; size=4 bbWeight=1 PerfScore 1.00
+G_M11790_IG03:        ; bbWeight=1, nogc, extend
+       vmovdqu  xmm0, xmmword ptr [r9]
+       vmovdqu  xmmword ptr [rbp-0x10], xmm0
+                       ;; size=10 bbWeight=1 PerfScore 5.00
+G_M11790_IG04:        ; bbWeight=1, extend
+       lea      r9, [rbp-0x10]
+       ; byrRegs -[r9]
+       mov      edx, dword ptr [rbp+0x18]
+       mov      r8, gword ptr [rbp+0x20]
+       ; gcrRegs +[r8]
        mov      rcx, gword ptr [rbp+0x10]
        ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-0x18], rcx
-       mov      ecx, dword ptr [rbp+0x18]
-       ; gcrRegs -[rcx]
-       mov      dword ptr [rbp-0x1C], ecx
-       mov      rcx, gword ptr [rbp+0x20]
-       ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-0x28], rcx
-       mov      rcx, bword ptr [rbp+0x28]
-       ; gcrRegs -[rcx]
-       ; byrRegs +[rcx]
-                       ;; size=26 bbWeight=1 PerfScore 7.00
-G_M11790_IG03:        ; bbWeight=1, nogc, extend
-       vmovdqu  xmm0, xmmword ptr [rcx]
-       vmovdqu  xmmword ptr [rbp-0x10], xmm0
-                       ;; size=9 bbWeight=1 PerfScore 5.00
-G_M11790_IG04:        ; bbWeight=1, extend
-       mov      rcx, gword ptr [rbp-0x18]
-       ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
-       mov      edx, dword ptr [rbp-0x1C]
-       mov      r8, gword ptr [rbp-0x28]
-       ; gcrRegs +[r8]
-       lea      r9, [rbp-0x10]
        call     [<unknown method>]
        ; gcrRegs -[rcx r8]
        nop      
                        ;; size=22 bbWeight=1 PerfScore 6.75
 G_M11790_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 80
+       add      rsp, 48
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 106, prolog size 28, PerfScore 30.83, instruction count 30, allocated bytes for code 106 (MethodHash=056ad1f1) for method Microsoft.CodeAnalysis.SmallDictionary`2+AvlNode[System.__Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo]:.ctor(int,System.__Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo):this (Tier0)
+; Total bytes of code 76, prolog size 19, PerfScore 22.50, instruction count 22, allocated bytes for code 76 (MethodHash=056ad1f1) for method Microsoft.CodeAnalysis.SmallDictionary`2+AvlNode[System.__Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo]:.ctor(int,System.__Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -80,5 +65,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

-30 (-28.30%) : 66808.dasm - Microsoft.CodeAnalysis.SmallDictionary`2+AvlNode[System.Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo]:.ctor(int,System.Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo):this (Instrumented Tier0)

@@ -11,63 +11,48 @@
 ;  V03 arg3         [V03    ] (  1,  1   )   byref  ->  [rbp+0x28]  do-not-enreg[]
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05    ] (  1,  1   )  struct (16) [rbp-0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo>
-;  V06 tmp2         [V06    ] (  1,  1   )     ref  ->  [rbp-0x18]  do-not-enreg[] must-init "argument with side effect"
-;  V07 tmp3         [V07    ] (  1,  1   )     int  ->  [rbp-0x1C]  do-not-enreg[] "argument with side effect"
-;  V08 tmp4         [V08    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init "argument with side effect"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 48
 
 G_M11790_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 80
+       sub      rsp, 48
        vzeroupper 
-       lea      rbp, [rsp+0x50]
+       lea      rbp, [rsp+0x30]
        xor      eax, eax
-       mov      qword ptr [rbp-0x28], rax
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rbp-0x20], ymm4
+       mov      qword ptr [rbp-0x10], rax
        mov      gword ptr [rbp+0x10], rcx
        mov      dword ptr [rbp+0x18], edx
        mov      gword ptr [rbp+0x20], r8
        mov      bword ptr [rbp+0x28], r9
-                       ;; size=43 bbWeight=1 PerfScore 10.33
+                       ;; size=34 bbWeight=1 PerfScore 8.00
 G_M11790_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      r9, bword ptr [rbp+0x28]
+       ; byrRegs +[r9]
+                       ;; size=4 bbWeight=1 PerfScore 1.00
+G_M11790_IG03:        ; bbWeight=1, nogc, extend
+       vmovdqu  xmm0, xmmword ptr [r9]
+       vmovdqu  xmmword ptr [rbp-0x10], xmm0
+                       ;; size=10 bbWeight=1 PerfScore 5.00
+G_M11790_IG04:        ; bbWeight=1, extend
+       lea      r9, [rbp-0x10]
+       ; byrRegs -[r9]
+       mov      edx, dword ptr [rbp+0x18]
+       mov      r8, gword ptr [rbp+0x20]
+       ; gcrRegs +[r8]
        mov      rcx, gword ptr [rbp+0x10]
        ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-0x18], rcx
-       mov      ecx, dword ptr [rbp+0x18]
-       ; gcrRegs -[rcx]
-       mov      dword ptr [rbp-0x1C], ecx
-       mov      rcx, gword ptr [rbp+0x20]
-       ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-0x28], rcx
-       mov      rcx, bword ptr [rbp+0x28]
-       ; gcrRegs -[rcx]
-       ; byrRegs +[rcx]
-                       ;; size=26 bbWeight=1 PerfScore 7.00
-G_M11790_IG03:        ; bbWeight=1, nogc, extend
-       vmovdqu  xmm0, xmmword ptr [rcx]
-       vmovdqu  xmmword ptr [rbp-0x10], xmm0
-                       ;; size=9 bbWeight=1 PerfScore 5.00
-G_M11790_IG04:        ; bbWeight=1, extend
-       mov      rcx, gword ptr [rbp-0x18]
-       ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
-       mov      edx, dword ptr [rbp-0x1C]
-       mov      r8, gword ptr [rbp-0x28]
-       ; gcrRegs +[r8]
-       lea      r9, [rbp-0x10]
        call     [<unknown method>]
        ; gcrRegs -[rcx r8]
        nop      
                        ;; size=22 bbWeight=1 PerfScore 6.75
 G_M11790_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 80
+       add      rsp, 48
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 106, prolog size 28, PerfScore 30.83, instruction count 30, allocated bytes for code 106 (MethodHash=056ad1f1) for method Microsoft.CodeAnalysis.SmallDictionary`2+AvlNode[System.__Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo]:.ctor(int,System.__Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo):this (Instrumented Tier0)
+; Total bytes of code 76, prolog size 19, PerfScore 22.50, instruction count 22, allocated bytes for code 76 (MethodHash=056ad1f1) for method Microsoft.CodeAnalysis.SmallDictionary`2+AvlNode[System.__Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo]:.ctor(int,System.__Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo):this (Instrumented Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -80,5 +65,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

-26 (-28.26%) : 31351.dasm - System.Diagnostics.ActivityEvent:.ctor(System.String):this (Tier0)

@@ -10,53 +10,40 @@
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03    ] (  1,  1   )  struct (16) [rbp-0x10]  do-not-enreg[HS] hidden-struct-arg "spilled call-like call argument" <System.DateTimeOffset>
 ;  V04 tmp2         [V04    ] (  1,  1   )  struct (16) [rbp-0x20]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.DateTimeOffset>
-;  V05 tmp3         [V05    ] (  1,  1   )   byref  ->  [rbp-0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V06 tmp4         [V06    ] (  1,  1   )     ref  ->  [rbp-0x30]  do-not-enreg[] must-init "argument with side effect"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 64
 
 G_M28855_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 80
-       lea      rbp, [rsp+0x50]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x28], rax
-       mov      qword ptr [rbp-0x30], rax
+       sub      rsp, 64
+       lea      rbp, [rsp+0x40]
        mov      bword ptr [rbp+0x10], rcx
        mov      gword ptr [rbp+0x18], rdx
-                       ;; size=28 bbWeight=1 PerfScore 6.00
+                       ;; size=18 bbWeight=1 PerfScore 3.75
 G_M28855_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        lea      rcx, [rbp-0x10]
        call     [<unknown method>]
-       mov      rcx, bword ptr [rbp+0x10]
-       ; byrRegs +[rcx]
-       mov      bword ptr [rbp-0x28], rcx
-       mov      rcx, gword ptr [rbp+0x18]
-       ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
-       mov      gword ptr [rbp-0x30], rcx
        vmovups  xmm0, xmmword ptr [rbp-0x10]
        vmovups  xmmword ptr [rbp-0x20], xmm0
-       mov      rcx, bword ptr [rbp-0x28]
-       ; gcrRegs -[rcx]
-       ; byrRegs +[rcx]
-       mov      rdx, gword ptr [rbp-0x30]
-       ; gcrRegs +[rdx]
        lea      r8, [rbp-0x20]
+       mov      rdx, gword ptr [rbp+0x18]
+       ; gcrRegs +[rdx]
+       mov      rcx, bword ptr [rbp+0x10]
+       ; byrRegs +[rcx]
        xor      r9, r9
        ; gcrRegs +[r9]
        call     [<unknown method>]
        ; gcrRegs -[rdx r9]
        ; byrRegs -[rcx]
        nop      
-                       ;; size=58 bbWeight=1 PerfScore 17.50
+                       ;; size=42 bbWeight=1 PerfScore 13.50
 G_M28855_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 80
+       add      rsp, 64
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 92, prolog size 20, PerfScore 25.25, instruction count 25, allocated bytes for code 92 (MethodHash=e7188f48) for method System.Diagnostics.ActivityEvent:.ctor(System.String):this (Tier0)
+; Total bytes of code 66, prolog size 10, PerfScore 19.00, instruction count 18, allocated bytes for code 66 (MethodHash=e7188f48) for method System.Diagnostics.ActivityEvent:.ctor(System.String):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -69,5 +56,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+22 (+3.24%) : 47355.dasm - System.String:StartsWith(System.String,int):ubyte:this (Tier1)

@@ -12,10 +12,10 @@
 ;  V01 arg1         [V01,T01] ( 10,  7   )     ref  ->  rsi         class-hnd single-def <System.String>
 ;  V02 arg2         [V02,T02] ( 10,  6   )     int  ->  rdi         single-def
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T39] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V04 tmp1         [V04,T37] (  3,  0   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
 ;  V05 tmp2         [V05,T06] (  4,  4   )   byref  ->  rcx         single-def "impAppendStmt"
 ;  V06 tmp3         [V06,T12] (  2,  2   )   byref  ->  rcx         single-def "impAppendStmt"
-;  V07 tmp4         [V07,T08] (  4,  3   )     ref  ->  r14         class-hnd exact single-def "impAppendStmt" <System.Globalization.CompareInfo>
+;  V07 tmp4         [V07,T08] (  4,  3   )     ref  ->  r15         class-hnd exact single-def "impAppendStmt" <System.Globalization.CompareInfo>
 ;  V08 tmp5         [V08,T09] (  3,  3   )     ref  ->  r14         class-hnd exact single-def "impAppendStmt" <System.Globalization.CompareInfo>
 ;* V09 tmp6         [V09    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V10 tmp7         [V10    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -24,14 +24,14 @@
 ;* V13 tmp10        [V13    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V14 tmp11        [V14    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V15 tmp12        [V15    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V16 tmp13        [V16,T19] (  2,  2   )     int  ->  rdx         "Inlining Arg"
-;  V17 tmp14        [V17,T13] (  2,  2   )   byref  ->  rcx         single-def "Inlining Arg"
+;  V16 tmp13        [V16,T17] (  2,  2   )     int  ->   r8         "Inlining Arg"
+;  V17 tmp14        [V17,T13] (  2,  2   )   byref  ->  rdx         single-def "Inlining Arg"
 ;* V18 tmp15        [V18    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp16        [V19    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp17        [V20    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V21 tmp18        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V22 tmp19        [V22    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V23 tmp20        [V23,T20] (  2,  2   )     int  ->  rbp         "Inlining Arg"
+;  V23 tmp20        [V23,T18] (  2,  2   )     int  ->  rbp         "Inlining Arg"
 ;  V24 tmp21        [V24,T14] (  2,  2   )   byref  ->  rsi         single-def "Inlining Arg"
 ;* V25 tmp22        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp23        [V26    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
@@ -42,75 +42,77 @@
 ;* V31 tmp28        [V31    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V32 tmp29        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V33 tmp30        [V33    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V34 tmp31        [V34,T21] (  2,  2   )     int  ->  rdx         "Inlining Arg"
-;  V35 tmp32        [V35,T15] (  2,  2   )   byref  ->  rcx         single-def "Inlining Arg"
+;  V34 tmp31        [V34,T19] (  2,  2   )     int  ->   r8         "Inlining Arg"
+;  V35 tmp32        [V35,T15] (  2,  2   )   byref  ->  rdx         single-def "Inlining Arg"
 ;* V36 tmp33        [V36    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V37 tmp34        [V37    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V38 tmp35        [V38    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
 ;* V39 tmp36        [V39    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V40 tmp37        [V40    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V41 tmp38        [V41,T22] (  2,  2   )     int  ->   r9         "Inlining Arg"
-;  V42 tmp39        [V42,T16] (  2,  2   )   byref  ->   r8         single-def "Inlining Arg"
+;  V41 tmp38        [V41,T20] (  2,  2   )     int  ->  rcx         "Inlining Arg"
+;  V42 tmp39        [V42,T16] (  2,  2   )   byref  ->   r9         single-def "Inlining Arg"
 ;* V43 tmp40        [V43    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V44 tmp41        [V44    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;  V45 tmp42        [V45,T11] (  4,  2   )   ubyte  ->  rax         "Inline return value spill temp"
 ;  V46 tmp43        [V46,T03] (  6,  6   )     int  ->   r8         "Inlining Arg"
 ;  V47 tmp44        [V47,T07] (  4,  4   )   byref  ->  rdx         single-def "Inlining Arg"
 ;  V48 tmp45        [V48,T04] (  5,  5   )     int  ->  rax         "Single return block return value"
-;  V49 tmp46        [V49,T23] (  2,  1   )   byref  ->  rcx         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
-;  V50 tmp47        [V50,T31] (  2,  1   )     int  ->  rdx         "field V11._length (fldOffset=0x8)" P-INDEP
+;  V49 tmp46        [V49,T21] (  2,  1   )   byref  ->  rdx         single-def "field V11._reference (fldOffset=0x0)" P-INDEP
+;  V50 tmp47        [V50,T29] (  2,  1   )     int  ->   r8         "field V11._length (fldOffset=0x8)" P-INDEP
 ;* V51 tmp48        [V51    ] (  0,  0   )   byref  ->  zero-ref    "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V52 tmp49        [V52    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
-;  V53 tmp50        [V53,T24] (  2,  1   )   byref  ->  rcx         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
-;  V54 tmp51        [V54,T32] (  2,  1   )     int  ->  rdx         "field V14._length (fldOffset=0x8)" P-INDEP
+;  V53 tmp50        [V53,T22] (  2,  1   )   byref  ->  rdx         single-def "field V14._reference (fldOffset=0x0)" P-INDEP
+;  V54 tmp51        [V54,T30] (  2,  1   )     int  ->   r8         "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V55 tmp52        [V55    ] (  0,  0   )   byref  ->  zero-ref    "field V15._reference (fldOffset=0x0)" P-INDEP
 ;* V56 tmp53        [V56    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
-;  V57 tmp54        [V57,T25] (  2,  1   )   byref  ->  rsi         "field V20._reference (fldOffset=0x0)" P-INDEP
-;  V58 tmp55        [V58,T33] (  2,  1   )     int  ->  rbp         "field V20._length (fldOffset=0x8)" P-INDEP
-;  V59 tmp56        [V59,T26] (  2,  1   )   byref  ->  rsi         single-def "field V21._reference (fldOffset=0x0)" P-INDEP
-;  V60 tmp57        [V60,T34] (  2,  1   )     int  ->  rbp         "field V21._length (fldOffset=0x8)" P-INDEP
+;  V57 tmp54        [V57,T23] (  2,  1   )   byref  ->  rsi         "field V20._reference (fldOffset=0x0)" P-INDEP
+;  V58 tmp55        [V58,T31] (  2,  1   )     int  ->  rbp         "field V20._length (fldOffset=0x8)" P-INDEP
+;  V59 tmp56        [V59,T24] (  2,  1   )   byref  ->  rsi         single-def "field V21._reference (fldOffset=0x0)" P-INDEP
+;  V60 tmp57        [V60,T32] (  2,  1   )     int  ->  rbp         "field V21._length (fldOffset=0x8)" P-INDEP
 ;* V61 tmp58        [V61    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V22._reference (fldOffset=0x0)" P-INDEP
 ;* V62 tmp59        [V62    ] (  0,  0   )     int  ->  zero-ref    "field V22._length (fldOffset=0x8)" P-INDEP
-;  V63 tmp60        [V63,T27] (  2,  1   )   byref  ->  rcx         single-def "field V29._reference (fldOffset=0x0)" P-INDEP
-;  V64 tmp61        [V64,T35] (  2,  1   )     int  ->  rdx         "field V29._length (fldOffset=0x8)" P-INDEP
+;  V63 tmp60        [V63,T25] (  2,  1   )   byref  ->  rdx         single-def "field V29._reference (fldOffset=0x0)" P-INDEP
+;  V64 tmp61        [V64,T33] (  2,  1   )     int  ->   r8         "field V29._length (fldOffset=0x8)" P-INDEP
 ;* V65 tmp62        [V65    ] (  0,  0   )   byref  ->  zero-ref    "field V31._reference (fldOffset=0x0)" P-INDEP
 ;* V66 tmp63        [V66    ] (  0,  0   )     int  ->  zero-ref    "field V31._length (fldOffset=0x8)" P-INDEP
-;  V67 tmp64        [V67,T28] (  2,  1   )   byref  ->  rcx         single-def "field V32._reference (fldOffset=0x0)" P-INDEP
-;  V68 tmp65        [V68,T36] (  2,  1   )     int  ->  rdx         "field V32._length (fldOffset=0x8)" P-INDEP
+;  V67 tmp64        [V67,T26] (  2,  1   )   byref  ->  rdx         single-def "field V32._reference (fldOffset=0x0)" P-INDEP
+;  V68 tmp65        [V68,T34] (  2,  1   )     int  ->   r8         "field V32._length (fldOffset=0x8)" P-INDEP
 ;* V69 tmp66        [V69    ] (  0,  0   )   byref  ->  zero-ref    "field V33._reference (fldOffset=0x0)" P-INDEP
 ;* V70 tmp67        [V70    ] (  0,  0   )     int  ->  zero-ref    "field V33._length (fldOffset=0x8)" P-INDEP
-;  V71 tmp68        [V71,T29] (  2,  1   )   byref  ->   r8         "field V38._reference (fldOffset=0x0)" P-INDEP
-;  V72 tmp69        [V72,T37] (  2,  1   )     int  ->   r9         "field V38._length (fldOffset=0x8)" P-INDEP
-;  V73 tmp70        [V73,T30] (  2,  1   )   byref  ->   r8         single-def "field V39._reference (fldOffset=0x0)" P-INDEP
-;  V74 tmp71        [V74,T38] (  2,  1   )     int  ->   r9         "field V39._length (fldOffset=0x8)" P-INDEP
+;  V71 tmp68        [V71,T27] (  2,  1   )   byref  ->   r9         "field V38._reference (fldOffset=0x0)" P-INDEP
+;  V72 tmp69        [V72,T35] (  2,  1   )     int  ->  rcx         "field V38._length (fldOffset=0x8)" P-INDEP
+;  V73 tmp70        [V73,T28] (  2,  1   )   byref  ->   r9         single-def "field V39._reference (fldOffset=0x0)" P-INDEP
+;  V74 tmp71        [V74,T36] (  2,  1   )     int  ->  rcx         "field V39._length (fldOffset=0x8)" P-INDEP
 ;* V75 tmp72        [V75    ] (  0,  0   )   byref  ->  zero-ref    single-def "field V40._reference (fldOffset=0x0)" P-INDEP
 ;* V76 tmp73        [V76    ] (  0,  0   )     int  ->  zero-ref    "field V40._length (fldOffset=0x8)" P-INDEP
-;  V77 tmp74        [V77,T40] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
-;  V78 tmp75        [V78,T41] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
+;  V77 tmp74        [V77,T38] (  2,  0   )     ref  ->  rsi         single-def "argument with side effect"
+;  V78 tmp75        [V78,T39] (  2,  0   )     ref  ->   r8         single-def "argument with side effect"
 ;  V79 tmp76        [V79,T10] (  3,  3   )     ref  ->  rax         single-def "argument with side effect"
-;  V80 tmp77        [V80    ] (  6,  6   )  struct (16) [rsp+0x30]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;  V81 tmp78        [V81    ] (  6,  6   )  struct (16) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;  V82 tmp79        [V82,T17] (  2,  2   )     ref  ->  r14         single-def "argument with side effect"
-;  V83 tmp80        [V83,T18] (  2,  2   )     ref  ->  r14         single-def "argument with side effect"
-;  V84 cse0         [V84,T05] (  9,  4.50)     int  ->  rbp         "CSE - aggressive"
+;  V80 tmp77        [V80    ] (  6,  6   )  struct (16) [rsp+0x38]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V81 tmp78        [V81    ] (  6,  6   )  struct (16) [rsp+0x28]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V82 cse0         [V82,T05] (  9,  4.50)     int  ->  rbp         "CSE - aggressive"
 ;
-; Lcl frame size = 64
+; Lcl frame size = 72
 
 G_M53942_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
+       push     r15
        push     r14
        push     rdi
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 64
+       sub      rsp, 72
+       xor      eax, eax
+       mov      qword ptr [rsp+0x28], rax
        vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rsp+0x20], ymm4
+       vmovdqa  xmmword ptr [rsp+0x30], xmm4
+       mov      qword ptr [rsp+0x40], rax
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      rsi, rdx
        ; gcrRegs +[rsi]
        mov      edi, r8d
-                       ;; size=29 bbWeight=1 PerfScore 8.33
+                       ;; size=43 bbWeight=1 PerfScore 11.58
 G_M53942_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        test     rsi, rsi
        je       G_M53942_IG22
@@ -126,14 +128,15 @@ G_M53942_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        mov      eax, 1
                        ;; size=5 bbWeight=0.50 PerfScore 0.12
 G_M53942_IG05:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 64
+       add      rsp, 72
        pop      rbx
        pop      rbp
        pop      rsi
        pop      rdi
        pop      r14
+       pop      r15
        ret      
-                       ;; size=11 bbWeight=0.50 PerfScore 1.88
+                       ;; size=13 bbWeight=0.50 PerfScore 2.12
 G_M53942_IG06:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs +[rbx rsi]
        mov      ebp, dword ptr [rsi+0x08]
@@ -175,65 +178,65 @@ G_M53942_IG09:        ; bbWeight=0.50, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0
        cmp      byte  ptr [r14], r14b
        test     rbx, rbx
        je       G_M53942_IG27
-       lea      rcx, bword ptr [rbx+0x0C]
-       ; byrRegs +[rcx]
-       mov      edx, dword ptr [rbx+0x08]
+       lea      rdx, bword ptr [rbx+0x0C]
+       ; byrRegs +[rdx]
+       mov      r8d, dword ptr [rbx+0x08]
        add      rsi, 12
        ; gcrRegs -[rsi]
        ; byrRegs +[rsi]
-       mov      bword ptr [rsp+0x30], rcx
-       mov      dword ptr [rsp+0x38], edx
-       mov      bword ptr [rsp+0x20], rsi
-       mov      dword ptr [rsp+0x28], ebp
-       mov      rcx, r14
-       ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
-       lea      rdx, [rsp+0x30]
-       lea      r8, [rsp+0x20]
+       mov      bword ptr [rsp+0x38], rdx
+       mov      dword ptr [rsp+0x40], r8d
+       mov      bword ptr [rsp+0x28], rsi
+       mov      dword ptr [rsp+0x30], ebp
+       lea      rdx, [rsp+0x38]
+       ; byrRegs -[rdx]
+       lea      r8, [rsp+0x28]
        mov      r9d, edi
        and      r9d, 1
+       mov      rcx, r14
+       ; gcrRegs +[rcx]
        call     [System.Globalization.CompareInfo:IsPrefix(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):ubyte:this]
        ; gcrRegs -[rcx rbx r14]
        ; byrRegs -[rsi]
        ; gcr arg pop 0
        jmp      G_M53942_IG20
-                       ;; size=72 bbWeight=0.50 PerfScore 8.88
+                       ;; size=74 bbWeight=0.50 PerfScore 8.88
 G_M53942_IG10:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rbx rsi]
        test     byte  ptr [(reloc)], 1      ; global ptr
        je       G_M53942_IG25
                        ;; size=13 bbWeight=0.50 PerfScore 2.00
 G_M53942_IG11:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
-       mov      rcx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
-       mov      r14, gword ptr [rcx]
-       ; gcrRegs +[r14]
+       mov      rdx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
+       mov      r15, gword ptr [rdx]
+       ; gcrRegs +[r15]
        cmp      edi, 5
        ja       G_M53942_IG26
-       cmp      byte  ptr [r14], r14b
+       cmp      byte  ptr [r15], r15b
        test     rbx, rbx
        je       G_M53942_IG27
                        ;; size=34 bbWeight=0.50 PerfScore 3.88
-G_M53942_IG12:        ; bbWeight=0.50, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref, isz
-       lea      rcx, bword ptr [rbx+0x0C]
-       ; byrRegs +[rcx]
-       mov      edx, dword ptr [rbx+0x08]
-       lea      r8, bword ptr [rsi+0x0C]
-       ; byrRegs +[r8]
-       mov      r9d, ebp
-       mov      bword ptr [rsp+0x30], rcx
-       mov      dword ptr [rsp+0x38], edx
-       mov      bword ptr [rsp+0x20], r8
-       mov      dword ptr [rsp+0x28], r9d
-       mov      rcx, r14
-       ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
-       lea      rdx, [rsp+0x30]
-       lea      r8, [rsp+0x20]
-       ; byrRegs -[r8]
+G_M53942_IG12:        ; bbWeight=0.50, gcrefRegs=8048 {rbx rsi r15}, byrefRegs=0000 {}, byref, isz
+       lea      rdx, bword ptr [rbx+0x0C]
+       ; byrRegs +[rdx]
+       mov      r8d, dword ptr [rbx+0x08]
+       lea      r9, bword ptr [rsi+0x0C]
+       ; byrRegs +[r9]
+       mov      ecx, ebp
+       mov      bword ptr [rsp+0x38], rdx
+       mov      dword ptr [rsp+0x40], r8d
+       mov      bword ptr [rsp+0x28], r9
+       mov      dword ptr [rsp+0x30], ecx
+       lea      rdx, [rsp+0x38]
+       ; byrRegs -[rdx]
+       lea      r8, [rsp+0x28]
        mov      r9d, edi
+       ; byrRegs -[r9]
...

+18 (+3.39%) : 67521.dasm - Microsoft.CodeAnalysis.PEModule:FindTargetAttribute(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.AttributeDescription,byref):Microsoft.CodeAnalysis.PEModule+AttributeInfo (Tier1)

@@ -12,12 +12,12 @@
 ;  V00 arg0         [V00,T01] (  6,  6.78)     ref  ->  rbx         class-hnd single-def <System.Reflection.Metadata.MetadataReader>
 ;* V01 arg1         [V01    ] (  0,  0   )  struct ( 8) zero-ref    single-def <System.Reflection.Metadata.EntityHandle>
 ;  V02 arg2         [V02,T02] (  3,  7.55)   byref  ->  rsi         single-def
-;  V03 arg3         [V03,T04] (  4,  3.01)   byref  ->  rdi         single-def
+;  V03 arg3         [V03,T03] (  4,  3.01)   byref  ->  rdi         single-def
 ;  V04 loc0         [V04    ] ( 11, 18.84)  struct (16) [rbp-0x48]  do-not-enreg[XS] must-init addr-exposed ld-addr-op <System.Reflection.Metadata.CustomAttributeHandleCollection+Enumerator>
 ;* V05 loc1         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.Reflection.Metadata.CustomAttributeHandleCollection>
 ;* V06 loc2         [V06    ] (  0,  0   )  struct ( 8) zero-ref    <System.Reflection.Metadata.CustomAttributeHandle>
 ;  V07 loc3         [V07    ] (  2,  3.55)   ubyte  ->  [rbp-0x50]  do-not-enreg[X] must-init addr-exposed ld-addr-op
-;  V08 loc4         [V08,T13] (  3,  3.56)     int  ->  rax        
+;  V08 loc4         [V08,T12] (  3,  3.56)     int  ->  rax        
 ;* V09 loc5         [V09    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] <Microsoft.CodeAnalysis.PEModule+AttributeInfo>
 ;* V10 loc6         [V10    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[S] ld-addr-op <Microsoft.CodeAnalysis.PEModule+AttributeInfo>
 ;  V11 OutArgs      [V11    ] (  1,  1   )  struct (64) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
@@ -42,8 +42,8 @@
 ;* V30 tmp19        [V30    ] (  0,  0   )  struct ( 8) zero-ref    "Inline return value spill temp" <System.Reflection.Metadata.CustomAttributeHandle>
 ;* V31 tmp20        [V31    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
 ;* V32 tmp21        [V32    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <System.Reflection.Metadata.CustomAttributeHandle>
-;* V33 tmp22        [V33,T11] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V34 tmp23        [V34,T05] (  3,  2   )     int  ->  rcx         single-def "field V01._vToken (fldOffset=0x0)" P-INDEP
+;* V33 tmp22        [V33,T10] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V34 tmp23        [V34,T04] (  3,  2   )     int  ->  rcx         single-def "field V01._vToken (fldOffset=0x0)" P-INDEP
 ;  V35 tmp24        [V35    ] (  3,  2.78)     ref  ->  [rbp-0x48]  do-not-enreg[X] addr-exposed "field V04._reader (fldOffset=0x0)" P-DEP
 ;  V36 tmp25        [V36    ] (  3,  3.77)     int  ->  [rbp-0x40]  do-not-enreg[X] addr-exposed "field V04._lastRowId (fldOffset=0x8)" P-DEP
 ;  V37 tmp26        [V37    ] (  7, 12.29)     int  ->  [rbp-0x3C]  do-not-enreg[X] addr-exposed "field V04._currentRowId (fldOffset=0xc)" P-DEP
@@ -55,30 +55,28 @@
 ;* V43 tmp32        [V43    ] (  0,  0   )   ubyte  ->  zero-ref    do-not-enreg[] "field V09.SignatureIndex (fldOffset=0x4)" P-DEP
 ;* V44 tmp33        [V44    ] (  0,  0   )     int  ->  zero-ref    do-not-enreg[] "field V10.Handle (fldOffset=0x0)" P-DEP
 ;* V45 tmp34        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    do-not-enreg[] "field V10.SignatureIndex (fldOffset=0x4)" P-DEP
-;  V46 tmp35        [V46,T22] (  2,  0.02)     int  ->  [rbp-0x58]  do-not-enreg[] "field V12.Handle (fldOffset=0x0)" P-DEP
-;  V47 tmp36        [V47,T23] (  2,  0.02)   ubyte  ->  [rbp-0x54]  do-not-enreg[] "field V12.SignatureIndex (fldOffset=0x4)" P-DEP
+;  V46 tmp35        [V46,T20] (  2,  0.02)     int  ->  [rbp-0x58]  do-not-enreg[] "field V12.Handle (fldOffset=0x0)" P-DEP
+;  V47 tmp36        [V47,T21] (  2,  0.02)   ubyte  ->  [rbp-0x54]  do-not-enreg[] "field V12.SignatureIndex (fldOffset=0x4)" P-DEP
 ;* V48 tmp37        [V48    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V14._reader (fldOffset=0x0)" P-INDEP
-;  V49 tmp38        [V49,T16] (  3,  2   )     int  ->  rcx         "field V14._firstRowId (fldOffset=0x8)" P-INDEP
-;  V50 tmp39        [V50,T17] (  3,  2   )     int  ->  rdx         "field V14._lastRowId (fldOffset=0xc)" P-INDEP
-;* V51 tmp40        [V51,T20] (  0,  0   )     ref  ->  zero-ref    single-def "field V26._reader (fldOffset=0x0)" P-INDEP
-;  V52 tmp41        [V52,T18] (  2,  2   )     int  ->  rdx         single-def "field V26._lastRowId (fldOffset=0x8)" P-INDEP
-;  V53 tmp42        [V53,T19] (  2,  2   )     int  ->  rcx         single-def "field V26._currentRowId (fldOffset=0xc)" P-INDEP
-;  V54 tmp43        [V54,T12] (  4,  3.56)     int  ->  r15         "field V30._rowId (fldOffset=0x0)" P-INDEP
-;  V55 tmp44        [V55,T14] (  2,  3.55)     int  ->  r15         "field V32._rowId (fldOffset=0x0)" P-INDEP
-;  V56 tmp45        [V56,T07] (  2,  4   )     int  ->  rax         "argument with side effect"
-;  V57 tmp46        [V57,T08] (  2,  4   )     int  ->  r13         "argument with side effect"
-;  V58 tmp47        [V58,T09] (  2,  4   )     int  ->  r12         "argument with side effect"
-;  V59 tmp48        [V59,T10] (  2,  4   )     int  ->  [rbp-0x6C]  spill-single-def "argument with side effect"
-;  V60 tmp49        [V60,T06] (  2,  4   )   byref  ->  r15         single-def "argument with side effect"
-;  V61 tmp50        [V61,T26] (  2,  0   )     int  ->  rax         "argument with side effect"
-;  V62 tmp51        [V62,T24] (  2,  0   )     ref  ->  r13         single-def "argument with side effect"
-;  V63 tmp52        [V63,T27] (  2,  0   )     int  ->  r12         "argument with side effect"
-;  V64 tmp53        [V64,T28] (  2,  0   )     int  ->  [rbp-0x70]  spill-single-def "argument with side effect"
-;  V65 tmp54        [V65,T25] (  2,  0   )   byref  ->  r15         single-def "argument with side effect"
+;  V49 tmp38        [V49,T14] (  3,  2   )     int  ->   r8         "field V14._firstRowId (fldOffset=0x8)" P-INDEP
+;  V50 tmp39        [V50,T15] (  3,  2   )     int  ->   r9         "field V14._lastRowId (fldOffset=0xc)" P-INDEP
+;* V51 tmp40        [V51,T18] (  0,  0   )     ref  ->  zero-ref    single-def "field V26._reader (fldOffset=0x0)" P-INDEP
+;  V52 tmp41        [V52,T16] (  2,  2   )     int  ->   r9         single-def "field V26._lastRowId (fldOffset=0x8)" P-INDEP
+;  V53 tmp42        [V53,T17] (  2,  2   )     int  ->   r8         single-def "field V26._currentRowId (fldOffset=0xc)" P-INDEP
+;  V54 tmp43        [V54,T11] (  4,  3.56)     int  ->  r15         "field V30._rowId (fldOffset=0x0)" P-INDEP
+;  V55 tmp44        [V55,T13] (  2,  3.55)     int  ->  r15         "field V32._rowId (fldOffset=0x0)" P-INDEP
+;  V56 tmp45        [V56,T06] (  2,  4   )     int  ->  rax         "argument with side effect"
+;  V57 tmp46        [V57,T07] (  2,  4   )     int  ->  r13         "argument with side effect"
+;  V58 tmp47        [V58,T08] (  2,  4   )     int  ->  r12         "argument with side effect"
+;  V59 tmp48        [V59,T09] (  2,  4   )     int  ->  [rbp-0x6C]  spill-single-def "argument with side effect"
+;  V60 tmp49        [V60,T05] (  2,  4   )   byref  ->  r15         single-def "argument with side effect"
+;  V61 tmp50        [V61,T24] (  2,  0   )     int  ->  rax         "argument with side effect"
+;  V62 tmp51        [V62,T22] (  2,  0   )     ref  ->  r13         single-def "argument with side effect"
+;  V63 tmp52        [V63,T25] (  2,  0   )     int  ->  r12         "argument with side effect"
+;  V64 tmp53        [V64,T26] (  2,  0   )     int  ->  [rbp-0x70]  spill-single-def "argument with side effect"
+;  V65 tmp54        [V65,T23] (  2,  0   )   byref  ->  r15         single-def "argument with side effect"
 ;  V66 tmp55        [V66    ] (  2,  7.10)  struct (32) [rbp-0x90]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.AttributeDescription>
-;* V67 tmp56        [V67,T15] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V68 tmp57        [V68,T03] (  2,  7.10)     int  ->  rdx         "argument with side effect"
-;  V69 PSPSym       [V69,T21] (  1,  1   )    long  ->  [rbp-0xA0]  do-not-enreg[V] "PSPSym"
+;  V67 PSPSym       [V67,T19] (  1,  1   )    long  ->  [rbp-0xA0]  do-not-enreg[V] "PSPSym"
 ;
 ; Lcl frame size = 168
 
@@ -112,12 +110,12 @@ G_M54788_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
 G_M54788_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref
        mov      byte  ptr [rdi], 0
                        ;; size=3 bbWeight=1 PerfScore 1.00
-G_M54788_IG03:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref, isz
+G_M54788_IG03:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref
        cmp      byte  ptr [rbx], bl
        lea      r14, bword ptr [rbx+0x2B0]
        ; byrRegs +[r14]
        cmp      gword ptr [r14], 0
-       jne      SHORT G_M54788_IG07
+       jne      G_M54788_IG07
        lea      r15, bword ptr [r14+0x20]
        ; byrRegs +[r15]
        mov      r13d, dword ptr [r14+0x08]
@@ -141,27 +139,27 @@ G_M54788_IG03:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rd
        call     [<unknown method>]
        ; byrRegs -[rcx r14-r15]
        ; gcr arg pop 0
-                       ;; size=90 bbWeight=1 PerfScore 29.75
+                       ;; size=94 bbWeight=1 PerfScore 29.75
 G_M54788_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref, isz
        cmp      dword ptr [rbp-0x60], -1
        je       SHORT G_M54788_IG06
-       mov      ecx, dword ptr [rbp-0x60]
-       inc      ecx
-       mov      edx, dword ptr [rbp-0x68]
-       inc      edx
-                       ;; size=16 bbWeight=1 PerfScore 5.50
+       mov      r8d, dword ptr [rbp-0x60]
+       inc      r8d
+       mov      r9d, dword ptr [rbp-0x68]
+       inc      r9d
+                       ;; size=20 bbWeight=1 PerfScore 5.50
 G_M54788_IG05:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref
-       dec      ecx
+       dec      r8d
        mov      gword ptr [rbp-0x48], rbx
-       mov      dword ptr [rbp-0x40], edx
-       mov      dword ptr [rbp-0x3C], ecx
-       jmp      G_M54788_IG14
-                       ;; size=17 bbWeight=1 PerfScore 5.25
+       mov      dword ptr [rbp-0x40], r9d
+       mov      dword ptr [rbp-0x3C], r8d
+       jmp      G_M54788_IG13
+                       ;; size=20 bbWeight=1 PerfScore 5.25
 G_M54788_IG06:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref, isz
-       mov      ecx, 1
-       xor      edx, edx
+       mov      r8d, 1
+       xor      r9d, r9d
        jmp      SHORT G_M54788_IG05
-                       ;; size=9 bbWeight=0 PerfScore 0.00
+                       ;; size=11 bbWeight=0 PerfScore 0.00
 G_M54788_IG07:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=40C0 {rsi rdi r14}, byref, isz
        ; byrRegs +[r14]
        lea      r15, bword ptr [r14+0x20]
@@ -200,75 +198,73 @@ G_M54788_IG08:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rd
        jmp      SHORT G_M54788_IG10
                        ;; size=15 bbWeight=0 PerfScore 0.00
 G_M54788_IG09:        ; bbWeight=1.78, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref, isz
-       mov      rcx, gword ptr [rbp-0x48]
-       ; gcrRegs +[rcx]
-       cmp      gword ptr [rcx+0x2B0], 0
+       mov      r8, gword ptr [rbp-0x48]
+       ; gcrRegs +[r8]
+       cmp      gword ptr [r8+0x2B0], 0
        jne      SHORT G_M54788_IG08
        mov      r15d, dword ptr [rbp-0x3C]
        and      r15d, 0xD1FFAB1E
                        ;; size=25 bbWeight=1.78 PerfScore 11.10
-G_M54788_IG10:        ; bbWeight=1.78, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref
-       ; gcrRegs -[rcx]
-       mov      edx, r15d
-                       ;; size=3 bbWeight=1.78 PerfScore 0.44
-G_M54788_IG11:        ; bbWeight=1.78, nogc, extend
+G_M54788_IG10:        ; bbWeight=1.78, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref, nogc
+       ; gcrRegs -[r8]
        vmovdqu  ymm0, ymmword ptr [rsi]
        vmovdqu  ymmword ptr [rbp-0x90], ymm0
                        ;; size=12 bbWeight=1.78 PerfScore 10.65
-G_M54788_IG12:        ; bbWeight=1.78, isz, extend
-       mov      rcx, rbx
-       ; gcrRegs +[rcx]
+G_M54788_IG11:        ; bbWeight=1.78, isz, extend
        lea      r8, [rbp-0x90]
        lea      r9, [rbp-0x50]
+       mov      edx, r15d
+       mov      rcx, rbx
+       ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        cmp      byte  ptr [rbp-0x50], 0
-       jne      SHORT G_M54788_IG18
-                       ;; size=26 bbWeight=1.78 PerfScore 12.87
-G_M54788_IG13:        ; bbWeight=1.78, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref, isz
-       cmp      eax, -1
        jne      SHORT G_M54788_IG17
+                       ;; size=29 bbWeight=1.78 PerfScore 13.32
+G_M54788_IG12:        ; bbWeight=1.78, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref, isz
+       cmp      eax, -1
+       jne      SHORT G_M54788_IG16
                        ;; size=5 bbWeight=1.78 PerfScore 2.22
-G_M54788_IG14:        ; bbWeight=2.77, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref, isz
-       mov      ecx, dword ptr [rbp-0x3C]
-       cmp      ecx, dword ptr [rbp-0x40]
-       jl       SHORT G_M54788_IG16
-                       ;; size=8 bbWeight=2.77 PerfScore 11.07
-G_M54788_IG15:        ; bbWeight=1.22, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+G_M54788_IG13:        ; bbWeight=2.77, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref, isz
+       mov      r8d, dword ptr [rbp-0x3C]
+       cmp      r8d, dword ptr [rbp-0x40]
+       jl       SHORT G_M54788_IG15
+                       ;; size=10 bbWeight=2.77 PerfScore 11.07
+G_M54788_IG14:        ; bbWeight=1.22, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rbx]
        ; byrRegs -[rsi rdi]
        mov      dword ptr [rbp-0x3C], 0xD1FFAB1E
-       jmp      SHORT G_M54788_IG19
+       jmp      SHORT G_M54788_IG18
                        ;; size=9 bbWeight=1.22 PerfScore 3.65
-G_M54788_IG16:        ; bbWeight=2.77, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref, isz
+G_M54788_IG15:        ; bbWeight=2.77, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref, isz
        ; gcrRegs +[rbx]
        ; byrRegs +[rsi rdi]
-       mov      ecx, dword ptr [rbp-0x3C]
-       inc      ecx
-       mov      dword ptr [rbp-0x3C], ecx
+       mov      r8d, dword ptr [rbp-0x3C]
+       inc      r8d
+       mov      dword ptr [rbp-0x3C], r8d
        jmp      SHORT G_M54788_IG09
-                       ;; size=10 bbWeight=2.77 PerfScore 11.76
-G_M54788_IG17:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+                       ;; size=13 bbWeight=2.77 PerfScore 11.76
+G_M54788_IG16:        ; bbWeight=0.01, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rbx]
        ; byrRegs -[rsi rdi]
        mov      dword ptr [rbp-0x58], r15d
        movzx    rax, al
        mov      byte  ptr [rbp-0x54], al
-       jmp      SHORT G_M54788_IG21
+       jmp      SHORT G_M54788_IG20
                        ;; size=12 bbWeight=0.01 PerfScore 0.03
-G_M54788_IG18:        ; bbWeight=0.01, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref, isz
+G_M54788_IG17:        ; bbWeight=0.01, gcrefRegs=0008 {rbx}, byrefRegs=00C0 {rsi rdi}, byref, isz
        ; gcrRegs +[rbx]
        ; byrRegs +[rsi rdi]
        mov      byte  ptr [rdi], 1
-       jmp      SHORT G_M54788_IG13
+       jmp      SHORT G_M54788_IG12
                        ;; size=5 bbWeight=0.01 PerfScore 0.02
-G_M54788_IG19:        ; bbWeight=0.99, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M54788_IG18:        ; bbWeight=0.99, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx]
        ; byrRegs -[rsi rdi]
        xor      eax, eax
                        ;; size=2 bbWeight=0.99 PerfScore 0.25
-G_M54788_IG20:        ; bbWeight=0.99, epilog, nogc, extend
+G_M54788_IG19:        ; bbWeight=0.99, epilog, nogc, extend
        vzeroupper 
        add      rsp, 168
        pop      rbx
@@ -281,10 +277,10 @@ G_M54788_IG20:        ; bbWeight=0.99, epilog, nogc, extend
        pop      rbp
        ret      
                        ;; size=23 bbWeight=0.99 PerfScore 6.20
-G_M54788_IG21:        ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M54788_IG20:        ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        mov      rax, qword ptr [rbp-0x58]
                        ;; size=4 bbWeight=0.01 PerfScore 0.01
-G_M54788_IG22:        ; bbWeight=0.01, epilog, nogc, extend
...

+3 (+3.90%) : 68616.dasm - System.Security.Cryptography.HashProviderDispenser:CreateHashProvider(System.String):System.Security.Cryptography.HashProvider (Tier1)

@@ -15,11 +15,9 @@
 ;* V04 tmp3         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V05 tmp4         [V05    ] (  0,  0   )   byref  ->  zero-ref    "field V03._reference (fldOffset=0x0)" P-INDEP
 ;* V06 tmp5         [V06    ] (  0,  0   )     int  ->  zero-ref    "field V03._length (fldOffset=0x8)" P-INDEP
-;  V07 tmp6         [V07,T03] (  2,  2   )   byref  ->  rcx         single-def "field V04._reference (fldOffset=0x0)" P-INDEP
-;* V08 tmp7         [V08,T05] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
+;  V07 tmp6         [V07,T02] (  2,  2   )   byref  ->   r8         single-def "field V04._reference (fldOffset=0x0)" P-INDEP
+;* V08 tmp7         [V08,T03] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V09 tmp8         [V09    ] (  3,  6   )  struct (16) [rsp+0x28]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ubyte]>
-;* V10 tmp9         [V10,T04] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V11 tmp10        [V11,T02] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
 ;
 ; Lcl frame size = 56
 
@@ -39,24 +37,24 @@ G_M58227_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; gcr arg pop 0
        mov      rsi, rax
        ; gcrRegs +[rsi]
-       xor      rcx, rcx
-       ; byrRegs +[rcx]
+       xor      r8, r8
+       ; byrRegs +[r8]
+       mov      bword ptr [rsp+0x28], r8
+       xor      r8d, r8d
+       ; byrRegs -[r8]
+       mov      dword ptr [rsp+0x30], r8d
+       lea      r8, [rsp+0x28]
        mov      rdx, rbx
        ; gcrRegs +[rdx]
-       mov      bword ptr [rsp+0x28], rcx
-       xor      ecx, ecx
-       ; byrRegs -[rcx]
-       mov      dword ptr [rsp+0x30], ecx
        mov      rcx, rsi
        ; gcrRegs +[rcx]
-       lea      r8, [rsp+0x28]
        xor      r9d, r9d
        call     [<unknown method>]
        ; gcrRegs -[rax rcx rdx rbx]
        ; gcr arg pop 0
        mov      rax, rsi
        ; gcrRegs +[rax]
-                       ;; size=54 bbWeight=1 PerfScore 8.50
+                       ;; size=57 bbWeight=1 PerfScore 8.50
 G_M58227_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 56
        pop      rbx
@@ -64,7 +62,7 @@ G_M58227_IG03:        ; bbWeight=1, epilog, nogc, extend
        ret      
                        ;; size=7 bbWeight=1 PerfScore 2.25
 
-; Total bytes of code 77, prolog size 13, PerfScore 14.50, instruction count 23, allocated bytes for code 77 (MethodHash=25851c8c) for method System.Security.Cryptography.HashProviderDispenser:CreateHashProvider(System.String):System.Security.Cryptography.HashProvider (Tier1)
+; Total bytes of code 80, prolog size 13, PerfScore 14.50, instruction count 23, allocated bytes for code 80 (MethodHash=25851c8c) for method System.Security.Cryptography.HashProviderDispenser:CreateHashProvider(System.String):System.Security.Cryptography.HashProvider (Tier1)
 ; ============================================================
 
 Unwind Info:

benchmarks.run_tiered.windows.x64.checked.mch

-30 (-28.30%) : 39920.dasm - Microsoft.CodeAnalysis.SmallDictionary`2+AvlNode[System.Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo]:.ctor(int,System.Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo):this (Tier0)

@@ -11,63 +11,48 @@
 ;  V03 arg3         [V03    ] (  1,  1   )   byref  ->  [rbp+0x28]  do-not-enreg[]
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05    ] (  1,  1   )  struct (16) [rbp-0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo>
-;  V06 tmp2         [V06    ] (  1,  1   )     ref  ->  [rbp-0x18]  do-not-enreg[] must-init "argument with side effect"
-;  V07 tmp3         [V07    ] (  1,  1   )     int  ->  [rbp-0x1C]  do-not-enreg[] "argument with side effect"
-;  V08 tmp4         [V08    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init "argument with side effect"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 48
 
 G_M11790_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 80
+       sub      rsp, 48
        vzeroupper 
-       lea      rbp, [rsp+0x50]
+       lea      rbp, [rsp+0x30]
        xor      eax, eax
-       mov      qword ptr [rbp-0x28], rax
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rbp-0x20], ymm4
+       mov      qword ptr [rbp-0x10], rax
        mov      gword ptr [rbp+0x10], rcx
        mov      dword ptr [rbp+0x18], edx
        mov      gword ptr [rbp+0x20], r8
        mov      bword ptr [rbp+0x28], r9
-                       ;; size=43 bbWeight=1 PerfScore 10.33
+                       ;; size=34 bbWeight=1 PerfScore 8.00
 G_M11790_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      r9, bword ptr [rbp+0x28]
+       ; byrRegs +[r9]
+                       ;; size=4 bbWeight=1 PerfScore 1.00
+G_M11790_IG03:        ; bbWeight=1, nogc, extend
+       vmovdqu  xmm0, xmmword ptr [r9]
+       vmovdqu  xmmword ptr [rbp-0x10], xmm0
+                       ;; size=10 bbWeight=1 PerfScore 5.00
+G_M11790_IG04:        ; bbWeight=1, extend
+       lea      r9, [rbp-0x10]
+       ; byrRegs -[r9]
+       mov      edx, dword ptr [rbp+0x18]
+       mov      r8, gword ptr [rbp+0x20]
+       ; gcrRegs +[r8]
        mov      rcx, gword ptr [rbp+0x10]
        ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-0x18], rcx
-       mov      ecx, dword ptr [rbp+0x18]
-       ; gcrRegs -[rcx]
-       mov      dword ptr [rbp-0x1C], ecx
-       mov      rcx, gword ptr [rbp+0x20]
-       ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-0x28], rcx
-       mov      rcx, bword ptr [rbp+0x28]
-       ; gcrRegs -[rcx]
-       ; byrRegs +[rcx]
-                       ;; size=26 bbWeight=1 PerfScore 7.00
-G_M11790_IG03:        ; bbWeight=1, nogc, extend
-       vmovdqu  xmm0, xmmword ptr [rcx]
-       vmovdqu  xmmword ptr [rbp-0x10], xmm0
-                       ;; size=9 bbWeight=1 PerfScore 5.00
-G_M11790_IG04:        ; bbWeight=1, extend
-       mov      rcx, gword ptr [rbp-0x18]
-       ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
-       mov      edx, dword ptr [rbp-0x1C]
-       mov      r8, gword ptr [rbp-0x28]
-       ; gcrRegs +[r8]
-       lea      r9, [rbp-0x10]
        call     [<unknown method>]
        ; gcrRegs -[rcx r8]
        nop      
                        ;; size=22 bbWeight=1 PerfScore 6.75
 G_M11790_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 80
+       add      rsp, 48
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 106, prolog size 28, PerfScore 30.83, instruction count 30, allocated bytes for code 106 (MethodHash=056ad1f1) for method Microsoft.CodeAnalysis.SmallDictionary`2+AvlNode[System.__Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo]:.ctor(int,System.__Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo):this (Tier0)
+; Total bytes of code 76, prolog size 19, PerfScore 22.50, instruction count 22, allocated bytes for code 76 (MethodHash=056ad1f1) for method Microsoft.CodeAnalysis.SmallDictionary`2+AvlNode[System.__Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo]:.ctor(int,System.__Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -80,5 +65,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

-26 (-28.26%) : 24911.dasm - System.Diagnostics.ActivityEvent:.ctor(System.String):this (Tier0)

@@ -10,53 +10,40 @@
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V03 tmp1         [V03    ] (  1,  1   )  struct (16) [rbp-0x10]  do-not-enreg[HS] hidden-struct-arg "spilled call-like call argument" <System.DateTimeOffset>
 ;  V04 tmp2         [V04    ] (  1,  1   )  struct (16) [rbp-0x20]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.DateTimeOffset>
-;  V05 tmp3         [V05    ] (  1,  1   )   byref  ->  [rbp-0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V06 tmp4         [V06    ] (  1,  1   )     ref  ->  [rbp-0x30]  do-not-enreg[] must-init "argument with side effect"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 64
 
 G_M28855_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 80
-       lea      rbp, [rsp+0x50]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x28], rax
-       mov      qword ptr [rbp-0x30], rax
+       sub      rsp, 64
+       lea      rbp, [rsp+0x40]
        mov      bword ptr [rbp+0x10], rcx
        mov      gword ptr [rbp+0x18], rdx
-                       ;; size=28 bbWeight=1 PerfScore 6.00
+                       ;; size=18 bbWeight=1 PerfScore 3.75
 G_M28855_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        lea      rcx, [rbp-0x10]
        call     [<unknown method>]
-       mov      rcx, bword ptr [rbp+0x10]
-       ; byrRegs +[rcx]
-       mov      bword ptr [rbp-0x28], rcx
-       mov      rcx, gword ptr [rbp+0x18]
-       ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
-       mov      gword ptr [rbp-0x30], rcx
        vmovups  xmm0, xmmword ptr [rbp-0x10]
        vmovups  xmmword ptr [rbp-0x20], xmm0
-       mov      rcx, bword ptr [rbp-0x28]
-       ; gcrRegs -[rcx]
-       ; byrRegs +[rcx]
-       mov      rdx, gword ptr [rbp-0x30]
-       ; gcrRegs +[rdx]
        lea      r8, [rbp-0x20]
+       mov      rdx, gword ptr [rbp+0x18]
+       ; gcrRegs +[rdx]
+       mov      rcx, bword ptr [rbp+0x10]
+       ; byrRegs +[rcx]
        xor      r9, r9
        ; gcrRegs +[r9]
        call     [<unknown method>]
        ; gcrRegs -[rdx r9]
        ; byrRegs -[rcx]
        nop      
-                       ;; size=58 bbWeight=1 PerfScore 17.50
+                       ;; size=42 bbWeight=1 PerfScore 13.50
 G_M28855_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 80
+       add      rsp, 64
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 92, prolog size 20, PerfScore 25.25, instruction count 25, allocated bytes for code 92 (MethodHash=e7188f48) for method System.Diagnostics.ActivityEvent:.ctor(System.String):this (Tier0)
+; Total bytes of code 66, prolog size 10, PerfScore 19.00, instruction count 18, allocated bytes for code 66 (MethodHash=e7188f48) for method System.Diagnostics.ActivityEvent:.ctor(System.String):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -69,5 +56,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

-46 (-25.41%) : 25468.dasm - Interop+Winsock:WSASendTo(System.Runtime.InteropServices.SafeHandle,byref,int,byref,int,System.ReadOnlySpan`1[ubyte],ulong,long):int (Tier0)

@@ -16,83 +16,65 @@
 ;  V08 loc0         [V08    ] (  1,  1   )  struct (16) [rbp-0x10]  do-not-enreg[XS] addr-exposed ld-addr-op <System.Net.Sockets.WSABuffer>
 ;  V09 OutArgs      [V09    ] (  1,  1   )  struct (72) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V10 tmp1         [V10    ] (  1,  1   )  struct (16) [rbp-0x20]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ubyte]>
-;  V11 tmp2         [V11    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V12 tmp3         [V12    ] (  1,  1   )     int  ->  [rbp-0x2C]  do-not-enreg[] "argument with side effect"
-;  V13 tmp4         [V13    ] (  1,  1   )   byref  ->  [rbp-0x38]  do-not-enreg[] must-init "argument with side effect"
-;  V14 tmp5         [V14    ] (  1,  1   )     int  ->  [rbp-0x3C]  do-not-enreg[] "argument with side effect"
 ;
-; Lcl frame size = 144
+; Lcl frame size = 112
 
 G_M57847_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 144
+       sub      rsp, 112
        vzeroupper 
-       lea      rbp, [rsp+0x90]
+       lea      rbp, [rsp+0x70]
        xor      eax, eax
-       mov      qword ptr [rbp-0x38], rax
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rbp-0x30], ymm4
+       mov      qword ptr [rbp-0x20], rax
        mov      gword ptr [rbp+0x10], rcx
        mov      bword ptr [rbp+0x18], rdx
        mov      dword ptr [rbp+0x20], r8d
        mov      bword ptr [rbp+0x28], r9
-                       ;; size=50 bbWeight=1 PerfScore 10.33
+                       ;; size=35 bbWeight=1 PerfScore 8.00
 G_M57847_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      rcx, bword ptr [rbp+0x18]
-       ; byrRegs +[rcx]
-       vmovups  xmm0, xmmword ptr [rcx]
+       mov      rdx, bword ptr [rbp+0x18]
+       ; byrRegs +[rdx]
+       vmovups  xmm0, xmmword ptr [rdx]
        vmovups  xmmword ptr [rbp-0x10], xmm0
-       mov      rcx, gword ptr [rbp+0x10]
-       ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
-       mov      gword ptr [rbp-0x28], rcx
-       mov      ecx, dword ptr [rbp+0x20]
-       ; gcrRegs -[rcx]
-       mov      dword ptr [rbp-0x2C], ecx
-       mov      rcx, bword ptr [rbp+0x28]
-       ; byrRegs +[rcx]
-       mov      bword ptr [rbp-0x38], rcx
-       mov      ecx, dword ptr [rbp+0x30]
-       ; byrRegs -[rcx]
-       mov      dword ptr [rbp-0x3C], ecx
-       mov      rcx, bword ptr [rbp+0x38]
-       ; byrRegs +[rcx]
-                       ;; size=45 bbWeight=1 PerfScore 15.00
+       mov      edx, dword ptr [rbp+0x30]
+       ; byrRegs -[rdx]
+       mov      dword ptr [rsp+0x20], edx
+       mov      rdx, bword ptr [rbp+0x38]
+       ; byrRegs +[rdx]
+                       ;; size=24 bbWeight=1 PerfScore 9.00
 G_M57847_IG03:        ; bbWeight=1, nogc, extend
-       vmovdqu  xmm0, xmmword ptr [rcx]
+       vmovdqu  xmm0, xmmword ptr [rdx]
        vmovdqu  xmmword ptr [rbp-0x20], xmm0
                        ;; size=9 bbWeight=1 PerfScore 5.00
 G_M57847_IG04:        ; bbWeight=1, extend
-       mov      rcx, bword ptr [rbp+0x38]
-       mov      ecx, dword ptr [rcx+0x08]
-       ; byrRegs -[rcx]
-       mov      dword ptr [rsp+0x30], ecx
-       mov      rcx, qword ptr [rbp+0x40]
-       mov      qword ptr [rsp+0x38], rcx
-       mov      rcx, qword ptr [rbp+0x48]
-       mov      qword ptr [rsp+0x40], rcx
-       mov      rcx, gword ptr [rbp-0x28]
-       ; gcrRegs +[rcx]
-       mov      r8d, dword ptr [rbp-0x2C]
-       mov      r9, bword ptr [rbp-0x38]
-       ; byrRegs +[r9]
-       mov      edx, dword ptr [rbp-0x3C]
-       mov      dword ptr [rsp+0x20], edx
+       mov      rdx, bword ptr [rbp+0x38]
+       mov      edx, dword ptr [rdx+0x08]
+       ; byrRegs -[rdx]
+       mov      dword ptr [rsp+0x30], edx
+       mov      rdx, qword ptr [rbp+0x40]
+       mov      qword ptr [rsp+0x38], rdx
+       mov      rdx, qword ptr [rbp+0x48]
+       mov      qword ptr [rsp+0x40], rdx
        lea      rdx, [rbp-0x20]
        mov      qword ptr [rsp+0x28], rdx
        lea      rdx, [rbp-0x10]
+       mov      r8d, dword ptr [rbp+0x20]
+       mov      r9, bword ptr [rbp+0x28]
+       ; byrRegs +[r9]
+       mov      rcx, gword ptr [rbp+0x10]
+       ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx]
        ; byrRegs -[r9]
        nop      
-                       ;; size=68 bbWeight=1 PerfScore 18.25
+                       ;; size=61 bbWeight=1 PerfScore 16.25
 G_M57847_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 144
+       add      rsp, 112
        pop      rbp
        ret      
-                       ;; size=9 bbWeight=1 PerfScore 1.75
+                       ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 181, prolog size 34, PerfScore 50.33, instruction count 46, allocated bytes for code 181 (MethodHash=245d1e08) for method Interop+Winsock:WSASendTo(System.Runtime.InteropServices.SafeHandle,byref,int,byref,int,System.ReadOnlySpan`1[ubyte],ulong,long):int (Tier0)
+; Total bytes of code 135, prolog size 19, PerfScore 40.00, instruction count 36, allocated bytes for code 135 (MethodHash=245d1e08) for method Interop+Winsock:WSASendTo(System.Runtime.InteropServices.SafeHandle,byref,int,byref,int,System.ReadOnlySpan`1[ubyte],ulong,long):int (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -100,11 +82,10 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x08
-  CountOfUnwindCodes: 3
+  SizeOfProlog      : 0x05
+  CountOfUnwindCodes: 2
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_LARGE (1)     OpInfo: 0 - Scaled small  
-      Size: 18 * 8 = 144 = 0x00090
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 13 * 8 + 8 = 112 = 0x70
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+2 (+3.45%) : 2919.dasm - System.Reflection.TypeNameParser+NamespaceTypeName:ResolveType(byref,System.String):System.Type:this (Tier1)

@@ -8,16 +8,14 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T00] (  3,  3   )     ref  ->  rcx         this class-hnd single-def <System.Reflection.TypeNameParser+NamespaceTypeName>
-;  V01 arg1         [V01,T01] (  3,  3   )   byref  ->  rdx         single-def
-;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->   r9         class-hnd single-def <System.String>
+;  V01 arg1         [V01,T01] (  3,  3   )   byref  ->   r9         single-def
+;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->  rax         class-hnd single-def <System.String>
 ;* V03 loc0         [V03    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[System.String]>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05,T03] (  2,  4   )     ref  ->  rcx         class-hnd exact single-def "impAppendStmt" <System.String>
-;  V06 tmp2         [V06,T06] (  2,  2   )   byref  ->   r8         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
-;* V07 tmp3         [V07,T07] (  0,  0   )     int  ->  zero-ref    "field V03._length (fldOffset=0x8)" P-INDEP
+;  V05 tmp1         [V05,T03] (  2,  4   )     ref  ->  rdx         class-hnd exact single-def "impAppendStmt" <System.String>
+;  V06 tmp2         [V06,T04] (  2,  2   )   byref  ->   r8         single-def "field V03._reference (fldOffset=0x0)" P-INDEP
+;* V07 tmp3         [V07,T05] (  0,  0   )     int  ->  zero-ref    "field V03._length (fldOffset=0x8)" P-INDEP
 ;  V08 tmp4         [V08    ] (  3,  6   )  struct (16) [rsp+0x28]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[System.String]>
-;  V09 tmp5         [V09,T04] (  2,  4   )   byref  ->  rdx         single-def "argument with side effect"
-;  V10 tmp6         [V10,T05] (  2,  4   )     ref  ->  rax         single-def "argument with side effect"
 ;
 ; Lcl frame size = 56
 
@@ -25,40 +23,40 @@ G_M16205_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        sub      rsp, 56
        xor      eax, eax
        mov      qword ptr [rsp+0x28], rax
-       mov      r9, r8
-       ; gcrRegs +[r9]
-                       ;; size=14 bbWeight=1 PerfScore 1.75
-G_M16205_IG02:        ; bbWeight=1, gcrefRegs=0202 {rcx r9}, byrefRegs=0004 {rdx}, byref
+       mov      r9, rdx
+       ; byrRegs +[r9]
+       mov      rax, r8
+       ; gcrRegs +[rax]
+                       ;; size=17 bbWeight=1 PerfScore 2.00
+G_M16205_IG02:        ; bbWeight=1, gcrefRegs=0003 {rax rcx}, byrefRegs=0200 {r9}, byref
        ; gcrRegs +[rcx]
-       ; byrRegs +[rdx]
-       mov      rcx, gword ptr [rcx+0x08]
+       mov      rdx, gword ptr [rcx+0x08]
+       ; gcrRegs +[rdx]
        xor      r8, r8
        ; byrRegs +[r8]
-       mov      rax, rcx
-       ; gcrRegs +[rax]
        mov      bword ptr [rsp+0x28], r8
-       xor      ecx, ecx
-       ; gcrRegs -[rcx]
-       mov      dword ptr [rsp+0x30], ecx
-       mov      rcx, rdx
-       ; byrRegs +[rcx]
-       mov      rdx, rax
-       ; gcrRegs +[rdx]
-       ; byrRegs -[rdx]
-       lea      r8, [rsp+0x28]
+       xor      r8d, r8d
        ; byrRegs -[r8]
+       mov      dword ptr [rsp+0x30], r8d
+       lea      r8, [rsp+0x28]
+       mov      rcx, r9
+       ; gcrRegs -[rcx]
+       ; byrRegs +[rcx]
+       mov      r9, rax
+       ; gcrRegs +[r9]
+       ; byrRegs -[r9]
        call     [<unknown method>]
        ; gcrRegs -[rdx r9]
        ; byrRegs -[rcx]
        ; gcr arg pop 0
        nop      
-                       ;; size=39 bbWeight=1 PerfScore 9.00
+                       ;; size=38 bbWeight=1 PerfScore 8.75
 G_M16205_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 56
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
 
-; Total bytes of code 58, prolog size 11, PerfScore 12.00, instruction count 17, allocated bytes for code 58 (MethodHash=acc4c0b2) for method System.Reflection.TypeNameParser+NamespaceTypeName:ResolveType(byref,System.String):System.Type:this (Tier1)
+; Total bytes of code 60, prolog size 11, PerfScore 12.00, instruction count 17, allocated bytes for code 60 (MethodHash=acc4c0b2) for method System.Reflection.TypeNameParser+NamespaceTypeName:ResolveType(byref,System.String):System.Type:this (Tier1)
 ; ============================================================
 
 Unwind Info:

+3 (+3.90%) : 47141.dasm - System.Security.Cryptography.HashProviderDispenser:CreateHashProvider(System.String):System.Security.Cryptography.HashProvider (Tier1)

@@ -15,11 +15,9 @@
 ;* V04 tmp3         [V04    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ubyte]>
 ;* V05 tmp4         [V05    ] (  0,  0   )   byref  ->  zero-ref    "field V03._reference (fldOffset=0x0)" P-INDEP
 ;* V06 tmp5         [V06    ] (  0,  0   )     int  ->  zero-ref    "field V03._length (fldOffset=0x8)" P-INDEP
-;  V07 tmp6         [V07,T03] (  2,  2   )   byref  ->  rcx         single-def "field V04._reference (fldOffset=0x0)" P-INDEP
-;* V08 tmp7         [V08,T05] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
+;  V07 tmp6         [V07,T02] (  2,  2   )   byref  ->   r8         single-def "field V04._reference (fldOffset=0x0)" P-INDEP
+;* V08 tmp7         [V08,T03] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
 ;  V09 tmp8         [V09    ] (  3,  6   )  struct (16) [rsp+0x28]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ubyte]>
-;* V10 tmp9         [V10,T04] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V11 tmp10        [V11,T02] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
 ;
 ; Lcl frame size = 56
 
@@ -39,24 +37,24 @@ G_M58227_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; gcr arg pop 0
        mov      rsi, rax
        ; gcrRegs +[rsi]
-       xor      rcx, rcx
-       ; byrRegs +[rcx]
+       xor      r8, r8
+       ; byrRegs +[r8]
+       mov      bword ptr [rsp+0x28], r8
+       xor      r8d, r8d
+       ; byrRegs -[r8]
+       mov      dword ptr [rsp+0x30], r8d
+       lea      r8, [rsp+0x28]
        mov      rdx, rbx
        ; gcrRegs +[rdx]
-       mov      bword ptr [rsp+0x28], rcx
-       xor      ecx, ecx
-       ; byrRegs -[rcx]
-       mov      dword ptr [rsp+0x30], ecx
        mov      rcx, rsi
        ; gcrRegs +[rcx]
-       lea      r8, [rsp+0x28]
        xor      r9d, r9d
        call     [<unknown method>]
        ; gcrRegs -[rax rcx rdx rbx]
        ; gcr arg pop 0
        mov      rax, rsi
        ; gcrRegs +[rax]
-                       ;; size=54 bbWeight=1 PerfScore 8.50
+                       ;; size=57 bbWeight=1 PerfScore 8.50
 G_M58227_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 56
        pop      rbx
@@ -64,7 +62,7 @@ G_M58227_IG03:        ; bbWeight=1, epilog, nogc, extend
        ret      
                        ;; size=7 bbWeight=1 PerfScore 2.25
 
-; Total bytes of code 77, prolog size 13, PerfScore 14.50, instruction count 23, allocated bytes for code 77 (MethodHash=25851c8c) for method System.Security.Cryptography.HashProviderDispenser:CreateHashProvider(System.String):System.Security.Cryptography.HashProvider (Tier1)
+; Total bytes of code 80, prolog size 13, PerfScore 14.50, instruction count 23, allocated bytes for code 80 (MethodHash=25851c8c) for method System.Security.Cryptography.HashProviderDispenser:CreateHashProvider(System.String):System.Security.Cryptography.HashProvider (Tier1)
 ; ============================================================
 
 Unwind Info:

+31 (+5.79%) : 9661.dasm - System.Number:FormatNumberushort (Tier1)

@@ -9,18 +9,18 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] ( 13, 24   )   byref  ->  rbx         single-def
-;  V01 arg1         [V01,T09] (  4,  5   )   byref  ->  rdi         single-def
-;  V02 arg2         [V02,T10] (  3,  4   )     int  ->  rbp         single-def
+;  V01 arg1         [V01,T17] (  4,  5   )   byref  ->  rdi         single-def
+;  V02 arg2         [V02,T23] (  3,  4   )     int  ->  rbp         single-def
 ;  V03 arg3         [V03,T07] (  7, 10.50)     ref  ->  rsi         class-hnd single-def <System.Globalization.NumberFormatInfo>
 ;* V04 loc0         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.String>
-;  V05 loc1         [V05,T08] (  4, 10   )     ref  ->  r14         class-hnd exact single-def <System.String>
+;  V05 loc1         [V05,T18] (  3,  6   )     ref  ->  r14         class-hnd exact single-def <System.String>
 ;  V06 loc2         [V06,T02] (  5, 17   )     int  ->  r15        
 ;  V07 loc3         [V07,T06] (  5, 14   )  ushort  ->  rdx        
 ;  V08 OutArgs      [V08    ] (  1,  1   )  struct (48) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V09 tmp1         [V09    ] (  0,  0   )     int  ->  zero-ref   
 ;* V10 tmp2         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <<unknown class>>
-;  V11 tmp3         [V11,T56] (  3,  2   )     ref  ->  r14        
-;  V12 tmp4         [V12,T13] (  2,  8   )     ref  ->  r13         class-hnd "impAppendStmt" <<unknown class>>
+;  V11 tmp3         [V11,T52] (  3,  2   )     ref  ->  r14        
+;  V12 tmp4         [V12,T10] (  2,  8   )     ref  ->  r12         class-hnd "impAppendStmt" <<unknown class>>
 ;* V13 tmp5         [V13    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V14 tmp6         [V14    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V15 tmp7         [V15    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
@@ -34,8 +34,8 @@
 ;  V23 tmp15        [V23,T03] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V24 tmp16        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V25 tmp17        [V25    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V26 tmp18        [V26,T18] (  2,  8   )     int  ->  rax         "Inlining Arg"
-;  V27 tmp19        [V27,T14] (  2,  8   )   byref  ->  r12         "Inlining Arg"
+;  V26 tmp18        [V26,T14] (  2,  8   )     int  ->   r8         "Inlining Arg"
+;  V27 tmp19        [V27,T11] (  2,  8   )   byref  ->  rax         "Inlining Arg"
 ;* V28 tmp20        [V28    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V29 tmp21        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp22        [V30    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -43,7 +43,7 @@
 ;* V32 tmp24        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V33 tmp25        [V33    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V34 tmp26        [V34    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V35 tmp27        [V35,T25] (  3,  6   )     int  ->  [rsp+0x64]  spill-single-def "Inline stloc first use temp"
+;  V35 tmp27        [V35,T24] (  3,  6   )     int  ->  [rsp+0x74]  spill-single-def "Inline stloc first use temp"
 ;* V36 tmp28        [V36    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V37 tmp29        [V37    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V38 tmp30        [V38    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -58,8 +58,8 @@
 ;  V47 tmp39        [V47,T04] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V48 tmp40        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V49 tmp41        [V49    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V50 tmp42        [V50,T19] (  2,  8   )     int  ->  r10         "Inlining Arg"
-;  V51 tmp43        [V51,T15] (  2,  8   )   byref  ->   r8         "Inlining Arg"
+;  V50 tmp42        [V50,T15] (  2,  8   )     int  ->   r9         "Inlining Arg"
+;  V51 tmp43        [V51,T12] (  2,  8   )   byref  ->  r10         "Inlining Arg"
 ;* V52 tmp44        [V52    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V53 tmp45        [V53    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V54 tmp46        [V54    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -67,7 +67,7 @@
 ;* V56 tmp48        [V56    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V57 tmp49        [V57    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V58 tmp50        [V58    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V59 tmp51        [V59,T26] (  3,  6   )     int  ->  [rsp+0x60]  spill-single-def "Inline stloc first use temp"
+;  V59 tmp51        [V59,T25] (  3,  6   )     int  ->  [rsp+0x70]  spill-single-def "Inline stloc first use temp"
 ;* V60 tmp52        [V60    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V61 tmp53        [V61    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V62 tmp54        [V62    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -82,8 +82,8 @@
 ;  V71 tmp63        [V71,T05] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V72 tmp64        [V72    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V73 tmp65        [V73    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V74 tmp66        [V74,T20] (  2,  8   )     int  ->  r12         "Inlining Arg"
-;  V75 tmp67        [V75,T16] (  2,  8   )   byref  ->  r13         "Inlining Arg"
+;  V74 tmp66        [V74,T16] (  2,  8   )     int  ->  rax         "Inlining Arg"
+;  V75 tmp67        [V75,T13] (  2,  8   )   byref  ->  r12         "Inlining Arg"
 ;* V76 tmp68        [V76    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V77 tmp69        [V77    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V78 tmp70        [V78    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -91,88 +91,84 @@
 ;* V80 tmp72        [V80    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V81 tmp73        [V81    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V82 tmp74        [V82    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V83 tmp75        [V83,T27] (  3,  6   )     int  ->  r12         "Inline stloc first use temp"
+;  V83 tmp75        [V83,T26] (  3,  6   )     int  ->  [rsp+0x6C]  spill-single-def "Inline stloc first use temp"
 ;* V84 tmp76        [V84    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V85 tmp77        [V85    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V86 tmp78        [V86    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V87 tmp79        [V87    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V88 tmp80        [V88    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V89 tmp81        [V89,T11] (  4,  8   )     int  ->  rdx         "Inline stloc first use temp"
+;  V89 tmp81        [V89,T08] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V90 tmp82        [V90    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
 ;* V91 tmp83        [V91    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V92 tmp84        [V92,T12] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
+;  V92 tmp84        [V92,T09] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V93 tmp85        [V93    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
 ;* V94 tmp86        [V94    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
-;  V95 tmp87        [V95,T32] (  2,  4   )   byref  ->  r12         "field V13._reference (fldOffset=0x0)" P-INDEP
-;  V96 tmp88        [V96,T43] (  2,  4   )     int  ->  [rsp+0x5C]  spill-single-def "field V13._length (fldOffset=0x8)" P-INDEP
+;  V95 tmp87        [V95,T32] (  2,  4   )   byref  ->  [rsp+0x40]  spill-single-def "field V13._reference (fldOffset=0x0)" P-INDEP
+;  V96 tmp88        [V96,T43] (  2,  4   )     int  ->  [rsp+0x68]  spill-single-def "field V13._length (fldOffset=0x8)" P-INDEP
 ;* V97 tmp89        [V97    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V98 tmp90        [V98    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V99 tmp91        [V99    ] (  0,  0   )   byref  ->  zero-ref    "field V15._reference (fldOffset=0x0)" P-INDEP
 ;* V100 tmp92       [V100    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;* V101 tmp93       [V101    ] (  0,  0   )   byref  ->  zero-ref    "field V19._reference (fldOffset=0x0)" P-INDEP
 ;* V102 tmp94       [V102    ] (  0,  0   )     int  ->  zero-ref    "field V19._length (fldOffset=0x8)" P-INDEP
-;  V103 tmp95       [V103,T21] (  3,  6   )   byref  ->  r12         "field V22._reference (fldOffset=0x0)" P-INDEP
-;  V104 tmp96       [V104,T28] (  3,  6   )     int  ->  rax         "field V22._length (fldOffset=0x8)" P-INDEP
-;  V105 tmp97       [V105,T33] (  2,  4   )   byref  ->  r12         "field V24._reference (fldOffset=0x0)" P-INDEP
-;  V106 tmp98       [V106,T44] (  2,  4   )     int  ->  rax         "field V24._length (fldOffset=0x8)" P-INDEP
+;  V103 tmp95       [V103,T19] (  3,  6   )   byref  ->  rax         "field V22._reference (fldOffset=0x0)" P-INDEP
+;  V104 tmp96       [V104,T27] (  3,  6   )     int  ->   r8         "field V22._length (fldOffset=0x8)" P-INDEP
+;  V105 tmp97       [V105,T33] (  2,  4   )   byref  ->  rax         "field V24._reference (fldOffset=0x0)" P-INDEP
+;  V106 tmp98       [V106,T44] (  2,  4   )     int  ->   r8         "field V24._length (fldOffset=0x8)" P-INDEP
 ;* V107 tmp99       [V107    ] (  0,  0   )   byref  ->  zero-ref    "field V25._reference (fldOffset=0x0)" P-INDEP
 ;* V108 tmp100      [V108    ] (  0,  0   )     int  ->  zero-ref    "field V25._length (fldOffset=0x8)" P-INDEP
-;  V109 tmp101      [V109,T34] (  2,  4   )   byref  ->  r12         "field V32._reference (fldOffset=0x0)" P-INDEP
+;  V109 tmp101      [V109,T34] (  2,  4   )   byref  ->  [rsp+0x38]  spill-single-def "field V32._reference (fldOffset=0x0)" P-INDEP
 ;* V110 tmp102      [V110    ] (  0,  0   )     int  ->  zero-ref    "field V32._length (fldOffset=0x8)" P-INDEP
-;  V111 tmp103      [V111,T35] (  2,  4   )   byref  ->  r12         "field V36._reference (fldOffset=0x0)" P-INDEP
-;  V112 tmp104      [V112,T45] (  2,  4   )     int  ->  rax         "field V36._length (fldOffset=0x8)" P-INDEP
+;  V111 tmp103      [V111,T35] (  2,  4   )   byref  ->  rax         "field V36._reference (fldOffset=0x0)" P-INDEP
+;  V112 tmp104      [V112,T45] (  2,  4   )     int  ->   r8         "field V36._length (fldOffset=0x8)" P-INDEP
 ;* V113 tmp105      [V113    ] (  0,  0   )   byref  ->  zero-ref    "field V37._reference (fldOffset=0x0)" P-INDEP
 ;* V114 tmp106      [V114    ] (  0,  0   )     int  ->  zero-ref    "field V37._length (fldOffset=0x8)" P-INDEP
 ;* V115 tmp107      [V115    ] (  0,  0   )   byref  ->  zero-ref    "field V41._reference (fldOffset=0x0)" P-INDEP
 ;* V116 tmp108      [V116    ] (  0,  0   )     int  ->  zero-ref    "field V41._length (fldOffset=0x8)" P-INDEP
 ;* V117 tmp109      [V117    ] (  0,  0   )   byref  ->  zero-ref    "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V118 tmp110      [V118    ] (  0,  0   )     int  ->  zero-ref    "field V43._length (fldOffset=0x8)" P-INDEP
-;  V119 tmp111      [V119,T22] (  3,  6   )   byref  ->   r8         "field V46._reference (fldOffset=0x0)" P-INDEP
-;  V120 tmp112      [V120,T29] (  3,  6   )     int  ->  r10         "field V46._length (fldOffset=0x8)" P-INDEP
-;  V121 tmp113      [V121,T36] (  2,  4   )   byref  ->   r8         "field V48._reference (fldOffset=0x0)" P-INDEP
-;  V122 tmp114      [V122,T46] (  2,  4   )     int  ->  r10         "field V48._length (fldOffset=0x8)" P-INDEP
+;  V119 tmp111      [V119,T20] (  3,  6   )   byref  ->  r10         "field V46._reference (fldOffset=0x0)" P-INDEP
+;  V120 tmp112      [V120,T28] (  3,  6   )     int  ->   r9         "field V46._length (fldOffset=0x8)" P-INDEP
+;  V121 tmp113      [V121,T36] (  2,  4   )   byref  ->  r10         "field V48._reference (fldOffset=0x0)" P-INDEP
+;  V122 tmp114      [V122,T46] (  2,  4   )     int  ->   r9         "field V48._length (fldOffset=0x8)" P-INDEP
 ;* V123 tmp115      [V123    ] (  0,  0   )   byref  ->  zero-ref    "field V49._reference (fldOffset=0x0)" P-INDEP
 ;* V124 tmp116      [V124    ] (  0,  0   )     int  ->  zero-ref    "field V49._length (fldOffset=0x8)" P-INDEP
 ;  V125 tmp117      [V125,T37] (  2,  4   )   byref  ->  [rsp+0x30]  spill-single-def "field V56._reference (fldOffset=0x0)" P-INDEP
 ;* V126 tmp118      [V126    ] (  0,  0   )     int  ->  zero-ref    "field V56._length (fldOffset=0x8)" P-INDEP
-;  V127 tmp119      [V127,T38] (  2,  4   )   byref  ->   r8         "field V60._reference (fldOffset=0x0)" P-INDEP
-;  V128 tmp120      [V128,T47] (  2,  4   )     int  ->  r10         "field V60._length (fldOffset=0x8)" P-INDEP
+;  V127 tmp119      [V127,T38] (  2,  4   )   byref  ->  r10         "field V60._reference (fldOffset=0x0)" P-INDEP
+;  V128 tmp120      [V128,T47] (  2,  4   )     int  ->   r9         "field V60._length (fldOffset=0x8)" P-INDEP
 ;* V129 tmp121      [V129    ] (  0,  0   )   byref  ->  zero-ref    "field V61._reference (fldOffset=0x0)" P-INDEP
 ;* V130 tmp122      [V130    ] (  0,  0   )     int  ->  zero-ref    "field V61._length (fldOffset=0x8)" P-INDEP
 ;* V131 tmp123      [V131    ] (  0,  0   )   byref  ->  zero-ref    "field V65._reference (fldOffset=0x0)" P-INDEP
 ;* V132 tmp124      [V132    ] (  0,  0   )     int  ->  zero-ref    "field V65._length (fldOffset=0x8)" P-INDEP
 ;* V133 tmp125      [V133    ] (  0,  0   )   byref  ->  zero-ref    "field V67._reference (fldOffset=0x0)" P-INDEP
 ;* V134 tmp126      [V134    ] (  0,  0   )     int  ->  zero-ref    "field V67._length (fldOffset=0x8)" P-INDEP
-;  V135 tmp127      [V135,T23] (  3,  6   )   byref  ->  r13         "field V70._reference (fldOffset=0x0)" P-INDEP
-;  V136 tmp128      [V136,T30] (  3,  6   )     int  ->  r12         "field V70._length (fldOffset=0x8)" P-INDEP
-;  V137 tmp129      [V137,T39] (  2,  4   )   byref  ->  r13         "field V72._reference (fldOffset=0x0)" P-INDEP
-;  V138 tmp130      [V138,T48] (  2,  4   )     int  ->  r12         "field V72._length (fldOffset=0x8)" P-INDEP
+;  V135 tmp127      [V135,T21] (  3,  6   )   byref  ->  r12         "field V70._reference (fldOffset=0x0)" P-INDEP
+;  V136 tmp128      [V136,T29] (  3,  6   )     int  ->  rax         "field V70._length (fldOffset=0x8)" P-INDEP
+;  V137 tmp129      [V137,T39] (  2,  4   )   byref  ->  r12         "field V72._reference (fldOffset=0x0)" P-INDEP
+;  V138 tmp130      [V138,T48] (  2,  4   )     int  ->  rax         "field V72._length (fldOffset=0x8)" P-INDEP
 ;* V139 tmp131      [V139    ] (  0,  0   )   byref  ->  zero-ref    "field V73._reference (fldOffset=0x0)" P-INDEP
 ;* V140 tmp132      [V140    ] (  0,  0   )     int  ->  zero-ref    "field V73._length (fldOffset=0x8)" P-INDEP
-;  V141 tmp133      [V141,T24] (  3,  6   )   byref  ->  r13         "field V80._reference (fldOffset=0x0)" P-INDEP
+;  V141 tmp133      [V141,T22] (  3,  6   )   byref  ->  r12         "field V80._reference (fldOffset=0x0)" P-INDEP
 ;* V142 tmp134      [V142    ] (  0,  0   )     int  ->  zero-ref    "field V80._length (fldOffset=0x8)" P-INDEP
-;  V143 tmp135      [V143,T40] (  2,  4   )   byref  ->  rcx         "field V84._reference (fldOffset=0x0)" P-INDEP
-;  V144 tmp136      [V144,T31] (  3,  6   )     int  ->  r12         "field V84._length (fldOffset=0x8)" P-INDEP
+;  V143 tmp135      [V143,T40] (  2,  4   )   byref  ->  rdx         "field V84._reference (fldOffset=0x0)" P-INDEP
+;  V144 tmp136      [V144,T30] (  3,  6   )     int  ->  rax         "field V84._length (fldOffset=0x8)" P-INDEP
 ;* V145 tmp137      [V145    ] (  0,  0   )   byref  ->  zero-ref    "field V85._reference (fldOffset=0x0)" P-INDEP
 ;* V146 tmp138      [V146    ] (  0,  0   )     int  ->  zero-ref    "field V85._length (fldOffset=0x8)" P-INDEP
-;  V147 tmp139      [V147,T41] (  2,  4   )   byref  ->  rax         "field V90._reference (fldOffset=0x0)" P-INDEP
-;  V148 tmp140      [V148,T49] (  2,  4   )     int  ->   r8         "field V90._length (fldOffset=0x8)" P-INDEP
+;  V147 tmp139      [V147,T41] (  2,  4   )   byref  ->   r8         "field V90._reference (fldOffset=0x0)" P-INDEP
+;  V148 tmp140      [V148,T49] (  2,  4   )     int  ->  r10         "field V90._length (fldOffset=0x8)" P-INDEP
 ;* V149 tmp141      [V149    ] (  0,  0   )   byref  ->  zero-ref    "field V91._reference (fldOffset=0x0)" P-INDEP
 ;* V150 tmp142      [V150    ] (  0,  0   )     int  ->  zero-ref    "field V91._length (fldOffset=0x8)" P-INDEP
 ;  V151 tmp143      [V151,T42] (  2,  4   )   byref  ->  rax         "field V93._reference (fldOffset=0x0)" P-INDEP
 ;  V152 tmp144      [V152,T50] (  2,  4   )     int  ->   r8         "field V93._length (fldOffset=0x8)" P-INDEP
-;  V153 tmp145      [V153,T57] (  2,  2   )     ref  ->  rcx         single-def "arr expr"
-;  V154 tmp146      [V154,T55] (  3,  3   )     int  ->  rdx         "index expr"
-;  V155 tmp147      [V155    ] (  6, 24   )  struct (16) [rsp+0x48]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;  V156 tmp148      [V156    ] (  3, 12   )  struct (16) [rsp+0x38]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;* V157 tmp149      [V157,T51] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V158 tmp150      [V158,T52] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V159 tmp151      [V159,T54] (  0,  0   )     int  ->  zero-ref    "argument with side effect"
-;  V160 tmp152      [V160,T17] (  2,  8   )     ref  ->   r9         "argument with side effect"
-;* V161 tmp153      [V161,T53] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;  V162 cse0        [V162,T01] (  9, 18   )     ref  ->  rdx         multi-def "CSE - aggressive"
+;  V153 tmp145      [V153,T53] (  2,  2   )     ref  ->  rcx         single-def "arr expr"
+;  V154 tmp146      [V154,T51] (  3,  3   )     int  ->  rdx         "index expr"
+;  V155 tmp147      [V155    ] (  6, 24   )  struct (16) [rsp+0x58]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V156 tmp148      [V156    ] (  3, 12   )  struct (16) [rsp+0x48]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V157 cse0        [V157,T01] (  9, 18   )     ref  ->  rdx         multi-def "CSE - aggressive"
+;  V158 cse1        [V158,T31] (  3,  6   )     int  ->  r13         "CSE - moderate"
 ;
-; Lcl frame size = 104
+; Lcl frame size = 120
 
 G_M28185_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
@@ -183,12 +179,12 @@ G_M28185_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 104
+       sub      rsp, 120
        xor      eax, eax
-       mov      qword ptr [rsp+0x38], rax
+       mov      qword ptr [rsp+0x48], rax
        vxorps   xmm4, xmm4, xmm4
-       vmovdqa  xmmword ptr [rsp+0x40], xmm4
-       mov      qword ptr [rsp+0x50], rax
+       vmovdqa  xmmword ptr [rsp+0x50], xmm4
+       mov      qword ptr [rsp+0x60], rax
        mov      rbx, rcx
        ; byrRegs +[rbx]
        mov      rdi, rdx
@@ -220,9 +216,10 @@ G_M28185_IG04:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0088 {rbx
 G_M28185_IG05:        ; bbWeight=1, gcrefRegs=4040 {rsi r14}, byrefRegs=0088 {rbx rdi}, byref
        ; gcrRegs -[rcx]
        xor      r15d, r15d
-       cmp      dword ptr [r14+0x08], 0
+       mov      r13d, dword ptr [r14+0x08]
+       test     r13d, r13d
        jle      G_M28185_IG23
-                       ;; size=14 bbWeight=1 PerfScore 4.25
+                       ;; size=16 bbWeight=1 PerfScore 3.50
 G_M28185_IG06:        ; bbWeight=4, gcrefRegs=4040 {rsi r14}, byrefRegs=0088 {rbx rdi}, byref, isz
        mov      ecx, r15d
        movzx    rdx, word  ptr [r14+2*rcx+0x0C]
@@ -235,27 +232,29 @@ G_M28185_IG07:        ; bbWeight=2, gcrefRegs=4040 {rsi r14}, byrefRegs=0088 {rb
        jmp      G_M28185_IG20
                        ;; size=14 bbWeight=2 PerfScore 6.50
 G_M28185_IG08:        ; bbWeight=2, gcrefRegs=4040 {rsi r14}, byrefRegs=0088 {rbx rdi}, byref, isz
-       mov      r13, gword ptr [rsi+0x08]
-       ; gcrRegs +[r13]
+       mov      r12, gword ptr [rsi+0x08]
+       ; gcrRegs +[r12]
        mov      rcx, gword ptr [rsi+0x30]
        ; gcrRegs +[rcx]
        test     rcx, rcx
        jne      SHORT G_M28185_IG09
-       xor      r12, r12
-       ; byrRegs +[r12]
-       xor      eax, eax
+       xor      rax, rax
+       ; byrRegs +[rax]
+       xor      r8d, r8d
        jmp      SHORT G_M28185_IG10
                        ;; size=20 bbWeight=2 PerfScore 15.50
-G_M28185_IG09:        ; bbWeight=2, gcrefRegs=6042 {rcx rsi r13 r14}, byrefRegs=0088 {rbx rdi}, byref
-       ; byrRegs -[r12]
...

coreclr_tests.run.windows.x64.checked.mch

-29 (-28.71%) : 201453.dasm - Gen`3[int,double,System.Guid]:.ctor(int,double,System.Guid):this (Tier0)

@@ -11,54 +11,41 @@
 ;  V03 arg3         [V03    ] (  1,  1   )   byref  ->  [rbp+0x28]  do-not-enreg[]
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05    ] (  1,  1   )  struct (16) [rbp-0x10]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Guid>
-;  V06 tmp2         [V06    ] (  1,  1   )     ref  ->  [rbp-0x18]  do-not-enreg[] must-init "argument with side effect"
-;  V07 tmp3         [V07    ] (  1,  1   )     int  ->  [rbp-0x1C]  do-not-enreg[] "argument with side effect"
-;  V08 tmp4         [V08    ] (  1,  1   )  double  ->  [rbp-0x28]  do-not-enreg[] "argument with side effect"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 48
 
 G_M30816_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 80
+       sub      rsp, 48
        vzeroupper 
-       lea      rbp, [rsp+0x50]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x18], rax
+       lea      rbp, [rsp+0x30]
        vmovsd   qword ptr [rbp+0x20], xmm2
        mov      gword ptr [rbp+0x10], rcx
        mov      dword ptr [rbp+0x18], edx
        mov      bword ptr [rbp+0x28], r9
-                       ;; size=35 bbWeight=1 PerfScore 8.00
+                       ;; size=29 bbWeight=1 PerfScore 6.75
 G_M30816_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      r9, bword ptr [rbp+0x28]
+       ; byrRegs +[r9]
+       vmovups  xmm2, xmmword ptr [r9]
+       vmovups  xmmword ptr [rbp-0x10], xmm2
+       lea      r9, [rbp-0x10]
+       ; byrRegs -[r9]
+       mov      edx, dword ptr [rbp+0x18]
+       vmovsd   xmm2, qword ptr [rbp+0x20]
        mov      rcx, gword ptr [rbp+0x10]
        ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-0x18], rcx
-       mov      ecx, dword ptr [rbp+0x18]
-       ; gcrRegs -[rcx]
-       mov      dword ptr [rbp-0x1C], ecx
-       vmovsd   xmm2, qword ptr [rbp+0x20]
-       vmovsd   qword ptr [rbp-0x28], xmm2
-       mov      rcx, bword ptr [rbp+0x28]
-       ; byrRegs +[rcx]
-       vmovups  xmm2, xmmword ptr [rcx]
-       vmovups  xmmword ptr [rbp-0x10], xmm2
-       mov      rcx, gword ptr [rbp-0x18]
-       ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
-       mov      edx, dword ptr [rbp-0x1C]
-       vmovsd   xmm2, qword ptr [rbp-0x28]
-       lea      r9, [rbp-0x10]
        call     [<unknown method>]
        ; gcrRegs -[rcx]
        nop      
-                       ;; size=60 bbWeight=1 PerfScore 22.75
+                       ;; size=37 bbWeight=1 PerfScore 14.75
 G_M30816_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 80
+       add      rsp, 48
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 101, prolog size 19, PerfScore 32.50, instruction count 28, allocated bytes for code 101 (MethodHash=27e4879f) for method Gen`3[int,double,System.Guid]:.ctor(int,double,System.Guid):this (Tier0)
+; Total bytes of code 72, prolog size 13, PerfScore 23.25, instruction count 20, allocated bytes for code 72 (MethodHash=27e4879f) for method Gen`3[int,double,System.Guid]:.ctor(int,double,System.Guid):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -71,5 +58,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

-29 (-28.71%) : 246691.dasm - Gen`3[int,double,System.Guid]:.ctor(int,double,System.Guid):this (Tier0)

@@ -11,54 +11,41 @@
 ;  V03 arg3         [V03    ] (  1,  1   )   byref  ->  [rbp+0x28]  do-not-enreg[]
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05    ] (  1,  1   )  struct (16) [rbp-0x10]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Guid>
-;  V06 tmp2         [V06    ] (  1,  1   )     ref  ->  [rbp-0x18]  do-not-enreg[] must-init "argument with side effect"
-;  V07 tmp3         [V07    ] (  1,  1   )     int  ->  [rbp-0x1C]  do-not-enreg[] "argument with side effect"
-;  V08 tmp4         [V08    ] (  1,  1   )  double  ->  [rbp-0x28]  do-not-enreg[] "argument with side effect"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 48
 
 G_M30816_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 80
+       sub      rsp, 48
        vzeroupper 
-       lea      rbp, [rsp+0x50]
-       xor      eax, eax
-       mov      qword ptr [rbp-0x18], rax
+       lea      rbp, [rsp+0x30]
        vmovsd   qword ptr [rbp+0x20], xmm2
        mov      gword ptr [rbp+0x10], rcx
        mov      dword ptr [rbp+0x18], edx
        mov      bword ptr [rbp+0x28], r9
-                       ;; size=35 bbWeight=1 PerfScore 8.00
+                       ;; size=29 bbWeight=1 PerfScore 6.75
 G_M30816_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      r9, bword ptr [rbp+0x28]
+       ; byrRegs +[r9]
+       vmovups  xmm2, xmmword ptr [r9]
+       vmovups  xmmword ptr [rbp-0x10], xmm2
+       lea      r9, [rbp-0x10]
+       ; byrRegs -[r9]
+       mov      edx, dword ptr [rbp+0x18]
+       vmovsd   xmm2, qword ptr [rbp+0x20]
        mov      rcx, gword ptr [rbp+0x10]
        ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-0x18], rcx
-       mov      ecx, dword ptr [rbp+0x18]
-       ; gcrRegs -[rcx]
-       mov      dword ptr [rbp-0x1C], ecx
-       vmovsd   xmm2, qword ptr [rbp+0x20]
-       vmovsd   qword ptr [rbp-0x28], xmm2
-       mov      rcx, bword ptr [rbp+0x28]
-       ; byrRegs +[rcx]
-       vmovups  xmm2, xmmword ptr [rcx]
-       vmovups  xmmword ptr [rbp-0x10], xmm2
-       mov      rcx, gword ptr [rbp-0x18]
-       ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
-       mov      edx, dword ptr [rbp-0x1C]
-       vmovsd   xmm2, qword ptr [rbp-0x28]
-       lea      r9, [rbp-0x10]
        call     [<unknown method>]
        ; gcrRegs -[rcx]
        nop      
-                       ;; size=60 bbWeight=1 PerfScore 22.75
+                       ;; size=37 bbWeight=1 PerfScore 14.75
 G_M30816_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 80
+       add      rsp, 48
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 101, prolog size 19, PerfScore 32.50, instruction count 28, allocated bytes for code 101 (MethodHash=27e4879f) for method Gen`3[int,double,System.Guid]:.ctor(int,double,System.Guid):this (Tier0)
+; Total bytes of code 72, prolog size 13, PerfScore 23.25, instruction count 20, allocated bytes for code 72 (MethodHash=27e4879f) for method Gen`3[int,double,System.Guid]:.ctor(int,double,System.Guid):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -71,5 +58,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

-30 (-28.30%) : 225221.dasm - Microsoft.CodeAnalysis.SmallDictionary`2+AvlNode[System.Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo]:.ctor(int,System.Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo):this (Tier0)

@@ -11,63 +11,48 @@
 ;  V03 arg3         [V03    ] (  1,  1   )   byref  ->  [rbp+0x28]  do-not-enreg[]
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05    ] (  1,  1   )  struct (16) [rbp-0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo>
-;  V06 tmp2         [V06    ] (  1,  1   )     ref  ->  [rbp-0x18]  do-not-enreg[] must-init "argument with side effect"
-;  V07 tmp3         [V07    ] (  1,  1   )     int  ->  [rbp-0x1C]  do-not-enreg[] "argument with side effect"
-;  V08 tmp4         [V08    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init "argument with side effect"
 ;
-; Lcl frame size = 80
+; Lcl frame size = 48
 
 G_M11790_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 80
+       sub      rsp, 48
        vzeroupper 
-       lea      rbp, [rsp+0x50]
+       lea      rbp, [rsp+0x30]
        xor      eax, eax
-       mov      qword ptr [rbp-0x28], rax
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rbp-0x20], ymm4
+       mov      qword ptr [rbp-0x10], rax
        mov      gword ptr [rbp+0x10], rcx
        mov      dword ptr [rbp+0x18], edx
        mov      gword ptr [rbp+0x20], r8
        mov      bword ptr [rbp+0x28], r9
-                       ;; size=43 bbWeight=1 PerfScore 10.33
+                       ;; size=34 bbWeight=1 PerfScore 8.00
 G_M11790_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       mov      r9, bword ptr [rbp+0x28]
+       ; byrRegs +[r9]
+                       ;; size=4 bbWeight=1 PerfScore 1.00
+G_M11790_IG03:        ; bbWeight=1, nogc, extend
+       vmovdqu  xmm0, xmmword ptr [r9]
+       vmovdqu  xmmword ptr [rbp-0x10], xmm0
+                       ;; size=10 bbWeight=1 PerfScore 5.00
+G_M11790_IG04:        ; bbWeight=1, extend
+       lea      r9, [rbp-0x10]
+       ; byrRegs -[r9]
+       mov      edx, dword ptr [rbp+0x18]
+       mov      r8, gword ptr [rbp+0x20]
+       ; gcrRegs +[r8]
        mov      rcx, gword ptr [rbp+0x10]
        ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-0x18], rcx
-       mov      ecx, dword ptr [rbp+0x18]
-       ; gcrRegs -[rcx]
-       mov      dword ptr [rbp-0x1C], ecx
-       mov      rcx, gword ptr [rbp+0x20]
-       ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-0x28], rcx
-       mov      rcx, bword ptr [rbp+0x28]
-       ; gcrRegs -[rcx]
-       ; byrRegs +[rcx]
-                       ;; size=26 bbWeight=1 PerfScore 7.00
-G_M11790_IG03:        ; bbWeight=1, nogc, extend
-       vmovdqu  xmm0, xmmword ptr [rcx]
-       vmovdqu  xmmword ptr [rbp-0x10], xmm0
-                       ;; size=9 bbWeight=1 PerfScore 5.00
-G_M11790_IG04:        ; bbWeight=1, extend
-       mov      rcx, gword ptr [rbp-0x18]
-       ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
-       mov      edx, dword ptr [rbp-0x1C]
-       mov      r8, gword ptr [rbp-0x28]
-       ; gcrRegs +[r8]
-       lea      r9, [rbp-0x10]
        call     [<unknown method>]
        ; gcrRegs -[rcx r8]
        nop      
                        ;; size=22 bbWeight=1 PerfScore 6.75
 G_M11790_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 80
+       add      rsp, 48
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 106, prolog size 28, PerfScore 30.83, instruction count 30, allocated bytes for code 106 (MethodHash=056ad1f1) for method Microsoft.CodeAnalysis.SmallDictionary`2+AvlNode[System.__Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo]:.ctor(int,System.__Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo):this (Tier0)
+; Total bytes of code 76, prolog size 19, PerfScore 22.50, instruction count 22, allocated bytes for code 76 (MethodHash=056ad1f1) for method Microsoft.CodeAnalysis.SmallDictionary`2+AvlNode[System.__Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo]:.ctor(int,System.__Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -80,5 +65,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+21 (+13.12%) : 491023.dasm - (dynamicClass):ABIStress_TailCaller552(float,int,int,ABIStress.S1P,long,double,ABIStress.S8U,ABIStress.S2U,short,ubyte,short,short,ABIStress.S2U,short,ubyte,ABIStress.S2U,ABIStress.S2U):int (FullOpts)

@@ -10,12 +10,12 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )   float  ->  zero-ref    single-def
 ;  V01 arg1         [V01,T01] (  3,  3   )     int  ->  rdx         single-def
-;  V02 arg2         [V02,T02] (  3,  3   )     int  ->   r8         single-def
+;  V02 arg2         [V02,T02] (  3,  3   )     int  ->  rcx         single-def
 ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def <ABIStress.S1P>
-;  V04 arg4         [V04,T10] (  1,  1   )    long  ->  [rbp+0x30]  single-def
-;  V05 arg5         [V05,T28] (  1,  1   )  double  ->  [rbp+0x38]  single-def
-;  V06 arg6         [V06,T11] (  1,  1   )  struct ( 8) [rbp+0x40]  do-not-enreg[S] single-def <ABIStress.S8U>
-;  V07 arg7         [V07,T12] (  1,  1   )  struct ( 8) [rbp+0x48]  do-not-enreg[S] single-def <ABIStress.S2U>
+;  V04 arg4         [V04,T07] (  1,  1   )    long  ->  [rbp+0x30]  single-def
+;  V05 arg5         [V05,T24] (  2,  2   )  double  ->  mm1         single-def
+;  V06 arg6         [V06,T08] (  1,  1   )  struct ( 8) [rbp+0x40]  do-not-enreg[S] single-def <ABIStress.S8U>
+;  V07 arg7         [V07,T09] (  1,  1   )  struct ( 8) [rbp+0x48]  do-not-enreg[S] single-def <ABIStress.S2U>
 ;* V08 arg8         [V08    ] (  0,  0   )   short  ->  zero-ref    single-def
 ;* V09 arg9         [V09    ] (  0,  0   )   ubyte  ->  zero-ref    single-def
 ;* V10 arg10        [V10    ] (  0,  0   )   short  ->  zero-ref    single-def
@@ -23,8 +23,8 @@
 ;* V12 arg12        [V12    ] (  0,  0   )  struct ( 8) zero-ref    single-def <ABIStress.S2U>
 ;* V13 arg13        [V13    ] (  0,  0   )   short  ->  zero-ref    single-def
 ;* V14 arg14        [V14    ] (  0,  0   )   ubyte  ->  zero-ref    single-def
-;  V15 arg15        [V15,T13] (  1,  1   )  struct ( 8) [rbp+0x88]  do-not-enreg[S] single-def <ABIStress.S2U>
-;  V16 arg16        [V16,T14] (  1,  1   )  struct ( 8) [rbp+0x90]  do-not-enreg[SF] single-def <ABIStress.S2U>
+;  V15 arg15        [V15,T10] (  1,  1   )  struct ( 8) [rbp+0x88]  do-not-enreg[S] single-def <ABIStress.S2U>
+;  V16 arg16        [V16,T11] (  1,  1   )  struct ( 8) [rbp+0x90]  do-not-enreg[SF] single-def <ABIStress.S2U>
 ;# V17 OutArgs      [V17    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V18 tmp1         [V18    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <ABIStress.S8P>
 ;* V19 tmp2         [V19    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <ABIStress.S8P>
@@ -33,80 +33,79 @@
 ;* V22 tmp5         [V22    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <ABIStress.S8P>
 ;* V23 tmp6         [V23    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <ABIStress.S8P>
 ;* V24 tmp7         [V24    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] "impAppendStmt" <ABIStress.S4U>
-;* V25 tmp8         [V25,T15] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V26 tmp9         [V26,T16] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V27 tmp10        [V27,T17] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V28 tmp11        [V28,T18] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;  V29 tmp12        [V29,T07] (  1,  1   )   ubyte  ->   r9         single-def "field V03.F0 (fldOffset=0x0)" P-INDEP
-;* V30 tmp13        [V30,T19] (  0,  0   )    long  ->  zero-ref    single-def "field V18.F0 (fldOffset=0x0)" P-INDEP
-;* V31 tmp14        [V31,T20] (  0,  0   )    long  ->  zero-ref    single-def "field V19.F0 (fldOffset=0x0)" P-INDEP
+;* V25 tmp8         [V25,T12] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V26 tmp9         [V26,T13] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V27 tmp10        [V27,T14] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V28 tmp11        [V28,T15] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;  V29 tmp12        [V29,T06] (  1,  1   )   ubyte  ->   r9         single-def "field V03.F0 (fldOffset=0x0)" P-INDEP
+;* V30 tmp13        [V30,T16] (  0,  0   )    long  ->  zero-ref    single-def "field V18.F0 (fldOffset=0x0)" P-INDEP
+;* V31 tmp14        [V31,T17] (  0,  0   )    long  ->  zero-ref    single-def "field V19.F0 (fldOffset=0x0)" P-INDEP
 ;* V32 tmp15        [V32    ] (  0,  0   )    long  ->  zero-ref    single-def "field V20.F0 (fldOffset=0x0)" P-INDEP
-;* V33 tmp16        [V33,T21] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F0 (fldOffset=0x0)" P-INDEP
-;* V34 tmp17        [V34,T22] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F1 (fldOffset=0x1)" P-INDEP
-;* V35 tmp18        [V35,T23] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F2 (fldOffset=0x2)" P-INDEP
-;* V36 tmp19        [V36,T24] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F3 (fldOffset=0x3)" P-INDEP
+;* V33 tmp16        [V33,T18] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F0 (fldOffset=0x0)" P-INDEP
+;* V34 tmp17        [V34,T19] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F1 (fldOffset=0x1)" P-INDEP
+;* V35 tmp18        [V35,T20] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F2 (fldOffset=0x2)" P-INDEP
+;* V36 tmp19        [V36,T21] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F3 (fldOffset=0x3)" P-INDEP
 ;* V37 tmp20        [V37    ] (  0,  0   )    long  ->  zero-ref    single-def "field V22.F0 (fldOffset=0x0)" P-INDEP
-;* V38 tmp21        [V38,T25] (  0,  0   )    long  ->  zero-ref    single-def "field V23.F0 (fldOffset=0x0)" P-INDEP
+;* V38 tmp21        [V38,T22] (  0,  0   )    long  ->  zero-ref    single-def "field V23.F0 (fldOffset=0x0)" P-INDEP
 ;  V39 tmp22        [V39,T00] (  5, 10   )  struct ( 8) [rbp-0x08]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S4U>
-;* V40 tmp23        [V40,T08] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
-;  V41 tmp24        [V41,T26] (  3,  6   )  double  ->  mm1         "argument with side effect"
-;  V42 tmp25        [V42,T03] (  2,  4   )    long  ->   r9         "argument with side effect"
-;  V43 tmp26        [V43,T04] (  2,  4   )     int  ->  rax         "argument with side effect"
-;  V44 tmp27        [V44,T27] (  3,  6   )  double  ->  mm0         "argument with side effect"
-;  V45 tmp28        [V45,T05] (  2,  4   )     int  ->  rdx         "argument with side effect"
-;* V46 tmp29        [V46,T09] (  0,  0   )    long  ->  zero-ref    "argument with side effect"
-;  V47 tmp30        [V47,T06] (  2,  4   )     int  ->  r10         "argument with side effect"
+;  V40 rat0         [V40,T03] (  2,  4   )    long  ->   r8         "Fast tail call lowering is creating a new local variable"
+;  V41 rat1         [V41,T23] (  3,  6   )  double  ->  mm0         "Fast tail call lowering is creating a new local variable"
+;  V42 rat2         [V42,T04] (  2,  4   )  struct ( 8) [rbp-0x10]  do-not-enreg[S] "Fast tail call lowering is creating a new local variable" <ABIStress.S8U>
+;  V43 rat3         [V43,T05] (  2,  4   )  struct ( 8) [rbp-0x18]  do-not-enreg[S] "Fast tail call lowering is creating a new local variable" <ABIStress.S2U>
 ;
-; Lcl frame size = 16
+; Lcl frame size = 32
 
 G_M58403_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 16
+       sub      rsp, 32
        vzeroupper 
-       lea      rbp, [rsp+0x10]
-                       ;; size=13 bbWeight=1 PerfScore 2.75
-G_M58403_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       lea      rbp, [rsp+0x20]
+       mov      ecx, r8d
        vmovsd   xmm1, qword ptr [rbp+0x38]
-       mov      r9, qword ptr [rbp+0x40]
-       mov      eax, r8d
+                       ;; size=21 bbWeight=1 PerfScore 6.00
+G_M58403_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       nop      
+                       ;; size=1 bbWeight=1 PerfScore 0.25
+G_M58403_IG03:        ; bbWeight=1, nogc, extend
+       mov      r8, qword ptr [rbp+0x30]
        vmovaps  xmm0, xmm1
-       movzx    r10, word  ptr [rbp+0x88]
+       mov      r9, qword ptr [rbp+0x40]
+       mov      qword ptr [rbp-0x10], r9
+       movzx    r9, word  ptr [rbp+0x48]
+       mov      word  ptr [rbp-0x18], r9w
+       vmovsd   qword ptr [rbp+0x30], xmm1
+       mov      dword ptr [rbp+0x38], edx
+       mov      r9, 0xD1FFAB1E
+       mov      qword ptr [rbp+0x40], r9
+       movzx    r9, word  ptr [rbp+0x88]
+       mov      dword ptr [rbp+0x48], r9d
        mov      byte  ptr [rbp-0x08], 119
        mov      byte  ptr [rbp-0x07], 178
        mov      byte  ptr [rbp-0x06], 230
        mov      byte  ptr [rbp-0x05], 105
-       nop      
-                       ;; size=41 bbWeight=1 PerfScore 9.75
-G_M58403_IG03:        ; bbWeight=1, nogc, extend
-       vmovsd   qword ptr [rbp+0x58], xmm1
-       movzx    rcx, word  ptr [rbp+0x48]
-       mov      dword ptr [rbp+0x60], ecx
-       mov      rcx, qword ptr [rbp+0x30]
-       mov      qword ptr [rbp+0x68], rcx
-       mov      rcx, 0xD1FFAB1E
-       mov      qword ptr [rbp+0x70], rcx
-       movzx    rcx, byte  ptr [rbp+0x91]
-       mov      dword ptr [rbp+0x78], ecx
-       mov      rcx, 0xD1FFAB1E
+       vmovsd   qword ptr [rbp+0x58], xmm0
+       movzx    r9, word  ptr [rbp-0x18]
+       mov      dword ptr [rbp+0x60], r9d
+       mov      qword ptr [rbp+0x68], r8
+       mov      r8, 0xD1FFAB1E
+       mov      qword ptr [rbp+0x70], r8
+       movzx    r8, byte  ptr [rbp+0x91]
+       mov      dword ptr [rbp+0x78], r8d
+       mov      r8d, dword ptr [rbp-0x08]
+       mov      dword ptr [rbp+0x50], r8d
        vmovaps  xmm1, xmm0
-       mov      r8, r9
-       mov      r9d, eax
-       vmovsd   qword ptr [rbp+0x30], xmm0
-       mov      dword ptr [rbp+0x38], edx
-       mov      rax, 0xD1FFAB1E
-       mov      qword ptr [rbp+0x40], rax
-       mov      dword ptr [rbp+0x48], r10d
-       mov      eax, dword ptr [rbp-0x08]
-       mov      dword ptr [rbp+0x50], eax
-                       ;; size=96 bbWeight=1 PerfScore 15.50
+       mov      r8, qword ptr [rbp-0x10]
+       mov      r9d, ecx
+       mov      rcx, 0xD1FFAB1E
+                       ;; size=149 bbWeight=1 PerfScore 25.50
 G_M58403_IG04:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 16
+       add      rsp, 32
        pop      rbp
        jmp      <unknown method>
        ; gcr arg pop 0
                        ;; size=10 bbWeight=1 PerfScore 2.75
 
-; Total bytes of code 160, prolog size 13, PerfScore 30.75, instruction count 37, allocated bytes for code 160 (MethodHash=48f01bdc) for method (dynamicClass):ABIStress_TailCaller552(float,int,int,ABIStress.S1P,long,double,ABIStress.S8U,ABIStress.S2U,short,ubyte,short,short,ABIStress.S2U,short,ubyte,ABIStress.S2U,ABIStress.S2U):int (FullOpts)
+; Total bytes of code 181, prolog size 21, PerfScore 34.50, instruction count 40, allocated bytes for code 181 (MethodHash=48f01bdc) for method (dynamicClass):ABIStress_TailCaller552(float,int,int,ABIStress.S1P,long,double,ABIStress.S8U,ABIStress.S2U,short,ubyte,short,short,ABIStress.S2U,short,ubyte,ABIStress.S2U,ABIStress.S2U):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -119,5 +118,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 1 * 8 + 8 = 16 = 0x10
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+12 (+13.48%) : 490883.dasm - (dynamicClass):ABIStress_TailCaller474(long,ubyte,int,ABIStress.S2U,ABIStress.S4P,ABIStress.S2U,int,double,short,ABIStress.S2P,ABIStress.S4P,long,ubyte,long,ubyte,ABIStress.S8P,long,double,ABIStress.S4P,ABIStress.S2P):int (FullOpts)

@@ -13,7 +13,7 @@
 ;* V02 arg2         [V02    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V03 arg3         [V03    ] (  0,  0   )  struct ( 8) zero-ref    single-def <ABIStress.S2U>
 ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def <ABIStress.S4P>
-;  V05 arg5         [V05,T06] (  1,  1   )  struct ( 8) [rsp+0x38]  do-not-enreg[SF] single-def <ABIStress.S2U>
+;  V05 arg5         [V05,T03] (  1,  1   )  struct ( 8) [rsp+0x48]  do-not-enreg[SF] single-def <ABIStress.S2U>
 ;* V06 arg6         [V06    ] (  0,  0   )     int  ->  zero-ref    single-def
 ;* V07 arg7         [V07    ] (  0,  0   )  double  ->  zero-ref    single-def
 ;* V08 arg8         [V08    ] (  0,  0   )   short  ->  zero-ref    single-def
@@ -32,60 +32,56 @@
 ;* V21 tmp1         [V21    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <ABIStress.S4U>
 ;* V22 tmp2         [V22    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <ABIStress.S1P>
 ;* V23 tmp3         [V23    ] (  0,  0   )  struct ( 8) zero-ref    do-not-enreg[SF] "impAppendStmt" <ABIStress.S4U>
-;* V24 tmp4         [V24,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V25 tmp5         [V25,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V26 tmp6         [V26,T09] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V27 tmp7         [V27,T10] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V24 tmp4         [V24,T04] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V25 tmp5         [V25,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V26 tmp6         [V26,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V27 tmp7         [V27,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
 ;* V28 tmp8         [V28    ] (  0,  0   )     int  ->  zero-ref    single-def "field V04.F0 (fldOffset=0x0)" P-INDEP
-;  V29 tmp9         [V29,T11] (  1,  1   )   short  ->  [rsp+0x58]  single-def "field V09.F0 (fldOffset=0x0)" P-INDEP
+;  V29 tmp9         [V29,T08] (  1,  1   )   short  ->  [rsp+0x68]  single-def "field V09.F0 (fldOffset=0x0)" P-INDEP
 ;* V30 tmp10        [V30    ] (  0,  0   )     int  ->  zero-ref    single-def "field V10.F0 (fldOffset=0x0)" P-INDEP
-;  V31 tmp11        [V31,T12] (  1,  1   )    long  ->  [rsp+0x88]  single-def "field V15.F0 (fldOffset=0x0)" P-INDEP
+;  V31 tmp11        [V31,T09] (  1,  1   )    long  ->  [rsp+0x98]  single-def "field V15.F0 (fldOffset=0x0)" P-INDEP
 ;* V32 tmp12        [V32    ] (  0,  0   )     int  ->  zero-ref    single-def "field V18.F0 (fldOffset=0x0)" P-INDEP
-;  V33 tmp13        [V33,T13] (  1,  1   )   short  ->  [rsp+0xA8]  single-def "field V19.F0 (fldOffset=0x0)" P-INDEP
-;* V34 tmp14        [V34,T14] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F0 (fldOffset=0x0)" P-INDEP
-;* V35 tmp15        [V35,T15] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F1 (fldOffset=0x1)" P-INDEP
-;* V36 tmp16        [V36,T16] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F2 (fldOffset=0x2)" P-INDEP
-;* V37 tmp17        [V37,T17] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F3 (fldOffset=0x3)" P-INDEP
-;* V38 tmp18        [V38,T18] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V22.F0 (fldOffset=0x0)" P-INDEP
-;  V39 tmp19        [V39,T00] (  5, 10   )  struct ( 8) [rsp+0x00]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S4U>
-;  V40 tmp20        [V40,T02] (  2,  4   )     int  ->  rcx         "argument with side effect"
-;  V41 tmp21        [V41,T03] (  2,  4   )    long  ->   r8         "argument with side effect"
-;  V42 tmp22        [V42,T04] (  2,  4   )     int  ->   r9         "argument with side effect"
-;  V43 tmp23        [V43,T05] (  2,  4   )     int  ->  rax         "argument with side effect"
+;  V33 tmp13        [V33,T10] (  1,  1   )   short  ->  [rsp+0xB8]  single-def "field V19.F0 (fldOffset=0x0)" P-INDEP
+;* V34 tmp14        [V34,T11] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F0 (fldOffset=0x0)" P-INDEP
+;* V35 tmp15        [V35,T12] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F1 (fldOffset=0x1)" P-INDEP
+;* V36 tmp16        [V36,T13] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F2 (fldOffset=0x2)" P-INDEP
+;* V37 tmp17        [V37,T14] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V21.F3 (fldOffset=0x3)" P-INDEP
+;* V38 tmp18        [V38,T15] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V22.F0 (fldOffset=0x0)" P-INDEP
+;  V39 tmp19        [V39,T00] (  5, 10   )  struct ( 8) [rsp+0x10]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S4U>
+;  V40 rat0         [V40,T02] (  2,  4   )  struct ( 8) [rsp+0x08]  do-not-enreg[SF] "Fast tail call lowering is creating a new local variable" <ABIStress.S2U>
 ;
-; Lcl frame size = 8
+; Lcl frame size = 24
 
 G_M14408_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       push     rax
-                       ;; size=1 bbWeight=1 PerfScore 1.00
+       sub      rsp, 24
+                       ;; size=4 bbWeight=1 PerfScore 0.25
 G_M14408_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       movzx    rcx, byte  ptr [rsp+0x39]
-       mov      r8, qword ptr [rsp+0x88]
-       movsx    r9, word  ptr [rsp+0xA8]
-       movsx    rax, word  ptr [rsp+0x58]
-       mov      byte  ptr [rsp], 176
-       mov      byte  ptr [rsp+0x01], 245
-       mov      byte  ptr [rsp+0x02], 168
-       mov      byte  ptr [rsp+0x03], 170
+       mov      byte  ptr [rsp+0x10], 176
+       mov      byte  ptr [rsp+0x11], 245
+       mov      byte  ptr [rsp+0x12], 168
+       mov      byte  ptr [rsp+0x13], 170
        nop      
-                       ;; size=48 bbWeight=1 PerfScore 12.25
+                       ;; size=21 bbWeight=1 PerfScore 4.25
 G_M14408_IG03:        ; bbWeight=1, nogc, extend
-       mov      dword ptr [rsp+0x38], 166
-       movzx    rdx, dl
-       mov      dword ptr [rsp+0x40], edx
-       mov      rdx, r8
-       mov      r8d, r9d
-       mov      r9d, eax
-       mov      eax, dword ptr [rsp]
-       mov      dword ptr [rsp+0x30], eax
-                       ;; size=31 bbWeight=1 PerfScore 5.00
+       movzx    r9, word  ptr [rsp+0x48]
+       mov      word  ptr [rsp+0x08], r9w
+       mov      dword ptr [rsp+0x48], 166
+       movzx    r9, dl
+       mov      dword ptr [rsp+0x50], r9d
+       mov      r9d, dword ptr [rsp+0x10]
+       mov      dword ptr [rsp+0x40], r9d
+       movsx    r9, word  ptr [rsp+0x68]
+       mov      rdx, qword ptr [rsp+0x98]
+       movsx    r8, word  ptr [rsp+0xB8]
+       movzx    rcx, byte  ptr [rsp+0x09]
+                       ;; size=67 bbWeight=1 PerfScore 14.25
 G_M14408_IG04:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 8
+       add      rsp, 24
        jmp      <unknown method>
        ; gcr arg pop 0
                        ;; size=9 bbWeight=1 PerfScore 2.25
 
-; Total bytes of code 89, prolog size 1, PerfScore 20.50, instruction count 20, allocated bytes for code 89 (MethodHash=7ad4c7b7) for method (dynamicClass):ABIStress_TailCaller474(long,ubyte,int,ABIStress.S2U,ABIStress.S4P,ABIStress.S2U,int,double,short,ABIStress.S2P,ABIStress.S4P,long,ubyte,long,ubyte,ABIStress.S8P,long,double,ABIStress.S4P,ABIStress.S2P):int (FullOpts)
+; Total bytes of code 101, prolog size 4, PerfScore 21.00, instruction count 19, allocated bytes for code 101 (MethodHash=7ad4c7b7) for method (dynamicClass):ABIStress_TailCaller474(long,ubyte,int,ABIStress.S2U,ABIStress.S4P,ABIStress.S2U,int,double,short,ABIStress.S2P,ABIStress.S4P,long,ubyte,long,ubyte,ABIStress.S8P,long,double,ABIStress.S4P,ABIStress.S2P):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -93,9 +89,9 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x01
+  SizeOfProlog      : 0x04
   CountOfUnwindCodes: 1
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
+    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 2 * 8 + 8 = 24 = 0x18

+15 (+21.74%) : 490039.dasm - (dynamicClass):ABIStress_TailCaller13(double,double,ABIStress.S4U,float,ABIStress.S4U,ABIStress.S8U,ABIStress.S8U,double,ABIStress.S8U):int (FullOpts)

@@ -10,62 +10,61 @@
 ;
 ;* V00 arg0         [V00    ] (  0,  0   )  double  ->  zero-ref    single-def
 ;* V01 arg1         [V01    ] (  0,  0   )  double  ->  zero-ref    single-def
-;  V02 arg2         [V02,T01] (  3,  3   )  struct ( 8) [rsp+0x20]  do-not-enreg[S] single-def <ABIStress.S4U>
+;  V02 arg2         [V02,T01] (  3,  3   )  struct ( 8) [rsp+0x30]  do-not-enreg[S] single-def <ABIStress.S4U>
 ;* V03 arg3         [V03    ] (  0,  0   )   float  ->  zero-ref    single-def
 ;* V04 arg4         [V04    ] (  0,  0   )  struct ( 8) zero-ref    single-def <ABIStress.S4U>
-;  V05 arg5         [V05,T06] (  1,  1   )  struct ( 8) [rsp+0x38]  do-not-enreg[S] single-def <ABIStress.S8U>
+;  V05 arg5         [V05,T03] (  1,  1   )  struct ( 8) [rsp+0x48]  do-not-enreg[S] single-def <ABIStress.S8U>
 ;* V06 arg6         [V06    ] (  0,  0   )  struct ( 8) zero-ref    single-def <ABIStress.S8U>
 ;* V07 arg7         [V07    ] (  0,  0   )  double  ->  zero-ref    single-def
-;  V08 arg8         [V08,T07] (  1,  1   )  struct ( 8) [rsp+0x50]  do-not-enreg[S] single-def <ABIStress.S8U>
+;  V08 arg8         [V08,T04] (  1,  1   )  struct ( 8) [rsp+0x60]  do-not-enreg[S] single-def <ABIStress.S8U>
 ;# V09 OutArgs      [V09    ] (  1,  1   )  struct ( 0) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V10 tmp1         [V10    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <ABIStress.S4P>
 ;* V11 tmp2         [V11    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <ABIStress.S2U>
 ;* V12 tmp3         [V12    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <ABIStress.S4P>
 ;* V13 tmp4         [V13    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op "NewObj constructor temp" <ABIStress.S8P>
 ;* V14 tmp5         [V14    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <ABIStress.S2U>
-;* V15 tmp6         [V15,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V16 tmp7         [V16,T09] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
-;* V17 tmp8         [V17,T10] (  0,  0   )     int  ->  zero-ref    single-def "field V10.F0 (fldOffset=0x0)" P-INDEP
-;* V18 tmp9         [V18,T11] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V11.F0 (fldOffset=0x0)" P-INDEP
-;* V19 tmp10        [V19,T12] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V11.F1 (fldOffset=0x1)" P-INDEP
+;* V15 tmp6         [V15,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V16 tmp7         [V16,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "Inline stloc first use temp"
+;* V17 tmp8         [V17,T07] (  0,  0   )     int  ->  zero-ref    single-def "field V10.F0 (fldOffset=0x0)" P-INDEP
+;* V18 tmp9         [V18,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V11.F0 (fldOffset=0x0)" P-INDEP
+;* V19 tmp10        [V19,T09] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V11.F1 (fldOffset=0x1)" P-INDEP
 ;* V20 tmp11        [V20    ] (  0,  0   )     int  ->  zero-ref    single-def "field V12.F0 (fldOffset=0x0)" P-INDEP
-;* V21 tmp12        [V21,T13] (  0,  0   )    long  ->  zero-ref    single-def "field V13.F0 (fldOffset=0x0)" P-INDEP
+;* V21 tmp12        [V21,T10] (  0,  0   )    long  ->  zero-ref    single-def "field V13.F0 (fldOffset=0x0)" P-INDEP
 ;* V22 tmp13        [V22    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V14.F0 (fldOffset=0x0)" P-INDEP
 ;* V23 tmp14        [V23    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V14.F1 (fldOffset=0x1)" P-INDEP
-;  V24 tmp15        [V24,T00] (  3,  6   )  struct ( 8) [rsp+0x00]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S2U>
-;  V25 tmp16        [V25,T02] (  2,  4   )    long  ->  rcx         "argument with side effect"
-;  V26 tmp17        [V26,T03] (  2,  4   )    long  ->  rdx         "argument with side effect"
-;* V27 tmp18        [V27,T05] (  0,  0   )     int  ->  zero-ref    "argument with side effect"
-;  V28 tmp19        [V28,T04] (  2,  4   )     int  ->   r9         "argument with side effect"
+;  V24 tmp15        [V24,T00] (  3,  6   )  struct ( 8) [rsp+0x10]  do-not-enreg[SF] "by-value struct argument" <ABIStress.S2U>
+;  V25 rat0         [V25,T02] (  2,  4   )  struct ( 8) [rsp+0x08]  do-not-enreg[S] "Fast tail call lowering is creating a new local variable" <ABIStress.S8U>
 ;
-; Lcl frame size = 8
+; Lcl frame size = 24
 
 G_M59583_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       push     rax
-       mov      qword ptr [rsp+0x20], r8
-                       ;; size=6 bbWeight=1 PerfScore 2.00
+       sub      rsp, 24
+       mov      qword ptr [rsp+0x30], r8
+                       ;; size=9 bbWeight=1 PerfScore 1.25
 G_M59583_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      rcx, qword ptr [rsp+0x50]
-       mov      rdx, qword ptr [rsp+0x38]
-       mov      r9d, dword ptr [rsp+0x20]
-       mov      byte  ptr [rsp], 217
-       mov      byte  ptr [rsp+0x01], 150
+       mov      byte  ptr [rsp+0x10], 217
+       mov      byte  ptr [rsp+0x11], 150
        nop      
-                       ;; size=25 bbWeight=1 PerfScore 5.25
+                       ;; size=11 bbWeight=1 PerfScore 2.25
 G_M59583_IG03:        ; bbWeight=1, nogc, extend
-       mov      r8, 0xD1FFAB1E
-       mov      qword ptr [rsp+0x38], r8
+       mov      rdx, qword ptr [rsp+0x48]
+       mov      qword ptr [rsp+0x08], rdx
+       mov      rdx, 0xD1FFAB1E
+       mov      qword ptr [rsp+0x48], rdx
+       movzx    rdx, word  ptr [rsp+0x10]
+       mov      dword ptr [rsp+0x40], edx
+       mov      rdx, qword ptr [rsp+0x08]
        mov      r8d, 0xD1FFAB1E
-       movzx    rax, word  ptr [rsp]
-       mov      dword ptr [rsp+0x30], eax
-                       ;; size=29 bbWeight=1 PerfScore 3.50
+       mov      r9d, dword ptr [rsp+0x30]
+       mov      rcx, qword ptr [rsp+0x60]
+                       ;; size=55 bbWeight=1 PerfScore 8.50
 G_M59583_IG04:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 8
+       add      rsp, 24
        jmp      <unknown method>
        ; gcr arg pop 0
                        ;; size=9 bbWeight=1 PerfScore 2.25
 
-; Total bytes of code 69, prolog size 6, PerfScore 13.00, instruction count 15, allocated bytes for code 69 (MethodHash=1a9d1740) for method (dynamicClass):ABIStress_TailCaller13(double,double,ABIStress.S4U,float,ABIStress.S4U,ABIStress.S8U,ABIStress.S8U,double,ABIStress.S8U):int (FullOpts)
+; Total bytes of code 84, prolog size 9, PerfScore 14.25, instruction count 17, allocated bytes for code 84 (MethodHash=1a9d1740) for method (dynamicClass):ABIStress_TailCaller13(double,double,ABIStress.S4U,float,ABIStress.S4U,ABIStress.S8U,ABIStress.S8U,double,ABIStress.S8U):int (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -73,9 +72,9 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x01
+  SizeOfProlog      : 0x04
   CountOfUnwindCodes: 1
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x01 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 0 * 8 + 8 = 8 = 0x08
+    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 2 * 8 + 8 = 24 = 0x18

libraries.crossgen2.windows.x64.checked.mch

-17 (-19.32%) : 170915.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.NamespaceSymbol:GetRootNamespaceSymbol():Microsoft.CSharp.RuntimeBinder.Semantics.NamespaceSymbol (FullOpts)

@@ -13,28 +13,22 @@
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V02 tmp1         [V02,T00] (  4,  8   )     ref  ->  rbx         class-hnd exact single-def "NewObj constructor temp" <Microsoft.CSharp.RuntimeBinder.Semantics.NamespaceSymbol>
 ;  V03 tmp2         [V03,T01] (  3,  6   )     ref  ->  rcx         single-def "arr expr"
-;  TEMP_01                                   byref  ->  [rsp+0x28]
 ;
-; Lcl frame size = 48
+; Lcl frame size = 32
 
 G_M38638_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbx
-       sub      rsp, 48
-       xor      eax, eax
-       mov      qword ptr [rsp+0x28], rax
-                       ;; size=12 bbWeight=1 PerfScore 2.50
+       sub      rsp, 32
+                       ;; size=5 bbWeight=1 PerfScore 1.25
 G_M38638_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        call     [CORINFO_HELP_READYTORUN_NEW]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      rbx, rax
        ; gcrRegs +[rbx]
-       lea      rcx, bword ptr [rbx+0x08]
-       ; byrRegs +[rcx]
-       mov      bword ptr [rsp+0x28], rcx
        call     [CORINFO_HELP_READYTORUN_GCSTATIC_BASE]
        ; gcrRegs -[rax]
-       ; byrRegs -[rcx] +[rax]
+       ; byrRegs +[rax]
        ; gcr arg pop 0
        mov      rcx, gword ptr [rax+0xC0]
        ; gcrRegs +[rcx]
@@ -42,7 +36,7 @@ G_M38638_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        jbe      SHORT G_M38638_IG04
        mov      rdx, gword ptr [rcx+0x348]
        ; gcrRegs +[rdx]
-       mov      rcx, bword ptr [rsp+0x28]
+       lea      rcx, bword ptr [rbx+0x08]
        ; gcrRegs -[rcx]
        ; byrRegs +[rcx]
        call     [CORINFO_HELP_ASSIGN_REF]
@@ -52,9 +46,9 @@ G_M38638_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      dword ptr [rbx+0x28], eax
        mov      rax, rbx
        ; gcrRegs +[rax]
-                       ;; size=63 bbWeight=1 PerfScore 21.25
+                       ;; size=53 bbWeight=1 PerfScore 19.25
 G_M38638_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 48
+       add      rsp, 32
        pop      rbx
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
@@ -65,7 +59,7 @@ G_M38638_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 88, prolog size 12, PerfScore 25.50, instruction count 23, allocated bytes for code 88 (MethodHash=64d56911) for method Microsoft.CSharp.RuntimeBinder.Semantics.NamespaceSymbol:GetRootNamespaceSymbol():Microsoft.CSharp.RuntimeBinder.Semantics.NamespaceSymbol (FullOpts)
+; Total bytes of code 71, prolog size 5, PerfScore 22.25, instruction count 19, allocated bytes for code 71 (MethodHash=64d56911) for method Microsoft.CSharp.RuntimeBinder.Semantics.NamespaceSymbol:GetRootNamespaceSymbol():Microsoft.CSharp.RuntimeBinder.Semantics.NamespaceSymbol (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -78,5 +72,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 3 * 8 + 8 = 32 = 0x20
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)

-15 (-18.52%) : 240221.dasm - System.Net.Quic.QuicConnection:HandleEventPeerAddressChanged(byref):int:this (FullOpts)

@@ -8,60 +8,53 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  3,  3   )     ref  ->  rcx         this class-hnd single-def <System.Net.Quic.QuicConnection>
+;  V00 this         [V00,T01] (  3,  3   )     ref  ->  rbx         this class-hnd single-def <System.Net.Quic.QuicConnection>
 ;  V01 arg1         [V01,T02] (  3,  3   )   byref  ->  rdx         single-def
 ;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[int]>
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T03] (  2,  4   )    long  ->  rdx         "impAppendStmt"
-;* V05 tmp2         [V05,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V02.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp3         [V06,T06] (  0,  0   )     int  ->  zero-ref    "field V02.value (fldOffset=0x4)" P-INDEP
+;  V04 tmp1         [V04,T03] (  2,  4   )    long  ->  rcx         "impAppendStmt"
+;* V05 tmp2         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V02.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp3         [V06,T05] (  0,  0   )     int  ->  zero-ref    "field V02.value (fldOffset=0x4)" P-INDEP
 ;  V07 tmp4         [V07,T00] (  3,  6   )  struct ( 8) [rsp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
-;  V08 tmp5         [V08,T04] (  2,  4   )    long  ->  rdx         "argument with side effect"
-;  TEMP_01                                   byref  ->  [rsp+0x30]
 ;
-; Lcl frame size = 56
+; Lcl frame size = 48
 
 G_M57932_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 56
-       xor      eax, eax
-       mov      qword ptr [rsp+0x30], rax
-                       ;; size=11 bbWeight=1 PerfScore 1.50
-G_M57932_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0004 {rdx}, byref
-       ; gcrRegs +[rcx]
+       push     rbx
+       sub      rsp, 48
+       mov      rbx, rcx
+       ; gcrRegs +[rbx]
+                       ;; size=8 bbWeight=1 PerfScore 1.50
+G_M57932_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, byref
        ; byrRegs +[rdx]
-       mov      rdx, qword ptr [rdx]
-       ; byrRegs -[rdx]
-       mov      rax, qword ptr [(reloc)]      ; const ptr
-       lea      rcx, bword ptr [rcx+rax]
-       ; gcrRegs -[rcx]
-       ; byrRegs +[rcx]
-       mov      bword ptr [rsp+0x30], rcx
+       mov      rcx, qword ptr [rdx]
        mov      byte  ptr [rsp+0x28], 0
-       xor      eax, eax
-       mov      dword ptr [rsp+0x2C], eax
-       mov      rcx, rdx
-       ; byrRegs -[rcx]
+       xor      edx, edx
+       ; byrRegs -[rdx]
+       mov      dword ptr [rsp+0x2C], edx
        mov      rdx, qword ptr [rsp+0x28]
        call     [System.Net.Quic.MsQuicHelpers:QuicAddrToIPEndPoint(ulong,System.Nullable`1[int]):System.Net.IPEndPoint]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      rcx, bword ptr [rsp+0x30]
+       mov      rcx, qword ptr [(reloc)]      ; const ptr
+       lea      rcx, bword ptr [rbx+rcx]
        ; byrRegs +[rcx]
        mov      rdx, rax
        ; gcrRegs +[rdx]
        call     [CORINFO_HELP_ASSIGN_REF]
-       ; gcrRegs -[rax rdx]
+       ; gcrRegs -[rax rdx rbx]
        ; byrRegs -[rcx]
        call     [Microsoft.Quic.MsQuic:get_QUIC_STATUS_SUCCESS():int]
        ; gcr arg pop 0
        nop      
-                       ;; size=65 bbWeight=1 PerfScore 19.50
+                       ;; size=52 bbWeight=1 PerfScore 17.25
 G_M57932_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 56
+       add      rsp, 48
+       pop      rbx
        ret      
-                       ;; size=5 bbWeight=1 PerfScore 1.25
+                       ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 81, prolog size 11, PerfScore 22.25, instruction count 20, allocated bytes for code 81 (MethodHash=e5451db3) for method System.Net.Quic.QuicConnection:HandleEventPeerAddressChanged(byref):int:this (FullOpts)
+; Total bytes of code 66, prolog size 5, PerfScore 20.50, instruction count 18, allocated bytes for code 66 (MethodHash=e5451db3) for method System.Net.Quic.QuicConnection:HandleEventPeerAddressChanged(byref):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -69,9 +62,10 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x04
-  CountOfUnwindCodes: 1
+  SizeOfProlog      : 0x05
+  CountOfUnwindCodes: 2
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 6 * 8 + 8 = 56 = 0x38
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)

-15 (-18.52%) : 240220.dasm - System.Net.Quic.QuicConnection:HandleEventLocalAddressChanged(byref):int:this (FullOpts)

@@ -8,60 +8,53 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  3,  3   )     ref  ->  rcx         this class-hnd single-def <System.Net.Quic.QuicConnection>
+;  V00 this         [V00,T01] (  3,  3   )     ref  ->  rbx         this class-hnd single-def <System.Net.Quic.QuicConnection>
 ;  V01 arg1         [V01,T02] (  3,  3   )   byref  ->  rdx         single-def
 ;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[int]>
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T03] (  2,  4   )    long  ->  rdx         "impAppendStmt"
-;* V05 tmp2         [V05,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V02.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp3         [V06,T06] (  0,  0   )     int  ->  zero-ref    "field V02.value (fldOffset=0x4)" P-INDEP
+;  V04 tmp1         [V04,T03] (  2,  4   )    long  ->  rcx         "impAppendStmt"
+;* V05 tmp2         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V02.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp3         [V06,T05] (  0,  0   )     int  ->  zero-ref    "field V02.value (fldOffset=0x4)" P-INDEP
 ;  V07 tmp4         [V07,T00] (  3,  6   )  struct ( 8) [rsp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
-;  V08 tmp5         [V08,T04] (  2,  4   )    long  ->  rdx         "argument with side effect"
-;  TEMP_01                                   byref  ->  [rsp+0x30]
 ;
-; Lcl frame size = 56
+; Lcl frame size = 48
 
 G_M54883_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 56
-       xor      eax, eax
-       mov      qword ptr [rsp+0x30], rax
-                       ;; size=11 bbWeight=1 PerfScore 1.50
-G_M54883_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0004 {rdx}, byref
-       ; gcrRegs +[rcx]
+       push     rbx
+       sub      rsp, 48
+       mov      rbx, rcx
+       ; gcrRegs +[rbx]
+                       ;; size=8 bbWeight=1 PerfScore 1.50
+G_M54883_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, byref
        ; byrRegs +[rdx]
-       mov      rdx, qword ptr [rdx]
-       ; byrRegs -[rdx]
-       mov      rax, qword ptr [(reloc)]      ; const ptr
-       lea      rcx, bword ptr [rcx+rax]
-       ; gcrRegs -[rcx]
-       ; byrRegs +[rcx]
-       mov      bword ptr [rsp+0x30], rcx
+       mov      rcx, qword ptr [rdx]
        mov      byte  ptr [rsp+0x28], 0
-       xor      eax, eax
-       mov      dword ptr [rsp+0x2C], eax
-       mov      rcx, rdx
-       ; byrRegs -[rcx]
+       xor      edx, edx
+       ; byrRegs -[rdx]
+       mov      dword ptr [rsp+0x2C], edx
        mov      rdx, qword ptr [rsp+0x28]
        call     [System.Net.Quic.MsQuicHelpers:QuicAddrToIPEndPoint(ulong,System.Nullable`1[int]):System.Net.IPEndPoint]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      rcx, bword ptr [rsp+0x30]
+       mov      rcx, qword ptr [(reloc)]      ; const ptr
+       lea      rcx, bword ptr [rbx+rcx]
        ; byrRegs +[rcx]
        mov      rdx, rax
        ; gcrRegs +[rdx]
        call     [CORINFO_HELP_ASSIGN_REF]
-       ; gcrRegs -[rax rdx]
+       ; gcrRegs -[rax rdx rbx]
        ; byrRegs -[rcx]
        call     [Microsoft.Quic.MsQuic:get_QUIC_STATUS_SUCCESS():int]
        ; gcr arg pop 0
        nop      
-                       ;; size=65 bbWeight=1 PerfScore 19.50
+                       ;; size=52 bbWeight=1 PerfScore 17.25
 G_M54883_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 56
+       add      rsp, 48
+       pop      rbx
        ret      
-                       ;; size=5 bbWeight=1 PerfScore 1.25
+                       ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 81, prolog size 11, PerfScore 22.25, instruction count 20, allocated bytes for code 81 (MethodHash=81ce299c) for method System.Net.Quic.QuicConnection:HandleEventLocalAddressChanged(byref):int:this (FullOpts)
+; Total bytes of code 66, prolog size 5, PerfScore 20.50, instruction count 18, allocated bytes for code 66 (MethodHash=81ce299c) for method System.Net.Quic.QuicConnection:HandleEventLocalAddressChanged(byref):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -69,9 +62,10 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x04
-  CountOfUnwindCodes: 1
+  SizeOfProlog      : 0x05
+  CountOfUnwindCodes: 2
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 6 * 8 + 8 = 56 = 0x38
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)

+9 (+8.91%) : 201735.dasm - System.Text.Json.Serialization.JsonConverter`1[System.Text.Json.JsonElement]:OnTryWriteAsObject(System.Text.Json.Utf8JsonWriter,System.Object,System.Text.Json.JsonSerializerOptions,byref):ubyte:this (FullOpts)

@@ -12,75 +12,76 @@
 ;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->  rsi         class-hnd single-def <System.Text.Json.Utf8JsonWriter>
 ;  V02 arg2         [V02,T02] (  3,  3   )     ref  ->   r8         class-hnd single-def <System.Object>
 ;  V03 arg3         [V03,T03] (  3,  3   )     ref  ->  rdi         class-hnd single-def <System.Text.Json.JsonSerializerOptions>
-;  V04 arg4         [V04,T06] (  1,  1   )   byref  ->  [rsp+0x90]  single-def
-;  V05 loc0         [V05    ] (  2,  2   )  struct (16) [rsp+0x40]  do-not-enreg[XS] must-init addr-exposed <System.Text.Json.JsonElement>
+;  V04 arg4         [V04,T04] (  1,  1   )   byref  ->  [rsp+0x90]  single-def
+;  V05 loc0         [V05    ] (  2,  2   )  struct (16) [rsp+0x38]  do-not-enreg[XS] must-init addr-exposed <System.Text.Json.JsonElement>
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V07 tmp1         [V07    ] (  2,  2   )     ref  ->  [rsp+0x40]  do-not-enreg[X] addr-exposed "field V05._parent (fldOffset=0x0)" P-DEP
-;  V08 tmp2         [V08    ] (  2,  2   )     int  ->  [rsp+0x48]  do-not-enreg[X] addr-exposed "field V05._idx (fldOffset=0x8)" P-DEP
-;  V09 tmp3         [V09    ] (  2,  4   )  struct (16) [rsp+0x30]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Text.Json.JsonElement>
-;* V10 tmp4         [V10,T05] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V11 tmp5         [V11,T04] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
+;  V07 tmp1         [V07    ] (  2,  2   )     ref  ->  [rsp+0x38]  do-not-enreg[X] addr-exposed "field V05._parent (fldOffset=0x0)" P-DEP
+;  V08 tmp2         [V08    ] (  2,  2   )     int  ->  [rsp+0x40]  do-not-enreg[X] addr-exposed "field V05._idx (fldOffset=0x8)" P-DEP
+;  V09 tmp3         [V09    ] (  2,  4   )  struct (16) [rsp+0x28]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Text.Json.JsonElement>
 ;
-; Lcl frame size = 80
+; Lcl frame size = 72
 
 G_M32425_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
+       push     rbp
        push     rbx
-       sub      rsp, 80
+       sub      rsp, 72
+       xor      eax, eax
+       mov      qword ptr [rsp+0x28], rax
        xorps    xmm4, xmm4
        movaps   xmmword ptr [rsp+0x30], xmm4
-       movaps   xmmword ptr [rsp+0x40], xmm4
+       mov      qword ptr [rsp+0x40], rax
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      rsi, rdx
        ; gcrRegs +[rsi]
        mov      rdi, r9
        ; gcrRegs +[rdi]
-                       ;; size=29 bbWeight=1 PerfScore 8.33
+                       ;; size=37 bbWeight=1 PerfScore 9.58
 G_M32425_IG02:        ; bbWeight=1, gcrefRegs=01C8 {rbx rsi rdi r8}, byrefRegs=0000 {}, byref
        ; gcrRegs +[r8]
-       lea      rcx, [rsp+0x40]
+       lea      rcx, [rsp+0x38]
        mov      rdx, r8
        ; gcrRegs +[rdx]
        call     [System.Text.Json.JsonSerializer:UnboxOnWrite[System.Text.Json.JsonElement](System.Object):System.Text.Json.JsonElement]
        ; gcrRegs -[rdx r8]
        ; gcr arg pop 0
-       mov      rdx, rsi
-       ; gcrRegs +[rdx]
-                       ;; size=17 bbWeight=1 PerfScore 4.00
+                       ;; size=14 bbWeight=1 PerfScore 3.75
 G_M32425_IG03:        ; bbWeight=1, nogc, extend
-       movups   xmm0, xmmword ptr [rsp+0x40]
-       movups   xmmword ptr [rsp+0x30], xmm0
+       movups   xmm0, xmmword ptr [rsp+0x38]
+       movups   xmmword ptr [rsp+0x28], xmm0
                        ;; size=10 bbWeight=1 PerfScore 4.00
 G_M32425_IG04:        ; bbWeight=1, extend
-       mov      rsi, bword ptr [rsp+0x90]
-       ; gcrRegs -[rsi]
-       ; byrRegs +[rsi]
-       mov      bword ptr [rsp+0x20], rsi
+       mov      rbp, bword ptr [rsp+0x90]
+       ; byrRegs +[rbp]
+       mov      bword ptr [rsp+0x20], rbp
        ; byr arg write
+       lea      r8, [rsp+0x28]
+       mov      rdx, rsi
+       ; gcrRegs +[rdx]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
-       lea      r8, [rsp+0x30]
        mov      r9, rdi
        ; gcrRegs +[r9]
        lea      r11, [(reloc)]      ; function address
        cmp      dword ptr [rcx], ecx
        call     [r11]<unknown method>
-       ; gcrRegs -[rcx rdx rbx rdi r9]
-       ; byrRegs -[rsi]
+       ; gcrRegs -[rcx rdx rbx rsi rdi r9]
+       ; byrRegs -[rbp]
        ; gcr arg pop 0
        nop      
-                       ;; size=37 bbWeight=1 PerfScore 9.75
+                       ;; size=40 bbWeight=1 PerfScore 10.00
 G_M32425_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 80
+       add      rsp, 72
        pop      rbx
+       pop      rbp
        pop      rsi
        pop      rdi
        ret      
-                       ;; size=8 bbWeight=1 PerfScore 2.75
+                       ;; size=9 bbWeight=1 PerfScore 3.25
 
-; Total bytes of code 101, prolog size 20, PerfScore 28.83, instruction count 30, allocated bytes for code 101 (MethodHash=cd3e8156) for method System.Text.Json.Serialization.JsonConverter`1[System.Text.Json.JsonElement]:OnTryWriteAsObject(System.Text.Json.Utf8JsonWriter,System.Object,System.Text.Json.JsonSerializerOptions,byref):ubyte:this (FullOpts)
+; Total bytes of code 110, prolog size 28, PerfScore 30.58, instruction count 34, allocated bytes for code 110 (MethodHash=cd3e8156) for method System.Text.Json.Serialization.JsonConverter`1[System.Text.Json.JsonElement]:OnTryWriteAsObject(System.Text.Json.Utf8JsonWriter,System.Object,System.Text.Json.JsonSerializerOptions,byref):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -88,12 +89,13 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x07
-  CountOfUnwindCodes: 4
+  SizeOfProlog      : 0x08
+  CountOfUnwindCodes: 5
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
-    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 8 * 8 + 8 = 72 = 0x48
+    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)

+9 (+9.38%) : 199676.dasm - System.Text.Json.Utf8JsonReader:ValueTextEquals(System.ReadOnlySpan`1[ubyte]):ubyte:this (FullOpts)

@@ -10,10 +10,10 @@
 ; Final local variable assignments
 ;
 ;  V00 this         [V00,T01] (  9,  6   )   byref  ->  rcx         this single-def
-;  V01 arg1         [V01,T00] (  5,  7   )   byref  ->  rdx         single-def
+;  V01 arg1         [V01,T00] (  5,  7   )   byref  ->  rax         single-def
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;* V03 tmp1         [V03,T05] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V04 tmp2         [V04,T02] (  3,  5   )   ubyte  ->  rax         "Inlining Arg"
+;* V03 tmp1         [V03,T04] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V04 tmp2         [V04,T02] (  3,  5   )   ubyte  ->  rdx         "Inlining Arg"
 ;  V05 tmp3         [V05,T03] (  4,  2.50)   ubyte  ->  rax         "Inline return value spill temp"
 ;* V06 tmp4         [V06    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ubyte]>
 ;* V07 tmp5         [V07    ] (  0,  0   )   byref  ->  zero-ref    "field V01._reference (fldOffset=0x0)" P-INDEP
@@ -22,7 +22,6 @@
 ;* V10 tmp8         [V10    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
 ;* V11 tmp9         [V11    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.ReadOnlySpan`1[ubyte]>
 ;  V12 tmp10        [V12    ] (  2,  2   )  struct (16) [rsp+0x28]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ubyte]>
-;  V13 tmp11        [V13,T04] (  2,  2   )   byref  ->  rdx         single-def "argument with side effect"
 ;
 ; Lcl frame size = 56
 
@@ -30,26 +29,30 @@ G_M11540_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        sub      rsp, 56
        xor      eax, eax
        mov      qword ptr [rsp+0x28], rax
-                       ;; size=11 bbWeight=1 PerfScore 1.50
-G_M11540_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rdx}, byref, isz
-       ; byrRegs +[rcx rdx]
-       movzx    rax, byte  ptr [rcx+0x28]
-       cmp      eax, 5
+       mov      rax, rdx
+       ; byrRegs +[rax]
+                       ;; size=14 bbWeight=1 PerfScore 1.75
+G_M11540_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0003 {rax rcx}, byref, isz
+       ; byrRegs +[rcx]
+       movzx    rdx, byte  ptr [rcx+0x28]
+       cmp      edx, 5
        je       SHORT G_M11540_IG04
                        ;; size=9 bbWeight=1 PerfScore 3.25
-G_M11540_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rdx}, byref, isz
-       cmp      eax, 7
+G_M11540_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {rax rcx}, byref, isz
+       cmp      edx, 7
        jne      SHORT G_M11540_IG11
                        ;; size=5 bbWeight=0.50 PerfScore 0.62
-G_M11540_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rdx}, byref, isz
+G_M11540_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0003 {rax rcx}, byref, isz
        cmp      byte  ptr [rcx+0x2D], 0
        je       SHORT G_M11540_IG08
                        ;; size=6 bbWeight=1 PerfScore 4.00
-G_M11540_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rdx}, byref
+G_M11540_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {rax rcx}, byref
+       mov      rdx, rax
+       ; byrRegs +[rdx]
        call     [<unknown method>]
-       ; byrRegs -[rcx rdx]
+       ; byrRegs -[rax rcx rdx]
        ; gcr arg pop 0
-                       ;; size=6 bbWeight=0.50 PerfScore 1.50
+                       ;; size=9 bbWeight=0.50 PerfScore 1.62
 G_M11540_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=1 PerfScore 0.25
@@ -57,26 +60,27 @@ G_M11540_IG07:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 56
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
-G_M11540_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rdx}, gcvars, byref, isz
-       ; byrRegs +[rcx rdx]
+G_M11540_IG08:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0003 {rax rcx}, gcvars, byref, isz
+       ; byrRegs +[rax rcx]
        cmp      byte  ptr [rcx+0x2E], 0
        je       SHORT G_M11540_IG09
+       mov      rdx, rax
+       ; byrRegs +[rdx]
        call     [System.Text.Json.Utf8JsonReader:UnescapeAndCompare(System.ReadOnlySpan`1[ubyte]):ubyte:this]
-       ; byrRegs -[rcx rdx]
+       ; byrRegs -[rax rcx rdx]
        ; gcr arg pop 0
        jmp      SHORT G_M11540_IG06
-                       ;; size=14 bbWeight=0.50 PerfScore 4.50
-G_M11540_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rdx}, byref, nogc
-       ; byrRegs +[rcx rdx]
+                       ;; size=17 bbWeight=0.50 PerfScore 4.62
+G_M11540_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {rax rcx}, byref, nogc
+       ; byrRegs +[rax rcx]
        movups   xmm0, xmmword ptr [rcx+0x98]
        movups   xmmword ptr [rsp+0x28], xmm0
                        ;; size=12 bbWeight=0.50 PerfScore 2.50
 G_M11540_IG10:        ; bbWeight=0.50, isz, extend
-       mov      rcx, rdx
        lea      rdx, [rsp+0x28]
-       ; byrRegs -[rdx]
+       mov      rcx, rax
        call     [<unknown method>]
-       ; byrRegs -[rcx]
+       ; byrRegs -[rax rcx]
        ; gcr arg pop 0
        jmp      SHORT G_M11540_IG06
                        ;; size=16 bbWeight=0.50 PerfScore 2.88
@@ -89,7 +93,7 @@ G_M11540_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
        int3     
                        ;; size=11 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 96, prolog size 11, PerfScore 22.25, instruction count 27, allocated bytes for code 96 (MethodHash=d075d2eb) for method System.Text.Json.Utf8JsonReader:ValueTextEquals(System.ReadOnlySpan`1[ubyte]):ubyte:this (FullOpts)
+; Total bytes of code 105, prolog size 11, PerfScore 22.75, instruction count 30, allocated bytes for code 105 (MethodHash=d075d2eb) for method System.Text.Json.Utf8JsonReader:ValueTextEquals(System.ReadOnlySpan`1[ubyte]):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+30 (+12.40%) : 227492.dasm - System.IO.Compression.BrotliStream:Read(System.Span`1[ubyte]):int:this (FullOpts)

@@ -9,21 +9,20 @@
 ; 0 inlinees with PGO data; 2 single block inlinees; 0 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T00] ( 15, 29.50)     ref  ->  rbx         this class-hnd single-def <System.IO.Compression.BrotliStream>
-;  V01 arg1         [V01,T01] (  4, 21   )   byref  ->  rsi         ld-addr-op single-def
-;  V02 loc0         [V02    ] (  2,  9   )     int  ->  [rsp+0x38]  do-not-enreg[X] addr-exposed ld-addr-op
-;  V03 loc1         [V03,T05] (  3,  6   )     int  ->  rax        
+;  V00 this         [V00,T00] ( 16, 42.50)     ref  ->  rbx         this class-hnd single-def <System.IO.Compression.BrotliStream>
+;  V01 arg1         [V01,T02] (  5, 15   )   byref  ->  rsi         ld-addr-op single-def
+;  V02 loc0         [V02    ] (  3,  6   )     int  ->  [rsp+0x38]  do-not-enreg[X] addr-exposed ld-addr-op
+;  V03 loc1         [V03,T04] (  3, 12   )     int  ->  rax        
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05,T07] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
-;  V06 tmp2         [V06,T08] (  2,  0   )     ref  ->  rbx         class-hnd single-def "finalizable newobj spill" <<unknown class>>
+;  V05 tmp1         [V05,T06] (  3,  0   )     ref  ->  rsi         class-hnd exact single-def "NewObj constructor temp" <<unknown class>>
+;  V06 tmp2         [V06,T07] (  2,  0   )     ref  ->  rbx         class-hnd single-def "finalizable newobj spill" <<unknown class>>
 ;* V07 tmp3         [V07    ] (  0,  0   )   byref  ->  zero-ref    "field V01._reference (fldOffset=0x0)" P-INDEP
 ;* V08 tmp4         [V08    ] (  0,  0   )     int  ->  zero-ref    "field V01._length (fldOffset=0x8)" P-INDEP
 ;* V09 tmp5         [V09    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.Span`1[ubyte]>
-;  V10 tmp6         [V10    ] (  2, 32   )  struct (16) [rsp+0x28]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Span`1[ubyte]>
-;* V11 tmp7         [V11,T03] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V12 cse0         [V12,T04] (  3,  6   )     ref  ->  rdx         "CSE - aggressive"
-;  V13 cse1         [V13,T06] (  3,  6   )     int  ->   r8         "CSE - aggressive"
-;  V14 cse2         [V14,T02] ( 12, 19.50)    long  ->  rdi         "CSE - aggressive"
+;  V10 tmp6         [V10    ] (  4, 20   )  struct (16) [rsp+0x28]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Span`1[ubyte]>
+;  V11 cse0         [V11,T03] (  3, 12   )     ref  ->  rdx         "CSE - aggressive"
+;  V12 cse1         [V12,T05] (  3, 12   )     int  ->   r8         "CSE - aggressive"
+;  V13 cse2         [V13,T01] ( 12, 35.50)    long  ->  rdi         "CSE - aggressive"
 ;
 ; Lcl frame size = 64
 
@@ -39,10 +38,10 @@ G_M8344_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        mov      rsi, rdx
        ; byrRegs +[rsi]
                        ;; size=20 bbWeight=1 PerfScore 5.00
-G_M8344_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
+G_M8344_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
        mov      rdi, qword ptr [(reloc)]      ; const ptr
        cmp      dword ptr [rbx+rdi+0x18], 0
-       jne      G_M8344_IG10
+       jne      G_M8344_IG12
        xor      ecx, ecx
        cmp      gword ptr [rbx+rdi], 0
        sete     cl
@@ -51,9 +50,23 @@ G_M8344_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, b
        call     [<unknown method>]
        ; gcrRegs -[rdx]
        ; gcr arg pop 0
-       jmp      SHORT G_M8344_IG04
-                       ;; size=39 bbWeight=1 PerfScore 15.50
-G_M8344_IG03:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
+                       ;; size=37 bbWeight=1 PerfScore 13.50
+G_M8344_IG03:        ; bbWeight=1, nogc, extend
+       movups   xmm0, xmmword ptr [rsi]
+       movups   xmmword ptr [rsp+0x28], xmm0
+                       ;; size=8 bbWeight=1 PerfScore 5.00
+G_M8344_IG04:        ; bbWeight=1, isz, extend
+       lea      rdx, [rsp+0x28]
+       lea      r8, [rsp+0x38]
+       mov      rcx, rbx
+       ; gcrRegs +[rcx]
+       call     [<unknown method>]
+       ; gcrRegs -[rcx]
+       ; gcr arg pop 0
+       test     eax, eax
+       jne      SHORT G_M8344_IG10
+                       ;; size=23 bbWeight=1 PerfScore 5.50
+G_M8344_IG05:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
        mov      rdx, gword ptr [rbx+rdi+0x08]
        ; gcrRegs +[rdx]
        mov      r9d, dword ptr [rdx+0x08]
@@ -67,62 +80,62 @@ G_M8344_IG03:        ; bbWeight=2, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, b
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        test     eax, eax
-       jle      SHORT G_M8344_IG07
+       jle      SHORT G_M8344_IG09
        mov      byte  ptr [rbx+rdi+0x20], 1
        add      dword ptr [rbx+rdi+0x14], eax
-       mov      eax, dword ptr [rbx+rdi+0x14]
-       mov      rcx, gword ptr [rbx+rdi+0x08]
-       ; gcrRegs +[rcx]
-       cmp      eax, dword ptr [rcx+0x08]
-       jg       SHORT G_M8344_IG12
-                       ;; size=60 bbWeight=2 PerfScore 56.00
-G_M8344_IG04:        ; bbWeight=8, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, nogc
-       ; gcrRegs -[rcx]
+       mov      edx, dword ptr [rbx+rdi+0x14]
+       mov      r8, gword ptr [rbx+rdi+0x08]
+       ; gcrRegs +[r8]
+       cmp      edx, dword ptr [r8+0x08]
+       jg       SHORT G_M8344_IG14
+                       ;; size=61 bbWeight=4 PerfScore 112.00
+G_M8344_IG06:        ; bbWeight=4, nogc, extend
        movups   xmm0, xmmword ptr [rsi]
        movups   xmmword ptr [rsp+0x28], xmm0
-                       ;; size=8 bbWeight=8 PerfScore 40.00
-G_M8344_IG05:        ; bbWeight=8, isz, extend
-       mov      rcx, rbx
-       ; gcrRegs +[rcx]
+                       ;; size=8 bbWeight=4 PerfScore 20.00
+G_M8344_IG07:        ; bbWeight=4, isz, extend
        lea      rdx, [rsp+0x28]
        lea      r8, [rsp+0x38]
+       ; gcrRegs -[r8]
+       mov      rcx, rbx
+       ; gcrRegs +[rcx]
        call     [<unknown method>]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        test     eax, eax
-       je       SHORT G_M8344_IG03
-                       ;; size=23 bbWeight=8 PerfScore 44.00
-G_M8344_IG06:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+       je       SHORT G_M8344_IG05
+                       ;; size=23 bbWeight=4 PerfScore 22.00
+G_M8344_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rbx]
        ; byrRegs -[rsi]
-       jmp      SHORT G_M8344_IG08
-                       ;; size=2 bbWeight=1 PerfScore 2.00
-G_M8344_IG07:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
+       jmp      SHORT G_M8344_IG10
+                       ;; size=2 bbWeight=0.50 PerfScore 1.00
+G_M8344_IG09:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
        ; gcrRegs +[rbx]
        ; byrRegs +[rsi]
        call     [CORINFO_HELP_READYTORUN_NONGCSTATIC_BASE]
        ; byrRegs +[rax]
        ; gcr arg pop 0
        cmp      byte  ptr [rax+0x43], 0
-       je       SHORT G_M8344_IG08
+       je       SHORT G_M8344_IG10
        cmp      byte  ptr [rbx+rdi+0x20], 0
-       je       SHORT G_M8344_IG08
+       je       SHORT G_M8344_IG10
        cmp      dword ptr [rsi+0x08], 0
-       jne      SHORT G_M8344_IG11
+       jne      SHORT G_M8344_IG13
                        ;; size=25 bbWeight=0.50 PerfScore 7.50
-G_M8344_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8344_IG10:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx]
        ; byrRegs -[rax rsi]
        mov      eax, dword ptr [rsp+0x38]
                        ;; size=4 bbWeight=1 PerfScore 1.00
-G_M8344_IG09:        ; bbWeight=1, epilog, nogc, extend
+G_M8344_IG11:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 64
        pop      rbx
        pop      rsi
        pop      rdi
        ret      
                        ;; size=8 bbWeight=1 PerfScore 2.75
-G_M8344_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M8344_IG12:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        call     [<unknown method>]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
@@ -145,18 +158,18 @@ G_M8344_IG10:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
        ; gcrRegs -[rcx rsi]
        ; gcr arg pop 0
                        ;; size=39 bbWeight=0 PerfScore 0.00
-G_M8344_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8344_IG13:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [System.IO.Compression.BrotliStream:ThrowTruncatedInvalidData()]
        ; gcr arg pop 0
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
-G_M8344_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M8344_IG14:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        call     [System.IO.Compression.BrotliStream:ThrowInvalidStream()]
        ; gcr arg pop 0
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 242, prolog size 14, PerfScore 173.75, instruction count 68, allocated bytes for code 242 (MethodHash=be50df67) for method System.IO.Compression.BrotliStream:Read(System.Span`1[ubyte]):int:this (FullOpts)
+; Total bytes of code 272, prolog size 14, PerfScore 195.25, instruction count 75, allocated bytes for code 272 (MethodHash=be50df67) for method System.IO.Compression.BrotliStream:Read(System.Span`1[ubyte]):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

libraries.pmi.windows.x64.checked.mch

-17 (-22.37%) : 180665.dasm - Microsoft.Build.Execution.TaskRegistry:get_TaskRegistrations():System.Collections.Generic.IDictionary2[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskIdentity,System.Collections.Generic.List1[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord]]:this (FullOpts)

@@ -12,43 +12,36 @@
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V03 tmp1         [V03,T02] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V01.hasValue (fldOffset=0x0)" P-INDEP
 ;* V04 tmp2         [V04,T03] (  0,  0   )     int  ->  zero-ref    single-def "field V01.value (fldOffset=0x4)" P-INDEP
-;  V05 tmp3         [V05,T01] (  3,  3   )  struct ( 8) [rsp+0x20]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
-;  TEMP_01                                   byref  ->  [rsp+0x28]
+;  V05 tmp3         [V05,T01] (  3,  3   )  struct ( 8) [rsp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
 ;
 ; Lcl frame size = 48
 
 G_M37632_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbx
        sub      rsp, 48
-       xor      eax, eax
-       mov      qword ptr [rsp+0x28], rax
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-                       ;; size=15 bbWeight=1 PerfScore 2.75
+                       ;; size=8 bbWeight=1 PerfScore 1.50
 G_M37632_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      gword ptr [rbx+0x20], 0
        jne      SHORT G_M37632_IG04
                        ;; size=7 bbWeight=1 PerfScore 4.00
 G_M37632_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       lea      rcx, bword ptr [rbx+0x20]
-       ; byrRegs +[rcx]
-       mov      bword ptr [rsp+0x28], rcx
-       mov      byte  ptr [rsp+0x20], 0
-       xor      eax, eax
-       mov      dword ptr [rsp+0x24], eax
-       mov      rcx, qword ptr [rsp+0x20]
-       ; byrRegs -[rcx]
+       mov      byte  ptr [rsp+0x28], 0
+       xor      ecx, ecx
+       mov      dword ptr [rsp+0x2C], ecx
+       mov      rcx, qword ptr [rsp+0x28]
        call     [Microsoft.Build.Execution.TaskRegistry:CreateRegisteredTaskDictionary(System.Nullable`1[int]):System.Collections.Generic.Dictionary`2[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskIdentity,System.Collections.Generic.List`1[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord]]]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      rcx, bword ptr [rsp+0x28]
+       lea      rcx, bword ptr [rbx+0x20]
        ; byrRegs +[rcx]
        mov      rdx, rax
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rax rdx]
        ; byrRegs -[rcx]
-                       ;; size=44 bbWeight=0.50 PerfScore 5.00
+                       ;; size=34 bbWeight=0.50 PerfScore 4.00
 G_M37632_IG04:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      rax, gword ptr [rbx+0x20]
        ; gcrRegs +[rax]
@@ -59,7 +52,7 @@ G_M37632_IG05:        ; bbWeight=1, epilog, nogc, extend
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 76, prolog size 12, PerfScore 15.50, instruction count 21, allocated bytes for code 76 (MethodHash=bcd16cff) for method Microsoft.Build.Execution.TaskRegistry:get_TaskRegistrations():System.Collections.Generic.IDictionary`2[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskIdentity,System.Collections.Generic.List`1[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord]]:this (FullOpts)
+; Total bytes of code 59, prolog size 5, PerfScore 13.25, instruction count 17, allocated bytes for code 59 (MethodHash=bcd16cff) for method Microsoft.Build.Execution.TaskRegistry:get_TaskRegistrations():System.Collections.Generic.IDictionary`2[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskIdentity,System.Collections.Generic.List`1[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord]]:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-20 (-20.83%) : 222255.dasm - System.DirectoryServices.ActiveDirectory.ReplicationCursor:get_SourceServer():System.String:this (FullOpts)

@@ -12,21 +12,18 @@
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V02 tmp1         [V02    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <System.String>
 ;* V03 tmp2         [V03    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.Guid>
-;  V04 tmp3         [V04    ] (  2,  2   )  struct (16) [rsp+0x28]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Guid>
-;  V05 tmp4         [V05,T01] (  2,  2   )     ref  ->  rdx         single-def "argument with side effect"
-;  TEMP_01                                   byref  ->  [rsp+0x38]
+;  V04 tmp3         [V04    ] (  2,  2   )  struct (16) [rsp+0x20]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Guid>
+;  V05 tmp4         [V05,T01] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
 ;
-; Lcl frame size = 64
+; Lcl frame size = 48
 
 G_M8631_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbx
-       sub      rsp, 64
+       sub      rsp, 48
        vzeroupper 
-       xor      eax, eax
-       mov      qword ptr [rsp+0x38], rax
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-                       ;; size=18 bbWeight=1 PerfScore 3.75
+                       ;; size=11 bbWeight=1 PerfScore 2.50
 G_M8631_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      byte  ptr [rbx+0x30], 0
        je       SHORT G_M8631_IG04
@@ -36,42 +33,35 @@ G_M8631_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, b
        je       SHORT G_M8631_IG05
                        ;; size=7 bbWeight=0.50 PerfScore 2.00
 G_M8631_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
-       lea      rcx, bword ptr [rbx+0x10]
-       ; byrRegs +[rcx]
-       mov      bword ptr [rsp+0x38], rcx
-       mov      rdx, gword ptr [rbx+0x08]
-       ; gcrRegs +[rdx]
-       vmovups  xmm0, xmmword ptr [rbx+0x40]
-       vmovups  xmmword ptr [rsp+0x28], xmm0
-       mov      rcx, rdx
+       mov      rcx, gword ptr [rbx+0x08]
        ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
-       lea      rdx, [rsp+0x28]
-       ; gcrRegs -[rdx]
+       vmovups  xmm0, xmmword ptr [rbx+0x40]
+       vmovups  xmmword ptr [rsp+0x20], xmm0
+       lea      rdx, [rsp+0x20]
        mov      r8, gword ptr [rbx+0x18]
        ; gcrRegs +[r8]
        call     [<unknown method>]
        ; gcrRegs -[rcx r8] +[rax]
        ; gcr arg pop 0
-       mov      rcx, bword ptr [rsp+0x38]
+       lea      rcx, bword ptr [rbx+0x10]
        ; byrRegs +[rcx]
        mov      rdx, rax
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_ASSIGN_REF
        ; gcrRegs -[rax rdx]
        ; byrRegs -[rcx]
-                       ;; size=55 bbWeight=0.50 PerfScore 8.25
+                       ;; size=42 bbWeight=0.50 PerfScore 7.12
 G_M8631_IG05:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      rax, gword ptr [rbx+0x10]
        ; gcrRegs +[rax]
                        ;; size=4 bbWeight=1 PerfScore 2.00
 G_M8631_IG06:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 64
+       add      rsp, 48
        pop      rbx
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 96, prolog size 15, PerfScore 21.75, instruction count 26, allocated bytes for code 96 (MethodHash=9422de48) for method System.DirectoryServices.ActiveDirectory.ReplicationCursor:get_SourceServer():System.String:this (FullOpts)
+; Total bytes of code 76, prolog size 8, PerfScore 19.38, instruction count 21, allocated bytes for code 76 (MethodHash=9422de48) for method System.DirectoryServices.ActiveDirectory.ReplicationCursor:get_SourceServer():System.String:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -84,5 +74,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)

-15 (-20.55%) : 293786.dasm - System.Net.Quic.QuicConnection:HandleEventLocalAddressChanged(byref):int:this (FullOpts)

@@ -7,59 +7,52 @@
 ; No matching PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T01] (  3,  3   )     ref  ->  rcx         this class-hnd single-def <System.Net.Quic.QuicConnection>
+;  V00 this         [V00,T01] (  3,  3   )     ref  ->  rbx         this class-hnd single-def <System.Net.Quic.QuicConnection>
 ;  V01 arg1         [V01,T02] (  3,  3   )   byref  ->  rdx         single-def
 ;* V02 loc0         [V02    ] (  0,  0   )  struct ( 8) zero-ref    ld-addr-op <System.Nullable`1[int]>
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T03] (  2,  4   )    long  ->  rdx         "impAppendStmt"
-;* V05 tmp2         [V05,T05] (  0,  0   )   ubyte  ->  zero-ref    "field V02.hasValue (fldOffset=0x0)" P-INDEP
-;* V06 tmp3         [V06,T06] (  0,  0   )     int  ->  zero-ref    "field V02.value (fldOffset=0x4)" P-INDEP
+;  V04 tmp1         [V04,T03] (  2,  4   )    long  ->  rcx         "impAppendStmt"
+;* V05 tmp2         [V05,T04] (  0,  0   )   ubyte  ->  zero-ref    "field V02.hasValue (fldOffset=0x0)" P-INDEP
+;* V06 tmp3         [V06,T05] (  0,  0   )     int  ->  zero-ref    "field V02.value (fldOffset=0x4)" P-INDEP
 ;  V07 tmp4         [V07,T00] (  3,  6   )  struct ( 8) [rsp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
-;  V08 tmp5         [V08,T04] (  2,  4   )    long  ->  rdx         "argument with side effect"
-;  TEMP_01                                   byref  ->  [rsp+0x30]
 ;
-; Lcl frame size = 56
+; Lcl frame size = 48
 
 G_M54883_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
-       sub      rsp, 56
-       xor      eax, eax
-       mov      qword ptr [rsp+0x30], rax
-                       ;; size=11 bbWeight=1 PerfScore 1.50
-G_M54883_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0004 {rdx}, byref
-       ; gcrRegs +[rcx]
+       push     rbx
+       sub      rsp, 48
+       mov      rbx, rcx
+       ; gcrRegs +[rbx]
+                       ;; size=8 bbWeight=1 PerfScore 1.50
+G_M54883_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx}, byref
        ; byrRegs +[rdx]
-       mov      rdx, qword ptr [rdx]
-       ; byrRegs -[rdx]
-       lea      rcx, bword ptr [rcx+0x40]
-       ; gcrRegs -[rcx]
-       ; byrRegs +[rcx]
-       mov      bword ptr [rsp+0x30], rcx
+       mov      rcx, qword ptr [rdx]
        mov      byte  ptr [rsp+0x28], 0
-       xor      eax, eax
-       mov      dword ptr [rsp+0x2C], eax
-       mov      rcx, rdx
-       ; byrRegs -[rcx]
+       xor      edx, edx
+       ; byrRegs -[rdx]
+       mov      dword ptr [rsp+0x2C], edx
        mov      rdx, qword ptr [rsp+0x28]
        call     [System.Net.Quic.MsQuicHelpers:QuicAddrToIPEndPoint(ulong,System.Nullable`1[int]):System.Net.IPEndPoint]
        ; gcrRegs +[rax]
        ; gcr arg pop 0
-       mov      rcx, bword ptr [rsp+0x30]
+       lea      rcx, bword ptr [rbx+0x40]
        ; byrRegs +[rcx]
        mov      rdx, rax
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rax rdx]
+       ; gcrRegs -[rax rdx rbx]
        ; byrRegs -[rcx]
        call     [Microsoft.Quic.MsQuic:get_QUIC_STATUS_SUCCESS():int]
        ; gcr arg pop 0
        nop      
-                       ;; size=57 bbWeight=1 PerfScore 15.50
+                       ;; size=44 bbWeight=1 PerfScore 13.25
 G_M54883_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 56
+       add      rsp, 48
+       pop      rbx
        ret      
-                       ;; size=5 bbWeight=1 PerfScore 1.25
+                       ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 73, prolog size 11, PerfScore 18.25, instruction count 19, allocated bytes for code 73 (MethodHash=81ce299c) for method System.Net.Quic.QuicConnection:HandleEventLocalAddressChanged(byref):int:this (FullOpts)
+; Total bytes of code 58, prolog size 5, PerfScore 16.50, instruction count 17, allocated bytes for code 58 (MethodHash=81ce299c) for method System.Net.Quic.QuicConnection:HandleEventLocalAddressChanged(byref):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -67,9 +60,10 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x04
-  CountOfUnwindCodes: 1
+  SizeOfProlog      : 0x05
+  CountOfUnwindCodes: 2
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x04 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 6 * 8 + 8 = 56 = 0x38
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
+    CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)

+16 (+8.00%) : 244900.dasm - System.Security.Cryptography.Pbkdf2Implementation:FillDeriveKeyPBKDF2(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan1[ubyte],int,System.String,System.Span`1[ubyte]) (FullOpts)

@@ -13,7 +13,7 @@
 ;  V02 arg2         [V02,T06] (  3,  3   )     int  ->  rdi         single-def
 ;  V03 arg3         [V03,T05] (  3,  3   )     ref  ->   r9         class-hnd single-def <System.String>
 ;  V04 arg4         [V04,T07] (  2,  4   )   byref  ->  r14         ld-addr-op single-def
-;  V05 loc0         [V05,T22] (  2,  2   )     ref  ->  rcx         class-hnd exact single-def <Microsoft.Win32.SafeHandles.SafeBCryptAlgorithmHandle>
+;  V05 loc0         [V05,T18] (  2,  2   )     ref  ->  rcx         class-hnd exact single-def <Microsoft.Win32.SafeHandles.SafeBCryptAlgorithmHandle>
 ;  V06 loc1         [V06    ] (  1,  1   )     int  ->  [rbp-0x28]  do-not-enreg[X] addr-exposed ld-addr-op
 ;* V07 loc2         [V07    ] (  0,  0   )    long  ->  zero-ref   
 ;  V08 loc3         [V08    ] (  2,  2   )   byref  ->  [rbp-0x30]  must-init pinned
@@ -21,14 +21,14 @@
 ;  V10 loc5         [V10    ] (  2,  2   )   byref  ->  [rbp-0x38]  must-init pinned
 ;* V11 loc6         [V11    ] (  0,  0   )    long  ->  zero-ref   
 ;  V12 loc7         [V12    ] (  2,  2   )   byref  ->  [rbp-0x40]  must-init pinned
-;  V13 loc8         [V13,T21] (  3,  2   )     int  ->  rax        
+;  V13 loc8         [V13,T17] (  3,  2   )     int  ->  rax        
 ;  V14 OutArgs      [V14    ] (  1,  1   )  struct (72) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V15 tmp1         [V15    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V16 tmp2         [V16,T02] (  5,  5   )   byref  ->  rdx         "Inline stloc first use temp"
+;  V16 tmp2         [V16,T02] (  5,  5   )   byref  ->   r8         "Inline stloc first use temp"
 ;* V17 tmp3         [V17    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V18 tmp4         [V18,T03] (  5,  5   )   byref  ->   r9         "Inline stloc first use temp"
+;  V18 tmp4         [V18,T03] (  5,  5   )   byref  ->   r8         "Inline stloc first use temp"
 ;* V19 tmp5         [V19    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
-;  V20 tmp6         [V20,T04] (  5,  5   )   byref  ->  r10         "Inline stloc first use temp"
+;  V20 tmp6         [V20,T04] (  5,  5   )   byref  ->   r8         "Inline stloc first use temp"
 ;* V21 tmp7         [V21    ] (  0,  0   )   byref  ->  zero-ref    "field V00._reference (fldOffset=0x0)" P-INDEP
 ;* V22 tmp8         [V22    ] (  0,  0   )     int  ->  zero-ref    "field V00._length (fldOffset=0x8)" P-INDEP
 ;* V23 tmp9         [V23    ] (  0,  0   )   byref  ->  zero-ref    "field V01._reference (fldOffset=0x0)" P-INDEP
@@ -38,19 +38,15 @@
 ;* V27 tmp13        [V27    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.ReadOnlySpan`1[ubyte]>
 ;* V28 tmp14        [V28    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.ReadOnlySpan`1[ubyte]>
 ;* V29 tmp15        [V29    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.Span`1[ubyte]>
-;  V30 tmp16        [V30,T09] (  2,  4   )    long  ->  rdx         "Cast away GC"
-;  V31 tmp17        [V31,T10] (  2,  4   )    long  ->   r9         "Cast away GC"
-;  V32 tmp18        [V32,T11] (  2,  4   )    long  ->  r10         "Cast away GC"
-;  V33 tmp19        [V33,T08] (  2,  4   )     ref  ->  rcx         single-def "argument with side effect"
-;  V34 tmp20        [V34,T12] (  2,  4   )    long  ->  rdx         "argument with side effect"
-;  V35 tmp21        [V35,T13] (  2,  4   )     int  ->   r8         "argument with side effect"
-;  V36 tmp22        [V36,T14] (  2,  4   )    long  ->   r9         "argument with side effect"
-;  V37 tmp23        [V37,T15] (  2,  4   )     int  ->  rax         "argument with side effect"
-;  V38 tmp24        [V38,T16] (  2,  4   )    long  ->  rbx         "argument with side effect"
-;  V39 tmp25        [V39,T17] (  2,  4   )    long  ->  r10         "argument with side effect"
-;  V40 cse0         [V40,T18] (  3,  3   )     int  ->   r8         "CSE - moderate"
-;  V41 cse1         [V41,T19] (  3,  3   )     int  ->  rax         "CSE - moderate"
-;  V42 cse2         [V42,T20] (  3,  3   )     int  ->  r11         "CSE - moderate"
+;  V30 tmp16        [V30,T08] (  2,  4   )    long  ->  rdx         "Cast away GC"
+;  V31 tmp17        [V31,T09] (  2,  4   )    long  ->  r10         "Cast away GC"
+;  V32 tmp18        [V32,T10] (  2,  4   )    long  ->  rbx         "Cast away GC"
+;  V33 tmp19        [V33,T11] (  2,  4   )     int  ->   r9         "argument with side effect"
+;  V34 tmp20        [V34,T12] (  2,  4   )     int  ->  rax         "argument with side effect"
+;  V35 tmp21        [V35,T13] (  2,  4   )    long  ->  rbx         "argument with side effect"
+;  V36 cse0         [V36,T14] (  3,  3   )     int  ->   r9         "CSE - moderate"
+;  V37 cse1         [V37,T15] (  3,  3   )     int  ->  rax         "CSE - moderate"
+;  V38 cse2         [V38,T16] (  3,  3   )     int  ->  r11         "CSE - moderate"
 ;
 ; Lcl frame size = 112
 
@@ -84,41 +80,45 @@ G_M15787_IG02:        ; bbWeight=1, gcrefRegs=0200 {r9}, byrefRegs=4048 {rbx rsi
        ; gcrRegs -[rcx r9] +[rax]
        mov      rcx, rax
        ; gcrRegs +[rcx]
-       xor      rdx, rdx
-       ; byrRegs +[rdx]
-       mov      r8d, dword ptr [rbx+0x08]
-       test     r8d, r8d
-       cmovne   rdx, bword ptr [rbx]
-       mov      bword ptr [rbp-0x30], rdx
-       xor      r9, r9
-       ; byrRegs +[r9]
+       xor      r8, r8
+       ; byrRegs +[r8]
+       mov      r9d, dword ptr [rbx+0x08]
+       test     r9d, r9d
+       cmovne   r8, bword ptr [rbx]
+       mov      bword ptr [rbp-0x30], r8
+       mov      rdx, r8
+       xor      r8, r8
        mov      eax, dword ptr [rsi+0x08]
        ; gcrRegs -[rax]
        test     eax, eax
-       cmovne   r9, bword ptr [rsi]
-       mov      bword ptr [rbp-0x38], r9
-       xor      r10, r10
-       ; byrRegs +[r10]
+       cmovne   r8, bword ptr [rsi]
+       mov      bword ptr [rbp-0x38], r8
+       mov      r10, r8
+       xor      r8, r8
        mov      r11d, dword ptr [r14+0x08]
        test     r11d, r11d
-       cmovne   r10, bword ptr [r14]
-       mov      bword ptr [rbp-0x40], r10
+       cmovne   r8, bword ptr [r14]
+       mov      bword ptr [rbp-0x40], r8
        movsxd   rbx, edi
        ; byrRegs -[rbx]
-       mov      dword ptr [rsp+0x38], r11d
-       xor      r11d, r11d
-       mov      dword ptr [rsp+0x40], r11d
-       mov      dword ptr [rsp+0x20], eax
        mov      qword ptr [rsp+0x28], rbx
-       mov      qword ptr [rsp+0x30], r10
+       mov      rbx, r8
+       mov      dword ptr [rsp+0x38], r11d
+       xor      r8d, r8d
+       ; byrRegs -[r8]
+       mov      dword ptr [rsp+0x40], r8d
+       mov      r8d, r9d
+       mov      dword ptr [rsp+0x20], eax
+       mov      qword ptr [rsp+0x30], rbx
+       mov      r9, r10
        call     [<unknown method>]
        ; gcrRegs -[rcx]
-       ; byrRegs -[rdx rsi r9-r10 r14]
+       ; byrRegs -[rsi r14]
        test     eax, eax
        jne      SHORT G_M15787_IG06
        xor      eax, eax
        mov      bword ptr [rbp-0x40], rax
-                       ;; size=118 bbWeight=1 PerfScore 34.75
+                       ;; size=134 bbWeight=1 PerfScore 36.00
 G_M15787_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      bword ptr [rbp-0x38], rax
                        ;; size=4 bbWeight=1 PerfScore 1.00
@@ -145,7 +145,7 @@ G_M15787_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
                        ;; size=17 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 200, prolog size 33, PerfScore 51.58, instruction count 61, allocated bytes for code 200 (MethodHash=072dc254) for method System.Security.Cryptography.Pbkdf2Implementation:FillDeriveKeyPBKDF2(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],int,System.String,System.Span`1[ubyte]) (FullOpts)
+; Total bytes of code 216, prolog size 33, PerfScore 52.83, instruction count 66, allocated bytes for code 216 (MethodHash=072dc254) for method System.Security.Cryptography.Pbkdf2Implementation:FillDeriveKeyPBKDF2(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],int,System.String,System.Span`1[ubyte]) (FullOpts)
 ; ============================================================
 
 Unwind Info:

+11 (+8.33%) : 24612.dasm - System.MemoryExtensions:TryWritelong:ubyte (FullOpts)

@@ -12,33 +12,29 @@
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->  rdi         class-hnd single-def <System.IFormatProvider>
 ;  V02 arg2         [V02,T01] (  5,  5   )     ref  ->  rsi         class-hnd single-def <System.Text.CompositeFormat>
 ;  V03 arg3         [V03,T03] (  3,  3   )   byref  ->  r14         single-def
-;  V04 arg4         [V04,T10] (  1,  1   )    long  ->  [rbp+0x30]  single-def
+;  V04 arg4         [V04,T05] (  1,  1   )    long  ->  [rbp+0x30]  single-def
 ;* V05 loc0         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[System.Object]>
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (64) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )   byref  ->  zero-ref    "field V00._reference (fldOffset=0x0)" P-INDEP
 ;* V08 tmp2         [V08    ] (  0,  0   )     int  ->  zero-ref    "field V00._length (fldOffset=0x8)" P-INDEP
-;  V09 tmp3         [V09,T09] (  2,  2   )   byref  ->  rcx         single-def "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V10 tmp4         [V10,T11] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
+;  V09 tmp3         [V09,T04] (  2,  2   )   byref  ->  rdx         single-def "field V05._reference (fldOffset=0x0)" P-INDEP
+;* V10 tmp4         [V10,T06] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
 ;* V11 tmp5         [V11    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.Span`1[ushort]>
-;  V12 tmp6         [V12    ] (  3,  6   )  struct (16) [rbp-0x30]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[System.Object]>
-;  V13 tmp7         [V13,T04] (  2,  4   )   byref  ->  rbx         single-def "argument with side effect"
-;  V14 tmp8         [V14,T05] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
-;  V15 tmp9         [V15,T06] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V16 tmp10        [V16,T07] (  2,  4   )   byref  ->   r9         single-def "argument with side effect"
-;  V17 tmp11        [V17,T08] (  2,  4   )    long  ->  rsi         "argument with side effect"
+;  V12 tmp6         [V12    ] (  3,  6   )  struct (16) [rbp-0x38]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[System.Object]>
 ;
-; Lcl frame size = 80
+; Lcl frame size = 88
 
 G_M5587_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
+       push     r15
        push     r14
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 80
-       lea      rbp, [rsp+0x70]
+       sub      rsp, 88
+       lea      rbp, [rsp+0x80]
        xor      eax, eax
-       mov      qword ptr [rbp-0x30], rax
+       mov      qword ptr [rbp-0x38], rax
        mov      rbx, rcx
        ; byrRegs +[rbx]
        mov      rdi, rdx
@@ -47,7 +43,7 @@ G_M5587_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcrRegs +[rsi]
        mov      r14, r9
        ; byrRegs +[r14]
-                       ;; size=33 bbWeight=1 PerfScore 8.00
+                       ;; size=38 bbWeight=1 PerfScore 9.00
 G_M5587_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=4008 {rbx r14}, byref, isz
        mov      rcx, rsi
        ; gcrRegs +[rcx]
@@ -57,53 +53,51 @@ G_M5587_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=4008 {rbx
        ; gcrRegs -[rcx rdx]
        cmp      dword ptr [rsi+0x20], 1
        jg       SHORT G_M5587_IG06
-       xor      rcx, rcx
-       ; byrRegs +[rcx]
+       xor      rdx, rdx
+       ; byrRegs +[rdx]
+       mov      r15, qword ptr [rbp+0x30]
+       mov      qword ptr [rsp+0x20], r15
+       xor      r8d, r8d
+       mov      dword ptr [rsp+0x28], r8d
+                       ;; size=44 bbWeight=1 PerfScore 11.00
+G_M5587_IG03:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=400C {rdx rbx r14}, byref
+       mov      dword ptr [rsp+0x30], r8d
+       mov      bword ptr [rbp-0x38], rdx
+                       ;; size=9 bbWeight=1 PerfScore 2.00
+G_M5587_IG04:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=4008 {rbx r14}, byref
+       ; byrRegs -[rdx]
+       mov      dword ptr [rbp-0x30], r8d
+       lea      rdx, [rbp-0x38]
+       mov      qword ptr [rsp+0x38], rdx
        mov      rdx, rdi
        ; gcrRegs +[rdx]
        mov      r8, rsi
        ; gcrRegs +[r8]
        mov      r9, r14
        ; byrRegs +[r9]
-       mov      rsi, qword ptr [rbp+0x30]
-       ; gcrRegs -[rsi]
-       xor      eax, eax
-       mov      dword ptr [rsp+0x28], eax
-                       ;; size=46 bbWeight=1 PerfScore 10.75
-G_M5587_IG03:        ; bbWeight=1, gcrefRegs=0104 {rdx r8}, byrefRegs=020A {rcx rbx r9}, byref
-       ; gcrRegs -[rdi]
-       ; byrRegs -[r14]
-       mov      dword ptr [rsp+0x30], eax
-       mov      bword ptr [rbp-0x30], rcx
-                       ;; size=8 bbWeight=1 PerfScore 2.00
-G_M5587_IG04:        ; bbWeight=1, gcrefRegs=0104 {rdx r8}, byrefRegs=0208 {rbx r9}, byref
-       ; byrRegs -[rcx]
-       mov      dword ptr [rbp-0x28], eax
        mov      rcx, rbx
        ; byrRegs +[rcx]
-       mov      qword ptr [rsp+0x20], rsi
-       lea      rax, [rbp-0x30]
-       mov      qword ptr [rsp+0x38], rax
        call     [<unknown method>]
-       ; gcrRegs -[rdx r8]
-       ; byrRegs -[rcx rbx r9]
+       ; gcrRegs -[rdx rsi rdi r8]
+       ; byrRegs -[rcx rbx r9 r14]
        nop      
-                       ;; size=27 bbWeight=1 PerfScore 7.00
+                       ;; size=32 bbWeight=1 PerfScore 6.75
 G_M5587_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 80
+       add      rsp, 88
        pop      rbx
        pop      rsi
        pop      rdi
        pop      r14
+       pop      r15
        pop      rbp
        ret      
-                       ;; size=11 bbWeight=1 PerfScore 3.75
+                       ;; size=13 bbWeight=1 PerfScore 4.25
 G_M5587_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        call     [System.ThrowHelper:ThrowFormatIndexOutOfRange()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 132, prolog size 21, PerfScore 31.50, instruction count 43, allocated bytes for code 132 (MethodHash=4e0bea2c) for method System.MemoryExtensions:TryWrite[long](System.Span`1[ushort],System.IFormatProvider,System.Text.CompositeFormat,byref,long):ubyte (FullOpts)
+; Total bytes of code 143, prolog size 26, PerfScore 33.00, instruction count 45, allocated bytes for code 143 (MethodHash=4e0bea2c) for method System.MemoryExtensions:TryWrite[long](System.Span`1[ushort],System.IFormatProvider,System.Text.CompositeFormat,byref,long):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -111,14 +105,15 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x0A
-  CountOfUnwindCodes: 6
+  SizeOfProlog      : 0x0C
+  CountOfUnwindCodes: 7
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
-    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
-    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
-    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
+    CodeOffset: 0x0C UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 10 * 8 + 8 = 88 = 0x58
+    CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
+    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+13 (+10.00%) : 24609.dasm - System.MemoryExtensions:TryWriteint:ubyte (FullOpts)

@@ -12,33 +12,29 @@
 ;  V01 arg1         [V01,T02] (  3,  3   )     ref  ->  rdi         class-hnd single-def <System.IFormatProvider>
 ;  V02 arg2         [V02,T01] (  5,  5   )     ref  ->  rsi         class-hnd single-def <System.Text.CompositeFormat>
 ;  V03 arg3         [V03,T03] (  3,  3   )   byref  ->  r14         single-def
-;  V04 arg4         [V04,T10] (  1,  1   )     int  ->  [rbp+0x30]  single-def
+;  V04 arg4         [V04,T05] (  1,  1   )     int  ->  [rbp+0x30]  single-def
 ;* V05 loc0         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op <System.ReadOnlySpan`1[System.Object]>
 ;  V06 OutArgs      [V06    ] (  1,  1   )  struct (64) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V07 tmp1         [V07    ] (  0,  0   )   byref  ->  zero-ref    "field V00._reference (fldOffset=0x0)" P-INDEP
 ;* V08 tmp2         [V08    ] (  0,  0   )     int  ->  zero-ref    "field V00._length (fldOffset=0x8)" P-INDEP
-;  V09 tmp3         [V09,T09] (  2,  2   )   byref  ->  rcx         single-def "field V05._reference (fldOffset=0x0)" P-INDEP
-;* V10 tmp4         [V10,T11] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
+;  V09 tmp3         [V09,T04] (  2,  2   )   byref  ->  rdx         single-def "field V05._reference (fldOffset=0x0)" P-INDEP
+;* V10 tmp4         [V10,T06] (  0,  0   )     int  ->  zero-ref    "field V05._length (fldOffset=0x8)" P-INDEP
 ;* V11 tmp5         [V11    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.Span`1[ushort]>
-;  V12 tmp6         [V12    ] (  3,  6   )  struct (16) [rbp-0x30]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[System.Object]>
-;  V13 tmp7         [V13,T04] (  2,  4   )   byref  ->  rbx         single-def "argument with side effect"
-;  V14 tmp8         [V14,T05] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
-;  V15 tmp9         [V15,T06] (  2,  4   )     ref  ->   r8         single-def "argument with side effect"
-;  V16 tmp10        [V16,T07] (  2,  4   )   byref  ->   r9         single-def "argument with side effect"
-;  V17 tmp11        [V17,T08] (  2,  4   )     int  ->  rsi         "argument with side effect"
+;  V12 tmp6         [V12    ] (  3,  6   )  struct (16) [rbp-0x38]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[System.Object]>
 ;
-; Lcl frame size = 80
+; Lcl frame size = 88
 
 G_M7379_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
+       push     r15
        push     r14
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 80
-       lea      rbp, [rsp+0x70]
+       sub      rsp, 88
+       lea      rbp, [rsp+0x80]
        xor      eax, eax
-       mov      qword ptr [rbp-0x30], rax
+       mov      qword ptr [rbp-0x38], rax
        mov      rbx, rcx
        ; byrRegs +[rbx]
        mov      rdi, rdx
@@ -47,7 +43,7 @@ G_M7379_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ; gcrRegs +[rsi]
        mov      r14, r9
        ; byrRegs +[r14]
-                       ;; size=33 bbWeight=1 PerfScore 8.00
+                       ;; size=38 bbWeight=1 PerfScore 9.00
 G_M7379_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=4008 {rbx r14}, byref, isz
        mov      rcx, rsi
        ; gcrRegs +[rcx]
@@ -57,53 +53,51 @@ G_M7379_IG02:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=4008 {rbx
        ; gcrRegs -[rcx rdx]
        cmp      dword ptr [rsi+0x20], 1
        jg       SHORT G_M7379_IG06
-       xor      rcx, rcx
-       ; byrRegs +[rcx]
+       xor      rdx, rdx
+       ; byrRegs +[rdx]
+       mov      r15d, dword ptr [rbp+0x30]
+       mov      dword ptr [rsp+0x20], r15d
+       xor      r8d, r8d
+       mov      dword ptr [rsp+0x28], r8d
+                       ;; size=44 bbWeight=1 PerfScore 11.00
+G_M7379_IG03:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=400C {rdx rbx r14}, byref
+       mov      dword ptr [rsp+0x30], r8d
+       mov      bword ptr [rbp-0x38], rdx
+                       ;; size=9 bbWeight=1 PerfScore 2.00
+G_M7379_IG04:        ; bbWeight=1, gcrefRegs=00C0 {rsi rdi}, byrefRegs=4008 {rbx r14}, byref
+       ; byrRegs -[rdx]
+       mov      dword ptr [rbp-0x30], r8d
+       lea      rdx, [rbp-0x38]
+       mov      qword ptr [rsp+0x38], rdx
        mov      rdx, rdi
        ; gcrRegs +[rdx]
        mov      r8, rsi
        ; gcrRegs +[r8]
        mov      r9, r14
        ; byrRegs +[r9]
-       mov      esi, dword ptr [rbp+0x30]
-       ; gcrRegs -[rsi]
-       xor      eax, eax
-       mov      dword ptr [rsp+0x28], eax
-                       ;; size=45 bbWeight=1 PerfScore 10.75
-G_M7379_IG03:        ; bbWeight=1, gcrefRegs=0104 {rdx r8}, byrefRegs=020A {rcx rbx r9}, byref
-       ; gcrRegs -[rdi]
-       ; byrRegs -[r14]
-       mov      dword ptr [rsp+0x30], eax
-       mov      bword ptr [rbp-0x30], rcx
-                       ;; size=8 bbWeight=1 PerfScore 2.00
-G_M7379_IG04:        ; bbWeight=1, gcrefRegs=0104 {rdx r8}, byrefRegs=0208 {rbx r9}, byref
-       ; byrRegs -[rcx]
-       mov      dword ptr [rbp-0x28], eax
        mov      rcx, rbx
        ; byrRegs +[rcx]
-       mov      dword ptr [rsp+0x20], esi
-       lea      rax, [rbp-0x30]
-       mov      qword ptr [rsp+0x38], rax
        call     [<unknown method>]
-       ; gcrRegs -[rdx r8]
-       ; byrRegs -[rcx rbx r9]
+       ; gcrRegs -[rdx rsi rdi r8]
+       ; byrRegs -[rcx rbx r9 r14]
        nop      
-                       ;; size=26 bbWeight=1 PerfScore 7.00
+                       ;; size=32 bbWeight=1 PerfScore 6.75
 G_M7379_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 80
+       add      rsp, 88
        pop      rbx
        pop      rsi
        pop      rdi
        pop      r14
+       pop      r15
        pop      rbp
        ret      
-                       ;; size=11 bbWeight=1 PerfScore 3.75
+                       ;; size=13 bbWeight=1 PerfScore 4.25
 G_M7379_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
        call     [System.ThrowHelper:ThrowFormatIndexOutOfRange()]
        int3     
                        ;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 130, prolog size 21, PerfScore 31.50, instruction count 43, allocated bytes for code 130 (MethodHash=e4e8e32c) for method System.MemoryExtensions:TryWrite[int](System.Span`1[ushort],System.IFormatProvider,System.Text.CompositeFormat,byref,int):ubyte (FullOpts)
+; Total bytes of code 143, prolog size 26, PerfScore 33.00, instruction count 45, allocated bytes for code 143 (MethodHash=e4e8e32c) for method System.MemoryExtensions:TryWrite[int](System.Span`1[ushort],System.IFormatProvider,System.Text.CompositeFormat,byref,int):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -111,14 +105,15 @@ Unwind Info:
   >>   End offset   : 0xd1ffab1e (not in unwind data)
   Version           : 1
   Flags             : 0x00
-  SizeOfProlog      : 0x0A
-  CountOfUnwindCodes: 6
+  SizeOfProlog      : 0x0C
+  CountOfUnwindCodes: 7
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x0A UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
-    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
-    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
-    CodeOffset: 0x04 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
-    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
+    CodeOffset: 0x0C UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 10 * 8 + 8 = 88 = 0x58
+    CodeOffset: 0x08 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
+    CodeOffset: 0x07 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
+    CodeOffset: 0x06 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)
+    CodeOffset: 0x05 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r14 (14)
+    CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: r15 (15)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

libraries_tests.run.windows.x64.Release.mch

-41 (-30.60%) : 534640.dasm - System.ServiceModel.Syndication.SyndicationItem:.ctor(System.String,System.String,System.Uri):this (Tier0)

@@ -11,62 +11,48 @@
 ;  V03 arg3         [V03    ] (  1,  1   )     ref  ->  [rbp+0x28]  do-not-enreg[] class-hnd <System.Uri>
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (48) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V05 tmp1         [V05    ] (  1,  1   )  struct (16) [rbp-0x10]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.DateTimeOffset>
-;  V06 tmp2         [V06    ] (  1,  1   )     ref  ->  [rbp-0x18]  do-not-enreg[] must-init "argument with side effect"
-;  V07 tmp3         [V07    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V08 tmp4         [V08    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp5         [V09    ] (  1,  1   )     ref  ->  [rbp-0x30]  do-not-enreg[] must-init "argument with side effect"
 ;
-; Lcl frame size = 96
+; Lcl frame size = 64
 
 G_M9968_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 96
+       sub      rsp, 64
        vzeroupper 
-       lea      rbp, [rsp+0x60]
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rbp-0x30], ymm4
+       lea      rbp, [rsp+0x40]
        mov      gword ptr [rbp+0x10], rcx
        mov      gword ptr [rbp+0x18], rdx
        mov      gword ptr [rbp+0x20], r8
        mov      gword ptr [rbp+0x28], r9
-                       ;; size=38 bbWeight=1 PerfScore 9.08
+                       ;; size=29 bbWeight=1 PerfScore 6.75
 G_M9968_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+       xor      rdx, rdx
+       ; gcrRegs +[rdx]
+       mov      gword ptr [rsp+0x20], rdx
+       mov      rdx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
+       ; gcrRegs -[rdx]
+       vmovups  xmm0, xmmword ptr [rdx]
+       vmovups  xmmword ptr [rbp-0x10], xmm0
+       lea      rdx, [rbp-0x10]
+       mov      qword ptr [rsp+0x28], rdx
+       mov      rdx, gword ptr [rbp+0x18]
+       ; gcrRegs +[rdx]
+       mov      r8, gword ptr [rbp+0x20]
+       ; gcrRegs +[r8]
+       mov      r9, gword ptr [rbp+0x28]
+       ; gcrRegs +[r9]
        mov      rcx, gword ptr [rbp+0x10]
        ; gcrRegs +[rcx]
-       mov      gword ptr [rbp-0x18], rcx
-       mov      rcx, gword ptr [rbp+0x18]
-       mov      gword ptr [rbp-0x20], rcx
-       mov      rcx, gword ptr [rbp+0x20]
-       mov      gword ptr [rbp-0x28], rcx
-       mov      rcx, gword ptr [rbp+0x28]
-       mov      gword ptr [rbp-0x30], rcx
-       xor      rcx, rcx
-       mov      gword ptr [rsp+0x20], rcx
-       mov      rcx, 0xD1FFAB1E      ; data for <unknown class>:<unknown field>
-       ; gcrRegs -[rcx]
-       vmovups  xmm0, xmmword ptr [rcx]
-       vmovups  xmmword ptr [rbp-0x10], xmm0
-       mov      rcx, gword ptr [rbp-0x18]
-       ; gcrRegs +[rcx]
-       mov      rdx, gword ptr [rbp-0x20]
-       ; gcrRegs +[rdx]
-       mov      r8, gword ptr [rbp-0x28]
-       ; gcrRegs +[r8]
-       mov      r9, gword ptr [rbp-0x30]
-       ; gcrRegs +[r9]
-       lea      rax, [rbp-0x10]
-       mov      qword ptr [rsp+0x28], rax
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx r8-r9]
        nop      
-                       ;; size=90 bbWeight=1 PerfScore 23.25
+                       ;; size=58 bbWeight=1 PerfScore 15.25
 G_M9968_IG03:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 96
+       add      rsp, 64
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 134, prolog size 22, PerfScore 34.08, instruction count 34, allocated bytes for code 134 (MethodHash=6336d90f) for method System.ServiceModel.Syndication.SyndicationItem:.ctor(System.String,System.String,System.Uri):this (Tier0)
+; Total bytes of code 93, prolog size 13, PerfScore 23.75, instruction count 24, allocated bytes for code 93 (MethodHash=6336d90f) for method System.ServiceModel.Syndication.SyndicationItem:.ctor(System.String,System.String,System.Uri):this (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -79,5 +65,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 11 * 8 + 8 = 96 = 0x60
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

-39 (-30.00%) : 371800.dasm - System.Net.Test.Common.HPackEncoder:EncodeHeader(System.String,System.String,System.Text.Encoding,int,System.Span`1[ubyte]):int (Tier0)

@@ -12,41 +12,27 @@
 ;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [rbp+0x30]  do-not-enreg[]
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (48) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [rbp-0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Span`1[ubyte]>
-;  V07 tmp2         [V07    ] (  1,  1   )     ref  ->  [rbp-0x18]  do-not-enreg[] must-init "argument with side effect"
-;  V08 tmp3         [V08    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp4         [V09    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp5         [V10    ] (  1,  1   )     int  ->  [rbp-0x2C]  do-not-enreg[] "argument with side effect"
 ;
-; Lcl frame size = 96
+; Lcl frame size = 64
 
 G_M9330_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 96
+       sub      rsp, 64
        vzeroupper 
-       lea      rbp, [rsp+0x60]
+       lea      rbp, [rsp+0x40]
        xor      eax, eax
-       mov      qword ptr [rbp-0x28], rax
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rbp-0x20], ymm4
+       mov      qword ptr [rbp-0x10], rax
        mov      gword ptr [rbp+0x10], rcx
        mov      gword ptr [rbp+0x18], rdx
        mov      gword ptr [rbp+0x20], r8
        mov      dword ptr [rbp+0x28], r9d
-                       ;; size=44 bbWeight=1 PerfScore 10.33
+                       ;; size=35 bbWeight=1 PerfScore 8.00
 G_M9330_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      rdx, gword ptr [rbp+0x10]
-       ; gcrRegs +[rdx]
-       mov      gword ptr [rbp-0x18], rdx
-       mov      rdx, gword ptr [rbp+0x18]
-       mov      gword ptr [rbp-0x20], rdx
-       mov      rdx, gword ptr [rbp+0x20]
-       mov      gword ptr [rbp-0x28], rdx
        mov      edx, dword ptr [rbp+0x28]
-       ; gcrRegs -[rdx]
-       mov      dword ptr [rbp-0x2C], edx
+       mov      dword ptr [rsp+0x20], edx
        mov      rdx, bword ptr [rbp+0x30]
        ; byrRegs +[rdx]
-                       ;; size=34 bbWeight=1 PerfScore 9.00
+                       ;; size=11 bbWeight=1 PerfScore 3.00
 G_M9330_IG03:        ; bbWeight=1, nogc, extend
        vmovdqu  xmm0, xmmword ptr [rdx]
        vmovdqu  xmmword ptr [rbp-0x10], xmm0
@@ -55,26 +41,24 @@ G_M9330_IG04:        ; bbWeight=1, extend
        lea      rdx, [rbp-0x10]
        ; byrRegs -[rdx]
        mov      qword ptr [rsp+0x28], rdx
-       mov      rdx, gword ptr [rbp-0x18]
+       mov      rdx, gword ptr [rbp+0x10]
        ; gcrRegs +[rdx]
-       mov      r8, gword ptr [rbp-0x20]
+       mov      r8, gword ptr [rbp+0x18]
        ; gcrRegs +[r8]
-       mov      r9, gword ptr [rbp-0x28]
+       mov      r9, gword ptr [rbp+0x20]
        ; gcrRegs +[r9]
-       mov      ecx, dword ptr [rbp-0x2C]
-       mov      dword ptr [rsp+0x20], ecx
        xor      ecx, ecx
        call     [<unknown method>]
        ; gcrRegs -[rdx r8-r9]
        nop      
-                       ;; size=37 bbWeight=1 PerfScore 10.00
+                       ;; size=30 bbWeight=1 PerfScore 8.00
 G_M9330_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 96
+       add      rsp, 64
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 130, prolog size 28, PerfScore 36.08, instruction count 36, allocated bytes for code 130 (MethodHash=ce38db8d) for method System.Net.Test.Common.HPackEncoder:EncodeHeader(System.String,System.String,System.Text.Encoding,int,System.Span`1[ubyte]):int (Tier0)
+; Total bytes of code 91, prolog size 19, PerfScore 25.75, instruction count 26, allocated bytes for code 91 (MethodHash=ce38db8d) for method System.Net.Test.Common.HPackEncoder:EncodeHeader(System.String,System.String,System.Text.Encoding,int,System.Span`1[ubyte]):int (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -87,5 +71,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 11 * 8 + 8 = 96 = 0x60
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

-39 (-30.00%) : 395156.dasm - System.Net.Test.Common.HPackEncoder:EncodeHeader(System.String,System.String,System.Text.Encoding,int,System.Span`1[ubyte]):int (Tier0)

@@ -12,41 +12,27 @@
 ;  V04 arg4         [V04    ] (  1,  1   )   byref  ->  [rbp+0x30]  do-not-enreg[]
 ;  V05 OutArgs      [V05    ] (  1,  1   )  struct (48) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V06 tmp1         [V06    ] (  1,  1   )  struct (16) [rbp-0x10]  do-not-enreg[XS] must-init addr-exposed "by-value struct argument" <System.Span`1[ubyte]>
-;  V07 tmp2         [V07    ] (  1,  1   )     ref  ->  [rbp-0x18]  do-not-enreg[] must-init "argument with side effect"
-;  V08 tmp3         [V08    ] (  1,  1   )     ref  ->  [rbp-0x20]  do-not-enreg[] must-init "argument with side effect"
-;  V09 tmp4         [V09    ] (  1,  1   )     ref  ->  [rbp-0x28]  do-not-enreg[] must-init "argument with side effect"
-;  V10 tmp5         [V10    ] (  1,  1   )     int  ->  [rbp-0x2C]  do-not-enreg[] "argument with side effect"
 ;
-; Lcl frame size = 96
+; Lcl frame size = 64
 
 G_M9330_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbp
-       sub      rsp, 96
+       sub      rsp, 64
        vzeroupper 
-       lea      rbp, [rsp+0x60]
+       lea      rbp, [rsp+0x40]
        xor      eax, eax
-       mov      qword ptr [rbp-0x28], rax
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqu  ymmword ptr [rbp-0x20], ymm4
+       mov      qword ptr [rbp-0x10], rax
        mov      gword ptr [rbp+0x10], rcx
        mov      gword ptr [rbp+0x18], rdx
        mov      gword ptr [rbp+0x20], r8
        mov      dword ptr [rbp+0x28], r9d
-                       ;; size=44 bbWeight=1 PerfScore 10.33
+                       ;; size=35 bbWeight=1 PerfScore 8.00
 G_M9330_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
-       mov      rdx, gword ptr [rbp+0x10]
-       ; gcrRegs +[rdx]
-       mov      gword ptr [rbp-0x18], rdx
-       mov      rdx, gword ptr [rbp+0x18]
-       mov      gword ptr [rbp-0x20], rdx
-       mov      rdx, gword ptr [rbp+0x20]
-       mov      gword ptr [rbp-0x28], rdx
        mov      edx, dword ptr [rbp+0x28]
-       ; gcrRegs -[rdx]
-       mov      dword ptr [rbp-0x2C], edx
+       mov      dword ptr [rsp+0x20], edx
        mov      rdx, bword ptr [rbp+0x30]
        ; byrRegs +[rdx]
-                       ;; size=34 bbWeight=1 PerfScore 9.00
+                       ;; size=11 bbWeight=1 PerfScore 3.00
 G_M9330_IG03:        ; bbWeight=1, nogc, extend
        vmovdqu  xmm0, xmmword ptr [rdx]
        vmovdqu  xmmword ptr [rbp-0x10], xmm0
@@ -55,26 +41,24 @@ G_M9330_IG04:        ; bbWeight=1, extend
        lea      rdx, [rbp-0x10]
        ; byrRegs -[rdx]
        mov      qword ptr [rsp+0x28], rdx
-       mov      rdx, gword ptr [rbp-0x18]
+       mov      rdx, gword ptr [rbp+0x10]
        ; gcrRegs +[rdx]
-       mov      r8, gword ptr [rbp-0x20]
+       mov      r8, gword ptr [rbp+0x18]
        ; gcrRegs +[r8]
-       mov      r9, gword ptr [rbp-0x28]
+       mov      r9, gword ptr [rbp+0x20]
        ; gcrRegs +[r9]
-       mov      ecx, dword ptr [rbp-0x2C]
-       mov      dword ptr [rsp+0x20], ecx
        xor      ecx, ecx
        call     [<unknown method>]
        ; gcrRegs -[rdx r8-r9]
        nop      
-                       ;; size=37 bbWeight=1 PerfScore 10.00
+                       ;; size=30 bbWeight=1 PerfScore 8.00
 G_M9330_IG05:        ; bbWeight=1, epilog, nogc, extend
-       add      rsp, 96
+       add      rsp, 64
        pop      rbp
        ret      
                        ;; size=6 bbWeight=1 PerfScore 1.75
 
-; Total bytes of code 130, prolog size 28, PerfScore 36.08, instruction count 36, allocated bytes for code 130 (MethodHash=ce38db8d) for method System.Net.Test.Common.HPackEncoder:EncodeHeader(System.String,System.String,System.Text.Encoding,int,System.Span`1[ubyte]):int (Tier0)
+; Total bytes of code 91, prolog size 19, PerfScore 25.75, instruction count 26, allocated bytes for code 91 (MethodHash=ce38db8d) for method System.Net.Test.Common.HPackEncoder:EncodeHeader(System.String,System.String,System.Text.Encoding,int,System.Span`1[ubyte]):int (Tier0)
 ; ============================================================
 
 Unwind Info:
@@ -87,5 +71,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 11 * 8 + 8 = 96 = 0x60
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbp (5)

+34 (+14.23%) : 577525.dasm - System.Text.Json.Utf8JsonWriter:WriteStringEscape(System.ReadOnlySpan`1[ushort]):this (Tier1)

@@ -13,86 +13,91 @@
 ;  V01 arg1         [V01,T00] (  7, 10.00)   byref  ->  rbx         single-def
 ;* V02 loc0         [V02    ] (  0,  0   )     int  ->  zero-ref   
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T06] (  2,  4   )   byref  ->  rcx         single-def "Inlining Arg"
-;  V05 tmp2         [V05,T10] (  4,  2.68)     int  ->   r8         "Inline return value spill temp"
+;  V04 tmp1         [V04,T06] (  2,  4   )   byref  ->  rdx         single-def "Inlining Arg"
+;  V05 tmp2         [V05,T09] (  4,  2.68)     int  ->   r8         "Inline return value spill temp"
 ;* V06 tmp3         [V06    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V07 tmp4         [V07    ] (  2,  2.01)   byref  ->  [rsp+0x30]  must-init pinned "Inline stloc first use temp"
+;  V07 tmp4         [V07    ] (  2,  2.01)   byref  ->  [rsp+0x40]  must-init pinned "Inline stloc first use temp"
 ;* V08 tmp5         [V08    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V09 tmp6         [V09,T04] (  2,  4.02)     ref  ->  rcx         class-hnd single-def "Inlining Arg" <System.Text.Encodings.Web.JavaScriptEncoder>
-;  V10 tmp7         [V10,T02] (  8,  6.04)     ref  ->  rcx        
-;  V11 tmp8         [V11,T11] (  3,  2.00)     int  ->   r8         "guarded devirt return temp"
+;  V09 tmp6         [V09,T04] (  2,  4.02)     ref  ->  rdx         class-hnd single-def "Inlining Arg" <System.Text.Encodings.Web.JavaScriptEncoder>
+;  V10 tmp7         [V10,T02] (  8,  6.04)     ref  ->  [rsp+0x20] 
+;  V11 tmp8         [V11,T10] (  3,  2.00)     int  ->   r8         "guarded devirt return temp"
 ;* V12 tmp9         [V12    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <System.Text.Encodings.Web.DefaultJavaScriptEncoder>
 ;* V13 tmp10        [V13    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
 ;* V14 tmp11        [V14    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
 ;* V15 tmp12        [V15    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V16 tmp13        [V16,T03] (  3,  5.99)     ref  ->  rcx         class-hnd exact single-def "Inlining Arg" <System.Text.Encodings.Web.OptimizedInboxTextEncoder>
+;  V16 tmp13        [V16,T03] (  3,  5.99)     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Text.Encodings.Web.OptimizedInboxTextEncoder>
 ;* V17 tmp14        [V17    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V18 tmp15        [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp16        [V19    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp17        [V20    ] (  0,  0   )   byref  ->  zero-ref    "field V01._reference (fldOffset=0x0)" P-INDEP
 ;* V21 tmp18        [V21    ] (  0,  0   )     int  ->  zero-ref    "field V01._length (fldOffset=0x8)" P-INDEP
-;  V22 tmp19        [V22,T08] (  3,  3.02)   byref  ->  rdx         single-def "field V06._reference (fldOffset=0x0)" P-INDEP
-;  V23 tmp20        [V23,T09] (  4,  3.00)     int  ->   r8         "field V06._length (fldOffset=0x8)" P-INDEP
-;  V24 tmp21        [V24,T12] (  2,  2.00)   byref  ->  rdx         single-def "field V17._reference (fldOffset=0x0)" P-INDEP
-;  V25 tmp22        [V25,T13] (  2,  2.00)     int  ->   r8         "field V17._length (fldOffset=0x8)" P-INDEP
+;  V22 tmp19        [V22,T07] (  3,  3.02)   byref  ->  rcx         single-def "field V06._reference (fldOffset=0x0)" P-INDEP
+;  V23 tmp20        [V23,T08] (  4,  3.00)     int  ->   r8         "field V06._length (fldOffset=0x8)" P-INDEP
+;  V24 tmp21        [V24,T11] (  2,  2.00)   byref  ->  rcx         single-def "field V17._reference (fldOffset=0x0)" P-INDEP
+;  V25 tmp22        [V25,T12] (  2,  2.00)     int  ->   r8         "field V17._length (fldOffset=0x8)" P-INDEP
 ;* V26 tmp23        [V26    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.ReadOnlySpan`1[ushort]>
-;  V27 tmp24        [V27,T05] (  3,  4.01)    long  ->  rdx         "Cast away GC"
-;  V28 tmp25        [V28    ] (  3,  5.99)  struct (16) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;  V29 tmp26        [V29,T07] (  2,  4.00)     ref  ->  rcx         single-def "argument with side effect"
+;  V27 tmp24        [V27,T05] (  3,  4.01)    long  ->  [rsp+0x38]  spill-single-def "Cast away GC"
+;  V28 tmp25        [V28    ] (  3,  5.99)  struct (16) [rsp+0x28]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
 ;
-; Lcl frame size = 56
+; Lcl frame size = 72
 
 G_M40707_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rsi
        push     rbx
-       sub      rsp, 56
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqa  xmmword ptr [rsp+0x20], xmm4
+       sub      rsp, 72
        xor      eax, eax
-       mov      qword ptr [rsp+0x30], rax
+       mov      qword ptr [rsp+0x28], rax
+       vxorps   xmm4, xmm4, xmm4
+       vmovdqa  xmmword ptr [rsp+0x30], xmm4
+       mov      qword ptr [rsp+0x40], rax
        mov      rsi, rcx
        ; gcrRegs +[rsi]
        mov      rbx, rdx
        ; byrRegs +[rbx]
-                       ;; size=29 bbWeight=1 PerfScore 6.33
+                       ;; size=34 bbWeight=1 PerfScore 7.33
 G_M40707_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref
        cmp      byte  ptr [rsi], sil
-       lea      rcx, bword ptr [rsi+0x60]
-       ; byrRegs +[rcx]
-       mov      rdx, bword ptr [rbx]
+       lea      rdx, bword ptr [rsi+0x60]
        ; byrRegs +[rdx]
+       mov      rcx, bword ptr [rbx]
+       ; byrRegs +[rcx]
        mov      r8d, dword ptr [rbx+0x08]
-       mov      rcx, gword ptr [rcx]
-       ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
+       mov      rdx, gword ptr [rdx]
+       ; gcrRegs +[rdx]
+       ; byrRegs -[rdx]
        test     r8d, r8d
        je       G_M40707_IG13
                        ;; size=26 bbWeight=1 PerfScore 10.75
-G_M40707_IG03:        ; bbWeight=1.01, gcrefRegs=0042 {rcx rsi}, byrefRegs=000C {rdx rbx}, byref
-       mov      bword ptr [rsp+0x30], rdx
+G_M40707_IG03:        ; bbWeight=1.01, gcrefRegs=0044 {rdx rsi}, byrefRegs=000A {rcx rbx}, byref
+       mov      bword ptr [rsp+0x40], rcx
+       mov      qword ptr [rsp+0x38], rcx
        mov      rax, 0xD1FFAB1E      ; const ptr
-       test     rcx, rcx
-       cmove    rcx, gword ptr [rax]
+       test     rdx, rdx
+       cmove    rdx, gword ptr [rax]
        mov      rax, 0xD1FFAB1E      ; System.Text.Encodings.Web.DefaultJavaScriptEncoder
-       cmp      qword ptr [rcx], rax
+       cmp      qword ptr [rdx], rax
        jne      G_M40707_IG16
-                       ;; size=41 bbWeight=1.01 PerfScore 8.82
-G_M40707_IG04:        ; bbWeight=1.00, gcrefRegs=0042 {rcx rsi}, byrefRegs=0008 {rbx}, byref
-       ; byrRegs -[rdx]
-       mov      rcx, gword ptr [rcx+0x08]
-       cmp      byte  ptr [rcx], cl
-       mov      bword ptr [rsp+0x20], rdx
-       mov      dword ptr [rsp+0x28], r8d
-       lea      rdx, [rsp+0x20]
+                       ;; size=46 bbWeight=1.01 PerfScore 9.83
+G_M40707_IG04:        ; bbWeight=1.00, gcrefRegs=0044 {rdx rsi}, byrefRegs=0008 {rbx}, byref
+       ; byrRegs -[rcx]
+       mov      rax, gword ptr [rdx+0x08]
+       ; gcrRegs +[rax]
+       cmp      byte  ptr [rax], al
+       mov      bword ptr [rsp+0x28], rcx
+       mov      dword ptr [rsp+0x30], r8d
+       lea      rdx, [rsp+0x28]
+       ; gcrRegs -[rdx]
+       mov      rcx, rax
+       ; gcrRegs +[rcx]
        call     [<unknown method>]
-       ; gcrRegs -[rcx]
+       ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
        mov      r8d, eax
-                       ;; size=30 bbWeight=1.00 PerfScore 10.74
+                       ;; size=33 bbWeight=1.00 PerfScore 10.99
 G_M40707_IG05:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
        xor      rcx, rcx
        ; byrRegs +[rcx]
-       mov      bword ptr [rsp+0x30], rcx
+       mov      bword ptr [rsp+0x40], rcx
        cmp      r8d, -1
        je       SHORT G_M40707_IG08
                        ;; size=13 bbWeight=1 PerfScore 2.50
@@ -109,7 +114,7 @@ G_M40707_IG06:        ; bbWeight=0.68, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx
        nop      
                        ;; size=13 bbWeight=0.68 PerfScore 2.57
 G_M40707_IG07:        ; bbWeight=0.68, epilog, nogc, extend
-       add      rsp, 56
+       add      rsp, 72
        pop      rbx
        pop      rsi
        ret      
@@ -138,7 +143,7 @@ G_M40707_IG11:        ; bbWeight=0.32, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        nop      
                        ;; size=1 bbWeight=0.32 PerfScore 0.08
 G_M40707_IG12:        ; bbWeight=0.32, epilog, nogc, extend
-       add      rsp, 56
+       add      rsp, 72
        pop      rbx
        pop      rsi
        ret      
@@ -170,18 +175,28 @@ G_M40707_IG15:        ; bbWeight=0.00, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx
        ; gcr arg pop 0
        jmp      SHORT G_M40707_IG09
                        ;; size=11 bbWeight=0.00 PerfScore 0.00
-G_M40707_IG16:        ; bbWeight=0, gcrefRegs=0042 {rcx rsi}, byrefRegs=0008 {rbx}, byref, isz
+G_M40707_IG16:        ; bbWeight=0, gcrefRegs=0044 {rdx rsi}, byrefRegs=0008 {rbx}, byref
+       ; gcrRegs +[rdx]
+       mov      gword ptr [rsp+0x20], rdx
+       ; GC ptr vars +{V10}
+       mov      rcx, rdx
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [rcx]
+       mov      rdx, qword ptr [rsp+0x38]
+       ; gcrRegs -[rdx]
+       mov      rax, gword ptr [rsp+0x20]
+       ; gcrRegs +[rax]
+       mov      rax, qword ptr [rax]
+       ; gcrRegs -[rax]
        mov      rax, qword ptr [rax+0x48]
+       ; GC ptr vars -{V10}
        call     [rax+0x28]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        mov      r8d, eax
-       jmp      SHORT G_M40707_IG05
-                       ;; size=15 bbWeight=0 PerfScore 0.00
+       jmp      G_M40707_IG05
+                       ;; size=36 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 239, prolog size 23, PerfScore 47.67, instruction count 68, allocated bytes for code 239 (MethodHash=59c660fc) for method System.Text.Json.Utf8JsonWriter:WriteStringEscape(System.ReadOnlySpan`1[ushort]):this (Tier1)
+; Total bytes of code 273, prolog size 28, PerfScore 49.92, instruction count 75, allocated bytes for code 273 (MethodHash=59c660fc) for method System.Text.Json.Utf8JsonWriter:WriteStringEscape(System.ReadOnlySpan`1[ushort]):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -194,6 +209,6 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 6 * 8 + 8 = 56 = 0x38
+    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 8 * 8 + 8 = 72 = 0x48
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)

+46 (+15.38%) : 590961.dasm - System.Text.Json.Utf8JsonWriter:WriteNumberEscape(System.ReadOnlySpan`1[ushort],float):this (Tier1)

@@ -11,93 +11,98 @@
 ;
 ;  V00 this         [V00,T01] ( 12,  5.90)     ref  ->  rsi         this class-hnd single-def <System.Text.Json.Utf8JsonWriter>
 ;  V01 arg1         [V01,T00] (  7, 10   )   byref  ->  rbx         single-def
-;  V02 arg2         [V02,T15] (  5,  3   )   float  ->  [rsp+0x70]  single-def
+;  V02 arg2         [V02,T14] (  5,  3   )   float  ->  [rsp+0x80]  single-def
 ;* V03 loc0         [V03    ] (  0,  0   )     int  ->  zero-ref   
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05,T06] (  2,  4   )   byref  ->  rcx         single-def "Inlining Arg"
-;  V06 tmp2         [V06,T10] (  4,  2.67)     int  ->   r9         "Inline return value spill temp"
+;  V05 tmp1         [V05,T06] (  2,  4   )   byref  ->  rdx         single-def "Inlining Arg"
+;  V06 tmp2         [V06,T09] (  4,  2.67)     int  ->   r9         "Inline return value spill temp"
 ;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V08 tmp4         [V08    ] (  2,  2.01)   byref  ->  [rsp+0x40]  must-init pinned "Inline stloc first use temp"
+;  V08 tmp4         [V08    ] (  2,  2.01)   byref  ->  [rsp+0x50]  must-init pinned "Inline stloc first use temp"
 ;* V09 tmp5         [V09    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V10 tmp6         [V10,T05] (  2,  4.01)     ref  ->  rcx         class-hnd single-def "Inlining Arg" <System.Text.Encodings.Web.JavaScriptEncoder>
-;  V11 tmp7         [V11,T02] (  8,  6.04)     ref  ->  rcx        
-;  V12 tmp8         [V12,T11] (  3,  2   )     int  ->   r9         "guarded devirt return temp"
+;  V10 tmp6         [V10,T05] (  2,  4.01)     ref  ->  rdx         class-hnd single-def "Inlining Arg" <System.Text.Encodings.Web.JavaScriptEncoder>
+;  V11 tmp7         [V11,T02] (  8,  6.04)     ref  ->  [rsp+0x30] 
+;  V12 tmp8         [V12,T10] (  3,  2   )     int  ->   r9         "guarded devirt return temp"
 ;* V13 tmp9         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <System.Text.Encodings.Web.DefaultJavaScriptEncoder>
 ;* V14 tmp10        [V14    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
 ;* V15 tmp11        [V15    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
 ;* V16 tmp12        [V16    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V17 tmp13        [V17,T03] (  3,  6   )     ref  ->  rcx         class-hnd exact single-def "Inlining Arg" <System.Text.Encodings.Web.OptimizedInboxTextEncoder>
+;  V17 tmp13        [V17,T03] (  3,  6   )     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Text.Encodings.Web.OptimizedInboxTextEncoder>
 ;* V18 tmp14        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V19 tmp15        [V19    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp16        [V20    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp17        [V21    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp18        [V22    ] (  0,  0   )   byref  ->  zero-ref    "field V01._reference (fldOffset=0x0)" P-INDEP
 ;* V23 tmp19        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V01._length (fldOffset=0x8)" P-INDEP
-;  V24 tmp20        [V24,T08] (  3,  3.01)   byref  ->  rdx         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;  V25 tmp21        [V25,T09] (  4,  3   )     int  ->   r8         "field V07._length (fldOffset=0x8)" P-INDEP
-;  V26 tmp22        [V26,T12] (  2,  2   )   byref  ->  rdx         single-def "field V18._reference (fldOffset=0x0)" P-INDEP
-;  V27 tmp23        [V27,T13] (  2,  2   )     int  ->   r8         "field V18._length (fldOffset=0x8)" P-INDEP
+;  V24 tmp20        [V24,T07] (  3,  3.01)   byref  ->  rcx         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;  V25 tmp21        [V25,T08] (  4,  3   )     int  ->   r8         "field V07._length (fldOffset=0x8)" P-INDEP
+;  V26 tmp22        [V26,T11] (  2,  2   )   byref  ->  rcx         single-def "field V18._reference (fldOffset=0x0)" P-INDEP
+;  V27 tmp23        [V27,T12] (  2,  2   )     int  ->   r8         "field V18._length (fldOffset=0x8)" P-INDEP
 ;* V28 tmp24        [V28    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.ReadOnlySpan`1[ushort]>
-;  V29 tmp25        [V29,T04] (  3,  4.01)    long  ->  rdx         "Cast away GC"
-;  V30 tmp26        [V30    ] (  3,  6   )  struct (16) [rsp+0x30]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;  V31 tmp27        [V31,T07] (  2,  4   )     ref  ->  rcx         single-def "argument with side effect"
-;  V32 cse0         [V32,T14] (  3,  0.99)     int  ->  rcx         "CSE - conservative"
+;  V29 tmp25        [V29,T04] (  3,  4.01)    long  ->  [rsp+0x48]  spill-single-def "Cast away GC"
+;  V30 tmp26        [V30    ] (  3,  6   )  struct (16) [rsp+0x38]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V31 cse0         [V31,T13] (  3,  0.99)     int  ->  rcx         "CSE - conservative"
 ;
-; Lcl frame size = 72
+; Lcl frame size = 88
 
 G_M46473_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rsi
        push     rbx
-       sub      rsp, 72
+       sub      rsp, 88
        vzeroupper 
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqa  xmmword ptr [rsp+0x30], xmm4
        xor      eax, eax
-       mov      qword ptr [rsp+0x40], rax
-       vmovss   dword ptr [rsp+0x70], xmm2
+       mov      qword ptr [rsp+0x38], rax
+       vxorps   xmm4, xmm4, xmm4
+       vmovdqa  xmmword ptr [rsp+0x40], xmm4
+       mov      qword ptr [rsp+0x50], rax
+       vmovss   dword ptr [rsp+0x80], xmm2
        mov      rsi, rcx
        ; gcrRegs +[rsi]
        mov      rbx, rdx
        ; byrRegs +[rbx]
-                       ;; size=38 bbWeight=1 PerfScore 8.33
+                       ;; size=46 bbWeight=1 PerfScore 9.33
 G_M46473_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref
        cmp      byte  ptr [rsi], sil
-       lea      rcx, bword ptr [rsi+0x60]
-       ; byrRegs +[rcx]
-       mov      rdx, bword ptr [rbx]
+       lea      rdx, bword ptr [rsi+0x60]
        ; byrRegs +[rdx]
+       mov      rcx, bword ptr [rbx]
+       ; byrRegs +[rcx]
        mov      r8d, dword ptr [rbx+0x08]
-       mov      rcx, gword ptr [rcx]
-       ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
+       mov      rdx, gword ptr [rdx]
+       ; gcrRegs +[rdx]
+       ; byrRegs -[rdx]
        test     r8d, r8d
        je       G_M46473_IG13
                        ;; size=26 bbWeight=1 PerfScore 10.75
-G_M46473_IG03:        ; bbWeight=1.01, gcrefRegs=0042 {rcx rsi}, byrefRegs=000C {rdx rbx}, byref
-       mov      bword ptr [rsp+0x40], rdx
+G_M46473_IG03:        ; bbWeight=1.01, gcrefRegs=0044 {rdx rsi}, byrefRegs=000A {rcx rbx}, byref
+       mov      bword ptr [rsp+0x50], rcx
+       mov      qword ptr [rsp+0x48], rcx
        mov      rax, 0xD1FFAB1E      ; const ptr
-       test     rcx, rcx
-       cmove    rcx, gword ptr [rax]
+       test     rdx, rdx
+       cmove    rdx, gword ptr [rax]
        mov      rax, 0xD1FFAB1E      ; System.Text.Encodings.Web.DefaultJavaScriptEncoder
-       cmp      qword ptr [rcx], rax
+       cmp      qword ptr [rdx], rax
        jne      G_M46473_IG14
-                       ;; size=41 bbWeight=1.01 PerfScore 8.81
-G_M46473_IG04:        ; bbWeight=1, gcrefRegs=0042 {rcx rsi}, byrefRegs=0008 {rbx}, byref
-       ; byrRegs -[rdx]
-       mov      rcx, gword ptr [rcx+0x08]
-       cmp      byte  ptr [rcx], cl
-       mov      bword ptr [rsp+0x30], rdx
-       mov      dword ptr [rsp+0x38], r8d
-       lea      rdx, [rsp+0x30]
+                       ;; size=46 bbWeight=1.01 PerfScore 9.82
+G_M46473_IG04:        ; bbWeight=1, gcrefRegs=0044 {rdx rsi}, byrefRegs=0008 {rbx}, byref
+       ; byrRegs -[rcx]
+       mov      rax, gword ptr [rdx+0x08]
+       ; gcrRegs +[rax]
+       cmp      byte  ptr [rax], al
+       mov      bword ptr [rsp+0x38], rcx
+       mov      dword ptr [rsp+0x40], r8d
+       lea      rdx, [rsp+0x38]
+       ; gcrRegs -[rdx]
+       mov      rcx, rax
+       ; gcrRegs +[rcx]
        call     [<unknown method>]
-       ; gcrRegs -[rcx]
+       ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
        mov      r9d, eax
-                       ;; size=30 bbWeight=1 PerfScore 10.75
+                       ;; size=33 bbWeight=1 PerfScore 11.00
 G_M46473_IG05:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
        xor      rcx, rcx
        ; byrRegs +[rcx]
-       mov      bword ptr [rsp+0x40], rcx
+       mov      bword ptr [rsp+0x50], rcx
        cmp      r9d, -1
        je       SHORT G_M46473_IG08
                        ;; size=13 bbWeight=1 PerfScore 2.50
@@ -107,15 +112,15 @@ G_M46473_IG06:        ; bbWeight=0.67, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx
        ; gcrRegs +[rcx]
        mov      rdx, rbx
        ; byrRegs +[rdx]
-       vmovss   xmm2, dword ptr [rsp+0x70]
+       vmovss   xmm2, dword ptr [rsp+0x80]
        call     [<unknown method>]
        ; gcrRegs -[rcx rsi]
        ; byrRegs -[rdx rbx]
        ; gcr arg pop 0
        nop      
-                       ;; size=19 bbWeight=0.67 PerfScore 4.51
+                       ;; size=22 bbWeight=0.67 PerfScore 4.51
 G_M46473_IG07:        ; bbWeight=0.67, epilog, nogc, extend
-       add      rsp, 72
+       add      rsp, 88
        pop      rbx
        pop      rsi
        ret      
@@ -140,17 +145,17 @@ G_M46473_IG10:        ; bbWeight=0.33, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx
        ; gcrRegs +[rcx]
        mov      rdx, rbx
        ; byrRegs +[rdx]
-       vmovss   xmm2, dword ptr [rsp+0x70]
+       vmovss   xmm2, dword ptr [rsp+0x80]
        call     [<unknown method>]
        ; gcrRegs -[rcx rsi]
        ; byrRegs -[rdx rbx]
        ; gcr arg pop 0
-                       ;; size=23 bbWeight=0.33 PerfScore 2.57
+                       ;; size=26 bbWeight=0.33 PerfScore 2.57
 G_M46473_IG11:        ; bbWeight=0.33, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=0.33 PerfScore 0.08
 G_M46473_IG12:        ; bbWeight=0.33, epilog, nogc, extend
-       add      rsp, 72
+       add      rsp, 88
        pop      rbx
        pop      rsi
        ret      
@@ -161,16 +166,26 @@ G_M46473_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {
        mov      r9d, -1
        jmp      SHORT G_M46473_IG05
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M46473_IG14:        ; bbWeight=0, gcrefRegs=0042 {rcx rsi}, byrefRegs=0008 {rbx}, byref, isz
+G_M46473_IG14:        ; bbWeight=0, gcrefRegs=0044 {rdx rsi}, byrefRegs=0008 {rbx}, byref
+       ; gcrRegs +[rdx]
+       mov      gword ptr [rsp+0x30], rdx
+       ; GC ptr vars +{V11}
+       mov      rcx, rdx
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [rcx]
+       mov      rdx, qword ptr [rsp+0x48]
+       ; gcrRegs -[rdx]
+       mov      rax, gword ptr [rsp+0x30]
+       ; gcrRegs +[rax]
+       mov      rax, qword ptr [rax]
+       ; gcrRegs -[rax]
        mov      rax, qword ptr [rax+0x48]
+       ; GC ptr vars -{V11}
        call     [rax+0x28]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        mov      r9d, eax
-       jmp      SHORT G_M46473_IG05
-                       ;; size=15 bbWeight=0 PerfScore 0.00
+       jmp      G_M46473_IG05
+                       ;; size=36 bbWeight=0 PerfScore 0.00
 G_M46473_IG15:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        ; byrRegs -[rbx]
        movzx    r8, byte  ptr [rsi+0x36]
@@ -191,15 +206,15 @@ G_M46473_IG16:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx},
        ; gcrRegs +[rcx]
        mov      rdx, rbx
        ; byrRegs +[rdx]
-       vmovss   xmm2, dword ptr [rsp+0x70]
+       vmovss   xmm2, dword ptr [rsp+0x80]
        call     [<unknown method>]
        ; gcrRegs -[rcx rsi]
        ; byrRegs -[rdx rbx]
        ; gcr arg pop 0
        jmp      SHORT G_M46473_IG11
-                       ;; size=20 bbWeight=0 PerfScore 0.00
+                       ;; size=23 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 299, prolog size 26, PerfScore 53.90, instruction count 83, allocated bytes for code 299 (MethodHash=786a4a76) for method System.Text.Json.Utf8JsonWriter:WriteNumberEscape(System.ReadOnlySpan`1[ushort],float):this (Tier1)
+; Total bytes of code 345, prolog size 31, PerfScore 56.15, instruction count 90, allocated bytes for code 345 (MethodHash=786a4a76) for method System.Text.Json.Utf8JsonWriter:WriteNumberEscape(System.ReadOnlySpan`1[ushort],float):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -212,6 +227,6 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 8 * 8 + 8 = 72 = 0x48
+    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 10 * 8 + 8 = 88 = 0x58
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)

+46 (+15.38%) : 590972.dasm - System.Text.Json.Utf8JsonWriter:WriteNumberEscape(System.ReadOnlySpan`1[ushort],double):this (Tier1)

@@ -11,93 +11,98 @@
 ;
 ;  V00 this         [V00,T01] ( 12,  5.94)     ref  ->  rsi         this class-hnd single-def <System.Text.Json.Utf8JsonWriter>
 ;  V01 arg1         [V01,T00] (  7, 10   )   byref  ->  rbx         single-def
-;  V02 arg2         [V02,T15] (  5,  3   )  double  ->  [rsp+0x70]  single-def
+;  V02 arg2         [V02,T14] (  5,  3   )  double  ->  [rsp+0x80]  single-def
 ;* V03 loc0         [V03    ] (  0,  0   )     int  ->  zero-ref   
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (40) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05,T06] (  2,  4   )   byref  ->  rcx         single-def "Inlining Arg"
-;  V06 tmp2         [V06,T10] (  4,  2.65)     int  ->   r9         "Inline return value spill temp"
+;  V05 tmp1         [V05,T06] (  2,  4   )   byref  ->  rdx         single-def "Inlining Arg"
+;  V06 tmp2         [V06,T09] (  4,  2.65)     int  ->   r9         "Inline return value spill temp"
 ;* V07 tmp3         [V07    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V08 tmp4         [V08    ] (  2,  2.01)   byref  ->  [rsp+0x40]  must-init pinned "Inline stloc first use temp"
+;  V08 tmp4         [V08    ] (  2,  2.01)   byref  ->  [rsp+0x50]  must-init pinned "Inline stloc first use temp"
 ;* V09 tmp5         [V09    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V10 tmp6         [V10,T05] (  2,  4.01)     ref  ->  rcx         class-hnd single-def "Inlining Arg" <System.Text.Encodings.Web.JavaScriptEncoder>
-;  V11 tmp7         [V11,T02] (  8,  6.04)     ref  ->  rcx        
-;  V12 tmp8         [V12,T11] (  3,  2.00)     int  ->   r9         "guarded devirt return temp"
+;  V10 tmp6         [V10,T05] (  2,  4.01)     ref  ->  rdx         class-hnd single-def "Inlining Arg" <System.Text.Encodings.Web.JavaScriptEncoder>
+;  V11 tmp7         [V11,T02] (  8,  6.04)     ref  ->  [rsp+0x30] 
+;  V12 tmp8         [V12,T10] (  3,  2.00)     int  ->   r9         "guarded devirt return temp"
 ;* V13 tmp9         [V13    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact single-def "guarded devirt this exact temp" <System.Text.Encodings.Web.DefaultJavaScriptEncoder>
 ;* V14 tmp10        [V14    ] (  0,  0   )   byref  ->  zero-ref    "Inline return value spill temp"
 ;* V15 tmp11        [V15    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
 ;* V16 tmp12        [V16    ] (  0,  0   )     int  ->  zero-ref    "Inlining Arg"
-;  V17 tmp13        [V17,T03] (  3,  6.00)     ref  ->  rcx         class-hnd exact single-def "Inlining Arg" <System.Text.Encodings.Web.OptimizedInboxTextEncoder>
+;  V17 tmp13        [V17,T03] (  3,  6.00)     ref  ->  rax         class-hnd exact single-def "Inlining Arg" <System.Text.Encodings.Web.OptimizedInboxTextEncoder>
 ;* V18 tmp14        [V18    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V19 tmp15        [V19    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V20 tmp16        [V20    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V21 tmp17        [V21    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V22 tmp18        [V22    ] (  0,  0   )   byref  ->  zero-ref    "field V01._reference (fldOffset=0x0)" P-INDEP
 ;* V23 tmp19        [V23    ] (  0,  0   )     int  ->  zero-ref    "field V01._length (fldOffset=0x8)" P-INDEP
-;  V24 tmp20        [V24,T08] (  3,  3.01)   byref  ->  rdx         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
-;  V25 tmp21        [V25,T09] (  4,  3   )     int  ->   r8         "field V07._length (fldOffset=0x8)" P-INDEP
-;  V26 tmp22        [V26,T12] (  2,  2.00)   byref  ->  rdx         single-def "field V18._reference (fldOffset=0x0)" P-INDEP
-;  V27 tmp23        [V27,T13] (  2,  2.00)     int  ->   r8         "field V18._length (fldOffset=0x8)" P-INDEP
+;  V24 tmp20        [V24,T07] (  3,  3.01)   byref  ->  rcx         single-def "field V07._reference (fldOffset=0x0)" P-INDEP
+;  V25 tmp21        [V25,T08] (  4,  3   )     int  ->   r8         "field V07._length (fldOffset=0x8)" P-INDEP
+;  V26 tmp22        [V26,T11] (  2,  2.00)   byref  ->  rcx         single-def "field V18._reference (fldOffset=0x0)" P-INDEP
+;  V27 tmp23        [V27,T12] (  2,  2.00)     int  ->   r8         "field V18._length (fldOffset=0x8)" P-INDEP
 ;* V28 tmp24        [V28    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.ReadOnlySpan`1[ushort]>
-;  V29 tmp25        [V29,T04] (  3,  4.01)    long  ->  rdx         "Cast away GC"
-;  V30 tmp26        [V30    ] (  3,  6.00)  struct (16) [rsp+0x30]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;  V31 tmp27        [V31,T07] (  2,  4.00)     ref  ->  rcx         single-def "argument with side effect"
-;  V32 cse0         [V32,T14] (  3,  1.04)     int  ->  rcx         "CSE - moderate"
+;  V29 tmp25        [V29,T04] (  3,  4.01)    long  ->  [rsp+0x48]  spill-single-def "Cast away GC"
+;  V30 tmp26        [V30    ] (  3,  6.00)  struct (16) [rsp+0x38]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V31 cse0         [V31,T13] (  3,  1.04)     int  ->  rcx         "CSE - moderate"
 ;
-; Lcl frame size = 72
+; Lcl frame size = 88
 
 G_M2956_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rsi
        push     rbx
-       sub      rsp, 72
+       sub      rsp, 88
        vzeroupper 
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqa  xmmword ptr [rsp+0x30], xmm4
        xor      eax, eax
-       mov      qword ptr [rsp+0x40], rax
-       vmovsd   qword ptr [rsp+0x70], xmm2
+       mov      qword ptr [rsp+0x38], rax
+       vxorps   xmm4, xmm4, xmm4
+       vmovdqa  xmmword ptr [rsp+0x40], xmm4
+       mov      qword ptr [rsp+0x50], rax
+       vmovsd   qword ptr [rsp+0x80], xmm2
        mov      rsi, rcx
        ; gcrRegs +[rsi]
        mov      rbx, rdx
        ; byrRegs +[rbx]
-                       ;; size=38 bbWeight=1 PerfScore 8.33
+                       ;; size=46 bbWeight=1 PerfScore 9.33
 G_M2956_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref
        cmp      byte  ptr [rsi], sil
-       lea      rcx, bword ptr [rsi+0x60]
-       ; byrRegs +[rcx]
-       mov      rdx, bword ptr [rbx]
+       lea      rdx, bword ptr [rsi+0x60]
        ; byrRegs +[rdx]
+       mov      rcx, bword ptr [rbx]
+       ; byrRegs +[rcx]
        mov      r8d, dword ptr [rbx+0x08]
-       mov      rcx, gword ptr [rcx]
-       ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
+       mov      rdx, gword ptr [rdx]
+       ; gcrRegs +[rdx]
+       ; byrRegs -[rdx]
        test     r8d, r8d
        je       G_M2956_IG13
                        ;; size=26 bbWeight=1 PerfScore 10.75
-G_M2956_IG03:        ; bbWeight=1.01, gcrefRegs=0042 {rcx rsi}, byrefRegs=000C {rdx rbx}, byref
-       mov      bword ptr [rsp+0x40], rdx
+G_M2956_IG03:        ; bbWeight=1.01, gcrefRegs=0044 {rdx rsi}, byrefRegs=000A {rcx rbx}, byref
+       mov      bword ptr [rsp+0x50], rcx
+       mov      qword ptr [rsp+0x48], rcx
        mov      rax, 0xD1FFAB1E      ; const ptr
-       test     rcx, rcx
-       cmove    rcx, gword ptr [rax]
+       test     rdx, rdx
+       cmove    rdx, gword ptr [rax]
        mov      rax, 0xD1FFAB1E      ; System.Text.Encodings.Web.DefaultJavaScriptEncoder
-       cmp      qword ptr [rcx], rax
+       cmp      qword ptr [rdx], rax
        jne      G_M2956_IG14
-                       ;; size=41 bbWeight=1.01 PerfScore 8.81
-G_M2956_IG04:        ; bbWeight=1.00, gcrefRegs=0042 {rcx rsi}, byrefRegs=0008 {rbx}, byref
-       ; byrRegs -[rdx]
-       mov      rcx, gword ptr [rcx+0x08]
-       cmp      byte  ptr [rcx], cl
-       mov      bword ptr [rsp+0x30], rdx
-       mov      dword ptr [rsp+0x38], r8d
-       lea      rdx, [rsp+0x30]
+                       ;; size=46 bbWeight=1.01 PerfScore 9.82
+G_M2956_IG04:        ; bbWeight=1.00, gcrefRegs=0044 {rdx rsi}, byrefRegs=0008 {rbx}, byref
+       ; byrRegs -[rcx]
+       mov      rax, gword ptr [rdx+0x08]
+       ; gcrRegs +[rax]
+       cmp      byte  ptr [rax], al
+       mov      bword ptr [rsp+0x38], rcx
+       mov      dword ptr [rsp+0x40], r8d
+       lea      rdx, [rsp+0x38]
+       ; gcrRegs -[rdx]
+       mov      rcx, rax
+       ; gcrRegs +[rcx]
        call     [<unknown method>]
-       ; gcrRegs -[rcx]
+       ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
        mov      r9d, eax
-                       ;; size=30 bbWeight=1.00 PerfScore 10.75
+                       ;; size=33 bbWeight=1.00 PerfScore 11.00
 G_M2956_IG05:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
        xor      rcx, rcx
        ; byrRegs +[rcx]
-       mov      bword ptr [rsp+0x40], rcx
+       mov      bword ptr [rsp+0x50], rcx
        cmp      r9d, -1
        je       SHORT G_M2956_IG08
                        ;; size=13 bbWeight=1 PerfScore 2.50
@@ -107,15 +112,15 @@ G_M2956_IG06:        ; bbWeight=0.65, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}
        ; gcrRegs +[rcx]
        mov      rdx, rbx
        ; byrRegs +[rdx]
-       vmovsd   xmm2, qword ptr [rsp+0x70]
+       vmovsd   xmm2, qword ptr [rsp+0x80]
        call     [<unknown method>]
        ; gcrRegs -[rcx rsi]
        ; byrRegs -[rdx rbx]
        ; gcr arg pop 0
        nop      
-                       ;; size=19 bbWeight=0.65 PerfScore 4.40
+                       ;; size=22 bbWeight=0.65 PerfScore 4.40
 G_M2956_IG07:        ; bbWeight=0.65, epilog, nogc, extend
-       add      rsp, 72
+       add      rsp, 88
        pop      rbx
        pop      rsi
        ret      
@@ -140,17 +145,17 @@ G_M2956_IG10:        ; bbWeight=0.35, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}
        ; gcrRegs +[rcx]
        mov      rdx, rbx
        ; byrRegs +[rdx]
-       vmovsd   xmm2, qword ptr [rsp+0x70]
+       vmovsd   xmm2, qword ptr [rsp+0x80]
        call     [<unknown method>]
        ; gcrRegs -[rcx rsi]
        ; byrRegs -[rdx rbx]
        ; gcr arg pop 0
-                       ;; size=23 bbWeight=0.35 PerfScore 2.69
+                       ;; size=26 bbWeight=0.35 PerfScore 2.69
 G_M2956_IG11:        ; bbWeight=0.35, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=0.35 PerfScore 0.09
 G_M2956_IG12:        ; bbWeight=0.35, epilog, nogc, extend
-       add      rsp, 72
+       add      rsp, 88
        pop      rbx
        pop      rsi
        ret      
@@ -161,16 +166,26 @@ G_M2956_IG13:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0040 {r
        mov      r9d, -1
        jmp      SHORT G_M2956_IG05
                        ;; size=8 bbWeight=0 PerfScore 0.00
-G_M2956_IG14:        ; bbWeight=0, gcrefRegs=0042 {rcx rsi}, byrefRegs=0008 {rbx}, byref, isz
+G_M2956_IG14:        ; bbWeight=0, gcrefRegs=0044 {rdx rsi}, byrefRegs=0008 {rbx}, byref
+       ; gcrRegs +[rdx]
+       mov      gword ptr [rsp+0x30], rdx
+       ; GC ptr vars +{V11}
+       mov      rcx, rdx
        ; gcrRegs +[rcx]
-       mov      rax, qword ptr [rcx]
+       mov      rdx, qword ptr [rsp+0x48]
+       ; gcrRegs -[rdx]
+       mov      rax, gword ptr [rsp+0x30]
+       ; gcrRegs +[rax]
+       mov      rax, qword ptr [rax]
+       ; gcrRegs -[rax]
        mov      rax, qword ptr [rax+0x48]
+       ; GC ptr vars -{V11}
        call     [rax+0x28]<unknown method>
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        mov      r9d, eax
-       jmp      SHORT G_M2956_IG05
-                       ;; size=15 bbWeight=0 PerfScore 0.00
+       jmp      G_M2956_IG05
+                       ;; size=36 bbWeight=0 PerfScore 0.00
 G_M2956_IG15:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        ; byrRegs -[rbx]
        movzx    r8, byte  ptr [rsi+0x36]
@@ -191,15 +206,15 @@ G_M2956_IG16:        ; bbWeight=0, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, b
        ; gcrRegs +[rcx]
        mov      rdx, rbx
        ; byrRegs +[rdx]
-       vmovsd   xmm2, qword ptr [rsp+0x70]
+       vmovsd   xmm2, qword ptr [rsp+0x80]
        call     [<unknown method>]
        ; gcrRegs -[rcx rsi]
        ; byrRegs -[rdx rbx]
        ; gcr arg pop 0
        jmp      SHORT G_M2956_IG11
-                       ;; size=20 bbWeight=0 PerfScore 0.00
+                       ;; size=23 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 299, prolog size 26, PerfScore 54.08, instruction count 83, allocated bytes for code 299 (MethodHash=8e69f473) for method System.Text.Json.Utf8JsonWriter:WriteNumberEscape(System.ReadOnlySpan`1[ushort],double):this (Tier1)
+; Total bytes of code 345, prolog size 31, PerfScore 56.34, instruction count 90, allocated bytes for code 345 (MethodHash=8e69f473) for method System.Text.Json.Utf8JsonWriter:WriteNumberEscape(System.ReadOnlySpan`1[ushort],double):this (Tier1)
 ; ============================================================
 
 Unwind Info:
@@ -212,6 +227,6 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 8 * 8 + 8 = 72 = 0x48
+    CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 10 * 8 + 8 = 88 = 0x58
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)

librariestestsnotieredcompilation.run.windows.x64.Release.mch

-21 (-22.83%) : 72159.dasm - System.Collections.Immutable.Tests.ImmutableArrayTest+<>cDisplayClass128_1:b20():System.Object:this (FullOpts)

@@ -10,9 +10,8 @@
 ;  V00 this         [V00,T00] (  4,  4   )     ref  ->  rbx         this class-hnd single-def <System.Collections.Immutable.Tests.ImmutableArrayTest+<>c__DisplayClass128_1>
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;  V02 tmp1         [V02,T01] (  3,  6   )     ref  ->  rsi         class-hnd exact single-def "Single-def Box Helper" <System.Collections.Immutable.ImmutableArray`1[int]>
-;  V03 tmp2         [V03,T03] (  3,  3   )     ref  ->   r8         single-def "Field obj"
-;  V04 tmp3         [V04,T02] (  2,  4   )   byref  ->   r8         single-def "argument with side effect"
-;  TEMP_01                                   byref  ->  [rsp+0x20]
+;  V03 tmp2         [V03,T03] (  3,  3   )     ref  ->  rcx         single-def "Field obj"
+;  V04 tmp3         [V04,T02] (  2,  4   )   byref  ->  rcx         single-def "argument with side effect"
 ;
 ; Lcl frame size = 40
 
@@ -20,11 +19,9 @@ G_M54012_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rsi
        push     rbx
        sub      rsp, 40
-       xor      eax, eax
-       mov      qword ptr [rsp+0x20], rax
        mov      rbx, rcx
        ; gcrRegs +[rbx]
-                       ;; size=16 bbWeight=1 PerfScore 3.75
+                       ;; size=9 bbWeight=1 PerfScore 2.50
 G_M54012_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E      ; System.Collections.Immutable.ImmutableArray`1[int]
        call     CORINFO_HELP_NEWSFAST
@@ -32,26 +29,21 @@ G_M54012_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; gcr arg pop 0
        mov      rsi, rax
        ; gcrRegs +[rsi]
-       lea      rcx, bword ptr [rsi+0x08]
+       mov      rcx, gword ptr [rbx+0x18]
+       ; gcrRegs +[rcx]
+       cmp      byte  ptr [rcx], cl
+       add      rcx, 80
+       ; gcrRegs -[rcx]
        ; byrRegs +[rcx]
-       mov      bword ptr [rsp+0x20], rcx
-       mov      r8, gword ptr [rbx+0x18]
-       ; gcrRegs +[r8]
-       cmp      byte  ptr [r8], r8b
-       add      r8, 80
-       ; gcrRegs -[r8]
-       ; byrRegs +[r8]
-       mov      rcx, r8
        mov      r8, gword ptr [rbx+0x08]
        ; gcrRegs +[r8]
-       ; byrRegs -[r8]
        xor      rdx, rdx
        ; gcrRegs +[rdx]
        call     [<unknown method>]
        ; gcrRegs -[rdx rbx r8]
        ; byrRegs -[rcx]
        ; gcr arg pop 0
-       mov      rcx, bword ptr [rsp+0x20]
+       lea      rcx, bword ptr [rsi+0x08]
        ; byrRegs +[rcx]
        mov      rdx, rax
        ; gcrRegs +[rdx]
@@ -60,7 +52,7 @@ G_M54012_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        ; byrRegs -[rcx]
        mov      rax, rsi
        ; gcrRegs +[rax]
-                       ;; size=69 bbWeight=1 PerfScore 16.25
+                       ;; size=55 bbWeight=1 PerfScore 14.00
 G_M54012_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
@@ -68,7 +60,7 @@ G_M54012_IG03:        ; bbWeight=1, epilog, nogc, extend
        ret      
                        ;; size=7 bbWeight=1 PerfScore 2.25
 
-; Total bytes of code 92, prolog size 13, PerfScore 22.25, instruction count 26, allocated bytes for code 92 (MethodHash=75bf2d03) for method System.Collections.Immutable.Tests.ImmutableArrayTest+<>c__DisplayClass128_1:<RemoveRangeEnumerableInvalid>b__20():System.Object:this (FullOpts)
+; Total bytes of code 71, prolog size 6, PerfScore 18.75, instruction count 21, allocated bytes for code 71 (MethodHash=75bf2d03) for method System.Collections.Immutable.Tests.ImmutableArrayTest+<>c__DisplayClass128_1:<RemoveRangeEnumerableInvalid>b__20():System.Object:this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-30 (-16.95%) : 24577.dasm - System.Security.Cryptography.SP800108HmacCounterKdf:.ctor(ubyte[],System.Security.Cryptography.HashAlgorithmName):this (FullOpts)

@@ -18,30 +18,27 @@
 ;  V07 tmp4         [V07,T02] (  3,  3.00)     ref  ->  rdi         single-def "field V02._name (fldOffset=0x0)" P-INDEP
 ;* V08 tmp5         [V08    ] (  0,  0   )   byref  ->  zero-ref    "field V04._reference (fldOffset=0x0)" P-INDEP
 ;* V09 tmp6         [V09    ] (  0,  0   )     int  ->  zero-ref    "field V04._length (fldOffset=0x8)" P-INDEP
-;  V10 tmp7         [V10,T03] (  2,  2.00)   byref  ->  [rsp+0x20]  spill-single-def "field V06._reference (fldOffset=0x0)" P-INDEP
+;  V10 tmp7         [V10,T03] (  2,  2.00)   byref  ->  rcx         single-def "field V06._reference (fldOffset=0x0)" P-INDEP
 ;  V11 tmp8         [V11,T04] (  2,  2.00)     int  ->  rdx         "field V06._length (fldOffset=0x8)" P-INDEP
-;  V12 tmp9         [V12    ] (  3,  6.00)  struct (16) [rsp+0x28]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ubyte]>
+;  V12 tmp9         [V12    ] (  3,  6.00)  struct (16) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ubyte]>
 ;  V13 tmp10        [V13,T06] (  2,  0   )     ref  ->  rdx         single-def "argument with side effect"
-;  TEMP_01                                   byref  ->  [rsp+0x38]
 ;
-; Lcl frame size = 64
+; Lcl frame size = 48
 
 G_M45870_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 64
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqu  xmmword ptr [rsp+0x28], xmm4
+       sub      rsp, 48
        xor      eax, eax
-       mov      qword ptr [rsp+0x38], rax
+       mov      qword ptr [rsp+0x20], rax
        mov      rsi, rcx
        ; gcrRegs +[rsi]
        mov      rbx, rdx
        ; gcrRegs +[rbx]
        mov      rdi, r8
        ; gcrRegs +[rdi]
-                       ;; size=33 bbWeight=1 PerfScore 7.58
+                       ;; size=23 bbWeight=1 PerfScore 5.25
 G_M45870_IG02:        ; bbWeight=1, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        test     rbx, rbx
        je       SHORT G_M45870_IG05
@@ -54,35 +51,27 @@ G_M45870_IG03:        ; bbWeight=1.00, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
        ; gcr arg pop 0
        lea      rcx, bword ptr [rbx+0x10]
        ; byrRegs +[rcx]
-       mov      bword ptr [rsp+0x20], rcx
-       ; GC ptr vars +{V10}
        mov      edx, dword ptr [rbx+0x08]
-       lea      rcx, bword ptr [rsi+0x08]
-       mov      bword ptr [rsp+0x38], rcx
-       mov      rax, bword ptr [rsp+0x20]
-       ; byrRegs +[rax]
-       mov      bword ptr [rsp+0x28], rax
-       mov      dword ptr [rsp+0x30], edx
-       lea      rcx, [rsp+0x28]
+       mov      bword ptr [rsp+0x20], rcx
+       mov      dword ptr [rsp+0x28], edx
+       lea      rcx, [rsp+0x20]
        ; byrRegs -[rcx]
        mov      rdx, rdi
        ; gcrRegs +[rdx]
-       ; GC ptr vars -{V10}
        call     [System.Security.Cryptography.SP800108HmacCounterKdf:CreateImplementation(System.ReadOnlySpan`1[ubyte],System.Security.Cryptography.HashAlgorithmName):System.Security.Cryptography.SP800108HmacCounterKdfImplementationBase]
-       ; gcrRegs -[rdx rbx rsi rdi] +[rax]
-       ; byrRegs -[rax]
+       ; gcrRegs -[rdx rbx rdi] +[rax]
        ; gcr arg pop 0
-       mov      rcx, bword ptr [rsp+0x38]
+       lea      rcx, bword ptr [rsi+0x08]
        ; byrRegs +[rcx]
        mov      rdx, rax
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rax rdx]
+       ; gcrRegs -[rax rdx rsi]
        ; byrRegs -[rcx]
        nop      
-                       ;; size=72 bbWeight=1.00 PerfScore 17.50
+                       ;; size=52 bbWeight=1.00 PerfScore 13.50
 G_M45870_IG04:        ; bbWeight=1.00, epilog, nogc, extend
-       add      rsp, 64
+       add      rsp, 48
        pop      rbx
        pop      rsi
        pop      rdi
@@ -114,7 +103,7 @@ G_M45870_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
                        ;; size=59 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 177, prolog size 24, PerfScore 29.08, instruction count 47, allocated bytes for code 177 (MethodHash=aec84cd1) for method System.Security.Cryptography.SP800108HmacCounterKdf:.ctor(ubyte[],System.Security.Cryptography.HashAlgorithmName):this (FullOpts)
+; Total bytes of code 147, prolog size 14, PerfScore 22.75, instruction count 41, allocated bytes for code 147 (MethodHash=aec84cd1) for method System.Security.Cryptography.SP800108HmacCounterKdf:.ctor(ubyte[],System.Security.Cryptography.HashAlgorithmName):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -127,7 +116,7 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
+    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)

-20 (-16.13%) : 233625.dasm - System.Security.Cryptography.AesCcm:.ctor(ubyte[]):this (FullOpts)

@@ -17,27 +17,24 @@
 ;* V06 tmp4         [V06    ] (  0,  0   )     int  ->  zero-ref    "field V03._length (fldOffset=0x8)" P-INDEP
 ;  V07 tmp5         [V07,T04] (  2,  2.00)   byref  ->  rbx         single-def "field V04._reference (fldOffset=0x0)" P-INDEP
 ;  V08 tmp6         [V08,T05] (  2,  2.00)     int  ->  rdi         "field V04._length (fldOffset=0x8)" P-INDEP
-;  V09 tmp7         [V09    ] (  3,  6.00)  struct (16) [rsp+0x28]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ubyte]>
+;  V09 tmp7         [V09    ] (  3,  6.00)  struct (16) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ubyte]>
 ;  V10 tmp8         [V10,T02] (  2,  4.00)     ref  ->  rcx         single-def "argument with side effect"
 ;  V11 cse0         [V11,T03] (  3,  3.00)     int  ->  rdi         "CSE - aggressive"
-;  TEMP_01                                   byref  ->  [rsp+0x38]
 ;
-; Lcl frame size = 64
+; Lcl frame size = 48
 
 G_M20881_IG01:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rdi
        push     rsi
        push     rbx
-       sub      rsp, 64
-       vxorps   xmm4, xmm4, xmm4
-       vmovdqu  xmmword ptr [rsp+0x28], xmm4
+       sub      rsp, 48
        xor      eax, eax
-       mov      qword ptr [rsp+0x38], rax
+       mov      qword ptr [rsp+0x20], rax
        mov      rsi, rcx
        ; gcrRegs +[rsi]
        mov      rbx, rdx
        ; gcrRegs +[rbx]
-                       ;; size=30 bbWeight=1.00 PerfScore 7.33
+                       ;; size=20 bbWeight=1.00 PerfScore 5.00
 G_M20881_IG02:        ; bbWeight=1.00, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref
        mov      rcx, rbx
        ; gcrRegs +[rcx]
@@ -53,40 +50,36 @@ G_M20881_IG02:        ; bbWeight=1.00, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        add      rbx, 16
        ; gcrRegs -[rbx]
        ; byrRegs +[rbx]
-       lea      rcx, bword ptr [rsi+0x08]
-       ; byrRegs +[rcx]
-       mov      bword ptr [rsp+0x38], rcx
        call     [Internal.Cryptography.BCryptAeadHandleCache:get_AesCcm():Internal.NativeCrypto.SafeAlgorithmHandle]
-       ; gcrRegs -[rsi] +[rax]
-       ; byrRegs -[rcx]
+       ; gcrRegs +[rax]
        ; gcr arg pop 0
        mov      rcx, rax
        ; gcrRegs +[rcx]
-       mov      bword ptr [rsp+0x28], rbx
-       mov      dword ptr [rsp+0x30], edi
-       lea      rdx, [rsp+0x28]
+       mov      bword ptr [rsp+0x20], rbx
+       mov      dword ptr [rsp+0x28], edi
+       lea      rdx, [rsp+0x20]
        call     [<unknown method>]
        ; gcrRegs -[rcx]
        ; byrRegs -[rbx]
        ; gcr arg pop 0
-       mov      rcx, bword ptr [rsp+0x38]
+       lea      rcx, bword ptr [rsi+0x08]
        ; byrRegs +[rcx]
        mov      rdx, rax
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rax rdx]
+       ; gcrRegs -[rax rdx rsi]
        ; byrRegs -[rcx]
        nop      
-                       ;; size=86 bbWeight=1.00 PerfScore 21.75
+                       ;; size=76 bbWeight=1.00 PerfScore 19.75
 G_M20881_IG03:        ; bbWeight=1.00, epilog, nogc, extend
-       add      rsp, 64
+       add      rsp, 48
        pop      rbx
        pop      rsi
        pop      rdi
        ret      
                        ;; size=8 bbWeight=1.00 PerfScore 2.75
 
-; Total bytes of code 124, prolog size 24, PerfScore 31.83, instruction count 34, allocated bytes for code 124 (MethodHash=e6d7ae6e) for method System.Security.Cryptography.AesCcm:.ctor(ubyte[]):this (FullOpts)
+; Total bytes of code 104, prolog size 14, PerfScore 27.50, instruction count 30, allocated bytes for code 104 (MethodHash=e6d7ae6e) for method System.Security.Cryptography.AesCcm:.ctor(ubyte[]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -99,7 +92,7 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 7 * 8 + 8 = 64 = 0x40
+    CodeOffset: 0x07 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 5 * 8 + 8 = 48 = 0x30
     CodeOffset: 0x03 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)
     CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rsi (6)
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rdi (7)

+6 (+8.70%) : 275284.dasm - System.Text.Json.Tests.Utf8JsonWriterTests+<>c:b_2041(System.Text.Json.Utf8JsonWriter,System.ReadOnlySpan`1[ushort],System.Text.Json.JsonEncodedText):this (FullOpts)

@@ -9,8 +9,8 @@
 ; Final local variable assignments
 ;
 ;* V00 this         [V00    ] (  0,  0   )     ref  ->  zero-ref    this class-hnd single-def <System.Text.Json.Tests.Utf8JsonWriterTests+<>c>
-;  V01 arg1         [V01,T02] (  4,  4   )     ref  ->  rdx         class-hnd single-def <System.Text.Json.Utf8JsonWriter>
-;  V02 arg2         [V02,T00] (  3,  6   )   byref  ->   r8         single-def
+;  V01 arg1         [V01,T02] (  4,  4   )     ref  ->  rax         class-hnd single-def <System.Text.Json.Utf8JsonWriter>
+;  V02 arg2         [V02,T00] (  3,  6   )   byref  ->  rcx         single-def
 ;  V03 arg3         [V03,T01] (  3,  6   )   byref  ->   r9         single-def
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V05 tmp1         [V05    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.Text.Json.JsonEncodedText>
@@ -21,17 +21,15 @@
 ;* V10 tmp6         [V10    ] (  0,  0   )     int  ->  zero-ref    "field V02._length (fldOffset=0x8)" P-INDEP
 ;* V11 tmp7         [V11    ] (  0,  0   )     ref  ->  zero-ref    "field V03._utf8Value (fldOffset=0x0)" P-INDEP
 ;* V12 tmp8         [V12    ] (  0,  0   )     ref  ->  zero-ref    "field V03._value (fldOffset=0x8)" P-INDEP
-;  V13 tmp9         [V13,T05] (  4,  2.98)     ref  ->  rcx         single-def "field V05._utf8Value (fldOffset=0x0)" P-INDEP
+;  V13 tmp9         [V13,T03] (  4,  2.98)     ref  ->   r8         single-def "field V05._utf8Value (fldOffset=0x0)" P-INDEP
 ;* V14 tmp10        [V14    ] (  0,  0   )     ref  ->  zero-ref    "field V05._value (fldOffset=0x8)" P-INDEP
 ;* V15 tmp11        [V15    ] (  0,  0   )   byref  ->  zero-ref    "field V06._reference (fldOffset=0x0)" P-INDEP
 ;* V16 tmp12        [V16    ] (  0,  0   )     int  ->  zero-ref    "field V06._length (fldOffset=0x8)" P-INDEP
-;  V17 tmp13        [V17,T06] (  3,  1.50)   byref  ->  rax         "field V08._reference (fldOffset=0x0)" P-INDEP
-;  V18 tmp14        [V18,T07] (  3,  1.50)     int  ->  r10         "field V08._length (fldOffset=0x8)" P-INDEP
+;  V17 tmp13        [V17,T04] (  3,  1.50)   byref  ->  rdx         "field V08._reference (fldOffset=0x0)" P-INDEP
+;  V18 tmp14        [V18,T05] (  3,  1.50)     int  ->  r10         "field V08._length (fldOffset=0x8)" P-INDEP
 ;* V19 tmp15        [V19    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.ReadOnlySpan`1[ushort]>
 ;* V20 tmp16        [V20    ] (  0,  0   )  struct (16) zero-ref    "Promoted implicit byref" <System.Text.Json.JsonEncodedText>
 ;  V21 tmp17        [V21    ] (  3,  6   )  struct (16) [rsp+0x28]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ubyte]>
-;  V22 tmp18        [V22,T03] (  2,  4   )     ref  ->  rcx         single-def "argument with side effect"
-;  V23 tmp19        [V23,T04] (  2,  4   )   byref  ->  rdx         single-def "argument with side effect"
 ;
 ; Lcl frame size = 56
 
@@ -39,36 +37,37 @@ G_M55533_IG01:        ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        sub      rsp, 56
        xor      eax, eax
        mov      qword ptr [rsp+0x28], rax
-                       ;; size=11 bbWeight=1.00 PerfScore 1.50
-G_M55533_IG02:        ; bbWeight=1.00, gcrefRegs=0004 {rdx}, byrefRegs=0300 {r8 r9}, byref, isz
-       ; gcrRegs +[rdx]
-       ; byrRegs +[r8-r9]
-       mov      rcx, gword ptr [r9]
-       ; gcrRegs +[rcx]
-       cmp      byte  ptr [rdx], dl
-       test     rcx, rcx
+       mov      rax, rdx
+       ; gcrRegs +[rax]
+       mov      rcx, r8
+       ; byrRegs +[rcx]
+                       ;; size=17 bbWeight=1.00 PerfScore 2.00
+G_M55533_IG02:        ; bbWeight=1.00, gcrefRegs=0001 {rax}, byrefRegs=0202 {rcx r9}, byref, isz
+       ; byrRegs +[r9]
+       mov      r8, gword ptr [r9]
+       ; gcrRegs +[r8]
+       cmp      byte  ptr [rax], al
+       test     r8, r8
        je       SHORT G_M55533_IG06
                        ;; size=10 bbWeight=1.00 PerfScore 6.25
-G_M55533_IG03:        ; bbWeight=0.49, gcrefRegs=0006 {rcx rdx}, byrefRegs=0100 {r8}, byref
+G_M55533_IG03:        ; bbWeight=0.49, gcrefRegs=0101 {rax r8}, byrefRegs=0002 {rcx}, byref
        ; byrRegs -[r9]
-       lea      rax, bword ptr [rcx+0x10]
-       ; byrRegs +[rax]
-       mov      r10d, dword ptr [rcx+0x08]
-                       ;; size=8 bbWeight=0.49 PerfScore 1.23
-G_M55533_IG04:        ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0101 {rax r8}, byref
-       ; gcrRegs -[rcx]
-       mov      rcx, rdx
-       ; gcrRegs +[rcx]
-       mov      rdx, r8
-       ; gcrRegs -[rdx]
+       lea      rdx, bword ptr [r8+0x10]
        ; byrRegs +[rdx]
-       mov      bword ptr [rsp+0x28], rax
+       mov      r10d, dword ptr [r8+0x08]
+                       ;; size=8 bbWeight=0.49 PerfScore 1.23
+G_M55533_IG04:        ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0006 {rcx rdx}, byref
+       ; gcrRegs -[r8]
+       mov      bword ptr [rsp+0x28], rdx
        mov      dword ptr [rsp+0x30], r10d
        lea      r8, [rsp+0x28]
-       ; byrRegs -[r8]
+       mov      rdx, rcx
+       mov      rcx, rax
+       ; gcrRegs +[rcx]
+       ; byrRegs -[rcx]
        call     [System.Text.Json.Utf8JsonWriter:WriteStringHelperEscapeProperty(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ubyte]):this]
-       ; gcrRegs -[rcx]
-       ; byrRegs -[rax rdx]
+       ; gcrRegs -[rax rcx]
+       ; byrRegs -[rdx]
        ; gcr arg pop 0
        nop      
                        ;; size=28 bbWeight=1 PerfScore 6.25
@@ -76,16 +75,16 @@ G_M55533_IG05:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 56
        ret      
                        ;; size=5 bbWeight=1 PerfScore 1.25
-G_M55533_IG06:        ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=0004 {rdx}, byrefRegs=0100 {r8}, gcvars, byref, isz
-       ; gcrRegs +[rdx]
-       ; byrRegs +[r8]
-       xor      rax, rax
-       ; byrRegs +[rax]
+G_M55533_IG06:        ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=0001 {rax}, byrefRegs=0002 {rcx}, gcvars, byref, isz
+       ; gcrRegs +[rax]
+       ; byrRegs +[rcx]
+       xor      rdx, rdx
+       ; byrRegs +[rdx]
        xor      r10d, r10d
        jmp      SHORT G_M55533_IG04
                        ;; size=7 bbWeight=0.01 PerfScore 0.02
 
-; Total bytes of code 69, prolog size 11, PerfScore 16.50, instruction count 21, allocated bytes for code 69 (MethodHash=db042712) for method System.Text.Json.Tests.Utf8JsonWriterTests+<>c:<WriteString_NullPropertyName_JsonEncodedText>b__204_1(System.Text.Json.Utf8JsonWriter,System.ReadOnlySpan`1[ushort],System.Text.Json.JsonEncodedText):this (FullOpts)
+; Total bytes of code 75, prolog size 11, PerfScore 17.00, instruction count 23, allocated bytes for code 75 (MethodHash=db042712) for method System.Text.Json.Tests.Utf8JsonWriterTests+<>c:<WriteString_NullPropertyName_JsonEncodedText>b__204_1(System.Text.Json.Utf8JsonWriter,System.ReadOnlySpan`1[ushort],System.Text.Json.JsonEncodedText):this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+25 (+9.62%) : 171130.dasm - Tests.Collections.IListTest`1[System.__Canon]:SetItemNotUnique():this (FullOpts)

@@ -8,26 +8,23 @@
 ; 3 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T07] (  7,  5   )     ref  ->  rbx         this class-hnd single-def <Tests.Collections.IListTest`1[System.__Canon]>
-;  V01 loc0         [V01,T08] (  6,  6.01)     ref  ->  rsi         class-hnd single-def <System.Object[]>
-;  V02 loc1         [V02,T05] (  3,  5   )     ref  ->  rbx         class-hnd single-def <System.Collections.IList>
-;  V03 loc2         [V03,T02] (  5, 16.50)     int  ->  rdi        
+;  V00 this         [V00,T04] (  7,  5   )     ref  ->  rbx         this class-hnd single-def <Tests.Collections.IListTest`1[System.__Canon]>
+;  V01 loc0         [V01,T05] (  6,  6.01)     ref  ->  rsi         class-hnd single-def <System.Object[]>
+;  V02 loc1         [V02,T06] (  3,  5   )     ref  ->  rbx         class-hnd single-def <System.Collections.IList>
+;  V03 loc2         [V03,T01] (  6, 20.50)     int  ->  rdi        
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05,T12] (  3,  0.04)    long  ->  rbp         "Inlining Arg"
-;  V06 tmp2         [V06,T14] (  2,  0.03)   byref  ->  rdi         single-def "Inlining Arg"
+;  V05 tmp1         [V05,T10] (  3,  0.04)    long  ->  rbp         "Inlining Arg"
+;  V06 tmp2         [V06,T11] (  2,  0.03)   byref  ->  rdi         single-def "Inlining Arg"
 ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V08 tmp4         [V08    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V09 tmp5         [V09,T09] (  7,  0.27)   byref  ->  rdi         "Inline stloc first use temp"
-;  V10 tmp6         [V10,T10] (  6,  0.26)   byref  ->  rbp         "Inline stloc first use temp"
-;  V11 tmp7         [V11,T11] (  2,  0.10)     ref  ->  r14         class-hnd "Inline stloc first use temp" <System.Object>
+;  V09 tmp5         [V09,T07] (  7,  0.27)   byref  ->  rdi         "Inline stloc first use temp"
+;  V10 tmp6         [V10,T08] (  6,  0.26)   byref  ->  rbp         "Inline stloc first use temp"
+;  V11 tmp7         [V11,T09] (  2,  0.10)     ref  ->  r14         class-hnd "Inline stloc first use temp" <System.Object>
 ;* V12 tmp8         [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V13 tmp9         [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V14 tmp10        [V14,T00] (  3, 24   )     int  ->  rcx         "index expr"
-;* V15 tmp11        [V15,T06] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V16 tmp12        [V16,T03] (  2, 16   )     ref  ->   r8         "argument with side effect"
-;  V17 tmp13        [V17,T01] (  3, 24   )     int  ->  rdx         "argument with side effect"
-;  V18 cse0         [V18,T04] (  7, 13.51)     int  ->  rbp         "CSE - aggressive"
-;  V19 cse1         [V19,T13] (  5,  0.03)     ref  ->  r14         "CSE - conservative"
+;  V14 tmp10        [V14,T00] (  3, 24   )     int  ->   r8         "index expr"
+;  V15 tmp11        [V15,T02] (  2, 16   )     ref  ->   r8         "argument with side effect"
+;  V16 cse0         [V16,T03] (  7, 13.51)     int  ->  rbp         "CSE - aggressive"
 ;
 ; Lcl frame size = 32
 
@@ -79,16 +76,16 @@ G_M15936_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
                        ;; size=58 bbWeight=0.50 PerfScore 9.75
 G_M15936_IG04:        ; bbWeight=4, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
-       mov      edx, edi
-       mov      ecx, ebp
-       sub      ecx, edx
-       dec      ecx
-       cmp      ecx, ebp
+       mov      r8d, ebp
+       sub      r8d, edi
+       dec      r8d
+       cmp      r8d, ebp
        jae      G_M15936_IG12
-       mov      r8, gword ptr [rsi+8*rcx+0x10]
+       mov      r8, gword ptr [rsi+8*r8+0x10]
        ; gcrRegs +[r8]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
+       mov      edx, edi
        mov      r11, 0xD1FFAB1E      ; code for <unknown method>
        call     [r11]<unknown method>
        ; gcrRegs -[rcx r8]
@@ -96,7 +93,7 @@ G_M15936_IG04:        ; bbWeight=4, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        inc      edi
        cmp      ebp, edi
        jg       SHORT G_M15936_IG04
-                       ;; size=43 bbWeight=4 PerfScore 37.00
+                       ;; size=47 bbWeight=4 PerfScore 37.00
 G_M15936_IG05:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        cmp      ebp, 1
        jg       SHORT G_M15936_IG09
@@ -134,23 +131,21 @@ G_M15936_IG09:        ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=004
        mov      ebp, ebp
        cmp      rbp, 1
        ja       SHORT G_M15936_IG10
-       mov      r14, 0xD1FFAB1E
-       ; gcrRegs +[r14]
-       mov      rcx, r14
+       mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
-       mov      rdx, r14
+       mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-       mov      rcx, r14
+       mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
-       mov      rdx, r14
+       mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
        call     [<unknown method>]
-       ; gcrRegs -[rcx rdx r14]
+       ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-                       ;; size=46 bbWeight=0.01 PerfScore 0.06
+                       ;; size=64 bbWeight=0.01 PerfScore 0.06
 G_M15936_IG10:        ; bbWeight=0.01, gcrefRegs=0048 {rbx rsi}, byrefRegs=0080 {rdi}, byref
        lea      rbp, bword ptr [rdi+8*rbp-0x08]
        ; byrRegs +[rbp]
@@ -176,8 +171,8 @@ G_M15936_IG11:        ; bbWeight=0.05, gcrefRegs=0048 {rbx rsi}, byrefRegs=00A0
        add      rbp, -8
        cmp      rdi, rbp
        jb       SHORT G_M15936_IG11
-       jmp      SHORT G_M15936_IG06
-                       ;; size=41 bbWeight=0.05 PerfScore 0.54
+       jmp      G_M15936_IG06
+                       ;; size=44 bbWeight=0.05 PerfScore 0.54
 G_M15936_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx rsi]
        ; byrRegs -[rbp rdi]
@@ -186,7 +181,7 @@ G_M15936_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 260, prolog size 13, PerfScore 61.98, instruction count 84, allocated bytes for code 260 (MethodHash=f37bc1bf) for method Tests.Collections.IListTest`1[System.__Canon]:SetItemNotUnique():this (FullOpts)
+; Total bytes of code 285, prolog size 13, PerfScore 61.97, instruction count 83, allocated bytes for code 285 (MethodHash=f37bc1bf) for method Tests.Collections.IListTest`1[System.__Canon]:SetItemNotUnique():this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+25 (+9.62%) : 171574.dasm - Tests.Collections.IListTest`1[int]:SetItemNotUnique():this (FullOpts)

@@ -8,26 +8,23 @@
 ; 3 inlinees with PGO data; 4 single block inlinees; 2 inlinees without PGO data
 ; Final local variable assignments
 ;
-;  V00 this         [V00,T07] (  7,  5   )     ref  ->  rbx         this class-hnd single-def <Tests.Collections.IListTest`1[int]>
-;  V01 loc0         [V01,T08] (  6,  6.01)     ref  ->  rsi         class-hnd single-def <System.Object[]>
-;  V02 loc1         [V02,T05] (  3,  5   )     ref  ->  rbx         class-hnd single-def <System.Collections.IList>
-;  V03 loc2         [V03,T02] (  5, 16.50)     int  ->  rdi        
+;  V00 this         [V00,T04] (  7,  5   )     ref  ->  rbx         this class-hnd single-def <Tests.Collections.IListTest`1[int]>
+;  V01 loc0         [V01,T05] (  6,  6.01)     ref  ->  rsi         class-hnd single-def <System.Object[]>
+;  V02 loc1         [V02,T06] (  3,  5   )     ref  ->  rbx         class-hnd single-def <System.Collections.IList>
+;  V03 loc2         [V03,T01] (  6, 20.50)     int  ->  rdi        
 ;  V04 OutArgs      [V04    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V05 tmp1         [V05,T12] (  3,  0.04)    long  ->  rbp         "Inlining Arg"
-;  V06 tmp2         [V06,T14] (  2,  0.03)   byref  ->  rdi         single-def "Inlining Arg"
+;  V05 tmp1         [V05,T10] (  3,  0.04)    long  ->  rbp         "Inlining Arg"
+;  V06 tmp2         [V06,T11] (  2,  0.03)   byref  ->  rdi         single-def "Inlining Arg"
 ;* V07 tmp3         [V07    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V08 tmp4         [V08    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V09 tmp5         [V09,T09] (  7,  0.27)   byref  ->  rdi         "Inline stloc first use temp"
-;  V10 tmp6         [V10,T10] (  6,  0.26)   byref  ->  rbp         "Inline stloc first use temp"
-;  V11 tmp7         [V11,T11] (  2,  0.10)     ref  ->  r14         class-hnd "Inline stloc first use temp" <System.Object>
+;  V09 tmp5         [V09,T07] (  7,  0.27)   byref  ->  rdi         "Inline stloc first use temp"
+;  V10 tmp6         [V10,T08] (  6,  0.26)   byref  ->  rbp         "Inline stloc first use temp"
+;  V11 tmp7         [V11,T09] (  2,  0.10)     ref  ->  r14         class-hnd "Inline stloc first use temp" <System.Object>
 ;* V12 tmp8         [V12    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V13 tmp9         [V13    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V14 tmp10        [V14,T00] (  3, 24   )     int  ->  rcx         "index expr"
-;* V15 tmp11        [V15,T06] (  0,  0   )     ref  ->  zero-ref    "argument with side effect"
-;  V16 tmp12        [V16,T03] (  2, 16   )     ref  ->   r8         "argument with side effect"
-;  V17 tmp13        [V17,T01] (  3, 24   )     int  ->  rdx         "argument with side effect"
-;  V18 cse0         [V18,T04] (  7, 13.51)     int  ->  rbp         "CSE - aggressive"
-;  V19 cse1         [V19,T13] (  5,  0.03)     ref  ->  r14         "CSE - conservative"
+;  V14 tmp10        [V14,T00] (  3, 24   )     int  ->   r8         "index expr"
+;  V15 tmp11        [V15,T02] (  2, 16   )     ref  ->   r8         "argument with side effect"
+;  V16 cse0         [V16,T03] (  7, 13.51)     int  ->  rbp         "CSE - aggressive"
 ;
 ; Lcl frame size = 32
 
@@ -79,16 +76,16 @@ G_M59221_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
                        ;; size=58 bbWeight=0.50 PerfScore 9.75
 G_M59221_IG04:        ; bbWeight=4, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rax]
-       mov      edx, edi
-       mov      ecx, ebp
-       sub      ecx, edx
-       dec      ecx
-       cmp      ecx, ebp
+       mov      r8d, ebp
+       sub      r8d, edi
+       dec      r8d
+       cmp      r8d, ebp
        jae      G_M59221_IG12
-       mov      r8, gword ptr [rsi+8*rcx+0x10]
+       mov      r8, gword ptr [rsi+8*r8+0x10]
        ; gcrRegs +[r8]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
+       mov      edx, edi
        mov      r11, 0xD1FFAB1E      ; code for <unknown method>
        call     [r11]<unknown method>
        ; gcrRegs -[rcx r8]
@@ -96,7 +93,7 @@ G_M59221_IG04:        ; bbWeight=4, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        inc      edi
        cmp      ebp, edi
        jg       SHORT G_M59221_IG04
-                       ;; size=43 bbWeight=4 PerfScore 37.00
+                       ;; size=47 bbWeight=4 PerfScore 37.00
 G_M59221_IG05:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        cmp      ebp, 1
        jg       SHORT G_M59221_IG09
@@ -134,23 +131,21 @@ G_M59221_IG09:        ; bbWeight=0.01, gcVars=0000000000000000 {}, gcrefRegs=004
        mov      ebp, ebp
        cmp      rbp, 1
        ja       SHORT G_M59221_IG10
-       mov      r14, 0xD1FFAB1E
-       ; gcrRegs +[r14]
-       mov      rcx, r14
+       mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
-       mov      rdx, r14
+       mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
        call     [<unknown method>]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-       mov      rcx, r14
+       mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
-       mov      rdx, r14
+       mov      rdx, 0xD1FFAB1E
        ; gcrRegs +[rdx]
        call     [<unknown method>]
-       ; gcrRegs -[rcx rdx r14]
+       ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-                       ;; size=46 bbWeight=0.01 PerfScore 0.06
+                       ;; size=64 bbWeight=0.01 PerfScore 0.06
 G_M59221_IG10:        ; bbWeight=0.01, gcrefRegs=0048 {rbx rsi}, byrefRegs=0080 {rdi}, byref
        lea      rbp, bword ptr [rdi+8*rbp-0x08]
        ; byrRegs +[rbp]
@@ -176,8 +171,8 @@ G_M59221_IG11:        ; bbWeight=0.05, gcrefRegs=0048 {rbx rsi}, byrefRegs=00A0
        add      rbp, -8
        cmp      rdi, rbp
        jb       SHORT G_M59221_IG11
-       jmp      SHORT G_M59221_IG06
-                       ;; size=41 bbWeight=0.05 PerfScore 0.54
+       jmp      G_M59221_IG06
+                       ;; size=44 bbWeight=0.05 PerfScore 0.54
 G_M59221_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx rsi]
        ; byrRegs -[rbp rdi]
@@ -186,7 +181,7 @@ G_M59221_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 260, prolog size 13, PerfScore 61.98, instruction count 84, allocated bytes for code 260 (MethodHash=0f6318aa) for method Tests.Collections.IListTest`1[int]:SetItemNotUnique():this (FullOpts)
+; Total bytes of code 285, prolog size 13, PerfScore 61.97, instruction count 83, allocated bytes for code 285 (MethodHash=0f6318aa) for method Tests.Collections.IListTest`1[int]:SetItemNotUnique():this (FullOpts)
 ; ============================================================
 
 Unwind Info:

realworld.run.windows.x64.checked.mch

-8 (-16.00%) : 16801.dasm - Microsoft.ML.Trainers.SdcaTrainerBase3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]:ApplyAt(long,Microsoft.ML.Trainers.SdcaTrainerBase3+Visitor[System.Canon,System.Canon,System.__Canon]):this (FullOpts)

@@ -9,38 +9,32 @@
 ;
 ;  V00 this         [V00,T03] (  3,  3   )     ref  ->  rcx         this class-hnd single-def <Microsoft.ML.Trainers.SdcaTrainerBase`3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]>
 ;  V01 arg1         [V01,T00] (  5,  5   )    long  ->  rdx         single-def
-;  V02 arg2         [V02,T04] (  3,  3   )     ref  ->   r8         class-hnd single-def <Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]>
+;  V02 arg2         [V02,T01] (  4,  4   )     ref  ->  rax         class-hnd single-def <Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]>
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V04 tmp1         [V04,T01] (  3,  6   )     ref  ->  rcx         single-def "arr expr"
-;  V05 tmp2         [V05,T02] (  3,  6   )     ref  ->  rax         single-def "argument with side effect"
-;  V06 tmp3         [V06,T06] (  2,  4   )    long  ->   r8         "argument with side effect"
-;  V07 tmp4         [V07,T05] (  2,  4   )   byref  ->  rcx         single-def "argument with side effect"
+;  V04 tmp1         [V04,T02] (  3,  6   )     ref  ->   r8         single-def "arr expr"
+;  V05 tmp2         [V05,T04] (  2,  4   )   byref  ->   r8         single-def "argument with side effect"
 ;
 ; Lcl frame size = 40
 
 G_M22309_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        sub      rsp, 40
-                       ;; size=4 bbWeight=1 PerfScore 0.25
-G_M22309_IG02:        ; bbWeight=1, gcrefRegs=0102 {rcx r8}, byrefRegs=0000 {}, byref, isz
-       ; gcrRegs +[rcx r8]
        mov      rax, r8
        ; gcrRegs +[rax]
-       mov      r8, rdx
-       ; gcrRegs -[r8]
-       mov      rcx, gword ptr [rcx+0x08]
-       cmp      edx, dword ptr [rcx+0x08]
+                       ;; size=7 bbWeight=1 PerfScore 0.50
+G_M22309_IG02:        ; bbWeight=1, gcrefRegs=0003 {rax rcx}, byrefRegs=0000 {}, byref, isz
+       ; gcrRegs +[rcx]
+       mov      r8, gword ptr [rcx+0x08]
+       ; gcrRegs +[r8]
+       cmp      edx, dword ptr [r8+0x08]
        jae      SHORT G_M22309_IG04
-       mov      edx, edx
-       lea      rcx, bword ptr [rcx+4*rdx+0x10]
+       mov      ecx, edx
        ; gcrRegs -[rcx]
-       ; byrRegs +[rcx]
-       mov      rdx, r8
-       mov      r8, rcx
+       lea      r8, bword ptr [r8+4*rcx+0x10]
+       ; gcrRegs -[r8]
        ; byrRegs +[r8]
        mov      rcx, gword ptr [rax+0x08]
        ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
-                       ;; size=32 bbWeight=1 PerfScore 10.25
+                       ;; size=21 bbWeight=1 PerfScore 9.25
 G_M22309_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 40
        tail.jmp [rax+0x18]<unknown method>
@@ -53,7 +47,7 @@ G_M22309_IG04:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 50, prolog size 4, PerfScore 12.75, instruction count 15, allocated bytes for code 50 (MethodHash=cc0aa8da) for method Microsoft.ML.Trainers.SdcaTrainerBase`3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]:ApplyAt(long,Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]):this (FullOpts)
+; Total bytes of code 42, prolog size 7, PerfScore 12.00, instruction count 12, allocated bytes for code 42 (MethodHash=cc0aa8da) for method Microsoft.ML.Trainers.SdcaTrainerBase`3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]:ApplyAt(long,Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-17 (-14.05%) : 16617.dasm - Microsoft.ML.Transforms.Text.TextFeaturizingEstimator+Transformer:.ctor(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Data.TransformerChain`1[Microsoft.ML.ITransformer]):this (FullOpts)

@@ -17,14 +17,12 @@
 ;* V06 tmp1         [V06    ] (  0,  0   )  struct ( 8) zero-ref    "impAppendStmt" <System.Nullable`1[int]>
 ;* V07 tmp2         [V07    ] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V03.hasValue (fldOffset=0x0)" P-INDEP
 ;* V08 tmp3         [V08    ] (  0,  0   )     int  ->  zero-ref    single-def "field V03.value (fldOffset=0x4)" P-INDEP
-;* V09 tmp4         [V09,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V04.hasValue (fldOffset=0x0)" P-INDEP
-;* V10 tmp5         [V10,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V04.value (fldOffset=0x1)" P-INDEP
-;* V11 tmp6         [V11,T08] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V06.hasValue (fldOffset=0x0)" P-INDEP
-;* V12 tmp7         [V12,T09] (  0,  0   )     int  ->  zero-ref    single-def "field V06.value (fldOffset=0x4)" P-INDEP
-;  V13 tmp8         [V13,T01] (  3,  6   )  struct ( 8) [rsp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
-;  V14 tmp9         [V14,T02] (  3,  6   )  struct ( 8) [rsp+0x20]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[ubyte]>
-;  V15 tmp10        [V15,T05] (  2,  4   )     ref  ->  rdx         single-def "argument with side effect"
-;  TEMP_01                                   byref  ->  [rsp+0x30]
+;* V09 tmp4         [V09,T05] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V04.hasValue (fldOffset=0x0)" P-INDEP
+;* V10 tmp5         [V10,T06] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V04.value (fldOffset=0x1)" P-INDEP
+;* V11 tmp6         [V11,T07] (  0,  0   )   ubyte  ->  zero-ref    single-def "field V06.hasValue (fldOffset=0x0)" P-INDEP
+;* V12 tmp7         [V12,T08] (  0,  0   )     int  ->  zero-ref    single-def "field V06.value (fldOffset=0x4)" P-INDEP
+;  V13 tmp8         [V13,T01] (  3,  6   )  struct ( 8) [rsp+0x30]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
+;  V14 tmp9         [V14,T02] (  3,  6   )  struct ( 8) [rsp+0x28]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[ubyte]>
 ;
 ; Lcl frame size = 56
 
@@ -32,34 +30,28 @@ G_M25941_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rsi
        push     rbx
        sub      rsp, 56
-       xor      eax, eax
-       mov      qword ptr [rsp+0x30], rax
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      rsi, r8
        ; gcrRegs +[rsi]
-                       ;; size=19 bbWeight=1 PerfScore 4.00
+                       ;; size=12 bbWeight=1 PerfScore 2.75
 G_M25941_IG02:        ; bbWeight=1, gcrefRegs=004C {rdx rbx rsi}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rdx]
-       lea      rcx, bword ptr [rbx+0x08]
-       ; byrRegs +[rcx]
-       mov      bword ptr [rsp+0x30], rcx
-       mov      byte  ptr [rsp+0x28], 0
+       mov      byte  ptr [rsp+0x30], 0
        xor      r8d, r8d
-       mov      dword ptr [rsp+0x2C], r8d
-       mov      byte  ptr [rsp+0x20], 0
-       mov      byte  ptr [rsp+0x21], 0
+       mov      dword ptr [rsp+0x34], r8d
+       mov      byte  ptr [rsp+0x28], 0
+       mov      byte  ptr [rsp+0x29], 0
+       mov      r8, qword ptr [rsp+0x30]
+       movzx    r9, word  ptr [rsp+0x28]
        mov      rcx, rdx
        ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
-       mov      r8, qword ptr [rsp+0x28]
-       movzx    r9, word  ptr [rsp+0x20]
        mov      r11, 0xD1FFAB1E      ; code for <unknown method>
        mov      rdx, 0xD1FFAB1E
        call     [r11]<unknown method>
        ; gcrRegs -[rcx rdx] +[rax]
        ; gcr arg pop 0
-       mov      rcx, bword ptr [rsp+0x30]
+       lea      rcx, bword ptr [rbx+0x08]
        ; byrRegs +[rcx]
        mov      rdx, rax
        ; gcrRegs +[rdx]
@@ -74,7 +66,7 @@ G_M25941_IG02:        ; bbWeight=1, gcrefRegs=004C {rdx rbx rsi}, byrefRegs=0000
        ; gcrRegs -[rdx rbx rsi]
        ; byrRegs -[rcx]
        nop      
-                       ;; size=95 bbWeight=1 PerfScore 15.75
+                       ;; size=85 bbWeight=1 PerfScore 13.75
 G_M25941_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 56
        pop      rbx
@@ -82,7 +74,7 @@ G_M25941_IG03:        ; bbWeight=1, epilog, nogc, extend
        ret      
                        ;; size=7 bbWeight=1 PerfScore 2.25
 
-; Total bytes of code 121, prolog size 13, PerfScore 22.00, instruction count 31, allocated bytes for code 121 (MethodHash=3a149aaa) for method Microsoft.ML.Transforms.Text.TextFeaturizingEstimator+Transformer:.ctor(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Data.TransformerChain`1[Microsoft.ML.ITransformer]):this (FullOpts)
+; Total bytes of code 104, prolog size 6, PerfScore 18.75, instruction count 27, allocated bytes for code 104 (MethodHash=3a149aaa) for method Microsoft.ML.Transforms.Text.TextFeaturizingEstimator+Transformer:.ctor(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Data.TransformerChain`1[Microsoft.ML.ITransformer]):this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-17 (-12.50%) : 2463.dasm - FSharp.Compiler.Features+LanguageVersion:.ctor(System.String):this (FullOpts)

@@ -11,10 +11,8 @@
 ;  V00 this         [V00,T00] (  7,  7   )     ref  ->  rbx         this class-hnd single-def <FSharp.Compiler.Features+LanguageVersion>
 ;  V01 arg1         [V01,T01] (  3,  3   )     ref  ->  rsi         class-hnd single-def <System.String>
 ;  V02 OutArgs      [V02    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V03 tmp1         [V03    ] (  2,  4   )  struct (16) [rsp+0x20]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Decimal>
-;* V04 tmp2         [V04,T03] (  0,  0   )     ref  ->  zero-ref    single-def "argument with side effect"
-;  V05 cse0         [V05,T02] (  3,  3   )   byref  ->  rsi         "CSE - aggressive"
-;  TEMP_01                                   byref  ->  [rsp+0x30]
+;  V03 tmp1         [V03    ] (  2,  4   )  struct (16) [rsp+0x28]  do-not-enreg[XS] addr-exposed "by-value struct argument" <System.Decimal>
+;  V04 cse0         [V04,T02] (  3,  3   )   byref  ->  rsi         "CSE - aggressive"
 ;
 ; Lcl frame size = 56
 
@@ -23,13 +21,11 @@ G_M2526_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rbx
        sub      rsp, 56
        vzeroupper 
-       xor      eax, eax
-       mov      qword ptr [rsp+0x30], rax
        mov      rbx, rcx
        ; gcrRegs +[rbx]
        mov      rsi, rdx
        ; gcrRegs +[rsi]
-                       ;; size=22 bbWeight=1 PerfScore 5.00
+                       ;; size=15 bbWeight=1 PerfScore 3.75
 G_M2526_IG02:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        test     byte  ptr [(reloc)], 1      ; global ptr
        je       SHORT G_M2526_IG05
@@ -52,28 +48,24 @@ G_M2526_IG03:        ; bbWeight=1, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {},
        ; gcrRegs -[rdx]
        ; byrRegs -[rcx]
        ; gcr arg pop 0
-       lea      rcx, bword ptr [rbx+0x10]
-       ; byrRegs +[rcx]
-       mov      bword ptr [rsp+0x30], rcx
        vmovups  xmm0, xmmword ptr [rsi]
-       vmovups  xmmword ptr [rsp+0x20], xmm0
+       vmovups  xmmword ptr [rsp+0x28], xmm0
+       lea      rdx, [rsp+0x28]
        mov      rcx, rbx
        ; gcrRegs +[rcx]
-       ; byrRegs -[rcx]
-       lea      rdx, [rsp+0x20]
        call     [FSharp.Compiler.Features+LanguageVersion:versionToString(System.Decimal):System.String:this]
-       ; gcrRegs -[rcx rbx] +[rax]
+       ; gcrRegs -[rcx] +[rax]
        ; byrRegs -[rsi]
        ; gcr arg pop 0
-       mov      rcx, bword ptr [rsp+0x30]
+       lea      rcx, bword ptr [rbx+0x10]
        ; byrRegs +[rcx]
        mov      rdx, rax
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_ASSIGN_REF
-       ; gcrRegs -[rax rdx]
+       ; gcrRegs -[rax rdx rbx]
        ; byrRegs -[rcx]
        nop      
-                       ;; size=76 bbWeight=1 PerfScore 20.25
+                       ;; size=66 bbWeight=1 PerfScore 18.25
 G_M2526_IG04:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 56
        pop      rbx
@@ -89,7 +81,7 @@ G_M2526_IG05:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0048 {r
        jmp      SHORT G_M2526_IG03
                        ;; size=22 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 136, prolog size 16, PerfScore 31.50, instruction count 36, allocated bytes for code 136 (MethodHash=7f98f621) for method FSharp.Compiler.Features+LanguageVersion:.ctor(System.String):this (FullOpts)
+; Total bytes of code 119, prolog size 9, PerfScore 28.25, instruction count 32, allocated bytes for code 119 (MethodHash=7f98f621) for method FSharp.Compiler.Features+LanguageVersion:.ctor(System.String):this (FullOpts)
 ; ============================================================
 
 Unwind Info:

+31 (+5.79%) : 661.dasm - System.Number:FormatNumberushort (FullOpts)

@@ -9,18 +9,18 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] ( 13, 24   )   byref  ->  rbx         single-def
-;  V01 arg1         [V01,T09] (  4,  5   )   byref  ->  rdi         single-def
-;  V02 arg2         [V02,T10] (  3,  4   )     int  ->  rbp         single-def
+;  V01 arg1         [V01,T17] (  4,  5   )   byref  ->  rdi         single-def
+;  V02 arg2         [V02,T23] (  3,  4   )     int  ->  rbp         single-def
 ;  V03 arg3         [V03,T07] (  7, 10.50)     ref  ->  rsi         class-hnd single-def <System.Globalization.NumberFormatInfo>
 ;* V04 loc0         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd <System.String>
-;  V05 loc1         [V05,T08] (  4, 10   )     ref  ->  r14         class-hnd exact single-def <System.String>
+;  V05 loc1         [V05,T18] (  3,  6   )     ref  ->  r14         class-hnd exact single-def <System.String>
 ;  V06 loc2         [V06,T02] (  5, 17   )     int  ->  r15        
 ;  V07 loc3         [V07,T06] (  5, 14   )  ushort  ->  rdx        
 ;  V08 OutArgs      [V08    ] (  1,  1   )  struct (48) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V09 tmp1         [V09    ] (  0,  0   )     int  ->  zero-ref   
 ;* V10 tmp2         [V10    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <<unknown class>>
-;  V11 tmp3         [V11,T56] (  3,  2   )     ref  ->  r14        
-;  V12 tmp4         [V12,T13] (  2,  8   )     ref  ->  r13         class-hnd "impAppendStmt" <<unknown class>>
+;  V11 tmp3         [V11,T52] (  3,  2   )     ref  ->  r14        
+;  V12 tmp4         [V12,T10] (  2,  8   )     ref  ->  r12         class-hnd "impAppendStmt" <<unknown class>>
 ;* V13 tmp5         [V13    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V14 tmp6         [V14    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V15 tmp7         [V15    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
@@ -34,8 +34,8 @@
 ;  V23 tmp15        [V23,T03] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V24 tmp16        [V24    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V25 tmp17        [V25    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V26 tmp18        [V26,T18] (  2,  8   )     int  ->  rax         "Inlining Arg"
-;  V27 tmp19        [V27,T14] (  2,  8   )   byref  ->  r12         "Inlining Arg"
+;  V26 tmp18        [V26,T14] (  2,  8   )     int  ->   r8         "Inlining Arg"
+;  V27 tmp19        [V27,T11] (  2,  8   )   byref  ->  rax         "Inlining Arg"
 ;* V28 tmp20        [V28    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V29 tmp21        [V29    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V30 tmp22        [V30    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -43,7 +43,7 @@
 ;* V32 tmp24        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V33 tmp25        [V33    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V34 tmp26        [V34    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V35 tmp27        [V35,T25] (  3,  6   )     int  ->  [rsp+0x64]  spill-single-def "Inline stloc first use temp"
+;  V35 tmp27        [V35,T24] (  3,  6   )     int  ->  [rsp+0x74]  spill-single-def "Inline stloc first use temp"
 ;* V36 tmp28        [V36    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V37 tmp29        [V37    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V38 tmp30        [V38    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -58,8 +58,8 @@
 ;  V47 tmp39        [V47,T04] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V48 tmp40        [V48    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V49 tmp41        [V49    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V50 tmp42        [V50,T19] (  2,  8   )     int  ->  r10         "Inlining Arg"
-;  V51 tmp43        [V51,T15] (  2,  8   )   byref  ->   r8         "Inlining Arg"
+;  V50 tmp42        [V50,T15] (  2,  8   )     int  ->   r9         "Inlining Arg"
+;  V51 tmp43        [V51,T12] (  2,  8   )   byref  ->  r10         "Inlining Arg"
 ;* V52 tmp44        [V52    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V53 tmp45        [V53    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V54 tmp46        [V54    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -67,7 +67,7 @@
 ;* V56 tmp48        [V56    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V57 tmp49        [V57    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V58 tmp50        [V58    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V59 tmp51        [V59,T26] (  3,  6   )     int  ->  [rsp+0x60]  spill-single-def "Inline stloc first use temp"
+;  V59 tmp51        [V59,T25] (  3,  6   )     int  ->  [rsp+0x70]  spill-single-def "Inline stloc first use temp"
 ;* V60 tmp52        [V60    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V61 tmp53        [V61    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V62 tmp54        [V62    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -82,8 +82,8 @@
 ;  V71 tmp63        [V71,T05] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V72 tmp64        [V72    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V73 tmp65        [V73    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V74 tmp66        [V74,T20] (  2,  8   )     int  ->  r12         "Inlining Arg"
-;  V75 tmp67        [V75,T16] (  2,  8   )   byref  ->  r13         "Inlining Arg"
+;  V74 tmp66        [V74,T16] (  2,  8   )     int  ->  rax         "Inlining Arg"
+;  V75 tmp67        [V75,T13] (  2,  8   )   byref  ->  r12         "Inlining Arg"
 ;* V76 tmp68        [V76    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V77 tmp69        [V77    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V78 tmp70        [V78    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -91,88 +91,84 @@
 ;* V80 tmp72        [V80    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V81 tmp73        [V81    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V82 tmp74        [V82    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V83 tmp75        [V83,T27] (  3,  6   )     int  ->  r12         "Inline stloc first use temp"
+;  V83 tmp75        [V83,T26] (  3,  6   )     int  ->  [rsp+0x6C]  spill-single-def "Inline stloc first use temp"
 ;* V84 tmp76        [V84    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V85 tmp77        [V85    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V86 tmp78        [V86    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V87 tmp79        [V87    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V88 tmp80        [V88    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V89 tmp81        [V89,T11] (  4,  8   )     int  ->  rdx         "Inline stloc first use temp"
+;  V89 tmp81        [V89,T08] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V90 tmp82        [V90    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
 ;* V91 tmp83        [V91    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V92 tmp84        [V92,T12] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
+;  V92 tmp84        [V92,T09] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V93 tmp85        [V93    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
 ;* V94 tmp86        [V94    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
-;  V95 tmp87        [V95,T32] (  2,  4   )   byref  ->  r12         "field V13._reference (fldOffset=0x0)" P-INDEP
-;  V96 tmp88        [V96,T43] (  2,  4   )     int  ->  [rsp+0x5C]  spill-single-def "field V13._length (fldOffset=0x8)" P-INDEP
+;  V95 tmp87        [V95,T32] (  2,  4   )   byref  ->  [rsp+0x40]  spill-single-def "field V13._reference (fldOffset=0x0)" P-INDEP
+;  V96 tmp88        [V96,T43] (  2,  4   )     int  ->  [rsp+0x68]  spill-single-def "field V13._length (fldOffset=0x8)" P-INDEP
 ;* V97 tmp89        [V97    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
 ;* V98 tmp90        [V98    ] (  0,  0   )     int  ->  zero-ref    "field V14._length (fldOffset=0x8)" P-INDEP
 ;* V99 tmp91        [V99    ] (  0,  0   )   byref  ->  zero-ref    "field V15._reference (fldOffset=0x0)" P-INDEP
 ;* V100 tmp92       [V100    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;* V101 tmp93       [V101    ] (  0,  0   )   byref  ->  zero-ref    "field V19._reference (fldOffset=0x0)" P-INDEP
 ;* V102 tmp94       [V102    ] (  0,  0   )     int  ->  zero-ref    "field V19._length (fldOffset=0x8)" P-INDEP
-;  V103 tmp95       [V103,T21] (  3,  6   )   byref  ->  r12         "field V22._reference (fldOffset=0x0)" P-INDEP
-;  V104 tmp96       [V104,T28] (  3,  6   )     int  ->  rax         "field V22._length (fldOffset=0x8)" P-INDEP
-;  V105 tmp97       [V105,T33] (  2,  4   )   byref  ->  r12         "field V24._reference (fldOffset=0x0)" P-INDEP
-;  V106 tmp98       [V106,T44] (  2,  4   )     int  ->  rax         "field V24._length (fldOffset=0x8)" P-INDEP
+;  V103 tmp95       [V103,T19] (  3,  6   )   byref  ->  rax         "field V22._reference (fldOffset=0x0)" P-INDEP
+;  V104 tmp96       [V104,T27] (  3,  6   )     int  ->   r8         "field V22._length (fldOffset=0x8)" P-INDEP
+;  V105 tmp97       [V105,T33] (  2,  4   )   byref  ->  rax         "field V24._reference (fldOffset=0x0)" P-INDEP
+;  V106 tmp98       [V106,T44] (  2,  4   )     int  ->   r8         "field V24._length (fldOffset=0x8)" P-INDEP
 ;* V107 tmp99       [V107    ] (  0,  0   )   byref  ->  zero-ref    "field V25._reference (fldOffset=0x0)" P-INDEP
 ;* V108 tmp100      [V108    ] (  0,  0   )     int  ->  zero-ref    "field V25._length (fldOffset=0x8)" P-INDEP
-;  V109 tmp101      [V109,T34] (  2,  4   )   byref  ->  r12         "field V32._reference (fldOffset=0x0)" P-INDEP
+;  V109 tmp101      [V109,T34] (  2,  4   )   byref  ->  [rsp+0x38]  spill-single-def "field V32._reference (fldOffset=0x0)" P-INDEP
 ;* V110 tmp102      [V110    ] (  0,  0   )     int  ->  zero-ref    "field V32._length (fldOffset=0x8)" P-INDEP
-;  V111 tmp103      [V111,T35] (  2,  4   )   byref  ->  r12         "field V36._reference (fldOffset=0x0)" P-INDEP
-;  V112 tmp104      [V112,T45] (  2,  4   )     int  ->  rax         "field V36._length (fldOffset=0x8)" P-INDEP
+;  V111 tmp103      [V111,T35] (  2,  4   )   byref  ->  rax         "field V36._reference (fldOffset=0x0)" P-INDEP
+;  V112 tmp104      [V112,T45] (  2,  4   )     int  ->   r8         "field V36._length (fldOffset=0x8)" P-INDEP
 ;* V113 tmp105      [V113    ] (  0,  0   )   byref  ->  zero-ref    "field V37._reference (fldOffset=0x0)" P-INDEP
 ;* V114 tmp106      [V114    ] (  0,  0   )     int  ->  zero-ref    "field V37._length (fldOffset=0x8)" P-INDEP
 ;* V115 tmp107      [V115    ] (  0,  0   )   byref  ->  zero-ref    "field V41._reference (fldOffset=0x0)" P-INDEP
 ;* V116 tmp108      [V116    ] (  0,  0   )     int  ->  zero-ref    "field V41._length (fldOffset=0x8)" P-INDEP
 ;* V117 tmp109      [V117    ] (  0,  0   )   byref  ->  zero-ref    "field V43._reference (fldOffset=0x0)" P-INDEP
 ;* V118 tmp110      [V118    ] (  0,  0   )     int  ->  zero-ref    "field V43._length (fldOffset=0x8)" P-INDEP
-;  V119 tmp111      [V119,T22] (  3,  6   )   byref  ->   r8         "field V46._reference (fldOffset=0x0)" P-INDEP
-;  V120 tmp112      [V120,T29] (  3,  6   )     int  ->  r10         "field V46._length (fldOffset=0x8)" P-INDEP
-;  V121 tmp113      [V121,T36] (  2,  4   )   byref  ->   r8         "field V48._reference (fldOffset=0x0)" P-INDEP
-;  V122 tmp114      [V122,T46] (  2,  4   )     int  ->  r10         "field V48._length (fldOffset=0x8)" P-INDEP
+;  V119 tmp111      [V119,T20] (  3,  6   )   byref  ->  r10         "field V46._reference (fldOffset=0x0)" P-INDEP
+;  V120 tmp112      [V120,T28] (  3,  6   )     int  ->   r9         "field V46._length (fldOffset=0x8)" P-INDEP
+;  V121 tmp113      [V121,T36] (  2,  4   )   byref  ->  r10         "field V48._reference (fldOffset=0x0)" P-INDEP
+;  V122 tmp114      [V122,T46] (  2,  4   )     int  ->   r9         "field V48._length (fldOffset=0x8)" P-INDEP
 ;* V123 tmp115      [V123    ] (  0,  0   )   byref  ->  zero-ref    "field V49._reference (fldOffset=0x0)" P-INDEP
 ;* V124 tmp116      [V124    ] (  0,  0   )     int  ->  zero-ref    "field V49._length (fldOffset=0x8)" P-INDEP
 ;  V125 tmp117      [V125,T37] (  2,  4   )   byref  ->  [rsp+0x30]  spill-single-def "field V56._reference (fldOffset=0x0)" P-INDEP
 ;* V126 tmp118      [V126    ] (  0,  0   )     int  ->  zero-ref    "field V56._length (fldOffset=0x8)" P-INDEP
-;  V127 tmp119      [V127,T38] (  2,  4   )   byref  ->   r8         "field V60._reference (fldOffset=0x0)" P-INDEP
-;  V128 tmp120      [V128,T47] (  2,  4   )     int  ->  r10         "field V60._length (fldOffset=0x8)" P-INDEP
+;  V127 tmp119      [V127,T38] (  2,  4   )   byref  ->  r10         "field V60._reference (fldOffset=0x0)" P-INDEP
+;  V128 tmp120      [V128,T47] (  2,  4   )     int  ->   r9         "field V60._length (fldOffset=0x8)" P-INDEP
 ;* V129 tmp121      [V129    ] (  0,  0   )   byref  ->  zero-ref    "field V61._reference (fldOffset=0x0)" P-INDEP
 ;* V130 tmp122      [V130    ] (  0,  0   )     int  ->  zero-ref    "field V61._length (fldOffset=0x8)" P-INDEP
 ;* V131 tmp123      [V131    ] (  0,  0   )   byref  ->  zero-ref    "field V65._reference (fldOffset=0x0)" P-INDEP
 ;* V132 tmp124      [V132    ] (  0,  0   )     int  ->  zero-ref    "field V65._length (fldOffset=0x8)" P-INDEP
 ;* V133 tmp125      [V133    ] (  0,  0   )   byref  ->  zero-ref    "field V67._reference (fldOffset=0x0)" P-INDEP
 ;* V134 tmp126      [V134    ] (  0,  0   )     int  ->  zero-ref    "field V67._length (fldOffset=0x8)" P-INDEP
-;  V135 tmp127      [V135,T23] (  3,  6   )   byref  ->  r13         "field V70._reference (fldOffset=0x0)" P-INDEP
-;  V136 tmp128      [V136,T30] (  3,  6   )     int  ->  r12         "field V70._length (fldOffset=0x8)" P-INDEP
-;  V137 tmp129      [V137,T39] (  2,  4   )   byref  ->  r13         "field V72._reference (fldOffset=0x0)" P-INDEP
-;  V138 tmp130      [V138,T48] (  2,  4   )     int  ->  r12         "field V72._length (fldOffset=0x8)" P-INDEP
+;  V135 tmp127      [V135,T21] (  3,  6   )   byref  ->  r12         "field V70._reference (fldOffset=0x0)" P-INDEP
+;  V136 tmp128      [V136,T29] (  3,  6   )     int  ->  rax         "field V70._length (fldOffset=0x8)" P-INDEP
+;  V137 tmp129      [V137,T39] (  2,  4   )   byref  ->  r12         "field V72._reference (fldOffset=0x0)" P-INDEP
+;  V138 tmp130      [V138,T48] (  2,  4   )     int  ->  rax         "field V72._length (fldOffset=0x8)" P-INDEP
 ;* V139 tmp131      [V139    ] (  0,  0   )   byref  ->  zero-ref    "field V73._reference (fldOffset=0x0)" P-INDEP
 ;* V140 tmp132      [V140    ] (  0,  0   )     int  ->  zero-ref    "field V73._length (fldOffset=0x8)" P-INDEP
-;  V141 tmp133      [V141,T24] (  3,  6   )   byref  ->  r13         "field V80._reference (fldOffset=0x0)" P-INDEP
+;  V141 tmp133      [V141,T22] (  3,  6   )   byref  ->  r12         "field V80._reference (fldOffset=0x0)" P-INDEP
 ;* V142 tmp134      [V142    ] (  0,  0   )     int  ->  zero-ref    "field V80._length (fldOffset=0x8)" P-INDEP
-;  V143 tmp135      [V143,T40] (  2,  4   )   byref  ->  rcx         "field V84._reference (fldOffset=0x0)" P-INDEP
-;  V144 tmp136      [V144,T31] (  3,  6   )     int  ->  r12         "field V84._length (fldOffset=0x8)" P-INDEP
+;  V143 tmp135      [V143,T40] (  2,  4   )   byref  ->  rdx         "field V84._reference (fldOffset=0x0)" P-INDEP
+;  V144 tmp136      [V144,T30] (  3,  6   )     int  ->  rax         "field V84._length (fldOffset=0x8)" P-INDEP
 ;* V145 tmp137      [V145    ] (  0,  0   )   byref  ->  zero-ref    "field V85._reference (fldOffset=0x0)" P-INDEP
 ;* V146 tmp138      [V146    ] (  0,  0   )     int  ->  zero-ref    "field V85._length (fldOffset=0x8)" P-INDEP
-;  V147 tmp139      [V147,T41] (  2,  4   )   byref  ->  rax         "field V90._reference (fldOffset=0x0)" P-INDEP
-;  V148 tmp140      [V148,T49] (  2,  4   )     int  ->   r8         "field V90._length (fldOffset=0x8)" P-INDEP
+;  V147 tmp139      [V147,T41] (  2,  4   )   byref  ->   r8         "field V90._reference (fldOffset=0x0)" P-INDEP
+;  V148 tmp140      [V148,T49] (  2,  4   )     int  ->  r10         "field V90._length (fldOffset=0x8)" P-INDEP
 ;* V149 tmp141      [V149    ] (  0,  0   )   byref  ->  zero-ref    "field V91._reference (fldOffset=0x0)" P-INDEP
 ;* V150 tmp142      [V150    ] (  0,  0   )     int  ->  zero-ref    "field V91._length (fldOffset=0x8)" P-INDEP
 ;  V151 tmp143      [V151,T42] (  2,  4   )   byref  ->  rax         "field V93._reference (fldOffset=0x0)" P-INDEP
 ;  V152 tmp144      [V152,T50] (  2,  4   )     int  ->   r8         "field V93._length (fldOffset=0x8)" P-INDEP
-;  V153 tmp145      [V153,T57] (  2,  2   )     ref  ->  rcx         single-def "arr expr"
-;  V154 tmp146      [V154,T55] (  3,  3   )     int  ->  rdx         "index expr"
-;  V155 tmp147      [V155    ] (  6, 24   )  struct (16) [rsp+0x48]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;  V156 tmp148      [V156    ] (  3, 12   )  struct (16) [rsp+0x38]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;* V157 tmp149      [V157,T51] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V158 tmp150      [V158,T52] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V159 tmp151      [V159,T54] (  0,  0   )     int  ->  zero-ref    "argument with side effect"
-;  V160 tmp152      [V160,T17] (  2,  8   )     ref  ->   r9         "argument with side effect"
-;* V161 tmp153      [V161,T53] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;  V162 cse0        [V162,T01] (  9, 18   )     ref  ->  rdx         multi-def "CSE - aggressive"
+;  V153 tmp145      [V153,T53] (  2,  2   )     ref  ->  rcx         single-def "arr expr"
+;  V154 tmp146      [V154,T51] (  3,  3   )     int  ->  rdx         "index expr"
+;  V155 tmp147      [V155    ] (  6, 24   )  struct (16) [rsp+0x58]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V156 tmp148      [V156    ] (  3, 12   )  struct (16) [rsp+0x48]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
+;  V157 cse0        [V157,T01] (  9, 18   )     ref  ->  rdx         multi-def "CSE - aggressive"
+;  V158 cse1        [V158,T31] (  3,  6   )     int  ->  r13         "CSE - moderate"
 ;
-; Lcl frame size = 104
+; Lcl frame size = 120
 
 G_M28185_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     r15
@@ -183,12 +179,12 @@ G_M28185_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rsi
        push     rbp
        push     rbx
-       sub      rsp, 104
+       sub      rsp, 120
        xor      eax, eax
-       mov      qword ptr [rsp+0x38], rax
+       mov      qword ptr [rsp+0x48], rax
        vxorps   xmm4, xmm4, xmm4
-       vmovdqa  xmmword ptr [rsp+0x40], xmm4
-       mov      qword ptr [rsp+0x50], rax
+       vmovdqa  xmmword ptr [rsp+0x50], xmm4
+       mov      qword ptr [rsp+0x60], rax
        mov      rbx, rcx
        ; byrRegs +[rbx]
        mov      rdi, rdx
@@ -220,9 +216,10 @@ G_M28185_IG04:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0088 {rbx
 G_M28185_IG05:        ; bbWeight=1, gcrefRegs=4040 {rsi r14}, byrefRegs=0088 {rbx rdi}, byref
        ; gcrRegs -[rcx]
        xor      r15d, r15d
-       cmp      dword ptr [r14+0x08], 0
+       mov      r13d, dword ptr [r14+0x08]
+       test     r13d, r13d
        jle      G_M28185_IG23
-                       ;; size=14 bbWeight=1 PerfScore 4.25
+                       ;; size=16 bbWeight=1 PerfScore 3.50
 G_M28185_IG06:        ; bbWeight=4, gcrefRegs=4040 {rsi r14}, byrefRegs=0088 {rbx rdi}, byref, isz
        mov      ecx, r15d
        movzx    rdx, word  ptr [r14+2*rcx+0x0C]
@@ -235,27 +232,29 @@ G_M28185_IG07:        ; bbWeight=2, gcrefRegs=4040 {rsi r14}, byrefRegs=0088 {rb
        jmp      G_M28185_IG20
                        ;; size=14 bbWeight=2 PerfScore 6.50
 G_M28185_IG08:        ; bbWeight=2, gcrefRegs=4040 {rsi r14}, byrefRegs=0088 {rbx rdi}, byref, isz
-       mov      r13, gword ptr [rsi+0x08]
-       ; gcrRegs +[r13]
+       mov      r12, gword ptr [rsi+0x08]
+       ; gcrRegs +[r12]
        mov      rcx, gword ptr [rsi+0x30]
        ; gcrRegs +[rcx]
        test     rcx, rcx
        jne      SHORT G_M28185_IG09
-       xor      r12, r12
-       ; byrRegs +[r12]
-       xor      eax, eax
+       xor      rax, rax
+       ; byrRegs +[rax]
+       xor      r8d, r8d
        jmp      SHORT G_M28185_IG10
                        ;; size=20 bbWeight=2 PerfScore 15.50
-G_M28185_IG09:        ; bbWeight=2, gcrefRegs=6042 {rcx rsi r13 r14}, byrefRegs=0088 {rbx rdi}, byref
-       ; byrRegs -[r12]
...

+35 (+5.99%) : 25594.dasm - Microsoft.CodeAnalysis.MarshalAsAttributeDecoder`4[System.Canon,System.Canon,System.__Canon,short]:DecodeMarshalAsComInterface(byref,int,Microsoft.CodeAnalysis.CommonMessageProvider) (FullOpts)

@@ -62,7 +62,7 @@
 ;* V51 tmp37        [V51    ] (  0,  0   )     int  ->  zero-ref    "field V12.value (fldOffset=0x4)" P-INDEP
 ;* V52 tmp38        [V52    ] (  0,  0   )     ref  ->  zero-ref    single-def "field V27.array (fldOffset=0x0)" P-INDEP
 ;  V53 tmp39        [V53,T31] (  2,  2   )     ref  ->  rax         single-def "field V28._array (fldOffset=0x0)" P-INDEP
-;* V54 tmp40        [V54,T36] (  0,  0   )     int  ->  zero-ref    single-def "field V28._index (fldOffset=0x8)" P-INDEP
+;* V54 tmp40        [V54,T35] (  0,  0   )     int  ->  zero-ref    single-def "field V28._index (fldOffset=0x8)" P-INDEP
 ;  V55 tmp41        [V55,T04] (  6, 15   )     ref  ->  [rsp+0x48]  spill-single-def "V10.[000..008)"
 ;  V56 tmp42        [V56,T10] (  3,  8   )     ref  ->  [rsp+0x40]  spill-single-def "V10.[008..016)"
 ;  V57 tmp43        [V57,T08] (  4,  9   )     ref  ->  [rsp+0x38]  spill-single-def "V10.[016..024)"
@@ -75,11 +75,10 @@
 ;  V64 tmp50        [V64,T32] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
 ;  V65 tmp51        [V65,T27] (  3,  3   )  struct ( 8) [rsp+0x60]  do-not-enreg[SF] "by-value struct argument" <System.Nullable`1[int]>
 ;  V66 tmp52        [V66,T33] (  2,  2   )     ref  ->  rcx         single-def "argument with side effect"
-;  V67 tmp53        [V67,T35] (  2,  2   )     int  ->  rdx         "argument with side effect"
-;  V68 cse0         [V68,T19] (  3,  6   )     int  ->  [rsp+0x5C]  spill-single-def "CSE - aggressive"
-;  V69 rat0         [V69,T29] (  3,  2   )    long  ->  rdx         "runtime lookup"
-;  V70 rat1         [V70,T28] (  3,  2.80)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
-;  V71 rat2         [V71,T37] (  3, 12   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
+;  V67 cse0         [V67,T19] (  3,  6   )     int  ->  [rsp+0x5C]  spill-single-def "CSE - aggressive"
+;  V68 rat0         [V68,T29] (  3,  2   )    long  ->  rdx         "runtime lookup"
+;  V69 rat1         [V69,T28] (  3,  2.80)    long  ->  rdx         "fgMakeTemp is creating a new local variable"
+;  V70 rat2         [V70,T36] (  3, 12   )  simd32  ->  mm0         "ReplaceWithLclVar is creating a new local variable"
 ;
 ; Lcl frame size = 120
 
@@ -130,8 +129,9 @@ G_M33183_IG02:        ; bbWeight=1, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx},
        xor      r10d, r10d
        mov      dword ptr [rsp+0x6C], r10d
        test     edx, edx
-       jle      G_M33183_IG14
-                       ;; size=71 bbWeight=1 PerfScore 27.50
+       mov      ebp, dword ptr [rsp+0xD0]
+       jle      G_M33183_IG15
+                       ;; size=78 bbWeight=1 PerfScore 28.50
 G_M33183_IG03:        ; bbWeight=4, gcVars=0000000000400000 {V44}, gcrefRegs=0041 {rax rsi}, byrefRegs=0008 {rbx}, gcvars, byref
        mov      ecx, r8d
        shl      rcx, 5
@@ -152,14 +152,15 @@ G_M33183_IG03:        ; bbWeight=4, gcVars=0000000000400000 {V44}, gcrefRegs=004
        mov      ecx, dword ptr [rcx+0x18]
        ; byrRegs -[rcx]
        test     r8, r8
-       je       G_M33183_IG13
+       je       G_M33183_IG14
                        ;; size=50 bbWeight=4 PerfScore 56.00
 G_M33183_IG04:        ; bbWeight=1, gcVars=0000000000400510 {V44 V55 V56 V57}, gcrefRegs=0340 {rsi r8 r9}, byrefRegs=0008 {rbx}, gcvars, byref
        ; gcrRegs -[rax r11]
        cmp      dword ptr [r8+0x08], 17
-       jne      G_M33183_IG13
+       jne      G_M33183_IG14
                        ;; size=11 bbWeight=1 PerfScore 4.00
 G_M33183_IG05:        ; bbWeight=2, gcrefRegs=0340 {rsi r8 r9}, byrefRegs=0008 {rbx}, byref, isz
+       mov      dword ptr [rsp+0xD0], ebp
        vmovups  ymm0, ymmword ptr [r8+0x0C]
        vpxor    ymm0, ymm0, ymmword ptr [reloc @RWD00]
        vmovups  ymm1, ymmword ptr [r8+0x0E]
@@ -168,9 +169,9 @@ G_M33183_IG05:        ; bbWeight=2, gcrefRegs=0340 {rsi r8 r9}, byrefRegs=0008 {
        sete     bpl
        movzx    rbp, bpl
        test     ebp, ebp
-       je       G_M33183_IG13
+       je       SHORT G_M33183_IG06
        test     ecx, ecx
-       je       SHORT G_M33183_IG09
+       je       SHORT G_M33183_IG10
        mov      rcx, r9
        ; gcrRegs +[rcx]
        mov      r11, 0xD1FFAB1E      ; code for <unknown method>
@@ -178,7 +179,7 @@ G_M33183_IG05:        ; bbWeight=2, gcrefRegs=0340 {rsi r8 r9}, byrefRegs=0008 {
        ; gcrRegs -[rcx r8-r9]
        ; gcr arg pop 0
        cmp      eax, 13
-       je       SHORT G_M33183_IG06
+       je       SHORT G_M33183_IG07
        mov      rcx, gword ptr [rsp+0x40]
        ; gcrRegs +[rcx]
        mov      r11, 0xD1FFAB1E      ; code for <unknown method>
@@ -187,18 +188,23 @@ G_M33183_IG05:        ; bbWeight=2, gcrefRegs=0340 {rsi r8 r9}, byrefRegs=0008 {
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        cmp      eax, 5
-       jne      SHORT G_M33183_IG09
-       jmp      SHORT G_M33183_IG09
-                       ;; size=102 bbWeight=2 PerfScore 70.00
-G_M33183_IG06:        ; bbWeight=2, gcVars=0000000000400110 {V44 V55 V57}, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, gcvars, byref, isz
-       ; GC ptr vars +{V57}
+       jne      SHORT G_M33183_IG10
+       jmp      SHORT G_M33183_IG10
+                       ;; size=105 bbWeight=2 PerfScore 72.00
+G_M33183_IG06:        ; bbWeight=1, gcVars=0000000000400000 {V44}, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, gcvars, byref
+       ; GC ptr vars -{V55}
+       mov      ebp, dword ptr [rsp+0xD0]
+       jmp      G_M33183_IG14
+                       ;; size=12 bbWeight=1 PerfScore 3.00
+G_M33183_IG07:        ; bbWeight=2, gcVars=0000000000400110 {V44 V55 V57}, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, gcvars, byref, isz
+       ; GC ptr vars +{V55 V57}
        mov      rdx, 0xD1FFAB1E      ; System.Int32
        mov      r15, gword ptr [rsp+0x38]
        ; gcrRegs +[r15]
        cmp      qword ptr [r15], rdx
-       je       SHORT G_M33183_IG08
+       je       SHORT G_M33183_IG09
                        ;; size=20 bbWeight=2 PerfScore 10.50
-G_M33183_IG07:        ; bbWeight=1, gcrefRegs=8040 {rsi r15}, byrefRegs=0008 {rbx}, byref
+G_M33183_IG08:        ; bbWeight=1, gcrefRegs=8040 {rsi r15}, byrefRegs=0008 {rbx}, byref
        mov      rdx, r15
        ; gcrRegs +[rdx]
        mov      rcx, 0xD1FFAB1E      ; System.Int32
@@ -206,23 +212,23 @@ G_M33183_IG07:        ; bbWeight=1, gcrefRegs=8040 {rsi r15}, byrefRegs=0008 {rb
        ; gcrRegs -[rdx]
        ; gcr arg pop 0
                        ;; size=18 bbWeight=1 PerfScore 1.50
-G_M33183_IG08:        ; bbWeight=2, gcrefRegs=8040 {rsi r15}, byrefRegs=0008 {rbx}, byref, isz
+G_M33183_IG09:        ; bbWeight=2, gcrefRegs=8040 {rsi r15}, byrefRegs=0008 {rbx}, byref, isz
        mov      r15d, dword ptr [r15+0x08]
        ; gcrRegs -[r15]
-       jmp      SHORT G_M33183_IG10
+       jmp      SHORT G_M33183_IG11
                        ;; size=6 bbWeight=2 PerfScore 8.00
-G_M33183_IG09:        ; bbWeight=2, gcVars=0000000000400010 {V44 V55}, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, gcvars, byref
+G_M33183_IG10:        ; bbWeight=2, gcVars=0000000000400010 {V44 V55}, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, gcvars, byref
        ; GC ptr vars -{V57}
        xor      r15d, r15d
                        ;; size=3 bbWeight=2 PerfScore 0.50
-G_M33183_IG10:        ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
+G_M33183_IG11:        ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
        mov      r14d, 1
        test     r15d, r15d
-       jl       SHORT G_M33183_IG11
+       jl       SHORT G_M33183_IG12
        cmp      r15d, 0xD1FFAB1E
-       jle      SHORT G_M33183_IG13
-                       ;; size=20 bbWeight=2 PerfScore 5.50
-G_M33183_IG11:        ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
+       jle      G_M33183_IG18
+                       ;; size=24 bbWeight=2 PerfScore 5.50
+G_M33183_IG12:        ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref, isz
        mov      r12, gword ptr [rbx+0x18]
        ; gcrRegs +[r12]
        mov      rbp, gword ptr [rbx+0x08]
@@ -238,7 +244,7 @@ G_M33183_IG11:        ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx},
        mov      rdx, gword ptr [r12+0x08]
        ; gcrRegs +[rdx]
        test     rdx, rdx
-       je       SHORT G_M33183_IG12
+       je       SHORT G_M33183_IG13
        mov      gword ptr [rsp+0x20], rax
        ; gcr arg write
        mov      r12, gword ptr [rsp+0x48]
@@ -257,10 +263,11 @@ G_M33183_IG11:        ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx},
        ; gcrRegs -[rcx rdx rbp r8 r12]
        ; gcr arg pop 0
                        ;; size=73 bbWeight=2 PerfScore 60.00
-G_M33183_IG12:        ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref
+G_M33183_IG13:        ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref
        mov      r12d, 1
-                       ;; size=6 bbWeight=2 PerfScore 0.50
-G_M33183_IG13:        ; bbWeight=4, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref
+       mov      ebp, dword ptr [rsp+0xD0]
+                       ;; size=13 bbWeight=2 PerfScore 2.50
+G_M33183_IG14:        ; bbWeight=4, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, byref
        inc      r13d
        mov      r10d, dword ptr [rsp+0x6C]
        lea      r8d, [r10+0x01]
@@ -272,30 +279,38 @@ G_M33183_IG13:        ; bbWeight=4, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx},
        ; gcrRegs +[rax]
        jg       G_M33183_IG03
                        ;; size=38 bbWeight=4 PerfScore 25.00
-G_M33183_IG14:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref, isz
+G_M33183_IG15:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref, isz
        ; gcrRegs -[rax rsi]
        ; GC ptr vars -{V44}
        test     r12d, r12d
-       jne      SHORT G_M33183_IG19
+       jne      SHORT G_M33183_IG21
                        ;; size=5 bbWeight=1 PerfScore 1.25
-G_M33183_IG15:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+G_M33183_IG16:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
        mov      rcx, qword ptr [rdi+0x38]
        mov      rcx, qword ptr [rcx]
        mov      rdx, qword ptr [rcx+0x30]
        test     rdx, rdx
-       je       SHORT G_M33183_IG17
+       je       SHORT G_M33183_IG19
                        ;; size=16 bbWeight=0.50 PerfScore 3.62
-G_M33183_IG16:        ; bbWeight=0.40, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
-       jmp      SHORT G_M33183_IG18
+G_M33183_IG17:        ; bbWeight=0.40, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref, isz
+       jmp      SHORT G_M33183_IG20
                        ;; size=2 bbWeight=0.40 PerfScore 0.80
-G_M33183_IG17:        ; bbWeight=0.10, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+G_M33183_IG18:        ; bbWeight=1, gcVars=0000000000400000 {V44}, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx}, gcvars, byref, isz
+       ; gcrRegs +[rsi]
+       ; GC ptr vars +{V22 V44}
+       mov      ebp, dword ptr [rsp+0xD0]
+       jmp      SHORT G_M33183_IG14
+                       ;; size=9 bbWeight=1 PerfScore 3.00
+G_M33183_IG19:        ; bbWeight=0.10, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref
+       ; gcrRegs -[rsi]
+       ; GC ptr vars -{V22 V44}
        mov      rcx, rdi
        mov      rdx, 0xD1FFAB1E      ; global ptr
        call     CORINFO_HELP_RUNTIMEHANDLE_CLASS
        ; gcr arg pop 0
        mov      rdx, rax
                        ;; size=21 bbWeight=0.10 PerfScore 0.18
-G_M33183_IG18:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
+G_M33183_IG20:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, byref
        mov      rcx, rbx
        ; byrRegs +[rcx]
        call     [Microsoft.CodeAnalysis.DecodeWellKnownAttributeArguments`3[System.__Canon,System.__Canon,short]:GetOrCreateData[System.__Canon]():System.__Canon:this]
@@ -310,20 +325,19 @@ G_M33183_IG18:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0008 {rbx},
        ; gcr arg pop 0
        mov      rcx, rax
        ; gcrRegs +[rcx]
-       mov      ebp, dword ptr [rsp+0xD0]
-       mov      edx, ebp
        mov      byte  ptr [rsp+0x60], r14b
        mov      dword ptr [rsp+0x64], r15d
        mov      r8, qword ptr [rsp+0x60]
+       mov      edx, ebp
        cmp      dword ptr [rcx], ecx
        call     [Microsoft.CodeAnalysis.MarshalPseudoCustomAttributeData:SetMarshalAsComInterface(int,System.Nullable`1[int]):this]
        ; gcrRegs -[rax rcx]
        ; gcr arg pop 0
-                       ;; size=60 bbWeight=0.50 PerfScore 8.62
-G_M33183_IG19:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+                       ;; size=53 bbWeight=0.50 PerfScore 8.12
+G_M33183_IG21:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        nop      
                        ;; size=1 bbWeight=1 PerfScore 0.25
-G_M33183_IG20:        ; bbWeight=1, epilog, nogc, extend
+G_M33183_IG22:        ; bbWeight=1, epilog, nogc, extend
        vzeroupper 
        add      rsp, 120
        pop      rbx
@@ -340,7 +354,7 @@ RWD00   dq  0050006400690049h, 006D006100720061h, 0072006500740065h, 00650064006E
 RWD32      dq  0061005000640069h, 0065006D00610072h, 0049007200650074h, 007800650064006Eh
 
 
-; Total bytes of code 584, prolog size 41, PerfScore 301.97, instruction count 152, allocated bytes for code 584 (MethodHash=ac357e60) for method Microsoft.CodeAnalysis.MarshalAsAttributeDecoder`4[System.__Canon,System.__Canon,System.__Canon,short]:DecodeMarshalAsComInterface(byref,int,Microsoft.CodeAnalysis.CommonMessageProvider) (FullOpts)
+; Total bytes of code 619, prolog size 41, PerfScore 312.47, instruction count 158, allocated bytes for code 619 (MethodHash=ac357e60) for method Microsoft.CodeAnalysis.MarshalAsAttributeDecoder`4[System.__Canon,System.__Canon,System.__Canon,short]:DecodeMarshalAsComInterface(byref,int,Microsoft.CodeAnalysis.CommonMessageProvider) (FullOpts)
 ; ============================================================
 
 Unwind Info:

+12 (+6.49%) : 26647.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:NormalizeTaskTypesInArray(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,byref):ubyte (FullOpts)

@@ -10,36 +10,35 @@
 ;
 ;  V00 arg0         [V00,T02] (  3,  3   )     ref  ->  rcx         class-hnd single-def <Microsoft.CodeAnalysis.CSharp.CSharpCompilation>
 ;  V01 arg1         [V01,T01] (  5,  4   )   byref  ->  rbx         single-def
-;  V02 loc0         [V02    ] (  5,  3.50)  struct (24) [rsp+0x38]  do-not-enreg[XS] addr-exposed ld-addr-op <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
+;  V02 loc0         [V02    ] (  5,  3.50)  struct (24) [rsp+0x48]  do-not-enreg[XS] addr-exposed ld-addr-op <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;  V03 OutArgs      [V03    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V04 tmp1         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.ArrayTypeSymbol>
-;  V05 tmp2         [V05,T04] (  3,  1.50)     ref  ->  rax         class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.ArrayTypeSymbol>
-;  V06 tmp3         [V06,T00] (  6,  6   )     ref  ->  rcx         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.ArrayTypeSymbol>
+;  V05 tmp2         [V05,T03] (  3,  1.50)     ref  ->  [rsp+0x28]  class-hnd "Inline return value spill temp" <Microsoft.CodeAnalysis.CSharp.Symbols.ArrayTypeSymbol>
+;  V06 tmp3         [V06,T00] (  7,  7   )     ref  ->  rcx         class-hnd single-def "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.ArrayTypeSymbol>
 ;* V07 tmp4         [V07    ] (  0,  0   )  struct (24) zero-ref    ld-addr-op "Inline stloc first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;* V08 tmp5         [V08    ] (  0,  0   )  struct (24) zero-ref    "Inlining Arg" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-;* V09 tmp6         [V09,T11] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
-;  V10 tmp7         [V10    ] (  3,  2.50)     ref  ->  [rsp+0x38]  do-not-enreg[X] addr-exposed "field V02.DefaultType (fldOffset=0x0)" P-DEP
-;  V11 tmp8         [V11    ] (  3,  2.50)     ref  ->  [rsp+0x40]  do-not-enreg[X] addr-exposed "field V02._extensions (fldOffset=0x8)" P-DEP
-;  V12 tmp9         [V12    ] (  3,  2.50)   ubyte  ->  [rsp+0x48]  do-not-enreg[X] addr-exposed "field V02.NullableAnnotation (fldOffset=0x10)" P-DEP
-;  V13 tmp10        [V13,T08] (  2,  1   )     ref  ->  r10         single-def "field V07.DefaultType (fldOffset=0x0)" P-INDEP
-;  V14 tmp11        [V14,T09] (  2,  1   )     ref  ->   r9         single-def "field V07._extensions (fldOffset=0x8)" P-INDEP
-;  V15 tmp12        [V15,T10] (  2,  1   )   ubyte  ->  r11         single-def "field V07.NullableAnnotation (fldOffset=0x10)" P-INDEP
-;  V16 tmp13        [V16,T05] (  3,  1.50)     ref  ->  rdx         single-def "field V08.DefaultType (fldOffset=0x0)" P-INDEP
-;  V17 tmp14        [V17,T06] (  3,  1.50)     ref  ->  rax         single-def "field V08._extensions (fldOffset=0x8)" P-INDEP
-;  V18 tmp15        [V18,T07] (  3,  1.50)   ubyte  ->   r8         single-def "field V08.NullableAnnotation (fldOffset=0x10)" P-INDEP
-;  V19 tmp16        [V19    ] (  4,  4   )  struct (24) [rsp+0x20]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
-;  V20 tmp17        [V20,T03] (  3,  3   )     ref  ->  rcx         single-def "argument with side effect"
+;* V09 tmp6         [V09,T10] (  0,  0   )   ubyte  ->  zero-ref    "Inline return value spill temp"
+;  V10 tmp7         [V10    ] (  3,  2.50)     ref  ->  [rsp+0x48]  do-not-enreg[X] addr-exposed "field V02.DefaultType (fldOffset=0x0)" P-DEP
+;  V11 tmp8         [V11    ] (  3,  2.50)     ref  ->  [rsp+0x50]  do-not-enreg[X] addr-exposed "field V02._extensions (fldOffset=0x8)" P-DEP
+;  V12 tmp9         [V12    ] (  3,  2.50)   ubyte  ->  [rsp+0x58]  do-not-enreg[X] addr-exposed "field V02.NullableAnnotation (fldOffset=0x10)" P-DEP
+;  V13 tmp10        [V13,T07] (  2,  1   )     ref  ->  r10         single-def "field V07.DefaultType (fldOffset=0x0)" P-INDEP
+;  V14 tmp11        [V14,T08] (  2,  1   )     ref  ->   r9         single-def "field V07._extensions (fldOffset=0x8)" P-INDEP
+;  V15 tmp12        [V15,T09] (  2,  1   )   ubyte  ->  r11         single-def "field V07.NullableAnnotation (fldOffset=0x10)" P-INDEP
+;  V16 tmp13        [V16,T04] (  3,  1.50)     ref  ->  rdx         single-def "field V08.DefaultType (fldOffset=0x0)" P-INDEP
+;  V17 tmp14        [V17,T05] (  3,  1.50)     ref  ->  rax         single-def "field V08._extensions (fldOffset=0x8)" P-INDEP
+;  V18 tmp15        [V18,T06] (  3,  1.50)   ubyte  ->   r8         single-def "field V08.NullableAnnotation (fldOffset=0x10)" P-INDEP
+;  V19 tmp16        [V19    ] (  4,  4   )  struct (24) [rsp+0x30]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations>
 ;
-; Lcl frame size = 80
+; Lcl frame size = 96
 
 G_M3106_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
        push     rbx
-       sub      rsp, 80
+       sub      rsp, 96
        vzeroupper 
        vxorps   xmm4, xmm4, xmm4
-       vmovdqa  xmmword ptr [rsp+0x20], xmm4
+       vmovdqa  xmmword ptr [rsp+0x30], xmm4
        xor      eax, eax
-       mov      qword ptr [rsp+0x30], rax
+       mov      qword ptr [rsp+0x40], rax
        mov      rbx, rdx
        ; byrRegs +[rbx]
                        ;; size=28 bbWeight=1 PerfScore 6.08
@@ -50,12 +49,12 @@ G_M3106_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0008 {rbx}, b
                        ;; size=3 bbWeight=1 PerfScore 2.00
 G_M3106_IG03:        ; bbWeight=1, nogc, extend
        vmovdqu  xmm0, xmmword ptr [rdx+0x28]
-       vmovdqu  xmmword ptr [rsp+0x38], xmm0
+       vmovdqu  xmmword ptr [rsp+0x48], xmm0
        mov      rax, qword ptr [rdx+0x38]
-       mov      qword ptr [rsp+0x48], rax
+       mov      qword ptr [rsp+0x58], rax
                        ;; size=20 bbWeight=1 PerfScore 8.00
 G_M3106_IG04:        ; bbWeight=1, isz, extend
-       lea      rdx, [rsp+0x38]
+       lea      rdx, [rsp+0x48]
        ; gcrRegs -[rdx]
        call     [Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:NormalizeTaskTypesInType(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,byref):ubyte]
        ; gcrRegs -[rcx]
@@ -68,7 +67,7 @@ G_M3106_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
        xor      eax, eax
                        ;; size=2 bbWeight=0.50 PerfScore 0.12
 G_M3106_IG06:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 80
+       add      rsp, 96
        pop      rbx
        ret      
                        ;; size=6 bbWeight=0.50 PerfScore 0.88
@@ -76,11 +75,11 @@ G_M3106_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000
        ; byrRegs +[rbx]
        mov      rcx, gword ptr [rbx]
        ; gcrRegs +[rcx]
-       mov      rdx, gword ptr [rsp+0x38]
+       mov      rdx, gword ptr [rsp+0x48]
        ; gcrRegs +[rdx]
-       mov      rax, gword ptr [rsp+0x40]
+       mov      rax, gword ptr [rsp+0x50]
        ; gcrRegs +[rax]
-       movzx    r8, byte  ptr [rsp+0x48]
+       movzx    r8, byte  ptr [rsp+0x58]
        mov      r10, gword ptr [rcx+0x28]
        ; gcrRegs +[r10]
        mov      r9, gword ptr [rcx+0x30]
@@ -94,15 +93,17 @@ G_M3106_IG07:        ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000
        jne      SHORT G_M3106_IG08
        cmp      r9, rax
        jne      SHORT G_M3106_IG08
-       mov      rax, rcx
+       mov      gword ptr [rsp+0x28], rcx
+       ; GC ptr vars +{V05}
        jmp      SHORT G_M3106_IG09
-                       ;; size=56 bbWeight=0.50 PerfScore 8.62
+                       ;; size=58 bbWeight=0.50 PerfScore 9.00
 G_M3106_IG08:        ; bbWeight=0.50, gcrefRegs=0007 {rax rcx rdx}, byrefRegs=0008 {rbx}, byref
        ; gcrRegs -[r9]
-       mov      gword ptr [rsp+0x20], rdx
-       mov      gword ptr [rsp+0x28], rax
-       mov      byte  ptr [rsp+0x30], r8b
-       lea      rdx, [rsp+0x20]
+       ; GC ptr vars -{V05}
+       mov      gword ptr [rsp+0x30], rdx
+       mov      gword ptr [rsp+0x38], rax
+       mov      byte  ptr [rsp+0x40], r8b
+       lea      rdx, [rsp+0x30]
        ; gcrRegs -[rdx]
        mov      rax, qword ptr [rcx]
        ; gcrRegs -[rax]
@@ -110,24 +111,30 @@ G_M3106_IG08:        ; bbWeight=0.50, gcrefRegs=0007 {rax rcx rdx}, byrefRegs=00
        call     [rax+0x10]<unknown method>
        ; gcrRegs -[rcx] +[rax]
        ; gcr arg pop 0
-                       ;; size=33 bbWeight=0.50 PerfScore 5.25
-G_M3106_IG09:        ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0008 {rbx}, byref
+       mov      rcx, rax
+       ; gcrRegs +[rcx]
+       mov      gword ptr [rsp+0x28], rcx
+       ; GC ptr vars +{V05}
+                       ;; size=41 bbWeight=0.50 PerfScore 5.88
+G_M3106_IG09:        ; bbWeight=0.50, gcVars=0000000000000008 {V05}, gcrefRegs=0000 {}, byrefRegs=0008 {rbx}, gcvars, byref
+       ; gcrRegs -[rax rcx]
+       mov      rdx, gword ptr [rsp+0x28]
+       ; gcrRegs +[rdx]
        mov      rcx, rbx
        ; byrRegs +[rcx]
-       mov      rdx, rax
-       ; gcrRegs +[rdx]
+       ; GC ptr vars -{V05}
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
-       ; gcrRegs -[rax rdx]
+       ; gcrRegs -[rdx]
        ; byrRegs -[rcx rbx]
        mov      eax, 1
-                       ;; size=16 bbWeight=0.50 PerfScore 0.88
+                       ;; size=18 bbWeight=0.50 PerfScore 1.25
 G_M3106_IG10:        ; bbWeight=0.50, epilog, nogc, extend
-       add      rsp, 80
+       add      rsp, 96
        pop      rbx
        ret      
                        ;; size=6 bbWeight=0.50 PerfScore 0.88
 
-; Total bytes of code 185, prolog size 25, PerfScore 37.46, instruction count 51, allocated bytes for code 185 (MethodHash=2397f3dd) for method Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:NormalizeTaskTypesInArray(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,byref):ubyte (FullOpts)
+; Total bytes of code 197, prolog size 25, PerfScore 38.83, instruction count 53, allocated bytes for code 197 (MethodHash=2397f3dd) for method Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:NormalizeTaskTypesInArray(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,byref):ubyte (FullOpts)
 ; ============================================================
 
 Unwind Info:
@@ -140,5 +147,5 @@ Unwind Info:
   FrameRegister     : none (0)
   FrameOffset       : N/A (no FrameRegister) (Value=0)
   UnwindCodes       :
-    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 9 * 8 + 8 = 80 = 0x50
+    CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2)     OpInfo: 11 * 8 + 8 = 96 = 0x60
     CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0)     OpInfo: rbx (3)

smoke_tests.nativeaot.windows.x64.checked.mch

-8 (-11.27%) : 8602.dasm - System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)

@@ -10,7 +10,7 @@
 ;
 ;  V00 this         [V00,T00] (  5,  5   )     ref  ->  rbx         this class-hnd single-def <System.Threading.QueueUserWorkItemCallbackBase>
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T01] (  2,  4   )   ubyte  ->  rcx         "Inlining Arg"
+;* V02 tmp1         [V02    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;
 ; Lcl frame size = 32
 
@@ -33,11 +33,8 @@ G_M21281_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        mov      ecx, 1
        xchg     dword ptr [rbx], ecx
        test     ecx, ecx
-       sete     cl
-       movzx    rcx, cl
-       test     ecx, ecx
-       jne      SHORT G_M21281_IG05
-                       ;; size=33 bbWeight=1 PerfScore 27.50
+       je       SHORT G_M21281_IG05
+                       ;; size=25 bbWeight=1 PerfScore 26.00
 G_M21281_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs -[rbx]
        lea      rcx, gword ptr [(reloc)]
@@ -58,7 +55,7 @@ G_M21281_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ret      
                        ;; size=6 bbWeight=0.50 PerfScore 0.88
 
-; Total bytes of code 71, prolog size 5, PerfScore 31.75, instruction count 22, allocated bytes for code 71 (MethodHash=f256acde) for method System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
+; Total bytes of code 63, prolog size 5, PerfScore 30.25, instruction count 19, allocated bytes for code 63 (MethodHash=f256acde) for method System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-8 (-11.27%) : 29972.dasm - System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)

@@ -9,7 +9,7 @@
 ;
 ;  V00 this         [V00,T00] (  5,  5   )     ref  ->  rbx         this class-hnd single-def <System.Threading.QueueUserWorkItemCallbackBase>
 ;  V01 OutArgs      [V01    ] (  1,  1   )  struct (32) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-;  V02 tmp1         [V02,T01] (  2,  4   )   ubyte  ->  rcx         "Inlining Arg"
+;* V02 tmp1         [V02    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;
 ; Lcl frame size = 32
 
@@ -32,11 +32,8 @@ G_M21281_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        mov      ecx, 1
        xchg     dword ptr [rbx], ecx
        test     ecx, ecx
-       sete     cl
-       movzx    rcx, cl
-       test     ecx, ecx
-       jne      SHORT G_M21281_IG05
-                       ;; size=33 bbWeight=1 PerfScore 27.50
+       je       SHORT G_M21281_IG05
+                       ;; size=25 bbWeight=1 PerfScore 26.00
 G_M21281_IG03:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; byrRegs -[rbx]
        lea      rcx, gword ptr [(reloc)]
@@ -57,7 +54,7 @@ G_M21281_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ret      
                        ;; size=6 bbWeight=0.50 PerfScore 0.88
 
-; Total bytes of code 71, prolog size 5, PerfScore 31.75, instruction count 22, allocated bytes for code 71 (MethodHash=f256acde) for method System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
+; Total bytes of code 63, prolog size 5, PerfScore 30.25, instruction count 19, allocated bytes for code 63 (MethodHash=f256acde) for method System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
 ; ============================================================
 
 Unwind Info:

-17 (-10.62%) : 23421.dasm - Internal.CompilerGenerated.:NativeToManaged__InlineArrayStruct(byref,byref) (FullOpts)

@@ -27,9 +27,8 @@
 ;* V17 tmp2         [V17    ] (  0,  0   )   short  ->  zero-ref    "Inline return value spill temp"
 ;* V18 tmp3         [V18    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V19 tmp4         [V19    ] (  0,  0   )   byref  ->  zero-ref    "Inline stloc first use temp"
-;  V20 tmp5         [V20,T05] (  2,  4   )    long  ->  rsi         "Cast away GC"
-;  V21 tmp6         [V21,T06] (  2,  4   )    long  ->  rsi         "argument with side effect"
-;  TEMP_01                                   byref  ->  [rsp+0x20]
+;  V20 tmp5         [V20,T05] (  2,  4   )    long  ->  rcx         "Cast away GC"
+;  V21 tmp6         [V21,T06] (  2,  4   )    long  ->  rcx         "argument with side effect"
 ;
 ; Lcl frame size = 40
 
@@ -37,13 +36,11 @@ G_M8134_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        push     rsi
        push     rbx
        sub      rsp, 40
-       xor      eax, eax
-       mov      qword ptr [rsp+0x20], rax
        mov      rsi, rcx
        ; byrRegs +[rsi]
        mov      rbx, rdx
        ; byrRegs +[rbx]
-                       ;; size=19 bbWeight=1 PerfScore 4.00
+                       ;; size=12 bbWeight=1 PerfScore 2.75
 G_M8134_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref
        mov      ecx, dword ptr [rsi]
        mov      dword ptr [rbx+0x10], ecx
@@ -81,26 +78,22 @@ G_M8134_IG03:        ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi},
                        ;; size=38 bbWeight=4 PerfScore 54.00
 G_M8134_IG04:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0048 {rbx rsi}, byref
        ; gcrRegs -[rdx]
-       lea      rcx, bword ptr [rbx+0x08]
-       ; byrRegs +[rcx]
-       mov      bword ptr [rsp+0x20], rcx
        add      rsi, 268
        mov      rcx, rsi
-       ; byrRegs -[rcx]
        mov      edx, 11
        call     Internal.Runtime.CompilerHelpers.InteropHelpers:ByValAnsiStringToString(ulong,int):System.String
        ; gcrRegs +[rax]
-       ; byrRegs -[rbx rsi]
+       ; byrRegs -[rsi]
        ; gcr arg pop 0
-       mov      rcx, bword ptr [rsp+0x20]
+       lea      rcx, bword ptr [rbx+0x08]
        ; byrRegs +[rcx]
        mov      rdx, rax
        ; gcrRegs +[rdx]
        call     CORINFO_HELP_CHECKED_ASSIGN_REF
        ; gcrRegs -[rax rdx]
-       ; byrRegs -[rcx]
+       ; byrRegs -[rcx rbx]
        nop      
-                       ;; size=43 bbWeight=1 PerfScore 5.75
+                       ;; size=33 bbWeight=1 PerfScore 3.75
 G_M8134_IG05:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 40
        pop      rbx
@@ -113,7 +106,7 @@ G_M8134_IG06:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
        int3     
                        ;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 160, prolog size 19, PerfScore 78.50, instruction count 47, allocated bytes for code 160 (MethodHash=6c21e039) for method Internal.CompilerGenerated.<Module>:NativeToManaged__InlineArrayStruct(byref,byref) (FullOpts)
+; Total bytes of code 143, prolog size 12, PerfScore 75.25, instruction count 43, allocated bytes for code 143 (MethodHash=6c21e039) for method Internal.CompilerGenerated.<Module>:NativeToManaged__InlineArrayStruct(byref,byref) (FullOpts)
 ; ============================================================
 
 Unwind Info:

+45 (+6.08%) : 1322.dasm - System.Number:FormatPercentushort (FullOpts)

@@ -8,17 +8,17 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] ( 18, 34   )   byref  ->  rbx         single-def
-;  V01 arg1         [V01,T09] (  4,  5   )   byref  ->  rdi         single-def
-;  V02 arg2         [V02,T10] (  3,  4   )     int  ->  rbp         single-def
+;  V01 arg1         [V01,T20] (  4,  5   )   byref  ->  rdi         single-def
+;  V02 arg2         [V02,T28] (  3,  4   )     int  ->  rbp         single-def
 ;  V03 arg3         [V03,T07] (  9, 13   )     ref  ->  rsi         class-hnd exact single-def <System.Globalization.NumberFormatInfo>
 ;* V04 loc0         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
-;  V05 loc1         [V05,T08] (  4, 10   )     ref  ->  r14         class-hnd exact single-def <System.String>
+;  V05 loc1         [V05,T21] (  3,  6   )     ref  ->  r14         class-hnd exact single-def <System.String>
 ;  V06 loc2         [V06,T01] (  5, 17   )     int  ->  r15        
 ;  V07 loc3         [V07,T02] (  6, 16   )  ushort  ->  rdx        
 ;  V08 OutArgs      [V08    ] (  1,  1   )  struct (48) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V09 tmp1         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <<unknown class>>
-;  V10 tmp2         [V10,T73] (  3,  2   )     ref  ->  r14        
-;  V11 tmp3         [V11,T14] (  2,  8   )     ref  ->  r13         class-hnd "impAppendStmt" <<unknown class>>
+;  V10 tmp2         [V10,T68] (  3,  2   )     ref  ->  r14        
+;  V11 tmp3         [V11,T11] (  2,  8   )     ref  ->  r12         class-hnd "impAppendStmt" <<unknown class>>
 ;* V12 tmp4         [V12    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V13 tmp5         [V13    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V14 tmp6         [V14    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
@@ -29,8 +29,8 @@
 ;  V19 tmp11        [V19,T03] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V20 tmp12        [V20    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V21 tmp13        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V22 tmp14        [V22,T20] (  2,  8   )     int  ->  rax         "Inlining Arg"
-;  V23 tmp15        [V23,T15] (  2,  8   )   byref  ->  r12         "Inlining Arg"
+;  V22 tmp14        [V22,T16] (  2,  8   )     int  ->   r8         "Inlining Arg"
+;  V23 tmp15        [V23,T12] (  2,  8   )   byref  ->  rax         "Inlining Arg"
 ;* V24 tmp16        [V24    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp17        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp18        [V26    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -38,7 +38,7 @@
 ;* V28 tmp20        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V29 tmp21        [V29    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V30 tmp22        [V30    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V31 tmp23        [V31,T30] (  3,  6   )     int  ->  [rsp+0x64]  spill-single-def "Inline stloc first use temp"
+;  V31 tmp23        [V31,T29] (  3,  6   )     int  ->  [rsp+0x84]  spill-single-def "Inline stloc first use temp"
 ;* V32 tmp24        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V33 tmp25        [V33    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V34 tmp26        [V34    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -50,8 +50,8 @@
 ;  V40 tmp32        [V40,T04] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V41 tmp33        [V41    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V42 tmp34        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V43 tmp35        [V43,T21] (  2,  8   )     int  ->  r10         "Inlining Arg"
-;  V44 tmp36        [V44,T16] (  2,  8   )   byref  ->   r8         "Inlining Arg"
+;  V43 tmp35        [V43,T17] (  2,  8   )     int  ->   r9         "Inlining Arg"
+;  V44 tmp36        [V44,T13] (  2,  8   )   byref  ->  r10         "Inlining Arg"
 ;* V45 tmp37        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp38        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp39        [V47    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -59,7 +59,7 @@
 ;* V49 tmp41        [V49    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V50 tmp42        [V50    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V51 tmp43        [V51    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V52 tmp44        [V52,T31] (  3,  6   )     int  ->  [rsp+0x60]  spill-single-def "Inline stloc first use temp"
+;  V52 tmp44        [V52,T30] (  3,  6   )     int  ->  [rsp+0x80]  spill-single-def "Inline stloc first use temp"
 ;* V53 tmp45        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V54 tmp46        [V54    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V55 tmp47        [V55    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -71,8 +71,8 @@
 ;  V61 tmp53        [V61,T05] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V62 tmp54        [V62    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V63 tmp55        [V63    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V64 tmp56        [V64,T22] (  2,  8   )     int  ->  r12         "Inlining Arg"
-;  V65 tmp57        [V65,T17] (  2,  8   )   byref  ->  r13         "Inlining Arg"
+;  V64 tmp56        [V64,T18] (  2,  8   )     int  ->  rax         "Inlining Arg"
+;  V65 tmp57        [V65,T14] (  2,  8   )   byref  ->  r12         "Inlining Arg"
 ;* V66 tmp58        [V66    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V67 tmp59        [V67    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V68 tmp60        [V68    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -80,13 +80,13 @@
 ;* V70 tmp62        [V70    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V71 tmp63        [V71    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V72 tmp64        [V72    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V73 tmp65        [V73,T32] (  3,  6   )     int  ->  r12         "Inline stloc first use temp"
+;  V73 tmp65        [V73,T31] (  3,  6   )     int  ->  [rsp+0x7C]  spill-single-def "Inline stloc first use temp"
 ;* V74 tmp66        [V74    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V75 tmp67        [V75    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V76 tmp68        [V76    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V77 tmp69        [V77    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V78 tmp70        [V78    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V79 tmp71        [V79,T11] (  4,  8   )     int  ->  rdx         "Inline stloc first use temp"
+;  V79 tmp71        [V79,T08] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V80 tmp72        [V80    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
 ;* V81 tmp73        [V81    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V82 tmp74        [V82    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
@@ -95,8 +95,8 @@
 ;  V85 tmp77        [V85,T06] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V86 tmp78        [V86    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V87 tmp79        [V87    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V88 tmp80        [V88,T23] (  2,  8   )     int  ->  r12         "Inlining Arg"
-;  V89 tmp81        [V89,T18] (  2,  8   )   byref  ->  r13         "Inlining Arg"
+;  V88 tmp80        [V88,T19] (  2,  8   )     int  ->  rax         "Inlining Arg"
+;  V89 tmp81        [V89,T15] (  2,  8   )   byref  ->  r12         "Inlining Arg"
 ;* V90 tmp82        [V90    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V91 tmp83        [V91    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V92 tmp84        [V92    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -104,20 +104,20 @@
 ;* V94 tmp86        [V94    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V95 tmp87        [V95    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V96 tmp88        [V96    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V97 tmp89        [V97,T33] (  3,  6   )     int  ->  r12         "Inline stloc first use temp"
+;  V97 tmp89        [V97,T32] (  3,  6   )     int  ->  [rsp+0x78]  spill-single-def "Inline stloc first use temp"
 ;* V98 tmp90        [V98    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V99 tmp91        [V99    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V100 tmp92       [V100    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V101 tmp93       [V101    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V102 tmp94       [V102    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V103 tmp95       [V103,T12] (  4,  8   )     int  ->  rdx         "Inline stloc first use temp"
+;  V103 tmp95       [V103,T09] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V104 tmp96       [V104    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
 ;* V105 tmp97       [V105    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V106 tmp98       [V106,T13] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
+;  V106 tmp98       [V106,T10] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V107 tmp99       [V107    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
 ;* V108 tmp100      [V108    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
-;  V109 tmp101      [V109,T40] (  2,  4   )   byref  ->  r12         "field V12._reference (fldOffset=0x0)" P-INDEP
-;  V110 tmp102      [V110,T54] (  2,  4   )     int  ->  [rsp+0x5C]  spill-single-def "field V12._length (fldOffset=0x8)" P-INDEP
+;  V109 tmp101      [V109,T40] (  2,  4   )   byref  ->  [rsp+0x48]  spill-single-def "field V12._reference (fldOffset=0x0)" P-INDEP
+;  V110 tmp102      [V110,T54] (  2,  4   )     int  ->  [rsp+0x74]  spill-single-def "field V12._length (fldOffset=0x8)" P-INDEP
 ;* V111 tmp103      [V111    ] (  0,  0   )   byref  ->  zero-ref    "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V112 tmp104      [V112    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
 ;* V113 tmp105      [V113    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
@@ -126,90 +126,85 @@
 ;* V116 tmp108      [V116    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;* V117 tmp109      [V117    ] (  0,  0   )   byref  ->  zero-ref    "field V17._reference (fldOffset=0x0)" P-INDEP
 ;* V118 tmp110      [V118    ] (  0,  0   )     int  ->  zero-ref    "field V17._length (fldOffset=0x8)" P-INDEP
-;  V119 tmp111      [V119,T24] (  3,  6   )   byref  ->  r12         "field V18._reference (fldOffset=0x0)" P-INDEP
-;  V120 tmp112      [V120,T34] (  3,  6   )     int  ->  rax         "field V18._length (fldOffset=0x8)" P-INDEP
-;  V121 tmp113      [V121,T41] (  2,  4   )   byref  ->  r12         "field V20._reference (fldOffset=0x0)" P-INDEP
-;  V122 tmp114      [V122,T55] (  2,  4   )     int  ->  rax         "field V20._length (fldOffset=0x8)" P-INDEP
+;  V119 tmp111      [V119,T22] (  3,  6   )   byref  ->  rax         "field V18._reference (fldOffset=0x0)" P-INDEP
+;  V120 tmp112      [V120,T33] (  3,  6   )     int  ->   r8         "field V18._length (fldOffset=0x8)" P-INDEP
+;  V121 tmp113      [V121,T41] (  2,  4   )   byref  ->  rax         "field V20._reference (fldOffset=0x0)" P-INDEP
+;  V122 tmp114      [V122,T55] (  2,  4   )     int  ->   r8         "field V20._length (fldOffset=0x8)" P-INDEP
 ;* V123 tmp115      [V123    ] (  0,  0   )   byref  ->  zero-ref    "field V21._reference (fldOffset=0x0)" P-INDEP
 ;* V124 tmp116      [V124    ] (  0,  0   )     int  ->  zero-ref    "field V21._length (fldOffset=0x8)" P-INDEP
-;  V125 tmp117      [V125,T42] (  2,  4   )   byref  ->  r12         "field V28._reference (fldOffset=0x0)" P-INDEP
+;  V125 tmp117      [V125,T42] (  2,  4   )   byref  ->  [rsp+0x40]  spill-single-def "field V28._reference (fldOffset=0x0)" P-INDEP
 ;* V126 tmp118      [V126    ] (  0,  0   )     int  ->  zero-ref    "field V28._length (fldOffset=0x8)" P-INDEP
-;  V127 tmp119      [V127,T43] (  2,  4   )   byref  ->  r12         "field V32._reference (fldOffset=0x0)" P-INDEP
-;  V128 tmp120      [V128,T56] (  2,  4   )     int  ->  rax         "field V32._length (fldOffset=0x8)" P-INDEP
+;  V127 tmp119      [V127,T43] (  2,  4   )   byref  ->  rax         "field V32._reference (fldOffset=0x0)" P-INDEP
+;  V128 tmp120      [V128,T56] (  2,  4   )     int  ->   r8         "field V32._length (fldOffset=0x8)" P-INDEP
 ;* V129 tmp121      [V129    ] (  0,  0   )   byref  ->  zero-ref    "field V33._reference (fldOffset=0x0)" P-INDEP
 ;* V130 tmp122      [V130    ] (  0,  0   )     int  ->  zero-ref    "field V33._length (fldOffset=0x8)" P-INDEP
 ;* V131 tmp123      [V131    ] (  0,  0   )   byref  ->  zero-ref    "field V37._reference (fldOffset=0x0)" P-INDEP
 ;* V132 tmp124      [V132    ] (  0,  0   )     int  ->  zero-ref    "field V37._length (fldOffset=0x8)" P-INDEP
 ;* V133 tmp125      [V133    ] (  0,  0   )   byref  ->  zero-ref    "field V38._reference (fldOffset=0x0)" P-INDEP
 ;* V134 tmp126      [V134    ] (  0,  0   )     int  ->  zero-ref    "field V38._length (fldOffset=0x8)" P-INDEP
-;  V135 tmp127      [V135,T25] (  3,  6   )   byref  ->   r8         "field V39._reference (fldOffset=0x0)" P-INDEP
-;  V136 tmp128      [V136,T35] (  3,  6   )     int  ->  r10         "field V39._length (fldOffset=0x8)" P-INDEP
-;  V137 tmp129      [V137,T44] (  2,  4   )   byref  ->   r8         "field V41._reference (fldOffset=0x0)" P-INDEP
-;  V138 tmp130      [V138,T57] (  2,  4   )     int  ->  r10         "field V41._length (fldOffset=0x8)" P-INDEP
+;  V135 tmp127      [V135,T23] (  3,  6   )   byref  ->  r10         "field V39._reference (fldOffset=0x0)" P-INDEP
+;  V136 tmp128      [V136,T34] (  3,  6   )     int  ->   r9         "field V39._length (fldOffset=0x8)" P-INDEP
+;  V137 tmp129      [V137,T44] (  2,  4   )   byref  ->  r10         "field V41._reference (fldOffset=0x0)" P-INDEP
+;  V138 tmp130      [V138,T57] (  2,  4   )     int  ->   r9         "field V41._length (fldOffset=0x8)" P-INDEP
 ;* V139 tmp131      [V139    ] (  0,  0   )   byref  ->  zero-ref    "field V42._reference (fldOffset=0x0)" P-INDEP
 ;* V140 tmp132      [V140    ] (  0,  0   )     int  ->  zero-ref    "field V42._length (fldOffset=0x8)" P-INDEP
-;  V141 tmp133      [V141,T45] (  2,  4   )   byref  ->  [rsp+0x30]  spill-single-def "field V49._reference (fldOffset=0x0)" P-INDEP
+;  V141 tmp133      [V141,T45] (  2,  4   )   byref  ->  [rsp+0x38]  spill-single-def "field V49._reference (fldOffset=0x0)" P-INDEP
 ;* V142 tmp134      [V142    ] (  0,  0   )     int  ->  zero-ref    "field V49._length (fldOffset=0x8)" P-INDEP
-;  V143 tmp135      [V143,T46] (  2,  4   )   byref  ->   r8         "field V53._reference (fldOffset=0x0)" P-INDEP
-;  V144 tmp136      [V144,T58] (  2,  4   )     int  ->  r10         "field V53._length (fldOffset=0x8)" P-INDEP
+;  V143 tmp135      [V143,T46] (  2,  4   )   byref  ->  r10         "field V53._reference (fldOffset=0x0)" P-INDEP
+;  V144 tmp136      [V144,T58] (  2,  4   )     int  ->   r9         "field V53._length (fldOffset=0x8)" P-INDEP
 ;* V145 tmp137      [V145    ] (  0,  0   )   byref  ->  zero-ref    "field V54._reference (fldOffset=0x0)" P-INDEP
 ;* V146 tmp138      [V146    ] (  0,  0   )     int  ->  zero-ref    "field V54._length (fldOffset=0x8)" P-INDEP
 ;* V147 tmp139      [V147    ] (  0,  0   )   byref  ->  zero-ref    "field V58._reference (fldOffset=0x0)" P-INDEP
 ;* V148 tmp140      [V148    ] (  0,  0   )     int  ->  zero-ref    "field V58._length (fldOffset=0x8)" P-INDEP
 ;* V149 tmp141      [V149    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V150 tmp142      [V150    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-INDEP
-;  V151 tmp143      [V151,T26] (  3,  6   )   byref  ->  r13         "field V60._reference (fldOffset=0x0)" P-INDEP
-;  V152 tmp144      [V152,T36] (  3,  6   )     int  ->  r12         "field V60._length (fldOffset=0x8)" P-INDEP
-;  V153 tmp145      [V153,T47] (  2,  4   )   byref  ->  r13         "field V62._reference (fldOffset=0x0)" P-INDEP
-;  V154 tmp146      [V154,T59] (  2,  4   )     int  ->  r12         "field V62._length (fldOffset=0x8)" P-INDEP
+;  V151 tmp143      [V151,T24] (  3,  6   )   byref  ->  r12         "field V60._reference (fldOffset=0x0)" P-INDEP
+;  V152 tmp144      [V152,T35] (  3,  6   )     int  ->  rax         "field V60._length (fldOffset=0x8)" P-INDEP
+;  V153 tmp145      [V153,T47] (  2,  4   )   byref  ->  r12         "field V62._reference (fldOffset=0x0)" P-INDEP
+;  V154 tmp146      [V154,T59] (  2,  4   )     int  ->  rax         "field V62._length (fldOffset=0x8)" P-INDEP
 ;* V155 tmp147      [V155    ] (  0,  0   )   byref  ->  zero-ref    "field V63._reference (fldOffset=0x0)" P-INDEP
 ;* V156 tmp148      [V156    ] (  0,  0   )     int  ->  zero-ref    "field V63._length (fldOffset=0x8)" P-INDEP
-;  V157 tmp149      [V157,T27] (  3,  6   )   byref  ->  r13         "field V70._reference (fldOffset=0x0)" P-INDEP
+;  V157 tmp149      [V157,T25] (  3,  6   )   byref  ->  r12         "field V70._reference (fldOffset=0x0)" P-INDEP
 ;* V158 tmp150      [V158    ] (  0,  0   )     int  ->  zero-ref    "field V70._length (fldOffset=0x8)" P-INDEP
-;  V159 tmp151      [V159,T48] (  2,  4   )   byref  ->  rcx         "field V74._reference (fldOffset=0x0)" P-INDEP
-;  V160 tmp152      [V160,T37] (  3,  6   )     int  ->  r12         "field V74._length (fldOffset=0x8)" P-INDEP
+;  V159 tmp151      [V159,T48] (  2,  4   )   byref  ->  rdx         "field V74._reference (fldOffset=0x0)" P-INDEP
+;  V160 tmp152      [V160,T36] (  3,  6   )     int  ->  rax         "field V74._length (fldOffset=0x8)" P-INDEP
 ;* V161 tmp153      [V161    ] (  0,  0   )   byref  ->  zero-ref    "field V75._reference (fldOffset=0x0)" P-INDEP
 ;* V162 tmp154      [V162    ] (  0,  0   )     int  ->  zero-ref    "field V75._length (fldOffset=0x8)" P-INDEP
-;  V163 tmp155      [V163,T49] (  2,  4   )   byref  ->  rax         "field V80._reference (fldOffset=0x0)" P-INDEP
-;  V164 tmp156      [V164,T60] (  2,  4   )     int  ->   r8         "field V80._length (fldOffset=0x8)" P-INDEP
+;  V163 tmp155      [V163,T49] (  2,  4   )   byref  ->   r8         "field V80._reference (fldOffset=0x0)" P-INDEP
+;  V164 tmp156      [V164,T60] (  2,  4   )     int  ->  r10         "field V80._length (fldOffset=0x8)" P-INDEP
 ;* V165 tmp157      [V165    ] (  0,  0   )   byref  ->  zero-ref    "field V81._reference (fldOffset=0x0)" P-INDEP
 ;* V166 tmp158      [V166    ] (  0,  0   )     int  ->  zero-ref    "field V81._length (fldOffset=0x8)" P-INDEP
 ;* V167 tmp159      [V167    ] (  0,  0   )   byref  ->  zero-ref    "field V82._reference (fldOffset=0x0)" P-INDEP
 ;* V168 tmp160      [V168    ] (  0,  0   )     int  ->  zero-ref    "field V82._length (fldOffset=0x8)" P-INDEP
 ;* V169 tmp161      [V169    ] (  0,  0   )   byref  ->  zero-ref    "field V83._reference (fldOffset=0x0)" P-INDEP
 ;* V170 tmp162      [V170    ] (  0,  0   )     int  ->  zero-ref    "field V83._length (fldOffset=0x8)" P-INDEP
-;  V171 tmp163      [V171,T28] (  3,  6   )   byref  ->  r13         "field V84._reference (fldOffset=0x0)" P-INDEP
-;  V172 tmp164      [V172,T38] (  3,  6   )     int  ->  r12         "field V84._length (fldOffset=0x8)" P-INDEP
-;  V173 tmp165      [V173,T50] (  2,  4   )   byref  ->  r13         "field V86._reference (fldOffset=0x0)" P-INDEP
-;  V174 tmp166      [V174,T61] (  2,  4   )     int  ->  r12         "field V86._length (fldOffset=0x8)" P-INDEP
+;  V171 tmp163      [V171,T26] (  3,  6   )   byref  ->  r12         "field V84._reference (fldOffset=0x0)" P-INDEP
+;  V172 tmp164      [V172,T37] (  3,  6   )     int  ->  rax         "field V84._length (fldOffset=0x8)" P-INDEP
+;  V173 tmp165      [V173,T50] (  2,  4   )   byref  ->  r12         "field V86._reference (fldOffset=0x0)" P-INDEP
+;  V174 tmp166      [V174,T61] (  2,  4   )     int  ->  rax         "field V86._length (fldOffset=0x8)" P-INDEP
 ;* V175 tmp167      [V175    ] (  0,  0   )   byref  ->  zero-ref    "field V87._reference (fldOffset=0x0)" P-INDEP
 ;* V176 tmp168      [V176    ] (  0,  0   )     int  ->  zero-ref    "field V87._length (fldOffset=0x8)" P-INDEP
-;  V177 tmp169      [V177,T29] (  3,  6   )   byref  ->  r13         "field V94._reference (fldOffset=0x0)" P-INDEP
+;  V177 tmp169      [V177,T27] (  3,  6   )   byref  ->  r12         "field V94._reference (fldOffset=0x0)" P-INDEP
 ;* V178 tmp170      [V178    ] (  0,  0   )     int  ->  zero-ref    "field V94._length (fldOffset=0x8)" P-INDEP
-;  V179 tmp171      [V179,T51] (  2,  4   )   byref  ->  rcx         "field V98._reference (fldOffset=0x0)" P-INDEP
-;  V180 tmp172      [V180,T39] (  3,  6   )     int  ->  r12         "field V98._length (fldOffset=0x8)" P-INDEP
+;  V179 tmp171      [V179,T51] (  2,  4   )   byref  ->  rdx         "field V98._reference (fldOffset=0x0)" P-INDEP
+;  V180 tmp172      [V180,T38] (  3,  6   )     int  ->  rax         "field V98._length (fldOffset=0x8)" P-INDEP
 ;* V181 tmp173      [V181    ] (  0,  0   )   byref  ->  zero-ref    "field V99._reference (fldOffset=0x0)" P-INDEP
 ;* V182 tmp174      [V182    ] (  0,  0   )     int  ->  zero-ref    "field V99._length (fldOffset=0x8)" P-INDEP
-;  V183 tmp175      [V183,T52] (  2,  4   )   byref  ->  rax         "field V104._reference (fldOffset=0x0)" P-INDEP
-;  V184 tmp176      [V184,T62] (  2,  4   )     int  ->   r8         "field V104._length (fldOffset=0x8)" P-INDEP
+;  V183 tmp175      [V183,T52] (  2,  4   )   byref  ->   r8         "field V104._reference (fldOffset=0x0)" P-INDEP
+;  V184 tmp176      [V184,T62] (  2,  4   )     int  ->  r10         "field V104._length (fldOffset=0x8)" P-INDEP
 ;* V185 tmp177      [V185    ] (  0,  0   )   byref  ->  zero-ref    "field V105._reference (fldOffset=0x0)" P-INDEP
 ;* V186 tmp178      [V186    ] (  0,  0   )     int  ->  zero-ref    "field V105._length (fldOffset=0x8)" P-INDEP
 ;  V187 tmp179      [V187,T53] (  2,  4   )   byref  ->  rax         "field V107._reference (fldOffset=0x0)" P-INDEP
 ;  V188 tmp180      [V188,T63] (  2,  4   )     int  ->   r8         "field V107._length (fldOffset=0x8)" P-INDEP
-;  V189 tmp181      [V189,T69] (  3,  3   )     ref  ->  rcx         single-def "arr expr"
-;  V190 tmp182      [V190,T71] (  3,  3   )     int  ->  rdx         "index expr"
-;  V191 tmp183      [V191,T70] (  3,  3   )     ref  ->  rcx         single-def "arr expr"
-;  V192 tmp184      [V192,T72] (  3,  3   )     int  ->  rdx         "index expr"
-;  V193 tmp185      [V193    ] (  9, 36   )  struct (16) [rsp+0x48]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;  V194 tmp186      [V194    ] (  3, 12   )  struct (16) [rsp+0x38]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;* V195 tmp187      [V195,T64] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V196 tmp188      [V196,T65] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V197 tmp189      [V197,T68] (  0,  0   )     int  ->  zero-ref    "argument with side effect"
-;  V198 tmp190      [V198,T19] (  2,  8   )     ref  ->   r9         "argument with side effect"
-;* V199 tmp191      [V199,T66] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V200 tmp192      [V200,T67] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
+;  V189 tmp181      [V189,T64] (  3,  3   )     ref  ->  rcx         single-def "arr expr"
+;  V190 tmp182      [V190,T66] (  3,  3   )     int  ->  rdx         "index expr"
+;  V191 tmp183      [V191,T65] (  3,  3   )     ref  ->  rcx         single-def "arr expr"
+;  V192 tmp184      [V192,T67] (  3,  3   )     int  ->  rdx         "index expr"
+;  V193 tmp185      [V193    ] (  9, 36   )  struct (16) [rsp+0x60]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
...

+45 (+6.11%) : 4802.dasm - System.Number:FormatCurrencyushort (FullOpts)

@@ -9,17 +9,17 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] ( 18, 34   )   byref  ->  rbx         single-def
-;  V01 arg1         [V01,T09] (  4,  5   )   byref  ->  rdi         single-def
-;  V02 arg2         [V02,T10] (  3,  4   )     int  ->  rbp         single-def
+;  V01 arg1         [V01,T20] (  4,  5   )   byref  ->  rdi         single-def
+;  V02 arg2         [V02,T28] (  3,  4   )     int  ->  rbp         single-def
 ;  V03 arg3         [V03,T07] (  9, 13   )     ref  ->  rsi         class-hnd exact single-def <System.Globalization.NumberFormatInfo>
 ;* V04 loc0         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
-;  V05 loc1         [V05,T08] (  4, 10   )     ref  ->  r14         class-hnd exact single-def <System.String>
+;  V05 loc1         [V05,T21] (  3,  6   )     ref  ->  r14         class-hnd exact single-def <System.String>
 ;  V06 loc2         [V06,T01] (  5, 17   )     int  ->  r15        
 ;  V07 loc3         [V07,T02] (  6, 16   )  ushort  ->  rdx        
 ;  V08 OutArgs      [V08    ] (  1,  1   )  struct (48) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V09 tmp1         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <<unknown class>>
-;  V10 tmp2         [V10,T73] (  3,  2   )     ref  ->  r14        
-;  V11 tmp3         [V11,T14] (  2,  8   )     ref  ->  r13         class-hnd "impAppendStmt" <<unknown class>>
+;  V10 tmp2         [V10,T68] (  3,  2   )     ref  ->  r14        
+;  V11 tmp3         [V11,T11] (  2,  8   )     ref  ->  r12         class-hnd "impAppendStmt" <<unknown class>>
 ;* V12 tmp4         [V12    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V13 tmp5         [V13    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V14 tmp6         [V14    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
@@ -30,8 +30,8 @@
 ;  V19 tmp11        [V19,T03] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V20 tmp12        [V20    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V21 tmp13        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V22 tmp14        [V22,T20] (  2,  8   )     int  ->  rax         "Inlining Arg"
-;  V23 tmp15        [V23,T15] (  2,  8   )   byref  ->  r12         "Inlining Arg"
+;  V22 tmp14        [V22,T16] (  2,  8   )     int  ->   r8         "Inlining Arg"
+;  V23 tmp15        [V23,T12] (  2,  8   )   byref  ->  rax         "Inlining Arg"
 ;* V24 tmp16        [V24    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp17        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp18        [V26    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -39,7 +39,7 @@
 ;* V28 tmp20        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V29 tmp21        [V29    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V30 tmp22        [V30    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V31 tmp23        [V31,T30] (  3,  6   )     int  ->  [rsp+0x64]  spill-single-def "Inline stloc first use temp"
+;  V31 tmp23        [V31,T29] (  3,  6   )     int  ->  [rsp+0x84]  spill-single-def "Inline stloc first use temp"
 ;* V32 tmp24        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V33 tmp25        [V33    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V34 tmp26        [V34    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -51,8 +51,8 @@
 ;  V40 tmp32        [V40,T04] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V41 tmp33        [V41    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V42 tmp34        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V43 tmp35        [V43,T21] (  2,  8   )     int  ->  r10         "Inlining Arg"
-;  V44 tmp36        [V44,T16] (  2,  8   )   byref  ->   r8         "Inlining Arg"
+;  V43 tmp35        [V43,T17] (  2,  8   )     int  ->   r9         "Inlining Arg"
+;  V44 tmp36        [V44,T13] (  2,  8   )   byref  ->  r10         "Inlining Arg"
 ;* V45 tmp37        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp38        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp39        [V47    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -60,7 +60,7 @@
 ;* V49 tmp41        [V49    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V50 tmp42        [V50    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V51 tmp43        [V51    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V52 tmp44        [V52,T31] (  3,  6   )     int  ->  [rsp+0x60]  spill-single-def "Inline stloc first use temp"
+;  V52 tmp44        [V52,T30] (  3,  6   )     int  ->  [rsp+0x80]  spill-single-def "Inline stloc first use temp"
 ;* V53 tmp45        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V54 tmp46        [V54    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V55 tmp47        [V55    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -72,8 +72,8 @@
 ;  V61 tmp53        [V61,T05] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V62 tmp54        [V62    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V63 tmp55        [V63    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V64 tmp56        [V64,T22] (  2,  8   )     int  ->  r12         "Inlining Arg"
-;  V65 tmp57        [V65,T17] (  2,  8   )   byref  ->  r13         "Inlining Arg"
+;  V64 tmp56        [V64,T18] (  2,  8   )     int  ->  rax         "Inlining Arg"
+;  V65 tmp57        [V65,T14] (  2,  8   )   byref  ->  r12         "Inlining Arg"
 ;* V66 tmp58        [V66    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V67 tmp59        [V67    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V68 tmp60        [V68    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -81,13 +81,13 @@
 ;* V70 tmp62        [V70    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V71 tmp63        [V71    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V72 tmp64        [V72    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V73 tmp65        [V73,T32] (  3,  6   )     int  ->  r12         "Inline stloc first use temp"
+;  V73 tmp65        [V73,T31] (  3,  6   )     int  ->  [rsp+0x7C]  spill-single-def "Inline stloc first use temp"
 ;* V74 tmp66        [V74    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V75 tmp67        [V75    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V76 tmp68        [V76    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V77 tmp69        [V77    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V78 tmp70        [V78    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V79 tmp71        [V79,T11] (  4,  8   )     int  ->  rdx         "Inline stloc first use temp"
+;  V79 tmp71        [V79,T08] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V80 tmp72        [V80    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
 ;* V81 tmp73        [V81    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V82 tmp74        [V82    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
@@ -96,8 +96,8 @@
 ;  V85 tmp77        [V85,T06] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V86 tmp78        [V86    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V87 tmp79        [V87    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V88 tmp80        [V88,T23] (  2,  8   )     int  ->  r12         "Inlining Arg"
-;  V89 tmp81        [V89,T18] (  2,  8   )   byref  ->  r13         "Inlining Arg"
+;  V88 tmp80        [V88,T19] (  2,  8   )     int  ->  rax         "Inlining Arg"
+;  V89 tmp81        [V89,T15] (  2,  8   )   byref  ->  r12         "Inlining Arg"
 ;* V90 tmp82        [V90    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V91 tmp83        [V91    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V92 tmp84        [V92    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -105,20 +105,20 @@
 ;* V94 tmp86        [V94    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V95 tmp87        [V95    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V96 tmp88        [V96    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V97 tmp89        [V97,T33] (  3,  6   )     int  ->  r12         "Inline stloc first use temp"
+;  V97 tmp89        [V97,T32] (  3,  6   )     int  ->  [rsp+0x78]  spill-single-def "Inline stloc first use temp"
 ;* V98 tmp90        [V98    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V99 tmp91        [V99    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V100 tmp92       [V100    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V101 tmp93       [V101    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V102 tmp94       [V102    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V103 tmp95       [V103,T12] (  4,  8   )     int  ->  rdx         "Inline stloc first use temp"
+;  V103 tmp95       [V103,T09] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V104 tmp96       [V104    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
 ;* V105 tmp97       [V105    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V106 tmp98       [V106,T13] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
+;  V106 tmp98       [V106,T10] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V107 tmp99       [V107    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
 ;* V108 tmp100      [V108    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
-;  V109 tmp101      [V109,T40] (  2,  4   )   byref  ->  r12         "field V12._reference (fldOffset=0x0)" P-INDEP
-;  V110 tmp102      [V110,T54] (  2,  4   )     int  ->  [rsp+0x5C]  spill-single-def "field V12._length (fldOffset=0x8)" P-INDEP
+;  V109 tmp101      [V109,T40] (  2,  4   )   byref  ->  [rsp+0x48]  spill-single-def "field V12._reference (fldOffset=0x0)" P-INDEP
+;  V110 tmp102      [V110,T54] (  2,  4   )     int  ->  [rsp+0x74]  spill-single-def "field V12._length (fldOffset=0x8)" P-INDEP
 ;* V111 tmp103      [V111    ] (  0,  0   )   byref  ->  zero-ref    "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V112 tmp104      [V112    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
 ;* V113 tmp105      [V113    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
@@ -127,90 +127,85 @@
 ;* V116 tmp108      [V116    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;* V117 tmp109      [V117    ] (  0,  0   )   byref  ->  zero-ref    "field V17._reference (fldOffset=0x0)" P-INDEP
 ;* V118 tmp110      [V118    ] (  0,  0   )     int  ->  zero-ref    "field V17._length (fldOffset=0x8)" P-INDEP
-;  V119 tmp111      [V119,T24] (  3,  6   )   byref  ->  r12         "field V18._reference (fldOffset=0x0)" P-INDEP
-;  V120 tmp112      [V120,T34] (  3,  6   )     int  ->  rax         "field V18._length (fldOffset=0x8)" P-INDEP
-;  V121 tmp113      [V121,T41] (  2,  4   )   byref  ->  r12         "field V20._reference (fldOffset=0x0)" P-INDEP
-;  V122 tmp114      [V122,T55] (  2,  4   )     int  ->  rax         "field V20._length (fldOffset=0x8)" P-INDEP
+;  V119 tmp111      [V119,T22] (  3,  6   )   byref  ->  rax         "field V18._reference (fldOffset=0x0)" P-INDEP
+;  V120 tmp112      [V120,T33] (  3,  6   )     int  ->   r8         "field V18._length (fldOffset=0x8)" P-INDEP
+;  V121 tmp113      [V121,T41] (  2,  4   )   byref  ->  rax         "field V20._reference (fldOffset=0x0)" P-INDEP
+;  V122 tmp114      [V122,T55] (  2,  4   )     int  ->   r8         "field V20._length (fldOffset=0x8)" P-INDEP
 ;* V123 tmp115      [V123    ] (  0,  0   )   byref  ->  zero-ref    "field V21._reference (fldOffset=0x0)" P-INDEP
 ;* V124 tmp116      [V124    ] (  0,  0   )     int  ->  zero-ref    "field V21._length (fldOffset=0x8)" P-INDEP
-;  V125 tmp117      [V125,T42] (  2,  4   )   byref  ->  r12         "field V28._reference (fldOffset=0x0)" P-INDEP
+;  V125 tmp117      [V125,T42] (  2,  4   )   byref  ->  [rsp+0x40]  spill-single-def "field V28._reference (fldOffset=0x0)" P-INDEP
 ;* V126 tmp118      [V126    ] (  0,  0   )     int  ->  zero-ref    "field V28._length (fldOffset=0x8)" P-INDEP
-;  V127 tmp119      [V127,T43] (  2,  4   )   byref  ->  r12         "field V32._reference (fldOffset=0x0)" P-INDEP
-;  V128 tmp120      [V128,T56] (  2,  4   )     int  ->  rax         "field V32._length (fldOffset=0x8)" P-INDEP
+;  V127 tmp119      [V127,T43] (  2,  4   )   byref  ->  rax         "field V32._reference (fldOffset=0x0)" P-INDEP
+;  V128 tmp120      [V128,T56] (  2,  4   )     int  ->   r8         "field V32._length (fldOffset=0x8)" P-INDEP
 ;* V129 tmp121      [V129    ] (  0,  0   )   byref  ->  zero-ref    "field V33._reference (fldOffset=0x0)" P-INDEP
 ;* V130 tmp122      [V130    ] (  0,  0   )     int  ->  zero-ref    "field V33._length (fldOffset=0x8)" P-INDEP
 ;* V131 tmp123      [V131    ] (  0,  0   )   byref  ->  zero-ref    "field V37._reference (fldOffset=0x0)" P-INDEP
 ;* V132 tmp124      [V132    ] (  0,  0   )     int  ->  zero-ref    "field V37._length (fldOffset=0x8)" P-INDEP
 ;* V133 tmp125      [V133    ] (  0,  0   )   byref  ->  zero-ref    "field V38._reference (fldOffset=0x0)" P-INDEP
 ;* V134 tmp126      [V134    ] (  0,  0   )     int  ->  zero-ref    "field V38._length (fldOffset=0x8)" P-INDEP
-;  V135 tmp127      [V135,T25] (  3,  6   )   byref  ->   r8         "field V39._reference (fldOffset=0x0)" P-INDEP
-;  V136 tmp128      [V136,T35] (  3,  6   )     int  ->  r10         "field V39._length (fldOffset=0x8)" P-INDEP
-;  V137 tmp129      [V137,T44] (  2,  4   )   byref  ->   r8         "field V41._reference (fldOffset=0x0)" P-INDEP
-;  V138 tmp130      [V138,T57] (  2,  4   )     int  ->  r10         "field V41._length (fldOffset=0x8)" P-INDEP
+;  V135 tmp127      [V135,T23] (  3,  6   )   byref  ->  r10         "field V39._reference (fldOffset=0x0)" P-INDEP
+;  V136 tmp128      [V136,T34] (  3,  6   )     int  ->   r9         "field V39._length (fldOffset=0x8)" P-INDEP
+;  V137 tmp129      [V137,T44] (  2,  4   )   byref  ->  r10         "field V41._reference (fldOffset=0x0)" P-INDEP
+;  V138 tmp130      [V138,T57] (  2,  4   )     int  ->   r9         "field V41._length (fldOffset=0x8)" P-INDEP
 ;* V139 tmp131      [V139    ] (  0,  0   )   byref  ->  zero-ref    "field V42._reference (fldOffset=0x0)" P-INDEP
 ;* V140 tmp132      [V140    ] (  0,  0   )     int  ->  zero-ref    "field V42._length (fldOffset=0x8)" P-INDEP
-;  V141 tmp133      [V141,T45] (  2,  4   )   byref  ->  [rsp+0x30]  spill-single-def "field V49._reference (fldOffset=0x0)" P-INDEP
+;  V141 tmp133      [V141,T45] (  2,  4   )   byref  ->  [rsp+0x38]  spill-single-def "field V49._reference (fldOffset=0x0)" P-INDEP
 ;* V142 tmp134      [V142    ] (  0,  0   )     int  ->  zero-ref    "field V49._length (fldOffset=0x8)" P-INDEP
-;  V143 tmp135      [V143,T46] (  2,  4   )   byref  ->   r8         "field V53._reference (fldOffset=0x0)" P-INDEP
-;  V144 tmp136      [V144,T58] (  2,  4   )     int  ->  r10         "field V53._length (fldOffset=0x8)" P-INDEP
+;  V143 tmp135      [V143,T46] (  2,  4   )   byref  ->  r10         "field V53._reference (fldOffset=0x0)" P-INDEP
+;  V144 tmp136      [V144,T58] (  2,  4   )     int  ->   r9         "field V53._length (fldOffset=0x8)" P-INDEP
 ;* V145 tmp137      [V145    ] (  0,  0   )   byref  ->  zero-ref    "field V54._reference (fldOffset=0x0)" P-INDEP
 ;* V146 tmp138      [V146    ] (  0,  0   )     int  ->  zero-ref    "field V54._length (fldOffset=0x8)" P-INDEP
 ;* V147 tmp139      [V147    ] (  0,  0   )   byref  ->  zero-ref    "field V58._reference (fldOffset=0x0)" P-INDEP
 ;* V148 tmp140      [V148    ] (  0,  0   )     int  ->  zero-ref    "field V58._length (fldOffset=0x8)" P-INDEP
 ;* V149 tmp141      [V149    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V150 tmp142      [V150    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-INDEP
-;  V151 tmp143      [V151,T26] (  3,  6   )   byref  ->  r13         "field V60._reference (fldOffset=0x0)" P-INDEP
-;  V152 tmp144      [V152,T36] (  3,  6   )     int  ->  r12         "field V60._length (fldOffset=0x8)" P-INDEP
-;  V153 tmp145      [V153,T47] (  2,  4   )   byref  ->  r13         "field V62._reference (fldOffset=0x0)" P-INDEP
-;  V154 tmp146      [V154,T59] (  2,  4   )     int  ->  r12         "field V62._length (fldOffset=0x8)" P-INDEP
+;  V151 tmp143      [V151,T24] (  3,  6   )   byref  ->  r12         "field V60._reference (fldOffset=0x0)" P-INDEP
+;  V152 tmp144      [V152,T35] (  3,  6   )     int  ->  rax         "field V60._length (fldOffset=0x8)" P-INDEP
+;  V153 tmp145      [V153,T47] (  2,  4   )   byref  ->  r12         "field V62._reference (fldOffset=0x0)" P-INDEP
+;  V154 tmp146      [V154,T59] (  2,  4   )     int  ->  rax         "field V62._length (fldOffset=0x8)" P-INDEP
 ;* V155 tmp147      [V155    ] (  0,  0   )   byref  ->  zero-ref    "field V63._reference (fldOffset=0x0)" P-INDEP
 ;* V156 tmp148      [V156    ] (  0,  0   )     int  ->  zero-ref    "field V63._length (fldOffset=0x8)" P-INDEP
-;  V157 tmp149      [V157,T27] (  3,  6   )   byref  ->  r13         "field V70._reference (fldOffset=0x0)" P-INDEP
+;  V157 tmp149      [V157,T25] (  3,  6   )   byref  ->  r12         "field V70._reference (fldOffset=0x0)" P-INDEP
 ;* V158 tmp150      [V158    ] (  0,  0   )     int  ->  zero-ref    "field V70._length (fldOffset=0x8)" P-INDEP
-;  V159 tmp151      [V159,T48] (  2,  4   )   byref  ->  rcx         "field V74._reference (fldOffset=0x0)" P-INDEP
-;  V160 tmp152      [V160,T37] (  3,  6   )     int  ->  r12         "field V74._length (fldOffset=0x8)" P-INDEP
+;  V159 tmp151      [V159,T48] (  2,  4   )   byref  ->  rdx         "field V74._reference (fldOffset=0x0)" P-INDEP
+;  V160 tmp152      [V160,T36] (  3,  6   )     int  ->  rax         "field V74._length (fldOffset=0x8)" P-INDEP
 ;* V161 tmp153      [V161    ] (  0,  0   )   byref  ->  zero-ref    "field V75._reference (fldOffset=0x0)" P-INDEP
 ;* V162 tmp154      [V162    ] (  0,  0   )     int  ->  zero-ref    "field V75._length (fldOffset=0x8)" P-INDEP
-;  V163 tmp155      [V163,T49] (  2,  4   )   byref  ->  rax         "field V80._reference (fldOffset=0x0)" P-INDEP
-;  V164 tmp156      [V164,T60] (  2,  4   )     int  ->   r8         "field V80._length (fldOffset=0x8)" P-INDEP
+;  V163 tmp155      [V163,T49] (  2,  4   )   byref  ->   r8         "field V80._reference (fldOffset=0x0)" P-INDEP
+;  V164 tmp156      [V164,T60] (  2,  4   )     int  ->  r10         "field V80._length (fldOffset=0x8)" P-INDEP
 ;* V165 tmp157      [V165    ] (  0,  0   )   byref  ->  zero-ref    "field V81._reference (fldOffset=0x0)" P-INDEP
 ;* V166 tmp158      [V166    ] (  0,  0   )     int  ->  zero-ref    "field V81._length (fldOffset=0x8)" P-INDEP
 ;* V167 tmp159      [V167    ] (  0,  0   )   byref  ->  zero-ref    "field V82._reference (fldOffset=0x0)" P-INDEP
 ;* V168 tmp160      [V168    ] (  0,  0   )     int  ->  zero-ref    "field V82._length (fldOffset=0x8)" P-INDEP
 ;* V169 tmp161      [V169    ] (  0,  0   )   byref  ->  zero-ref    "field V83._reference (fldOffset=0x0)" P-INDEP
 ;* V170 tmp162      [V170    ] (  0,  0   )     int  ->  zero-ref    "field V83._length (fldOffset=0x8)" P-INDEP
-;  V171 tmp163      [V171,T28] (  3,  6   )   byref  ->  r13         "field V84._reference (fldOffset=0x0)" P-INDEP
-;  V172 tmp164      [V172,T38] (  3,  6   )     int  ->  r12         "field V84._length (fldOffset=0x8)" P-INDEP
-;  V173 tmp165      [V173,T50] (  2,  4   )   byref  ->  r13         "field V86._reference (fldOffset=0x0)" P-INDEP
-;  V174 tmp166      [V174,T61] (  2,  4   )     int  ->  r12         "field V86._length (fldOffset=0x8)" P-INDEP
+;  V171 tmp163      [V171,T26] (  3,  6   )   byref  ->  r12         "field V84._reference (fldOffset=0x0)" P-INDEP
+;  V172 tmp164      [V172,T37] (  3,  6   )     int  ->  rax         "field V84._length (fldOffset=0x8)" P-INDEP
+;  V173 tmp165      [V173,T50] (  2,  4   )   byref  ->  r12         "field V86._reference (fldOffset=0x0)" P-INDEP
+;  V174 tmp166      [V174,T61] (  2,  4   )     int  ->  rax         "field V86._length (fldOffset=0x8)" P-INDEP
 ;* V175 tmp167      [V175    ] (  0,  0   )   byref  ->  zero-ref    "field V87._reference (fldOffset=0x0)" P-INDEP
 ;* V176 tmp168      [V176    ] (  0,  0   )     int  ->  zero-ref    "field V87._length (fldOffset=0x8)" P-INDEP
-;  V177 tmp169      [V177,T29] (  3,  6   )   byref  ->  r13         "field V94._reference (fldOffset=0x0)" P-INDEP
+;  V177 tmp169      [V177,T27] (  3,  6   )   byref  ->  r12         "field V94._reference (fldOffset=0x0)" P-INDEP
 ;* V178 tmp170      [V178    ] (  0,  0   )     int  ->  zero-ref    "field V94._length (fldOffset=0x8)" P-INDEP
-;  V179 tmp171      [V179,T51] (  2,  4   )   byref  ->  rcx         "field V98._reference (fldOffset=0x0)" P-INDEP
-;  V180 tmp172      [V180,T39] (  3,  6   )     int  ->  r12         "field V98._length (fldOffset=0x8)" P-INDEP
+;  V179 tmp171      [V179,T51] (  2,  4   )   byref  ->  rdx         "field V98._reference (fldOffset=0x0)" P-INDEP
+;  V180 tmp172      [V180,T38] (  3,  6   )     int  ->  rax         "field V98._length (fldOffset=0x8)" P-INDEP
 ;* V181 tmp173      [V181    ] (  0,  0   )   byref  ->  zero-ref    "field V99._reference (fldOffset=0x0)" P-INDEP
 ;* V182 tmp174      [V182    ] (  0,  0   )     int  ->  zero-ref    "field V99._length (fldOffset=0x8)" P-INDEP
-;  V183 tmp175      [V183,T52] (  2,  4   )   byref  ->  rax         "field V104._reference (fldOffset=0x0)" P-INDEP
-;  V184 tmp176      [V184,T62] (  2,  4   )     int  ->   r8         "field V104._length (fldOffset=0x8)" P-INDEP
+;  V183 tmp175      [V183,T52] (  2,  4   )   byref  ->   r8         "field V104._reference (fldOffset=0x0)" P-INDEP
+;  V184 tmp176      [V184,T62] (  2,  4   )     int  ->  r10         "field V104._length (fldOffset=0x8)" P-INDEP
 ;* V185 tmp177      [V185    ] (  0,  0   )   byref  ->  zero-ref    "field V105._reference (fldOffset=0x0)" P-INDEP
 ;* V186 tmp178      [V186    ] (  0,  0   )     int  ->  zero-ref    "field V105._length (fldOffset=0x8)" P-INDEP
 ;  V187 tmp179      [V187,T53] (  2,  4   )   byref  ->  rax         "field V107._reference (fldOffset=0x0)" P-INDEP
 ;  V188 tmp180      [V188,T63] (  2,  4   )     int  ->   r8         "field V107._length (fldOffset=0x8)" P-INDEP
-;  V189 tmp181      [V189,T69] (  3,  3   )     ref  ->  rcx         single-def "arr expr"
-;  V190 tmp182      [V190,T71] (  3,  3   )     int  ->  rdx         "index expr"
-;  V191 tmp183      [V191,T70] (  3,  3   )     ref  ->  rcx         single-def "arr expr"
-;  V192 tmp184      [V192,T72] (  3,  3   )     int  ->  rdx         "index expr"
-;  V193 tmp185      [V193    ] (  9, 36   )  struct (16) [rsp+0x48]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;  V194 tmp186      [V194    ] (  3, 12   )  struct (16) [rsp+0x38]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;* V195 tmp187      [V195,T64] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V196 tmp188      [V196,T65] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V197 tmp189      [V197,T68] (  0,  0   )     int  ->  zero-ref    "argument with side effect"
-;  V198 tmp190      [V198,T19] (  2,  8   )     ref  ->   r9         "argument with side effect"
-;* V199 tmp191      [V199,T66] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V200 tmp192      [V200,T67] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
+;  V189 tmp181      [V189,T64] (  3,  3   )     ref  ->  rcx         single-def "arr expr"
+;  V190 tmp182      [V190,T66] (  3,  3   )     int  ->  rdx         "index expr"
+;  V191 tmp183      [V191,T65] (  3,  3   )     ref  ->  rcx         single-def "arr expr"
+;  V192 tmp184      [V192,T67] (  3,  3   )     int  ->  rdx         "index expr"
+;  V193 tmp185      [V193    ] (  9, 36   )  struct (16) [rsp+0x60]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
...

+45 (+6.11%) : 1327.dasm - System.Number:FormatCurrencyushort (FullOpts)

@@ -8,17 +8,17 @@
 ; Final local variable assignments
 ;
 ;  V00 arg0         [V00,T00] ( 18, 34   )   byref  ->  rbx         single-def
-;  V01 arg1         [V01,T09] (  4,  5   )   byref  ->  rdi         single-def
-;  V02 arg2         [V02,T10] (  3,  4   )     int  ->  rbp         single-def
+;  V01 arg1         [V01,T20] (  4,  5   )   byref  ->  rdi         single-def
+;  V02 arg2         [V02,T28] (  3,  4   )     int  ->  rbp         single-def
 ;  V03 arg3         [V03,T07] (  9, 13   )     ref  ->  rsi         class-hnd exact single-def <System.Globalization.NumberFormatInfo>
 ;* V04 loc0         [V04    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact <System.String>
-;  V05 loc1         [V05,T08] (  4, 10   )     ref  ->  r14         class-hnd exact single-def <System.String>
+;  V05 loc1         [V05,T21] (  3,  6   )     ref  ->  r14         class-hnd exact single-def <System.String>
 ;  V06 loc2         [V06,T01] (  5, 17   )     int  ->  r15        
 ;  V07 loc3         [V07,T02] (  6, 16   )  ushort  ->  rdx        
 ;  V08 OutArgs      [V08    ] (  1,  1   )  struct (48) [rsp+0x00]  do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
 ;* V09 tmp1         [V09    ] (  0,  0   )     ref  ->  zero-ref    class-hnd exact "impAppendStmt" <<unknown class>>
-;  V10 tmp2         [V10,T73] (  3,  2   )     ref  ->  r14        
-;  V11 tmp3         [V11,T14] (  2,  8   )     ref  ->  r13         class-hnd "impAppendStmt" <<unknown class>>
+;  V10 tmp2         [V10,T68] (  3,  2   )     ref  ->  r14        
+;  V11 tmp3         [V11,T11] (  2,  8   )     ref  ->  r12         class-hnd "impAppendStmt" <<unknown class>>
 ;* V12 tmp4         [V12    ] (  0,  0   )  struct (16) zero-ref    "impAppendStmt" <System.ReadOnlySpan`1[ushort]>
 ;* V13 tmp5         [V13    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
 ;* V14 tmp6         [V14    ] (  0,  0   )  struct (16) zero-ref    "spilled call-like call argument" <System.ReadOnlySpan`1[ushort]>
@@ -29,8 +29,8 @@
 ;  V19 tmp11        [V19,T03] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V20 tmp12        [V20    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V21 tmp13        [V21    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V22 tmp14        [V22,T20] (  2,  8   )     int  ->  rax         "Inlining Arg"
-;  V23 tmp15        [V23,T15] (  2,  8   )   byref  ->  r12         "Inlining Arg"
+;  V22 tmp14        [V22,T16] (  2,  8   )     int  ->   r8         "Inlining Arg"
+;  V23 tmp15        [V23,T12] (  2,  8   )   byref  ->  rax         "Inlining Arg"
 ;* V24 tmp16        [V24    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V25 tmp17        [V25    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V26 tmp18        [V26    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -38,7 +38,7 @@
 ;* V28 tmp20        [V28    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V29 tmp21        [V29    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V30 tmp22        [V30    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V31 tmp23        [V31,T30] (  3,  6   )     int  ->  [rsp+0x64]  spill-single-def "Inline stloc first use temp"
+;  V31 tmp23        [V31,T29] (  3,  6   )     int  ->  [rsp+0x84]  spill-single-def "Inline stloc first use temp"
 ;* V32 tmp24        [V32    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V33 tmp25        [V33    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V34 tmp26        [V34    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -50,8 +50,8 @@
 ;  V40 tmp32        [V40,T04] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V41 tmp33        [V41    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V42 tmp34        [V42    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V43 tmp35        [V43,T21] (  2,  8   )     int  ->  r10         "Inlining Arg"
-;  V44 tmp36        [V44,T16] (  2,  8   )   byref  ->   r8         "Inlining Arg"
+;  V43 tmp35        [V43,T17] (  2,  8   )     int  ->   r9         "Inlining Arg"
+;  V44 tmp36        [V44,T13] (  2,  8   )   byref  ->  r10         "Inlining Arg"
 ;* V45 tmp37        [V45    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V46 tmp38        [V46    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V47 tmp39        [V47    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -59,7 +59,7 @@
 ;* V49 tmp41        [V49    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V50 tmp42        [V50    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V51 tmp43        [V51    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V52 tmp44        [V52,T31] (  3,  6   )     int  ->  [rsp+0x60]  spill-single-def "Inline stloc first use temp"
+;  V52 tmp44        [V52,T30] (  3,  6   )     int  ->  [rsp+0x80]  spill-single-def "Inline stloc first use temp"
 ;* V53 tmp45        [V53    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V54 tmp46        [V54    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V55 tmp47        [V55    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
@@ -71,8 +71,8 @@
 ;  V61 tmp53        [V61,T05] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V62 tmp54        [V62    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V63 tmp55        [V63    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V64 tmp56        [V64,T22] (  2,  8   )     int  ->  r12         "Inlining Arg"
-;  V65 tmp57        [V65,T17] (  2,  8   )   byref  ->  r13         "Inlining Arg"
+;  V64 tmp56        [V64,T18] (  2,  8   )     int  ->  rax         "Inlining Arg"
+;  V65 tmp57        [V65,T14] (  2,  8   )   byref  ->  r12         "Inlining Arg"
 ;* V66 tmp58        [V66    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V67 tmp59        [V67    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V68 tmp60        [V68    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -80,13 +80,13 @@
 ;* V70 tmp62        [V70    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V71 tmp63        [V71    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V72 tmp64        [V72    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V73 tmp65        [V73,T32] (  3,  6   )     int  ->  r12         "Inline stloc first use temp"
+;  V73 tmp65        [V73,T31] (  3,  6   )     int  ->  [rsp+0x7C]  spill-single-def "Inline stloc first use temp"
 ;* V74 tmp66        [V74    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V75 tmp67        [V75    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V76 tmp68        [V76    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V77 tmp69        [V77    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V78 tmp70        [V78    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V79 tmp71        [V79,T11] (  4,  8   )     int  ->  rdx         "Inline stloc first use temp"
+;  V79 tmp71        [V79,T08] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V80 tmp72        [V80    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
 ;* V81 tmp73        [V81    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V82 tmp74        [V82    ] (  0,  0   )  struct (16) zero-ref    "Inline return value spill temp" <System.ReadOnlySpan`1[ushort]>
@@ -95,8 +95,8 @@
 ;  V85 tmp77        [V85,T06] (  4, 16   )     ref  ->  rcx         class-hnd exact "Inlining Arg" <System.String>
 ;* V86 tmp78        [V86    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V87 tmp79        [V87    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline ldloca(s) first use temp" <System.ReadOnlySpan`1[ushort]>
-;  V88 tmp80        [V88,T23] (  2,  8   )     int  ->  r12         "Inlining Arg"
-;  V89 tmp81        [V89,T18] (  2,  8   )   byref  ->  r13         "Inlining Arg"
+;  V88 tmp80        [V88,T19] (  2,  8   )     int  ->  rax         "Inlining Arg"
+;  V89 tmp81        [V89,T15] (  2,  8   )   byref  ->  r12         "Inlining Arg"
 ;* V90 tmp82        [V90    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V91 tmp83        [V91    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V92 tmp84        [V92    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
@@ -104,20 +104,20 @@
 ;* V94 tmp86        [V94    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V95 tmp87        [V95    ] (  0,  0   )     int  ->  zero-ref    "Inline stloc first use temp"
 ;* V96 tmp88        [V96    ] (  0,  0   )    long  ->  zero-ref    "Inline stloc first use temp"
-;  V97 tmp89        [V97,T33] (  3,  6   )     int  ->  r12         "Inline stloc first use temp"
+;  V97 tmp89        [V97,T32] (  3,  6   )     int  ->  [rsp+0x78]  spill-single-def "Inline stloc first use temp"
 ;* V98 tmp90        [V98    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "NewObj constructor temp" <System.ReadOnlySpan`1[ushort]>
 ;* V99 tmp91        [V99    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
 ;* V100 tmp92       [V100    ] (  0,  0   )   byref  ->  zero-ref    "Inlining Arg"
 ;* V101 tmp93       [V101    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
 ;* V102 tmp94       [V102    ] (  0,  0   )   ubyte  ->  zero-ref    "Inlining Arg"
-;  V103 tmp95       [V103,T12] (  4,  8   )     int  ->  rdx         "Inline stloc first use temp"
+;  V103 tmp95       [V103,T09] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V104 tmp96       [V104    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
 ;* V105 tmp97       [V105    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inlining Arg" <System.ReadOnlySpan`1[ushort]>
-;  V106 tmp98       [V106,T13] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
+;  V106 tmp98       [V106,T10] (  4,  8   )     int  ->  rcx         "Inline stloc first use temp"
 ;* V107 tmp99       [V107    ] (  0,  0   )  struct (16) zero-ref    ld-addr-op "Inline stloc first use temp" <System.Span`1[ushort]>
 ;* V108 tmp100      [V108    ] (  0,  0   )  ushort  ->  zero-ref    "Inlining Arg"
-;  V109 tmp101      [V109,T40] (  2,  4   )   byref  ->  r12         "field V12._reference (fldOffset=0x0)" P-INDEP
-;  V110 tmp102      [V110,T54] (  2,  4   )     int  ->  [rsp+0x5C]  spill-single-def "field V12._length (fldOffset=0x8)" P-INDEP
+;  V109 tmp101      [V109,T40] (  2,  4   )   byref  ->  [rsp+0x48]  spill-single-def "field V12._reference (fldOffset=0x0)" P-INDEP
+;  V110 tmp102      [V110,T54] (  2,  4   )     int  ->  [rsp+0x74]  spill-single-def "field V12._length (fldOffset=0x8)" P-INDEP
 ;* V111 tmp103      [V111    ] (  0,  0   )   byref  ->  zero-ref    "field V13._reference (fldOffset=0x0)" P-INDEP
 ;* V112 tmp104      [V112    ] (  0,  0   )     int  ->  zero-ref    "field V13._length (fldOffset=0x8)" P-INDEP
 ;* V113 tmp105      [V113    ] (  0,  0   )   byref  ->  zero-ref    "field V14._reference (fldOffset=0x0)" P-INDEP
@@ -126,90 +126,85 @@
 ;* V116 tmp108      [V116    ] (  0,  0   )     int  ->  zero-ref    "field V15._length (fldOffset=0x8)" P-INDEP
 ;* V117 tmp109      [V117    ] (  0,  0   )   byref  ->  zero-ref    "field V17._reference (fldOffset=0x0)" P-INDEP
 ;* V118 tmp110      [V118    ] (  0,  0   )     int  ->  zero-ref    "field V17._length (fldOffset=0x8)" P-INDEP
-;  V119 tmp111      [V119,T24] (  3,  6   )   byref  ->  r12         "field V18._reference (fldOffset=0x0)" P-INDEP
-;  V120 tmp112      [V120,T34] (  3,  6   )     int  ->  rax         "field V18._length (fldOffset=0x8)" P-INDEP
-;  V121 tmp113      [V121,T41] (  2,  4   )   byref  ->  r12         "field V20._reference (fldOffset=0x0)" P-INDEP
-;  V122 tmp114      [V122,T55] (  2,  4   )     int  ->  rax         "field V20._length (fldOffset=0x8)" P-INDEP
+;  V119 tmp111      [V119,T22] (  3,  6   )   byref  ->  rax         "field V18._reference (fldOffset=0x0)" P-INDEP
+;  V120 tmp112      [V120,T33] (  3,  6   )     int  ->   r8         "field V18._length (fldOffset=0x8)" P-INDEP
+;  V121 tmp113      [V121,T41] (  2,  4   )   byref  ->  rax         "field V20._reference (fldOffset=0x0)" P-INDEP
+;  V122 tmp114      [V122,T55] (  2,  4   )     int  ->   r8         "field V20._length (fldOffset=0x8)" P-INDEP
 ;* V123 tmp115      [V123    ] (  0,  0   )   byref  ->  zero-ref    "field V21._reference (fldOffset=0x0)" P-INDEP
 ;* V124 tmp116      [V124    ] (  0,  0   )     int  ->  zero-ref    "field V21._length (fldOffset=0x8)" P-INDEP
-;  V125 tmp117      [V125,T42] (  2,  4   )   byref  ->  r12         "field V28._reference (fldOffset=0x0)" P-INDEP
+;  V125 tmp117      [V125,T42] (  2,  4   )   byref  ->  [rsp+0x40]  spill-single-def "field V28._reference (fldOffset=0x0)" P-INDEP
 ;* V126 tmp118      [V126    ] (  0,  0   )     int  ->  zero-ref    "field V28._length (fldOffset=0x8)" P-INDEP
-;  V127 tmp119      [V127,T43] (  2,  4   )   byref  ->  r12         "field V32._reference (fldOffset=0x0)" P-INDEP
-;  V128 tmp120      [V128,T56] (  2,  4   )     int  ->  rax         "field V32._length (fldOffset=0x8)" P-INDEP
+;  V127 tmp119      [V127,T43] (  2,  4   )   byref  ->  rax         "field V32._reference (fldOffset=0x0)" P-INDEP
+;  V128 tmp120      [V128,T56] (  2,  4   )     int  ->   r8         "field V32._length (fldOffset=0x8)" P-INDEP
 ;* V129 tmp121      [V129    ] (  0,  0   )   byref  ->  zero-ref    "field V33._reference (fldOffset=0x0)" P-INDEP
 ;* V130 tmp122      [V130    ] (  0,  0   )     int  ->  zero-ref    "field V33._length (fldOffset=0x8)" P-INDEP
 ;* V131 tmp123      [V131    ] (  0,  0   )   byref  ->  zero-ref    "field V37._reference (fldOffset=0x0)" P-INDEP
 ;* V132 tmp124      [V132    ] (  0,  0   )     int  ->  zero-ref    "field V37._length (fldOffset=0x8)" P-INDEP
 ;* V133 tmp125      [V133    ] (  0,  0   )   byref  ->  zero-ref    "field V38._reference (fldOffset=0x0)" P-INDEP
 ;* V134 tmp126      [V134    ] (  0,  0   )     int  ->  zero-ref    "field V38._length (fldOffset=0x8)" P-INDEP
-;  V135 tmp127      [V135,T25] (  3,  6   )   byref  ->   r8         "field V39._reference (fldOffset=0x0)" P-INDEP
-;  V136 tmp128      [V136,T35] (  3,  6   )     int  ->  r10         "field V39._length (fldOffset=0x8)" P-INDEP
-;  V137 tmp129      [V137,T44] (  2,  4   )   byref  ->   r8         "field V41._reference (fldOffset=0x0)" P-INDEP
-;  V138 tmp130      [V138,T57] (  2,  4   )     int  ->  r10         "field V41._length (fldOffset=0x8)" P-INDEP
+;  V135 tmp127      [V135,T23] (  3,  6   )   byref  ->  r10         "field V39._reference (fldOffset=0x0)" P-INDEP
+;  V136 tmp128      [V136,T34] (  3,  6   )     int  ->   r9         "field V39._length (fldOffset=0x8)" P-INDEP
+;  V137 tmp129      [V137,T44] (  2,  4   )   byref  ->  r10         "field V41._reference (fldOffset=0x0)" P-INDEP
+;  V138 tmp130      [V138,T57] (  2,  4   )     int  ->   r9         "field V41._length (fldOffset=0x8)" P-INDEP
 ;* V139 tmp131      [V139    ] (  0,  0   )   byref  ->  zero-ref    "field V42._reference (fldOffset=0x0)" P-INDEP
 ;* V140 tmp132      [V140    ] (  0,  0   )     int  ->  zero-ref    "field V42._length (fldOffset=0x8)" P-INDEP
-;  V141 tmp133      [V141,T45] (  2,  4   )   byref  ->  [rsp+0x30]  spill-single-def "field V49._reference (fldOffset=0x0)" P-INDEP
+;  V141 tmp133      [V141,T45] (  2,  4   )   byref  ->  [rsp+0x38]  spill-single-def "field V49._reference (fldOffset=0x0)" P-INDEP
 ;* V142 tmp134      [V142    ] (  0,  0   )     int  ->  zero-ref    "field V49._length (fldOffset=0x8)" P-INDEP
-;  V143 tmp135      [V143,T46] (  2,  4   )   byref  ->   r8         "field V53._reference (fldOffset=0x0)" P-INDEP
-;  V144 tmp136      [V144,T58] (  2,  4   )     int  ->  r10         "field V53._length (fldOffset=0x8)" P-INDEP
+;  V143 tmp135      [V143,T46] (  2,  4   )   byref  ->  r10         "field V53._reference (fldOffset=0x0)" P-INDEP
+;  V144 tmp136      [V144,T58] (  2,  4   )     int  ->   r9         "field V53._length (fldOffset=0x8)" P-INDEP
 ;* V145 tmp137      [V145    ] (  0,  0   )   byref  ->  zero-ref    "field V54._reference (fldOffset=0x0)" P-INDEP
 ;* V146 tmp138      [V146    ] (  0,  0   )     int  ->  zero-ref    "field V54._length (fldOffset=0x8)" P-INDEP
 ;* V147 tmp139      [V147    ] (  0,  0   )   byref  ->  zero-ref    "field V58._reference (fldOffset=0x0)" P-INDEP
 ;* V148 tmp140      [V148    ] (  0,  0   )     int  ->  zero-ref    "field V58._length (fldOffset=0x8)" P-INDEP
 ;* V149 tmp141      [V149    ] (  0,  0   )   byref  ->  zero-ref    "field V59._reference (fldOffset=0x0)" P-INDEP
 ;* V150 tmp142      [V150    ] (  0,  0   )     int  ->  zero-ref    "field V59._length (fldOffset=0x8)" P-INDEP
-;  V151 tmp143      [V151,T26] (  3,  6   )   byref  ->  r13         "field V60._reference (fldOffset=0x0)" P-INDEP
-;  V152 tmp144      [V152,T36] (  3,  6   )     int  ->  r12         "field V60._length (fldOffset=0x8)" P-INDEP
-;  V153 tmp145      [V153,T47] (  2,  4   )   byref  ->  r13         "field V62._reference (fldOffset=0x0)" P-INDEP
-;  V154 tmp146      [V154,T59] (  2,  4   )     int  ->  r12         "field V62._length (fldOffset=0x8)" P-INDEP
+;  V151 tmp143      [V151,T24] (  3,  6   )   byref  ->  r12         "field V60._reference (fldOffset=0x0)" P-INDEP
+;  V152 tmp144      [V152,T35] (  3,  6   )     int  ->  rax         "field V60._length (fldOffset=0x8)" P-INDEP
+;  V153 tmp145      [V153,T47] (  2,  4   )   byref  ->  r12         "field V62._reference (fldOffset=0x0)" P-INDEP
+;  V154 tmp146      [V154,T59] (  2,  4   )     int  ->  rax         "field V62._length (fldOffset=0x8)" P-INDEP
 ;* V155 tmp147      [V155    ] (  0,  0   )   byref  ->  zero-ref    "field V63._reference (fldOffset=0x0)" P-INDEP
 ;* V156 tmp148      [V156    ] (  0,  0   )     int  ->  zero-ref    "field V63._length (fldOffset=0x8)" P-INDEP
-;  V157 tmp149      [V157,T27] (  3,  6   )   byref  ->  r13         "field V70._reference (fldOffset=0x0)" P-INDEP
+;  V157 tmp149      [V157,T25] (  3,  6   )   byref  ->  r12         "field V70._reference (fldOffset=0x0)" P-INDEP
 ;* V158 tmp150      [V158    ] (  0,  0   )     int  ->  zero-ref    "field V70._length (fldOffset=0x8)" P-INDEP
-;  V159 tmp151      [V159,T48] (  2,  4   )   byref  ->  rcx         "field V74._reference (fldOffset=0x0)" P-INDEP
-;  V160 tmp152      [V160,T37] (  3,  6   )     int  ->  r12         "field V74._length (fldOffset=0x8)" P-INDEP
+;  V159 tmp151      [V159,T48] (  2,  4   )   byref  ->  rdx         "field V74._reference (fldOffset=0x0)" P-INDEP
+;  V160 tmp152      [V160,T36] (  3,  6   )     int  ->  rax         "field V74._length (fldOffset=0x8)" P-INDEP
 ;* V161 tmp153      [V161    ] (  0,  0   )   byref  ->  zero-ref    "field V75._reference (fldOffset=0x0)" P-INDEP
 ;* V162 tmp154      [V162    ] (  0,  0   )     int  ->  zero-ref    "field V75._length (fldOffset=0x8)" P-INDEP
-;  V163 tmp155      [V163,T49] (  2,  4   )   byref  ->  rax         "field V80._reference (fldOffset=0x0)" P-INDEP
-;  V164 tmp156      [V164,T60] (  2,  4   )     int  ->   r8         "field V80._length (fldOffset=0x8)" P-INDEP
+;  V163 tmp155      [V163,T49] (  2,  4   )   byref  ->   r8         "field V80._reference (fldOffset=0x0)" P-INDEP
+;  V164 tmp156      [V164,T60] (  2,  4   )     int  ->  r10         "field V80._length (fldOffset=0x8)" P-INDEP
 ;* V165 tmp157      [V165    ] (  0,  0   )   byref  ->  zero-ref    "field V81._reference (fldOffset=0x0)" P-INDEP
 ;* V166 tmp158      [V166    ] (  0,  0   )     int  ->  zero-ref    "field V81._length (fldOffset=0x8)" P-INDEP
 ;* V167 tmp159      [V167    ] (  0,  0   )   byref  ->  zero-ref    "field V82._reference (fldOffset=0x0)" P-INDEP
 ;* V168 tmp160      [V168    ] (  0,  0   )     int  ->  zero-ref    "field V82._length (fldOffset=0x8)" P-INDEP
 ;* V169 tmp161      [V169    ] (  0,  0   )   byref  ->  zero-ref    "field V83._reference (fldOffset=0x0)" P-INDEP
 ;* V170 tmp162      [V170    ] (  0,  0   )     int  ->  zero-ref    "field V83._length (fldOffset=0x8)" P-INDEP
-;  V171 tmp163      [V171,T28] (  3,  6   )   byref  ->  r13         "field V84._reference (fldOffset=0x0)" P-INDEP
-;  V172 tmp164      [V172,T38] (  3,  6   )     int  ->  r12         "field V84._length (fldOffset=0x8)" P-INDEP
-;  V173 tmp165      [V173,T50] (  2,  4   )   byref  ->  r13         "field V86._reference (fldOffset=0x0)" P-INDEP
-;  V174 tmp166      [V174,T61] (  2,  4   )     int  ->  r12         "field V86._length (fldOffset=0x8)" P-INDEP
+;  V171 tmp163      [V171,T26] (  3,  6   )   byref  ->  r12         "field V84._reference (fldOffset=0x0)" P-INDEP
+;  V172 tmp164      [V172,T37] (  3,  6   )     int  ->  rax         "field V84._length (fldOffset=0x8)" P-INDEP
+;  V173 tmp165      [V173,T50] (  2,  4   )   byref  ->  r12         "field V86._reference (fldOffset=0x0)" P-INDEP
+;  V174 tmp166      [V174,T61] (  2,  4   )     int  ->  rax         "field V86._length (fldOffset=0x8)" P-INDEP
 ;* V175 tmp167      [V175    ] (  0,  0   )   byref  ->  zero-ref    "field V87._reference (fldOffset=0x0)" P-INDEP
 ;* V176 tmp168      [V176    ] (  0,  0   )     int  ->  zero-ref    "field V87._length (fldOffset=0x8)" P-INDEP
-;  V177 tmp169      [V177,T29] (  3,  6   )   byref  ->  r13         "field V94._reference (fldOffset=0x0)" P-INDEP
+;  V177 tmp169      [V177,T27] (  3,  6   )   byref  ->  r12         "field V94._reference (fldOffset=0x0)" P-INDEP
 ;* V178 tmp170      [V178    ] (  0,  0   )     int  ->  zero-ref    "field V94._length (fldOffset=0x8)" P-INDEP
-;  V179 tmp171      [V179,T51] (  2,  4   )   byref  ->  rcx         "field V98._reference (fldOffset=0x0)" P-INDEP
-;  V180 tmp172      [V180,T39] (  3,  6   )     int  ->  r12         "field V98._length (fldOffset=0x8)" P-INDEP
+;  V179 tmp171      [V179,T51] (  2,  4   )   byref  ->  rdx         "field V98._reference (fldOffset=0x0)" P-INDEP
+;  V180 tmp172      [V180,T38] (  3,  6   )     int  ->  rax         "field V98._length (fldOffset=0x8)" P-INDEP
 ;* V181 tmp173      [V181    ] (  0,  0   )   byref  ->  zero-ref    "field V99._reference (fldOffset=0x0)" P-INDEP
 ;* V182 tmp174      [V182    ] (  0,  0   )     int  ->  zero-ref    "field V99._length (fldOffset=0x8)" P-INDEP
-;  V183 tmp175      [V183,T52] (  2,  4   )   byref  ->  rax         "field V104._reference (fldOffset=0x0)" P-INDEP
-;  V184 tmp176      [V184,T62] (  2,  4   )     int  ->   r8         "field V104._length (fldOffset=0x8)" P-INDEP
+;  V183 tmp175      [V183,T52] (  2,  4   )   byref  ->   r8         "field V104._reference (fldOffset=0x0)" P-INDEP
+;  V184 tmp176      [V184,T62] (  2,  4   )     int  ->  r10         "field V104._length (fldOffset=0x8)" P-INDEP
 ;* V185 tmp177      [V185    ] (  0,  0   )   byref  ->  zero-ref    "field V105._reference (fldOffset=0x0)" P-INDEP
 ;* V186 tmp178      [V186    ] (  0,  0   )     int  ->  zero-ref    "field V105._length (fldOffset=0x8)" P-INDEP
 ;  V187 tmp179      [V187,T53] (  2,  4   )   byref  ->  rax         "field V107._reference (fldOffset=0x0)" P-INDEP
 ;  V188 tmp180      [V188,T63] (  2,  4   )     int  ->   r8         "field V107._length (fldOffset=0x8)" P-INDEP
-;  V189 tmp181      [V189,T69] (  3,  3   )     ref  ->  rcx         single-def "arr expr"
-;  V190 tmp182      [V190,T71] (  3,  3   )     int  ->  rdx         "index expr"
-;  V191 tmp183      [V191,T70] (  3,  3   )     ref  ->  rcx         single-def "arr expr"
-;  V192 tmp184      [V192,T72] (  3,  3   )     int  ->  rdx         "index expr"
-;  V193 tmp185      [V193    ] (  9, 36   )  struct (16) [rsp+0x48]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;  V194 tmp186      [V194    ] (  3, 12   )  struct (16) [rsp+0x38]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
-;* V195 tmp187      [V195,T64] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V196 tmp188      [V196,T65] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V197 tmp189      [V197,T68] (  0,  0   )     int  ->  zero-ref    "argument with side effect"
-;  V198 tmp190      [V198,T19] (  2,  8   )     ref  ->   r9         "argument with side effect"
-;* V199 tmp191      [V199,T66] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
-;* V200 tmp192      [V200,T67] (  0,  0   )   byref  ->  zero-ref    "argument with side effect"
+;  V189 tmp181      [V189,T64] (  3,  3   )     ref  ->  rcx         single-def "arr expr"
+;  V190 tmp182      [V190,T66] (  3,  3   )     int  ->  rdx         "index expr"
+;  V191 tmp183      [V191,T65] (  3,  3   )     ref  ->  rcx         single-def "arr expr"
+;  V192 tmp184      [V192,T67] (  3,  3   )     int  ->  rdx         "index expr"
+;  V193 tmp185      [V193    ] (  9, 36   )  struct (16) [rsp+0x60]  do-not-enreg[XSF] must-init addr-exposed "by-value struct argument" <System.ReadOnlySpan`1[ushort]>
...

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
aspnet.run.windows.x64.checked.mch 8,990 4,644 950 3,396 -131,823 +5,692
benchmarks.run.windows.x64.checked.mch 1,708 380 298 1,030 -4,443 +2,159
benchmarks.run_pgo.windows.x64.checked.mch 6,502 4,281 662 1,559 -139,672 +5,182
benchmarks.run_tiered.windows.x64.checked.mch 2,905 2,517 96 292 -77,786 +812
coreclr_tests.run.windows.x64.checked.mch 41,396 36,443 1,447 3,506 -1,001,773 +7,072
libraries.crossgen2.windows.x64.checked.mch 11,843 1,802 1,255 8,786 -38,817 +5,869
libraries.pmi.windows.x64.checked.mch 14,711 2,884 2,140 9,687 -28,373 +11,478
libraries_tests.run.windows.x64.Release.mch 57,188 44,246 3,757 9,185 -1,374,030 +27,810
librariestestsnotieredcompilation.run.windows.x64.Release.mch 30,739 8,293 3,775 18,671 -117,758 +20,951
realworld.run.windows.x64.checked.mch 3,064 863 584 1,617 -19,130 +5,864
smoke_tests.nativeaot.windows.x64.checked.mch 1,252 210 229 813 -1,464 +1,190
180,298 106,563 15,193 58,542 -2,935,069 +94,079

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
aspnet.run.windows.x64.checked.mch 113,436 48,462 64,974 972 (0.85%) 978 (0.85%)
benchmarks.run.windows.x64.checked.mch 28,173 4 28,169 4 (0.01%) 5 (0.02%)
benchmarks.run_pgo.windows.x64.checked.mch 101,022 50,170 50,852 131 (0.13%) 131 (0.13%)
benchmarks.run_tiered.windows.x64.checked.mch 54,253 36,844 17,409 2 (0.00%) 2 (0.00%)
coreclr_tests.run.windows.x64.checked.mch 574,111 341,113 232,998 301 (0.05%) 301 (0.05%)
libraries.crossgen2.windows.x64.checked.mch 243,023 15 243,008 0 (0.00%) 0 (0.00%)
libraries.pmi.windows.x64.checked.mch 307,628 6 307,622 9 (0.00%) 13 (0.00%)
libraries_tests.run.windows.x64.Release.mch 682,147 485,176 196,971 2,467 (0.36%) 2,470 (0.36%)
librariestestsnotieredcompilation.run.windows.x64.Release.mch 319,773 21,886 297,887 10 (0.00%) 13 (0.00%)
realworld.run.windows.x64.checked.mch 36,885 3 36,882 3 (0.01%) 3 (0.01%)
smoke_tests.nativeaot.windows.x64.checked.mch 32,444 10 32,434 0 (0.00%) 0 (0.00%)
2,492,895 983,689 1,509,206 3,899 (0.16%) 3,916 (0.16%)

jit-analyze output

aspnet.run.windows.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 42178999 (overridden on cmd)
Total bytes of diff: 42052868 (overridden on cmd)
Total bytes of delta: -126131 (-0.30 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          67 : 62412.dasm (1.01 % of base)
          67 : 58862.dasm (1.02 % of base)
          67 : 50306.dasm (1.02 % of base)
          53 : 100886.dasm (0.49 % of base)
          53 : 91619.dasm (0.49 % of base)
          47 : 101029.dasm (0.41 % of base)
          45 : 91769.dasm (0.40 % of base)
          43 : 90456.dasm (0.83 % of base)
          42 : 101987.dasm (0.33 % of base)
          42 : 92119.dasm (3.38 % of base)
          42 : 88086.dasm (3.38 % of base)
          42 : 89126.dasm (0.33 % of base)
          42 : 101365.dasm (3.38 % of base)
          42 : 93027.dasm (0.33 % of base)
          35 : 110748.dasm (2.14 % of base)
          34 : 58891.dasm (10.49 % of base)
          34 : 60268.dasm (10.66 % of base)
          34 : 62480.dasm (10.49 % of base)
          32 : 113692.dasm (1.07 % of base)
          32 : 54688.dasm (0.50 % of base)

Top file improvements (bytes):
       -1361 : 11900.dasm (-11.14 % of base)
        -919 : 24164.dasm (-2.99 % of base)
        -611 : 67599.dasm (-15.10 % of base)
        -578 : 99792.dasm (-15.67 % of base)
        -563 : 76260.dasm (-2.60 % of base)
        -529 : 15919.dasm (-17.26 % of base)
        -521 : 72801.dasm (-18.08 % of base)
        -455 : 23961.dasm (-2.25 % of base)
        -455 : 22895.dasm (-3.84 % of base)
        -393 : 24090.dasm (-2.38 % of base)
        -379 : 103689.dasm (-8.77 % of base)
        -325 : 24573.dasm (-4.69 % of base)
        -323 : 22962.dasm (-5.59 % of base)
        -313 : 82684.dasm (-7.64 % of base)
        -313 : 86065.dasm (-6.70 % of base)
        -305 : 79976.dasm (-6.94 % of base)
        -294 : 68722.dasm (-21.78 % of base)
        -288 : 54971.dasm (-7.51 % of base)
        -286 : 68437.dasm (-22.10 % of base)
        -273 : 79409.dasm (-2.89 % of base)

84 total files with Code Size differences (50 improved, 34 regressed), 20 unchanged.

Top method regressions (bytes):
          67 (1.01 % of base) : 62412.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo`1+<SerializeAsync>d__9[Benchmarks.Middleware.JsonMessage]:MoveNext():this (Tier1)
          67 (1.02 % of base) : 58862.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo`1+<SerializeAsync>d__9[Benchmarks.Middleware.JsonMessage]:MoveNext():this (Tier1)
          67 (1.02 % of base) : 50306.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo`1+<SerializeAsync>d__9[Benchmarks.Middleware.JsonMessage]:MoveNext():this (Tier1)
          53 (0.49 % of base) : 100886.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1-OSR)
          53 (0.49 % of base) : 91619.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1-OSR)
          47 (0.41 % of base) : 101029.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1-OSR)
          45 (0.40 % of base) : 91769.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1-OSR)
          43 (0.83 % of base) : 90456.dasm - Microsoft.AspNetCore.Authentication.AuthenticationMiddleware+<Invoke>d__6:MoveNext():this (Tier1)
          42 (0.33 % of base) : 101987.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
          42 (0.33 % of base) : 89126.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
          42 (0.33 % of base) : 93027.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
          42 (3.38 % of base) : 92119.dasm - System.Reflection.MethodBaseInvoker:InvokeWithFewArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (Tier1)
          42 (3.38 % of base) : 88086.dasm - System.Reflection.MethodBaseInvoker:InvokeWithFewArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (Tier1)
          42 (3.38 % of base) : 101365.dasm - System.Reflection.MethodBaseInvoker:InvokeWithFewArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (Tier1)
          35 (2.14 % of base) : 110748.dasm - System.Reflection.RuntimeAssembly:GetTypeCore(System.Runtime.CompilerServices.QCallAssembly,System.String,System.ReadOnlySpan`1[System.String],int,System.Runtime.CompilerServices.ObjectHandleOnStack) (Tier1)
          34 (10.49 % of base) : 58891.dasm - System.Text.Json.Utf8JsonWriter:WriteStringHelperEscapeValue(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort]):this (Tier1)
          34 (10.66 % of base) : 60268.dasm - System.Text.Json.Utf8JsonWriter:WriteStringHelperEscapeValue(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort]):this (Tier1)
          34 (10.49 % of base) : 62480.dasm - System.Text.Json.Utf8JsonWriter:WriteStringHelperEscapeValue(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort]):this (Tier1)
          32 (1.07 % of base) : 113692.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.ConnectionDispatcher`1+<>c__DisplayClass10_0+<<StartAcceptingConnectionsCore>g__AcceptConnectionsAsync|0>d[System.__Canon]:MoveNext():this (Tier1)
          32 (0.50 % of base) : 54688.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1-OSR)

Top method improvements (bytes):
       -1361 (-11.14 % of base) : 11900.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier0)
        -919 (-2.99 % of base) : 24164.dasm - Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor+ShaperProcessingExpressionVisitor:VisitExtension(System.Linq.Expressions.Expression):System.Linq.Expressions.Expression:this (Instrumented Tier0)
        -611 (-15.10 % of base) : 67599.dasm - System.Diagnostics.FileVersionInfo:GetVersionInfoForCodePage(ulong,System.String):ubyte:this (Tier0)
        -578 (-15.67 % of base) : 99792.dasm - System.Enum:TryFormatUnconstrained[int](int,System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort]):ubyte (Instrumented Tier0)
        -563 (-2.60 % of base) : 76260.dasm - AngleSharp.Css.Map:.cctor() (Tier0)
        -529 (-17.26 % of base) : 15919.dasm - System.Enum:TryFormatUnconstrained[int](int,System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort]):ubyte (Tier0)
        -521 (-18.08 % of base) : 72801.dasm - System.Enum:System.ISpanFormattable.TryFormat(System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):ubyte:this (Tier0)
        -455 (-3.84 % of base) : 22895.dasm - Microsoft.EntityFrameworkCore.Infrastructure.ModelValidator:ValidateData(Microsoft.EntityFrameworkCore.Metadata.IModel,Microsoft.EntityFrameworkCore.Diagnostics.IDiagnosticsLogger`1[Microsoft.EntityFrameworkCore.DbLoggerCategory+Model+Validation]):this (Instrumented Tier0)
        -455 (-2.25 % of base) : 23961.dasm - Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression:.ctor(Microsoft.EntityFrameworkCore.Metadata.IEntityType,Microsoft.EntityFrameworkCore.Query.ISqlExpressionFactory):this (Instrumented Tier0)
        -393 (-2.38 % of base) : 24090.dasm - Microsoft.EntityFrameworkCore.Query.SqlExpressions.SelectExpression:ApplyProjection(System.Linq.Expressions.Expression,int,int):System.Linq.Expressions.Expression:this (Instrumented Tier0)
        -379 (-8.77 % of base) : 103689.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -325 (-4.69 % of base) : 24573.dasm - Microsoft.EntityFrameworkCore.Storage.RelationalCommand+<ExecuteReaderAsync>d__18:MoveNext():this (Tier0)
        -323 (-5.59 % of base) : 22962.dasm - Microsoft.EntityFrameworkCore.Infrastructure.RelationalModelValidator:ValidateSharedTableCompatibility(System.Collections.Generic.IReadOnlyList`1[Microsoft.EntityFrameworkCore.Metadata.IEntityType],byref,Microsoft.EntityFrameworkCore.Diagnostics.IDiagnosticsLogger`1[Microsoft.EntityFrameworkCore.DbLoggerCategory+Model+Validation]):this (Instrumented Tier0)
        -313 (-6.70 % of base) : 86065.dasm - System.Globalization.TimeSpanParse:ProcessTerminal_HM_S_D(byref,ubyte,byref):ubyte (Instrumented Tier0)
        -313 (-7.64 % of base) : 82684.dasm - System.Globalization.TimeSpanParse:ProcessTerminal_HM_S_D(byref,ubyte,byref):ubyte (Tier0)
        -305 (-6.94 % of base) : 79976.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenNoLock(System.Reflection.MethodInfo,ubyte):int:this (Instrumented Tier0)
        -294 (-21.78 % of base) : 68722.dasm - NLog.Extensions.Logging.NLogLogger:CreateLogEventInfo[Microsoft.Extensions.Logging.FormattedLogValues](NLog.LogLevel,Microsoft.Extensions.Logging.EventId,Microsoft.Extensions.Logging.FormattedLogValues,System.Exception,System.Func`3[Microsoft.Extensions.Logging.FormattedLogValues,System.Exception,System.String]):NLog.LogEventInfo:this (Tier0)
        -288 (-7.51 % of base) : 54971.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitSingleCharAtomicLoop|25(System.Text.RegularExpressions.RegexNode):this (Tier0)
        -286 (-22.10 % of base) : 68437.dasm - NLog.Extensions.Logging.NLogLogger:CreateLogEventInfo[Microsoft.Extensions.Logging.LoggerMessage+LogValues`1[System.__Canon]](NLog.LogLevel,Microsoft.Extensions.Logging.EventId,Microsoft.Extensions.Logging.LoggerMessage+LogValues`1[System.__Canon],System.Exception,System.Func`3[Microsoft.Extensions.Logging.LoggerMessage+LogValues`1[System.__Canon],System.__Canon,System.__Canon]):NLog.LogEventInfo:this (Tier0)
        -273 (-2.89 % of base) : 79409.dasm - OrchardCore.ContentManagement.Display.ContentItemDisplayCoordinator+<BuildDisplayAsync>d__7:MoveNext():this (Instrumented Tier0)

Top method regressions (percentages):
          34 (10.66 % of base) : 60268.dasm - System.Text.Json.Utf8JsonWriter:WriteStringHelperEscapeValue(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort]):this (Tier1)
          34 (10.49 % of base) : 58891.dasm - System.Text.Json.Utf8JsonWriter:WriteStringHelperEscapeValue(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort]):this (Tier1)
          34 (10.49 % of base) : 62480.dasm - System.Text.Json.Utf8JsonWriter:WriteStringHelperEscapeValue(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ushort]):this (Tier1)
          20 (5.71 % of base) : 113842.dasm - System.Net.Sockets.Socket:DoBind(System.Net.EndPoint,System.Net.SocketAddress):this (Tier1)
          20 (5.71 % of base) : 112049.dasm - System.Net.Sockets.Socket:DoBind(System.Net.EndPoint,System.Net.SocketAddress):this (Tier1)
          20 (5.71 % of base) : 99460.dasm - System.Net.Sockets.Socket:DoBind(System.Net.EndPoint,System.Net.SocketAddress):this (Tier1)
          15 (5.19 % of base) : 12173.dasm - Microsoft.Extensions.Logging.Logger:<Log>g__LoggerLog|14_0[Microsoft.Extensions.Logging.FormattedLogValues](int,Microsoft.Extensions.Logging.EventId,Microsoft.Extensions.Logging.ILogger,System.Exception,System.Func`3[Microsoft.Extensions.Logging.FormattedLogValues,System.Exception,System.String],byref,byref) (FullOpts)
           4 (4.88 % of base) : 82245.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.ILEmitResolverBuilder:ResolveService(Microsoft.Extensions.DependencyInjection.ServiceLookup.ILEmitResolverBuilder+ILEmitResolverBuilderRuntimeContext,Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope):System.Object (FullOpts)
           6 (4.80 % of base) : 89511.dasm - System.Text.Encodings.Web.TextEncoder:Encode(System.IO.TextWriter,System.String):this (Tier1)
          15 (4.70 % of base) : 100077.dasm - Microsoft.Extensions.Logging.Logger:<Log>g__LoggerLog|14_0[Microsoft.Extensions.Logging.LoggerMessage+LogValues`2[int,System.__Canon]](int,Microsoft.Extensions.Logging.EventId,Microsoft.Extensions.Logging.ILogger,System.Exception,System.Func`3[Microsoft.Extensions.Logging.LoggerMessage+LogValues`2[int,System.__Canon],System.__Canon,System.__Canon],byref,byref) (Tier1)
           2 (4.44 % of base) : 37462.dasm - System.IO.Pipelines.StreamPipeReader:ReadAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.IO.Pipelines.ReadResult]:this (Instrumented Tier1)
           2 (4.44 % of base) : 32340.dasm - System.IO.Pipelines.StreamPipeReader:ReadAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.IO.Pipelines.ReadResult]:this (Tier1)
           7 (3.85 % of base) : 67083.dasm - System.String:Format[int,System.__Canon](System.IFormatProvider,System.Text.CompositeFormat,int,System.__Canon):System.String (FullOpts)
           3 (3.66 % of base) : 38407.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.StringUtilities+<>c:<.cctor>b__25_1(System.Span`1[ushort],long):this (Instrumented Tier1)
           3 (3.53 % of base) : 37236.dasm - Microsoft.AspNetCore.Mvc.Razor.Infrastructure.DefaultTagHelperActivator+Cache`1[System.__Canon]:Create(System.IServiceProvider):System.__Canon (Instrumented Tier1)
           7 (3.50 % of base) : 100177.dasm - System.String:Format[int,System.__Canon](System.IFormatProvider,System.Text.CompositeFormat,int,System.__Canon):System.String (Tier1)
          42 (3.38 % of base) : 92119.dasm - System.Reflection.MethodBaseInvoker:InvokeWithFewArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (Tier1)
          42 (3.38 % of base) : 88086.dasm - System.Reflection.MethodBaseInvoker:InvokeWithFewArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (Tier1)
          42 (3.38 % of base) : 101365.dasm - System.Reflection.MethodBaseInvoker:InvokeWithFewArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (Tier1)
           9 (3.20 % of base) : 78928.dasm - Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadata:get_ValidationMetadata():Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.ValidationMetadata:this (Tier0)

Top method improvements (percentages):
         -34 (-28.33 % of base) : 73174.dasm - Microsoft.Extensions.Configuration.ConfigurationBinder:GetValue[System.Nullable`1[System.TimeSpan]](Microsoft.Extensions.Configuration.IConfiguration,System.String):System.Nullable`1[System.TimeSpan] (Tier0)
         -28 (-26.42 % of base) : 84090.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.Resources.ResourceLocator]:set_Item(System.__Canon,System.Resources.ResourceLocator):this (Instrumented Tier0)
         -28 (-26.42 % of base) : 11363.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.Resources.ResourceLocator]:set_Item(System.__Canon,System.Resources.ResourceLocator):this (Tier0)
         -69 (-23.63 % of base) : 29373.dasm - Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker:.ctor(Microsoft.Extensions.Logging.ILogger,System.Diagnostics.DiagnosticListener,Microsoft.AspNetCore.Mvc.Infrastructure.IActionContextAccessor,Microsoft.AspNetCore.Mvc.Infrastructure.IActionResultTypeMapper,Microsoft.AspNetCore.Mvc.ControllerContext,Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvokerCacheEntry,Microsoft.AspNetCore.Mvc.Filters.IFilterMetadata[]):this (Instrumented Tier0)
         -54 (-23.58 % of base) : 26568.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol:FirstWriteAsync(System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.IO.Pipelines.FlushResult]:this (Tier0)
         -25 (-23.15 % of base) : 5558.dasm - Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.ConnectionManager:.ctor(Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.KestrelTrace,System.Nullable`1[long]):this (Tier0)
         -34 (-22.82 % of base) : 4767.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver:VisitDisposeCache(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite,Microsoft.Extensions.DependencyInjection.ServiceLookup.RuntimeResolverContext):System.Object:this (Tier0)
         -78 (-22.54 % of base) : 12914.dasm - System.Net.WebSockets.ManagedWebSocket:SendFrameAsync(ubyte,ubyte,ubyte,System.ReadOnlyMemory`1[ubyte],System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (Tier0)
         -22 (-22.45 % of base) : 83914.dasm - System.Buffers.IndexOfAnyAsciiSearcher:TryIndexOfAny(byref,int,System.ReadOnlySpan`1[ushort],byref):ubyte (Instrumented Tier0)
         -22 (-22.45 % of base) : 67791.dasm - System.Buffers.IndexOfAnyAsciiSearcher:TryIndexOfAny(byref,int,System.ReadOnlySpan`1[ushort],byref):ubyte (Tier0)
         -22 (-22.45 % of base) : 25481.dasm - System.Diagnostics.Metrics.Histogram`1[double]:Record(double,System.Collections.Generic.KeyValuePair`2[System.String,System.Object]):this (Tier0)
        -286 (-22.10 % of base) : 68437.dasm - NLog.Extensions.Logging.NLogLogger:CreateLogEventInfo[Microsoft.Extensions.Logging.LoggerMessage+LogValues`1[System.__Canon]](NLog.LogLevel,Microsoft.Extensions.Logging.EventId,Microsoft.Extensions.Logging.LoggerMessage+LogValues`1[System.__Canon],System.Exception,System.Func`3[Microsoft.Extensions.Logging.LoggerMessage+LogValues`1[System.__Canon],System.__Canon,System.__Canon]):NLog.LogEventInfo:this (Tier0)
         -30 (-22.06 % of base) : 16708.dasm - Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider:GetMetadataCacheEntryForObjectType():Microsoft.AspNetCore.Mvc.ModelBinding.Metadata.DefaultModelMetadataProvider+ModelMetadataCacheEntry:this (Tier0)
         -25 (-21.93 % of base) : 82342.dasm - System.Globalization.CalendarData:EnumCalendarInfo(System.String,ushort,int,byref):ubyte (Tier0)
         -17 (-21.79 % of base) : 74299.dasm - Jint.Collections.StringDictionarySlim`1[System.__Canon]:get_Item(Jint.Key):byref:this (Tier0)
         -17 (-21.79 % of base) : 16630.dasm - Microsoft.Extensions.Primitives.StringSegment:op_Equality(Microsoft.Extensions.Primitives.StringSegment,Microsoft.Extensions.Primitives.StringSegment):ubyte (Tier0)
         -17 (-21.79 % of base) : 5881.dasm - System.Net.IPAddress+ReadOnlyIPAddress:.ctor(System.ReadOnlySpan`1[ubyte]):this (Tier0)
         -17 (-21.79 % of base) : 27843.dasm - System.Reflection.RuntimeAssembly+ManifestResourceStream:Read(System.Span`1[ubyte]):int:this (Instrumented Tier0)
         -17 (-21.79 % of base) : 11322.dasm - System.Reflection.RuntimeAssembly+ManifestResourceStream:Read(System.Span`1[ubyte]):int:this (Tier0)
         -17 (-21.79 % of base) : 29681.dasm - System.Threading.CancellationTokenRegistration:op_Equality(System.Threading.CancellationTokenRegistration,System.Threading.CancellationTokenRegistration):ubyte (Instrumented Tier0)


benchmarks.run.windows.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 8747477 (overridden on cmd)
Total bytes of diff: 8745193 (overridden on cmd)
Total bytes of delta: -2284 (-0.03 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         278 : 5382.dasm (2.70 % of base)
         118 : 19612.dasm (6.93 % of base)
          70 : 20162.dasm (1.46 % of base)
          65 : 22145.dasm (5.35 % of base)
          50 : 771.dasm (6.20 % of base)
          40 : 14832.dasm (5.78 % of base)
          38 : 23525.dasm (2.32 % of base)
          35 : 22897.dasm (0.30 % of base)
          34 : 21757.dasm (4.66 % of base)
          31 : 661.dasm (5.79 % of base)
          28 : 10108.dasm (2.43 % of base)
          28 : 23914.dasm (1.75 % of base)
          26 : 5796.dasm (1.57 % of base)
          25 : 16075.dasm (2.14 % of base)
          25 : 26652.dasm (5.52 % of base)
          24 : 8621.dasm (1.74 % of base)
          23 : 11488.dasm (0.67 % of base)
          22 : 10890.dasm (1.37 % of base)
          22 : 7369.dasm (1.92 % of base)
          18 : 20075.dasm (0.93 % of base)

Top file improvements (bytes):
        -379 : 9043.dasm (-8.74 % of base)
        -232 : 11562.dasm (-11.66 % of base)
        -220 : 3214.dasm (-1.92 % of base)
        -100 : 15695.dasm (-5.43 % of base)
         -95 : 25423.dasm (-15.25 % of base)
         -79 : 21697.dasm (-14.13 % of base)
         -74 : 8023.dasm (-2.66 % of base)
         -73 : 18358.dasm (-2.15 % of base)
         -69 : 7301.dasm (-0.40 % of base)
         -67 : 19809.dasm (-2.86 % of base)
         -61 : 1632.dasm (-12.20 % of base)
         -56 : 3818.dasm (-1.26 % of base)
         -55 : 4682.dasm (-5.78 % of base)
         -52 : 5369.dasm (-1.91 % of base)
         -50 : 24720.dasm (-12.59 % of base)
         -46 : 21646.dasm (-7.29 % of base)
         -42 : 26086.dasm (-2.58 % of base)
         -41 : 9001.dasm (-1.89 % of base)
         -36 : 25399.dasm (-0.22 % of base)
         -36 : 2564.dasm (-4.39 % of base)

71 total files with Code Size differences (37 improved, 34 regressed), 20 unchanged.

Top method regressions (bytes):
         278 (2.70 % of base) : 5382.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         118 (6.93 % of base) : 19612.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetCompilationReferences(System.__Canon,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref,byref):this (FullOpts)
          70 (1.46 % of base) : 20162.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
          65 (5.35 % of base) : 22145.dasm - Microsoft.Cci.MetadataWriter:PopulateGenericParameters(System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.IGenericParameter]):this (FullOpts)
          50 (6.20 % of base) : 771.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
          40 (5.78 % of base) : 14832.dasm - System.Number:FormatCurrency[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          38 (2.32 % of base) : 23525.dasm - BenchmarksGame.BinaryTrees_5:Bench(int,ubyte):int (FullOpts)
          35 (0.30 % of base) : 22897.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
          34 (4.66 % of base) : 21757.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__77:MoveNext():ubyte:this (FullOpts)
          31 (5.79 % of base) : 661.dasm - System.Number:FormatNumber[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          28 (1.75 % of base) : 23914.dasm - System.Text.Json.Utf8JsonReader:ConsumeNextTokenUntilAfterAllCommentsAreSkippedMultiSegment(ubyte):ubyte:this (FullOpts)
          28 (2.43 % of base) : 10108.dasm - System.Xml.Serialization.XmlSerializationILGen:GenerateGetSerializer(System.Collections.Generic.Dictionary`2[System.String,System.String],System.Xml.Serialization.XmlMapping[],System.Reflection.Emit.TypeBuilder):this (FullOpts)
          26 (1.57 % of base) : 5796.dasm - Microsoft.Extensions.DependencyInjection.ServiceProvider:.ctor(System.Collections.Generic.ICollection`1[Microsoft.Extensions.DependencyInjection.ServiceDescriptor],Microsoft.Extensions.DependencyInjection.ServiceProviderOptions):this (FullOpts)
          25 (2.14 % of base) : 16075.dasm - System.Text.Json.Utf8JsonReader:ConsumeNextTokenUntilAfterAllCommentsAreSkipped(ubyte):ubyte:this (FullOpts)
          25 (5.52 % of base) : 26652.dasm - V8.Crypto.BigInteger:rShiftTo(int,V8.Crypto.BigInteger):this (FullOpts)
          24 (1.74 % of base) : 8621.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon],System.__Canon]:TryRemoveInternal(System.ValueTuple`3[System.__Canon,System.__Canon,System.__Canon],byref,ubyte,System.__Canon):ubyte:this (FullOpts)
          23 (0.67 % of base) : 11488.dasm - System.Reflection.MethodBaseInvoker:InvokeWithManyArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (FullOpts)
          22 (1.37 % of base) : 10890.dasm - MicroBenchmarks.Serializers.SystemTextJsonSourceGeneratedContext:LocationSerializeHandler(System.Text.Json.Utf8JsonWriter,MicroBenchmarks.Serializers.Location):this (FullOpts)
          22 (1.92 % of base) : 7369.dasm - System.Collections.Generic.GenericArraySortHelper`2[System.__Canon,System.__Canon]:IntroSort(System.Span`1[System.__Canon],System.Span`1[System.__Canon],int) (FullOpts)
          18 (0.93 % of base) : 20075.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ModifierUtils:CheckModifiers(ubyte,ubyte,uint,uint,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Nullable`1[Microsoft.CodeAnalysis.SyntaxTokenList],byref):uint (FullOpts)

Top method improvements (bytes):
        -379 (-8.74 % of base) : 9043.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -232 (-11.66 % of base) : 11562.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -220 (-1.92 % of base) : 3214.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (FullOpts)
        -100 (-5.43 % of base) : 15695.dasm - System.Xml.Schema.XsdDateTime+Parser:Parse(System.String,int):ubyte:this (FullOpts)
         -95 (-15.25 % of base) : 25423.dasm - Benchstone.MDBenchF.MDLLoops:Test():ubyte:this (FullOpts)
         -79 (-14.13 % of base) : 21697.dasm - Microsoft.CodeAnalysis.Compilation:SerializePeToStream(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CommonMessageProvider,System.Func`1[System.IO.Stream],System.Func`1[System.IO.Stream],System.Func`1[System.IO.Stream],Microsoft.Cci.PdbWriter,System.String,Microsoft.CodeAnalysis.RebuildData,ubyte,ubyte,ubyte,ubyte,System.Nullable`1[System.Security.Cryptography.RSAParameters],System.Threading.CancellationToken):ubyte (FullOpts)
         -74 (-2.66 % of base) : 8023.dasm - ProtoBuf.Internal.Serializers.TypeSerializer`1[System.__Canon]:ProtoBuf.Internal.Serializers.IRuntimeProtoSerializerNode.EmitRead(ProtoBuf.Compiler.CompilerContext,ProtoBuf.Compiler.Local):this (FullOpts)
         -73 (-2.15 % of base) : 18358.dasm - System.Number:FormatBigInteger(ubyte,System.Numerics.BigInteger,System.String,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo,System.Span`1[ushort],byref,byref):System.String (FullOpts)
         -69 (-0.40 % of base) : 7301.dasm - (dynamicClass):_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         -67 (-2.86 % of base) : 19809.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:TryAddAssembly(Microsoft.CodeAnalysis.AssemblyIdentity,Microsoft.CodeAnalysis.MetadataReference,int,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Location,System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon],ubyte):Microsoft.CodeAnalysis.MetadataReference:this (FullOpts)
         -61 (-12.20 % of base) : 1632.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo:Configure():this (FullOpts)
         -56 (-1.26 % of base) : 3818.dasm - System.Number:TryParseNumber[ushort](byref,ulong,int,byref,System.Globalization.NumberFormatInfo):ubyte (FullOpts)
         -55 (-5.78 % of base) : 4682.dasm - System.Text.Encoding:GetCharsWithFallback(ulong,int,ulong,int,int,int,System.Text.DecoderNLS):int:this (FullOpts)
         -52 (-1.91 % of base) : 5369.dasm - System.Reflection.Emit.RuntimeTypeBuilder:CreateTypeNoLock():System.Reflection.TypeInfo:this (FullOpts)
         -50 (-12.59 % of base) : 24720.dasm - System.Enum:TryParseByValueOrName[int,uint](System.RuntimeType,System.ReadOnlySpan`1[ushort],ubyte,ubyte,byref):ubyte (FullOpts)
         -46 (-7.29 % of base) : 21646.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (FullOpts)
         -42 (-2.58 % of base) : 26086.dasm - System.IO.Tests.Perf_RandomAccess+<WriteAsync>d__17:MoveNext():this (FullOpts)
         -41 (-1.89 % of base) : 9001.dasm - Newtonsoft.Json.Serialization.JsonArrayContract:.ctor(System.Type):this (FullOpts)
         -36 (-0.22 % of base) : 25399.dasm - (dynamicClass):_DynamicMethod1(byref,int):MicroBenchmarks.Serializers.IndexViewModel (FullOpts)
         -36 (-4.39 % of base) : 2564.dasm - System.Net.Http.HttpConnectionPoolManager:SendAsync(System.Net.Http.HttpRequestMessage,ubyte,ubyte,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[System.Net.Http.HttpResponseMessage]:this (FullOpts)

Top method regressions (percentages):
         118 (6.93 % of base) : 19612.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetCompilationReferences(System.__Canon,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref,byref):this (FullOpts)
          50 (6.20 % of base) : 771.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
          31 (5.79 % of base) : 661.dasm - System.Number:FormatNumber[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          40 (5.78 % of base) : 14832.dasm - System.Number:FormatCurrency[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          25 (5.52 % of base) : 26652.dasm - V8.Crypto.BigInteger:rShiftTo(int,V8.Crypto.BigInteger):this (FullOpts)
          65 (5.35 % of base) : 22145.dasm - Microsoft.Cci.MetadataWriter:PopulateGenericParameters(System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.IGenericParameter]):this (FullOpts)
          15 (5.19 % of base) : 10455.dasm - Microsoft.Extensions.Logging.Logger:<Log>g__LoggerLog|14_0[Microsoft.Extensions.Logging.FormattedLogValues](int,Microsoft.Extensions.Logging.EventId,Microsoft.Extensions.Logging.ILogger,System.Exception,System.Func`3[Microsoft.Extensions.Logging.FormattedLogValues,System.Exception,System.String],byref,byref) (FullOpts)
          15 (4.89 % of base) : 5992.dasm - Microsoft.Extensions.Logging.Logger:<Log>g__LoggerLog|14_0[Microsoft.Extensions.Logging.LoggerMessage+LogValues`2[int,System.__Canon]](int,Microsoft.Extensions.Logging.EventId,Microsoft.Extensions.Logging.ILogger,System.Exception,System.Func`3[Microsoft.Extensions.Logging.LoggerMessage+LogValues`2[int,System.__Canon],System.__Canon,System.__Canon],byref,byref) (FullOpts)
          34 (4.66 % of base) : 21757.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__77:MoveNext():ubyte:this (FullOpts)
           3 (4.17 % of base) : 26925.dasm - ProtoBuf.Internal.PrimaryTypeProvider:ProtoBuf.Serializers.ISerializer<System.DateTime>.Read(byref,System.DateTime):System.DateTime:this (FullOpts)
           9 (4.11 % of base) : 26385.dasm - System.Numerics.Tests.Perf_BigInteger:Multiply(System.Numerics.Tests.Perf_BigInteger+BigIntegers):System.Numerics.BigInteger:this (FullOpts)
           7 (3.85 % of base) : 6002.dasm - System.String:Format[int,System.__Canon](System.IFormatProvider,System.Text.CompositeFormat,int,System.__Canon):System.String (FullOpts)
           3 (3.85 % of base) : 13640.dasm - System.Tests.Perf_UInt64:TryFormat(ulong):ubyte:this (FullOpts)
           3 (3.75 % of base) : 14742.dasm - System.Net.Primitives.Tests.IPAddressPerformanceTests:TryFormat(System.Net.IPAddress):ubyte:this (FullOpts)
           3 (3.75 % of base) : 15647.dasm - System.Net.Primitives.Tests.IPAddressPerformanceTests:TryWriteBytes(System.Net.IPAddress):ubyte:this (FullOpts)
           3 (3.49 % of base) : 15889.dasm - System.IO.Strategies.BufferedFileStreamStrategy:Read(System.Span`1[ubyte]):int:this (FullOpts)
           3 (3.49 % of base) : 14438.dasm - System.IO.Strategies.BufferedFileStreamStrategy:Write(System.ReadOnlySpan`1[ubyte]):this (FullOpts)
           2 (3.45 % of base) : 281.dasm - System.Reflection.TypeNameParser+NamespaceTypeName:ResolveType(byref,System.String):System.Type:this (FullOpts)
           3 (3.19 % of base) : 4512.dasm - System.Text.Json.JsonSerializerOptions:get_ObjectTypeInfo():System.Text.Json.Serialization.Metadata.JsonTypeInfo:this (FullOpts)
           3 (3.09 % of base) : 25931.dasm - System.Buffers.Text.Tests.Utf8FormatterTests:FormatterDateTimeOffsetNow(System.DateTimeOffset):ubyte:this (FullOpts)

Top method improvements (percentages):
         -95 (-15.25 % of base) : 25423.dasm - Benchstone.MDBenchF.MDLLoops:Test():ubyte:this (FullOpts)
         -15 (-14.15 % of base) : 6536.dasm - System.Tests.Perf_Int128:.ctor():this (FullOpts)
         -79 (-14.13 % of base) : 21697.dasm - Microsoft.CodeAnalysis.Compilation:SerializePeToStream(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CommonMessageProvider,System.Func`1[System.IO.Stream],System.Func`1[System.IO.Stream],System.Func`1[System.IO.Stream],Microsoft.Cci.PdbWriter,System.String,Microsoft.CodeAnalysis.RebuildData,ubyte,ubyte,ubyte,ubyte,System.Nullable`1[System.Security.Cryptography.RSAParameters],System.Threading.CancellationToken):ubyte (FullOpts)
         -50 (-12.59 % of base) : 24720.dasm - System.Enum:TryParseByValueOrName[int,uint](System.RuntimeType,System.ReadOnlySpan`1[ushort],ubyte,ubyte,byref):ubyte (FullOpts)
         -61 (-12.20 % of base) : 1632.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo:Configure():this (FullOpts)
         -15 (-11.81 % of base) : 27939.dasm - Benchstone.MDBenchI.MDPuzzle:Test():ubyte:this (FullOpts)
        -232 (-11.66 % of base) : 11562.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
         -30 (-10.17 % of base) : 1633.dasm - System.Text.Json.Serialization.Metadata.JsonPropertyInfo:Configure():this (FullOpts)
          -8 (-10.13 % of base) : 1886.dasm - System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
         -20 (-9.05 % of base) : 6878.dasm - System.Collections.Generic.Stack`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
        -379 (-8.74 % of base) : 9043.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
         -27 (-8.71 % of base) : 21898.dasm - Microsoft.Cci.MetadataVisitor:Visit(Microsoft.Cci.ICustomAttribute):this (FullOpts)
         -25 (-8.65 % of base) : 3556.dasm - System.Numerics.Tests.Perf_BigInteger+BigIntegers:.ctor(int[]):this (FullOpts)
         -30 (-7.98 % of base) : 14683.dasm - System.Buffers.Tests.SearchValuesByteTests:Setup():this (FullOpts)
         -15 (-7.94 % of base) : 20041.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NonMissingModuleSymbol:LookupTopLevelMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
         -10 (-7.63 % of base) : 28019.dasm - System.Linq.Grouping`2+<GetEnumerator>d__9[System.__Canon,System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -10 (-7.41 % of base) : 22364.dasm - System.Reflection.PortableExecutable.PEBuilder:WritePESignature(System.Reflection.Metadata.BlobBuilder) (FullOpts)
         -46 (-7.29 % of base) : 21646.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:CheckIfAttributeShouldBeEmbedded(int,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.Location):ubyte:this (FullOpts)
          -7 (-7.07 % of base) : 4262.dasm - System.IO.Compression.DeflateStream:ReadByte():int:this (FullOpts)
         -30 (-6.79 % of base) : 13892.dasm - System.Numerics.Tests.Perf_BigInteger+BigIntegerData:.ctor(System.String):this (FullOpts)


benchmarks.run_pgo.windows.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 35391293 (overridden on cmd)
Total bytes of diff: 35256803 (overridden on cmd)
Total bytes of delta: -134490 (-0.38 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         107 : 34800.dasm (6.92 % of base)
         107 : 37412.dasm (6.92 % of base)
          28 : 99764.dasm (1.36 % of base)
          22 : 47355.dasm (3.24 % of base)
          18 : 100451.dasm (0.89 % of base)
          18 : 68997.dasm (0.39 % of base)
          18 : 35140.dasm (0.89 % of base)
          18 : 42850.dasm (0.90 % of base)
          18 : 45751.dasm (0.90 % of base)
          18 : 69901.dasm (0.89 % of base)
          18 : 94725.dasm (0.90 % of base)
          18 : 41588.dasm (0.90 % of base)
          18 : 46125.dasm (0.90 % of base)
          18 : 48724.dasm (0.90 % of base)
          18 : 67521.dasm (3.39 % of base)
          18 : 74736.dasm (0.90 % of base)
          18 : 85553.dasm (0.90 % of base)
          18 : 98030.dasm (0.89 % of base)
          18 : 37616.dasm (0.89 % of base)
          18 : 47795.dasm (0.90 % of base)

Top file improvements (bytes):
       -1361 : 12522.dasm (-11.10 % of base)
       -1079 : 5673.dasm (-5.71 % of base)
        -772 : 65651.dasm (-12.32 % of base)
        -706 : 61213.dasm (-13.06 % of base)
        -611 : 1034.dasm (-15.10 % of base)
        -529 : 12893.dasm (-17.09 % of base)
        -521 : 88729.dasm (-18.08 % of base)
        -504 : 23027.dasm (-2.53 % of base)
        -426 : 66747.dasm (-5.26 % of base)
        -419 : 60469.dasm (-7.53 % of base)
        -400 : 61579.dasm (-6.75 % of base)
        -352 : 65202.dasm (-14.09 % of base)
        -343 : 62093.dasm (-15.16 % of base)
        -336 : 60123.dasm (-3.30 % of base)
        -324 : 29887.dasm (-4.90 % of base)
        -324 : 98594.dasm (-4.90 % of base)
        -321 : 65736.dasm (-7.05 % of base)
        -311 : 25385.dasm (-4.64 % of base)
        -306 : 66977.dasm (-4.57 % of base)
        -305 : 6883.dasm (-6.94 % of base)

91 total files with Code Size differences (56 improved, 35 regressed), 20 unchanged.

Top method regressions (bytes):
         107 (6.92 % of base) : 34800.dasm - System.Text.RegularExpressions.Symbolic.MintermClassifier:.ctor(System.Text.RegularExpressions.Symbolic.BDD[],System.Text.RegularExpressions.Symbolic.CharSetSolver):this (Tier1)
         107 (6.92 % of base) : 37412.dasm - System.Text.RegularExpressions.Symbolic.MintermClassifier:.ctor(System.Text.RegularExpressions.Symbolic.BDD[],System.Text.RegularExpressions.Symbolic.CharSetSolver):this (Tier1)
          28 (1.36 % of base) : 99764.dasm - System.IO.StreamWriter:Flush(ubyte,ubyte):this (Tier1)
          22 (3.24 % of base) : 47355.dasm - System.String:StartsWith(System.String,int):ubyte:this (Tier1)
          18 (0.39 % of base) : 68997.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__createConversion|210_0(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier1)
          18 (3.39 % of base) : 67521.dasm - Microsoft.CodeAnalysis.PEModule:FindTargetAttribute(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.AttributeDescription,byref):Microsoft.CodeAnalysis.PEModule+AttributeInfo (Tier1)
          18 (0.89 % of base) : 100451.dasm - System.IO.StreamWriter:Flush(ubyte,ubyte):this (Tier1)
          18 (0.89 % of base) : 35140.dasm - System.IO.StreamWriter:Flush(ubyte,ubyte):this (Tier1)
          18 (0.90 % of base) : 42850.dasm - System.IO.StreamWriter:Flush(ubyte,ubyte):this (Tier1)
          18 (0.90 % of base) : 45751.dasm - System.IO.StreamWriter:Flush(ubyte,ubyte):this (Tier1)
          18 (0.89 % of base) : 69901.dasm - System.IO.StreamWriter:Flush(ubyte,ubyte):this (Tier1)
          18 (0.90 % of base) : 94725.dasm - System.IO.StreamWriter:Flush(ubyte,ubyte):this (Tier1)
          18 (0.90 % of base) : 41588.dasm - System.IO.StreamWriter:Flush(ubyte,ubyte):this (Tier1)
          18 (0.90 % of base) : 46125.dasm - System.IO.StreamWriter:Flush(ubyte,ubyte):this (Tier1)
          18 (0.90 % of base) : 48724.dasm - System.IO.StreamWriter:Flush(ubyte,ubyte):this (Tier1)
          18 (0.90 % of base) : 74736.dasm - System.IO.StreamWriter:Flush(ubyte,ubyte):this (Tier1)
          18 (0.90 % of base) : 85553.dasm - System.IO.StreamWriter:Flush(ubyte,ubyte):this (Tier1)
          18 (0.89 % of base) : 98030.dasm - System.IO.StreamWriter:Flush(ubyte,ubyte):this (Tier1)
          18 (0.89 % of base) : 37616.dasm - System.IO.StreamWriter:Flush(ubyte,ubyte):this (Tier1)
          18 (0.90 % of base) : 47795.dasm - System.IO.StreamWriter:Flush(ubyte,ubyte):this (Tier1)

Top method improvements (bytes):
       -1361 (-11.10 % of base) : 12522.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier0)
       -1079 (-5.71 % of base) : 5673.dasm - Product:CreateLists() (Tier0)
        -772 (-12.32 % of base) : 65651.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__createConversion|210_0(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Instrumented Tier0)
        -706 (-13.06 % of base) : 61213.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__createConversion|210_0(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
        -611 (-15.10 % of base) : 1034.dasm - System.Diagnostics.FileVersionInfo:GetVersionInfoForCodePage(ulong,System.String):ubyte:this (Tier0)
        -529 (-17.09 % of base) : 12893.dasm - System.Enum:TryFormatUnconstrained[int](int,System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort]):ubyte (Tier0)
        -521 (-18.08 % of base) : 88729.dasm - System.Enum:System.ISpanFormattable.TryFormat(System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):ubyte:this (Tier0)
        -504 (-2.53 % of base) : 23027.dasm - MessagePack.Internal.ObjectSerializationInfo:CreateOrNull(System.Type,ubyte,ubyte,ubyte):MessagePack.Internal.ObjectSerializationInfo (Instrumented Tier0)
        -426 (-5.26 % of base) : 66747.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeConversionNodeCore(Microsoft.CodeAnalysis.CSharp.BoundConversion,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,ubyte,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Instrumented Tier0)
        -419 (-7.53 % of base) : 60469.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckMembersAgainstBaseType(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Threading.CancellationToken):this (Instrumented Tier0)
        -400 (-6.75 % of base) : 61579.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeConversionNodeCore(Microsoft.CodeAnalysis.CSharp.BoundConversion,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,ubyte,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
        -352 (-14.09 % of base) : 65202.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:CreateEmbeddedAttributesIfNeeded(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Instrumented Tier0)
        -343 (-15.16 % of base) : 62093.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:CreateEmbeddedAttributesIfNeeded(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0)
        -336 (-3.30 % of base) : 60123.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:AddNonTypeMembers(Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+DeclaredMembersAndInitializersBuilder,Microsoft.CodeAnalysis.SyntaxList`1[Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Instrumented Tier0)
        -324 (-4.90 % of base) : 29887.dasm - System.Xml.Serialization.TypeScope:ImportTypeDesc(System.Type,System.Reflection.MemberInfo,ubyte):System.Xml.Serialization.TypeDesc:this (Instrumented Tier0)
        -324 (-4.90 % of base) : 98594.dasm - System.Xml.Serialization.TypeScope:ImportTypeDesc(System.Type,System.Reflection.MemberInfo,ubyte):System.Xml.Serialization.TypeDesc:this (Instrumented Tier0)
        -321 (-7.05 % of base) : 65736.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:GenerateMethodBody(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,Microsoft.CodeAnalysis.CSharp.BoundStatement,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.LambdaDebugInfo],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.ClosureDebugInfo],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.StateMachineStateDebugInfo],Microsoft.CodeAnalysis.CSharp.StateMachineTypeSymbol,Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider,Microsoft.CodeAnalysis.CSharp.ImportChain,ubyte,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SourceSpan],Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedEntryPointSymbol+AsyncForwardEntryPoint):Microsoft.CodeAnalysis.CodeGen.MethodBody (Instrumented Tier0)
        -311 (-4.64 % of base) : 25385.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper:ImportDataMembers():this (Instrumented Tier0)
        -306 (-4.57 % of base) : 66977.dasm - Microsoft.CodeAnalysis.Compilation:SerializeToPeStream(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.Compilation+EmitStreamProvider,Microsoft.CodeAnalysis.RebuildData,System.Func`2[Microsoft.DiaSymReader.ISymWriterMetadataProvider,Microsoft.DiaSymReader.SymUnmanagedWriter],Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.Emit.EmitOptions,System.Nullable`1[System.Security.Cryptography.RSAParameters],System.Threading.CancellationToken):ubyte:this (Instrumented Tier0)
        -305 (-6.94 % of base) : 6883.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenNoLock(System.Reflection.MethodInfo,ubyte):int:this (Instrumented Tier0)

Top method regressions (percentages):
         107 (6.92 % of base) : 34800.dasm - System.Text.RegularExpressions.Symbolic.MintermClassifier:.ctor(System.Text.RegularExpressions.Symbolic.BDD[],System.Text.RegularExpressions.Symbolic.CharSetSolver):this (Tier1)
         107 (6.92 % of base) : 37412.dasm - System.Text.RegularExpressions.Symbolic.MintermClassifier:.ctor(System.Text.RegularExpressions.Symbolic.BDD[],System.Text.RegularExpressions.Symbolic.CharSetSolver):this (Tier1)
           3 (3.90 % of base) : 68616.dasm - System.Security.Cryptography.HashProviderDispenser:CreateHashProvider(System.String):System.Security.Cryptography.HashProvider (Tier1)
          18 (3.39 % of base) : 67521.dasm - Microsoft.CodeAnalysis.PEModule:FindTargetAttribute(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.AttributeDescription,byref):Microsoft.CodeAnalysis.PEModule+AttributeInfo (Tier1)
          22 (3.24 % of base) : 47355.dasm - System.String:StartsWith(System.String,int):ubyte:this (Tier1)
           8 (2.31 % of base) : 15777.dasm - System.Net.Sockets.Socket:Receive(System.Span`1[ubyte],int,byref):int:this (Tier0)
           8 (2.31 % of base) : 15770.dasm - System.Net.Sockets.Socket:Send(System.ReadOnlySpan`1[ubyte],int,byref):int:this (Tier0)
           7 (1.99 % of base) : 89983.dasm - System.Numerics.BigInteger:op_Addition(System.Numerics.BigInteger,System.Numerics.BigInteger):System.Numerics.BigInteger (Tier1)
           3 (1.82 % of base) : 101100.dasm - LinqBenchmarks+<>c:<AggregateBy00GroupByX>b__24_2(System.Linq.IGrouping`2[System.String,Product]):System.Decimal:this (Tier1)
           4 (1.60 % of base) : 7023.dasm - System.Linq.Enumerable+SelectRangeIterator`1[System.Reflection.Emit.Label]:Fill(System.Span`1[System.Reflection.Emit.Label],int,System.Func`2[int,System.Reflection.Emit.Label]) (Instrumented Tier0)
           4 (1.57 % of base) : 5654.dasm - System.Linq.Enumerable+ListPartition`1[ushort]:Fill(System.Collections.Generic.IList`1[ushort],System.Span`1[ushort],int) (Instrumented Tier0)
           4 (1.48 % of base) : 4060.dasm - System.Linq.Enumerable+SelectArrayIterator`2[short,System.Collections.NotKnownComparable]:Fill(System.ReadOnlySpan`1[short],System.Span`1[System.Collections.NotKnownComparable],System.Func`2[short,System.Collections.NotKnownComparable]) (Instrumented Tier0)
           4 (1.41 % of base) : 98848.dasm - System.Reflection.Emit.RuntimeParameterBuilder:.ctor(System.Reflection.Emit.RuntimeMethodBuilder,int,int,System.String):this (Instrumented Tier0)
          11 (1.37 % of base) : 3328.dasm - System.Collections.Frozen.FrozenSet:CreateFromSet[int](System.Collections.Generic.HashSet`1[int]):System.Collections.Frozen.FrozenSet`1[int] (Instrumented Tier0)
          28 (1.36 % of base) : 99764.dasm - System.IO.StreamWriter:Flush(ubyte,ubyte):this (Tier1)
          11 (1.31 % of base) : 62071.dasm - Microsoft.CodeAnalysis.CodeGen.ReferenceDependencyWalker:VisitSignature(Microsoft.Cci.ISignature,Microsoft.CodeAnalysis.Emit.EmitContext) (Instrumented Tier0)
          11 (1.31 % of base) : 66925.dasm - Microsoft.CodeAnalysis.CodeGen.ReferenceDependencyWalker:VisitSignature(Microsoft.Cci.ISignature,Microsoft.CodeAnalysis.Emit.EmitContext) (Instrumented Tier0)
           5 (1.30 % of base) : 68775.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData:Microsoft.Cci.ICustomAttribute.GetNamedArguments(Microsoft.CodeAnalysis.Emit.EmitContext):System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.IMetadataNamedArgument]:this (Tier1)
           4 (1.27 % of base) : 14233.dasm - System.IO.Strategies.BufferedFileStreamStrategy:Read(ubyte[],int,int):int:this (Tier1)
           4 (1.27 % of base) : 48854.dasm - System.IO.Strategies.BufferedFileStreamStrategy:Write(ubyte[],int,int):this (Tier1)

Top method improvements (percentages):
         -97 (-30.70 % of base) : 66856.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Instrumented Tier0)
         -97 (-30.70 % of base) : 61967.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -90 (-30.51 % of base) : 66895.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Instrumented Tier0)
         -90 (-30.51 % of base) : 62029.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
        -147 (-30.50 % of base) : 62049.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -62 (-30.24 % of base) : 76349.dasm - System.Net.SSPISecureChannelType:InitializeSecurityContext(byref,byref,System.String,int,int,System.Net.Security.InputSecurityBuffers,byref,byref):int:this (Instrumented Tier0)
         -62 (-30.24 % of base) : 11276.dasm - System.Net.SSPISecureChannelType:InitializeSecurityContext(byref,byref,System.String,int,int,System.Net.Security.InputSecurityBuffers,byref,byref):int:this (Tier0)
        -156 (-29.66 % of base) : 66910.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Instrumented Tier0)
         -30 (-28.30 % of base) : 66808.dasm - Microsoft.CodeAnalysis.SmallDictionary`2+AvlNode[System.__Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo]:.ctor(int,System.__Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo):this (Instrumented Tier0)
         -30 (-28.30 % of base) : 61821.dasm - Microsoft.CodeAnalysis.SmallDictionary`2+AvlNode[System.__Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo]:.ctor(int,System.__Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo):this (Tier0)
         -26 (-28.26 % of base) : 31351.dasm - System.Diagnostics.ActivityEvent:.ctor(System.String):this (Tier0)
        -228 (-27.40 % of base) : 73497.dasm - System.Text.Tests.Perf_StringBuilder:Append_Memory():System.Text.StringBuilder:this (Tier0)
        -228 (-27.40 % of base) : 74378.dasm - System.Text.Tests.Perf_StringBuilder:Append_NonEmptySpan():System.Text.StringBuilder:this (Tier0)
         -91 (-27.16 % of base) : 61234.dasm - Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator+UncommonData:CreateIfNeeded(Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]):Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator+UncommonData (Tier0)
        -141 (-26.60 % of base) : 71223.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:MakeLocal(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder):Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol (Tier0)
         -46 (-25.41 % of base) : 31764.dasm - Interop+Winsock:WSASendTo(System.Runtime.InteropServices.SafeHandle,byref,int,byref,int,System.ReadOnlySpan`1[ubyte],ulong,long):int (Instrumented Tier0)
         -46 (-25.41 % of base) : 31681.dasm - Interop+Winsock:WSASendTo(System.Runtime.InteropServices.SafeHandle,byref,int,byref,int,System.ReadOnlySpan`1[ubyte],ulong,long):int (Tier0)
         -62 (-24.22 % of base) : 69713.dasm - System.Numerics.Tests.Perf_Matrix4x4:LerpBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -28 (-24.14 % of base) : 5600.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.Resources.ResourceLocator]:set_Item(System.__Canon,System.Resources.ResourceLocator):this (Tier0)
         -55 (-23.91 % of base) : 60682.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper+CheckConstraintsArgs:.ctor(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.ConversionsBase,ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0)


benchmarks.run_tiered.windows.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 12661498 (overridden on cmd)
Total bytes of diff: 12584524 (overridden on cmd)
Total bytes of delta: -76974 (-0.61 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         278 : 52574.dasm (2.70 % of base)
          70 : 45001.dasm (1.46 % of base)
          50 : 21337.dasm (6.20 % of base)
          31 : 9661.dasm (5.79 % of base)
          23 : 24347.dasm (0.67 % of base)
          18 : 44911.dasm (0.93 % of base)
          16 : 45645.dasm (0.60 % of base)
          12 : 44779.dasm (0.50 % of base)
          12 : 3300.dasm (0.94 % of base)
          11 : 12837.dasm (0.58 % of base)
          11 : 10554.dasm (1.05 % of base)
          11 : 9481.dasm (1.12 % of base)
          11 : 14877.dasm (0.92 % of base)
          11 : 16396.dasm (1.19 % of base)
          11 : 6577.dasm (0.45 % of base)
          10 : 25598.dasm (1.72 % of base)
          10 : 50685.dasm (0.54 % of base)
          10 : 50690.dasm (0.54 % of base)
           8 : 4961.dasm (2.31 % of base)
           8 : 4993.dasm (2.31 % of base)

Top file improvements (bytes):
       -1361 : 11377.dasm (-11.10 % of base)
       -1079 : 8665.dasm (-5.71 % of base)
        -706 : 39303.dasm (-13.06 % of base)
        -611 : 1158.dasm (-15.10 % of base)
        -529 : 15990.dasm (-17.09 % of base)
        -521 : 50154.dasm (-18.08 % of base)
        -400 : 39677.dasm (-6.75 % of base)
        -343 : 40192.dasm (-15.16 % of base)
        -306 : 43631.dasm (-10.20 % of base)
        -288 : 5678.dasm (-7.51 % of base)
        -278 : 39232.dasm (-4.96 % of base)
        -275 : 39718.dasm (-7.57 % of base)
        -229 : 5819.dasm (-8.41 % of base)
        -228 : 42942.dasm (-27.40 % of base)
        -228 : 45533.dasm (-27.40 % of base)
        -227 : 17649.dasm (-2.85 % of base)
        -214 : 40126.dasm (-17.23 % of base)
        -208 : 10573.dasm (-6.89 % of base)
        -204 : 7574.dasm (-4.39 % of base)
        -198 : 10219.dasm (-4.81 % of base)

84 total files with Code Size differences (55 improved, 29 regressed), 20 unchanged.

Top method regressions (bytes):
         278 (2.70 % of base) : 52574.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
          70 (1.46 % of base) : 45001.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier1)
          50 (6.20 % of base) : 21337.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
          31 (5.79 % of base) : 9661.dasm - System.Number:FormatNumber[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (Tier1)
          23 (0.67 % of base) : 24347.dasm - System.Reflection.MethodBaseInvoker:InvokeWithManyArgs(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (Tier0-FullOpts)
          18 (0.93 % of base) : 44911.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ModifierUtils:CheckModifiers(ubyte,ubyte,uint,uint,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,System.Nullable`1[Microsoft.CodeAnalysis.SyntaxTokenList],byref):uint (Tier1)
          16 (0.60 % of base) : 45645.dasm - System.Text.Json.Tests.Perf_Segment:ReadMultiSegmentSequenceUsingSpan(int):this (Tier1-OSR)
          12 (0.50 % of base) : 44779.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ModifierUtils:ToDeclarationModifiers(Microsoft.CodeAnalysis.SyntaxTokenList,ubyte,Microsoft.CodeAnalysis.DiagnosticBag,ubyte):uint (Tier1)
          12 (0.94 % of base) : 3300.dasm - System.Reflection.RuntimeParameterInfo:GetParameters(System.IRuntimeMethodInfo,System.Reflection.MemberInfo,System.Signature,byref,ubyte):System.Reflection.ParameterInfo[] (Tier1)
          11 (1.12 % of base) : 9481.dasm - Microsoft.Extensions.DependencyInjection.ServiceProvider:CreateServiceAccessor(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier):Microsoft.Extensions.DependencyInjection.ServiceProvider+ServiceAccessor:this (Tier0)
          11 (0.58 % of base) : 12837.dasm - System.Globalization.TimeSpanFormat:TryFormatStandard[ushort](System.TimeSpan,int,System.ReadOnlySpan`1[ushort],System.Span`1[ushort],byref):ubyte (Tier0)
          11 (0.92 % of base) : 14877.dasm - System.Net.Http.SocketsHttpHandler:ValidateAndNormalizeRequest(System.Net.Http.HttpRequestMessage):System.Exception (Tier0)
          11 (1.05 % of base) : 10554.dasm - System.Net.Sockets.Socket:Accept():System.Net.Sockets.Socket:this (Tier0)
          11 (1.19 % of base) : 16396.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateEvents(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Reflection.RuntimeEventInfo],byref):this (Tier0)
          11 (0.45 % of base) : 6577.dasm - System.Text.Json.Serialization.Converters.ObjectDefaultConverter`1[MicroBenchmarks.Serializers.LargeStructWithProperties]:OnTryRead(byref,System.Type,System.Text.Json.JsonSerializerOptions,byref,byref):ubyte:this (Tier0)
          10 (0.54 % of base) : 50685.dasm - BenchmarksGame.pidigits:compose_l(int,int,int,int):this (Tier1)
          10 (0.54 % of base) : 50690.dasm - BenchmarksGame.pidigits:compose_r(int,int,int,int):this (Tier1)
          10 (1.72 % of base) : 25598.dasm - BitOps:DoBitfieldIteration(int[],int[],int,byref):long (Tier1)
           8 (2.31 % of base) : 4993.dasm - System.Net.Sockets.Socket:Receive(System.Span`1[ubyte],int,byref):int:this (Tier0)
           8 (2.31 % of base) : 4961.dasm - System.Net.Sockets.Socket:Send(System.ReadOnlySpan`1[ubyte],int,byref):int:this (Tier0)

Top method improvements (bytes):
       -1361 (-11.10 % of base) : 11377.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier0)
       -1079 (-5.71 % of base) : 8665.dasm - Product:CreateLists() (Tier0)
        -706 (-13.06 % of base) : 39303.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__createConversion|210_0(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
        -611 (-15.10 % of base) : 1158.dasm - System.Diagnostics.FileVersionInfo:GetVersionInfoForCodePage(ulong,System.String):ubyte:this (Tier0)
        -529 (-17.09 % of base) : 15990.dasm - System.Enum:TryFormatUnconstrained[int](int,System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort]):ubyte (Tier0)
        -521 (-18.08 % of base) : 50154.dasm - System.Enum:System.ISpanFormattable.TryFormat(System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort],System.IFormatProvider):ubyte:this (Tier0)
        -400 (-6.75 % of base) : 39677.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeConversionNodeCore(Microsoft.CodeAnalysis.CSharp.BoundConversion,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,ubyte,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
        -343 (-15.16 % of base) : 40192.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEAssemblyBuilderBase:CreateEmbeddedAttributesIfNeeded(Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0)
        -306 (-10.20 % of base) : 43631.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (Tier0)
        -288 (-7.51 % of base) : 5678.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass158_0:<EmitTryMatchAtCurrentPosition>g__EmitSingleCharAtomicLoop|25(System.Text.RegularExpressions.RegexNode):this (Tier0)
        -278 (-4.96 % of base) : 39232.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckValueKind(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,ushort,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier0)
        -275 (-7.57 % of base) : 39718.dasm - Microsoft.CodeAnalysis.CSharp.MethodCompiler:GenerateMethodBody(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,int,Microsoft.CodeAnalysis.CSharp.BoundStatement,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.LambdaDebugInfo],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.ClosureDebugInfo],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.StateMachineStateDebugInfo],Microsoft.CodeAnalysis.CSharp.StateMachineTypeSymbol,Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CodeGen.DebugDocumentProvider,Microsoft.CodeAnalysis.CSharp.ImportChain,ubyte,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CodeGen.SourceSpan],Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedEntryPointSymbol+AsyncForwardEntryPoint):Microsoft.CodeAnalysis.CodeGen.MethodBody (Tier0)
        -229 (-8.41 % of base) : 5819.dasm - System.Text.RegularExpressions.RegexCompiler:<EmitTryFindNextPossibleStartingPosition>g__EmitLiteralAfterAtomicLoop|157_5(byref):this (Tier0)
        -228 (-27.40 % of base) : 42942.dasm - System.Text.Tests.Perf_StringBuilder:Append_Memory():System.Text.StringBuilder:this (Tier0)
        -228 (-27.40 % of base) : 45533.dasm - System.Text.Tests.Perf_StringBuilder:Append_NonEmptySpan():System.Text.StringBuilder:this (Tier0)
        -227 (-2.85 % of base) : 17649.dasm - System.Text.RegularExpressions.RegexInterpreter:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (Tier0)
        -214 (-17.23 % of base) : 40126.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeCall(Microsoft.CodeAnalysis.CSharp.BoundCall,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol]):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
        -208 (-6.89 % of base) : 10573.dasm - System.Net.Sockets.Socket:.ctor(System.Net.Sockets.SafeSocketHandle,ubyte):this (Tier0)
        -204 (-4.39 % of base) : 7574.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (Tier0)
        -198 (-4.81 % of base) : 10219.dasm - System.Number:TryParseNumber[ushort](byref,ulong,int,byref,System.Globalization.NumberFormatInfo):ubyte (Tier0)

Top method regressions (percentages):
          50 (6.20 % of base) : 21337.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (Tier1)
          31 (5.79 % of base) : 9661.dasm - System.Number:FormatNumber[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (Tier1)
           3 (3.90 % of base) : 47141.dasm - System.Security.Cryptography.HashProviderDispenser:CreateHashProvider(System.String):System.Security.Cryptography.HashProvider (Tier1)
           2 (3.45 % of base) : 2919.dasm - System.Reflection.TypeNameParser+NamespaceTypeName:ResolveType(byref,System.String):System.Type:this (Tier1)
         278 (2.70 % of base) : 52574.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
           8 (2.31 % of base) : 4993.dasm - System.Net.Sockets.Socket:Receive(System.Span`1[ubyte],int,byref):int:this (Tier0)
           8 (2.31 % of base) : 4961.dasm - System.Net.Sockets.Socket:Send(System.ReadOnlySpan`1[ubyte],int,byref):int:this (Tier0)
           7 (2.19 % of base) : 50666.dasm - System.Numerics.BigInteger:op_Addition(System.Numerics.BigInteger,System.Numerics.BigInteger):System.Numerics.BigInteger (Tier1)
           3 (1.89 % of base) : 53944.dasm - LinqBenchmarks+<>c:<AggregateBy00GroupByX>b__24_2(System.Linq.IGrouping`2[System.String,Product]):System.Decimal:this (Tier1)
          10 (1.72 % of base) : 25598.dasm - BitOps:DoBitfieldIteration(int[],int[],int,byref):long (Tier1)
          70 (1.46 % of base) : 45001.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (Tier1)
           7 (1.40 % of base) : 41663.dasm - Microsoft.CodeAnalysis.PEModule:FindTargetAttribute(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.EntityHandle,Microsoft.CodeAnalysis.AttributeDescription,byref):Microsoft.CodeAnalysis.PEModule+AttributeInfo (Tier1)
           4 (1.39 % of base) : 23962.dasm - System.IO.Strategies.BufferedFileStreamStrategy:Read(ubyte[],int,int):int:this (Tier1)
           4 (1.39 % of base) : 28526.dasm - System.IO.Strategies.BufferedFileStreamStrategy:Write(ubyte[],int,int):this (Tier1)
          11 (1.19 % of base) : 16396.dasm - System.RuntimeType+RuntimeTypeCache+MemberInfoCache`1[System.__Canon]:PopulateEvents(System.RuntimeType+RuntimeTypeCache+Filter,System.RuntimeType,System.Collections.Generic.Dictionary`2[System.String,System.Reflection.RuntimeEventInfo],byref):this (Tier0)
          11 (1.12 % of base) : 9481.dasm - Microsoft.Extensions.DependencyInjection.ServiceProvider:CreateServiceAccessor(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceIdentifier):Microsoft.Extensions.DependencyInjection.ServiceProvider+ServiceAccessor:this (Tier0)
           5 (1.09 % of base) : 16118.dasm - System.IO.RandomAccess+<>c:<ReadAtOffsetAsync>b__19_0(System.ValueTuple`4[Microsoft.Win32.SafeHandles.SafeFileHandle,System.Memory`1[ubyte],long,System.IO.Strategies.OSFileStreamStrategy]):int:this (Tier1)
          11 (1.05 % of base) : 10554.dasm - System.Net.Sockets.Socket:Accept():System.Net.Sockets.Socket:this (Tier0)
           2 (0.96 % of base) : 50660.dasm - System.Numerics.BigInteger:op_Multiply(System.Numerics.BigInteger,System.Numerics.BigInteger):System.Numerics.BigInteger (Tier1)
          12 (0.94 % of base) : 3300.dasm - System.Reflection.RuntimeParameterInfo:GetParameters(System.IRuntimeMethodInfo,System.Reflection.MemberInfo,System.Signature,byref,ubyte):System.Reflection.ParameterInfo[] (Tier1)

Top method improvements (percentages):
         -97 (-30.70 % of base) : 40066.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -90 (-30.51 % of base) : 40128.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
        -147 (-30.50 % of base) : 40148.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -62 (-30.24 % of base) : 4900.dasm - System.Net.SSPISecureChannelType:InitializeSecurityContext(byref,byref,System.String,int,int,System.Net.Security.InputSecurityBuffers,byref,byref):int:this (Tier0)
         -30 (-28.30 % of base) : 39920.dasm - Microsoft.CodeAnalysis.SmallDictionary`2+AvlNode[System.__Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo]:.ctor(int,System.__Canon,Microsoft.CodeAnalysis.CodeGen.ILBuilder+LabelInfo):this (Tier0)
         -26 (-28.26 % of base) : 24911.dasm - System.Diagnostics.ActivityEvent:.ctor(System.String):this (Tier0)
        -228 (-27.40 % of base) : 42942.dasm - System.Text.Tests.Perf_StringBuilder:Append_Memory():System.Text.StringBuilder:this (Tier0)
        -228 (-27.40 % of base) : 45533.dasm - System.Text.Tests.Perf_StringBuilder:Append_NonEmptySpan():System.Text.StringBuilder:this (Tier0)
         -91 (-27.16 % of base) : 39323.dasm - Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator+UncommonData:CreateIfNeeded(Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]):Microsoft.CodeAnalysis.CSharp.BoundBinaryOperator+UncommonData (Tier0)
        -141 (-26.60 % of base) : 43604.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol:MakeLocal(Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.Binder,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.TypeSyntax,Microsoft.CodeAnalysis.SyntaxToken,ubyte,Microsoft.CodeAnalysis.CSharp.Syntax.EqualsValueClauseSyntax,Microsoft.CodeAnalysis.CSharp.Binder):Microsoft.CodeAnalysis.CSharp.Symbols.SourceLocalSymbol (Tier0)
         -46 (-25.41 % of base) : 25468.dasm - Interop+Winsock:WSASendTo(System.Runtime.InteropServices.SafeHandle,byref,int,byref,int,System.ReadOnlySpan`1[ubyte],ulong,long):int (Tier0)
         -62 (-24.22 % of base) : 43163.dasm - System.Numerics.Tests.Perf_Matrix4x4:LerpBenchmark():System.Numerics.Matrix4x4:this (Tier0)
         -28 (-24.14 % of base) : 5251.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.Resources.ResourceLocator]:set_Item(System.__Canon,System.Resources.ResourceLocator):this (Tier0)
         -55 (-23.91 % of base) : 38822.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ConstraintsHelper+CheckConstraintsArgs:.ctor(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,Microsoft.CodeAnalysis.CSharp.ConversionsBase,ubyte,Microsoft.CodeAnalysis.Location,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (Tier0)
         -49 (-23.67 % of base) : 24843.dasm - System.Diagnostics.ActivitySource:StartActivity(System.String,int,System.Diagnostics.ActivityContext,System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]],System.Collections.Generic.IEnumerable`1[System.Diagnostics.ActivityLink],System.DateTimeOffset):System.Diagnostics.Activity:this (Tier0)
         -19 (-23.46 % of base) : 45793.dasm - System.Text.StringBuilder:Insert(int,System.Decimal):System.Text.StringBuilder:this (Tier0)
         -37 (-23.42 % of base) : 43662.dasm - Microsoft.CodeAnalysis.CSharp.BoundTypeExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.AliasSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations,ubyte):this (Tier0)
         -42 (-23.33 % of base) : 38627.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.LookupPosition:IsInBody(int,Microsoft.CodeAnalysis.CSharp.Syntax.BaseMethodDeclarationSyntax):ubyte (Tier0)
         -25 (-22.94 % of base) : 26035.dasm - System.Buffers.ReadOnlySequence`1[ubyte]:Slice(int,System.SequencePosition):System.Buffers.ReadOnlySequence`1[ubyte]:this (Tier0)
         -34 (-22.82 % of base) : 9549.dasm - Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver:VisitDisposeCache(Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCallSite,Microsoft.Extensions.DependencyInjection.ServiceLookup.RuntimeResolverContext):System.Object:this (Tier0)


coreclr_tests.run.windows.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 393404923 (overridden on cmd)
Total bytes of diff: 392410222 (overridden on cmd)
Total bytes of delta: -994701 (-0.25 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          96 : 52185.dasm (2.72 % of base)
          96 : 52240.dasm (2.68 % of base)
          91 : 89316.dasm (2.69 % of base)
          91 : 89366.dasm (2.65 % of base)
          78 : 504367.dasm (6.12 % of base)
          65 : 478612.dasm (5.35 % of base)
          62 : 273813.dasm (1.92 % of base)
          58 : 476612.dasm (1.21 % of base)
          55 : 359393.dasm (0.84 % of base)
          55 : 359932.dasm (0.84 % of base)
          54 : 284696.dasm (7.86 % of base)
          35 : 89336.dasm (2.12 % of base)
          35 : 479136.dasm (0.30 % of base)
          35 : 89386.dasm (2.13 % of base)
          34 : 478226.dasm (4.66 % of base)
          32 : 52210.dasm (1.81 % of base)
          32 : 334047.dasm (0.49 % of base)
          32 : 52261.dasm (1.81 % of base)
          31 : 272124.dasm (4.96 % of base)
          27 : 70344.dasm (1.67 % of base)

Top file improvements (bytes):
       -1882 : 263505.dasm (-1.67 % of base)
       -1882 : 263578.dasm (-1.69 % of base)
       -1644 : 23677.dasm (-5.09 % of base)
       -1361 : 221304.dasm (-11.10 % of base)
       -1361 : 338537.dasm (-10.97 % of base)
       -1250 : 251512.dasm (-0.99 % of base)
       -1250 : 251481.dasm (-0.99 % of base)
       -1079 : 230117.dasm (-5.71 % of base)
        -805 : 193926.dasm (-3.63 % of base)
        -801 : 263431.dasm (-0.78 % of base)
        -801 : 263410.dasm (-0.78 % of base)
        -801 : 271505.dasm (-0.78 % of base)
        -801 : 271511.dasm (-0.78 % of base)
        -743 : 274503.dasm (-2.00 % of base)
        -706 : 224619.dasm (-13.06 % of base)
        -676 : 264718.dasm (-5.27 % of base)
        -613 : 153848.dasm (-1.08 % of base)
        -611 : 358972.dasm (-15.10 % of base)
        -605 : 153894.dasm (-1.25 % of base)
        -578 : 216118.dasm (-16.25 % of base)

100 total files with Code Size differences (62 improved, 38 regressed), 20 unchanged.

Top method regressions (bytes):
          96 (2.72 % of base) : 52185.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperByte:RunBasicScenario():this (MinOpts)
          96 (2.68 % of base) : 52240.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSByte:RunBasicScenario():this (MinOpts)
          91 (2.69 % of base) : 89316.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperByte:RunBasicScenario():this (Instrumented Tier0)
          91 (2.65 % of base) : 89366.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSByte:RunBasicScenario():this (Instrumented Tier0)
          78 (6.12 % of base) : 504367.dasm - JitTest_lcsbox_lcs_cs.LCS:findLCS(int[,,,],int[,,,],ushort[][],int[]) (FullOpts)
          65 (5.35 % of base) : 478612.dasm - Microsoft.Cci.MetadataWriter:PopulateGenericParameters(System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.IGenericParameter]):this (FullOpts)
          62 (1.92 % of base) : 273813.dasm - System.Text.ValueStringBuilder:AppendFormatHelper(System.IFormatProvider,System.String,System.ReadOnlySpan`1[System.Object]):this (Tier1)
          58 (1.21 % of base) : 476612.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
          55 (0.84 % of base) : 359393.dasm - ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayoutMap:CreateValueFromKey(Internal.TypeSystem.Ecma.EcmaModule):ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayout:this (Tier1-OSR)
          55 (0.84 % of base) : 359932.dasm - ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayoutMap:CreateValueFromKey(Internal.TypeSystem.Ecma.EcmaModule):ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayout:this (Tier1-OSR)
          54 (7.86 % of base) : 284696.dasm - GitHub_19438.Program:TestEntryPoint() (Tier1-OSR)
          35 (2.12 % of base) : 89336.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt16:RunBasicScenario():this (Instrumented Tier0)
          35 (2.13 % of base) : 89386.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt16:RunBasicScenario():this (Instrumented Tier0)
          35 (0.30 % of base) : 479136.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ParameterHelpers:CheckParameterModifiers(Microsoft.CodeAnalysis.CSharp.Syntax.BaseParameterSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte,ubyte,ubyte) (FullOpts)
          34 (4.66 % of base) : 478226.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__77:MoveNext():ubyte:this (FullOpts)
          32 (0.49 % of base) : 334047.dasm - ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayoutMap:CreateValueFromKey(Internal.TypeSystem.Ecma.EcmaModule):ILCompiler.ReadyToRunMetadataFieldLayoutAlgorithm+ModuleFieldLayout:this (Tier1-OSR)
          32 (1.81 % of base) : 52210.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt16:RunBasicScenario():this (MinOpts)
          32 (1.81 % of base) : 52261.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt16:RunBasicScenario():this (MinOpts)
          31 (4.96 % of base) : 272124.dasm - System.Number:FormatNumber[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (Instrumented Tier1)
          27 (1.67 % of base) : 70344.dasm - JIT.HardwareIntrinsics.General._Vector256_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSByte:RunBasicScenario():this (Instrumented Tier0)

Top method improvements (bytes):
       -1882 (-1.67 % of base) : 263505.dasm - r4rem:TestEntryPoint():int (Tier0)
       -1882 (-1.69 % of base) : 263578.dasm - r8rem:TestEntryPoint():int (Tier0)
       -1644 (-5.09 % of base) : 23677.dasm - Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (Instrumented Tier0)
       -1361 (-10.97 % of base) : 338537.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Instrumented Tier0)
       -1361 (-11.10 % of base) : 221304.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier0)
       -1250 (-0.99 % of base) : 251481.dasm - overlddiv:TestEntryPoint():int (MinOpts)
       -1250 (-0.99 % of base) : 251512.dasm - overldrem:TestEntryPoint():int (MinOpts)
       -1079 (-5.71 % of base) : 230117.dasm - Product:CreateLists() (Tier0)
        -805 (-3.63 % of base) : 193926.dasm - Dynamic.CollectionTest:CustomCollection():this (Instrumented Tier0)
        -801 (-0.78 % of base) : 263410.dasm - overlddiv:TestEntryPoint():int (Tier0)
        -801 (-0.78 % of base) : 271505.dasm - overlddiv:TestEntryPoint():int (Tier0)
        -801 (-0.78 % of base) : 263431.dasm - overldrem:TestEntryPoint():int (Tier0)
        -801 (-0.78 % of base) : 271511.dasm - overldrem:TestEntryPoint():int (Tier0)
        -743 (-2.00 % of base) : 274503.dasm - DefaultNamespace.cb6054ToByte_all:runTest():ubyte:this (Instrumented Tier0)
        -706 (-13.06 % of base) : 224619.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__createConversion|210_0(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
        -676 (-5.27 % of base) : 264718.dasm - JitTest_huge_struct_Arrays_il.Test:Main():int (MinOpts)
        -613 (-1.08 % of base) : 153848.dasm - IntelHardwareIntrinsicTest._Avx2.Program+GatherMaskVector128:Test() (MinOpts)
        -611 (-15.10 % of base) : 358972.dasm - System.Diagnostics.FileVersionInfo:GetVersionInfoForCodePage(ulong,System.String):ubyte:this (Tier0)
        -605 (-1.25 % of base) : 153894.dasm - IntelHardwareIntrinsicTest._Avx2.Program+GatherVector128:Test() (MinOpts)
        -578 (-16.25 % of base) : 216118.dasm - System.Enum:TryFormatUnconstrained[ubyte](ubyte,System.Span`1[ushort],byref,System.ReadOnlySpan`1[ushort]):ubyte (Instrumented Tier0)

Top method regressions (percentages):
          15 (21.74 % of base) : 490039.dasm - (dynamicClass):ABIStress_TailCaller13(double,double,ABIStress.S4U,float,ABIStress.S4U,ABIStress.S8U,ABIStress.S8U,double,ABIStress.S8U):int (FullOpts)
          12 (13.48 % of base) : 490883.dasm - (dynamicClass):ABIStress_TailCaller474(long,ubyte,int,ABIStress.S2U,ABIStress.S4P,ABIStress.S2U,int,double,short,ABIStress.S2P,ABIStress.S4P,long,ubyte,long,ubyte,ABIStress.S8P,long,double,ABIStress.S4P,ABIStress.S2P):int (FullOpts)
          21 (13.13 % of base) : 491023.dasm - (dynamicClass):ABIStress_TailCaller552(float,int,int,ABIStress.S1P,long,double,ABIStress.S8U,ABIStress.S2U,short,ubyte,short,short,ABIStress.S2U,short,ubyte,ABIStress.S2U,ABIStress.S2U):int (FullOpts)
           9 (12.50 % of base) : 491563.dasm - (dynamicClass):ABIStress_TailCaller864(short,int,ABIStress.S4U,ABIStress.S8U,ABIStress.S8U,ABIStress.S8P,long,ABIStress.S8U,short,ABIStress.S4U,ABIStress.S1P,short):int (FullOpts)
          11 (12.09 % of base) : 490215.dasm - (dynamicClass):ABIStress_TailCaller109(ABIStress.S2P,ABIStress.S1P,ABIStress.S2P,ABIStress.S2P,ABIStress.S8U,ABIStress.S4P,ABIStress.S8U,ubyte,double,short,long,long,ABIStress.S4P,short,long):int (FullOpts)
          10 (10.87 % of base) : 490609.dasm - (dynamicClass):ABIStress_TailCaller320(short,short,ubyte,ABIStress.S8U,ABIStress.S4P,float,ABIStress.S4P,long,ABIStress.S2P,ABIStress.S1P,ABIStress.S2P,ABIStress.S8P,long,long,ABIStress.S4P,ubyte,double,ABIStress.S8U,short,ABIStress.S4U,ubyte):int (FullOpts)
          11 (10.48 % of base) : 490633.dasm - (dynamicClass):ABIStress_TailCaller333(double,long,short,ABIStress.S8U,ABIStress.S4U,ABIStress.S4P,int,ABIStress.S8P,ABIStress.S8U,ABIStress.S2P,ubyte,short,float,ABIStress.S8P,ABIStress.S4U):int (FullOpts)
           3 (9.68 % of base) : 491699.dasm - (dynamicClass):ABIStress_TailCaller940(short,ubyte,ABIStress.S2P,float,double,ABIStress.S4P,ABIStress.S1P,int):int (FullOpts)
          18 (9.05 % of base) : 491668.dasm - (dynamicClass):ABIStress_TailCaller923(ABIStress.S2P,float,long,ABIStress.S4U,ubyte,ubyte,ABIStress.S8U,ABIStress.S8U,long,ubyte,ABIStress.S1P,ABIStress.S8P,int,ABIStress.S4U,ABIStress.S1P,ABIStress.S2P,ABIStress.S2P,ABIStress.S8U,ABIStress.S8U,ABIStress.S8U,double):int (FullOpts)
           8 (8.89 % of base) : 491773.dasm - (dynamicClass):ABIStress_TailCaller985(ABIStress.S8P,ABIStress.S4P,ubyte,ABIStress.S8U,float,ubyte,ABIStress.S2P,short,double,int,ubyte):int (FullOpts)
           9 (8.74 % of base) : 490266.dasm - (dynamicClass):ABIStress_TailCaller136(ABIStress.S2P,ubyte,ABIStress.S8U,ABIStress.S8P,ABIStress.S4P,int,float,ABIStress.S1P,ubyte,ABIStress.S4P,ABIStress.S8P,short,ABIStress.S4P,ABIStress.S4P,ABIStress.S4P,long,ABIStress.S8P,double,ABIStress.S4P,ABIStress.S2P):int (FullOpts)
          12 (8.33 % of base) : 491027.dasm - (dynamicClass):ABIStress_TailCaller554(ABIStress.S4P,ubyte,int,int,ABIStress.S2P,ubyte,float,ABIStress.S2U,ABIStress.S2P,double,short):int (FullOpts)
           5 (8.20 % of base) : 568519.dasm - NullableTest:BoxUnboxToNQ[System.Nullable`1[NotEmptyStructConstrainedGenQ`1[int]]](System.Nullable`1[NotEmptyStructConstrainedGenQ`1[int]]):ubyte (FullOpts)
           5 (8.20 % of base) : 568498.dasm - NullableTest:BoxUnboxToNQ[System.Nullable`1[NotEmptyStructQ]](System.Nullable`1[NotEmptyStructQ]):ubyte (FullOpts)
          13 (8.07 % of base) : 490238.dasm - (dynamicClass):ABIStress_TailCaller121(long,double,double,ABIStress.S1P,ubyte,ABIStress.S2U,ubyte,ABIStress.S2P,short,long,ABIStress.S2U,short,ubyte,ABIStress.S8P,float,ABIStress.S2P,long,short):int (FullOpts)
          14 (8.05 % of base) : 490507.dasm - (dynamicClass):ABIStress_TailCaller265(double,double,short,ABIStress.S8P,ABIStress.S4U,ABIStress.S4P,ABIStress.S4P,short,short,ABIStress.S2P,ABIStress.S2P,ABIStress.S2P,ubyte,long,ABIStress.S4P,int):int (FullOpts)
          13 (7.93 % of base) : 490365.dasm - (dynamicClass):ABIStress_TailCaller188(int,ABIStress.S2U,ABIStress.S4P,ABIStress.S8P,int,short,ABIStress.S8P,short,ABIStress.S2P,ABIStress.S2P,long,double,ABIStress.S8P,float,ABIStress.S2U,int,ABIStress.S8P,ABIStress.S4P,ABIStress.S1P,ubyte,ABIStress.S2U,ABIStress.S4P,ABIStress.S2P,long):int (FullOpts)
          54 (7.86 % of base) : 284696.dasm - GitHub_19438.Program:TestEntryPoint() (Tier1-OSR)
          78 (6.12 % of base) : 504367.dasm - JitTest_lcsbox_lcs_cs.LCS:findLCS(int[,,,],int[,,,],ushort[][],int[]) (FullOpts)
           5 (6.10 % of base) : 568328.dasm - NullableTest:BoxUnboxToNQ(System.ValueType):ubyte (FullOpts)

Top method improvements (percentages):
         -62 (-32.46 % of base) : 23722.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.MethodLoadUnloadTraceDataBase:.ctor(int,int,System.String,System.Guid,int,System.String,System.Guid,System.String):this (Tier0)
         -97 (-30.70 % of base) : 225370.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -90 (-30.51 % of base) : 225430.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
        -147 (-30.50 % of base) : 225450.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -62 (-29.25 % of base) : 23713.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrStackWalkTraceData:.ctor(System.Action`1[Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrStackWalkTraceData],int,int,System.String,System.Guid,int,System.String,System.Guid,System.String):this (Tier0)
         -62 (-29.25 % of base) : 23701.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.DestroyGCHandleTraceData:.ctor(System.Action`1[Microsoft.Diagnostics.Tracing.Parsers.Clr.DestroyGCHandleTraceData],int,int,System.String,System.Guid,int,System.String,System.Guid,System.String):this (Tier0)
         -62 (-29.25 % of base) : 23685.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.GCAllocationTickTraceData:.ctor(System.Action`1[Microsoft.Diagnostics.Tracing.Parsers.Clr.GCAllocationTickTraceData],int,int,System.String,System.Guid,int,System.String,System.Guid,System.String):this (Tier0)
         -62 (-29.25 % of base) : 23693.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkEdgeTraceData:.ctor(System.Action`1[Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkEdgeTraceData],int,int,System.String,System.Guid,int,System.String,System.Guid,System.String):this (Tier0)
         -62 (-29.25 % of base) : 23737.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRCWTraceData:.ctor(System.Action`1[Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRCWTraceData],int,int,System.String,System.Guid,int,System.String,System.Guid,System.String):this (Tier0)
         -62 (-29.25 % of base) : 23697.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.GCGenerationRangeTraceData:.ctor(System.Action`1[Microsoft.Diagnostics.Tracing.Parsers.Clr.GCGenerationRangeTraceData],int,int,System.String,System.Guid,int,System.String,System.Guid,System.String):this (Tier0)
         -62 (-29.25 % of base) : 23681.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.GCHeapStatsTraceData:.ctor(System.Action`1[Microsoft.Diagnostics.Tracing.Parsers.Clr.GCHeapStatsTraceData],int,int,System.String,System.Guid,int,System.String,System.Guid,System.String):this (Tier0)
         -62 (-29.25 % of base) : 23705.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.IOThreadTraceData:.ctor(System.Action`1[Microsoft.Diagnostics.Tracing.Parsers.Clr.IOThreadTraceData],int,int,System.String,System.Guid,int,System.String,System.Guid,System.String):this (Tier0)
         -62 (-29.25 % of base) : 23721.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.MethodLoadUnloadTraceData:.ctor(System.Action`1[Microsoft.Diagnostics.Tracing.Parsers.Clr.MethodLoadUnloadTraceData],int,int,System.String,System.Guid,int,System.String,System.Guid,System.String):this (Tier0)
         -62 (-29.25 % of base) : 23725.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.ModuleLoadUnloadTraceData:.ctor(System.Action`1[Microsoft.Diagnostics.Tracing.Parsers.Clr.ModuleLoadUnloadTraceData],int,int,System.String,System.Guid,int,System.String,System.Guid,System.String):this (Tier0)
         -62 (-29.25 % of base) : 23733.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.RuntimeInformationTraceData:.ctor(System.Action`1[Microsoft.Diagnostics.Tracing.Parsers.Clr.RuntimeInformationTraceData],int,int,System.String,System.Guid,int,System.String,System.Guid,System.String):this (Tier0)
         -62 (-29.25 % of base) : 23729.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.StrongNameVerificationTraceData:.ctor(System.Action`1[Microsoft.Diagnostics.Tracing.Parsers.Clr.StrongNameVerificationTraceData],int,int,System.String,System.Guid,int,System.String,System.Guid,System.String):this (Tier0)
         -62 (-29.25 % of base) : 23757.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.ThreadPoolIOWorkTraceData:.ctor(System.Action`1[Microsoft.Diagnostics.Tracing.Parsers.Clr.ThreadPoolIOWorkTraceData],int,int,System.String,System.Guid,int,System.String,System.Guid,System.String):this (Tier0)
         -62 (-29.25 % of base) : 23709.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.ThreadPoolWorkerThreadAdjustmentStatsTraceData:.ctor(System.Action`1[Microsoft.Diagnostics.Tracing.Parsers.Clr.ThreadPoolWorkerThreadAdjustmentStatsTraceData],int,int,System.String,System.Guid,int,System.String,System.Guid,System.String):this (Tier0)
         -62 (-29.25 % of base) : 23753.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.ThreadStartWorkTraceData:.ctor(System.Action`1[Microsoft.Diagnostics.Tracing.Parsers.Clr.ThreadStartWorkTraceData],int,int,System.String,System.Guid,int,System.String,System.Guid,System.String):this (Tier0)
         -62 (-29.25 % of base) : 23717.dasm - Microsoft.Diagnostics.Tracing.Parsers.Clr.ThreadTerminatedOrTransitionTraceData:.ctor(System.Action`1[Microsoft.Diagnostics.Tracing.Parsers.Clr.ThreadTerminatedOrTransitionTraceData],int,int,System.String,System.Guid,int,System.String,System.Guid,System.String):this (Tier0)


libraries.crossgen2.windows.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 39443922 (overridden on cmd)
Total bytes of diff: 39410974 (overridden on cmd)
Total bytes of delta: -32948 (-0.08 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         152 : 166530.dasm (7.33 % of base)
         108 : 68457.dasm (0.96 % of base)
          89 : 120114.dasm (2.75 % of base)
          72 : 66309.dasm (0.27 % of base)
          61 : 62164.dasm (2.20 % of base)
          46 : 200583.dasm (1.42 % of base)
          43 : 13915.dasm (1.68 % of base)
          42 : 201800.dasm (3.09 % of base)
          40 : 227365.dasm (4.39 % of base)
          39 : 68299.dasm (2.13 % of base)
          37 : 201814.dasm (2.65 % of base)
          35 : 163524.dasm (4.94 % of base)
          34 : 68560.dasm (1.46 % of base)
          33 : 166489.dasm (3.07 % of base)
          32 : 62676.dasm (1.05 % of base)
          30 : 227492.dasm (12.40 % of base)
          29 : 187256.dasm (4.37 % of base)
          29 : 70191.dasm (3.12 % of base)
          28 : 219222.dasm (3.48 % of base)
          28 : 224462.dasm (2.56 % of base)

Top file improvements (bytes):
      -15924 : 41335.dasm (-16.13 % of base)
       -1835 : 138543.dasm (-7.34 % of base)
       -1835 : 156306.dasm (-7.34 % of base)
        -274 : 68639.dasm (-5.55 % of base)
        -266 : 143764.dasm (-9.66 % of base)
        -262 : 205675.dasm (-2.56 % of base)
        -243 : 103294.dasm (-0.78 % of base)
        -214 : 184097.dasm (-20.68 % of base)
        -209 : 143928.dasm (-16.88 % of base)
        -183 : 193568.dasm (-4.63 % of base)
        -180 : 117498.dasm (-14.31 % of base)
        -177 : 143846.dasm (-13.27 % of base)
        -157 : 131413.dasm (-7.49 % of base)
        -149 : 151538.dasm (-3.79 % of base)
        -147 : 193474.dasm (-3.60 % of base)
        -128 : 161174.dasm (-4.46 % of base)
        -100 : 241449.dasm (-4.74 % of base)
        -100 : 131985.dasm (-6.49 % of base)
         -82 : 96779.dasm (-2.39 % of base)
         -81 : 234785.dasm (-6.81 % of base)

80 total files with Code Size differences (40 improved, 40 regressed), 20 unchanged.

Top method regressions (bytes):
         152 (7.33 % of base) : 166530.dasm - Microsoft.CodeAnalysis.Emit.NoPia.EmbeddedTypesManager`21+CommonEmbeddedType[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:GetAttributes(System.__Canon,System.__Canon,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[System.__Canon]:this (FullOpts)
         108 (0.96 % of base) : 68457.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitTupleDeconstructionArguments(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+DeconstructionVariable],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression]],Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState]):this (FullOpts)
          89 (2.75 % of base) : 120114.dasm - Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeManager+AnonymousDelegatePublicSymbol:.ctor(Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeManager,Microsoft.CodeAnalysis.VisualBasic.Symbols.AnonymousTypeDescriptor):this (FullOpts)
          72 (0.27 % of base) : 66309.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
          61 (2.20 % of base) : 62164.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CreateTupleLiteralConversion(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundTupleLiteral,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          46 (1.42 % of base) : 200583.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo`1+<SerializeAsync>d__9[System.__Canon]:MoveNext():this (FullOpts)
          43 (1.68 % of base) : 13915.dasm - System.Data.XSDSchema:HandleDataSet(System.Xml.Schema.XmlSchemaElement,ubyte):this (FullOpts)
          42 (3.09 % of base) : 201800.dasm - System.Text.Json.Utf8JsonReader:ConsumeNextTokenFromLastNonCommentToken():ubyte:this (FullOpts)
          40 (4.39 % of base) : 227365.dasm - System.Formats.Asn1.AsnWriter:WriteUtcTimeCore(System.Formats.Asn1.Asn1Tag,System.DateTimeOffset):this (FullOpts)
          39 (2.13 % of base) : 68299.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitStatementsWithLocalFunctions(Microsoft.CodeAnalysis.CSharp.BoundBlock):this (FullOpts)
          37 (2.65 % of base) : 201814.dasm - System.Text.Json.Utf8JsonReader:ConsumeNextTokenFromLastNonCommentTokenMultiSegment():ubyte:this (FullOpts)
          35 (4.94 % of base) : 163524.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__77:MoveNext():ubyte:this (FullOpts)
          34 (1.46 % of base) : 68560.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitSwitchSection(Microsoft.CodeAnalysis.CSharp.BoundSwitchSection,ubyte):this (FullOpts)
          33 (3.07 % of base) : 166489.dasm - Microsoft.CodeAnalysis.Emit.NoPia.EmbeddedTypesManager`21+CommonEmbeddedParameter[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:GetAttributes(System.__Canon,System.__Canon,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[System.__Canon]:this (FullOpts)
          32 (1.05 % of base) : 62676.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindNullCoalescingOperator(Microsoft.CodeAnalysis.CSharp.Syntax.BinaryExpressionSyntax,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          30 (12.40 % of base) : 227492.dasm - System.IO.Compression.BrotliStream:Read(System.Span`1[ubyte]):int:this (FullOpts)
          29 (3.12 % of base) : 70191.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:RewriteTupleConversion(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (FullOpts)
          29 (4.37 % of base) : 187256.dasm - System.Security.IdentityHelper:ToBase32StringSuitableForDirName(ubyte[]):System.String (FullOpts)
          28 (3.48 % of base) : 219222.dasm - Internal.Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadCompilationOptions(Xunit.JsonObject):Internal.Microsoft.Extensions.DependencyModel.CompilationOptions:this (FullOpts)
          28 (2.56 % of base) : 224462.dasm - Microsoft.Extensions.DependencyModel.DependencyContextJsonReader:ReadCompilationOptions(byref):Microsoft.Extensions.DependencyModel.CompilationOptions (FullOpts)

Top method improvements (bytes):
      -15924 (-16.13 % of base) : 41335.dasm - Microsoft.Diagnostics.Tracing.Parsers.ApplicationServerTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
       -1835 (-7.34 % of base) : 138543.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
       -1835 (-7.34 % of base) : 156306.dasm - Microsoft.CodeAnalysis.DesktopAssemblyIdentityComparer:.cctor() (FullOpts)
        -274 (-5.55 % of base) : 68639.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitArguments>g__visitArguments|231_0(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Conversion],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte):System.ValueTuple`4[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte,Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate]:this (FullOpts)
        -266 (-9.66 % of base) : 143764.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:GetDelta(Microsoft.CodeAnalysis.Compilation,System.Guid,System.Reflection.Metadata.Ecma335.MetadataSizes):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
        -262 (-2.56 % of base) : 205675.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (FullOpts)
        -243 (-0.78 % of base) : 103294.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
        -214 (-20.68 % of base) : 184097.dasm - System.Net.Http.HPack.HPackDecoder:Parse(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this (FullOpts)
        -209 (-16.88 % of base) : 143928.dasm - Microsoft.CodeAnalysis.Emit.SymbolMatcher:MapBaselineToCompilation(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]],System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]]):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
        -183 (-4.63 % of base) : 193568.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -180 (-14.31 % of base) : 117498.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilationOptions:.ctor(Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilationOptions):this (FullOpts)
        -177 (-13.27 % of base) : 143846.dasm - Microsoft.CodeAnalysis.Emit.EmitBaseline:CreateInitialBaseline(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.ModuleMetadata,System.Func`2[System.Reflection.Metadata.MethodDefinitionHandle,Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation],System.Func`2[System.Reflection.Metadata.MethodDefinitionHandle,System.Reflection.Metadata.StandaloneSignatureHandle],ubyte):Microsoft.CodeAnalysis.Emit.EmitBaseline (FullOpts)
        -157 (-7.49 % of base) : 131413.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -149 (-3.79 % of base) : 151538.dasm - System.Linq.Parallel.SortHelper`2[System.__Canon,System.__Canon]:MergeSortCooperatively():this (FullOpts)
        -147 (-3.60 % of base) : 193474.dasm - Newtonsoft.Json.JsonWriter:WriteValueAsync(Newtonsoft.Json.JsonWriter,int,System.Object,System.Threading.CancellationToken):System.Threading.Tasks.Task (FullOpts)
        -128 (-4.46 % of base) : 161174.dasm - Microsoft.CodeAnalysis.Emit.DefinitionMap:TryCreateVariableSlotAllocator(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Symbols.IMethodSymbolInternal,Microsoft.CodeAnalysis.Symbols.IMethodSymbolInternal,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator:this (FullOpts)
        -100 (-4.74 % of base) : 241449.dasm - System.Diagnostics.FileVersionInfo:GetVersionInfoForCodePage(ulong,System.String):ubyte:this (FullOpts)
        -100 (-6.49 % of base) : 131985.dasm - System.Xml.Schema.XsdDateTime+Parser:Parse(System.String,int):ubyte:this (FullOpts)
         -82 (-2.39 % of base) : 96779.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:CompleteAggregateClauseBinding(Microsoft.CodeAnalysis.VisualBasic.Syntax.AggregateClauseSyntax,Microsoft.CodeAnalysis.SyntaxList`1+Enumerator[Microsoft.CodeAnalysis.VisualBasic.Syntax.QueryClauseSyntax],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.RangeVariableSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.RangeVariableSymbol],Microsoft.CodeAnalysis.VisualBasic.BoundExpression,Microsoft.CodeAnalysis.VisualBasic.Binder+QueryLambdaBinder,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.RangeVariableSymbol],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BoundQueryClauseBase,Microsoft.CodeAnalysis.VisualBasic.Binder+IntoClauseDisallowGroupReferenceBinder,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):Microsoft.CodeAnalysis.VisualBasic.BoundAggregateClause:this (FullOpts)
         -81 (-6.81 % of base) : 234785.dasm - System.Reflection.Emit.CustomAttributeInfo:DecodeCustomAttribute(System.Reflection.ConstructorInfo,System.ReadOnlySpan`1[ubyte]):System.Reflection.Emit.CustomAttributeInfo (FullOpts)

Top method regressions (percentages):
          30 (12.40 % of base) : 227492.dasm - System.IO.Compression.BrotliStream:Read(System.Span`1[ubyte]):int:this (FullOpts)
           9 (9.38 % of base) : 199676.dasm - System.Text.Json.Utf8JsonReader:ValueTextEquals(System.ReadOnlySpan`1[ubyte]):ubyte:this (FullOpts)
           9 (8.91 % of base) : 177251.dasm - System.Security.Cryptography.RSA:<Decrypt>g__TryWithDecrypt|17_0(System.Security.Cryptography.RSA,System.ReadOnlySpan`1[ubyte],ubyte[],System.Security.Cryptography.RSAEncryptionPadding,byref):ubyte (FullOpts)
           9 (8.91 % of base) : 177250.dasm - System.Security.Cryptography.RSA:<Encrypt>g__TryWithEncrypt|15_0(System.Security.Cryptography.RSA,System.ReadOnlySpan`1[ubyte],ubyte[],System.Security.Cryptography.RSAEncryptionPadding,byref):ubyte (FullOpts)
           9 (8.91 % of base) : 201735.dasm - System.Text.Json.Serialization.JsonConverter`1[System.Text.Json.JsonElement]:OnTryWriteAsObject(System.Text.Json.Utf8JsonWriter,System.Object,System.Text.Json.JsonSerializerOptions,byref):ubyte:this (FullOpts)
          26 (8.58 % of base) : 241682.dasm - System.ConsolePal:SetCursorPosition(int,int) (FullOpts)
           9 (8.18 % of base) : 177252.dasm - System.Security.Cryptography.RSA:<SignData>g__TryWithSignData|29_0(System.Security.Cryptography.RSA,System.ReadOnlySpan`1[ubyte],ubyte[],System.ValueTuple`2[System.Security.Cryptography.HashAlgorithmName,System.Security.Cryptography.RSASignaturePadding],byref):ubyte (FullOpts)
           9 (8.18 % of base) : 177253.dasm - System.Security.Cryptography.RSA:<SignHash>g__TryWithSignHash|31_0(System.Security.Cryptography.RSA,System.ReadOnlySpan`1[ubyte],ubyte[],System.ValueTuple`2[System.Security.Cryptography.HashAlgorithmName,System.Security.Cryptography.RSASignaturePadding],byref):ubyte (FullOpts)
          18 (7.50 % of base) : 117070.dasm - Microsoft.CodeAnalysis.VisualBasic.OverloadResolution:EliminateNarrowingCandidates(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+CandidateAnalysisResult]):int (FullOpts)
         152 (7.33 % of base) : 166530.dasm - Microsoft.CodeAnalysis.Emit.NoPia.EmbeddedTypesManager`21+CommonEmbeddedType[System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:GetAttributes(System.__Canon,System.__Canon,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[System.__Canon]:this (FullOpts)
          12 (6.90 % of base) : 88885.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:NormalizeTaskTypesInArray(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,byref):ubyte (FullOpts)
           3 (6.82 % of base) : 61219.dasm - System.Speech.Internal.SrgsCompiler.Tag:Serialize(System.Speech.Internal.StreamMarshaler):this (FullOpts)
          12 (6.78 % of base) : 216134.dasm - System.Collections.Generic.GrowableArray`1[System.__Canon]:Insert(int,System.__Canon):this (FullOpts)
          16 (6.56 % of base) : 163173.dasm - Microsoft.CodeAnalysis.Text.SourceText+LineInfo:get_Item(int):Microsoft.CodeAnalysis.Text.TextLine:this (FullOpts)
          16 (6.56 % of base) : 145790.dasm - Microsoft.CodeAnalysis.Text.SourceText+LineInfo:get_Item(int):Microsoft.CodeAnalysis.Text.TextLine:this (FullOpts)
          21 (6.44 % of base) : 70428.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeDeclarationUsingStatement(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundBlock,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration],Microsoft.CodeAnalysis.CSharp.MethodArgumentInfo,Microsoft.CodeAnalysis.CSharp.BoundAwaitableInfo,Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (FullOpts)
           3 (6.12 % of base) : 234001.dasm - Microsoft.Extensions.Logging.FilterLoggingBuilderExtensions+<>c__DisplayClass5_0:<AddFilter>b__0(Microsoft.Extensions.Logging.LoggerFilterOptions):this (FullOpts)
           3 (6.00 % of base) : 102875.dasm - Microsoft.CodeAnalysis.VisualBasic.BoundTypeOrValueData:Equals(Microsoft.CodeAnalysis.VisualBasic.BoundTypeOrValueData):ubyte:this (FullOpts)
           5 (5.75 % of base) : 72387.dasm - Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree:ParseText(System.String,Microsoft.CodeAnalysis.CSharp.CSharpParseOptions,System.String,System.Text.Encoding,System.Collections.Immutable.ImmutableDictionary`2[System.String,int],System.Threading.CancellationToken):Microsoft.CodeAnalysis.SyntaxTree (FullOpts)
          19 (5.71 % of base) : 199892.dasm - System.Text.Json.Utf8JsonWriter:WriteNull(System.ReadOnlySpan`1[ushort]):this (FullOpts)

Top method improvements (percentages):
        -214 (-20.68 % of base) : 184097.dasm - System.Net.Http.HPack.HPackDecoder:Parse(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this (FullOpts)
         -17 (-19.32 % of base) : 170915.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.NamespaceSymbol:GetRootNamespaceSymbol():Microsoft.CSharp.RuntimeBinder.Semantics.NamespaceSymbol (FullOpts)
         -15 (-18.52 % of base) : 240220.dasm - System.Net.Quic.QuicConnection:HandleEventLocalAddressChanged(byref):int:this (FullOpts)
         -15 (-18.52 % of base) : 240221.dasm - System.Net.Quic.QuicConnection:HandleEventPeerAddressChanged(byref):int:this (FullOpts)
        -209 (-16.88 % of base) : 143928.dasm - Microsoft.CodeAnalysis.Emit.SymbolMatcher:MapBaselineToCompilation(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]],System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]]):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
         -29 (-16.20 % of base) : 161374.dasm - Microsoft.CodeAnalysis.Emit.EmitOptions:.ctor(ubyte,int,System.String,System.String,int,ulong,ubyte,Microsoft.CodeAnalysis.SubsystemVersion,System.String,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int]):this (FullOpts)
         -29 (-16.20 % of base) : 143973.dasm - Microsoft.CodeAnalysis.Emit.EmitOptions:.ctor(ubyte,int,System.String,System.String,int,ulong,ubyte,Microsoft.CodeAnalysis.SubsystemVersion,System.String,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int]):this (FullOpts)
         -17 (-16.19 % of base) : 208393.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexBuilder`1+NodeCacheKey[System.Text.RegularExpressions.Symbolic.BitVector]:GetHashCode():int:this (FullOpts)
      -15924 (-16.13 % of base) : 41335.dasm - Microsoft.Diagnostics.Tracing.Parsers.ApplicationServerTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
         -21 (-14.79 % of base) : 152932.dasm - System.DirectoryServices.ActiveDirectory.ReplicationCursor:get_SourceServer():System.String:this (FullOpts)
         -77 (-14.45 % of base) : 177359.dasm - System.Security.Cryptography.CngHelpers:FromBCryptBlob(byref,System.ReadOnlySpan`1[ubyte],ubyte) (FullOpts)
        -180 (-14.31 % of base) : 117498.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilationOptions:.ctor(Microsoft.CodeAnalysis.VisualBasic.VisualBasicCompilationOptions):this (FullOpts)
         -79 (-14.06 % of base) : 155910.dasm - Microsoft.CodeAnalysis.Compilation:SerializePeToStream(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CommonMessageProvider,System.Func`1[System.IO.Stream],System.Func`1[System.IO.Stream],System.Func`1[System.IO.Stream],Microsoft.Cci.PdbWriter,System.String,Microsoft.CodeAnalysis.RebuildData,ubyte,ubyte,ubyte,ubyte,System.Nullable`1[System.Security.Cryptography.RSAParameters],System.Threading.CancellationToken):ubyte (FullOpts)
         -79 (-14.06 % of base) : 138109.dasm - Microsoft.CodeAnalysis.Compilation:SerializePeToStream(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CommonMessageProvider,System.Func`1[System.IO.Stream],System.Func`1[System.IO.Stream],System.Func`1[System.IO.Stream],Microsoft.Cci.PdbWriter,System.String,Microsoft.CodeAnalysis.RebuildData,ubyte,ubyte,ubyte,ubyte,System.Nullable`1[System.Security.Cryptography.RSAParameters],System.Threading.CancellationToken):ubyte (FullOpts)
         -52 (-13.72 % of base) : 36252.dasm - System.Enum:TryParseByValueOrName[ubyte,ubyte](System.RuntimeType,System.ReadOnlySpan`1[ushort],ubyte,ubyte,byref):ubyte (FullOpts)
         -10 (-13.70 % of base) : 126946.dasm - System.Xml.XsdCachingReader:MoveToFirstAttribute():ubyte:this (FullOpts)
         -17 (-13.60 % of base) : 132916.dasm - System.Xml.XmlSqlBinaryReader:ImplReadPI():this (FullOpts)
        -177 (-13.27 % of base) : 143846.dasm - Microsoft.CodeAnalysis.Emit.EmitBaseline:CreateInitialBaseline(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.ModuleMetadata,System.Func`2[System.Reflection.Metadata.MethodDefinitionHandle,Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation],System.Func`2[System.Reflection.Metadata.MethodDefinitionHandle,System.Reflection.Metadata.StandaloneSignatureHandle],ubyte):Microsoft.CodeAnalysis.Emit.EmitBaseline (FullOpts)
          -9 (-13.04 % of base) : 144417.dasm - Microsoft.CodeAnalysis.CodeGen.CompilationTestData:SetMethodILBuilder(Microsoft.CodeAnalysis.Symbols.IMethodSymbolInternal,Microsoft.CodeAnalysis.CodeGen.ILBuilder):this (FullOpts)
         -33 (-13.04 % of base) : 60701.dasm - System.Speech.Internal.Synthesis.SsmlParser:ParseWithTag(System.Xml.XmlReader,System.Speech.Internal.Synthesis.ISsmlParser,int,System.Speech.Internal.Synthesis.SsmlParser+SsmlAttributes,ubyte) (FullOpts)


libraries.pmi.windows.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 61386973 (overridden on cmd)
Total bytes of diff: 61370078 (overridden on cmd)
Total bytes of delta: -16895 (-0.03 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         506 : 227452.dasm (4.00 % of base)
         469 : 64724.dasm (1.56 % of base)
         250 : 60421.dasm (3.32 % of base)
         159 : 179886.dasm (2.73 % of base)
         131 : 45814.dasm (1.25 % of base)
          73 : 124547.dasm (1.84 % of base)
          73 : 204514.dasm (6.20 % of base)
          72 : 124971.dasm (1.90 % of base)
          71 : 159685.dasm (2.18 % of base)
          69 : 199502.dasm (2.29 % of base)
          67 : 64752.dasm (1.89 % of base)
          64 : 124294.dasm (1.33 % of base)
          59 : 130034.dasm (3.47 % of base)
          59 : 60669.dasm (3.32 % of base)
          58 : 88759.dasm (1.21 % of base)
          55 : 101644.dasm (1.47 % of base)
          55 : 150494.dasm (4.69 % of base)
          55 : 190424.dasm (4.69 % of base)
          55 : 127392.dasm (1.35 % of base)
          53 : 292389.dasm (3.67 % of base)

Top file improvements (bytes):
       -4057 : 41452.dasm (-4.27 % of base)
        -379 : 169330.dasm (-8.54 % of base)
        -379 : 169425.dasm (-8.59 % of base)
        -262 : 199442.dasm (-9.16 % of base)
        -232 : 136554.dasm (-11.66 % of base)
        -225 : 108721.dasm (-0.65 % of base)
        -220 : 239886.dasm (-1.92 % of base)
        -209 : 199613.dasm (-16.33 % of base)
        -179 : 199531.dasm (-9.43 % of base)
        -169 : 286360.dasm (-4.14 % of base)
        -155 : 298578.dasm (-8.44 % of base)
        -147 : 229649.dasm (-11.91 % of base)
        -138 : 164383.dasm (-9.71 % of base)
        -138 : 204198.dasm (-9.71 % of base)
        -122 : 299713.dasm (-3.44 % of base)
        -120 : 159616.dasm (-3.74 % of base)
        -104 : 67113.dasm (-1.65 % of base)
        -103 : 249298.dasm (-2.37 % of base)
        -100 : 139564.dasm (-4.48 % of base)
         -88 : 101287.dasm (-4.61 % of base)

82 total files with Code Size differences (42 improved, 40 regressed), 20 unchanged.

Top method regressions (bytes):
         506 (4.00 % of base) : 227452.dasm - System.Management.ManagementClassGenerator:AddToDateTimeFunction():this (FullOpts)
         469 (1.56 % of base) : 64724.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
         250 (3.32 % of base) : 60421.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindTypeParameterConstraints(Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterSyntax,Microsoft.CodeAnalysis.CSharp.Syntax.TypeParameterConstraintClauseSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterConstraintClause,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.Syntax.TypeConstraintSyntax]]:this (FullOpts)
         159 (2.73 % of base) : 179886.dasm - Microsoft.Build.Internal.AvailableStaticMethods:InitializeAvailableMethods() (FullOpts)
         131 (1.25 % of base) : 45814.dasm - Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser:GetManifestForRegisteredProvider(System.Guid):System.String (FullOpts)
          73 (6.20 % of base) : 204514.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__75:MoveNext():ubyte:this (FullOpts)
          73 (1.84 % of base) : 124547.dasm - Microsoft.CodeAnalysis.VisualBasic.OverloadResolution:CollectOverloadedCandidates(Microsoft.CodeAnalysis.VisualBasic.Binder,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+CandidateAnalysisResult],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+Candidate],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BoundNode,ubyte,ubyte,ubyte,byref,byref) (FullOpts)
          72 (1.90 % of base) : 124971.dasm - Microsoft.CodeAnalysis.VisualBasic.TypeUnification:CanUnifyHelper(Microsoft.CodeAnalysis.VisualBasic.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeWithModifiers,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeWithModifiers,byref):ubyte (FullOpts)
          71 (2.18 % of base) : 159685.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:PopulateEncLogTableRows(System.Collections.Immutable.ImmutableArray`1[int],byref,byref):this (FullOpts)
          69 (2.29 % of base) : 199502.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:PopulateEncLogTableRows(System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int]):this (FullOpts)
          67 (1.89 % of base) : 64752.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompiler:CreateCompilation(System.IO.TextWriter,Microsoft.CodeAnalysis.TouchedFileLogger,Microsoft.CodeAnalysis.ErrorLogger,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.AnalyzerConfigOptionsResult],Microsoft.CodeAnalysis.AnalyzerConfigOptionsResult):Microsoft.CodeAnalysis.Compilation:this (FullOpts)
          64 (1.33 % of base) : 124294.dasm - Microsoft.CodeAnalysis.VisualBasic.AccessCheck:VerifyAccessExposureForMemberType(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.SyntaxNodeOrToken,Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,ubyte) (FullOpts)
          59 (3.32 % of base) : 60669.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (FullOpts)
          59 (3.47 % of base) : 130034.dasm - Microsoft.CodeAnalysis.VisualBasic.TypeArgumentInference+InferenceGraph:Infer(Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.VisualBasic.BoundExpression],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[int],Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol,Microsoft.CodeAnalysis.VisualBasic.BoundNode,byref,byref,byref,byref,byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,Microsoft.CodeAnalysis.BitVector):ubyte (FullOpts)
          58 (1.21 % of base) : 88759.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
          55 (4.69 % of base) : 150494.dasm - Microsoft.Cci.MetadataWriter:PopulateGenericParameters(System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.IGenericParameter]):this (FullOpts)
          55 (4.69 % of base) : 190424.dasm - Microsoft.Cci.MetadataWriter:PopulateGenericParameters(System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.IGenericParameter]):this (FullOpts)
          55 (1.47 % of base) : 101644.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:VerifyNameShadowingInMethodBody(Microsoft.CodeAnalysis.VisualBasic.Symbol,Microsoft.CodeAnalysis.SyntaxNodeOrToken,Microsoft.CodeAnalysis.SyntaxNodeOrToken,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):this (FullOpts)
          55 (1.35 % of base) : 127392.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder+TypeBinder:LookupTupleType(Microsoft.CodeAnalysis.VisualBasic.Syntax.TupleTypeSyntax,Microsoft.CodeAnalysis.VisualBasic.Binder,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.VisualBasic.Symbols.TypeSymbol (FullOpts)
          53 (3.67 % of base) : 292389.dasm - System.Net.Mime.MailBnfHelper:GetDateTimeString(System.DateTime,System.Text.StringBuilder):System.String (FullOpts)

Top method improvements (bytes):
       -4057 (-4.27 % of base) : 41452.dasm - Microsoft.Diagnostics.Tracing.Parsers.ApplicationServerTraceEventParser:EnumerateTemplates(System.Func`3[System.String,System.String,int],System.Action`1[Microsoft.Diagnostics.Tracing.TraceEvent]):this (FullOpts)
        -379 (-8.59 % of base) : 169425.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -379 (-8.54 % of base) : 169330.dasm - Newtonsoft.Json.JsonWriter:WriteValueAsync(Newtonsoft.Json.JsonWriter,int,System.Object,System.Threading.CancellationToken):System.Threading.Tasks.Task (FullOpts)
        -262 (-9.16 % of base) : 199442.dasm - Microsoft.CodeAnalysis.Emit.DeltaMetadataWriter:GetDelta(Microsoft.CodeAnalysis.Compilation,System.Guid,System.Reflection.Metadata.Ecma335.MetadataSizes):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
        -232 (-11.66 % of base) : 136554.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -225 (-0.65 % of base) : 108721.dasm - Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.VisualBasic.VisualBasicCommandLineArguments:this (FullOpts)
        -220 (-1.92 % of base) : 239886.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (FullOpts)
        -209 (-16.33 % of base) : 199613.dasm - Microsoft.CodeAnalysis.Emit.SymbolMatcher:MapBaselineToCompilation(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]],System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]]):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
        -179 (-9.43 % of base) : 199531.dasm - Microsoft.CodeAnalysis.Emit.EmitBaseline:CreateInitialBaseline(Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.ModuleMetadata,System.Func`2[System.Reflection.Metadata.MethodDefinitionHandle,Microsoft.CodeAnalysis.Emit.EditAndContinueMethodDebugInformation],System.Func`2[System.Reflection.Metadata.MethodDefinitionHandle,System.Reflection.Metadata.StandaloneSignatureHandle],ubyte):Microsoft.CodeAnalysis.Emit.EmitBaseline (FullOpts)
        -169 (-4.14 % of base) : 286360.dasm - System.Linq.Parallel.SortHelper`2[System.__Canon,System.Nullable`1[int]]:MergeSortCooperatively():this (FullOpts)
        -155 (-8.44 % of base) : 298578.dasm - System.Reflection.Emit.CustomAttributeInfo:DecodeCustomAttribute(System.Reflection.ConstructorInfo,System.ReadOnlySpan`1[ubyte]):System.Reflection.Emit.CustomAttributeInfo (FullOpts)
        -147 (-11.91 % of base) : 229649.dasm - System.Net.Http.HPack.HPackDecoder:Parse(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this (FullOpts)
        -138 (-9.71 % of base) : 164383.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>c__DisplayClass11_0[ubyte]:<ExecuteDeclaringReferenceActions>g__executeNodeActionsByKind|1(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.SyntaxNode],Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+GroupedAnalyzerActions[ubyte],ubyte):this (FullOpts)
        -138 (-9.71 % of base) : 204198.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+<>c__DisplayClass11_0[ubyte]:<ExecuteDeclaringReferenceActions>g__executeNodeActionsByKind|1(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.SyntaxNode],Microsoft.CodeAnalysis.Diagnostics.AnalyzerDriver`1+GroupedAnalyzerActions[ubyte],ubyte):this (FullOpts)
        -122 (-3.44 % of base) : 299713.dasm - System.Number:FormatBigInteger(ubyte,System.Numerics.BigInteger,System.String,System.ReadOnlySpan`1[ushort],System.Globalization.NumberFormatInfo,System.Span`1[ushort],byref,byref):System.String (FullOpts)
        -120 (-3.74 % of base) : 159616.dasm - Microsoft.CodeAnalysis.Emit.DefinitionMap:TryCreateVariableSlotAllocator(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Symbols.IMethodSymbolInternal,Microsoft.CodeAnalysis.Symbols.IMethodSymbolInternal,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.CodeGen.VariableSlotAllocator:this (FullOpts)
        -104 (-1.65 % of base) : 67113.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitArguments>g__visitArguments|231_0(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Conversion],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte):System.ValueTuple`4[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte,Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate]:this (FullOpts)
        -103 (-2.37 % of base) : 249298.dasm - System.Text.Json.Serialization.Metadata.JsonTypeInfo`1+<SerializeAsync>d__9[ubyte]:MoveNext():this (FullOpts)
        -100 (-4.48 % of base) : 139564.dasm - System.Xml.Schema.XsdDateTime+Parser:Parse(System.String,int):ubyte:this (FullOpts)
         -88 (-4.61 % of base) : 101287.dasm - Microsoft.CodeAnalysis.VisualBasic.Binder:ValidateMethodForDelegateInvoke(Microsoft.CodeAnalysis.VisualBasic.BoundAddressOfOperator,Microsoft.CodeAnalysis.VisualBasic.OverloadResolution+CandidateAnalysisResult,Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,ubyte,ubyte,Microsoft.CodeAnalysis.VisualBasic.BindingDiagnosticBag):System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.VisualBasic.Symbols.MethodSymbol,int] (FullOpts)

Top method regressions (percentages):
          13 (10.00 % of base) : 24609.dasm - System.MemoryExtensions:TryWrite[int](System.Span`1[ushort],System.IFormatProvider,System.Text.CompositeFormat,byref,int):ubyte (FullOpts)
          11 (8.33 % of base) : 24612.dasm - System.MemoryExtensions:TryWrite[long](System.Span`1[ushort],System.IFormatProvider,System.Text.CompositeFormat,byref,long):ubyte (FullOpts)
          16 (8.00 % of base) : 244900.dasm - System.Security.Cryptography.Pbkdf2Implementation:FillDeriveKeyPBKDF2(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],int,System.String,System.Span`1[ubyte]) (FullOpts)
           7 (7.37 % of base) : 265642.dasm - System.Text.Json.PooledByteBufferWriter:WriteToStreamAsync(System.IO.Stream,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
           7 (7.37 % of base) : 246626.dasm - System.Text.Json.PooledByteBufferWriter:WriteToStreamAsync(System.IO.Stream,System.Threading.CancellationToken):System.Threading.Tasks.ValueTask:this (FullOpts)
          18 (6.98 % of base) : 229731.dasm - System.Net.Http.Headers.KnownHeader:.ctor(System.String,System.Nullable`1[int],System.Nullable`1[int]):this (FullOpts)
          28 (6.60 % of base) : 175818.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray:LastIndexOf[int](Microsoft.CodeAnalysis.Collections.SegmentedArray`1[int],int,int,int,System.Collections.Generic.IEqualityComparer`1[int]):int (FullOpts)
           9 (6.52 % of base) : 24617.dasm - System.MemoryExtensions:TryWrite[int,System.Nullable`1[int]](System.Span`1[ushort],System.IFormatProvider,System.Text.CompositeFormat,byref,int,System.Nullable`1[int]):ubyte (FullOpts)
          28 (6.51 % of base) : 175816.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray:LastIndexOf[ubyte](Microsoft.CodeAnalysis.Collections.SegmentedArray`1[ubyte],ubyte,int,int,System.Collections.Generic.IEqualityComparer`1[ubyte]):int (FullOpts)
          22 (6.51 % of base) : 279710.dasm - System.Formats.Asn1.AsnDecoder:TryReadPrimitiveBitString(System.ReadOnlySpan`1[ubyte],int,byref,byref,byref,System.Nullable`1[System.Formats.Asn1.Asn1Tag]):ubyte (FullOpts)
          12 (6.49 % of base) : 91535.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:NormalizeTaskTypesInArray(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,byref):ubyte (FullOpts)
          27 (6.24 % of base) : 175817.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray:LastIndexOf[short](Microsoft.CodeAnalysis.Collections.SegmentedArray`1[short],short,int,int,System.Collections.Generic.IEqualityComparer`1[short]):int (FullOpts)
          73 (6.20 % of base) : 204514.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__75:MoveNext():ubyte:this (FullOpts)
          29 (6.17 % of base) : 175821.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray:LastIndexOf[long](Microsoft.CodeAnalysis.Collections.SegmentedArray`1[long],long,int,int,System.Collections.Generic.IEqualityComparer`1[long]):int (FullOpts)
          18 (6.12 % of base) : 279874.dasm - System.Formats.Asn1.AsnWriter:WriteConstructedCerCharacterString(System.Formats.Asn1.Asn1Tag,System.Text.Encoding,System.ReadOnlySpan`1[ushort],int):this (FullOpts)
           3 (5.88 % of base) : 231140.dasm - System.Net.Security.SslStream:GenerateAlertToken():System.Net.Security.ProtocolToken:this (FullOpts)
           3 (5.77 % of base) : 163833.dasm - Microsoft.CodeAnalysis.DesktopStrongNameProvider+<>c__DisplayClass12_0:<SignBuilder>b__0(System.Collections.Generic.IEnumerable`1[System.Reflection.Metadata.Blob]):ubyte[]:this (FullOpts)
           3 (5.77 % of base) : 203659.dasm - Microsoft.CodeAnalysis.DesktopStrongNameProvider+<>c__DisplayClass12_0:<SignBuilder>b__0(System.Collections.Generic.IEnumerable`1[System.Reflection.Metadata.Blob]):ubyte[]:this (FullOpts)
           5 (5.75 % of base) : 70948.dasm - Microsoft.CodeAnalysis.CSharp.CSharpSyntaxTree:ParseText(System.String,Microsoft.CodeAnalysis.CSharp.CSharpParseOptions,System.String,System.Text.Encoding,System.Collections.Immutable.ImmutableDictionary`2[System.String,int],System.Threading.CancellationToken):Microsoft.CodeAnalysis.SyntaxTree (FullOpts)
           3 (5.56 % of base) : 208132.dasm - System.Collections.Immutable.ImmutableDictionary`2+Builder[long,System.Nullable`1[int]]:TryGetKey(long,byref):ubyte:this (FullOpts)

Top method improvements (percentages):
         -17 (-22.37 % of base) : 180665.dasm - Microsoft.Build.Execution.TaskRegistry:get_TaskRegistrations():System.Collections.Generic.IDictionary`2[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskIdentity,System.Collections.Generic.List`1[Microsoft.Build.Execution.TaskRegistry+RegisteredTaskRecord]]:this (FullOpts)
         -20 (-20.83 % of base) : 222255.dasm - System.DirectoryServices.ActiveDirectory.ReplicationCursor:get_SourceServer():System.String:this (FullOpts)
         -15 (-20.55 % of base) : 293786.dasm - System.Net.Quic.QuicConnection:HandleEventLocalAddressChanged(byref):int:this (FullOpts)
         -15 (-20.55 % of base) : 293787.dasm - System.Net.Quic.QuicConnection:HandleEventPeerAddressChanged(byref):int:this (FullOpts)
         -30 (-16.95 % of base) : 242358.dasm - System.Security.Cryptography.SP800108HmacCounterKdf:.ctor(ubyte[],System.Security.Cryptography.HashAlgorithmName):this (FullOpts)
        -209 (-16.33 % of base) : 199613.dasm - Microsoft.CodeAnalysis.Emit.SymbolMatcher:MapBaselineToCompilation(Microsoft.CodeAnalysis.Emit.EmitBaseline,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]],System.Collections.Generic.IReadOnlyDictionary`2[Microsoft.CodeAnalysis.Symbols.ISymbolInternal,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Symbols.ISymbolInternal]]):Microsoft.CodeAnalysis.Emit.EmitBaseline:this (FullOpts)
         -30 (-16.22 % of base) : 260140.dasm - CommandLine.Text.HelpText+<>c__DisplayClass66_0:<AddOption>b__2(System.Object):this (FullOpts)
         -29 (-16.20 % of base) : 159840.dasm - Microsoft.CodeAnalysis.Emit.EmitOptions:.ctor(ubyte,int,System.String,System.String,int,ulong,ubyte,Microsoft.CodeAnalysis.SubsystemVersion,System.String,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int]):this (FullOpts)
         -29 (-16.20 % of base) : 199678.dasm - Microsoft.CodeAnalysis.Emit.EmitOptions:.ctor(ubyte,int,System.String,System.String,int,ulong,ubyte,Microsoft.CodeAnalysis.SubsystemVersion,System.String,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int]):this (FullOpts)
         -20 (-15.27 % of base) : 152736.dasm - Microsoft.CodeAnalysis.MetadataTypeName:get_NamespaceSegmentsMemory():System.Collections.Immutable.ImmutableArray`1[System.ReadOnlyMemory`1[ushort]]:this (FullOpts)
         -20 (-15.27 % of base) : 192594.dasm - Microsoft.CodeAnalysis.MetadataTypeName:get_NamespaceSegmentsMemory():System.Collections.Immutable.ImmutableArray`1[System.ReadOnlyMemory`1[ushort]]:this (FullOpts)
         -36 (-15.13 % of base) : 214610.dasm - System.ComponentModel.Design.Serialization.RootDesignerSerializerAttribute:get_TypeId():System.Object:this (FullOpts)
         -67 (-14.89 % of base) : 9013.dasm - Microsoft.FSharp.Collections.Array4DModule:Create[System.Numerics.Vector`1[float]](int,int,int,int,System.Numerics.Vector`1[float]):System.Numerics.Vector`1[float][,,,] (FullOpts)
         -20 (-14.29 % of base) : 242383.dasm - System.Security.Cryptography.AesCcm:.ctor(ubyte[]):this (FullOpts)
         -79 (-14.13 % of base) : 151862.dasm - Microsoft.CodeAnalysis.Compilation:SerializePeToStream(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CommonMessageProvider,System.Func`1[System.IO.Stream],System.Func`1[System.IO.Stream],System.Func`1[System.IO.Stream],Microsoft.Cci.PdbWriter,System.String,Microsoft.CodeAnalysis.RebuildData,ubyte,ubyte,ubyte,ubyte,System.Nullable`1[System.Security.Cryptography.RSAParameters],System.Threading.CancellationToken):ubyte (FullOpts)
         -79 (-14.13 % of base) : 191756.dasm - Microsoft.CodeAnalysis.Compilation:SerializePeToStream(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CommonMessageProvider,System.Func`1[System.IO.Stream],System.Func`1[System.IO.Stream],System.Func`1[System.IO.Stream],Microsoft.Cci.PdbWriter,System.String,Microsoft.CodeAnalysis.RebuildData,ubyte,ubyte,ubyte,ubyte,System.Nullable`1[System.Security.Cryptography.RSAParameters],System.Threading.CancellationToken):ubyte (FullOpts)
         -10 (-14.08 % of base) : 136135.dasm - System.Xml.XsdCachingReader:MoveToFirstAttribute():ubyte:this (FullOpts)
         -17 (-13.82 % of base) : 132388.dasm - System.Xml.XmlSqlBinaryReader:ImplReadPI():this (FullOpts)
         -20 (-13.70 % of base) : 242592.dasm - System.Security.Cryptography.ChaCha20Poly1305:.ctor(ubyte[]):this (FullOpts)
         -50 (-12.56 % of base) : 23052.dasm - System.Enum:TryParseByValueOrName[ubyte,long](System.RuntimeType,System.ReadOnlySpan`1[ushort],ubyte,ubyte,byref):ubyte (FullOpts)


libraries_tests.run.windows.x64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 281632278 (overridden on cmd)
Total bytes of diff: 280286058 (overridden on cmd)
Total bytes of delta: -1346220 (-0.48 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         559 : 106322.dasm (8.46 % of base)
         336 : 646812.dasm (3.99 % of base)
         191 : 54503.dasm (0.94 % of base)
         184 : 222782.dasm (3.88 % of base)
         180 : 222879.dasm (6.81 % of base)
         174 : 223001.dasm (6.38 % of base)
         167 : 222867.dasm (9.22 % of base)
         149 : 631718.dasm (1.25 % of base)
         147 : 65703.dasm (1.22 % of base)
         146 : 619988.dasm (4.14 % of base)
         141 : 91602.dasm (1.59 % of base)
         137 : 431692.dasm (2.44 % of base)
         130 : 90501.dasm (1.08 % of base)
         126 : 664875.dasm (0.99 % of base)
         122 : 222923.dasm (4.23 % of base)
         121 : 54506.dasm (0.61 % of base)
         117 : 65938.dasm (6.16 % of base)
         116 : 222893.dasm (3.37 % of base)
         114 : 620050.dasm (3.04 % of base)
         114 : 336478.dasm (1.77 % of base)

Top file improvements (bytes):
      -13991 : 571895.dasm (-13.98 % of base)
       -2352 : 7461.dasm (-10.16 % of base)
       -2352 : 29758.dasm (-9.80 % of base)
       -2128 : 243025.dasm (-5.59 % of base)
       -2041 : 243032.dasm (-5.55 % of base)
       -1911 : 254605.dasm (-8.41 % of base)
       -1825 : 279595.dasm (-1.38 % of base)
       -1825 : 282125.dasm (-1.36 % of base)
       -1771 : 243065.dasm (-5.57 % of base)
       -1767 : 243058.dasm (-5.63 % of base)
       -1764 : 243049.dasm (-5.58 % of base)
       -1761 : 243072.dasm (-5.54 % of base)
       -1652 : 243043.dasm (-5.55 % of base)
       -1647 : 421534.dasm (-12.42 % of base)
       -1521 : 7592.dasm (-10.30 % of base)
       -1361 : 10070.dasm (-11.10 % of base)
       -1361 : 36043.dasm (-10.97 % of base)
       -1318 : 557038.dasm (-14.14 % of base)
       -1318 : 563261.dasm (-14.14 % of base)
       -1211 : 591467.dasm (-17.07 % of base)

99 total files with Code Size differences (62 improved, 37 regressed), 20 unchanged.

Top method regressions (bytes):
         559 (8.46 % of base) : 106322.dasm - System.Number:TryParseNumber[ushort](byref,ulong,int,byref,System.Globalization.NumberFormatInfo):ubyte (Instrumented Tier1)
         336 (3.99 % of base) : 646812.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindForOrUsingOrFixedDeclarations(Microsoft.CodeAnalysis.CSharp.Syntax.VariableDeclarationSyntax,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (Tier1)
         191 (0.94 % of base) : 54503.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindAttributeCore(Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundAttribute:this (Tier1)
         184 (3.88 % of base) : 222782.dasm - System.Collections.Tests.IDictionary_Generic_Tests`2[System.__Canon,System.__Canon]:AddToCollection(System.Collections.Generic.ICollection`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]],int):this (Tier1)
         180 (6.81 % of base) : 222879.dasm - System.Collections.Tests.IDictionary_Generic_Tests`2[System.__Canon,System.__Canon]:IDictionary_Generic_Keys_ModifyingTheDictionaryUpdatesTheCollection(int):this (Tier1)
         174 (6.38 % of base) : 223001.dasm - System.Collections.Tests.IDictionary_Generic_Tests`2[System.__Canon,System.__Canon]:IDictionary_Generic_Values_ModifyingTheDictionaryUpdatesTheCollection(int):this (Tier1)
         167 (9.22 % of base) : 222867.dasm - System.Collections.Tests.ICollection_Generic_Tests`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:ICollection_Generic_Contains_DefaultValueOnCollectionNotContainingDefaultValue(int):this (Tier1)
         149 (1.25 % of base) : 631718.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitConditionalOperatorCore(Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (Tier1)
         147 (1.22 % of base) : 65703.dasm - Microsoft.Interop.ComInterfaceGenerator:Initialize(Microsoft.CodeAnalysis.IncrementalGeneratorInitializationContext):this (Tier1)
         146 (4.14 % of base) : 619988.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:ObjectCreationOverloadResolution(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.OverloadResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol],byref):this (Tier1)
         141 (1.59 % of base) : 91602.dasm - Microsoft.Interop.LibraryImportGenerator:PrintForwarderStub(Microsoft.Interop.ContainingSyntax,ubyte,Microsoft.Interop.LibraryImportGenerator+IncrementalStubGenerationContext,Microsoft.Interop.GeneratorDiagnosticsBag):Microsoft.CodeAnalysis.CSharp.Syntax.MemberDeclarationSyntax (Tier1)
         137 (2.44 % of base) : 431692.dasm - System.Xml.Schema.Preprocessor:PreprocessParticle(System.Xml.Schema.XmlSchemaParticle):this (Tier1)
         130 (1.08 % of base) : 90501.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:AddConstructorToCandidateSet(Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol]],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,ubyte,byref):this (Tier1)
         126 (0.99 % of base) : 664875.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier1)
         122 (4.23 % of base) : 222923.dasm - System.Collections.Tests.IDictionary_Generic_Tests`2[System.__Canon,System.__Canon]:IDictionary_Generic_RemoveKey_EveryKey(int):this (Tier1)
         121 (0.61 % of base) : 54506.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (Tier1)
         117 (6.16 % of base) : 65938.dasm - Microsoft.CodeAnalysis.TransformNode`2[System.ValueTuple`2[System.ValueTuple`2[System.ValueTuple`2[System.ValueTuple`2[System.ValueTuple`2[System.ValueTuple`2[System.__Canon,System.__Canon],System.__Canon],System.__Canon],System.__Canon],System.__Canon],System.__Canon],System.__Canon]:UpdateStateTable(Microsoft.CodeAnalysis.DriverStateTable+Builder,Microsoft.CodeAnalysis.NodeStateTable`1[System.__Canon],System.Threading.CancellationToken):Microsoft.CodeAnalysis.NodeStateTable`1[System.__Canon]:this (Tier1)
         116 (3.37 % of base) : 222893.dasm - System.Collections.Tests.IDictionary_Generic_Tests`2+<>c__DisplayClass62_0[System.__Canon,System.__Canon]:<IDictionary_Generic_Remove_ReferenceRemovedFromCollection>g__PopulateAndRemove|1(System.Collections.Generic.IDictionary`2[System.__Canon,System.__Canon],ubyte):System.Collections.Generic.KeyValuePair`2[System.WeakReference`1[System.Object],System.WeakReference`1[System.Object]]:this (Tier1)
         114 (3.04 % of base) : 620050.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CheckAndCoerceArguments[System.__Canon](Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon],Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.BoundExpression,ubyte):this (Tier1)
         114 (1.77 % of base) : 336478.dasm - System.Linq.Parallel.SortHelper`2[int,System.Linq.Parallel.ConcatKey`2[int,int]]:MergeSortCooperatively():this (Tier1)

Top method improvements (bytes):
      -13991 (-13.98 % of base) : 571895.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default:ClassWithManyConstructorParametersSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.ClassWithManyConstructorParameters):this (Tier0)
       -2352 (-9.80 % of base) : 29758.dasm - ComInterfaceGenerator.Unit.Tests.ByValueContentsMarshalling+<ByValueMarshalAttributeOnPinnedMarshalledTypes>d__2:MoveNext():ubyte:this (Instrumented Tier0)
       -2352 (-10.16 % of base) : 7461.dasm - ComInterfaceGenerator.Unit.Tests.ByValueContentsMarshalling+<ByValueMarshalAttributeOnPinnedMarshalledTypes>d__2:MoveNext():ubyte:this (Tier0)
       -2128 (-5.59 % of base) : 243025.dasm - System.Tests.XTermData+<get_RecordedScenarios>d__9:MoveNext():ubyte:this (Tier0)
       -2041 (-5.55 % of base) : 243032.dasm - System.Tests.GNOMETerminalData+<get_RecordedScenarios>d__9:MoveNext():ubyte:this (Tier0)
       -1911 (-8.41 % of base) : 254605.dasm - System.Xml.Schema.SchemaNames:.ctor(System.Xml.XmlNameTable):this (Instrumented Tier0)
       -1825 (-1.38 % of base) : 279595.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach001.freach001.Test:MainMethod():int (Instrumented Tier0)
       -1825 (-1.36 % of base) : 282125.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.statements.freach.freach007.freach007.Test:MainMethod():int (Instrumented Tier0)
       -1771 (-5.57 % of base) : 243065.dasm - System.Tests.RxvtUnicode+<get_RecordedScenarios>d__9:MoveNext():ubyte:this (Tier0)
       -1767 (-5.63 % of base) : 243058.dasm - System.Tests.Tmux256ColorData+<get_RecordedScenarios>d__9:MoveNext():ubyte:this (Tier0)
       -1764 (-5.58 % of base) : 243049.dasm - System.Tests.TmuxData+<get_RecordedScenarios>d__9:MoveNext():ubyte:this (Tier0)
       -1761 (-5.54 % of base) : 243072.dasm - System.Tests.AlacrittyData+<get_RecordedScenarios>d__9:MoveNext():ubyte:this (Tier0)
       -1652 (-5.55 % of base) : 243043.dasm - System.Tests.WindowsTerminalData+<get_RecordedScenarios>d__9:MoveNext():ubyte:this (Tier0)
       -1647 (-12.42 % of base) : 421534.dasm - System.Xml.Xsl.Xslt.KeywordsTable:.ctor(System.Xml.XmlNameTable):this (Instrumented Tier0)
       -1521 (-10.30 % of base) : 7592.dasm - ComInterfaceGenerator.Unit.Tests.ByValueContentsMarshalling+<ByValueMarshalAttributeOnValueTypes>d__1:MoveNext():ubyte:this (Tier0)
       -1361 (-10.97 % of base) : 36043.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Instrumented Tier0)
       -1361 (-11.10 % of base) : 10070.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier0)
       -1318 (-14.14 % of base) : 563261.dasm - System.Text.Json.SourceGeneration.Tests.ConstructorTests_Default+ConstructorTestsContext_Default:SimpleTestClassSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.SimpleTestClass):this (Tier0)
       -1318 (-14.14 % of base) : 557038.dasm - System.Text.Json.SourceGeneration.Tests.PropertyNameTests_Default+PropertyNameTestsContext_Default:SimpleTestClassSerializeHandler(System.Text.Json.Utf8JsonWriter,System.Text.Json.Serialization.Tests.SimpleTestClass):this (Tier0)
       -1211 (-17.07 % of base) : 591467.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:WriteHelloWorldEscaped(System.Text.Json.JsonWriterOptions):this (Instrumented Tier0)

Top method regressions (percentages):
          46 (15.38 % of base) : 590972.dasm - System.Text.Json.Utf8JsonWriter:WriteNumberEscape(System.ReadOnlySpan`1[ushort],double):this (Tier1)
          46 (15.38 % of base) : 590961.dasm - System.Text.Json.Utf8JsonWriter:WriteNumberEscape(System.ReadOnlySpan`1[ushort],float):this (Tier1)
          34 (14.23 % of base) : 577525.dasm - System.Text.Json.Utf8JsonWriter:WriteStringEscape(System.ReadOnlySpan`1[ushort]):this (Tier1)
          31 (12.97 % of base) : 589849.dasm - System.Text.Json.Utf8JsonWriter:WriteStringEscape(System.ReadOnlySpan`1[ushort]):this (Tier1)
          34 (12.78 % of base) : 577524.dasm - System.Text.Json.Utf8JsonWriter:WriteStringValue(System.ReadOnlySpan`1[ushort]):this (Tier1)
          43 (11.94 % of base) : 590960.dasm - System.Text.Json.Utf8JsonWriter:WriteNumber(System.ReadOnlySpan`1[ushort],float):this (Tier1)
          43 (11.47 % of base) : 590971.dasm - System.Text.Json.Utf8JsonWriter:WriteNumber(System.ReadOnlySpan`1[ushort],double):this (Tier1)
          34 (11.33 % of base) : 591815.dasm - System.Text.Json.Utf8JsonWriter:WritePropertyName(System.ReadOnlySpan`1[ushort]):this (Tier1)
          41 (10.96 % of base) : 592899.dasm - System.Text.Json.Utf8JsonWriter:WriteNull(System.ReadOnlySpan`1[ushort]):this (Tier1)
          47 (10.61 % of base) : 591809.dasm - System.Text.Json.Utf8JsonWriter:WriteStringEscape(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):this (Tier1)
          52 (10.02 % of base) : 591807.dasm - System.Text.Json.Utf8JsonWriter:WriteString(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort]):this (Tier1)
         167 (9.22 % of base) : 222867.dasm - System.Collections.Tests.ICollection_Generic_Tests`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:ICollection_Generic_Contains_DefaultValueOnCollectionNotContainingDefaultValue(int):this (Tier1)
          19 (9.09 % of base) : 543767.dasm - System.Text.Encodings.Web.TextEncoder:Encode(System.String):System.String:this (Tier1)
         559 (8.46 % of base) : 106322.dasm - System.Number:TryParseNumber[ushort](byref,ulong,int,byref,System.Globalization.NumberFormatInfo):ubyte (Instrumented Tier1)
          13 (7.98 % of base) : 500607.dasm - System.Globalization.CompareInfo:IndexOf(System.ReadOnlySpan`1[ushort],System.ReadOnlySpan`1[ushort],int):int:this (Tier1)
          31 (7.81 % of base) : 590879.dasm - System.Text.Json.Utf8JsonWriter:WriteStartEscape(System.ReadOnlySpan`1[ushort],ubyte):this (Tier1)
          84 (7.69 % of base) : 505900.dasm - System.Number:FormatCurrency[ubyte](byref,byref,int,System.Globalization.NumberFormatInfo) (Tier1)
          22 (7.67 % of base) : 590874.dasm - System.Text.Json.Utf8JsonWriter:WriteNumberEscape(System.ReadOnlySpan`1[ushort],long):this (Tier1)
           3 (7.14 % of base) : 448103.dasm - (dynamicClass):InvokeStub_MethodInfoDefaultParameters.StaticMethod(System.Object,System.Object,System.Object,System.Object,System.Object):System.Object (FullOpts)
         180 (6.81 % of base) : 222879.dasm - System.Collections.Tests.IDictionary_Generic_Tests`2[System.__Canon,System.__Canon]:IDictionary_Generic_Keys_ModifyingTheDictionaryUpdatesTheCollection(int):this (Tier1)

Top method improvements (percentages):
         -55 (-36.42 % of base) : 536453.dasm - System.ServiceModel.Syndication.SyndicationFeed:.ctor(System.String,System.String,System.Uri,System.String,System.DateTimeOffset):this (Tier0)
        -103 (-35.64 % of base) : 536452.dasm - System.ServiceModel.Syndication.Tests.SyndicationFeedTests:Ctor_String_String_Uri_String_DateTimeOffset(System.String,System.String,System.Uri,System.String,System.DateTimeOffset):this (Tier0)
        -103 (-34.33 % of base) : 536592.dasm - System.ServiceModel.Syndication.Tests.SyndicationFeedTests:Ctor_String_String_Uri_String_DateTimeOffset_Items(System.String,System.String,System.Uri,System.String,System.DateTimeOffset,System.Collections.Generic.IEnumerable`1[System.ServiceModel.Syndication.SyndicationItem]):this (Tier0)
         -84 (-33.87 % of base) : 74003.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerExecutor:TryExecuteSymbolEndActions(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.SymbolEndAnalyzerAction],Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer,Microsoft.CodeAnalysis.Diagnostics.SymbolDeclaredCompilationEvent,System.Func`5[Microsoft.CodeAnalysis.ISymbol,Microsoft.CodeAnalysis.SyntaxReference,Microsoft.CodeAnalysis.Compilation,System.Threading.CancellationToken,Microsoft.CodeAnalysis.SyntaxNode],ubyte,Microsoft.CodeAnalysis.SyntaxTree,System.Nullable`1[Microsoft.CodeAnalysis.Text.TextSpan],System.Threading.CancellationToken):ubyte:this (Tier0)
         -83 (-33.74 % of base) : 74062.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerOperationBlockStartAnalysisContext:.ctor(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer,Microsoft.CodeAnalysis.Diagnostics.HostOperationBlockStartAnalysisScope,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.IOperation],Microsoft.CodeAnalysis.ISymbol,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Diagnostics.AnalyzerOptions,System.Func`2[Microsoft.CodeAnalysis.IOperation,Microsoft.CodeAnalysis.FlowAnalysis.ControlFlowGraph],Microsoft.CodeAnalysis.SyntaxTree,System.Nullable`1[Microsoft.CodeAnalysis.Text.TextSpan],ubyte,System.Threading.CancellationToken):this (Tier0)
         -94 (-32.53 % of base) : 259275.dasm - System.Diagnostics.ActivitySource:CreateActivity(System.String,int,System.String,System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.String,System.Object]],System.Collections.Generic.IEnumerable`1[System.Diagnostics.ActivityLink],int):System.Diagnostics.Activity:this (Tier0)
         -67 (-31.60 % of base) : 70161.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerSymbolStartAnalysisContext:.ctor(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer,Microsoft.CodeAnalysis.Diagnostics.HostSymbolStartAnalysisScope,Microsoft.CodeAnalysis.ISymbol,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Diagnostics.AnalyzerOptions,ubyte,Microsoft.CodeAnalysis.SyntaxTree,System.Nullable`1[Microsoft.CodeAnalysis.Text.TextSpan],System.Threading.CancellationToken):this (Instrumented Tier0)
         -67 (-31.60 % of base) : 69365.dasm - Microsoft.CodeAnalysis.Diagnostics.AnalyzerSymbolStartAnalysisContext:.ctor(Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer,Microsoft.CodeAnalysis.Diagnostics.HostSymbolStartAnalysisScope,Microsoft.CodeAnalysis.ISymbol,Microsoft.CodeAnalysis.Compilation,Microsoft.CodeAnalysis.Diagnostics.AnalyzerOptions,ubyte,Microsoft.CodeAnalysis.SyntaxTree,System.Nullable`1[Microsoft.CodeAnalysis.Text.TextSpan],System.Threading.CancellationToken):this (Tier0)
         -50 (-31.06 % of base) : 618050.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitIntegerSwitchJumpTable(System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.ConstantValue,System.Object][],System.Object,Microsoft.CodeAnalysis.CodeGen.LocalOrParameter,int):this (Instrumented Tier0)
         -50 (-31.06 % of base) : 612479.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:EmitIntegerSwitchJumpTable(System.Collections.Generic.KeyValuePair`2[Microsoft.CodeAnalysis.ConstantValue,System.Object][],System.Object,Microsoft.CodeAnalysis.CodeGen.LocalOrParameter,int):this (Tier0)
         -97 (-30.70 % of base) : 140727.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -97 (-30.70 % of base) : 157689.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,ubyte):this (Tier0)
         -41 (-30.60 % of base) : 534640.dasm - System.ServiceModel.Syndication.SyndicationItem:.ctor(System.String,System.String,System.Uri):this (Tier0)
         -90 (-30.51 % of base) : 157773.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
         -90 (-30.51 % of base) : 140867.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[System.String],System.Collections.Immutable.ImmutableArray`1[ubyte],ubyte,ubyte,ubyte,System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
        -147 (-30.50 % of base) : 157859.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
        -147 (-30.50 % of base) : 141025.dasm - Microsoft.CodeAnalysis.CSharp.BoundCall:Update(Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):Microsoft.CodeAnalysis.CSharp.BoundCall:this (Tier0)
        -121 (-30.33 % of base) : 176519.dasm - Microsoft.CodeAnalysis.CSharp.BoundObjectCreationExpression:.ctor(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression]):this (Tier0)
         -62 (-30.24 % of base) : 81469.dasm - System.Net.SSPISecureChannelType:InitializeSecurityContext(byref,byref,System.String,int,int,System.Net.Security.InputSecurityBuffers,byref,byref):int:this (Instrumented Tier0)
         -62 (-30.24 % of base) : 76313.dasm - System.Net.SSPISecureChannelType:InitializeSecurityContext(byref,byref,System.String,int,int,System.Net.Security.InputSecurityBuffers,byref,byref):int:this (Tier0)


librariestestsnotieredcompilation.run.windows.x64.Release.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 133912278 (overridden on cmd)
Total bytes of diff: 133815471 (overridden on cmd)
Total bytes of delta: -96807 (-0.07 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         506 : 149336.dasm (4.00 % of base)
         503 : 4427.dasm (1.72 % of base)
         237 : 23669.dasm (2.42 % of base)
         180 : 138337.dasm (5.29 % of base)
         176 : 66967.dasm (3.59 % of base)
         176 : 68140.dasm (3.59 % of base)
         149 : 110909.dasm (7.51 % of base)
         146 : 242765.dasm (8.33 % of base)
         144 : 281585.dasm (2.92 % of base)
         137 : 232069.dasm (7.93 % of base)
         130 : 134121.dasm (6.06 % of base)
         118 : 130400.dasm (4.48 % of base)
         107 : 101748.dasm (2.65 % of base)
         101 : 277548.dasm (3.01 % of base)
          98 : 233394.dasm (3.23 % of base)
          95 : 242826.dasm (4.68 % of base)
          81 : 101724.dasm (1.51 % of base)
          79 : 124456.dasm (3.31 % of base)
          74 : 212136.dasm (2.67 % of base)
          73 : 55758.dasm (6.20 % of base)

Top file improvements (bytes):
        -428 : 13202.dasm (-3.99 % of base)
        -397 : 67487.dasm (-0.46 % of base)
        -379 : 42313.dasm (-8.74 % of base)
        -296 : 67455.dasm (-0.26 % of base)
        -232 : 33618.dasm (-11.66 % of base)
        -220 : 5356.dasm (-1.92 % of base)
        -191 : 204058.dasm (-0.08 % of base)
        -190 : 51044.dasm (-2.99 % of base)
        -184 : 118685.dasm (-1.80 % of base)
        -170 : 45187.dasm (-2.57 % of base)
        -168 : 13206.dasm (-3.05 % of base)
        -167 : 139475.dasm (-4.10 % of base)
        -156 : 3523.dasm (-0.76 % of base)
        -155 : 186731.dasm (-8.44 % of base)
        -149 : 165397.dasm (-3.65 % of base)
        -148 : 160758.dasm (-3.66 % of base)
        -147 : 166460.dasm (-12.03 % of base)
        -147 : 16776.dasm (-11.76 % of base)
        -147 : 155424.dasm (-11.76 % of base)
        -146 : 202344.dasm (-5.62 % of base)

81 total files with Code Size differences (43 improved, 38 regressed), 20 unchanged.

Top method regressions (bytes):
         506 (4.00 % of base) : 149336.dasm - System.Management.ManagementClassGenerator:AddToDateTimeFunction():this (FullOpts)
         503 (1.72 % of base) : 4427.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
         237 (2.42 % of base) : 23669.dasm - Microsoft.CodeAnalysis.FindSymbols.DependentTypeFinder+ProjectIndex+<CreateIndexAsync>d__8:MoveNext():this (FullOpts)
         180 (5.29 % of base) : 138337.dasm - System.IO.Tests.Stream_ReadAtLeast+<ReadMoreThanMinimumBytes>d__2:MoveNext():this (FullOpts)
         176 (3.59 % of base) : 66967.dasm - System.CodeDom.Compiler.Tests.CSharpCodeGenerationTests:ForLoops():this (FullOpts)
         176 (3.59 % of base) : 68140.dasm - System.CodeDom.Compiler.Tests.VBCodeGenerationTests:ForLoops():this (FullOpts)
         149 (7.51 % of base) : 110909.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.basic.operate007a.operate007a.Test:Test2():ubyte (FullOpts)
         146 (8.33 % of base) : 242765.dasm - System.Text.Encodings.Tests.DecoderMiscTests:DecoderConvertSplitAcrossInvalidMultiByteSequenceTests():this (FullOpts)
         144 (2.92 % of base) : 281585.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedRecordPrintMembers:GenerateMethodBody(Microsoft.CodeAnalysis.CSharp.TypeCompilationState,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):this (FullOpts)
         137 (7.93 % of base) : 232069.dasm - System.Security.Cryptography.Tests.HmacTests`1[System.__Canon]:VerifyHmac(int,ubyte[]):this (FullOpts)
         130 (6.06 % of base) : 134121.dasm - System.IO.MemoryMappedFiles.Tests.MemoryMappedViewStreamTests:AllReadWriteMethods(long,long):this (FullOpts)
         118 (4.48 % of base) : 130400.dasm - System.IO.Tests.Directory_GetFileSystemEntries_str_str:SearchPatternExactMatch():this (FullOpts)
         107 (2.65 % of base) : 101748.dasm - System.Diagnostics.Tests.DiagnosticSourceEventSourceBridgeTests:<TestTransformSpecs>b__5_0():this (FullOpts)
         101 (3.01 % of base) : 277548.dasm - System.Text.Json.Serialization.Tests.NullableTests:EnumerableWithNullableValue() (FullOpts)
          98 (3.23 % of base) : 233394.dasm - System.Security.Cryptography.X509Certificates.Tests.ChainPolicyTests:VerifyCloneBehavior() (FullOpts)
          95 (4.68 % of base) : 242826.dasm - System.Text.Tests.ASCIIEncodingDecode:Decode(ubyte[],int,int):this (FullOpts)
          81 (1.51 % of base) : 101724.dasm - System.Diagnostics.Metrics.Tests.MetricsTests+<>c:<MeterDisposalsTest>b__9_0():this (FullOpts)
          79 (3.31 % of base) : 124456.dasm - System.Formats.Tar.Tests.TarFile_ExtractToDirectory_File_Tests:Extract_AllSegmentsOfPath():this (FullOpts)
          74 (2.67 % of base) : 212136.dasm - System.Tests.UInt128Tests+<Parse_Valid_TestData>d__13:MoveNext():ubyte:this (FullOpts)
          73 (6.20 % of base) : 55758.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__75:MoveNext():ubyte:this (FullOpts)

Top method improvements (bytes):
        -428 (-3.99 % of base) : 13202.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1[System.__Canon]:VerifyDiagnosticResults(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[Microsoft.CodeAnalysis.Project,Microsoft.CodeAnalysis.Diagnostic]],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],Microsoft.CodeAnalysis.Testing.DiagnosticResult[],Microsoft.CodeAnalysis.Testing.IVerifier):this (MinOpts)
        -397 (-0.46 % of base) : 67487.dasm - System.CodeDom.Compiler.Tests.CodeValidatorTests+<ValidateIdentifiers_Valid_TestData>d__0:MoveNext():ubyte:this (FullOpts)
        -379 (-8.74 % of base) : 42313.dasm - Newtonsoft.Json.JsonWriter:WriteValue(Newtonsoft.Json.JsonWriter,int,System.Object) (FullOpts)
        -296 (-0.26 % of base) : 67455.dasm - System.CodeDom.Compiler.Tests.CodeValidatorTests+<ValidateIdentifiers_Invalid_TestData>d__2:MoveNext():ubyte:this (FullOpts)
        -232 (-11.66 % of base) : 33618.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -220 (-1.92 % of base) : 5356.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (FullOpts)
        -191 (-0.08 % of base) : 204058.dasm - System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests+<SerializableObjects>d__3:MoveNext():ubyte:this (Tier0-MinOpts)
        -190 (-2.99 % of base) : 51044.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArguments(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte]:this (FullOpts)
        -184 (-1.80 % of base) : 118685.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.returnType.covariant.usage001.usage001.Test:MainMethod(System.String[]):int (FullOpts)
        -170 (-2.57 % of base) : 45187.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitArguments(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol):System.ValueTuple`3[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte]:this (FullOpts)
        -168 (-3.05 % of base) : 13206.dasm - Microsoft.CodeAnalysis.Testing.WeightedMatch:Match[Microsoft.CodeAnalysis.Testing.DiagnosticResult,System.ValueTuple`2[System.__Canon,System.__Canon]](System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Testing.DiagnosticResult],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[System.__Canon,System.__Canon]],System.Collections.Immutable.ImmutableArray`1[System.__Canon],System.TimeSpan):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Testing.WeightedMatch+Result`2[Microsoft.CodeAnalysis.Testing.DiagnosticResult,System.ValueTuple`2[System.__Canon,System.__Canon]]] (MinOpts)
        -167 (-4.10 % of base) : 139475.dasm - System.Linq.Parallel.SortHelper`2[System.__Canon,int]:MergeSortCooperatively():this (FullOpts)
        -156 (-0.76 % of base) : 3523.dasm - Microsoft.CodeAnalysis.Testing.ReferenceAssemblies+<ResolveCoreAsync>d__50:MoveNext():this (MinOpts)
        -155 (-8.44 % of base) : 186731.dasm - System.Reflection.Emit.CustomAttributeInfo:DecodeCustomAttribute(System.Reflection.ConstructorInfo,System.ReadOnlySpan`1[ubyte]):System.Reflection.Emit.CustomAttributeInfo (FullOpts)
        -149 (-3.65 % of base) : 165397.dasm - System.Net.Security.FakeNtlmServer:ValidateAuthentication(ubyte[]):this (FullOpts)
        -148 (-3.66 % of base) : 160758.dasm - System.Net.Security.FakeNtlmServer:ValidateAuthentication(ubyte[]):this (FullOpts)
        -147 (-12.03 % of base) : 166460.dasm - System.Net.Http.HPack.HPackDecoder:Parse(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this (FullOpts)
        -147 (-11.76 % of base) : 16776.dasm - System.Net.Http.HPack.HPackDecoder:Parse(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this (FullOpts)
        -147 (-11.76 % of base) : 155424.dasm - System.Net.Http.HPack.HPackDecoder:Parse(System.ReadOnlySpan`1[ubyte],byref,System.Net.Http.IHttpStreamHeadersHandler):this (FullOpts)
        -146 (-5.62 % of base) : 202344.dasm - System.Numerics.Tests.StackCalc:DoBinaryOperatorSN(System.Numerics.BigInteger,System.Numerics.BigInteger,System.String,byref):System.Numerics.BigInteger:this (FullOpts)

Top method regressions (percentages):
          25 (9.62 % of base) : 171574.dasm - Tests.Collections.IListTest`1[int]:SetItemNotUnique():this (FullOpts)
          25 (9.62 % of base) : 171130.dasm - Tests.Collections.IListTest`1[System.__Canon]:SetItemNotUnique():this (FullOpts)
          59 (9.20 % of base) : 202418.dasm - System.Numerics.Tests.powTest:RunPowAxiom0PowX() (FullOpts)
           6 (8.70 % of base) : 275284.dasm - System.Text.Json.Tests.Utf8JsonWriterTests+<>c:<WriteString_NullPropertyName_JsonEncodedText>b__204_1(System.Text.Json.Utf8JsonWriter,System.ReadOnlySpan`1[ushort],System.Text.Json.JsonEncodedText):this (FullOpts)
           6 (8.70 % of base) : 275285.dasm - System.Text.Json.Tests.Utf8JsonWriterTests+<>c:<WriteString_NullPropertyName_JsonEncodedText>b__204_2(System.Text.Json.Utf8JsonWriter,System.ReadOnlySpan`1[ubyte],System.Text.Json.JsonEncodedText):this (FullOpts)
         146 (8.33 % of base) : 242765.dasm - System.Text.Encodings.Tests.DecoderMiscTests:DecoderConvertSplitAcrossInvalidMultiByteSequenceTests():this (FullOpts)
           6 (8.00 % of base) : 203052.dasm - System.Numerics.Tests.ExtractBytesMembersTests+<>c__DisplayClass11_0:<ToByteArray_FromStringTests_Advanced>b__0():System.Object:this (FullOpts)
           6 (8.00 % of base) : 203025.dasm - System.Numerics.Tests.ExtractBytesMembersTests+<>c__DisplayClass7_0:<ToByteArray_FromIntTests_Advanced>b__0():System.Object:this (FullOpts)
           6 (8.00 % of base) : 203055.dasm - System.Numerics.Tests.ExtractBytesMembersTests+<>c__DisplayClass9_0:<ToByteArray_FromLongTests_Advanced>b__0():System.Object:this (FullOpts)
         137 (7.93 % of base) : 232069.dasm - System.Security.Cryptography.Tests.HmacTests`1[System.__Canon]:VerifyHmac(int,ubyte[]):this (FullOpts)
         149 (7.51 % of base) : 110909.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.basic.operate007a.operate007a.Test:Test2():ubyte (FullOpts)
           7 (7.22 % of base) : 203038.dasm - System.Numerics.Tests.ExtractBytesMembersTests+<>c__DisplayClass16_0:<ValidateGetByteCountAndTryWriteBytes>b__0():System.Object:this (FullOpts)
           3 (7.14 % of base) : 188776.dasm - (dynamicClass):InvokeStub_MethodInfoDefaultParameters.StaticMethod(System.Object,System.Object,System.Object,System.Object,System.Object):System.Object (FullOpts)
           5 (6.94 % of base) : 281608.dasm - System.Text.RegularExpressions.Tests.RegexParserTests:ParseCheckOffset(System.String,int,System.Nullable`1[int],int):this (FullOpts)
          18 (6.62 % of base) : 120522.dasm - System.Formats.Asn1.AsnWriter:WriteConstructedCerCharacterString(System.Formats.Asn1.Asn1Tag,System.Text.Encoding,System.ReadOnlySpan`1[ushort],int):this (FullOpts)
          12 (6.49 % of base) : 18462.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:NormalizeTaskTypesInArray(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,byref):ubyte (FullOpts)
           3 (6.38 % of base) : 129623.dasm - System.IO.Compression.Tests.ZipFile_ZipArchive_Create+<>c__DisplayClass0_0:<CreateEntryFromFileExtension>b__1():System.Object:this (FullOpts)
          12 (6.35 % of base) : 54541.dasm - System.String:Format[System.__Canon,System.__Canon,int](System.IFormatProvider,System.Text.CompositeFormat,System.__Canon,System.__Canon,int):System.String (FullOpts)
          73 (6.20 % of base) : 55758.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__75:MoveNext():ubyte:this (FullOpts)
         130 (6.06 % of base) : 134121.dasm - System.IO.MemoryMappedFiles.Tests.MemoryMappedViewStreamTests:AllReadWriteMethods(long,long):this (FullOpts)

Top method improvements (percentages):
         -21 (-22.83 % of base) : 72159.dasm - System.Collections.Immutable.Tests.ImmutableArrayTest+<>c__DisplayClass128_1:<RemoveRangeEnumerableInvalid>b__20():System.Object:this (FullOpts)
         -30 (-16.95 % of base) : 24577.dasm - System.Security.Cryptography.SP800108HmacCounterKdf:.ctor(ubyte[],System.Security.Cryptography.HashAlgorithmName):this (FullOpts)
         -20 (-16.13 % of base) : 233625.dasm - System.Security.Cryptography.AesCcm:.ctor(ubyte[]):this (FullOpts)
         -20 (-16.13 % of base) : 235897.dasm - System.Security.Cryptography.Tests.SP800108HmacCounterKdfTests+<>c:<Ctor_KeySpan_ArgValidation>b__7_0():System.Object:this (FullOpts)
         -20 (-16.13 % of base) : 24708.dasm - System.Security.Cryptography.Tests.SP800108HmacCounterKdfTests+<>c:<Ctor_KeySpan_ArgValidation>b__7_0():System.Object:this (FullOpts)
         -20 (-15.38 % of base) : 236841.dasm - System.Security.Cryptography.ChaCha20Poly1305:.ctor(ubyte[]):this (FullOpts)
         -36 (-15.13 % of base) : 89450.dasm - System.ComponentModel.Design.Serialization.RootDesignerSerializerAttribute:get_TypeId():System.Object:this (FullOpts)
         -20 (-14.93 % of base) : 236581.dasm - System.Security.Cryptography.Tests.AesGcmTests+<>c__DisplayClass2_0:<InvalidKeyLength>b__1():System.Object:this (FullOpts)
         -79 (-14.60 % of base) : 47266.dasm - Microsoft.CodeAnalysis.Compilation:SerializePeToStream(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CommonMessageProvider,System.Func`1[System.IO.Stream],System.Func`1[System.IO.Stream],System.Func`1[System.IO.Stream],Microsoft.Cci.PdbWriter,System.String,Microsoft.CodeAnalysis.RebuildData,ubyte,ubyte,ubyte,ubyte,System.Nullable`1[System.Security.Cryptography.RSAParameters],System.Threading.CancellationToken):ubyte (FullOpts)
         -79 (-14.60 % of base) : 53407.dasm - Microsoft.CodeAnalysis.Compilation:SerializePeToStream(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CommonMessageProvider,System.Func`1[System.IO.Stream],System.Func`1[System.IO.Stream],System.Func`1[System.IO.Stream],Microsoft.Cci.PdbWriter,System.String,Microsoft.CodeAnalysis.RebuildData,ubyte,ubyte,ubyte,ubyte,System.Nullable`1[System.Security.Cryptography.RSAParameters],System.Threading.CancellationToken):ubyte (FullOpts)
         -20 (-14.60 % of base) : 233687.dasm - System.Security.Cryptography.Tests.AesCcmTests+<>c:<NullKey>b__8_0():System.Object:this (FullOpts)
         -17 (-14.29 % of base) : 103836.dasm - System.Diagnostics.TextWriterTraceListenerTests.DelimiterWriteMethodTestsBase:.ctor():this (FullOpts)
         -17 (-14.29 % of base) : 103811.dasm - System.Diagnostics.TextWriterTraceListenerTests.TextWriterTraceListener_WriteTestsBase:.ctor():this (FullOpts)
         -20 (-14.29 % of base) : 236844.dasm - System.Security.Cryptography.Tests.ChaCha20Poly1305IsSupportedTests+<>c__DisplayClass2_0:<CtorThrowsPNSEIfNotSupported>b__1():System.Object:this (FullOpts)
         -20 (-14.29 % of base) : 235898.dasm - System.Security.Cryptography.Tests.SP800108HmacCounterKdfTests+<>c:<Ctor_KeySpan_ArgValidation>b__7_1():System.Object:this (FullOpts)
         -20 (-14.29 % of base) : 24709.dasm - System.Security.Cryptography.Tests.SP800108HmacCounterKdfTests+<>c:<Ctor_KeySpan_ArgValidation>b__7_1():System.Object:this (FullOpts)
         -20 (-14.29 % of base) : 235899.dasm - System.Security.Cryptography.Tests.SP800108HmacCounterKdfTests+<>c:<Ctor_KeySpan_ArgValidation>b__7_2():System.Object:this (FullOpts)
         -20 (-14.29 % of base) : 24710.dasm - System.Security.Cryptography.Tests.SP800108HmacCounterKdfTests+<>c:<Ctor_KeySpan_ArgValidation>b__7_2():System.Object:this (FullOpts)
         -79 (-14.13 % of base) : 55711.dasm - Microsoft.CodeAnalysis.Compilation:SerializePeToStream(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CommonMessageProvider,System.Func`1[System.IO.Stream],System.Func`1[System.IO.Stream],System.Func`1[System.IO.Stream],Microsoft.Cci.PdbWriter,System.String,Microsoft.CodeAnalysis.RebuildData,ubyte,ubyte,ubyte,ubyte,System.Nullable`1[System.Security.Cryptography.RSAParameters],System.Threading.CancellationToken):ubyte (FullOpts)
         -14 (-12.84 % of base) : 195609.dasm - System.Tests.RandomTests+<>c__DisplayClass27_0:<GetItems_Buffer_ArgValidation>b__0():this (FullOpts)


realworld.run.windows.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 14170687 (overridden on cmd)
Total bytes of diff: 14157421 (overridden on cmd)
Total bytes of delta: -13266 (-0.09 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
         503 : 18873.dasm (1.71 % of base)
         330 : 2407.dasm (3.66 % of base)
         278 : 34800.dasm (2.70 % of base)
         256 : 5812.dasm (0.29 % of base)
         117 : 21181.dasm (7.08 % of base)
         106 : 17325.dasm (3.36 % of base)
          95 : 9403.dasm (2.34 % of base)
          90 : 22106.dasm (1.91 % of base)
          65 : 10053.dasm (3.36 % of base)
          65 : 32242.dasm (5.35 % of base)
          59 : 22462.dasm (3.31 % of base)
          54 : 22536.dasm (1.41 % of base)
          53 : 17432.dasm (0.66 % of base)
          51 : 9939.dasm (1.25 % of base)
          50 : 757.dasm (6.20 % of base)
          49 : 9955.dasm (0.95 % of base)
          48 : 23382.dasm (1.79 % of base)
          46 : 26448.dasm (3.66 % of base)
          43 : 28192.dasm (0.36 % of base)
          40 : 34583.dasm (0.95 % of base)

Top file improvements (bytes):
       -3102 : 4518.dasm (-1.88 % of base)
       -1502 : 4609.dasm (-32.31 % of base)
       -1485 : 3150.dasm (-27.00 % of base)
       -1293 : 12508.dasm (-5.65 % of base)
        -300 : 13864.dasm (-0.91 % of base)
        -237 : 11754.dasm (-6.01 % of base)
        -232 : 1671.dasm (-11.66 % of base)
        -220 : 14800.dasm (-1.92 % of base)
        -204 : 11819.dasm (-10.08 % of base)
        -158 : 12533.dasm (-6.81 % of base)
        -146 : 34420.dasm (-1.52 % of base)
        -144 : 9271.dasm (-5.11 % of base)
        -137 : 10050.dasm (-1.79 % of base)
        -133 : 11340.dasm (-1.24 % of base)
        -131 : 13062.dasm (-0.56 % of base)
        -128 : 7862.dasm (-1.74 % of base)
        -126 : 8718.dasm (-0.76 % of base)
        -125 : 25424.dasm (-2.22 % of base)
        -113 : 22690.dasm (-1.83 % of base)
        -112 : 14958.dasm (-0.96 % of base)

76 total files with Code Size differences (41 improved, 35 regressed), 20 unchanged.

Top method regressions (bytes):
         503 (1.71 % of base) : 18873.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCommandLineParser:Parse(System.Collections.Generic.IEnumerable`1[System.String],System.String,System.String,System.String):Microsoft.CodeAnalysis.CSharp.CSharpCommandLineArguments:this (FullOpts)
         330 (3.66 % of base) : 2407.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.Features:.cctor() (FullOpts)
         278 (2.70 % of base) : 34800.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (FullOpts)
         256 (0.29 % of base) : 5812.dasm - FSharp.Compiler.TcGlobals+TcGlobals:.ctor(ubyte,FSharp.Compiler.AbstractIL.IL+ILGlobals,FSharp.Compiler.TypedTree+CcuThunk,System.String,ubyte,ubyte,Microsoft.FSharp.Core.FSharpFunc`2[Microsoft.FSharp.Collections.FSharpList`1[System.String],Microsoft.FSharp.Core.FSharpFunc`2[System.String,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+CcuThunk]]],ubyte,ubyte,Internal.Utilities.PathMap,FSharp.Compiler.Features+LanguageVersion):this (FullOpts)
         117 (7.08 % of base) : 21181.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetCompilationReferences(System.__Canon,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref,byref):this (FullOpts)
         106 (3.36 % of base) : 17325.dasm - Microsoft.ML.Numeric.VectorUtils:AddMultWithOffset(byref,float,byref,int) (FullOpts)
          95 (2.34 % of base) : 9403.dasm - FSharp.Compiler.CheckExpressions:AnalyzeAndMakeAndPublishRecursiveValue(FSharp.Compiler.CheckExpressions+OverridesOK,ubyte,FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,int,FSharp.Compiler.CheckExpressions+NormalizedRecBindingDefn):System.Tuple`2[System.Tuple`2[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CheckExpressions+PreCheckingRecursiveBinding],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Val]],System.Tuple`2[FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,int]] (FullOpts)
          90 (1.91 % of base) : 22106.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this (FullOpts)
          65 (3.36 % of base) : 10053.dasm - FSharp.Compiler.NameResolution:ResolveExprDotLongIdent(FSharp.Compiler.NameResolution+NameResolver,FSharp.Compiler.Text.Range,FSharp.Compiler.AccessibilityLogic+AccessorDomain,FSharp.Compiler.NameResolution+NameResolutionEnv,FSharp.Compiler.TypedTree+TType,FSharp.Compiler.Syntax.Ident,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.Ident],FSharp.Compiler.NameResolution+TypeNameResolutionInfo,FSharp.Compiler.InfoReader+FindMemberFlag):System.Tuple`3[FSharp.Compiler.NameResolution+ResolutionInfo,FSharp.Compiler.NameResolution+Item,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.Ident]] (FullOpts)
          65 (5.35 % of base) : 32242.dasm - Microsoft.Cci.MetadataWriter:PopulateGenericParameters(System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.IGenericParameter]):this (FullOpts)
          59 (3.31 % of base) : 22462.dasm - Microsoft.CodeAnalysis.CSharp.Binder:TryPerformConstructorOverloadResolution(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.AnalyzedArguments,System.String,Microsoft.CodeAnalysis.Location,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,ubyte,ubyte):ubyte:this (FullOpts)
          54 (1.41 % of base) : 22536.dasm - Microsoft.CodeAnalysis.CSharp.Binder:CoerceArguments[System.__Canon](Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,Microsoft.CodeAnalysis.CSharp.BoundExpression):this (FullOpts)
          53 (0.66 % of base) : 17432.dasm - Microsoft.ML.Trainers.SdcaMulticlassTrainerBase`1[System.__Canon]:TrainWithoutLock(Microsoft.ML.Runtime.IProgressChannelProvider,Microsoft.ML.Trainers.FloatLabelCursor+Factory,System.Random,Microsoft.ML.Trainers.SdcaTrainerBase`3+IdToIdxLookup[System.__Canon,System.__Canon,System.__Canon],int,Microsoft.ML.Trainers.SdcaTrainerBase`3+DualsTableBase[System.__Canon,System.__Canon,System.__Canon],float[],float[],float,Microsoft.ML.Data.VBuffer`1[float][],float[],Microsoft.ML.Data.VBuffer`1[float][],float[],float[]):this (FullOpts)
          51 (1.25 % of base) : 9939.dasm - FSharp.Compiler.CheckDeclarations+MutRecBindingChecking:TcMutRecBindings_Phase2D_ExtractImplicitFieldAndMethodBindings$cont@2094(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar],FSharp.Compiler.TypedTreeOps+DisplayEnv,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.CheckExpressions+TcEnv,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+Entity],FSharp.Compiler.TypedTree+EntityRef,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+Binding],FSharp.Compiler.CheckDeclarations+IncrClassChecking+IncrClassCtorLhs,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CheckDeclarations+MutRecBindingChecking+TyconBindingPhase2C],Microsoft.FSharp.Core.Unit):System.Tuple`3[Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+Entity],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CheckExpressions+PreInitializationGraphEliminationBinding],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Binding]] (FullOpts)
          50 (6.20 % of base) : 757.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
          49 (0.95 % of base) : 9955.dasm - FSharp.Compiler.CheckDeclarations+IncrClassChecking:MakeCtorForIncrClassConstructionPhase2C(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckDeclarations+IncrClassChecking+IncrClassCtorLhs,FSharp.Compiler.TypedTree+Expr,ubyte,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CheckDeclarations+IncrClassChecking+IncrClassConstructionBindingsPhase2C],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Binding],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Typar],FSharp.Compiler.CheckExpressions+SafeInitData):System.Tuple`4[FSharp.Compiler.TypedTree+Expr,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+Expr],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Binding],FSharp.Compiler.CheckDeclarations+IncrClassChecking+IncrClassReprInfo] (FullOpts)
          48 (1.79 % of base) : 23382.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourcePropertySymbol:GetAccessorDeclarations(Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,byref,byref,byref,byref,byref,byref) (FullOpts)
          46 (3.66 % of base) : 26448.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<Scan>g__enforceMemberNotNullWhenForPendingReturn|61_3(Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2+PendingBranch[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalFunctionState],Microsoft.CodeAnalysis.CSharp.BoundReturnStatement):this (FullOpts)
          43 (0.36 % of base) : 28192.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitTupleDeconstructionArguments(Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+DeconstructionVariable],System.Collections.Immutable.ImmutableArray`1[System.ValueTuple`2[Microsoft.CodeAnalysis.CSharp.BoundValuePlaceholder,Microsoft.CodeAnalysis.CSharp.BoundExpression]],Microsoft.CodeAnalysis.CSharp.BoundExpression,System.Nullable`1[Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithState]):this (FullOpts)
          40 (0.95 % of base) : 34583.dasm - System.Management.Automation.ScriptBlock:InvokeWithPipeImpl(int,ubyte,System.Collections.Generic.Dictionary`2[System.String,System.Management.Automation.ScriptBlock],System.Collections.Generic.List`1[System.Management.Automation.PSVariable],int,System.Object,System.Object,System.Object,System.Management.Automation.Internal.Pipe,System.Management.Automation.InvocationInfo,System.Object[]):this (FullOpts)

Top method improvements (bytes):
       -3102 (-1.88 % of base) : 4518.dasm - FSharp.Compiler.LexFilter+LexFilterImpl:hwTokenFetch(ubyte):FSharp.Compiler.Parser+token:this (Tier0-MinOpts)
       -1502 (-32.31 % of base) : 4609.dasm - FSharp.Compiler.CompilerConfig+TcConfig:CloneToBuilder():FSharp.Compiler.CompilerConfig+TcConfigBuilder:this (FullOpts)
       -1485 (-27.00 % of base) : 3150.dasm - FSharp.Compiler.CompilerConfig+TcConfig:.ctor(FSharp.Compiler.CompilerConfig+TcConfigBuilder,ubyte):this (FullOpts)
       -1293 (-5.65 % of base) : 12508.dasm - FSharp.Compiler.CheckComputationExpressions+tryTrans@776-1:Invoke(Microsoft.FSharp.Core.Unit):Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynExpr]:this (FullOpts)
        -300 (-0.91 % of base) : 13864.dasm - FSharp.Compiler.CompilerDiagnostics:OutputExceptionR@597(System.Text.StringBuilder,ubyte,System.Text.StringBuilder,System.Exception) (FullOpts)
        -237 (-6.01 % of base) : 11754.dasm - FSharp.Compiler.CheckComputationExpressions:tryTcSequenceExprBody@1880(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.ConstraintSolver+OverallTy,FSharp.Compiler.Text.Range,FSharp.Compiler.TcGlobals+TcGlobals,ubyte,ubyte,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.TypedTree+TType,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,FSharp.Compiler.Syntax.SynExpr):Microsoft.FSharp.Core.FSharpOption`1[System.Tuple`2[FSharp.Compiler.TypedTree+Expr,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv]] (FullOpts)
        -232 (-11.66 % of base) : 1671.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
        -220 (-1.92 % of base) : 14800.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (FullOpts)
        -204 (-10.08 % of base) : 11819.dasm - FSharp.Compiler.Parser+_fsyacc_reductions@1858-366:Invoke(Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Syntax.SynMemberKind,FSharp.Compiler.Syntax.SynMemberFlags],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynAttributeList],FSharp.Compiler.Text.Range):Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynMemberDefn]:this (FullOpts)
        -158 (-6.81 % of base) : 12533.dasm - FSharp.Compiler.CheckComputationExpressions:transBind@1630(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,FSharp.Compiler.Text.Range,FSharp.Compiler.Syntax.SynExpr,FSharp.Compiler.TypedTree+TType,FSharp.Compiler.TcGlobals+TcGlobals,FSharp.Compiler.AccessibilityLogic+AccessorDomain,System.String,ubyte,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Infos+MethInfo],System.Collections.Generic.IDictionary`2[System.String,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`8[System.String,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,System.Tuple`2[Microsoft.FSharp.Core.FSharpOption`1[System.String],FSharp.Compiler.Infos+MethInfo]]]],System.Collections.Generic.IDictionary`2[System.String,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`8[System.String,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,System.Tuple`2[Microsoft.FSharp.Core.FSharpOption`1[System.String],FSharp.Compiler.Infos+MethInfo]]]],Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Syntax.Ident,ubyte],Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Syntax.Ident,ubyte],Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Syntax.Ident,ubyte],FSharp.Compiler.CheckExpressions+TcEnv,Internal.Utilities.Library.LazyWithContext`2[System.Tuple`2[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Val],FSharp.Compiler.CheckExpressions+TcEnv],FSharp.Compiler.Text.Range],ubyte,FSharp.Compiler.CheckComputationExpressions+CustomOperationsMode,Internal.Utilities.Library.LazyWithContext`2[System.Tuple`2[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Val],FSharp.Compiler.CheckExpressions+TcEnv],FSharp.Compiler.Text.Range],FSharp.Compiler.Text.Range,Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Syntax.SynExpr,FSharp.Compiler.Syntax.SynExpr],System.String,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynExpr],FSharp.Compiler.Syntax.SynPat,FSharp.Compiler.Syntax.SynExpr,Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Syntax.SynExpr,FSharp.Compiler.Syntax.SynExpr]):FSharp.Compiler.Syntax.SynExpr (FullOpts)
        -146 (-1.52 % of base) : 34420.dasm - System.Management.Automation.Language.Tokenizer:NextToken():System.Management.Automation.Language.Token:this (FullOpts)
        -144 (-5.11 % of base) : 9271.dasm - FSharp.Compiler.NameResolution:ResolveTypeLongIdentInModuleOrNamespace(FSharp.Compiler.NameResolution+TcResultsSink,FSharp.Compiler.NameResolution+NameResolutionEnv,FSharp.Compiler.NameResolution+NameResolver,FSharp.Compiler.NameResolution+TypeNameResolutionInfo,FSharp.Compiler.AccessibilityLogic+AccessorDomain,FSharp.Compiler.NameResolution+PermitDirectReferenceToGeneratedType,FSharp.Compiler.NameResolution+ResolutionInfo,int,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+EntityRef,FSharp.Compiler.TypedTree+ModuleOrNamespaceType,FSharp.Compiler.Syntax.Ident,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.Ident]):Internal.Utilities.Library.ResultOrException`1[Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.NameResolution+ResolutionInfo,FSharp.Compiler.TypedTree+EntityRef]]] (FullOpts)
        -137 (-1.79 % of base) : 10050.dasm - FSharp.Compiler.CheckExpressions:TcLookupThen(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.ConstraintSolver+OverallTy,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,FSharp.Compiler.Text.Range,FSharp.Compiler.TypedTree+Expr,FSharp.Compiler.TypedTree+TType,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.Ident],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CheckExpressions+DelayedItem],FSharp.Compiler.Text.Range):System.Tuple`2[FSharp.Compiler.TypedTree+Expr,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv] (FullOpts)
        -133 (-1.24 % of base) : 11340.dasm - FSharp.Compiler.PostTypeCheckSemanticChecks:CheckExprOp(FSharp.Compiler.PostTypeCheckSemanticChecks+cenv,FSharp.Compiler.PostTypeCheckSemanticChecks+env,FSharp.Compiler.TypedTree+TOp,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+TType],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Expr],FSharp.Compiler.Text.Range,FSharp.Compiler.PostTypeCheckSemanticChecks+PermitByRefExpr,FSharp.Compiler.TypedTree+Expr):FSharp.Compiler.PostTypeCheckSemanticChecks+Limit (FullOpts)
        -131 (-0.56 % of base) : 13062.dasm - FSharp.Compiler.QuotationTranslator:ConvExprCore(FSharp.Compiler.QuotationTranslator+QuotationGenerationScope,FSharp.Compiler.QuotationTranslator+QuotationTranslationEnv,FSharp.Compiler.TypedTree+Expr):FSharp.Compiler.QuotationPickler+ExprData (FullOpts)
        -128 (-1.74 % of base) : 7862.dasm - FSharp.Compiler.CheckExpressions:TcTypeOrMeasure(Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+TyparKind],FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+ImplicitlyBoundTyparsAllowed,FSharp.Compiler.CheckExpressions+CheckConstraints,FSharp.Compiler.NameResolution+ItemOccurence,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,FSharp.Compiler.Syntax.SynType):System.Tuple`2[FSharp.Compiler.TypedTree+TType,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv] (FullOpts)
        -126 (-0.76 % of base) : 8718.dasm - FSharp.Compiler.CheckExpressions:TcMethodApplication(ubyte,FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,Microsoft.FSharp.Core.FSharpOption`1[Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+TType]],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+Expr],FSharp.Compiler.Text.Range,FSharp.Compiler.Text.Range,System.String,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.TypedTree+TType],FSharp.Compiler.AccessibilityLogic+AccessorDomain,FSharp.Compiler.TypedTreeOps+Mutates,ubyte,Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.Infos+MethInfo,Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Infos+PropInfo]]],FSharp.Compiler.NameResolution+AfterResolution,FSharp.Compiler.TypedTree+ValUseFlag,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynExpr],FSharp.Compiler.ConstraintSolver+OverallTy,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CheckExpressions+DelayedItem]):System.Tuple`2[System.Tuple`3[FSharp.Compiler.TypedTree+Expr,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.MethodCalls+CallerNamedArg`1[FSharp.Compiler.TypedTree+Expr]],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.CheckExpressions+DelayedItem]],FSharp.Compiler.CheckExpressions+UnscopedTyparEnv] (FullOpts)
        -125 (-2.22 % of base) : 25424.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution:BetterFunctionMember[System.__Canon](Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon],Microsoft.CodeAnalysis.CSharp.MemberResolutionResult`1[System.__Canon],Microsoft.CodeAnalysis.PooledObjects.ArrayBuilder`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],ubyte,byref):int:this (FullOpts)
        -113 (-1.83 % of base) : 22690.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<VisitArguments>g__visitArguments|231_0(Microsoft.CodeAnalysis.CSharp.BoundNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundExpression],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Conversion],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],System.Collections.Immutable.ImmutableArray`1[ubyte],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],System.Collections.Immutable.ImmutableArray`1[int],Microsoft.CodeAnalysis.BitVector,ubyte,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,ubyte):System.ValueTuple`4[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.NullableWalker+VisitArgumentResult],ubyte,Microsoft.CodeAnalysis.CSharp.NullableWalker+ArgumentsCompletionDelegate]:this (FullOpts)
        -112 (-0.96 % of base) : 14958.dasm - SixLabors.ImageSharp.Color:CreateWernerPalette():SixLabors.ImageSharp.Color[] (FullOpts)

Top method regressions (percentages):
         117 (7.08 % of base) : 21181.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2[System.__Canon,System.__Canon]:GetCompilationReferences(System.__Canon,Microsoft.CodeAnalysis.DiagnosticBag,byref,byref,byref):this (FullOpts)
          12 (6.49 % of base) : 26647.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbolExtensions:NormalizeTaskTypesInArray(Microsoft.CodeAnalysis.CSharp.CSharpCompilation,byref):ubyte (FullOpts)
          50 (6.20 % of base) : 757.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,int):this (FullOpts)
          35 (5.99 % of base) : 25594.dasm - Microsoft.CodeAnalysis.MarshalAsAttributeDecoder`4[System.__Canon,System.__Canon,System.__Canon,short]:DecodeMarshalAsComInterface(byref,int,Microsoft.CodeAnalysis.CommonMessageProvider) (FullOpts)
          31 (5.79 % of base) : 661.dasm - System.Number:FormatNumber[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          20 (5.49 % of base) : 30576.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeDeclarationUsingStatement(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundBlock,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.BoundLocalDeclaration],Microsoft.CodeAnalysis.CSharp.MethodArgumentInfo,Microsoft.CodeAnalysis.CSharp.BoundAwaitableInfo,Microsoft.CodeAnalysis.SyntaxToken):Microsoft.CodeAnalysis.CSharp.BoundStatement:this (FullOpts)
           3 (5.36 % of base) : 6818.dasm - FSharp.Compiler.Parser+_fsyacc_reductions@4485-901:Invoke(FSharp.Compiler.Syntax.SynExpr,FSharp.Compiler.Text.Range,FSharp.Compiler.Text.Range):FSharp.Compiler.Syntax.SynExpr:this (FullOpts)
          65 (5.35 % of base) : 32242.dasm - Microsoft.Cci.MetadataWriter:PopulateGenericParameters(System.Collections.Immutable.ImmutableArray`1[Microsoft.Cci.IGenericParameter]):this (FullOpts)
          20 (5.13 % of base) : 30447.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.MethodToClassRewriter:VisitCall(Microsoft.CodeAnalysis.CSharp.BoundCall):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
          34 (4.66 % of base) : 31622.dasm - Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder+<GetTopLevelTypeDefinitionsCore>d__77:MoveNext():ubyte:this (FullOpts)
          27 (4.35 % of base) : 17342.dasm - Microsoft.ML.Internal.Utilities.VBufferUtils:ApplyIntoEitherDefined[float,float](byref,byref,System.Func`3[int,float,float]) (FullOpts)
           3 (4.29 % of base) : 25102.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceComplexParameterSymbolBase:EarlyDecodeWellKnownAttributeType(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax):this (FullOpts)
          21 (4.05 % of base) : 26899.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:EnforceParameterNotNullWhenOnExit(Microsoft.CodeAnalysis.SyntaxNode,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol],ubyte,Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState):this (FullOpts)
           7 (3.93 % of base) : 13038.dasm - FSharp.Compiler.CheckExpressions+TcExprUndelayed@6040-36:Invoke(FSharp.Compiler.CheckExpressions+TcEnv):System.Tuple`2[FSharp.Compiler.TypedTree+Expr,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv]:this (FullOpts)
         330 (3.66 % of base) : 2407.dasm - <StartupCode$FSharp-Compiler-Service>.$FSharp.Compiler.Features:.cctor() (FullOpts)
          46 (3.66 % of base) : 26448.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:<Scan>g__enforceMemberNotNullWhenForPendingReturn|61_3(Microsoft.CodeAnalysis.CSharp.AbstractFlowPass`2+PendingBranch[Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalState,Microsoft.CodeAnalysis.CSharp.NullableWalker+LocalFunctionState],Microsoft.CodeAnalysis.CSharp.BoundReturnStatement):this (FullOpts)
           5 (3.50 % of base) : 30344.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedMethodBaseSymbol:get_ReturnTypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (FullOpts)
           3 (3.49 % of base) : 2917.dasm - System.IO.Strategies.BufferedFileStreamStrategy:Read(System.Span`1[ubyte]):int:this (FullOpts)
           2 (3.45 % of base) : 280.dasm - System.Reflection.TypeNameParser+NamespaceTypeName:ResolveType(byref,System.String):System.Type:this (FullOpts)
          15 (3.44 % of base) : 16504.dasm - Microsoft.ML.Data.Conversion.Conversions:TryGetStandardConversion(Microsoft.ML.Data.DataViewType,Microsoft.ML.Data.DataViewType,byref,byref):ubyte:this (FullOpts)

Top method improvements (percentages):
       -1502 (-32.31 % of base) : 4609.dasm - FSharp.Compiler.CompilerConfig+TcConfig:CloneToBuilder():FSharp.Compiler.CompilerConfig+TcConfigBuilder:this (FullOpts)
       -1485 (-27.00 % of base) : 3150.dasm - FSharp.Compiler.CompilerConfig+TcConfig:.ctor(FSharp.Compiler.CompilerConfig+TcConfigBuilder,ubyte):this (FullOpts)
          -8 (-16.00 % of base) : 16801.dasm - Microsoft.ML.Trainers.SdcaTrainerBase`3+StandardArrayDualsTable[System.__Canon,System.__Canon,System.__Canon]:ApplyAt(long,Microsoft.ML.Trainers.SdcaTrainerBase`3+Visitor[System.__Canon,System.__Canon,System.__Canon]):this (FullOpts)
         -79 (-14.13 % of base) : 31488.dasm - Microsoft.CodeAnalysis.Compilation:SerializePeToStream(Microsoft.CodeAnalysis.Emit.CommonPEModuleBuilder,Microsoft.CodeAnalysis.DiagnosticBag,Microsoft.CodeAnalysis.CommonMessageProvider,System.Func`1[System.IO.Stream],System.Func`1[System.IO.Stream],System.Func`1[System.IO.Stream],Microsoft.Cci.PdbWriter,System.String,Microsoft.CodeAnalysis.RebuildData,ubyte,ubyte,ubyte,ubyte,System.Nullable`1[System.Security.Cryptography.RSAParameters],System.Threading.CancellationToken):ubyte (FullOpts)
         -17 (-14.05 % of base) : 16617.dasm - Microsoft.ML.Transforms.Text.TextFeaturizingEstimator+Transformer:.ctor(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Data.TransformerChain`1[Microsoft.ML.ITransformer]):this (FullOpts)
         -50 (-12.59 % of base) : 17615.dasm - System.Enum:TryParseByValueOrName[int,uint](System.RuntimeType,System.ReadOnlySpan`1[ushort],ubyte,ubyte,byref):ubyte (FullOpts)
         -17 (-12.50 % of base) : 2463.dasm - FSharp.Compiler.Features+LanguageVersion:.ctor(System.String):this (FullOpts)
         -30 (-12.24 % of base) : 16610.dasm - Microsoft.ML.Transforms.ColumnSelectingTransformer+Mapper:.ctor(Microsoft.ML.Transforms.ColumnSelectingTransformer,Microsoft.ML.DataViewSchema):this (FullOpts)
         -72 (-12.20 % of base) : 11909.dasm - (dynamicClass):IL_STUB_CallTailCallTarget(long,byref,long) (FullOpts)
         -17 (-11.89 % of base) : 17401.dasm - Microsoft.ML.Internal.Utilities.HashArray`1[float]:.ctor():this (FullOpts)
         -24 (-11.88 % of base) : 16616.dasm - Microsoft.ML.Transforms.ColumnSelectingTransformer+SelectColumnsDataTransform:.ctor(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Transforms.ColumnSelectingTransformer,Microsoft.ML.Transforms.ColumnSelectingTransformer+Mapper,Microsoft.ML.IDataView):this (FullOpts)
        -232 (-11.66 % of base) : 1671.dasm - System.Xml.XmlDocument:.ctor(System.Xml.XmlImplementation):this (FullOpts)
         -25 (-11.06 % of base) : 26598.dasm - Microsoft.CodeAnalysis.CSharp.MethodTypeInferrer:InitializeDependencies():this (FullOpts)
         -17 (-10.37 % of base) : 16475.dasm - Microsoft.ML.Transforms.Text.NgramExtractingEstimator:.ctor(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Transforms.Text.NgramExtractingEstimator+ColumnOptions[]):this (FullOpts)
          -8 (-10.13 % of base) : 2293.dasm - System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
        -204 (-10.08 % of base) : 11819.dasm - FSharp.Compiler.Parser+_fsyacc_reductions@1858-366:Invoke(Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Syntax.SynAccess],Microsoft.FSharp.Core.FSharpFunc`2[FSharp.Compiler.Syntax.SynMemberKind,FSharp.Compiler.Syntax.SynMemberFlags],Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynAttributeList],FSharp.Compiler.Text.Range):Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.Syntax.SynMemberDefn]:this (FullOpts)
         -17 (-9.34 % of base) : 17636.dasm - Microsoft.ML.Transforms.Text.WordEmbeddingEstimator:.ctor(Microsoft.ML.Runtime.IHostEnvironment,int,Microsoft.ML.Transforms.Text.WordEmbeddingEstimator+ColumnOptions[]):this (FullOpts)
         -39 (-9.33 % of base) : 8898.dasm - FSharp.Compiler.CheckExpressions+postArgumentTypeCheckingCalledMethGroup@9656:Invoke(System.Tuple`4[FSharp.Compiler.Infos+MethInfo,Microsoft.FSharp.Collections.FSharpList`1[FSharp.Compiler.TypedTree+TType],Microsoft.FSharp.Core.FSharpOption`1[FSharp.Compiler.Infos+PropInfo],ubyte]):FSharp.Compiler.MethodCalls+CalledMeth`1[FSharp.Compiler.TypedTree+Expr]:this (FullOpts)
         -17 (-9.29 % of base) : 15975.dasm - Microsoft.ML.Transforms.HashingEstimator:.ctor(Microsoft.ML.Runtime.IHostEnvironment,Microsoft.ML.Transforms.HashingEstimator+ColumnOptions[]):this (FullOpts)
         -42 (-9.27 % of base) : 10167.dasm - FSharp.Compiler.CheckDeclarations+TcRecdUnionAndEnumDeclarations:TcAnonFieldDecl(FSharp.Compiler.CheckExpressions+TcFileState,FSharp.Compiler.CheckExpressions+TcEnv,FSharp.Compiler.TypedTree+ParentRef,FSharp.Compiler.CheckExpressions+UnscopedTyparEnv,System.String,FSharp.Compiler.Syntax.SynField):FSharp.Compiler.TypedTree+RecdField (FullOpts)


smoke_tests.nativeaot.windows.x64.checked.mch

To reproduce these diffs on Windows x64: superpmi.py asmdiffs -target_os windows -target_arch x64 -arch x64


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 5092364 (overridden on cmd)
Total bytes of diff: 5092090 (overridden on cmd)
Total bytes of delta: -274 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          45 : 4797.dasm (6.08 % of base)
          45 : 1327.dasm (6.11 % of base)
          45 : 1322.dasm (6.08 % of base)
          45 : 4802.dasm (6.11 % of base)
          40 : 16555.dasm (5.39 % of base)
          40 : 19202.dasm (5.39 % of base)
          40 : 16560.dasm (5.41 % of base)
          40 : 21792.dasm (5.39 % of base)
          40 : 19207.dasm (5.41 % of base)
          40 : 21818.dasm (5.41 % of base)
          31 : 1325.dasm (5.62 % of base)
          31 : 16558.dasm (5.60 % of base)
          31 : 4800.dasm (5.62 % of base)
          31 : 21806.dasm (5.60 % of base)
          31 : 19205.dasm (5.60 % of base)
          17 : 10603.dasm (0.42 % of base)
          17 : 4661.dasm (0.42 % of base)
          10 : 12791.dasm (0.58 % of base)
          10 : 7191.dasm (0.58 % of base)
           8 : 23379.dasm (2.34 % of base)

Top file improvements (bytes):
         -61 : 4400.dasm (-6.09 % of base)
         -46 : 7748.dasm (-3.57 % of base)
         -24 : 14106.dasm (-1.46 % of base)
         -24 : 15162.dasm (-1.46 % of base)
         -24 : 8686.dasm (-1.46 % of base)
         -20 : 7041.dasm (-2.44 % of base)
         -20 : 10053.dasm (-9.30 % of base)
         -20 : 2304.dasm (-2.44 % of base)
         -19 : 11946.dasm (-0.35 % of base)
         -19 : 14909.dasm (-0.35 % of base)
         -19 : 6276.dasm (-0.34 % of base)
         -17 : 23421.dasm (-10.62 % of base)
         -16 : 19999.dasm (-1.97 % of base)
         -15 : 21961.dasm (-2.33 % of base)
         -15 : 4942.dasm (-2.30 % of base)
         -15 : 7403.dasm (-2.11 % of base)
         -15 : 1505.dasm (-2.19 % of base)
         -15 : 1510.dasm (-2.33 % of base)
         -15 : 16519.dasm (-2.19 % of base)
         -15 : 4937.dasm (-2.17 % of base)

74 total files with Code Size differences (45 improved, 29 regressed), 20 unchanged.

Top method regressions (bytes):
          45 (6.11 % of base) : 1327.dasm - System.Number:FormatCurrency[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          45 (6.11 % of base) : 4802.dasm - System.Number:FormatCurrency[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          45 (6.08 % of base) : 4797.dasm - System.Number:FormatPercent[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          45 (6.08 % of base) : 1322.dasm - System.Number:FormatPercent[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          40 (5.41 % of base) : 16560.dasm - System.Number:FormatCurrency[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          40 (5.41 % of base) : 19207.dasm - System.Number:FormatCurrency[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          40 (5.41 % of base) : 21818.dasm - System.Number:FormatCurrency[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          40 (5.39 % of base) : 16555.dasm - System.Number:FormatPercent[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          40 (5.39 % of base) : 19202.dasm - System.Number:FormatPercent[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          40 (5.39 % of base) : 21792.dasm - System.Number:FormatPercent[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          31 (5.62 % of base) : 1325.dasm - System.Number:FormatNumber[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          31 (5.60 % of base) : 16558.dasm - System.Number:FormatNumber[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          31 (5.62 % of base) : 4800.dasm - System.Number:FormatNumber[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          31 (5.60 % of base) : 21806.dasm - System.Number:FormatNumber[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          31 (5.60 % of base) : 19205.dasm - System.Number:FormatNumber[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          17 (0.42 % of base) : 10603.dasm - System.Number:TryParseNumber[ushort](byref,ulong,int,byref,System.Globalization.NumberFormatInfo):ubyte (FullOpts)
          17 (0.42 % of base) : 4661.dasm - System.Number:TryParseNumber[ushort](byref,ulong,int,byref,System.Globalization.NumberFormatInfo):ubyte (FullOpts)
          10 (0.58 % of base) : 12791.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
          10 (0.58 % of base) : 7191.dasm - Internal.Runtime.TypeLoader.TypeBuilder:FinishTypeAndMethodBuilding():this (FullOpts)
           8 (2.34 % of base) : 23379.dasm - PInvokeTests.Program:InlineArrayTest(byref,byref):ubyte (FullOpts)

Top method improvements (bytes):
         -61 (-6.09 % of base) : 4400.dasm - System.Text.Encoding:GetCharsWithFallback(ulong,int,ulong,int,int,int,System.Text.DecoderNLS):int:this (FullOpts)
         -46 (-3.57 % of base) : 7748.dasm - System.Collections.Concurrent.ConcurrentDictionary`2[System.ValueTuple`2[System.__Canon,System.__Canon],System.__Canon]:TryAddInternal(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[System.ValueTuple`2[System.__Canon,System.__Canon],System.__Canon],System.ValueTuple`2[System.__Canon,System.__Canon],System.Nullable`1[int],System.__Canon,ubyte,ubyte,byref):ubyte:this (FullOpts)
         -24 (-1.46 % of base) : 14106.dasm - System.Globalization.TimeSpanFormat:FormatCustomized[ushort](System.TimeSpan,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,byref) (FullOpts)
         -24 (-1.46 % of base) : 15162.dasm - System.Globalization.TimeSpanFormat:FormatCustomized[ushort](System.TimeSpan,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,byref) (FullOpts)
         -24 (-1.46 % of base) : 8686.dasm - System.Globalization.TimeSpanFormat:FormatCustomized[ushort](System.TimeSpan,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,byref) (FullOpts)
         -20 (-9.30 % of base) : 10053.dasm - System.Collections.Generic.Stack`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -20 (-2.44 % of base) : 7041.dasm - System.Globalization.CultureData:InitIcuCultureDataCore():ubyte:this (FullOpts)
         -20 (-2.44 % of base) : 2304.dasm - System.Globalization.CultureData:InitIcuCultureDataCore():ubyte:this (FullOpts)
         -19 (-0.35 % of base) : 11946.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (FullOpts)
         -19 (-0.35 % of base) : 14909.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (FullOpts)
         -19 (-0.34 % of base) : 6276.dasm - System.DateTimeFormat:FormatCustomized[ushort](System.DateTime,System.ReadOnlySpan`1[ushort],System.Globalization.DateTimeFormatInfo,System.TimeSpan,byref) (FullOpts)
         -17 (-10.62 % of base) : 23421.dasm - Internal.CompilerGenerated.<Module>:NativeToManaged__InlineArrayStruct(byref,byref) (FullOpts)
         -16 (-1.97 % of base) : 19999.dasm - System.Globalization.CultureData:InitIcuCultureDataCore():ubyte:this (FullOpts)
         -15 (-2.33 % of base) : 21961.dasm - System.Collections.Concurrent.ConcurrentUnifier`2+Container[System.__Canon,System.__Canon]:VerifyUnifierConsistency():this (FullOpts)
         -15 (-2.30 % of base) : 4942.dasm - System.Collections.Concurrent.ConcurrentUnifier`2+Container[System.__Canon,System.__Canon]:VerifyUnifierConsistency():this (FullOpts)
         -15 (-2.33 % of base) : 1510.dasm - System.Collections.Concurrent.ConcurrentUnifier`2+Container[System.__Canon,System.__Canon]:VerifyUnifierConsistency():this (FullOpts)
         -15 (-2.19 % of base) : 1505.dasm - System.Collections.Concurrent.ConcurrentUnifierW`2+Container[System.__Canon,System.__Canon]:VerifyUnifierConsistency():this (FullOpts)
         -15 (-2.19 % of base) : 16519.dasm - System.Collections.Concurrent.ConcurrentUnifierW`2+Container[System.__Canon,System.__Canon]:VerifyUnifierConsistency():this (FullOpts)
         -15 (-2.17 % of base) : 4937.dasm - System.Collections.Concurrent.ConcurrentUnifierW`2+Container[System.__Canon,System.__Canon]:VerifyUnifierConsistency():this (FullOpts)
         -15 (-2.11 % of base) : 7403.dasm - System.Reflection.DynamicInvokeInfo:InvokeWithManyArguments(long,byref,byref,System.Object[],System.Reflection.BinderBundle,ubyte):byref:this (FullOpts)

Top method regressions (percentages):
          45 (6.11 % of base) : 1327.dasm - System.Number:FormatCurrency[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          45 (6.11 % of base) : 4802.dasm - System.Number:FormatCurrency[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          45 (6.08 % of base) : 4797.dasm - System.Number:FormatPercent[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          45 (6.08 % of base) : 1322.dasm - System.Number:FormatPercent[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          31 (5.62 % of base) : 1325.dasm - System.Number:FormatNumber[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          31 (5.62 % of base) : 4800.dasm - System.Number:FormatNumber[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          31 (5.60 % of base) : 16558.dasm - System.Number:FormatNumber[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          31 (5.60 % of base) : 21806.dasm - System.Number:FormatNumber[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          31 (5.60 % of base) : 19205.dasm - System.Number:FormatNumber[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          40 (5.41 % of base) : 16560.dasm - System.Number:FormatCurrency[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          40 (5.41 % of base) : 19207.dasm - System.Number:FormatCurrency[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          40 (5.41 % of base) : 21818.dasm - System.Number:FormatCurrency[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          40 (5.39 % of base) : 16555.dasm - System.Number:FormatPercent[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          40 (5.39 % of base) : 19202.dasm - System.Number:FormatPercent[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
          40 (5.39 % of base) : 21792.dasm - System.Number:FormatPercent[ushort](byref,byref,int,System.Globalization.NumberFormatInfo) (FullOpts)
           3 (5.17 % of base) : 12648.dasm - System.Linq.Expressions.Interpreter.FieldByRefUpdater:UndefineTemps(System.Linq.Expressions.Interpreter.InstructionList,System.Linq.Expressions.Interpreter.LocalVariables):this (FullOpts)
           3 (5.17 % of base) : 12646.dasm - System.Linq.Expressions.Interpreter.PropertyByRefUpdater:UndefineTemps(System.Linq.Expressions.Interpreter.InstructionList,System.Linq.Expressions.Interpreter.LocalVariables):this (FullOpts)
           4 (4.60 % of base) : 7773.dasm - System.Reflection.TypeNameParser+NestedNamespaceTypeName:ResolveType(byref,System.String):System.Type:this (FullOpts)
           4 (4.60 % of base) : 13616.dasm - System.Reflection.TypeNameParser+NestedNamespaceTypeName:ResolveType(byref,System.String):System.Type:this (FullOpts)
           3 (3.61 % of base) : 9867.dasm - System.IO.Strategies.BufferedFileStreamStrategy:Write(System.ReadOnlySpan`1[ubyte]):this (FullOpts)

Top method improvements (percentages):
          -8 (-11.27 % of base) : 29972.dasm - System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
          -8 (-11.27 % of base) : 8602.dasm - System.Threading.QueueUserWorkItemCallbackBase:Execute():this (FullOpts)
         -17 (-10.62 % of base) : 23421.dasm - Internal.CompilerGenerated.<Module>:NativeToManaged__InlineArrayStruct(byref,byref) (FullOpts)
         -20 (-9.30 % of base) : 10053.dasm - System.Collections.Generic.Stack`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -10 (-8.40 % of base) : 13046.dasm - Internal.Reflection.Execution.ConstraintValidator+InstantiatedTypeInfo:GetGenericArguments():System.Type[]:this (FullOpts)
         -10 (-8.40 % of base) : 13026.dasm - Internal.Reflection.Execution.ConstraintValidator+InstantiatedTypeInfo:GetInterfaces():System.Type[]:this (FullOpts)
         -10 (-7.94 % of base) : 7489.dasm - Internal.Reflection.Execution.ConstraintValidator+InstantiatedTypeInfo:GetGenericArguments():System.Type[]:this (FullOpts)
         -10 (-7.94 % of base) : 7473.dasm - Internal.Reflection.Execution.ConstraintValidator+InstantiatedTypeInfo:GetInterfaces():System.Type[]:this (FullOpts)
          -8 (-7.62 % of base) : 20220.dasm - System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -8 (-7.62 % of base) : 22881.dasm - System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -8 (-7.62 % of base) : 6573.dasm - System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -8 (-7.62 % of base) : 2469.dasm - System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -8 (-7.62 % of base) : 17573.dasm - System.Collections.Generic.List`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
          -8 (-7.62 % of base) : 10667.dasm - System.Collections.Generic.LowLevelListWithIList`1+Enumerator[System.__Canon]:MoveNext():ubyte:this (FullOpts)
         -14 (-6.83 % of base) : 18397.dasm - System.Comparison`1[Internal.Reflection.Execution.ExecutionEnvironmentImplementation+FunctionPointerOffsetPair]:InvokeMulticastThunk(Internal.Reflection.Execution.ExecutionEnvironmentImplementation+FunctionPointerOffsetPair,Internal.Reflection.Execution.ExecutionEnvironmentImplementation+FunctionPointerOffsetPair):int:this (FullOpts)
         -14 (-6.83 % of base) : 21121.dasm - System.Comparison`1[Internal.Reflection.Execution.ExecutionEnvironmentImplementation+FunctionPointerOffsetPair]:InvokeMulticastThunk(Internal.Reflection.Execution.ExecutionEnvironmentImplementation+FunctionPointerOffsetPair,Internal.Reflection.Execution.ExecutionEnvironmentImplementation+FunctionPointerOffsetPair):int:this (FullOpts)
         -14 (-6.83 % of base) : 15889.dasm - System.Comparison`1[Internal.Reflection.Execution.ExecutionEnvironmentImplementation+FunctionPointerOffsetPair]:InvokeMulticastThunk(Internal.Reflection.Execution.ExecutionEnvironmentImplementation+FunctionPointerOffsetPair,Internal.Reflection.Execution.ExecutionEnvironmentImplementation+FunctionPointerOffsetPair):int:this (FullOpts)
         -61 (-6.09 % of base) : 4400.dasm - System.Text.Encoding:GetCharsWithFallback(ulong,int,ulong,int,int,int,System.Text.DecoderNLS):int:this (FullOpts)
         -14 (-6.09 % of base) : 3451.dasm - System.Buffers.SpanFunc`5[ushort,System.__Canon,ushort,int,int]:InvokeMulticastThunk(System.Span`1[ushort],System.__Canon,ushort,int):int:this (FullOpts)
         -10 (-5.49 % of base) : 439.dasm - System.Buffers.SpanAction`2[ushort,long]:InvokeMulticastThunk(System.Span`1[ushort],long):this (FullOpts)